Введение
Командная строка в мире Linux предоставляет мощный инструмент для взаимодействия с операционной системой. Это руководство охватывает основные команды, которые полезны на всех дистрибутивах Linux, таких как CentOS, Ubuntu и Debian.
Навигация по файловой системе
1. pwd — Текущий рабочий каталог
Команда pwd отображает полный путь текущего рабочего каталога:
$ pwd
2. ls — Список файлов и каталогов
Команда ls выводит содержимое текущего каталога:
$ ls
3. cd — Смена директории
Команда cd используется для изменения текущей директории. Например:
$ cd Documents
Работа с файлами и каталогами
1. cp — Копирование файлов и каталогов
Команда cp копирует файлы или каталоги. Пример:
$ cp file.txt Backup/
2. mv — Перемещение и переименование
Команда mv перемещает или переименовывает файлы. Например:
$ mv file.txt Documents/
3. rm — Удаление файлов и каталогов
Команда rm удаляет файлы. Пример:
$ rm file.txt
Работа с процессами
1. ps — Список активных процессов
Команда ps отображает список активных процессов:
$ ps aux
2. kill — Завершение процесса
Команда kill завершает выполнение процесса по его идентификатору (PID). Например:
$ kill 1234
3. pgrep — Поиск процесса по имени
$ pgrep process_name
4. pkill — Завершение процесса по имени
$ pkill process_name
5. screen — Управление сеансами терминала
a. Создание нового сеанса
$ screen
b. Отключение от сеанса (без завершения)
$ Ctrl-a, d
c. Подключение к ранее созданному сеансу
$ screen -r
6. nice и renice — Управление приоритетом процессов
a. Запуск процесса с измененным приоритетом
$ nice -n 10 command
b. Изменение приоритета запущенного процесса
$ renice +5 -p PID
Работа с сетью
1. ping — Проверка доступности хоста
Команда ping используется для проверки доступности хоста в сети:
$ ping example.com
2. ifconfig — Информация о сетевых интерфейсах
Команда ifconfig выводит информацию о сетевых интерфейсах:
$ ifconfig
Работа с пакетами и программами
1. Управление пакетами в CentOS
a. yum — Установка пакетов
$ yum install package_name
b. yum update — Обновление пакетов
$ yum update
c. yum remove — Удаление пакетов
$ yum remove package_name
2. Управление пакетами в Ubuntu/Debian
a. apt — Установка пакетов
$ apt-get install package_name
b. apt-get update — Обновление информации о пакетах
$ apt-get update
3. Установка пакетов в Ubuntu/Debian с помощью apt
$ sudo apt install package_name
4. Удаление пакетов в Ubuntu/Debian с помощью apt
c. apt-get remove
$ sudo apt remove package_name
Работа с текстовыми файлами
1. cat — Просмотр содержимого файла
$ cat filename.txt
2. nano — Редактор текстовых файлов
$ nano filename.txt
Работа с правами доступа
1. chmod — Изменение прав доступа к файлу
$ chmod +x script.sh
2. chown — Изменение владельца файла
$ chown user:group filename
Работа с архивами
1. tar — Создание и распаковка архивов
a. Создание архива:
$ tar -cvf archive.tar files/
b. Распаковка архива:
$ tar -xvf archive.tar
2. zip и unzip — Архивация и разархивация файлов
a. Создание zip-архива
$ zip archive.zip file1.txt file2.txt
b. Разархивация zip-архива
$ unzip archive.zip
Управление пользователями и группами
1. useradd — Создание нового пользователя
$ useradd newuser
2. passwd — Изменение пароля пользователя
$ passwd username
3. usermod — Изменение параметров пользователя
$ usermod -aG groupname username
4. groups — Просмотр групп, к которым принадлежит пользователь
$ groups username
5. newgrp — Изменение текущей группы пользователя
$ newgrp groupname
Поиск файлов
1. find — Поиск файлов по различным критериям
$ find /path/to/search -name «filename.txt»
Работа с переменными окружения
1. export — Установка переменной окружения
$ export MY_VARIABLE=value
2. echo — Вывод значения переменной
$ echo $MY_VARIABLE
3. env — Вывод всех переменных окружения
$ env
4. unset — Удаление переменной окружения
$ unset VARIABLE_NAME
5. printenv — Вывод всех переменных окружения
$ printenv
Системная информация
1. uname — Информация о системе
$ uname -a
2. df — Информация о дисковом пространстве
$ df -h
Автоматизация задач с помощью скриптов
1. Создание простого Bash-скрипта
#!/bin/bash echo «Hello, World!»
2. Выполнение скрипта
$ bash script.sh
Работа с сетью
1. netstat — Просмотр сетевой статистики и соединений
$ netstat -tulpn
2. ss — Улучшенная версия netstat
$ ss -tulpn
Мониторинг ресурсов системы
1. top — Просмотр текущих процессов и загрузки системы
$ top
2. htop — Интерактивное представление данных о системе
$ htop
Работа с временем
1. date — Вывод текущей даты и времени
$ date
2. timedatectl — Управление системным временем и датой
$ timedatectl
Управление службами
1. systemctl — Управление службами
a. Запуск службы
$ sudo systemctl start service_name
b. Остановка службы
$ sudo systemctl stop service_name
2. journalctl — Просмотр журнала системных сообщений
$ journalctl
Работа с SSH
1. ssh — Удаленное подключение к серверу
$ ssh username@remote_host
2. scp — Копирование файлов по SSH
$ scp local_file.txt username@remote_host:/path/to/destination
Работа с системными журналами
1. dmesg — Вывод системного журнала
$ dmesg
2. journalctl — Фильтрация журнала по сервису
$ journalctl -u service_name
Работа с текстовыми редакторами
1. vim — Мощный текстовый редактор
a. Вход в режим редактирования
$ vim filename.txt
b. Сохранение и выход
В режиме команд нажмите Esc, затем:
:wq
Защита системы
1. ufw — Простой способ управления брандмауэром
a. Установка
$ sudo apt-get install ufw # для Ubuntu/Debian $ sudo yum install ufw # для CentOS
b. Включение и настройка правил
$ sudo ufw enable $ sudo ufw allow 22 # Разрешить SSH
2. fail2ban — Защита от атак на SSH
a. Установка
$ sudo apt-get install fail2ban # для Ubuntu/Debian $ sudo yum install fail2ban # для CentOS
b. Настройка
$ sudo systemctl start fail2ban $ sudo systemctl enable fail2ban
Работа с системой контроля версий
1. git — Основы работы с Git
a. Клонирование репозитория
$ git clone repository_url
b. Добавление и фиксация изменений
$ git add . $ git commit -m «Описание изменений»
c. Отправка изменений на удаленный репозиторий
$ git push origin branch_name
2. git — Управление ветками
d. Создание и переключение на новую ветку
$ git checkout -b new_branch
3. git log — Просмотр истории изменений
$ git log
Работа с Docker
1. docker — Основные команды Docker
a. Запуск контейнера
$ docker run image_name
b. Список активных контейнеров
$ docker ps
c. Остановка и удаление контейнера
$ docker stop container_id $ docker rm container_id
Работа с системными ресурсами
3. free — Информация об использовании памяти
$ free -h
4. iotop — Мониторинг дисковой активности
$ iotop
Работа с Cron
1. crontab — Запланированные задачи
a. Открытие редактора crontab
$ crontab -e
b. Пример задачи, выполняющейся каждый день в 2 часа ночи
0 2 * * * command_to_execute
Мониторинг сетевых соединений
3. nmap — Сканирование сети и портов
a. Сканирование всех портов на удаленном хосте
$ nmap remote_host
b. Сканирование определенного диапазона портов
$ nmap -p 1-100 remote_host
Работа с текстом и потоками данных
3. grep — Поиск в файлах по шаблону
$ grep «pattern» filename
4. sed — Редактирование текста в потоке данных
a. Замена текста в файле
$ sed ‘s/old_text/new_text/g’ filename
5. awk — Обработка и анализ текстовых данных
a. Вывод определенных столбцов из файла
$ awk ‘{print $1, $3}’ filename
Работа с SSL-сертификатами
1. openssl — Генерация SSL-сертификатов
a. Генерация самоподписанного сертификата
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem
Работа с жесткими ссылками и символьными ссылками
1. ln — Создание жестких ссылок
$ ln file.txt hardlink
2. Создание символьных ссылок
$ ln -s target_file softlink
Работа с журналами аудита
1. auditd — Аудит системных событий
a. Установка и запуск службы
$ sudo apt-get install auditd # для Ubuntu/Debian $ sudo yum install auditd # для CentOS $ sudo systemctl start auditd
b. Просмотр журнала аудита
$ sudo ausearch -i
Заключение
Овладение командной строкой в Linux — ключ к эффективному управлению системой. Это руководство предоставляет обширный обзор основных команд, позволяющих вам эффективно работать с файлами, процессами, сетью и пакетами на различных дистрибутивах Linux. Не забывайте практиковаться и осваивать новые команды, чтобы стать опытным пользователем командной строки.