Основные команды в Linux
Основные команды в Linux
Важнейшие команды терминала
| Команда | Назначение |
|---|---|
| ls | Список файлов |
| cd | Переход по папкам |
| pwd | Показать текущую директорию |
| mkdir | Создать папку |
| rm | Удалить файл или папку |
| cp | Копировать файлы |
| mv | Переместить или переименовать |
| cat | Просмотреть содержимое файла |
| nano, vim | Редактирование файлов |
| grep | Поиск по тексту |
| chmod | Изменить права доступа |
| chown | Изменить владельца |
| df | Состояние диска |
| du | Размер папок |
| top, htop | Мониторинг процессов |
| ps | Список процессов |
| kill | Остановка процесса |
| ping | Проверить соединение с хостом |
| curl, wget | Сетевые команды |
| shutdown | Выключение системы |
| reboot | Перезагрузка системы |
| env, printenv, echo $VAR | Просмотр переменных окружения |
| export VAR=value | Установить переменную окружения |
| history | Посмотреть историю введённых команд |
| man команда | Получить справку по команде |
| which, locate, find | Поиск файлов и программ |
| alias, unalias | Создать/удалить псевдоним для команды |
| tar, zip, unzip | Архивация и распаковка файлов |
| apt, dnf, pacman, snap, flatpak | Установка и удаление программ |
| sudo | Выполнить команду от имени root |
| su | Переключиться на другого пользователя |
| clear | Очистить терминал |
| touch | Создать пустой файл |
| ln | Создать символическую или жёсткую ссылку |
| date, timedatectl | Показать или изменить дату и время |
| whoami | Показать имя текущего пользователя |
| id | Показать ID пользователя и группы |
| groups | Показать группы, в которых состоит пользователь |
| passwd | Изменить пароль |
| systemctl | Управление службами (включить/отключить/перезапустить) |
| journalctl | Просмотр логов системы (на systemd) |
Примеры работы с файловой системой
ls — просмотр содержимого каталога
$ ls
Documents Downloads Music Pictures Videos
lsвыводит список файлов и папок в текущем каталоге.- Флаг
-lпоказывает подробную информацию:
$ ls -l
total 20
drwxr-xr-x 2 user user 4096 Mar 10 10:00 Documents
drwxr-xr-x 3 user user 4096 Mar 11 14:22 Downloads
-rw-r--r-- 1 user user 128 Mar 12 09:15 notes.txt
Здесь:
dозначает директорию;rwx— права на чтение, запись и выполнение;user user— владелец и группа;notes.txt— обычный файл.
cd — переход между каталогами
$ pwd
/home/user
$ cd Documents
$ pwd
/home/user/Documents
cd ..поднимается на уровень выше.cd ~возвращает в домашний каталог.cd /переходит в корень файловой системы.
pwd — отображение текущего пути
$ pwd
/home/user/Projects
Команда всегда выводит абсолютный путь к текущей рабочей директории.
mkdir — создание новой папки
$ mkdir my_project
$ ls
my_project
Можно создать вложенные каталоги сразу:
$ mkdir -p project/src/utils
Флаг -p позволяет создавать всю цепочку каталогов, даже если родительские не существуют.
touch — создание пустого файла
$ touch README.md
$ ls
README.md
Если файл уже существует, touch обновляет его временную метку доступа и изменения.
cp — копирование файлов и папок
$ cp notes.txt backup_notes.txt
$ ls
notes.txt backup_notes.txt
Копирование папки рекурсивно:
$ cp -r my_project my_project_backup
Флаг -r указывает на рекурсивное копирование содержимого.
mv — перемещение или переименование
$ mv old_name.txt new_name.txt
$ mv report.pdf ~/Documents/
Первая команда переименовывает файл, вторая — перемещает его в другую директорию.
rm — удаление файлов и каталогов
$ rm temp_file.txt
Удаление папки со всем содержимым:
$ rm -rf old_project/
-r— рекурсивное удаление;-f— принудительное, без запросов подтверждения.
⚠️ Предупреждение
Командаrm -rfнеобратима. Удалённые данные нельзя восстановить стандартными средствами.
cat — вывод содержимого файла
$ cat config.json
{
"port": 8080,
"debug": true
}
Для длинных файлов удобнее использовать less или more, но cat идеален для коротких текстов.
Работа с текстом и поиском
grep — поиск по шаблону
$ grep "error" app.log
2026-03-10 14:22:01 ERROR Connection timeout
2026-03-11 09:15:33 ERROR Invalid token
Поиск с игнорированием регистра:
$ grep -i "warning" system.log
Флаг -i делает поиск регистронезависимым.
nano — простой текстовый редактор
$ nano script.sh
Открывается интерфейс в терминале. Управление — через нижние подсказки:
^O— сохранить (Ctrl+O);^X— выйти (Ctrl+X).
vim — мощный редактор (кратко)
$ vim config.yaml
Режимы:
- обычный (normal) — навигация и команды;
- вставка (insert) — нажать
i; - выход —
Esc, затем:wqдля сохранения и выхода.
Управление процессами
ps — список запущенных процессов
$ ps aux | grep python
user 1234 0.1 1.2 123456 7890 ? Ssl 10:00 0:05 python3 app.py
a— все процессы;u— в формате пользователя;x— включая те, что без терминала.
top и htop — мониторинг в реальном времени
$ top
Отображает:
- загрузку CPU;
- использование памяти;
- активные процессы.
htop — улучшенная версия с цветом и возможностью управления через клавиши.
kill — завершение процесса
$ kill 1234
Если процесс не реагирует:
$ kill -9 1234
Сигнал -9 (SIGKILL) принудительно завершает процесс.
Сетевые команды
ping — проверка доступности хоста
$ ping -c 4 google.com
PING google.com (142.250.180.78): 56 data bytes
64 bytes from 142.250.180.78: icmp_seq=0 ttl=117 time=24.3 ms
...
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss
Флаг -c 4 ограничивает количество запросов до четырёх.
curl — получение данных из сети
$ curl https://httpbin.org/ip
{
"origin": "192.0.2.1"
}
Полезно для тестирования API, скачивания файлов, отправки запросов.
wget — загрузка файлов
$ wget https://example.com/document.pdf
--2026-03-12 10:30:00-- https://example.com/document.pdf
Resolving example.com... 93.184.216.34
Connecting to example.com|93.184.216.34|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 123456 (120K)
Saving to: ‘document.pdf’
Переменные окружения и пользователи
echo $HOME — вывод значения переменной
$ echo $USER
timur
$ echo $HOME
/home/timur
Имена переменных пишутся заглавными буквами по соглашению.
export — установка переменной
$ export API_KEY="secret123"
$ echo $API_KEY
secret123
Такая переменная будет доступна во всех дочерних процессах текущей сессии.
whoami, id, groups
$ whoami
timur
$ id
uid=1000(timur) gid=1000(timur) groups=1000(timur),4(adm),24(cdrom),27(sudo)
$ groups
timur adm cdrom sudo
Эти команды полезны при диагностике прав доступа.
Управление пакетами (на примере Debian/Ubuntu)
apt — установка программ
$ sudo apt update
$ sudo apt install git
update— обновляет список доступных пакетов;install— устанавливает указанный пакет.
Архивация
tar — создание и распаковка архивов
Создать архив:
$ tar -czvf project.tar.gz project/
c— создать;z— сжать через gzip;v— подробный вывод;f— указать имя файла.
Распаковать:
$ tar -xzvf project.tar.gz
Справка и поиск
man ls — справочная страница
$ man grep
Открывает документацию по команде. Навигация — стрелками или PgUp/PgDn. Выход — клавиша q.
which, find, locate
Где находится исполняемый файл:
$ which python3
/usr/bin/python3
Поиск файла по имени:
$ find /home -name "*.log"
/home/timur/app.log
Быстрый поиск через индекс:
$ locate secrets.txt
/home/timur/.config/secrets.txt
(требует предварительного запуска sudo updatedb)
Алиасы
alias ll='ls -l' — создание псевдонима
$ alias ll='ls -l'
$ ll
total 20
drwxr-xr-x 2 user user 4096 Mar 10 10:00 Documents
...
Алиас действует только в текущей сессии. Для постоянного использования добавьте его в ~/.bashrc.
Управление правами доступа
chmod — изменение прав на файл или каталог
$ ls -l script.sh
-rw-r--r-- 1 timur timur 0 Mar 12 11:00 script.sh
$ chmod +x script.sh
$ ls -l script.sh
-rwxr-xr-x 1 timur timur 0 Mar 12 11:00 script.sh
+x— добавляет право на выполнение для всех (владельца, группы, остальных).- Можно указывать права в числовом виде:
$ chmod 755 script.sh # rwxr-xr-x
$ chmod 644 notes.txt # rw-r--r--
Права:
4— чтение (r);2— запись (w);1— выполнение (x);- Сумма даёт итоговое значение (например,
7 = 4+2+1).
chown — смена владельца файла
$ ls -l report.pdf
-rw-r--r-- 1 timur timur 12345 Mar 12 11:05 report.pdf
$ sudo chown admin:staff report.pdf
$ ls -l report.pdf
-rw-r--r-- 1 admin staff 12345 Mar 12 11:05 report.pdf
Формат: chown пользователь:группа файл.
Работа со службами (systemd)
systemctl — управление службами
Проверить статус службы:
$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Tue 2026-03-12 10:00:00 MSK; 1h 5min ago
Запустить, остановить или перезапустить:
$ sudo systemctl start nginx
$ sudo systemctl stop nginx
$ sudo systemctl restart nginx
Включить автозапуск при старте системы:
$ sudo systemctl enable nginx
Отключить:
$ sudo systemctl disable nginx
journalctl — просмотр системных логов
Последние записи:
$ journalctl -n 20
Логи конкретной службы:
$ journalctl -u nginx
Следить за логами в реальном времени:
$ journalctl -u nginx -f
Состояние системы и дисков
df — информация о дисковом пространстве
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 42% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
Флаг -h делает вывод «человекочитаемым» (в гигабайтах, мегабайтах).
du — размер папок и файлов
Размер текущей директории:
$ du -sh .
2.3G .
-s— сводка (summary);-h— человекочитаемый формат.
Размер всех подкаталогов первого уровня:
$ du -h --max-depth=1
Переменные окружения
env, printenv — просмотр всех переменных
$ printenv | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
export — установка переменной
$ export DB_HOST=localhost
$ echo $DB_HOST
localhost
Такие переменные видны только в текущей сессии. Для постоянного использования добавьте их в ~/.bashrc или ~/.profile.
История и поиск
history — просмотр истории команд
$ history | tail -5
1024 ls -la
1025 cd ~/Projects
1026 git status
1027 nano README.md
1028 history
Выполнить команду по номеру:
$ !1026
# эквивалентно: git status
Очистить историю:
$ history -c
which, whereis, locate, find
Где находится исполняемый файл:
$ which python3
/usr/bin/python3
Поиск бинарника, исходников и мануалов:
$ whereis nginx
nginx: /usr/sbin/nginx /etc/nginx /usr/share/man/man8/nginx.8.gz
Быстрый поиск по индексу:
$ locate my_script.sh
/home/timur/scripts/my_script.sh
Индекс обновляется раз в сутки. Чтобы обновить вручную:
sudo updatedb.
Точный поиск по файловой системе:
$ find /home -name "*.log" -type f
/home/timur/app.log
/home/timur/project/debug.log
Алиасы
alias — создание сокращений
$ alias ll='ls -lh'
$ ll
total 12K
-rw-r--r-- 1 timur timur 128 Mar 12 11:00 notes.txt
drwxr-xr-x 2 timur timur 4.0K Mar 12 11:05 docs/
Удалить алиас:
$ unalias ll
Чтобы алиасы сохранялись между сессиями, добавьте их в ~/.bashrc:
echo "alias ll='ls -lh'" >> ~/.bashrc
Архивация и распаковка
tar — универсальный архиватор
Создать архив:
$ tar -czvf backup.tar.gz /home/timur/docs/
c— create;z— сжать через gzip;v— verbose (подробный вывод);f— имя файла.
Распаковать:
$ tar -xzvf backup.tar.gz
Просмотреть содержимое без распаковки:
$ tar -tzvf backup.tar.gz
zip / unzip
Установка (если отсутствует):
$ sudo apt install zip unzip
Архивация:
$ zip -r project.zip project/
Распаковка:
$ unzip project.zip
Установка программ
apt (Debian/Ubuntu)
Обновить список пакетов:
$ sudo apt update
Установить пакет:
$ sudo apt install htop
Удалить:
$ sudo apt remove htop
Удалить с конфигами:
$ sudo apt purge htop
Другие менеджеры пакетов
- Fedora/RHEL:
dnf install package - Arch Linux:
pacman -S package - Snap:
snap install package - Flatpak:
flatpak install flathub org.gnome.Calculator
Прочие полезные команды
date и timedatectl
Текущая дата и время:
$ date
Thu Mar 12 11:30:45 MSK 2026
Изменить время (требует root):
$ sudo timedatectl set-time "2026-03-12 12:00:00"
Просмотр часового пояса:
$ timedatectl
Local time: Thu 2026-03-12 11:31:00 MSK
Universal time: Thu 2026-03-12 08:31:00 UTC
RTC time: Thu 2026-03-12 08:31:00
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
shutdown и reboot
Выключить систему:
$ sudo shutdown -h now
Перезагрузить:
$ sudo reboot
Отменить запланированное выключение:
$ sudo shutdown -c
clear — очистка терминала
$ clear
Альтернатива: нажать Ctrl + L.