اگر اهل لینوکس هستید حتماً ترمینال و احتمالا بش قسمت مهمی از زندگی شما رو تشکل داده. توی این مطلب میخوام چندتا نکتهٔ کوچیک دربارهٔ بش رو بنویسم که خیلی جالب و کاربردی هستن.
اگر دو بار تعجیب (!) کنید کامند قبلیتون تکرار میشه:
1 2 3 4 |
morteza@Life:~ $ mkdir /etc/apache2 mkdir: cannot create directory '/etc/apache2': Permission denied morteza@Life:~ 1 $ sudo !! [sudo] password for morteza: |
همونطور که در تکهکد بالا میبینید من بدون sudo در مسیر /etc خواستم که یک پوشهٔ جدید بسازم و خطای عدم دسترسی دریافت کردم. توی خط بعد فقط گفتم sudo !!. بش همون کامند قبلی من رو با sudo تکرار کرده.
اگر یک بار تعجب کنید به همراه ستاره آرگومانهای دستور قبلی تکرار میشه:
1 2 |
morteza@Life:/tmp/bash $ touch file1 file2 file3 morteza@Life:/tmp/bash $ rm !* |
توی دو خط بالا با استفاده از دستور touch سه فایل رو ایجاد کردم و توی خط بعدش با استفاده از !* همون آرگومانها رو به دستور rm فرستادم برای حذف.
اگر تعجب کنید و یک کلمه رو بگید بش آخرین دستوری رو اجرا میکنه که با اون کلمه شروع شده:
1 2 3 4 5 6 7 8 9 10 11 12 |
morteza@Life:/tmp/bash $ touch file1 file2 file3 morteza@Life:/tmp/bash $ rm !* rm file1 file2 file3 morteza@Life:/tmp/bash $ ls -l total 0 morteza@Life:/tmp/bash $ !tou touch file1 file2 file3 morteza@Life:/tmp/bash $ ls -l total 0 -rw-r--r-- 1 morteza morteza 0 Feb 10 19:10 file1 -rw-r--r-- 1 morteza morteza 0 Feb 10 19:10 file2 -rw-r--r-- 1 morteza morteza 0 Feb 10 19:10 file3 |
توی این مثال، با استفاده از دستور touch سه فایل ایجاد کردم. بعد همون فایلها رو با دستور rm !* پاک کردم. بعدش با استفاده از !tou آخرین دستوری که با tou شروع شده رو اجرا کردم و میبینید که سه فایل دوباره به وجود اومدن.
اما کاربردیتر اینه که بتونید در هر جای کلمه سرچ کنید نه اینکه فقط اول دستور. اگر همراه با تعجب از علامت سوال هم استفاده کنید بش در دستورات موجود در تاریخچه سرچ میکنه:
1 2 |
morteza@Life:/tmp/bash $ !?file2? touch file1 file2 file3 |
همونطور که در این مثال میبینید با استفاده از !?file2? آخرین دستوری که حاوی file2 بوده رو اجرا کردم.
یکی دیگه از ترفندهای باحال عوض کردنِ جای دو کلمهٔ آخر دستور هست. برای اینکار از کلید ترکیبی Alt + t استفاده میشه. مثالش رو میتونید توی ویدئوی کوتاهِ پایین ببینید. دستور رو اشتباه نوشتم. صحیحش اینه که ریاستارت قبل از sshd بیاد. با استفاده از alt و t جای دو کلمهٔ آخر رو عوض میکنم و دستور اجرا میشه.
امیدوارم براتون مفید باشه و خوندن این پست باعث بشه بهینهتر از bash استفاده کنید.
خیلی خوب بود 🙂 تقریبا هیچکدوم از مواردی که گفتی رو نمیدونستم!
دمت گرم
ممنون از مطلبی که شیر کردی
دمت گرم بابت معرفی اینها. چندتاشون رو خیلی وقت پیش میدونستم ی مدت بود یادم رفته بود و نمیدونستم چی سرچ کنم. یهویی دیدم دغدغهم حل شد 🙂