Синтаксис команд терминала

Команды для терминала (интерпретатора) по сути это отдельные утилиты, которые созданы для выполнения определённых функций. В этой статье будут рассмотрены некоторые основные команды Linux, которые используются чаще всего.

Команды в Linux имеют следующий синтаксис:
$ [команда] [опция] [аргумент]

Команда может сопровождается дополнительными опциями (ключами) и списком аргументов, которые могут изменять поведение команды. Аргументами могут быть файлы, каталоги или другие данные с которыми необходимо работать команде. Дополнительные ключи записываются одним из двух способов:
- полный вариант (например, --help);
- сокращённый вариант (например, -h).

Основные команды Linux

Для работы с данными, файлами, каталогами, дисками, разделами и т.п.Информация, справка, статистика и т.п.
echo clear cd mkdir touch cp mv rmdir rm cat less head tail grep ln fdisk passwdpwd cal date tty whoami id ls help whatis man info file stat wc w last lastb du df netstat history

pwd - выводит абсолютный путь к текущему рабочему каталогу пользователя.$ pwd
/home/andrew

cal - отображает календарь текущего месяца.

Команда может отображать календарь для заданного месяца и года, например чтобы посмотреть календарь на сентябрь 2000 года:$ cal 09 2000

Чтобы посмотреть календарь за текущий квартал:$ cal -3

echo - команда выведет в рабочем терминале всё, что вы ей предоставите:
$ echo Привет, Мир!
Привет, Мир!

Команда echo также используется для отображения значений переменных. Переменные записываются со знаком $ в начале, например можно посмотреть значение переменной $EDITOR, то есть узнать какой текстовый редактор установлен по умолчанию для вашего пользователя:$ echo $EDITOR
nano

date - отображает текущее время и дату:$ date
Сб ноя 25 05:16:31 MSK 2017

Если вас интересует только время, то вы можете использовать опцию +%T(показывается в формате часы: минуты: секунды:), пример:$ date +%T
05:18:00

tty - отображает текущий терминал:$ tty
/dev/pts/0

whoami - показывает пользователя, вошедшего в систему.
Пример:$ whoami
andrew

id - выводит информацию об идентификаторах пользователя и группы (UID и GID) для текущего пользователя:$ id
uid=1000(andrew) gid=1000(andrew группы=1000(andrew),4(adm),91(video),92(audio)

По умолчанию отображается информация о текущем пользователе. Если в качестве аргумента указано имя другого пользователя, то будет напечатана информация об пользователе:$ id root
uid=0(root) gid=0(root) группы=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),19(log)

clear - очищает текущее содержимое экрана терминала.

help. Почти у каждой команды есть параметр -- help, который показывает суммарную справочную информацию для этой команды.
Пример:$ pwd --help
pwdpwd - output the current working directory
Synopsis
pwd
Description
pwd outputs (prints) the current working directory.

whatis - показывает краткое описание команды одной строкой. Можно использовать в качестве быстрого справочника для любой команды:$ whatis whatis
whatis (1) - показывает однострочные описания справочных страниц

man. Опция --help и утилита whatis не предоставляют полную информацию о команде. Для получения более подробной информации в Linux предоставляются страницы man и info :$ man cd
cd(1)
NAME
cdcd - change directory
Synopsis
cd [DIRECTORY]
...

info - информационные страницы. Как правило, более сложные и подробные чем man страницы, также предоставляют информацию о команде:$ info date

cd - смена каталога (перейти в другую папку):$ cd [путь/к/нужной/директории]

Например для перехода в папку Downloads, которая расположена в домашней директории пользователя с именем user1:$ cd /home/user1/Downloads

Если аргументы для cd не заданы, она изменяет каталог на домашний каталог текущего пользователя. Путь к каталогу может быть абсолютным (полный путь) или относительным (относительно расположения текущего каталога). Абсолютный путь всегда начинается с / - обозначение главного каталога (каталога самого высшего уровня), текущий каталог обозначается . (точка), переход в каталог на уровень выше обозначается .., домашняя директория пользователя обозначается символом ~.

ls - просмотр списка файлов и/или каталогов:$ ls [путь/к/каталогу]

Если аргументы не заданы, то отображается содержимое текущего каталога.

