آٹھ کم معروف باش اختیارات

Bash کے کچھ اختیارات معروف ہیں اور اکثر استعمال ہوتے ہیں۔ مثال کے طور پر، بہت سے لوگ اسکرپٹ کے شروع میں لکھتے ہیں۔

سیٹ آو آکسٹریس

ڈیبگنگ کے لیے،

غلطی سیٹ کریں

غلطی سے باہر نکلنا یا

سیٹ -o errunset

باہر نکلنے کے لیے اگر کہا جاتا متغیر سیٹ نہیں ہے۔

لیکن بہت سے دوسرے اختیارات ہیں. بعض اوقات ان کو مانس میں بہت مبہم انداز میں بیان کیا جاتا ہے، اس لیے میں نے وضاحت کے ساتھ یہاں کچھ مفید ترین جمع کیے ہیں۔

نوٹ: میکس میں bash کا پرانا ورژن ہو سکتا ہے (3.x کے بجائے 4.x) جہاں یہ تمام اختیارات دستیاب نہیں ہیں۔ اس صورت میں، دیکھیں یہاں یا یہاں.

set یا shopt?

bash آپشن سیٹ کرنے کے دو طریقے ہیں: اسکرپٹ سے یا کمانڈ لائن سے۔ آپ بلٹ ان کمانڈز استعمال کر سکتے ہیں۔ set и shopt. دونوں شیل کے رویے کو تبدیل کرتے ہیں، بہت کچھ ایک ہی کرتے ہیں (مختلف دلائل کے ساتھ)، لیکن ان میں فرق ہے اصل. اختیارات set وراثت میں ملے ہیں یا دوسرے خولوں کے پیرامیٹرز سے ادھار لیے گئے ہیں، جبکہ پیرامیٹرز shopt bash میں پیدا کیا.

اگر آپ موجودہ اختیارات دیکھنا چاہتے ہیں تو چلائیں:

$ set -o
$ shopt

میں آپشن کو چالو کرنے کے لیے set طویل یا مختصر نحو استعمال کیا جاتا ہے:

$ set -o errunset
$ set -e

اثر وہی ہے۔

آپشن کو غیر فعال کرنے کے لیے، آپ کو مائنس کے بجائے پلس ڈالنا ہوگا:

$ set +e

ایک لمبے عرصے تک مجھے یہ نحو یاد نہیں رہا کیونکہ منطق غلط لگ رہی تھی (مائنس کا نشان آپشن کو قابل بناتا ہے، اور جمع کا نشان اسے غیر فعال کر دیتا ہے)۔

В shopt (زیادہ منطقی) جھنڈے اختیارات کو فعال اور غیر فعال کرنے کے لیے استعمال کیے جاتے ہیں۔ -s (سیٹ) اور -u (غیر سیٹ):

$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off

ڈائریکٹریز کو تبدیل کرنا

کئی اختیارات ہیں جو آپ کو ڈائریکٹریز کے ساتھ کام کرنے میں مدد کرتے ہیں۔

1.cdspel

اس ترتیب کے ساتھ، bash ٹائپ کی غلطیوں کو سمجھنا شروع کر دے گا اور آپ کو اس فولڈر میں لے جائے گا جس کے نام کی آپ نے غلط ہجے کی ہے۔

$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..

میں اس آپشن کو کئی سالوں سے استعمال کر رہا ہوں اور بہت کم ہی (شاید سال میں ایک بار) یہ بہت ہی عجیب فیصلہ کرتا ہے۔ لیکن دوسرے دنوں میں cdspell لفظی طور پر ہر روز وقت بچاتا ہے۔

2. آٹو سی ڈی

اگر آپ متعدد اندراجات کی غیر موثریت کو قبول کرنے کے لیے تیار نہیں ہیں۔ cd، پھر آپ X فولڈر میں جانے کے لیے اس اختیار کو سیٹ کر سکتے ہیں اگر X کمانڈ موجود نہیں ہے۔

$ shopt -s autocd
$ abcdefg
$ cd ..

خودکار تکمیل کے ساتھ مل کر، یہ آپ کو فولڈرز کے درمیان تیزی سے کودنے کی اجازت دیتا ہے:

