Гайд по самым важным командам Linux/Unix для новичков
-
Linux и Unix имеют философию “всё есть файл” и “делай одно, но делай хорошо”. Команды — это ваш инструмент для управления системой через терминал. В этом гайде разберём самые полезные команды, которые встречаются в 90% работы.
1. Навигация по файловой системе
pwd (Print Working Directory)
Что это: выводит полный путь текущей директории
Зачем нужно: понять, где вы находитесь в файловой системе
pwd /home/user/DocumentsВы в папке Documents, которая находится в /home/user.
ls (List)
Что это: выводит список файлов и папок в текущей директории
Зачем нужно: видеть содержимое папки
Базовое использование:
ls Desktop Documents Downloads PicturesПолезные флаги:
# -l показывает подробную информацию (права доступа, размер, дату) ls -l drwxr-xr-x 5 user user 4096 Jan 9 10:30 Desktop -rw-r--r-- 1 user user 2048 Jan 8 15:42 document.txt # -a показывает скрытые файлы (начинаются с точки) ls -a . .. .config .ssh Desktop document.txt # -h показывает размеры в понятном формате (MB, GB) ls -lh -rw-r--r-- 1 user user 2.5M Jan 8 15:42 video.mp4 # Комбинирование флагов ls -lahКак это работает: ls читает содержимое директории из файловой системы и выводит список. Флаги изменяют формат вывода.
cd (Change Directory)
Что это: меняет текущую директорию (переходит в другую папку)
Зачем нужно: перемещаться по файловой системе
# Переход в конкретную папку cd /home/user/Documents # Переход в домашнюю папку пользователя cd ~ # или просто cd # Переход на уровень выше cd .. # Переход в предыдущую директорию cd - # Переход в корневую директорию cd /Как это работает: shell (интерпретатор команд) изменяет текущее рабочее пространство на указанную директорию. Все последующие команды будут работать относительно этой папки.
2. Работа с файлами и папками
mkdir (Make Directory)
Что это: создаёт новую папку
Зачем нужно: организовать файлы по папкам
# Создание одной папки mkdir myproject # Создание вложенной структуры (флаг -p) mkdir -p /home/user/projects/myapp/src/componentsКак это работает: mkdir вызывает системный вызов для создания директории в файловой системе.
touch
Что это: создаёт пустой файл или обновляет время модификации существующего
Зачем нужно: быстро создать файл или обновить его “дату последнего изменения”
# Создание пустого файла touch index.html # Создание нескольких файлов сразу touch file1.txt file2.txt file3.txt # Обновление времени модификации (полезно для вспомогательных действий) touch existing_file.txt
cp (Copy)
Что это: копирует файлы или папки
Зачем нужно: создать копию файла или резервную копию
# Копирование файла cp document.txt document_backup.txt # Копирование файла в другую папку cp document.txt /home/user/backup/ # Копирование папки со всем содержимым (флаг -r) cp -r myproject myproject_backup # Копирование с информацией о прогрессе (флаг -v) cp -v large_file.iso /backup/ 'large_file.iso' -> '/backup/large_file.iso'Как это работает: cp читает содержимое файла-источника и записывает его в новый файл-назначение.
mv (Move)
Что это: перемещает или переименовывает файлы и папки
Зачем нужно: перенести файл в другую папку или переименовать его
# Переименование файла mv old_name.txt new_name.txt # Перемещение файла в другую папку mv document.txt /home/user/Documents/ # Перемещение и переименование одновременно mv /home/user/Downloads/file.pdf /home/user/Documents/important_file.pdf # Перемещение папки mv old_project_folder new_project_folderКак это работает: mv изменяет указатель на файл в файловой системе, поэтому это очень быстро даже для больших файлов.
rm (Remove)
Что это: удаляет файлы или папки
Зачем нужно: удалить ненужные файлы
# Удаление файла rm temporary_file.txt # Удаление папки со всем содержимым (флаг -r) rm -r old_project/ # Удаление с подтверждением перед каждым файлом (флаг -i) rm -i *.log remove file1.log? y remove file2.log? n # Принудительное удаление без подтверждения (флаг -f) rm -f file.txt # Комбинирование флагов rm -rf /path/to/folder
️ Важно: Linux не имеет “корзины” — удаленные файлы очень сложно восстановить. Будьте осторожны с rm -rf.Как это работает: rm удаляет запись о файле из директории и помечает место на диске как свободное. Данные еще какое-то время остаются на диске, но получить к ним доступ становится очень сложно.
3. Просмотр содержимого файлов
cat (Concatenate)
Что это: выводит полное содержимое файла
Зачем нужно: быстро посмотреть содержимое небольших текстовых файлов
# Просмотр содержимого файла cat config.txt server=localhost port=5432 database=mydb # Просмотр нескольких файлов (выведет один за другим) cat file1.txt file2.txt # Нумерация строк (флаг -n) cat -n script.sh 1 #!/bin/bash 2 echo "Hello" 3 date # Показание символов конца строк (полезно для отладки) cat -A file.txt hello$ world $Как это работает: cat читает содержимое файла и выводит его в стандартный вывод (stdout).
less и more
Что это: просматривает файл по страницам (постраничный просмотр)
Зачем нужно: смотреть большие файлы без перегрузки экрана
# Постраничный просмотр большого файла less large_log_file.txt # После запуска less используйте: # Space или Page Down - следующая страница # b или Page Up - предыдущая страница # g - в начало файла # G - в конец файла # /search_term - поиск текста # q - выходКак это работает: less подгружает файл по частям, позволяя экономно использовать память и быстро навигировать по большим файлам.
head и tail
Что это: выводит начало (head) или конец (tail) файла
Зачем нужно: посмотреть первые/последние строки логов или файлов
# Вывод первых 10 строк (по умолчанию) head log.txt 2026-01-09 10:15:23 INFO Starting application 2026-01-09 10:15:25 INFO Database connected ... # Вывод первых 20 строк head -20 log.txt # Вывод последних 10 строк tail log.txt # Вывод последних 50 строк tail -50 log.txt # Отслеживание нового содержимого в реальном времени (очень полезно для логов) tail -f /var/log/syslog 2026-01-09 10:35:12 kernel: [12345.123456] CPU0: Package temperature/speed normal 2026-01-09 10:35:15 kernel: [12348.456789] systemd[1]: Started session... # Будет обновляться по мере появления новых строкКак это работает: head читает файл с начала и выводит N строк, tail ищет конец файла и выводит N последних строк. Флаг -f создаёт постоянный поток данных.
4. Поиск и фильтрация
find
Что это: ищет файлы и папки по различным критериям
Зачем нужно: быстро найти нужный файл в большой структуре папок
# Поиск файла по имени в текущей директории и подпапках find . -name "document.txt" ./Documents/document.txt # Поиск всех файлов с расширением .log find . -name "*.log" # Поиск в конкретной директории find /var/log -name "*.log" # Поиск файлов больше определённого размера (здесь более 100 MB) find . -size +100M # Поиск файлов, изменённых в течение последних 7 дней find . -mtime -7 # Поиск папок (тип -type d) find . -type d -name "node_modules" # Поиск файлов (тип -type f) find . -type f -name "*.js" # Комбинирование условий find /home/user/projects -type f -name "*.js" -size +1M # Выполнение команды для каждого найденного файла find . -name "*.txt" -exec rm {} \; # Здесь {} заменяется на имя файла, ; закрывает командуКак это работает: find рекурсивно проходит по директориям, проверяя каждый файл по заданным условиям.
grep
Что это: ищет текст внутри файлов по шаблону
Зачем нужно: найти строку в файле или отфильтровать вывод других команд
# Поиск в одном файле grep "error" log.txt 2026-01-09 10:15:23 ERROR Connection failed 2026-01-09 10:16:45 ERROR Timeout # Поиск во всех файлах папки (флаг -r рекурсивный) grep -r "TODO" /home/user/project project/app.js:// TODO: refactor this function project/utils.js:// TODO: add error handling # Поиск с игнорированием регистра (флаг -i) grep -i "ERROR" log.txt # найдёт error, Error, ERROR и т.д. # Показание номеров строк (флаг -n) grep -n "config" config.js 5:const config = require('./config.json'); 12:const dbConfig = config.database; # Инверсия поиска - строки, НЕ содержащие шаблон (флаг -v) grep -v "^#" config.txt # выведет все строки, кроме комментариев (начинающихся с #) # Подсчёт количества совпадений (флаг -c) grep -c "error" log.txt 47 # Использование регулярных выражений (флаг -E) grep -E "^[0-9]{4}-[0-9]{2}-[0-9]{2}" log.txt # найдёт строки, начинающиеся с даты в формате YYYY-MM-DD # Комбинирование с другими командами через pipe (|) cat log.txt | grep "error" | wc -l # подсчитает количество строк с "error"Как это работает: grep читает файл строку за строкой и проверяет каждую строку по заданному шаблону.
5. Работа с процессами и системой
ps (Process Status)
Что это: показывает запущенные процессы
Зачем нужно: увидеть, какие программы работают в системе
# Просмотр процессов текущего пользователя ps PID TTY STAT TIME COMMAND 1234 pts/0 Ss 0:00 bash 1456 pts/0 R+ 0:00 ps # PID - идентификатор процесса # TTY - терминал, в котором запущен процесс # STAT - статус процесса (S = sleeping, R = running) # COMMAND - команда, запустившая процесс # Полный список всех процессов в системе ps aux # aux означает: # a - все процессы для всех пользователей # u - подробный формат # x - включить процессы без контролирующего терминала # Примеры вывода: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.4 103008 6720 ? Ss 10:00 0:02 /sbin/init user 1234 0.0 1.2 4523456 45320 ? S 10:15 0:05 node app.jsКак это работает: ps читает информацию о процессах из файловой системы Linux (/proc) и выводит её в форматированном виде.
top
Что это: интерактивный монитор процессов в реальном времени
Зачем нужно: видеть, какие процессы потребляют больше всего ресурсов (CPU, памяти)
# Запуск top top # Вывод будет выглядеть так: top - 10:36:45 up 5 days, 2:15, 1 user, load average: 0.45, 0.52, 0.48 Tasks: 156 total, 2 running, 154 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.3 us, 1.1 sy, 0.0 ni, 96.2 id, 0.1 wa, 0.2 hi, 0.1 si MiB Mem : 16384.0 total, 12456.3 free, 2048.5 used, 1879.2 buff/cache MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 13985.6 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2345 user 20 0 1234567 456789 98765 S 8.3 2.8 2:15.47 firefox 1890 root 20 0 345678 123456 67890 S 3.1 0.8 1:05.32 systemd-journalКлючевые навыки использования top:
q- выход из topk- убить процесс (введите PID)Shift+M- сортировка по памятиShift+P- сортировка по CPU (по умолчанию)
kill
Что это: останавливает (завершает) процесс по его PID
Зачем нужно: закрыть зависший процесс или остановить ненужную программу
# Нормальное завершение процесса (дает процессу время на очистку) kill 2345 # Принудительное завершение (жёсткий kill) kill -9 2345 # 9 - это сигнал SIGKILL, он не может быть проигнорирован # Другие полезные сигналы: kill -15 2345 # SIGTERM - вежливый запрос на завершение (по умолчанию) kill -19 2345 # SIGSTOP - приостановка процесса kill -18 2345 # SIGCONT - продолжение приостановленного процесса # Поиск PID и kill в одной команде pkill firefox # убьёт все процессы с именем firefoxКак это работает: kill отправляет сигнал операционной системы процессу. Процесс может обработать этот сигнал по-своему.
6. Работа с правами доступа
chmod (Change Mode)
Что это: меняет права доступа к файлам и папкам
Зачем нужно: контролировать, кто может читать, писать и выполнять файлы
# Права доступа в Linux состоят из трёх групп: # rwx rwx rwx # | | └─ права для остальных (other) # | └───── права для группы (group) # └───────── права для владельца (user/owner) # r (read) - чтение (4) # w (write) - запись (2) # x (execute) - выполнение (1) # Пример прав: drwxr-xr-x # d - это директория # rwx - владелец может читать, писать и выполнять # r-x - группа может читать и выполнять (но не писать) # r-x - остальные могут читать и выполнять (но не писать) # Численный способ (самый простой): chmod 755 script.sh # 7 = rwx для владельца (4+2+1) # 5 = r-x для группы (4+0+1) # 5 = r-x для остальных (4+0+1) # Символический способ: chmod u+x script.sh # добавить execute для владельца chmod g+w file.txt # добавить write для группы chmod o-r file.txt # убрать read для остальных chmod a+r file.txt # добавить read для всех (a = all) # Делает скрипт исполняемым chmod +x script.sh # Рекурсивное изменение прав для папки и содержимого chmod -R 755 /path/to/folderКак это работает: каждый файл в Linux содержит информацию о правах доступа. chmod изменяет эту информацию.
chown (Change Owner)
Что это: меняет владельца файла или папки
Зачем нужно: изменить, кто является владельцем файла
# Изменение владельца (требует прав администратора) sudo chown newuser file.txt # Изменение владельца и группы одновременно sudo chown newuser:newgroup file.txt # Рекурсивное изменение для папки и содержимого sudo chown -R newuser:newgroup /path/to/folder # Практический пример: файл создан от имени root, нужна смена на обычного пользователя sudo chown -R user:user /home/user/project
7. Управление пакетами и установка программ
apt / apt-get (Debian/Ubuntu)
Что это: менеджер пакетов для Debian-based систем (Ubuntu, Debian и т.д.)
Зачем нужно: устанавливать, обновлять и удалять программы
# Обновление списка доступных пакетов sudo apt update # Установка пакета sudo apt install nodejs # Установка нескольких пакетов одновременно sudo apt install git curl wget # Обновление установленных пакетов до последней версии sudo apt upgrade # Удаление пакета sudo apt remove nodejs # Удаление пакета и его конфигурационных файлов sudo apt purge nodejs # Поиск пакета apt search postgres postgresql - object-relational SQL database postgresql-client - front-end programs for PostgreSQL ... # Показание информации о пакете apt show nodejs Package: nodejs Version: 18.12.1-1nodesource1 Priority: optional Section: devel ...
yum / dnf (RedHat/Fedora)
Что это: менеджер пакетов для RedHat-based систем (Fedora, RHEL, CentOS)
Зачем нужно: то же самое, что apt, но для другого семейства Linux
# Обновление списка пакетов (обычно автоматически) sudo dnf check-update # Установка пакета sudo dnf install nodejs # Обновление пакетов sudo dnf upgrade # Удаление пакета sudo dnf remove nodejs # Поиск пакета sudo dnf search postgres
8. Работа с текстом и обработка данных
wc (Word Count)
Что это: считает строки, слова и символы в файле
Зачем нужно: получить статистику по размеру файла
# Подсчёт строк, слов и символов wc document.txt 42 156 1024 document.txt # 42 строки, 156 слов, 1024 символа # Только количество строк (флаг -l) wc -l log.txt 1523 log.txt # Только количество слов (флаг -w) wc -w document.txt 156 document.txt # Только количество символов (флаг -c) wc -c document.txt 1024 document.txt # Для нескольких файлов и итога wc -l *.log 100 file1.log 250 file2.log 180 file3.log 530 total
sort и uniq
Что это: sort сортирует строки, uniq удаляет дубликаты
Зачем нужно: организовать или очистить данные
# Сортировка содержимого файла sort data.txt # выведет строки в алфавитном порядке # Числовая сортировка (флаг -n) sort -n numbers.txt # отсортирует как числа, а не строки # "2" будет перед "10", а не после # Сортировка в обратном порядке (флаг -r) sort -r data.txt # Удаление дубликатов (при условии, что файл отсортирован) sort data.txt | uniq # Показание только дубликатов (флаг -d) sort data.txt | uniq -d # Показание количества повторений (флаг -c) sort data.txt | uniq -c 3 apple 1 banana 2 cherry
cut
Что это: извлекает колонки из текста
Зачем нужно: получить определённые поля из структурированных данных
# Извлечение 1-го и 3-го полей, разделённых табуляцией cut -f1,3 data.tsv # Извлечение первых 10 символов каждой строки (флаг -c) cut -c1-10 long_text.txt # Указание другого разделителя (флаг -d) cut -d',' -f1,2 data.csv # для CSV файлов, где разделитель - запятая
9. Перенаправление и pipes
Это очень важно для работы в Linux. Pipes позволяют связывать команды вместе.
Pipe (|)
Что это: передаёт вывод одной команды на вход другой
Зачем нужно: объединять простые команды в мощные цепочки
# Вывести только строки с ошибками из большого лог-файла cat huge_log.txt | grep "ERROR" # Отсортировать ошибки cat huge_log.txt | grep "ERROR" | sort # Удалить дубликаты из отсортированного списка cat huge_log.txt | grep "ERROR" | sort | uniq # Подсчитать количество ошибок cat huge_log.txt | grep "ERROR" | wc -l 42 # Более сложный пример: найти 5 самых частых ошибок cat huge_log.txt | grep "ERROR" | cut -d' ' -f4 | sort | uniq -c | sort -rn | head -5 15 Connection 8 Timeout 7 Authentication 6 Database 4 Memory
Перенаправление ввода-вывода (>, >>, <)
Что это: перенаправляет вывод команды в файл или входные данные из файла
Зачем нужно: сохранять результаты команд в файлы
# Перенаправление вывода в файл (перезапишет файл) echo "Hello" > output.txt # содержимое output.txt: Hello # Добавление вывода в конец файла (не перезапишет) echo "World" >> output.txt # содержимое output.txt: Hello\nWorld # Перенаправление входа из файла cat < input.txt # Перенаправление ошибок в файл (2 это stderr) ls /nonexistent 2> errors.txt # нормальный вывод в консоль, ошибки в файл # Перенаправление и нормального вывода и ошибок в один файл ls /nonexistent > output.txt 2>&1 # Отправка вывода в никуда (полезно для скрытия сообщений) rm /tmp/* 2>/dev/nullКак это работает: операционная система имеет три стандартных потока: stdin (0), stdout (1) и stderr (2). Перенаправление меняет, куда идёт данный поток.
10. Полезные утилиты
echo
Что это: выводит текст
Зачем нужно: выводить сообщения, переменные, создавать содержимое файлов
# Простой вывод echo "Hello, World!" Hello, World! # Вывод переменной echo $HOME /home/user # Вывод без переноса строки (флаг -n) echo -n "Enter name: " # Вывод с интерпретацией escape-последовательностей (флаг -e) echo -e "Line 1\nLine 2\tTabbed" Line 1 Line 2 Tabbed # Создание файла с содержимым echo "server=localhost" > config.txt
man (Manual)
Что это: показывает справку (man-страницы) по командам
Зачем нужно: узнать подробности о команде, её флаги и примеры
# Справка по команде man ls # откроется справка, используйте Space для навигации, q для выхода # Поиск команды по ключевому слову man -k "copy" # выведет все команды, связанные со словом "copy" # Примеры: man grep man chmod man find
which и whereis
Что это: найти, где находится исполняемый файл команды
Зачем нужно: узнать полный путь к программе
# Полный путь к исполняемому файлу which python3 /usr/bin/python3 # Более подробная информация (источник, man-страница, и т.д.) whereis python3 python3: /usr/bin/python3 /usr/share/man/man1/python3.1.gz
date
Что это: выводит текущую дату и время
Зачем нужно: узнать текущее время или использовать в скриптах
# Текущая дата и время date Fri Jan 9 10:36:45 MSK 2026 # Пользовательский формат date "+%Y-%m-%d %H:%M:%S" 2026-01-09 10:36:45 # Использование в скриптах для создания файлов с датой backup_file="backup_$(date +%Y%m%d_%H%M%S).tar.gz" echo $backup_file backup_2026010910364501_363645.tar.gz
tar
Что это: упаковывает и распаковывает архивы
Зачем нужно: создавать резервные копии, передавать группы файлов
# Создание архива (флаг c, v - вывод процесса, f - файл) tar -cvf archive.tar folder/ folder/ folder/file1.txt folder/file2.txt # Создание сжатого архива (.tar.gz через флаг z) tar -cvzf archive.tar.gz folder/ # Распаковка архива tar -xvf archive.tar # Распаковка .tar.gz tar -xvzf archive.tar.gz # Список содержимого архива (без распаковки) tar -tvf archive.tar drwxr-xr-x user/user 0 2026-01-09 10:35 folder/ -rw-r--r-- user/user 1024 2026-01-09 10:35 folder/file1.txt
du (Disk Usage)
Что это: показывает размер файлов и папок
Зачем нужно: узнать, сколько места занимает папка
# Размер текущей папки du . # Размер в понятном формате (MB, GB) du -h 256K ./config 1.2M ./logs 45M ./data 1.3G ./cache # Итоговый размер только du -sh . 48G . # Размер конкретной папки du -sh /home/user/Downloads 3.5G /home/user/Downloads # 10 самых больших папок du -h . | sort -rh | head -10
df (Disk Free)
Что это: показывает свободное место на диске
Зачем нужно: проверить, хватает ли места на диске
# Показание свободного места df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 65G 35G 65% / tmpfs 7.8G 0 7.8G 0% /dev/shm /dev/sda2 500G 420G 80G 84% /home # По файловой системе (флаг -i показывает inodes) df -i
11. Работа с переменными окружения
export
Что это: устанавливает переменную окружения
Зачем нужно: передать переменную всем дочерним процессам (программам)
# Установка переменной для текущей сессии export PATH="/usr/local/bin:$PATH" # Использование переменной echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin # Частая переменная - HOME (домашняя папка) echo $HOME /home/user # USER - текущий пользователь echo $USER user # Переменная для программ (например, NODE_ENV для Node.js) export NODE_ENV=production node app.js # приложение получит переменную
12. Комбинирование команд
&& (И) и || (ИЛИ)
Что это: условное выполнение нескольких команд
Зачем нужно: выполнить команды в определённом порядке или только при успехе
# Выполнить вторую команду, если первая успешна (&&) cd project && npm install # cd выполнится, и если успешно, то выполнится npm install # Выполнить вторую команду, если первая не успешна (||) cd /nonexistent || echo "Directory not found" # cd не выполнится, но выведет "Directory not found" # Комбинирование mkdir backup && cp -r project backup || echo "Backup failed"
Практические примеры использования
Пример 1: Поиск и удаление больших логов
# Найти все файлы .log больше 100 MB и удалить find /var/log -name "*.log" -size +100M -exec rm {} \; # Или с подтверждением перед удалением find /var/log -name "*.log" -size +100M -exec rm -i {} \;
Пример 2: Резервная копия с датой
# Создать архив с датой в названии tar -czf "backup_$(date +%Y%m%d_%H%M%S).tar.gz" important_folder/ # Вывод: # backup_20260109_103645.tar.gz
Пример 3: Мониторинг нового содержимого в логе
# Смотреть новые строки в логе в реальном времени tail -f /var/log/syslog | grep "ERROR" # Альтернатива с цветным выводом (если система поддерживает) tail -f /var/log/syslog | grep --color=auto "ERROR"
Пример 4: Подсчёт количества файлов по типам
# Сколько JavaScript файлов в проекте find . -name "*.js" | wc -l # Какие расширения файлов есть в проекте find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn 234 js 89 json 45 md 12 html
Пример 5: Поиск и удаление дублирующихся файлов по имени
# Найти все файлы, которые встречаются в папке несколько раз find . -type f -exec basename {} \; | sort | uniq -d # Найти конкретный дублирующийся файл find . -name "config.js" -ls # Покажет ВСЕ файлы с именем config.js и их размер
Заключение
Эти команды покрывают 80-90% повседневной работы в Linux/Unix. Ключ к мастерству:
- Понимайте, что делает каждая команда - не просто копируйте команды, понимайте логику
- Используйте man страницы -
man commandвсегда даст вам полную информацию - Экспериментируйте - практика - лучший учитель
- Комбинируйте команды - мощь Unix в ability объединять простые инструменты в сложные цепочки (pipes)
- Будьте осторожны с rm - Linux не имеет корзины!
Удачи в изучении Linux!
© 2024 - 2025 ExLends, Inc. Все права защищены.