Основные команды и горячие клавиши терминала Linux (а также Unix, macOS и FreeBSD)
Поставить будильник одной строкой или стереть важные файлы — решать вам, но эти команды нужно знать.


Иллюстрация: Оля Ежак для Skillbox Media
Какой смысл пользоваться терминалом, если дистрибутивы Linux и большинство современных приложений имеют графический интерфейс? На первый взгляд, это удобнее: не надо читать документацию и вбивать команды от руки. Но в Linux только официальных сред рабочего стола более десяти, а неофициальных ещё больше. Они сильно отличаются друг от друга и часто работают по-разному, тогда как команды почти одни и те же.
Затем, если вы программист, вам наверняка придётся удалённо подключаться к серверу под управлением Linux, а там вообще не будет графической оболочки.
Кроме того, даже самая продуманная графическая оболочка никогда не даст вам той гибкости и функциональности, которую предлагает командная строка. Например, возможность составлять и запускать сложные цепочки из нескольких разных команд, писать отложенные сценарии и тому подобное. Открыть терминал и написать команду будет всегда быстрее, чем кликать по меню, выбирая нужную опцию.
Наконец, стоит вспомнить, что Linux — это лишь одна из множества Unix-подобных ОС. Изучив терминал Linux, вы сможете ориентироваться в Unix, BSD-системах и macOS. Другими словами, получите универсальный, быстрый и мощный инструмент для работы.
Прежде чем идти дальше, нужно понять следующие правила:
- Не запускайте команды, которых вы не знаете. Копировать команды из интернета и вводить их в терминал, не понимая, что они делают, — плохая практика.
- Если терминал пишет, что команда не найдена, её можно найти в репозиториях и установить с помощью пакетного менеджера. Как именно — смотрите ниже.
- Читайте руководство. Терминал хорош ещё и тем, что содержит встроенную подробную справку по всем командам — её можно вызвать командами man или help. В общем, старый добрый принцип RTFM (read the fucking manual).
Базовые команды для работы с терминалом Linux
Ctrl + Alt + T — запуск терминала.
Ctrl + Shift + T — открыть новую вкладку.
Ctrl + Shift + W или Ctrl + D — закрыть текущую вкладку (или весь терминал, если вкладка одна).
Ctrl + Shift + N — открыть новое окно терминала.
Ctrl + C — отмена выполнения ранее введённой команды.
clear — очищение окна терминала.
history — история ввода.
Чтобы посмотреть определённое количество введённых ранее команд, нужно добавить к команде history число:
$ history 5
1010 ip -h monitor
1011 whatis ls
1012 nethogs
1013 clear
1014 history 5
$
«Листать» введённые ранее команды можно с помощью клавиш со стрелками «вверх» и «вниз».
sleep [number] — отложить выполнение следующей команды. Полезно, когда выполнение следующей команды зависит от успешного завершения предыдущей.
Чтобы указать время, на которое нужно перенести выполнение команды, используют специальные символы:
- s — секунды;
- m — минуты;
- h — часы;
- d — дни.
Следующий пример запустит файл song в программе mplayer через 2 часа 20 мин:
$ sleep 2h 20m && mplayer song.mp3
Команды для отображения справочной информации по командам и терминалу
С помощью командной строки можно быстро получить информацию о программах, состоянии системы и настройках.
man [имя_пакета] — главное руководство по командам Linux.
Даёт подробную информацию по команде и её использованию. У каждой команды есть множество опций, запомнить их все сложно, поэтому стоит научиться пользоваться руководством. Поначалу вывод man кажется запутанным, но стоит с ним разобраться — и необходимость гуглить сведётся к минимуму.
Например, man ls выведет следующую информацию:
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alpha‐
betically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
...
Вывод man включает следующие поля:
- Name — имя команды, которую описывает man-страница.
- Synopsis — краткое описание команды и её синтаксиса.
- Description — объяснение того, что делает программа.
- Options — описание опций командной строки, которые принимает команда, и дополнительная информация.
Самое полезное тут — опции. Например, вы хотите вывести список не только файлов, а ещё и их авторов. Выбираете в man нужную опцию и пишете:
ls --author -l
total 225824
-rw-r--r--. 1 tam tam tam 5615374 Nov 29 2021 1default.png
-rw-r--r--. 1 tam tam tam 5517455 Nov 29 2021 2default.png
-rw-r--r--. 1 tam tam tam 5807674 Nov 29 2021 3default.png
-rw-r--r--. 1 tam tam tam 6155385 Nov 29 2021 4default.png
-rw-r--r--. 1 tam tam tam 6039516 Nov 29 2021 5default.png
-rw-r--r--. 1 tam tam tam 5464565 Nov 29 2021 6default.png
LS (1) в выводе man означает первую страницу. Перемещаться по тексту можно с помощью колеса мыши, стрелок вверх/вниз, клавиши пробел или PgUp/PgDn. Перейти в начало/конец руководства можно с помощью клавиш Home и End.
Если ввести заглавную Н, то появится более детальная подсказка с альтернативными способами передвижения по тексту.
Для поиска конкретного слова в man введите ? [искомое_слово] и жмите Enter.
help — справка.
Если в мануале нет информации по команде или утилите или требуется краткая справка, то help — то, что нужно.
ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE with -l, scale sizes by SIZE when printing them;
e.g., '--block-size=M'; see SIZE format below
whatis [имя_пакета] — краткое описание утилиты.
$ whatis whatis
whatis (1) - display one-line manual page descriptions
Команды для получения информации о системе
whoami — информация о текущем пользователе системы.
$ whoami
tam
whereis — путь к программе.
Показывает полный путь к исполняемому файлу.
$ whereis firefox
firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz
lsblk — информация о дисках.
Выводит данные о дисках, разделах и их названия (sda1, sda2 и тому подобное).
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 128G 0 part /run/media/tam/25881-1
└─sda2 8:2 0 803.5G 0 part
zram0 252:0 0 8G 0 disk [SWAP]
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 200M 0 part /boot/efi
├─nvme0n1p2 259:2 0 1G 0 part /boot
├─nvme0n1p3 259:3 0 439.1G 0 part /home
└─nvme0n1p4 259:4 0 36.7G 0 part /
df — объём занятого пространства.
Показывает общий объём диска/раздела и свободный.
По умолчанию выводит данные в килобайтах.
Для отображения в мегабайтах добавьте параметр -m.
$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
devtmpfs 4 0 4 0% /dev
tmpfs 7896 195 7701 3% /dev/shm
tmpfs 3159 2 3157 1% /run
/dev/nvme0n1p4 36674 20796 13984 60% /
tmpfs 7896 46 7851 1% /tmp
/dev/nvme0n1p2 974 271 636 30% /boot
/dev/nvme0n1p3 441436 349935 69006 84% /home
/dev/nvme0n1p1 200 18 183 9% /boot/efi
tmpfs 1580 12 1568 1% /run/user/1000
du — размер файла или папки.
Показывает, сколько места занимает файл или директория.
Лучше вызывать с параметром -h, чтобы получить информацию в МБ, КБ.
du -h ~/Desktop
15G /home/tam/Desktop
free — объём ОЗУ.
Показывает объём доступной и занятой оперативной памяти. Для отображения в МБ, вызывайте с параметром -h.
$ free -h
total used free shared buff/cache available
Mem: 15Gi 10Gi 536Mi 1.4Gi 4.3Gi 3.2Gi
Swap: 8.0Gi 6.9Gi 1.1Gi
uname — сведения о системе.
Показывает данные о системе. Для более подробной информации лучше вводить uname -a. Будут выведены имя компьютера и версия ядра.
$ uname -a
Linux fedora 6.1.14-200.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Feb 26 00:13:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
uptime — время работы системы.
Показывает время непрерывной работы ОС и количество пользователей.
$ uptime
22:18:30 up 14 days, 21:50, 1 user, load average: 0.48, 0.53, 0.54
date — вывод даты и времени.
Показания можно форматировать, например установить 12-/ 24-часовой формат, получить наносекунды и тому подобное.
$ date
Tue 21 Mar 22:18:58
cat /etc/*-release — информация о дистрибутиве.
$ cat /etc/*-release
Fedora release 37 (Thirty Seven)
NAME="Fedora Linux"
VERSION="37 (Workstation Edition)"
Команды Linux для управления файлами и папками
pwd — «где я?».
Позволяет узнать, в какой папке вы находитесь.
$ pwd
/home/tam
file — определение типа файла.
Покажет, с чем вы имеете дело (текстовый документ, картинка, папка).
$ file Dropbox/
Dropbox/: directory
mount/umount — подключение/отключение дисков.
Используется для монтирования дисков, устройств, файловых систем, ISO-образов. Требуются права суперпользователя.
У команд много опций. Смотрите их описание в руководстве, чтобы выбрать ту, которая подходит под вашу задачу.
$ mount /dev/sdb1 /mnt — эта команда примонтирует флешку.
$ sudo umount /dev/sdb1 — а эта, наоборот, демонтирует её.
ls — просмотр содержимого директории.
По умолчанию показывает текущую папку. Чтобы посмотреть, что внутри другой папки, нужно прописать путь к ней.
ls [адрес_конкретной_папки] — покажет, что в этой папке с аргументом -R выдаст, что лежит в подпапках.
$ ls Desktop
2014.pdf
50689841.pdf
959f945cb24b3d3f7b68306e5ce1b301.jpg
98551794.pdf
archive
dir00
dir01
dir02
dir03
dir04
dir05
Полезные опции:
ls -l выводит список содержимого с подробной информацией.
ls -a показывает скрытые файлы.
du — информация о размере файла или папки.
Полезные опции:
-h — выдаёт размеры в лёгком для чтения формате.
-s — выводит минимум данных.
-d — устанавливает глубину рекурсии по папкам.
$ du -h -s Desktop/
15G Desktop/
df — анализ дискового пространства.
Выдаёт информацию о файловых системах, их размере, использованном и свободном месте.
Полезная опция:
-h — вывод в удобном для чтения формате.
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 7.8G 212M 7.6G 3% /dev/shm
tmpfs 3.1G 1.9M 3.1G 1% /run
/dev/nvme0n1p4 36G 21G 14G 60% /
tmpfs 7.8G 54M 7.7G 1% /tmp
/dev/nvme0n1p2 974M 271M 636M 30% /boot
/dev/nvme0n1p3 432G 342G 68G 84% /home
/dev/nvme0n1p1 200M 18M 183M 9% /boot/efi
tmpfs 1.6G 12M 1.6G 1% /run/user/1000
cd — навигация по папкам.
cd [адрес_папки] — перемещение в нужную папку.
Вызов без параметров возвращает в домашнюю директорию.
cd .. — выход на уровень вверх.
cd - — возврат в предыдущую папку.
$ cd Desktop/
[tam@fedora Desktop]$
Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + два раза нажмите Tab.
$ cd +
archive/ iscan-gt-s600-bundle-2.30.4.x64.rpm/
dir00/ pics/
dir01/ OneDrive/
dir02/ OneDrive-2021/
dir03/ Photos/
dir04/ Photos_c/
dir05/ REACT/
Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab.
cd + D
dir00/ dir01/ dir02/ dir03/ dir04/ dir05/
diff — разница между файлами.
Показывает отличия двух текстовых документов.
$ diff textfile-1.txt textfile-2.txt
1,2c1,2
< Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + двойной Tab.
< Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab.
---
> diff — разница между файлами.
> Показывает разницу между двумя текстовыми файлами.
mkdir — создание новой папки.
Чтобы создать всю структуру папки с подпапками добавьте параметр -p.
$ mkdir Desktop/myfolder
Команда mkdir -p /home/MyNewFolder/OldFolder создаст папку MyNewFolder в домашней директории и переместит в эту новую папку OldFolder, которая была создана ранее.
Чтобы создать сразу 33 папки, достаточно написать:
$ mkdir dir{00..33}
$ ls
dir00 dir04 dir08 dir12 dir16 dir20 dir24 dir28 dir32
dir01 dir05 dir09 dir13 dir17 dir21 dir25 dir29 dir33
dir02 dir06 dir10 dir14 dir18 dir22 dir26 dir30
dir03 dir07 dir11 dir15 dir19 dir23 dir27 dir31
touch — создание файла.
Изначально команда предназначалась для изменения времени последнего открытия файла или папки, но на практике её чаще используют для создания новых файлов.
$ touch /home/Ivan /myfile.txt
cp — копирование файлов и папок.
Для копирования вложенных папок и файлов нужно добавить параметр -r (Recursive).
$ cp myfile.txt /home/Ivan/Desktop
mv — перемещение/переименование файлов и папок.
В Linux переименование — это как бы перемещение файла в ту же самую папку, но уже под другим именем.
$ mv oldname.txt newname.txt
С помощью этой команды можно переименовать сразу несколько файлов.
$ for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
Код выше поменяет расширение всех файлов в папке с .html на .php.
Здесь используется цикл for, который проходится по всем файлам с расширением .html. Код во второй строке перемещает каждый элемент списка в новое место (= переименовывает), заменяя .html на .php. Фрагмент ${file%.html} удаляет части имени файла .html. Done в третьей строке означает конец цикла for.
rename — переименование файлов.
Более продвинутая, чем mv, команда. Но она требует знания регулярных выражений. С rename превращение .html в .php будет выглядеть так:
$ rename 's/.html/.php/' \*.html
Здесь s/ (оператор подстановки) отвечает за поиск строки (.html) и её замену на .php. Квантификатор * означает ноль или более повторений.
rm — удаление файлов и папок.
Чтобы удалить вложенные папки и файлы добавьте параметр -r. Важно: rm удаляет файл или папку без возможности восстановления обычными способами.
rm -rf/ — была когда-то одной из самых опасных команд, потому что удаляла всё и навсегда. Вот её расшифровка:
rm — удалить файлы;
-rf — удалить рекурсивно, то есть пройти по вложенным папкам;
/ — начать с корневой директории.
Поскольку были пользователи, которые не читали мануал и страдали из-за шутников, советовавших чинить свою систему с помощью такой команды, в более поздних версиях Linux её разрушительные возможности ограничили. Ну и да — даже когда она работала как часы, её надо было запускать с правами суперпользователя.
ln — создание жёсткой или символической ссылки на файл.
Символическая ссылка — это примерный аналог ярлыка в Windows. Она просто указывает на файл, а жёсткая — ведёт на физический адрес на диске и фактически создаёт копию файла.
Создание жёсткой ссылки:
$ ln /home/ivan/videos/video.mp4 /home/ivan/Desktop/hard_link_to_video_file
Создание символической ссылки:
$ ln -s /home/ivan/video.mp4 soft_link_to_video_file
find — поиск по файловой системе.
Очень полезная команда. Позволяет не только искать файлы и папки по заданным критериям, но и совершать дополнительные действия с ними.
find ./myfolder -name file.txt
find ./myfolder -name *.txt
find ./myfolder -name somefile.txt -exec rm -i {} \
Здесь мы говорим: найди (find) в папке ./myfolder файл с именем (-name) somefile.txt и выполни (-exec) команду удаления (rm) всех файлов {}, спрашивая при этом каждый раз подтверждение (-i).
Опций гораздо больше, см. man.
dd — копирование и преобразование файлов и разделов.
Позволяет копировать и перемещать целые разделы и отдельные файлы.
Нужно указать исходный файл, место, куда копировать и необходимые дополнительные опции.
Часто используется для создания Live USB. Создать образ диска:
$ sudo dd if=/dev/sda of=/tmp/sdadisk.img
wc — статистика по файлу.
Выдаёт количество строк, слов, знаков и байтов.
$ wc ~/Desktop/textfile-1.txt
2 32 312 /home/tam/Desktop/textfile-1.txt
wget — загрузка файлов из Сети.
Позволяет скачивать изображения, документы, веб-страницы.
$ wget https://www.somesite.ru/some.jpg
$ wget ya.ru
--2023-03-22 00:42:47-- http://ya.ru/
Resolving ya.ru (ya.ru)... 2a02:6b8::2:242, 77.88.55.242, 5.255.255.242
Connecting to ya.ru (ya.ru)|2a02:6b8::2:242|:80... connected.
[...]
Length: 1727 (1.7K) [text/html]
Saving to: 'index.html'
index.html 100%[===================>] 1.69K --.-KB/s in 0s
2023-03-22 00:42:48 (69.8 MB/s) - 'index.html' saved [1727/1727]
Команды для управления правами на файлы и директории
Многие действия в системе выполняются с правами суперпользователя, например установка обновлений, программ или их удаление.
sudo — получение прав суперпользователя.
Например, с помощью следующей команды мы обновим пакеты в Fedora Linux:
$ sudo dnf update
sudo su — удобная опция, если нужно выполнить сразу много команд от имени суперпользователя. Если ввести это один раз, далее можно писать нужные команды.
Опытные пользователи советуют избегать этой команды из соображений безопасности.
sudo!! — запуск ранее введённой команды с правами администратора.
sudo gksudo — запуск графических утилит от имени суперпользователя. Формат команды такой: sudo gksudo [название приложения, которое нужно запустить].
Но sudo есть по умолчанию не во всех дистрибутивах. Например, в таких дистрибутивах, как Arch Linux, Gentoo и некоторых других, которые позволяют пользователю настраивать систему почти без ограничений, sudo нужно устанавливать отдельно. Но везде есть su.
chmod — изменение прав доступа к файлу.
Можно дать права на чтение, запись и запуск файла.
chmod опции права /[путь_к_файлу].
Есть три основных вида прав:
- r — чтение;
- w — запись;
- x — выполнение.
И три вида пользователей:
- u — владелец файла;
- g — группа файла;
- o — остальные пользователи.
Есть также цифровой формат записи:
- 0 — никаких прав;
- 1 — только выполнение;
- 2 — только запись;
- 3 — выполнение и запись;
- 4 — только чтение;
- 5 — чтение и выполнение;
- 6 — чтение и запись;
- 7 — чтение, запись и выполнение.
$ chmod o+w *.txt
Эта команда разрешит остальным пользователям (всем, кроме владельца файла) чтение и запись в текстовые файлы.
$ chmod -R 777 /
Эта команда даст всем пользователям право читать, писать и запускать файлы в системе.
chown — изменение владельца файла, папки.
Для выполнения этой команды нужно обладать правами суперпользователя.
Чтобы поменять владельца для вложенных файлов и папок, добавьте параметр -R.
Команды для управления пользователями
В Linux может быть несколько пользователей с разными правами.
useradd/userdel/usermod — добавление, удаление, изменение пользователя.
useradd userName — добавить пользователя.
passwd userName — задать пароль для пользователя. При наборе пароля в терминале не будут отображаться никакие символы, но система учтёт все нажатые клавиши.
userdel userName — удалить учётную запись.
usermod userName — редактировать учётную запись.
Команды управления сетью
hostname — определение домена.
Выводит адрес DNS вашей машины.
$ hostname
fedora
С опцией -i покажет текущий IP-адрес компьютера.
ip — работа с сетью.
Эта команда заменяет множество других команд, которые раньше использовались для настроек сети, например ifconfig, ipconfig, netstat и прочие.
ip -a — информация о сетевых настройках.
$ ip -a
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { address | addrlabel | amt | fou | help | ila | ioam | l2tp |
link | macsec | maddress | monitor | mptcp | mroute | mrule |
neighbor | neighbour | netconf | netns | nexthop | ntable |
ntbl | route | rule | sr | tap | tcpmetrics |
token | tunnel | tuntap | vrf | xfrm }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec | -j[son] | -p[retty] |
-f[amily] { inet | inet6 | mpls | bridge | link } |
-4 | -6 | -M | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
-c[olor]}
ip address show — выводит сведения о сетевых адресах.
ip route — управление маршрутизацией.
ip -help — узнать все варианты использования.
ping — диагностика сети.
Ping используется для проверки подключения к интернету и тестирования качества связи. Самый простой способ проверить работу сети — ввести ping google.com. Для отмены выполнения команды нажмите Ctrl + C. Также с помощью этой команды можно проверять соединение со своим сервером.
$ ping google.com
PING google.com(lb-in-f101.1e100.net (2a00:1450:4010:c1e::65)) 56 data bytes
64 bytes from lb-in-f101.1e100.net (2a00:1450:4010:c1e::65): icmp_seq=1 ttl=108 time=40.9 ms
traceroute — как ping, но лучше.
Выводит не только маршрут сетевых пакетов, но и данные по узлу и время доставки пакетов.
nethogs — информация о трафике.
Полезная утилита, которая помогает определить, какая программа сколько трафика потребляет. Не во всех системах установлена по умолчанию.
Команды для архивирования
zip — архивирование файла.
Упаковывает файлы в zip-архив.
$ zip my-archive.zip /home/Ivan/file-to-archive.txt
unzip — распаковка архива.
Извлекает файлы из архива.
tar — создание резервных копий.
Утилита tar тоже создаёт архивы, но уже с расширением .tar. В отличие от zip, она не сжимает файлы, поэтому её чаще используют для резервного копирования.
Выполняется с параметрами -cf. Просмотреть содержимое .tar можно с помощью опций -tvf. Для распаковки архива .tar используются опции -xvf.
tar -xvf newark.tar
- -c, --create — создать новый архив;
- -t, --list — вывести список содержимого архива;
- -x, --extract — извлечь файлы из архива;
- -v, --verbose — вывести список с деталями;
- -f, --file — файл (архив).
Команды для работы с текстом
Для этих целей используются редакторы Nano и Vim, которые запускаются прямо в окне терминала.
nano — запуск текстового редактора Nano.
$ nano textfile-1.txt

Скриншот: Skillbox Media
Внизу вы видите подсказки к основным командам редактора. Введя текст, сохраните его, нажав комбинацию клавиш Ctrl + О и выходите с помощью Ctrl + X.
vim — запуск текстового редактора Vim.
Vim намного мощнее и сложнее Nano, зато Vim можно использовать как полноценную IDE для программирования и/или работы с текстами. Для выхода из редактора введите :q.

Скриншот: Skillbox Media
У нас есть полноценный курс по Vim для начинающих.
echo — вывод строки в терминал.
Простая и популярная команда, используется для вывода текста в терминал или файл.
$ echo Hello, World!
Hello, World!
С помощью опции -e можно запускать специальные последовательности. Например, добавив \n, можно выводить слова на новых строках.
$ echo -e "Hello, \nWorld \n!"
Hello,
World
!
Можно раскрасить вывод в разные цвета, а добавив *, вывести содержимое папки.
$ echo *
dir00 dir01 dir02 dir03 dir04 dir05 dir06 dir07 dir08 dir09 dir10 dir11 dir12 dir13 dir14 dir15 dir16 dir17 dir18 dir19 dir20 dir21 dir22 dir23 dir24 dir25 dir26 dir27 dir28 dir29 dir30 dir31 dir32 dir33 index.html
cat — просмотр содержимого файла.
Команда cat выводит в терминал содержимое файла, который вы укажете в качестве параметра. Вот как она выглядит: cat [путь_к_файлу].
$ cat textfile-1.txt
Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + двойной Tab.
Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab.
По этой команде выводится содержимое файла, переданного в параметре.
Можно передать сразу несколько файлов.
Можно объединить содержимое нескольких файлов в новом с помощью символа >.
$ cat textfile-1.txt textfile-2.txt > textfile-3.txt
С помощью опции -n (Number) можно вывести определённое количество строк.
grep — поиск по текстовым файлам.
Мощная команда для поиска внутри файлов. Ищет по слову, строке или регулярному выражению.
Чтобы команда вывела найденное в терминал, перед ней нужно ввести cat.
Например, для поиска слова «кот» в файле cats.txt можно ввести:
$ cat cats.txt | grep кот
head — просмотр начала файла.
Похожа на cat, но по умолчанию показывает только первые 10 строк текста.
Для изменения числа выводимых строк есть параметр -n.
head -n 5 ~/Desktop/myfile.txt покажет первые пять строк файла.
$ head -n 5 ~/Desktop/textfile-1.txt
Если нужно посмотреть, куда можно перейти из текущей папки, введите cd + пробел + двойной Tab.
Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + D + двойной Tab.
tail — просмотр конца файла.
Выводит последние строки текста файла.
С помощью опции -c можно вывести определённое количество байт информации из файла.
$ tail -c 100 textfile-3.txt
ми
Показывает разницу между двумя текстовыми файлами.
Параметр -f позволяет следить за изменениями в файле и выводить их на экран.
more/less — просмотр длинных текстов.
less выводит часть большого текста так, что занимает один экран. С опцией -N показывает номера строк. Ниже — пример работы команды (вчитываться в текст не стоит, он не имеет отношения к самой команде — это просто вывод текстовой информации из случайного текстового файла).
$ less -N textfile-3.txt
1. Если нужно посмотреть, куда можно перейти из текущей папки, введите cd 1 + пробел + двойной Tab.
2. Чтобы узнать, какие папки начинаются, например, с буквы D, введите cd + 2 D + двойной Tab.
3. diff -- разница между файлами.
4. Показывает разницу между двумя текстовыми файлами.
more делает то же самое, что и less, но у неё меньше дополнительных опций. Следующая команда выведет текст, начиная с десятой строки.
$ more +10 newtestfile.txt

Скриншот: Skillbox Media
sort — сортировка строк.
Сортирует строки текста по разным критериям.
Полезные опции
-n (Numeric) — сортировка по числовому значению.
-r (Reverse) — переворачивает вывод.
$ sort text-to-sort.txt
computer
data
GUI
line
linux
mouse
skillbox
terminal
$ sort -r text-to-sort.txt
terminal
skillbox
mouse
linux
line
GUI
data
computer
Команды для управления процессами
top — отображение процессов.
Эта команда выводит список всех процессов, запущенных в системе.

Альтернативы: atop, xtop или сочетание ps axu | grep [имя_процесса].
$ ps axu | grep firefox
tam 531905 1.0 3.0 5597628 498708 ? Sl Mar15 96:44 /usr/lib64/firefox/firefox
tam 531917 0.0 0.0 4808 2320 ? Ss Mar15 1:20 /usr/libexec/cgroupify app-gnome-firefox-531905.scope
tam 532027 0.0 0.0 253672 11184 ? Sl Mar15 0:00 /usr/lib64/firefox/firefox -contentproc -parentBuildID 20230214102510 -prefsLen 29270 -prefMapSize 240130 -appDir /usr/lib64/firefox/browser {f6b45f8f-ab5a-4190-88dc-cb4e27948d4e} 531905 socket
Ещё вариант: pidof + [имя процесса].
$ pidof firefox
782667 782616 782563 782548 782341 782031 781966 781483 759503 741791 741676 721674 719583 671683 651779 647050 646496 641065 638796 635042 634566 631565 586886 586388 584499 584009 567091 566046 565460 565175 562873 562301 560923 560876 557257 553088 550860 549445 543830 543783 541594 535504 532439 532437 532180 532096 532027 531905
kill, xkill, pkill — принудительное завершение процессов.
Закрыть программу или завершить процесс можно несколькими способами.
С помощью команды kill: kill [ID_процесса].
Чтобы узнать PID (идентификатор процесса), введите команду top.
С помощью команды xkill. После её ввода вместо курсора появится крестик, наведите его на окно программы, которую нужно закрыть.
С помощью команды pkill (завершение процесса по имени).
pkill firefox
killall — завершение всех процессов с указанным именем.
killall firefox
Пакетные менеджеры. Как установить приложение
Для установки и удаления приложений и обновлений в Linux используются пакетные менеджеры. В каждом дистрибутиве или семействах дистрибутивов они разные.
В Ubuntu и Debian это APT, в Fedora — DNF, в Arch и Manjaro — Pacman, в Gentoo — Portage, в openSUSE — RPM.
Для установки пакетов нужны права суперпользователя. Примеры команд:
dnf (Fedora).
sudo dnf install [имя_пакета] — установка пакета.
sudo dnf update — обновление сведений о пакетах.
sudo dnf upgrade — обновление пакетов.
sudo dnf remove [имя_пакета] — удаление пакета.
dnf autoremove — автоматическое удаление ненужных файлов с их зависимостями.

Скриншот: Skillbox Media
Узнать, есть ли нужная программа в репозиториях или как она точно называется, можно через поиск. В Fedora это команда dnf search [имя пакета].
$ dnf search firefox
Last metadata expiration check: 3:23:53 ago on Tue 21 Mar 2023 22:33:02 MSK.
========================== Name & Summary Matched: firefox ===========================
firefox.x86_64 : Mozilla Firefox Web browser
firefox-langpacks.x86_64 : Firefox langpacks
firefox-pkcs11-loader.x86_64 : Helper script for Firefox that sets up the browser for
: authentication with Estonian ID-card
firefox-wayland.x86_64 : Firefox Wayland launcher.
firefox-x11.x86_64 : Firefox X11 launcher.
============================== Summary Matched: firefox ==============================
icecat.x86_64 : GNU version of Firefox browser
mozilla-https-everywhere.noarch : HTTPS enforcement extension for Mozilla Firefox
mozilla-noscript.noarch : JavaScript white list extension for Mozilla Firefox
mozilla-ublock-origin.noarch : An efficient blocker for Firefox
profile-cleaner.noarch : Script to vacuum and reindex sqlite databases used by Firefox
: and by Chrome
textern.x86_64 : Firefox add-on for editing text in your favorite external editor
webextension-token-signing.x86_64 : Chrome and Firefox extension for signing with your
: eID on the web
Можно также скачать файл и установить его через терминал. Программы, совместимые с дистрибутивами на основе Debian, имеют расширение .deb.
Установить такой файл можно командой dpkg: dpkg -i package.deb.
dpkg —remove package — удаление пакета.
dpkg —purge package — удаление пакета со всеми зависимостями.
Команды выключения и перезагрузки
Linux можно выключить или перезагрузить из терминала. Это незаменимая опция для тех, кто работает без графического окружения, и полезная, если нужно задать разные условия выключения и перезагрузки.
sudo shutdown — выключение системы (обратите внимание, этой программе нужны права суперпользователя).
Полезные опции команды shutdown:
shutdown +[время в 24-часовом формате].
shutdown 05:10 выключит компьютер через 5 часов 10 минут.
shutdown +[время в минутах].
shutdown +7 выключит компьютер через 7 минут.
shutdown +0 или shutdown now — немедленное выключение компьютера.
Полезные клавиши и функции
Tab — автозавершение.
Чтобы не вводить длинные названия файлов и папок или команд, достаточно написать пару первых букв и нажать Tab, система сама дополнит команду или путь к файлу — но только до того символа, с которого начнётся «разветвление». Звучит сложно, но вот пример: если набрать /home/[username]/D, то автокомплит не сработает, потому что по этому пути есть три папки, которые начинаются на букву D — Downloads, Documents и Desktop.
alias — создание синонимов для команд.
С помощью alias можно переименовывать команды или создавать свои. Это удобно, если команда имеет длинное имя, а вы часто ей пользуетесь.
Синтаксис: alias [длинная_команда короткая_команда].
Чтобы узнать, какие алиасы уже есть в системе, введите alias:
$ alias
alias cp='cp -i'
alias df='df -h'
alias egrep='egrep --colour=auto'
alias fgrep='fgrep --colour=auto'
alias free='free -m'
alias grep='grep --colour=auto'
alias ls='ls --color=auto'
alias more='less'
alias np='nano -w PKGBUILD'
Создать алиас для команды clear можно так:
$ alias c='clear'
unalias [alias name] — удалить alias.
Созданным таким образом алиасы сохраняются только до следующей перезагрузки системы. Чтобы сделать алиас постоянным, нужно прописать его в файле ~/.bashrc.
& & — выполнение сразу нескольких команд.
Команды можно связывать и запускать вместе.
[первая_команда] & & [вторая_команда].
| (pipe) — вывод результата первой команды во вторую.
ps axu | grep [имя_процесса].
Горячие клавиши
Ctrl + Shift + T — открыть новую вкладку в терминале.
Ctrl + Shift + C — копировать текст из терминала, аналог Ctrl + C.
Ctrl + Shift + V — вставить текст в терминал, аналог Ctrl + V.
Ctrl + A, Ctrl + E — перемещение в начало/конец строки в терминале.
Alt + B, Alt + F — перемещение по слову назад/вперёд.
Alt + D — удаление следующего слова.
Ctrl + U — удалить всё до начала.
Ctrl + K — удалить всё до конца.
Ctrl + L — очистить экран, не удаляя текущую команду.
Самые главные команды
Может потребоваться установка пакетов cowsay и fortune (sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru).
cowsay — говорящая корова.
cowsay + [любое слово/фраза].
Выведет на экран корову, которая произносит введённое слово.
fortune | cowsay — корова поделится умной мыслью или цитатой.
$ fortune | cowsay
_________________________________________
/ "Call immediately. Time is running out. \
| We both need to do something monstrous |
| before we die." |
| |
| -- Message from Ralph Steadman to |
\ Hunter Thompson /
-----------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
cowsay -l — список других животных.
Выведет список других существ, которых можно вызвать в терминале.
fortune | cowsay -f [животное].
Выведет животное, произносящее умную мысль или цитату.
Итоги
- Обратите внимание: команды и их ключи в терминале Linux чувствительны к регистру — постановка прописной или строчной буквы влияет на их работоспособность.
- Навыки работы с командной строкой помогут легко взаимодействовать практически с любой Unix-подобной операционной системой.
- Использование горячих клавиш позволяет значительно ускорить работу с терминалом — собственно, без них работа будет идти довольно медленно.
Больше интересного про код в нашем телеграм-канале. Подписывайтесь!