$ ./abc[TAB][RETURN]
cd -- ./abcdefg

صرف فولڈر کا نام نہ دیں۔ rm -rf * (جی ہاں، ویسے، یہ ممکن ہے).

3. direxpand

یہ ایک ٹھنڈا آپشن ہے جو Tab دبانے سے ماحولیاتی متغیرات کو بڑھاتا ہے:

$ shopt -s direxpand
$ ./[TAB]     # заменяется на...
$ /full/path/to/current_working_folder
$ ~/[TAB]     # заменяется на...
$ /full/path/to/home/folder
$ $HOME/[TAB] #  заменяется на...
$ /full/path/to/home/folder

صاف آؤٹ پٹ

4. چیک جابز

یہ آپشن سیشن سے لاگ آؤٹ کرنا بند کر دیتا ہے اگر بیک گراؤنڈ میں ابھی بھی جابز چل رہی ہیں۔

باہر نکلنے کے بجائے، نامکمل کاموں کی فہرست ظاہر ہوتی ہے۔ اگر آپ اب بھی باہر نکلنا چاہتے ہیں تو دوبارہ داخل کریں۔ exit.

$ shopt -s checkjobs
$ echo $$
68125             # <= ID процесса для оболочки
$ sleep 999 &
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ echo $$
68125             # <= ID процесса для оболочки тот же
$ exit
There are running jobs.
[1]+  Running                 sleep 999 &
$ exit
$ echo $$
$ 59316           # <= на этот раз ID процесса  изменился

متبادل سپر پاورز

5.globstar

یہ آپشن آپ کو متبادل سپر پاور دیتا ہے! اگر آپ درج کریں:

$ shopt -s globstar
$ ls **

پھر شیل تمام ڈائریکٹریز اور سب ڈائرکٹریاں بار بار دکھائے گا۔

کے ساتھ مجموعہ میں direxpand آپ درجہ بندی میں سب کچھ نیچے دیکھ سکتے ہیں:

$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n) 

6.extglob

یہ آپشن ان خصوصیات کو قابل بناتا ہے جو عام طور پر ریگولر ایکسپریشنز سے وابستہ ہوتے ہیں۔ کبھی کبھی یہ بہت مفید ہے:

$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile

یہاں پیٹرن کو قوسین میں رکھا گیا ہے اور عمودی بار سے الگ کیا گیا ہے۔ یہاں دستیاب آپریٹرز ہیں:

? = دیے گئے نمونوں کی صفر یا ایک موجودگی سے میل کھاتا ہے! = ہر وہ چیز دکھائیں جو دیے گئے نمونوں سے مماثل نہ ہوں * = صفر یا زیادہ واقعات + = ایک یا زیادہ واقعات @ = بالکل ایک واقعہ

حادثے سے بچاؤ

7. اس کی تصدیق کریں۔

مخففات کی تاریخ سے فوری لانچ کمانڈز کو استعمال کرنا شروع میں تھوڑا خوفناک ہوسکتا ہے۔ !! и !$.

آپشن histverify آپ کو سب سے پہلے یہ دیکھنے دیتا ہے کہ Bash کمانڈ کی اصل میں چلنے سے پہلے اس کی تشریح کیسے کرتا ہے:

$ shopt -s histverify
$ echo !$          # <= По нажатию Enter команда не запускается
$ echo histverify  # <= Она сначала демонстрируется на экране,
histverify         # <= а потом запускается 

8. نوکلوبر

ایک بار پھر، حادثات سے بچانے کے لیے، یعنی ری ڈائریکٹ آپریٹر کے ساتھ پہلے سے موجود فائل کو اوور رائٹ کرنے سے (>)۔ اگر آپ کے پاس بیک اپ نہیں ہے تو یہ تباہی ہو سکتی ہے۔

آپشن set -С اس طرح کے اوور رائٹنگ سے منع کرتا ہے۔ اگر ضروری ہو تو، آپ آپریٹر کا استعمال کرتے ہوئے تحفظ کو نظرانداز کر سکتے ہیں۔ >|:

$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$

ماخذ: www.habr.com

نیا تبصرہ شامل کریں