الفرق بين المراجعتين لصفحة: «Bash/aliases»
لا ملخص تعديل |
أسامه-دمراني (نقاش | مساهمات) مراجعة 6: إضافة تصانيف |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 70: | سطر 70: | ||
== مصادر == | == مصادر == | ||
* <span> </span>[http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_05.html دليل Bash للمبتدئين، | * <span> </span>[http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_05.html دليل Bash للمبتدئين، صفحة الأوامر البديلة (Aliases)]. | ||
[[تصنيف:Bash]] | [[تصنيف:Bash]] | ||
[[تصنيف:Bash Aliases]] | [[تصنيف:Bash Aliases]] | ||
[[تصنيف:Bash Functions]] |
المراجعة الحالية بتاريخ 15:34، 6 سبتمبر 2018
فائدة الأوامر البديلة
يسمح الأمر البديل (Alias) بوضع كلمة واحدة مكان مقطع نصي (string)، وذلك إن استُخدم كأول كلمة من أمر بسيط، وتحتفظ الصدفة بقائمة من الأوامر البديلة التي يمكن ضبطها وإلغاء ضبطها بأمريْ alias
و unalias
. اكتب alias
في سطر الأوامر لترى قائمة من الأوامر البديلة المعرَّفة للصدفة الحالية:
hsoub: ~> alias
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias PAGER='less -r'
alias Txterm='export TERM=xterm'
alias XARGS='xargs -r'
alias cdrecord='cdrecord -dev 0,0,0 -speed=8'
alias e='vi'
alias egrep='grep -E'
alias ewformat='fdformat -n /dev/fd0u1743; ewfsck'
alias fgrep='grep -F'
alias ftp='ncftp -d15'
alias h='history 10'
alias fformat='fdformat /dev/fd0H1440'
alias j='jobs -l'
alias ksane='setterm -reset'
alias ls='ls -F --color=auto'
alias m='less'
alias md='mkdir'
alias od='od -Ax -ta -txC'
alias p='pstree -p'
alias ping='ping -vc1'
alias sb='ssh blubber'
alias sl='ls'
alias ss='ssh octarine'
alias tar='gtar'
alias tmp='cd /tmp'
alias unaliasall='unalias -a'
alias vi='eval `resize`;vi'
alias vt100='export TERM=vt100'
alias which='type'
alias xt='xterm -bg black -fg white &'
hsoub ~>
وتُستخدم الأوامر البديلة في تحديد الإصدار الافتراضي لأمر موجود على نظامك بأكثر من إصدار، أو في تحديد الخيارات الافتراضية لأمر ما، كما يمكن استخدامها في تصحيح الهجاء الخاطئ. وتُفحص أول كلمة من كل أمر بسيط إن كانت غير مُقتبسة -ليست بين علامات تنصيص- بحثًا عن أمر بديل، فإن احتوت على أمر بديل فتُستبدل الكلمة ليحل محلها نص الأمر البديل. وقد يحتوي اسم الأمر البديل ونص الاستبدال على مُدخلات للصدفة مثل محارف الصدفة الخاصة (shell metacharacters) باستثناء أن اسم الأمر البديل قد يحتوي على =
.
وتُفحص أول كلمة من نص الاستبدال أيضًا بحثًا عن أمر بديل، لكن الكلمة التي تطابق أمرًا بديلًا يوسّع أثناء قراءتها فإنها لا توسَّع مرة أخرى، هذا يعني أنك قد تجعل ls
أمرًا بديلًا لأمر ls -F
مثلًا ولن تحاول Bash أن توسع نص الاستبدال بشكل تعاودي (recursively). وتُفحص الكلمة التالية للأمر البديل داخل نص الأمر بحثًا عن توسع لأمر بديل إن كان آخِر محرف من قيمة الأمر البديل هو محرف مسافة (space) أو جدول (tab). ولا توسع الأوامر البديلة إن كانت الصدفة غير تفاعلية ما لم يُضبط خيار expand-aliases
باستخدام أمر shopt
.
إنشاء الأوامر البديلة وحذفها
تُنشأ الأوامر البديلة باستخدام أمر alias
، ولإنشاء أمر بديل بشكل دائم أدخِل alias
في أحد ملفات تهيئة الصدفة (shell initialization files) الخاصة بك، وإن كنت قد أدخلت الأمر البديل في سطر الأوامر فلن يتم التعرف عليه إلا داخل الصدفة الحالية.
hsoub ~> alias dh='df -h'
hsoub ~> dh
Filesystem Size Used Avail Use% Mounted on
/dev/hda7 1.3G 272M 1018M 22% /
/dev/hda1 121M 9.4M 105M 9% /boot
/dev/hda2 13G 8.7G 3.7G 70% /home
/dev/hda3 13G 5.3G 7.1G 43% /opt
none 243M 0 243M 0% /dev/shm
/dev/hda6 3.9G 3.2G 572M 85% /usr
/dev/hda5 5.2G 4.3G 725M 86% /var
hsoub ~> unalias dh
hsoub ~> dh
bash: dh: command not found
hsoub ~>
تقرأ Bash سطرًا كاملًا على الأقل من المدخلات قبل تنفيذ أي أوامر على ذلك السطر، ولا توسَّع الأوامر البديلة إلا حين يُقرأ أمر ما وليس عند تنفيذه، لهذا فإن تعريف الأمر البديل الذي يظهر على نفس السطر كأمر آخر لا يكون له تأثير حتى يُقرأ السطر التالي من المدخلات. ولا تتأثر الأوامر التي تتبع تعريف الأمر البديل على ذلك السطر بالأمر البديل الجديد، يمثل هذا السلوك مشكلة أيضًا عند تنفيذ الدوال (functions). وتوسَّع الأوامر البديلة حين يُقرأ تعريف دالة جديدة وليس عند تنفيذها، ذلك أن الدالة نفسها هي أمر مجمَّع (compound command).
وكنتيجة لذلك لا تكون الأوامر البديلة المحددة في دالةٍ متاحةً حتى بعد تنفيذ تلك الدالة. لكن لكي تكون بمأمن ضع محددات الأوامر البديلة في سطر منفصل ولا تستخدم أمر alias
في أوامر مجمعة. أيضًا، لا ترث العمليات الفرعية الأوامر البديلة، وكذلك لا تتعرف صدفة بورن sh على الأوامر البديلة.
الدوال أسرع
يُبحث عن الأوامر البديلة بعد الدوال، لذلك فإن حلها يكون أبطأ رغم أنها أسهل في الفهم، وتفضل دوال الصدفة على الأوامر البديلة في كل استخدام تقريبًا.