Перейти к основному содержимому

Основные команды в 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.


Освоение главы0%