ls -l - отображает длинный список файлов. В этом длинном листинге первым символом является d, - или l. Это обозначение типа файлов, записи с тире - обычные файлы, с обозначением d - каталоги, l - обозначение ссылок.

По умолчанию скрытые файлы или каталоги не отображаются. Скрытые файлы в Linux начинаются со знака точки. Любой файл, начинающийся с точки, скрыт. Итак, чтобы скрыть файл, нужно просто переименовать его, поставить точку в начале его имени.

Чтобы увидеть скрытые файлы можно воспользоваться командой:$ ls -a

Если вы хотите просмотреть свойства каталога, а не файлы содержащиеся в нем, используйте опции -ld:$ ls -ld ~/Desktop/
drwxr-xr-x 2 andrew andrew 4096 окт 29 20:31 ./Desktop/

mkdir - создание каталога:$ mkdir [путь_к_каталогу]/[название_нового_каталога]

touch - меняет временные метки файла, часто применяется для создания пустого файла. Если в аргументах команды задать файл которого нет, то сначала команда создаст указанный файл. Если файл уже существует, то touch обновит отметку времени.

Например создать новый пустой текстовый файл с названием file1.txt в каталоге Documents пользователя с именем user1:$ touch /home/user1/Documents/file1.txt

Существует множество других методов создания нового файла, например, с помощью текстового редактора VI, nano или gedit, либо с помощью перенаправления.

cp - команда копирования файлов и каталогов:$ cp [путь_к_копируемому_файлу]/[имя_файла] [путь_к_каталогу_назначения]/[конечное_имя_файла]

Если не указывать конечное имя, то файл копируется с именем оригинала. Например чтобы скопировать текстовый файл file1.txt, не изменяя имя, из папки Documents пользователя user1 в папку Downloads:$ cp /home/user1/Documents/file1.txt /home/user1/Downloads

Также можно копировать сразу несколько файлов, в этом случае последним аргументом будет каталог, в который будут скопированы все файлы. Остальные аргументы будут рассматриваться как имена файлов.

Если требуется копирование каталога, то он должен быть скопирован рекурсивно, с файлами содержащимися в нем. Для рекурсивного копирования каталога используйте опцию -r:$ cр -r [путь/к/исходному/каталогу] [путь/к/конечному/каталогу]

mv - перемещение файлов или каталогов. Команда работает как команда cp, за исключением того, что исходный файл будет удален. Но команда также может использоваться для переименования файлов или каталогов, те есть происходит перемещение файла (каталога), но изменяется имя файла.

Пример переименования файла 1.txt в 2.txt без перемещения в другую директорию:$ mv 1.txt 2.txt

rmdir - удаляет пустые каталоги:$ rmdir [путь/к/пустому/каталогу]/[имя_каталога]

Если требуется удаление вложенных каталогов, то применяется опция -p. Например чтобы удалить каталог folder1 и каталог folder2, который расположен внутри folder1:$ rmdir -p ./folder1/folder2

rm - удаление файлов или каталогов:$ rm [путь/к/файлу_или_каталогу]/[имя_файла_или_каталога]

Каталог может быть удален рекурсивно, то есть вместе с его содержимым, для этого используется опция -r.

file - определяет тип файла. Например:$ file pw.sh
pw.sh: Borne-Again shell script, ASCII text executable

В качестве аргумента для команды file можно указать один или несколько файлов.

stat - вывод статистики. Предоставляет более подробную информацию о файле, чем вывод ls -l. Например:$ stat pw.sh
Файл: pw.sh
Размер: 49 Блоков: 8 Блок В/В: 4096 обычный файл
Устройство: 805h/2053d Inode: 5403175 Ссылки: 1
Доступ: (0755/-rwxr-xr-x) Uid: ( 1000/ andrew) Gid: ( 1000/ andrew)
Доступ: 2017-11-27 23:41:27.851387772 +0300
Модифицирован: 2017-10-23 05:07:26.370549431 +0300
Изменён: 2017-10-23 05:07:26.370549431 +0300
Создан: -

cat - сокращение от concatenate, объединение данных, но может быть использована для просмотра содержимого файла:$ cat [путь_к_файлу]/[имя_файла]

