مشابه زبان های برنامه نویسی، پوسته های لینوکس نیز از اپراتورهای خاصی استفاده می کنند. در اینجا برخی از پرکاربردترین اپراتورهای زنجیره فرمان در لینوکس آورده شده است.
عملگرهای زنجیره فرمان، کاراکترهای خاصی هستند که برای نوشتن اسکریپت های پوسته مینیاتوری در خط فرمان استفاده می شوند. آنها معمولاً برای اجرای دستورات در یک توالی خاص استفاده می شوند که با قرار دادن عملگرها بین دستورات تعریف می شود. این در خودکارسازی وظایف فوق العاده مفید است.
بیایید با چند اپراتور زنجیرهای رایج در لینوکس آشنا شویم که میتوانند به شما کمک کنند وظایف را سریعتر و با فواصل کاربری کمتر انجام دهید.
1. اپراتور Ampersand (&)
اغلب زمانی که برنامه ای را باز می کنید یا دستوری را از پوسته اجرا می کنید، باید منتظر بمانید تا فرمان خاتمه یابد یا به صورت دستی از برنامه خارج شوید تا بتوانید به استفاده از پوسته ادامه دهید. در اینجا عملگر آمپرسند (&) وارد عمل می شود.
با الحاق عملگر آمپرسند به هر دستوری، به پوسته فرمان میدهید که آن فرمان لینوکس را در پسزمینه اجرا کند تا بتوانید بدون اتصال به پوسته استفاده کنید.
gedit &
معمولاً اگر gedit را از ترمینال اجرا کنید، نمی توانید از ترمینال استفاده کنید مگر اینکه ویرایشگر متن را ببندید. اما، با اضافه کردن عملگر آمپرسند، میتوانید آن را در پسزمینه اجرا کنید و بلافاصله به استفاده از پوسته ادامه دهید.
2. عملگر نقطه ویرگول (;)
عملگر نقطه ویرگول یک اپراتور زنجیرهای لینوکس فوقالعاده مفید است که میتوانید از آن برای اجرای دستورات به ترتیب مشخص و متوالی استفاده کنید. دستورات خود را مرتب کنید و آنها را با نقطه ویرگول از هم جدا کنید.
pwd ; mkdir test ; cd test ; touch file
نحو فوق به پوسته دستور می دهد تا هر دستور را یکی پس از دیگری اجرا کند. توجه داشته باشید که پوسته بررسی نمی کند که آیا هر فرمان با موفقیت خاتمه می یابد یا خیر. به محض اینکه پوسته کد بازگشتی را دریافت کرد، به اجرای دستور بعدی میرود.
3. اپراتور OR (||)
عملگر OR دستوری را اجرا میکند که فرمان قبلی شکست بخورد، یعنی یک کد خروجی 0 را برمیگرداند. مانند یک گیت OR منطقی عمل میکند که وقتی ورودی 0 باشد مقدار 1 را برمیگرداند.
bad_command || ls
در این نحو مثال، bad_command یک دستور نادرست است که اجرا نمیشود و از آنجایی که با شکست مواجه میشود، دستور جایگزین عملگر OR که دستور ls است، با موفقیت اجرا میشود.
4. اپراتور لوله (|)
اپراتور لوله خروجی دستور قبلی را به عنوان ورودی به دستور بعدی هدایت می کند. بیشتر برای فیلتر کردن داده ها با دستور grep استفاده می شود.
cat test | grep -i "makeuseof"
این دستور خروجی دستور cat را به عنوان ورودی به دستور grep می فرستد، که سپس خروجی را بر اساس یک رشته مشخص فیلتر می کند.
5. اپراتور AND (&&)
این عملگر به روش های مشابه عملگر نقطه ویرگول عمل می کند به جز اینکه بر خلاف عملگر نقطه ویرگول، عملگر AND تنها در صورتی دستورات را اجرا می کند که دستور قبلی با موفقیت اجرا شود.
pwd && mkdir test && cd test && bad_command && ls
در این نحو مثال، پوسته تمام دستورات را تا bad_command با موفقیت اجرا می کند. با این حال، از آنجایی که bad_command اجرا نمیشود، پوسته یک خطا را برمیگرداند و دستور ls را رد میکند.
6. اپراتور NOT (!)
عملگر NOT در برنامه نویسی به روش های مشابه دستور استثنا کار می کند. به عنوان مثال، اگر می خواهید عملیاتی را روی تعداد زیادی فایل در یک دایرکتوری انجام دهید، اما می خواهید تعدادی را بر اساس پارامتری حذف کنید، می توانید از عملگر NOT با عبور دادن پارامتر بعد از کاراکتر NOT (!) استفاده کنید.
rm -r !(*.txt)
این دستور نمونه به صورت بازگشتی همه فایلهای یک فهرست را حذف میکند، به جز فایلهایی که پسوند «.txt» دارند.
7. عملگر تقدم ((..))
دستورات زیر عملگرهای AND و OR به کد خروجی دستور قبلی بستگی دارد. این عملگرها باینری هستند و فقط دو دستور قبل و بعد از آنها را ارزیابی می کنند.
بنابراین هنگام کار با چندین اپراتور، تعیین گروه ها و اولویت ها برای اطمینان از اینکه دنباله اجرا انتظارات شما را برآورده می کند، مهم است.
(ls *.txt > txt-files.list && cp *.tx ~) && (ls *.deb > deb-packages.list && cp *.deb ~) || echo "Precedence Test!"
در این نحو نمونه، هر دو گروه از دستورات باید یک کد خروجی 0 را برگردانند تا از اجرای موفقیت آمیز آخرین دستور اطمینان حاصل شود. این مثال مستلزم آن است که هر دو دستور در مجموعه اول () با 0 خارج شوند تا مجموعه دوم () اجرا شود.
8. عملگر ترکیبی ({..})
همانطور که از نام آن مشخص است، عملگر ترکیبی برای گروه بندی دستورات استفاده می شود. هر دستوری را که میخواهید گروه بندی کنید، میتوانید آنها را در براکتهای فرفری قرار دهید و بسته به کد خروجی دستور اول اجرا میشوند.
test -f /etc/passwd && {pwd ; date} && echo $0 ; echo "Hello"
نحو نمونه آزمایش می کند که آیا فایل /etc/passwd موجود است، فهرست کاری فعلی، تاریخ، نام پوسته را چاپ می کند و “Hello” را اکو می کند.
9. الحاق یا Escape Operator (\)
عملگر الحاق یا فرار دو عملکرد دارد. شما می توانید از آن برای به هم پیوستن دو فرمان یا به عنوان یک کاراکتر فرار هنگام کار با رشته ها در پوسته استفاده کنید.
mkdir test0 test1 \ test2
echo "Hello! from the \nother side"
دستور اول چهار دایرکتوری به نامهای test0 تا test2 میسازد و فرمان دوم رشتهای را که با یک خط جدید جدا شده است چاپ میکند.
10. عملگرهای تغییر مسیر (>، >>، <)
اپراتورهای تغییر مسیر خروجی یا ورودی را با بازنویسی فایل یا با ضمیمه کردن آن به یک فایل هدایت می کنند. اگر می خواهید یک فایل را دوباره بنویسید، باید از دستور زبان براکت (>) استفاده کنید. اگر میخواهید به فایلی اضافه کنید، باید از نحو براکت زاویه دوتایی (>>) استفاده کنید.
echo "dsd" > test ; echo "bssss" >> test
در نحو نمونه، دستور اول فایل “test” را با رشته ارائه شده بازنویسی می کند، اما در دستور دوم، رشته ارائه شده به فایل آزمایشی اضافه می شود.
گردش کار ترمینال لینوکس خود را سرعت دهید
در حالی که استفاده از اپراتورهای ویژه به طور قابل توجهی اجرای کار را برای شما ساده می کند، راه های متعدد دیگری برای سرعت بخشیدن به گردش کار شما وجود دارد.
یکی از راههای آسان و ارزشمند برای انجام کارهای بیشتر در زمان کمتر این است که با چند میانبر پوسته مفید آشنا شوید. عادت کردن به این میانبرها بسیار کمک خواهد کرد و تا زمانی که از لینوکس استفاده می کنید، خواهید دید که به آنها تکیه می کنید.