Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Системное Администрирование
  4. Bash | Shell
  5. Гайд по самым важным командам Linux/Unix для новичков

Гайд по самым важным командам Linux/Unix для новичков

Запланировано Прикреплена Закрыта Перенесена Bash | Shell
1 Сообщения 1 Постеры 5 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • MugiwaraM Не в сети
    MugiwaraM Не в сети
    Mugiwara
    написал отредактировано
    #1

    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 - выход из top
    • k - убить процесс (введите 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. Ключ к мастерству:

    1. Понимайте, что делает каждая команда - не просто копируйте команды, понимайте логику
    2. Используйте man страницы - man command всегда даст вам полную информацию
    3. Экспериментируйте - практика - лучший учитель
    4. Комбинируйте команды - мощь Unix в ability объединять простые инструменты в сложные цепочки (pipes)
    5. Будьте осторожны с rm - Linux не имеет корзины!

    Удачи в изучении Linux!

    1 ответ Последний ответ
    1

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com
    • Наш чат
    • Наш ТГ канал

    © 2024 - 2025 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы