Символи >, >>, &, && та || надзвичайно корисні, коли ви працюєте в командному рядку Linux.
Деякі з найзручніших «трюків» у Linux залежать від використання кількох спеціальних символів. Network World розглядає деякі з них і показує, як вони працюють.
Використання > і >>
Використання символів > і >> матиме подібні, але різні ефекти. Все залежить від того, як ви використовуєте їх у команді.
Символ > можна використовувати для направлення виведення у файл. Наприклад, ці команди помістять вказаний текст у файл. Однак якщо файл існує, будь-який попередній вміст буде перезаписано. Зверніть увагу, що у файлі залишилося лише одне «привіт».
$ echo hello > world
$ echo hello > world
$ cat world
hello
Використання >>, з іншого боку, додасть наданий текст у кінець файлу. Якщо файл не існує, команда створить його.
$ echo "My Report" > report
$ date >> report
$ cat report
My Report
Sat Jul 8 11:49:48 AM EDT 2023
Наведені нижче команди очистять файл від його вмісту. Такі команди часто використовуються для періодичного очищення файлів без зміни дозволів на файл або власності.
Обидві команди, наведені нижче, мають однаковий ефект, але багато користувачів Linux надають перевагу другій.
$ cat /dev/null > bigfile
$ > bigfile
Ось приклад:
$ ls -l bigfile
-rw-rw-r-- 1 shs shs 1309432546 Jul 8 11:51 bigfile
$ > bigfile
$ ls -l bigfile
-rw-rw-r-- 1 shs shs 0 Jul 8 11:51 bigfile
Використання &
Символ & використовується для виконання команди у фоновому режимі, що дає змогу користувачу переходити до інших завдань, поки команда виконується до кінця.
Ось приклад його використання:
$ bigjob &
Ви можете перевірити фонові завдання за допомогою команди jobs.
$ jobs
[1]+ Running bigjob &
$ fg %1
bigjob
Також можна відправити запущене завдання у фоновий режим, використовуючи ^z, а потім команду bg.
$ bigjob
^Z
[1]+ Stopped bigjob
$ bg
[1]+ bigjob &
Крім того, ви можете повернути фонові завдання на передній план за допомогою команди fg.
Ось приклад:
$ bigjob &
[1] 4092
$ jobs
[1]+ Running bigjob &
$ fg %1
bigjob
Використання && та ||
&& та || відіграють особливі ролі, коли команди залежать від успіху чи невдачі попередніх команд.
Символи && забезпечать виконання команди праворуч, якщо команда ліворуч буде успішно виконана, і гарантують, що друга команда не буде виконана, якщо перша команда не вдасться.
Ось приклад:
$ ping 192.168.0.1 && echo router is reachable
router is reachable
Команда ping у наведеному вище прикладі була явно успішною.
|| символи мають протилежний ефект. Якщо перша команда виконана успішно, друга не буде виконана. Іншими словами, буде виконано лише одну з команд. Ви можете сприймати це як щось на зразок оператора «якщо» – якщо не перша команда, то друга.
У наведеному нижче прикладі каталог сценаріїв не існував, тому було запущено команду mkdir.
$ [ -d scripts ] || mkdir scripts
$ ls -ld scripts
drwxrwxr-x 2 shs shs 4096 Jul 8 12:24 scripts