Символы >, >>, &, && и ||/ чрезвычайно полезны при работе в командной строке Linux.
Некоторые из “трюков” в Linux зависят от использования нескольких специальных символов. В этой статье рассматривается ряд из них и показано, как они работают.
Использование > и >>
Использование символов > и >> будет иметь похожие, но разные эффекты, и оба они зависят от того, как вы используете их в команде. Символ > может использоваться для прямого вывода в файл. Например, эти команды поместят указанный текст в файл. Однако, если файл существует, все прежнее содержимое будет перезаписано. Обратите внимание, что в файле осталось только одно "hello".
С другой стороны, использование >> добавит текст, указанный в конце файла. Если файл не существует, команда создаст его.
Приведенные ниже команды очистят файл от его содержимого. Подобные команды часто используются для периодической очистки файлов. без изменения прав доступа к файлам или владельца.
Обе команды, показанные ниже, имеют одинаковый эффект, поэтому многие пользователи 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 в приведенном выше примере явно прошла успешно.
Символы || имеют противоположный эффект. Если первая команда выполнена успешно, вторая не будет выполнена. Другими словами, будет выполняться только одна из команд. Вы можете думать об этом как о чем–то вроде оператора “if” - если не первая команда, то вторая.
В приведенном ниже примере каталог scripts не существовал, поэтому была запущена команда mkdir.
$ [ -d scripts ] || mkdir scripts
$ ls -ld scripts
drwxrwxr-x 2 shs shs 4096 Jul 8 12:24 scripts
Что такое зомби-процессы в Linux и как их уничтожить
5 основных инструментов для запоминания команд Linux
Как импортировать данные с веб-сайтов в Excel
ISO vs. BIN vs. CUE vs. IMG:форматы образов дисков
USB4 по сравнению USB 3: В чем разница?
Как вводить символы с ударением в Linux
Как управлять временем в Linux
Ставьте лайк .Смотрите другие наши статьи,подписывайтесь на канал чтобы не пропустить интересное.