Команда cat выводит файл целиком. Если файл достаточно большой, чтобы поместиться в один экран, то мы сможем увидеть только последнюю его часть. Чтобы отображать файлы по одной странице за раз используют команды less и more, ещё их называют пейджерами. Вы можете просмотреть файл в пейджере с помощью клавиш со стрелками на клавиатуре. Чтобы выйти из пейджера, нажмите "q". Пример:$ less [путь_к_файлу]/[имя_файла]

head - отображает первые несколько строк файла:$ head [путь_к_файлу]/[имя_файла]

По умолчанию отображает первые 10 строк, но с опцией -n можно указать количество просматриваемых строк. Например посмотреть только 2-е первые строки файла passwd:$ head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/bin/nologin

tail - аналогична head, но показывает по умолчанию 10 последних строк файла, опция -n также доступна:$ tail -n 2 /etc/passwd
rtkit:x:133:133:RealtimeKit:/proc:/bin/false
colord:x:124:124::/var/lib/colord:/bin/false

wc - команда подсчитывает строки, слова и буквы в файле:$ wc /etc/passwd
25 38 1276 /etc/passwd
Файл /etc/passwd имеет 25 строк, 38 слов, и 1276 букв.

grep - ищет информацию по заданному шаблону в файле. Поддерживает регулярные выражения, возвращает строку, если она соответствует шаблону поиска. Например если мы хотим найти строки, содержащие слово dbus, в файле /etc/passwd, то можем использовать grep следующим образом:$ grep dbus /etc/passwd
dbus:x:81:81::/:/sbin/nologin

ln - используется для создания ссылок. Ссылки - это своего рода ярлыки на другие файлы. Общая форма команды:$ ln [целевой_каталог] [имя_ссылки]

Существует два вида ссылок, символьные ссылки и жесткие ссылки. По умолчанию создаются жесткие ссылки. Если вы хотите создать мягкую (символьную) ссылку, используйте опцию -s. В этом примере в каталоге /home/andrew/Video/ создаётся символьная ссылка на содержимое каталога /data/Video/:$ ln -s /data/Video/ /home/andrew/Video/

w - показывает какие пользователи зарегистрированы в системе и команды, которые они выполняют в данный момент:$ w

Также показывает аптайм, количество пользователей и среднюю загрузку системы (в первой строке своего вывода).

last - отображает сведения о пользователях, вошедших в систему и вышедших из нее. Вывод команды может быть очень большим. Пример отфильтрованного вывода отображаются 10 последних событий:$ last | head -n 10

lastb - аналогична last, но показывает последние неудачные попытки входа в систему. Но эта команда должна быть запущена от имени пользователя root (суперпользователя), иначе вы получите сообщение об отказе. Пример:# lastb
andrew tty2 Tue Nov 14 22:36 - 22:36 (00:00)
btmp begins Tue Nov 1422:36:19 2017

du - определяет использование дискового файла. Если аргументом является каталог, то команда перечислит объёмы всех файлов и каталогов рекурсивно в заданном каталоге. Чтобы вывод был в "человекочитаемом" формате, добавьте опцию -h:$ du -h /etc/passwd
4,0K /etc/passwd

df - сообщает об использовании файловой системы, также доступна опция -h:$ df -h

fdisk - инструмент для получения информации о дисках, разделах и работы с ними. Средство fdisk требует привилегий суперпользователя. Это интерактивный инструмент для редактирования таблицы разделов. В качестве аргумента используется устройство (жесткий диск, USB), таблица разделов которого нуждается в редактировании, например:# fdisk /dev/sda

Посмотреть список всех разделов всех жестких дисков с помощью fdisk:# fdisk -l

netstat - используется для проверки сетевой статистики системы. Выводит текущие сетевые подключения, информация о таблице маршрутизации, статистику интерфейсов, маскировочные подключения и многое другое.

Для вывода более полной информации потребуется запустить от имени root. Например для просмотра текущей сетевой активности всех приложений в наиболее удобном ("читабельном") формате можете запустить netstat с опциями -tupan от имени суперпользователя:# netstat -tupan

history - команда показывает историю команд терминала.

passwd - изменить пароль для текущего пользователя.

shutdown - завершение работы системы, дополнительными опциями можно задать время через которое работа завершится. Для выключения сразу после ввода команды:$ shutdown now