Помимо основных буквенных команд, в терминале также используются специальные символы. Их то мы и рассмотрим в данной статье.

Специальный символ тильда ~

Первый символ это тильда ~. Она является сокращенной формой пути к домашнему каталогу. Например если мы хотим перейти в домашний каталог,

то вместо того, чтобы писать cd /home/имя_пользователя, достаточно написать:

cd ~

И мы также окажемся в домашнем каталоге. Так же можно переходить в каталоги, которые находятся в домашней папке. Для этого введем cd ~ и через / укажем название папки в которую нужно перейти:

cd ~/Загрузки/

Специальный символ точка .

Следующий специальный символ это точка. Он означает текущую директорию. Например если мы при помощи команды ls с ключом a выведем список файлов в текущем каталоге, то увидим следующее:

ls -a

Linux команда ls -a

То увидим нашу точку. Так же в выводе команды мы увидим две точки. Они означают родительский каталог относительно текущего. Например если мы хотим перейти на уровень выше, то введем следующую команду:

cd ..

И перейдем на уровень выше. Так же при помощи одной точки можно запускать скрипты в текущей папке для этого нужно вести . / и название скрипта. Например создадим скрипт:

nano script.sh

Добавим в скрипт строчку приветствия:

echo "Hello"

Запустим его:

./script.sh

Так же необходимо установить права на запуск:

chmod +x script.sh
./script.sh

Скрипт Shell echo Hello

Специальный символ косая черта /

Следующий специальный символ это косая черта /. Она используется для разделения каталогов и имени пути. Например перейдем в каталог 1, который находится в каталоге Загрузки:

cd Загрузки/1/

В данной команде используется косая черта /. Она разделяет каталоги. Так же при помощи косой черты можно перейти в корневой каталог linux для этого напишем следующую команду:

cd /

Мы находимся в корневом каталоге linux. 

Специальный символ решетка #

Следующий специальный символ это решетка #. Он означает комментарий. Например добавим комментарии в наш скрипт:

nano script.sh

Содержимое файла script.sh:

#This is comment
echo "Hello"

Запустим скрипт:

./script sh

Запуск shell скрипта linux

Как мы видим при запуске строка после решетки не вывелась, так как она является комментарием.

Специальный символ вопросительный знак ?

Следующий специальный символ это вопросительный знак ?. Он означает знак подстановки символа. Например создадим папку тест:

mkdir test

Перейдем в данную папку:

cd test

И создадим три файла с именами f1.txt f2.txt f3.txt:

touch f1.txt f2.txt f3.txt

И создадим файл test.txt:

touch test.txt

Теперь выведем наши три файла исключив файл test.txt. Для этого введём следующую команду:

ls f?.txt

Наша команда вывела все файлы начинающиеся на f и заканчивается на любой символ .txt. В данном случае это f1.txt f2.txt и f3.txt. С помощью знака вопроса так же можно вывести файл test.txt. Для этого после команды ls нужно указать 4 знака вопроса:

ls ????.txt

Linux специальный символ вопросительный знак

Специальный символ звездочка *

Следующий символ это звездочка *. Если вопросительный знак ? означал один символ, то звездочка означает множество символов например выведем все файлы начинающиеся на f:

ls f*

Так же можно вывести все файлы с расширением .txt Для этого ведем команду:

ls *.txt

Вывод списка текстовых файлов linux terminal

Специальный символ квадратные скобки []

Следующий символ это квадратные скобки []. Он означает набор символов, который включен в данные скобки. Например выведем два файла f1 и f3:

Для этого введём следующую команду:

ls f[13].txt

В квадратных скобках указываем цифры наших файлов это 1 и 3 соответственно и в конце укажем расширение .txt. Так же можно выводить файлы в определенном промежутке например выйдем файлы f1 f2 и f3. Для этого видим следующую команду:

ls f[1-3].txt

В квадратных скобках укажем промежуток от одного до трёх. Для этого воспользуемся тире.

Специальные символды квадратные скобки linux

Специальный символ точка с запятой ;

Следующий символы это точка с запятой ;. Он позволяет разделять команды. Например выполним несколько команд для этого разделим их точкой с запятой.

touch 1.txt; cat 1.txt; ls -l

Данной командой мы создали файл 1.txt, вывели содержимое файла 1.txt и вывели содержимое текущего каталога также вместо точки с запятой можно использовать два амперсанда &&.

Отличие заключается в том что если одна из команд не будет выполнена, то вся последовательность команд остановится на данной команде. Например попробуем перейти в несуществующей каталог и вывести список файлов и папок данного каталога:

cd test3 && ls -l

Между данными командами укажем двойной амперсанд &&.

Специальный символ амперсанд &

Следующий символ это одиночный амперсанд &. Он позволяет запустить команду в фоновом процессе. Например если мы запустим браузер firefox из терминала:

firefox

То увидим, то что терминал передает управление данной программе. Это будет происходить пока мы ее не закроем. Мы не сможем выполнять любые действия в терминале. При помощи амперсанда & мы запустим firefox в фоновом режиме:

firefox &

Наш браузер успешно запустился, а мы можем продолжать работу в терминале.

Специальный символ левая угловая скобка <

Следующий символ это левая угловая скобка <. Например отредактируем файл test.txt:

nano test.txt

И запишем в него цифры в случайной последовательности:

5
10
3
0
12

Теперь при помощи левой угловой скобки передадим содержимое файла test.txt команде sort, которая отсортирует содержимое файла:

sort < test.txt

Команда sort linux terminal

Специальный символ правая угловая скобка >

Следующий символ это правая угловая скобка >. Она перенаправляет вывод. Например перенаправим вывод команды ls в файл test1.txt:

ls > test1.txt

Выведем содержимое данного файла:

cat test1.txt

Вывод содержимого файла коммандой cat linux

Специальный символ вертикальная черта |

Следующий символ это вертикальная черта |. Она передает выходные данные одной команды другой. Например передадим выходные данные команды ls команде grep:

ls | grep 1

В данном случае команда grep принимает выходные данные команды ls и ведет поиск по соответствующему условию. У нас это условие 1. 

Вывод списка файлов содержащие цифру 1 ls grep linux

Как мы видим команда вывела все файлы, в которых содержится символ 1.

Специальный символ восклицательный знак !

Следующий символ это восклицательный знак  !. Он означает логический оператор НЕ. Например напишем следующую конструкцию:

[ ! -d ./test ] && mkdir ./test

Данная команда проверит существует ли каталог test, если он не существует, то создаст его.

Создание папки если она не существует mkdir linux

Как мы видим наш каталог создался.

Так же для того, чтобы повторить предыдущую команду можно воспользоваться двумя восклицательными знаками !!.

!!

Это может быть полезно, когда необходимо повторить предыдущую команду воспользовавшись привилегиями администратора. Для этого нужно ввести:

sudo !!

Специальный символ доллар $

Следующий символ это доллар $. Он означает выражение переменных. Например можно вывести значение переменной $USER, то есть текущего пользователя:

echo $USER

Или переменную $HOME:

echo $HOME

Или просто объявить свою переменную и вывести ее:

myvar=123
echo $myvar

Переменные в linux терминале