Базовые команды и горячие клавиши Linux  терминала.

Linux — это популярная операционная система, которая широко используется не только на персональных компьютерах, но в первую очередь на серверах. Одной из ключевых особенностей Linux является наличие мощного инструмента — терминала, или командной строки.

Терминал позволяет управлять системой с помощью текстовых команд, что делает работу более быстрой и эффективной для тех, кто умеет им пользоваться.

Зачем использовать командную строку, когда есть графический интерфейс? Да, большинство из нас привыкло к графическому интерфейсу, особенно те, у кого на домашнем компьютере стоит Windows. Мы привыкли все задачи решать нажатием мышкой по значку, кнопке или  прочему элементу.

Но, во-первых, какой бы продуманный и удобный не был бы интерфейс, невозможно сделать кнопку для каждого действия, а во вторых, что для нас, как администратора сервера особенно важно, большинство серверов не используют графический интерфейс.

Терминал — это интерфейс, через который пользователь взаимодействует с операционной системой напрямую. Он позволяет выполнять множество задач: запускать программы, управлять файлами и папками, устанавливать обновления и программное обеспечение, настраивать систему и многое другое. Использование командной строки дает несколько преимуществ.

Плюсы использования терминала Linux:

  • Быстрота и эффективность — команды позволяют выполнять задачи быстрее, чем через графический интерфейс. Особенно это заметно при работе с большим количеством файлов или автоматизации процессов.
  • Автоматизация — с помощью скриптов можно автоматизировать повторяющиеся задачи, что экономит время.
  • Гибкость — многие операции невозможно выполнить через графический интерфейс или они требуют много времени.
  • Удаленная работа — через терминал можно управлять системами по сети без необходимости физического доступа.
  • Обучение и понимание системы — использование команд помогает лучше понять внутреннюю работу ОС.

Минусы использования терминала Linux:

  • Крутая кривая обучения — сначала придется накопить базовый набор знаний, прежде чем начнете уверенно пользоваться терминалом
  • Риск ошибок — неправильное использование команд может привести к потере данных или повреждению системы.
  • Меньше визуализация данных — некоторая информация лучше воспринимается в графическом виде

В целом, освоение базовых команд Linux значительно расширяет возможности пользователя и делает работу с системой более гибкой и эффективной. Даже если вы только начинаете знакомство с данной операционной системой, знание основных команд поможет вам быстрее освоиться и подружиться с системой.

Рассмотрим основные виды команд Linux, которые пригодятся вам в повседневных задача. Вы узнаете, как управлять файлами, работать с папками, искать информацию и многое другое. На сервере установлена ОС CentOS Stream 9, но приведенные в статье команды актуальны для большинства дистрибутивов Linux.

Клавиши и команды для работы непосредственно с самим терминалом Linux

В Linux огромное количество горячих клавиш и команд под  различные задачи, но начнем мы непосредственно с тех, которые касаются самого терминала. Они помогают быстро перемещаться по тексту, редактировать команды, управлять историей вводимых команд и выполнять  прочие рутинные действия.

Знание этих клавиш и команд значительно ускоряет работу с командной строкой и делает её более комфортной, особенно при выполнении сложных или повторяющихся задач.

Основные клавиши для работы с терминалом:

  • Стрелки вверх и вниз — позволяют просматривать историю введённых команд.
  • Ctrl + A — перемещает курсор в начало текущей строки.
  • Ctrl + E — перемещает курсор в конец строки.
  • Ctrl + U — удаляет всё от курсора до начала строки.
  • Ctrl + K — удаляет всё от курсора до конца строки.
  • Ctrl + W — удаляет слово слева от курсора.
  • Ctrl + C — прерывает текущую команду или процесс.
  • Ctrl + D — посылает сигнал «EOF» (конец файла), что обычно завершает работу терминала или текущий ввод.
  • Ctrl + L — очистка экрана терминала – аналог команды clear
  • Alt + B — перемещает курсор на начало предыдущего слова.
  • Alt + F — перемещает курсор на начало следующего слова.
  • Tab — автодополнение команд и путей

Эти клавиши позволяют быстро редактировать команды перед их выполнением, что особенно удобно при работе с длинными командами или при исправлении ошибок.

Остановлюсь поподробней о том, как работает автодополнение.  Оно дополняет имена файлов, папок или команду по мере набора. Например, в текущей директории есть два файла: test.txt и text.txt Кроме них есть и другие файлы, но только у этих двух название начинается на t.

Мы хотим открыть text.txt в текстовом редакторе vi. Начинаем набирать название файла, ставим t и жмем Tab. Так как у нас только два файла начинается на t и оба второй буквой имеют e автодополнение подставило общую часть, при повторном нажатии Tab нам покажут возможные варианты:

[root@waky example]# vi te
test.txt  text.txt
[root@waky example]# vi te

Если мы введем следующую букву x и снова нажмем Tab, автодополнение сможет однозначно определить имя файла и заполнить его целиком. На практике, работая с длинными названиями скриптов или файлов, автодополнение значительно ускоряет работу и уменьшает количество ошибок.

[root@waky example]# vi text.txt

Базовые команды для работы с терминалом

Помимо клавиш, есть несколько команд, которые помогают управлять самим терминалом и его содержимым:

history — выводит список всех ранее введённых команд за текущую сессию и их порядковый номер.

[root@waky ~]# history
…
  648  ls /usr/share/nginx/waky.ru
  649  echo "waky.ry"
  650  history

!n — повторяет команду из history по номеру n (например, !649 выполнит соответствующую команду из истории):

[root@waky ~]# !649
echo "waky.ry"
waky.ry

!! — повторяет последнюю выполненную команду:

[root@waky ~]# !!
echo "waky.ry"
waky.ry

ctrl + R — поиск по истории команд в режиме обратного поиска: начните вводить часть команды, и терминал покажет подходящие варианты из истории:

(reverse-i-search)`ech': echo "waky.ry"

clear — очищает экран терминала, убирая предыдущие выводы.

Мы изучили клавиши и команды необходимые для работы с терминалом. Их знание — это полезный навык для любого пользователя Linux. Они позволяют быстрее ориентироваться внутри командной строки, избегать ошибок и экономить время при выполнении рутинных операций.

Теперь мы можем перейти к командам, направленным на работу с системой и файлами.

Команды для управления файлами и папками

Операции над файлами и директориями в ОС Linux мало чем отличаются от Windows. Рассмотрим набор команд, которые позволяют создавать, удалять, копировать, перемещать файлы. Знание этих команд является основой работы в командной строке и позволяет эффективно организовывать данные на сервере.

Основные команды для работы с файлами и папками

ls — просмотр содержимого каталога

Команда ls выводит список файлов и папок в текущем или указанном каталоге.

Если не предоставить команде никакого аргумента, мы получим содержимое текущей директории:

[root@waky example]# ls
test.txt  text.txt

Если указан путь, то будет показано содержимое обозначенной директории:

[root@waky example]# ls /root/example/
test.txt  text.txt

ls -l   – выводит расширенную информацию, в том числе владельца, права и дату модификации:

[root@waky example]# ls –l
total 0
-rw-r--r-- 1 root root 0 May 14 09:18 test.txt
-rw-r--r-- 1 root root 0 May 14 09:18 text.txt 

ls -a   – выводит в том числе и скрытые файлы (начинаются с точки):

[root@waky example]# ls –a
.  ..  .hideden_file  test.txt  text.txt

ls -la  –  сочетание двух предыдущих опций:

[root@waky example]# ls –la
total 4
drwxr-xr-x  2 root root   59 May 14 12:11 .
dr-xr-x---. 4 root root 4096 May 14 09:18 ..
-rw-r--r--  1 root root    0 May 14 12:11 .hideden_file
-rw-r--r--  1 root root    0 May 14 09:18 test.txt
-rw-r--r--  1 root root    0 May 14 09:18 text.txt

cd — смена текущего каталога

Команда cd – основной способ навигации по системе, позволяет перейти в смежные или заданные директории.

Если не задать аргумент cd перенесет нас в нашу домашнюю директорию (в данном примере это root). В Linux домашняя директория пользователя обозначается символом ~

[root@waky example]# cd
[root@waky ~]#

Если указан путь до директории, то переходим в нее:

[root@waky ~]# cd /root/example/
[root@waky example]#

Путь может быть задан двумя способами. Абсолютный – когда мы перечисляем все директории до желаемой начиная с самой верхней, относительный – когда мы задаем путь исходя из текущей директории.

При использовании относительного пути применяют следующие условные обозначения:
. – текущая директория
.. – директория на уровень выше
~ – домашняя директория пользователя

Перейти на уровень выше:

[root@waky example]# cd ..
[root@waky ~]#

Перейти в директорию, находящуюся в текущей директории:

[root@waky ~]# cd ./example/
[root@waky example]#

Перейти в домашнюю директорию:

[root@waky example]# cd ~
[root@waky ~]#

Вернуться в предыдущую директорию:

[root@waky ~]# cd -
/root/example
[root@waky example]#

pwd — вывод пути текущей директории

В процессе мы часто меняем директории, переходя из одной в другую. Чтобы проверить, где конкретно вы находитесь в данный момент используйте команду pwd. Она показывает полный путь к текущему рабочему каталогу.

[root@waky example]# pwd
/root/example
[root@waky example]#

Мы научились перемещаться между папками, давайте создадим парочку новых.

mkdir — создание новой директории

Если мы хотим создать директорию внутри уже существующей, нам достаточно указать путь до новой папки:

[root@waky example]# mkdir /root/example/new_dir_0
[root@waky example]# ls /root/example/
new_dir_0  test.txt  text.txt
[root@waky example]#

Если мы хотим создать несколько последовательно вложенных директорий команде нужно задать параметр –p:

[root@waky example]# mkdir /root/example/new_dir_0/new_dir_1/new_dir_2
mkdir: cannot create directory ‘/root/example/new_dir_0/new_dir_1/new_dir_2’: No such file or directory
[root@waky example]# mkdir -p /root/example/new_dir_0/new_dir_1/new_dir_2
[root@waky example]# ls /root/example/new_dir_0/
new_dir_1
[root@waky example]# ls /root/example/new_dir_0/new_dir_1/
new_dir_2
[root@waky example]#

rmdir — удаление пустой директории

Папка, не содержащая в себе других файлов и папок может быть удалена командой rmdir.

[root@waky example]# rmdir /root/example/new_dir_0/new_dir_1/new_dir_2
[root@waky example]# ls /root/example/new_dir_0/new_dir_1/
[root@waky example]# 

rm — удаление файлов и папок

С помощью команды  rm  можно удалить файлы и директории, в том числе и не пустые.

Удаление файла, на запрос подтверждения отвечаем y:

[root@waky example]# ls
new_dir_0  test.txt  text.txt
[root@waky example]# rm test.txt
rm: remove regular empty file 'test.txt'? y
[root@waky example]# ls
new_dir_0  text.txt
[root@waky example]#

Удаление, без запроса на подтверждение:

[root@waky example]# rm -f text.txt
[root@waky example]# ls
new_dir_0

Удаление директории со всем содержимым:

[root@waky example]# rm -r new_dir_0
rm: descend into directory 'new_dir_0'? y
rm: remove directory 'new_dir_0/new_dir_1'? y
rm: remove directory 'new_dir_0'? y
[root@waky example]#

Нас просят подтвердить удаление каждого элемента. Можно использовать вместе с –f, тогда подтверждения не потребуется.

Внимание! Используйте команду rm с особой осторожностью, так как результат выполнения необратим. Применив по ошибке rm –rf не к той директории, можно удалить важные данные, а применив команду к системным папкам можно сломать ОС.

cp — копирование файлов и папок

Команда cp служит для создания копии исходного файла или директории.

Копирование файла:

[root@waky example]# ls
source_file
[root@waky example]# cp source_file copy_file
[root@waky example]# ls
copy_file  source_file

Копирование папки со всем содержимым:

[root@waky example]# ls
copy_file  source_dir  source_file
[root@waky example]# cp -r source_dir copy_dir
[root@waky example]# ls
copy_dir  copy_file  source_dir  source_file 

cp –a позволяет копировать файлы и директории сохраняя их параметры (владелец, разрешения и пр.)

mv — перемещение файлов и папок

Команды mv может использоваться не только для перемещения, но и для переименования объектов.

Переименование:

[root@waky example]# ls
copy_dir  copy_file  source_dir  source_file
[root@waky example]# mv copy_dir new_name_dir
[root@waky example]# ls
copy_file  new_name_dir  source_dir  source_file

Перемещение:

[root@waky example]# ls new_name_dir
[root@waky example]# mv copy_file new_name_dir/
[root@waky example]# ls new_name_dir

find — поиск файлов и директорий

Команда find позволяет искать объекты по имени, типу, размеру и другим параметрам.

Поиск по имени:

[root@waky example]# find ./ -name copy_file
./new_name_dir/copy_file 

Поиск по типу:

[root@waky example]# find ./ -type f
./.hideden_file
./source_file
./new_name_dir/copy_file

stat — просмотр информации о файле

Команда stat  подробные сведения о файле или папке.

[root@waky example]# stat source_file
  File: source_file
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd03h/64771d    Inode: 6291527     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-05-14 17:36:05.482120886 +0700
Modify: 2025-05-14 17:35:21.733289555 +0700
Change: 2025-05-14 17:35:21.733289555 +0700
 Birth: 2025-05-14 17:35:21.733289555 +0700

file — определение типа файла

Команда file выводит тип файла (текстовый, исполняемый, изображение и т.д.).

[root@waky example]# file text.txt
text.txt: ASCII text 

Команды для управления файлами и папками являются фундаментальными инструментами работы в Linux. Освоив их, вы сможете быстро организовать свои данные, автоматизировать их создание, удаление и изменение.

Команды для работы с текстом

Администрируя Linux сервер вы будете работать с большим количеством текстовой информации – файлы конфигурации, скрипты, логи. Существует множество команд, предназначенных для обработки, поиска, редактирования и преобразования текстовых данных.

Эти инструменты позволяют быстро анализировать большие объемы информации, извлекать нужные фрагменты и изменять содержимое файлов без необходимости использования графического интерфейса. Знание команд для работы с текстом — важная часть навыков системного администратора и пользователя Linux.

Основные команды для работы с текстом

cat — вывод содержимого файла

Команда cat  отображает содержимое заданного файла на экране.

[root@waky example]# cat text.txt
1 line
2 line
3 line
…
13 line
14 line
15 line
[root@waky example]# 

head — вывод первых строк файла

По умолчанию команда head показывает первых 10 строк.

Вывод первых 10 строк:

[root@waky example]# head text.txt
1 line
2 line
3 line
…
8 line
9 line
10 line
[root@waky example]#

Вывод первых n строк:

[root@waky example]# head -n 5 text.txt
1 line
2 line
3 line
4 line
5 line
[root@waky example]#

tail — вывод последних строк файла

По дефолту команда tail показывает последние 10 строк.

Вывод последних 10 строк:

[root@waky example]# tail text.txt
6 line
7 line
8 line
…
13 line
14 line
15 line

Вывод последних n строк:

[root@waky example]# tail -n 5 text.txt
11 line
12 line
13 line
14 line
15 line

Для команды tail есть опция отслеживания изменений, что особенно удобно для изучения логов в реальном времени:

[root@waky example]# tail -f text.txt
…
13 line
14 line
15 line

Каждый раз, когда в файл будут дописываться новые строки, они будут сразу выводиться на экран.

less — постраничный просмотр файла

Команда less позволяет просматривать файлы по страницам с возможностью прокрутки.

[root@waky example]# less text.txt 
…
1 line
2 line
3 line
…
13 line
14 line
15 line
text.txt (END)

grep — поиск по шаблону

Команда grep ищет строки в файле, соответствующие заданному выражению.

[root@waky example]# grep "10 line" text.txt
10 line
[root@waky example]# 

Команда учитывает регистр букв, например, следующий поиск не даст результата, так как не совпадает заглавная буква:

[root@waky example]# grep "10 Line" text.txt
[root@waky example]#

Поиска без учета регистра, аргумент -i:

[root@waky example]# grep -i "10 Line" text.txt
10 line

sed — потоковое редактирование текста

Команда sed  позволяет выполнять автоматические замены, удаление или вставку текста в файле.

[root@waky example]# sed -i 's/line/like/g' text.txt
[root@waky example]# cat text.txt
1 like
2 like
3 like
...
13 like
14 like
15 like

cut — извлечение частей строк

Команда cut  позволяет выбрать определённые поля или символы из строк.

Вывод символов с 1 по 5 каждой строки:

[root@waky example]# cut -c1-5 text.txt
1 lik
2 lik
3 lik
…
13 li
14 li
15 li

Выбрать определённые поля, разделённые табуляцией или пробелами аргумент -f:

[root@waky example]# cut -d' ' -f2 text.txt
like
like
like
…
like
like
like

tr — преобразование текста

Команда tr используется для замены или удаления символов.

Преобразовать все строчные буквы в заглавные:

[root@waky example]# tr '[:lower:]' '[:upper:]' < text.txt
1 LIKE
2 LIKE
3 LIKE
…
13 LIKE
14 LIKE
15 LIKE
[root@waky example]#

Замена отдельных символов:

[root@waky example]# tr i a < text.txt
1 lake
2 lake
3 lake
…
13 lake
14 lake
15 lake

wc — подсчет слов, строк и байт

Команда wc полезна для получения статистики по файлу.

Вывод количества строк, слов и байт (по порядку):

[root@waky example]# wc text.txt
 15  30 111 text.txt
[root@waky example]#

Вывод количества строк через аргумент -l:

[root@waky example]# wc -l text.txt
15 text.txt

Для отдельного вывода слов или байт используйте –w и –c соответственно.

Редактирование файлов осуществляется с помощью текстового редактора. Самый распространенный – vi. Использованию текстового редактора vi посвящена отдельная статья.

Команды для работы с текстом позволяют быстро и эффективно обрабатывать данные. А их комбинация составляет основу работы с логами и их анализа.

Команды для архивирования

В Linux как и в Windows для хранения и передачи больших объемов данных используют архивы — объединённые в один файл несколько файлов или каталогов.

Архивирование позволяет уменьшить занимаемый объем, а также упростить перенос и резервное копирование данных. В этой главе рассмотрены основные команды и инструменты для создания, распаковки и управления архивами.

Основные команды для архивирования

tar — основной инструмент для работы с архивами в Linux

Команда tar – универсальный инструмент, позволяющий создавать архивы, распаковывать их, а также добавлять или извлекать файлы.

Создание архива из каталога:

[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt
[root@waky example]# tar -cvf archive.tar source_dir/
source_dir/
[root@waky example]# ls
archive.tar  new_name_dir  source_dir  source_file  text.txt
[root@waky example]# 

Использованы следующие аргументы:
-c — создать новый архив,
-v — выводить список добавляемых файлов,
-f — указать имя файла архива.

Сам по себе такой архив не является сжатым, а значит не уменьшает вес своего содержимого. Для сжатия с использованием нужно задать дополнительный аргумент:

Создание сжатого архива в формате gzip -z:

[root@waky example]# tar -czvf archive.tar.gz source_dir/
source_dir/
[root@waky example]# ls
archive.tar  archive.tar.gz  new_name_dir  source_dir  source_file  text.txt 

Создание сжатого архива в формате bzip2 -j:

[root@waky example]# tar -cjvf archive.tar.bz2 source_dir
source_dir/
[root@waky example]# ls
archive.tar  archive.tar.bz2  archive.tar.gz  new_name_dir  source_dir  source_file  text.txt
[root@waky example]#

Распаковка архива:

[root@waky example]# ls
archive.tar  archive.tar.bz2  archive.tar.gz  new_name_dir  source_file  text.txt
[root@waky example]# tar -xvf archive.tar
source_dir/
[root@waky example]# ls
archive.tar  archive.tar.bz2  archive.tar.gz  new_name_dir  source_dir  source_file  text.txt
[root@waky example]# 

Распаковка с автоматическим распознаванием формата (например, .tar.gz):

[root@waky example]# ls
archive.tar  archive.tar.bz2  archive.tar.gz  new_name_dir  source_file  text.txt
[root@waky example]# tar -xzvf archive.tar.gz
source_dir/
[root@waky example]# ls
archive.tar  archive.tar.bz2  archive.tar.gz  new_name_dir  source_dir  source_file  text.txt
[root@waky example]#

zip и unzip — создание и распаковка ZIP-архивов

Команда zip используется для создания ZIP-архивов, а unzip — для их распаковки.

Создание ZIP-архива:

[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt
[root@waky example]# zip archive.zip source_dir
  adding: source_dir/ (stored 0%)
[root@waky example]# ls
archive.zip  new_name_dir  source_dir  source_file  text.txt
[root@waky example]# 

Распаковка ZIP-архива:

[root@waky example]# ls
archive.zip  new_name_dir  source_file  text.txt
[root@waky example]# unzip archive.zip
Archive:  archive.zip
   creating: source_dir/
[root@waky example]# ls
archive.zip  new_name_dir  source_dir  source_file  text.txt
[root@waky example]# 

gzip и gunzip — сжатие и распаковка отдельных файлов

Команды gzip и gunzip используются для быстрого сжатия и распаковки отдельных файлов без создания архива. Исходный файл заменяется сжатым.

Сжатие файла:

[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt
[root@waky example]# gzip text.txt
[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt.gz
[root@waky example]# 

Распаковка файла:

[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt.gz
[root@waky example]# gunzip text.txt.gz
[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt
[root@waky example]# 

xz и unxz — более эффективное сжатие

Команды xz и unxz  пригодятся при использовании более высокого уровня сжатия.

Сжатие файла:

[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt
[root@waky example]# xz text.txt
[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt.xz
[root@waky example]#

Распаковка:

[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt.xz
[root@waky example]# unxz text.txt.xz
[root@waky example]# ls
new_name_dir  source_dir  source_file  text.txt
[root@waky example]# 

Команды для архивирования позволяют эффективно управлять большими объемами данных, обеспечивая их сохранность и удобство передачи. Использование данных инструментов особенно актуально для маленьких серверов с небольшим количеством дискового пространства.

Команды для управления пользователями

В Linux управление пользователями — важная часть системного администрирования. Правильная настройка учетных записей обеспечивает безопасность системы, разграничение прав доступа и удобство работы пользователей.

В этой главе рассмотрены основные команды для создания, удаления, изменения и управления пользователями и группами.

Основные команды для управления пользователями и группами

useradd — создание новых пользователей

Команда useradd для создания пользователя требует указания дополнительных параметров, как домашняя директория и командная оболочка.

Создание пользователя:

[root@waky home]# ls
[root@waky home]# useradd -m -s /bin/bash new_user
[root@waky home]# ls
new_user
[root@waky home]# 

Опции:
-m — создать домашний каталог, в нашем примере в директории /home появилась новая папка с именем созданного пользователя.
-s — указать командную оболочку доступную пользователю (например, /bin/bash).

passwd – задание пароля

Команда passwd используется для задания или смены пароля пользователя.

Задание пароля пользователя:

[root@waky home]# passwd new_user
Changing password for user new_user.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@waky home]#

usermod — изменение параметров существующего пользователя

Команда usermod позволяет изменять свойства учетной записи, такие как домашняя директория, группа и прочее.

Изменение домашнего каталога:

[root@waky home]# ls
new_user
[root@waky home]# usermod -d /home/anothe_new_user_home_dir -m new_user
[root@waky home]# ls
anothe_new_user_home_dir
[root@waky home]

Добавление пользователя в группу:

[root@waky home]# usermod -aG wheel new_user
[root@waky home]# 

Аргумент –a означает добавление к уже существующему списку, вместо задания нового.

usermod не имеет простого механизма удаления пользователя из группы, вместо этого можно задать пользователю новый список групп, с исключенной группой.

Так, после добавления пользователя new_user в группу wheel, пользователь входит в две группы – new_user и wheel. Чтобы удалить пользователя из последней, зададим по новой группы, без wheel, в частности остается только группа  new_user:

[root@waky home]# usermod -G new_user new_user
[root@waky home]#

В первом случае new_user – название группы (при создании пользователя, автоматически создается группа с таким же именем), второе вхождение – имя пользователя.

userdel — удаление пользователя

Команда userdel удаляет пользователя с сохранением его домашней директории, для ее удаления используется аргумент -r:

[root@waky home]# ls
new_user 
[root@waky home]# userdel -r new_user
[root@waky home]# ls
[root@waky home]#

groupadd – создание группы

Команда groupadd создает новую группу с заданным названием и присваивает ей порядковый номер.

Создание группы:

[root@waky home]# groupadd new_group
[root@waky home]#

groupmod — управление группой

Команда groupmod позволяет менять название группы, добавлять пользователей к группе и прочее.

Смена названия группы:

[root@waky home]# groupmod -n newname_group new_group
[root@waky home]#

Сначала указываем новое название группы, в конце текущее название.

Добавление пользователя к группе:

[root@waky home]# groupmod -aU new_user newname_group
[root@waky home]#

Аргумент –a отвечает за добавление к имеющемуся списку, -U для задания имени пользователя. Первым идет имя пользователя, затем название группы, к которой его добавляем.

groupdel  – удаление группы

Команда groupdel удаляет выбранную группу из системы.

Удаление группы:

[root@waky home]# groupdel newname_group
[root@waky home]#

gpasswd — управление группами и паролями групп

Команда gpasswd позволяет добавлять и удалять пользователей к группе, менять пароль группы.

Добавление пользователя в группу:

[root@waky home]# gpasswd -a new_user new_group
Adding user new_user to group new_group
[root@waky home]# 

Аргумент –a отвечает за добавление к уже имеющемуся списку.

Удаление из группы:

[root@waky home]# gpasswd -d new_user new_group
Removing user new_user from group new_group
[root@waky home]#

id – информация по заданному пользователю

Команда id выводит идентификационные номера пользователя и группы, и список групп к которой принадлежит пользователь.

[root@waky home]# id new_user
uid=1001(new_user) gid=1001(new_user) groups=1001(new_user)
[root@waky home]#

whoami – имя текущего пользователя

Команда whoami выводит имя пользователя, под которым вы работаете в терминале в данный момент.

[root@waky home]# whoami
root
[root@waky home]#

groups – группы заданного пользователя

Команда groups показывает группы, к которым принадлежит заданный пользователь.

[root@waky home]# groups new_user
new_user : new_user
[root@waky home]#

Команды для управления пользователями позволяют создавать, удалять и настраивать учетные записи, обеспечивая разграничение доступов в системе. Владение этими инструментами необходимо для эффективного управления системой и повышения ее безопасности.

Команды для управления правами на файлы и директории

Вторым аспектом разграничения доступов в Linux являются разрешения файлов и директорий. Правильная настройка прав доступа позволяет контролировать, кто и что может делать с файлами и папками: читать, записывать или выполнять их.

В этой главе рассматриваются основные команды и механизмы для управления правами доступа.

Основные команды для управления правами

ls -l — просмотр прав доступа

Мы уже встречали команду ls –l, которая выводит список файлов и каталогов с подробной информацией, включая владельца, группу и права доступа. Это нас особенно интересует в контексте данной главы.

 [root@waky example]# ls –l
total 4
drwxr-xr-x 2 root root  23 May 14 17:45 new_name_dir
drwxr-xr-x 2 root root   6 May 14 17:37 source_dir
-rw-r--r-- 1 root root   0 May 14 17:35 source_file
-rw-r--r-- 1 root root 111 May 15 05:21 text.txt
[root@waky example]#

Самый первый символ строки – тип файлы. Может быть (файл), d (директория), l (ссылка). Нас интересуют следующие девять символов (rwxr-xr-x) . Права разбиты на три группы по три символа:

– первые три rwx — права владельца (user)
– вторые три r-x — права группы (group)
– третьи три r-x — права остальных (others)

В каждой тройке права располагаются слева направо: чтение (r), запись (w), исполнение (x). Если какое либо право отсутствует, ставится прочерк ().

chmod — изменение прав доступа

Команда chmod используется для установки или изменения разрешений.

Например, файл text.txt имеет следующие разрешения:

[root@waky example]# ls -l text.txt
-rw-r--r-- 1 root root 111 May 15 05:21 text.txt

rw-r–r–   – чтение и запись (rw) для владельца  и только чтение (r) для группы и остальных, исполнение для всех недоступно ().

Задавать права доступа можно в двух форматах:

– Символьный формат, где
пользователи: u (владелец), g (группа), o (остальные), a (все)
доступы: r (чтение), w (запись), x (исполнение)

– Цифровой формат, где:
пользователи определяются положением символа
доступы имею численное представление (от 0 до 7), являясь суммой отдельных доступов для пользователя

Добавим право на исполнение (chmod u+x) для владельца файлу text.txt. Права на исполнение необходимы для запуска программ и скриптов, для текстового файла это ничего не даст, но в рамках примера вполне сойдет:

[root@waky example]# ls -l text.txt
-rw-r--r-- 1 root root 111 May 15 05:21 text.txt
[root@waky example]# chmod u+x text.txt
[root@waky example]# ls -l text.txt
-rwxr--r-- 1 root root 111 May 15 05:21 text.txt
[root@waky example]# 

Сделаем наш файл недоступным для посторонних, убрав чтение (chmod o-r) для остальных:

[root@waky example]# chmod o-r text.txt
[root@waky example]# ls -l text.txt
-rwxr----- 1 root root 111 May 15 05:21 text.txt
[root@waky example]#

С символьным форматом все более менее понятно, а вот цифровой может показаться немного запутанным.

Установить права чтения и записи для владельца, а остальные запретим доступ (600):

[root@waky example]# ls -l text.txt
-rw------- 1 root root 111 May 15 05:21 text.txt
[root@waky example]#

Цифровой формат содержит три цифры, первая – права владельца (6), вторая – группы (0), третья – остальные (0).

Значение может варьироваться от 0 до 7, где 0 – полный запрет, 7 – полный доступ.
Конечное значение доступа представляет собой сумму отдельных доступов, где:
чтение – 4
запись – 2
исполнение – 1

Так в нашем примере, у владельца есть право на чтение (4) и на запись (2). Сумма всех доступов 4+2=6

Изменим права на файл, чтобы владелец мог читать (4), писать (2) и исполнять (1) (сумма всех прав 7). Группа могла читать (4) и исполнять (1) (сумма всех прав 5). Остальные – только читать (4) (сумма всех прав 4).

[root@waky example]# chmod 754 text.txt
[root@waky example]# ls -l text.txt
-rwxr-xr-- 1 root root 111 May 15 05:21 text.txt
[root@waky example]#

Изменить доступность файлов можно не только изменением прав, но и сменой владельца.

chown — изменение владельца и группы файла

Команда chown позволяет менять владельца файла или директории.

Смена владельца файла:

[root@waky example]# chown new_user text.txt
[root@waky example]# ls -l text.txt
-rwxr-xr-- 1 new_user root 111 May 15 05:21 text.txt
[root@waky example]#

Смена владельца и группы:

[root@waky example]# chown new_user:new_group text.txt
[root@waky example]# ls -l text.txt
-rwxr-xr-- 1 new_user new_group 111 May 15 05:21 text.txt
[root@waky example]#

Смена владельца и группы директории и всего ее содержимого (-R):

[root@waky example]# ls -l
total 4
drwxr-xr-x 2 root     root       23 May 14 17:45 new_name_dir
drwxr-xr-x 2 root     root        6 May 14 17:37 source_dir
-rw-r--r-- 1 root     root        0 May 14 17:35 source_file
-rwxr-xr-- 1 new_user new_group 111 May 15 05:21 text.txt
[root@waky example]# ls -l new_name_dir/
total 0
-rw-r--r-- 1 root root 0 May 14 17:36 copy_file
[root@waky example]# chown -R new_user:new_group new_name_dir/
[root@waky example]# ls -l
total 4
drwxr-xr-x 2 new_user new_group  23 May 14 17:45 new_name_dir
drwxr-xr-x 2 root     root        6 May 14 17:37 source_dir
-rw-r--r-- 1 root     root        0 May 14 17:35 source_file
-rwxr-xr-- 1 new_user new_group 111 May 15 05:21 text.txt
[root@waky example]# ls -l new_name_dir/
total 0
-rw-r--r-- 1 new_user new_group 0 May 14 17:36 copy_file
[root@waky example]#

Управление правами доступа к файлам и каталогам — ключевой аспект обеспечения безопасности в Linux. Владение командами chmod, chown позволяет системному администратору контролировать, кто и что может делать с ресурсами системы.

Команды для управления процессами

Управление процессами — важная часть системного администрирования и работы пользователя. Процессы — это запущенные программы и задачи, которые требуют контроля, мониторинга и при необходимости — завершения или изменения их приоритетов.

В этой главе рассматриваются основные команды для управления процессами.

Основные команды управления процессами

ps — просмотр текущих процессов

Команда ps выводит список запущенных процессов.

Показать процессы текущего пользователя:

[root@waky example]# ps
    PID TTY          TIME CMD
 204323 pts/0    00:00:00 bash
 204446 pts/0    00:00:00 ps
[root@waky example]# 

Полный список всех процессов в системе:

[root@waky example]# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.9 171740  7288 ?        Ss   Feb11  16:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 31
root           2  0.0  0.0      0     0 ?        S    Feb11   0:05 [kthreadd]
root           3  0.0  0.0      0     0 ?        S    Feb11   0:00 [pool_workqueue_]
…
root      204430  0.0  0.0      0     0 ?        I    10:25   0:00 [kworker/0:1-ata_sff]
root      204445  0.0  0.0      0     0 ?        I    10:30   0:00 [kworker/0:0-events]
root      204447  0.0  0.4  10024  3456 pts/0    R+   10:33   0:00 ps aux
[root@waky example]#

Форматированный вывод с PID, пользователем, командой и статусом:

[root@waky example]# ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 Feb11 ?        00:16:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 31
root           2       0  0 Feb11 ?        00:00:05 [kthreadd]
root           3       2  0 Feb11 ?        00:00:00 [pool_workqueue_]
…
root      204445       2  0 10:30 ?        00:00:00 [kworker/0:0-events]
root      204449       2  0 10:36 ?        00:00:00 [kworker/0:2-events]
root      204450  204323  0 10:36 pts/0    00:00:00 ps -ef
[root@waky example]#

top — динамический мониторинг процессов

Команда top отображает в реальном времени список процессов с информацией о загрузке CPU, памяти и других метриках.

[root@waky example]# top
…
top - 10:38:50 up 92 days, 20:19,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 134 total,   3 running, 131 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  1.0 sy,  0.0 ni, 97.3 id,  0.0 wa,  0.3 hi,  0.7 si,  0.0 st
MiB Mem :    765.3 total,    109.2 free,    577.9 used,    220.4 buff/cache
MiB Swap:   1536.0 total,   1209.1 free,    326.9 used.    187.4 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    543 root      20   0  258912   3688   2816 R   1.0   0.5 546:28.74 NetworkManager
 190408 root      20   0       0      0      0 I   0.3   0.0   0:02.21 kworker/u4:2-events_unbound
 204322 root      20   0   20016   6552   4736 S   0.3   0.8   0:00.16 sshd
 204456 root      20   0   10468   4224   3456 R   0.3   0.5   0:00.03 top
…

Для выхода нажмите q.

htop — улучшенная версия top (не всегда предустановлена)

[root@waky example]# htop 

Подробнее команда htop рассмотрена в отдельной статье.

kill — завершение процесса по PID

Команда kill посылает сигнал процессу для его завершения.

[root@waky example]# kill 1234

где 1234 — PID процесса, которым можно получить через команды ps или top

По умолчанию посылается сигнал SIGTERM (15). Для принудительного завершения используйте SIGKILL (9). Чем меньше число, тем более грубым способом будет завершен процесс:

[root@waky example]# kill -9 1234

pkill — завершение процессов по имени

Команда pkill позволяет завершить все процессы с указанным именем.

[root@waky example]# pkill nginx

killall — завершение всех процессов по имени

Команда killall  аналогично pkill, но более универсально.

[root@waky example]# killall nginx

renice — изменение приоритета процесса

Команда renice позволяет изменить “важность” процесса.

[root@waky example]# renice 10 -p 1234

Cнизит приоритет процесса с PID 1234 до 10

Приоритеты варьируются от -20 (самый высокий) до 19 (самый низкий).

Управление процессами позволяет системному администратору контролировать работу системы, завершать зависшие или нежелательные задачи, а также оптимизировать использование ресурсов. Владение командами ps, top, kill, renice и другими обеспечивает эффективное управление рабочей средой Linux.

Команды для получения информации о системе

Для эффективного администрирования и диагностики системы важно знать её текущее состояние, аппаратные характеристики, конфигурацию программного обеспечения и запущенные службы.

В этой главе рассматриваются основные команды, позволяющие получать подробную информацию о системе.

Основные команды для получения информации о системе

uname — информация о ядре системы

С помощью команды uname можно узнать сведения о ядре ОС.

Общая информация:

[root@waky example]# uname -a
Linux waky.ru 5.14.0-559.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jan 31 21:01:13 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Выводит имя ядра, версию, дату сборки, архитектуру и другую информацию.

Только название ядра:

[root@waky example]# uname -r
5.14.0-559.el9.x86_64

Информация о дистрибутиве доступна в файле /etc/os-release:

[root@waky example]# cat /etc/os-release
NAME="CentOS Stream"
VERSION="9"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="9"
PLATFORM_ID="platform:el9"
PRETTY_NAME="CentOS Stream 9"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:centos:centos:9"
HOME_URL=https://centos.org/
BUG_REPORT_URL=https://issues.redhat.com/
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
[root@waky example]# 

hostname — имя хоста

Команда hostname позволяет вывести или установка имя сервера.

Вывести имя сервера:

[root@waky example]# hostname
waky.ru
[root@waky example]#

Установка нового имени:

 [root@waky example]# hostname new.waky.ru

uptime — время работы системы

Команда uptime  показывает, как долго система работает с последнего перезапуска, а также нагрузку на CPU.

[root@waky example]# uptime
 11:08:17 up 92 days, 20:49,  1 user,  load average: 0.00, 0.00, 0.00
[root@waky example]#

free — информация о памяти

Команда free  показывает использование оперативной памяти и swap.

[root@waky example]# free -h
               total        used        free      shared  buff/cache   available
Mem:           765Mi       560Mi       125Mi        23Mi       222Mi       204Mi
Swap:          1.5Gi       325Mi       1.2Gi
[root@waky example]#

Аргумент -h — вывод значение в привычных единицах измерения.

df — информация о файловых системах

Команда df  показывает активные разделы и использованное ими дисковое пространство.

[root@waky example]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           383M     0  383M   0% /dev/shm
tmpfs           154M   15M  139M  10% /run
/dev/vda3       4.0G  3.5G  550M  87% /
/dev/vda2       488M  297M  156M  66% /boot
tmpfs            77M     0   77M   0% /run/user/0
[root@waky example]#

Аргумент -h отвечает за более привычный вывод.

Узнать больше о команде df можно в отдельной статье.

lshw — подробная информация об оборудовании

Команда lshw выводит сведения об аппаратных компонентах (процессорах, памяти, устройствах хранения и др.).

[root@waky example]# lshw
waky.ru
    description: Computer
    product: KVM
    vendor: Red Hat
    version: RHEL 7.6.0 PC (i440FX + PIIX, 1996)
    width: 64 bits
    capabilities: smbios-2.8 dmi-2.8 vsyscall32
    configuration: boot=normal family=Red Hat Enterprise Linux uuid=6b0ca80d-d7df-4b4b-a145-f67aa6648e49
  *-core
       description: Motherboard
       physical id: 0
     *-firmware
          description: BIOS
          vendor: SeaBIOS
          physical id: 0
          version: 1.16.0-4.module_el8.9.0+3659+9c8643f3
          date: 04/01/2014
          size: 96KiB
     *-cpu
          description: CPU
          product: Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)
          vendor: Intel Corp.
          physical id: 400
          bus info: cpu@0
          version: 6.58.9
          slot: CPU 0
          size: 2GHz 
…

lspci — список устройств PCI

Команда lspci предоставляет информацию об устройствах расширения PCI (видеоадаптерах, сетевых картах и др.).

[root@waky example]# lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:04.0 Communication controller: Red Hat, Inc. Virtio console
00:05.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
00:06.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG
00:07.0 SCSI storage controller: Red Hat, Inc. Virtio block device
[root@waky example]#

vmstat — статистика виртуальной памяти и процессов

Команда vmstat отображает состояние памяти, процессора и ввода-вывода.

[root@waky example]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 482420 352048    196 175404    4    5     9     8    0    0  1  1 97  0  0
[root@waky example]#

Команды для получения информации о системе позволяют быстро определить её состояние, аппаратные характеристики и конфигурацию программного обеспечения. Владение этими инструментами существенно облегчает диагностику проблем и планирование обновлений или изменений в системе.

Команды выключения и перезагрузки

В процессе администрирования сервера часто возникает необходимость завершить работу системы или перезагрузить её для применения обновлений, устранения ошибок или выполнения обслуживания.

В командной строке Linux для этого предназначены специальные команды, позволяющие безопасно выключить или перезагрузить систему.

Основные команды выключения и перезагрузки

shutdown — плановое выключение или перезагрузка

Команда shutdown позволяет запланировать завершение работы системы с оповещением пользователей.

Выключение системы:

[root@waky ~]# shutdown
Shutdown scheduled for Thu 2025-05-15 10:01:19 MSK, use 'shutdown -c' to cancel.
[root@waky ~]#

Без дополнительных аргументов выключение будет отложено на 1 минуту.

Выключение системы немедленно:

[root@ waky ~]# shutdown now

Выключение системы в назначенный час:

[root@ waky ~]# shutdown 02:00
Shutdown scheduled for Fri 2025-05-16 02:00:00 MSK, use 'shutdown -c' to cancel.
[root@ waky ~]# 

Выключение через 10 минут:

[root@ waky ~]# shutdown +10
Shutdown scheduled for Thu 2025-05-15 10:21:47 MSK, use 'shutdown -c' to cancel.
[root@ waky ~]#

Показать запланированное выключение:

[root@ waky ~]# shutdown --show
Shutdown scheduled for Thu 2025-05-15 10:21:47 MSK, use 'shutdown -c' to cancel.
[root@ waky ~]#

Отмена запланированного выключения:

[root@ waky ~]# shutdown -c
[root@ waky ~]#

Перезагрузка системы немедленно:

[root@ waky ~]# shutdown -r now

Аргумент -r означает “reboot”.

reboot — немедленная перезагрузка

Команда reboot  предназначена непосредственно для перезапуска системы:

[root@ waky ~]# reboot

halt — остановка системы

Команда halt останавливает все процессы и останавливает систему, но не обязательно полностью отключает питание (зависит от конфигурации).

[root@ waky ~]# halt

poweroff — полное отключение питания

Команда poweroff завершает работу системы и отключает питание (если аппарат поддерживает это):

[root@ waky ~]# poweroff

Команды shutdown, reboot и poweroff позволяют управлять состоянием системы, обеспечивая безопасное завершение работы и подготовку к обслуживанию или обновлению. Они просты в применении и их стоит помнить.

Команды для проверки работы сети

Так как Linux широко используется в качестве серверной ОС, в нем присутствует большое разнообразие инструментов для диагностики и мониторинга сетевых соединений. Они позволяют проверять доступность удалённых устройств, определять параметры сети, измерять задержки и пропускную способность.

Эти инструменты помогают выявлять проблемы с сетью, анализировать её состояние и обеспечивать стабильную работу.

Основные команды для диагностики и проверки сети

ping — проверка доступности узла по IP-адресу или имени хоста

Команда ping отправляет ICMP-запросы (эхо-запросы) на указанный адрес и отображает время отклика.

Проверка доступности сервера:

[root@localhost ~]# ping waky.ru
PING waky.ru (153.142.165.135) 56(84) bytes of data.
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=1 ttl=56 time=70.3 ms
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=2 ttl=56 time=69.9 ms
…
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=7 ttl=56 time=71.3 ms
^C
--- waky.ru ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6206ms
rtt min/avg/max/mdev = 69.893/70.334/71.346/0.516 ms
[root@localhost ~]#

Отправка определённого количества пакетов (например, 5), аргумент -c:

[root@localhost ~]# ping -c 5 waky.ru
PING waky.ru (153.142.165.135) 56(84) bytes of data.
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=1 ttl=56 time=70.3 ms
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=2 ttl=56 time=70.3 ms
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=3 ttl=56 time=70.2 ms
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=4 ttl=56 time=70.3 ms
64 bytes from 51626.ip-ptr.tech (153.142.165.135): icmp_seq=5 ttl=56 time=70.2 ms
--- waky.ru ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 70.162/70.243/70.324/0.051 ms
[root@localhost ~]#

traceroute — трассировка маршрута до узла

Команда traceroute показывает путь, по которому проходят пакеты до удалённого хоста, включая все промежуточные маршрутизаторы.

[root@localhost ~]# traceroute waky.ru
traceroute to waky.ru (153.142.165.135), 30 hops max, 60 byte packets
 1  _gateway (192.168.0.1)  0.469 ms  0.404 ms  0.372 ms
 2  115.134.146.123  (115.134.146.123)  1.187 ms  1.135 ms  1.217 ms
 3  108.228.107.143 (108.228.107.143)  6.715 ms 10.248.0.0 (10.248.0.0)  11.405 ms 10.248.0.4 (10.248.0.4)  1.232 ms
 4  156.231.192.182 (156.231.192.182)  1.308 ms 176.211.92.122 (176.211.92.122)  1.189 ms 176.211.92.118 (176.211.92.118)  1.336 ms
 5  188.254.25.27 (188.254.25.27)  65.060 ms  69.115 ms  69.084 ms
 6  212.164.50.114 (212.164.50.114)  64.309 ms  68.731 ms  64.032 ms
 7  185.133.41.43 (185.133.41.43)  70.213 ms  70.191 ms  70.989 ms
 8  51626.ip-ptr.tech (153.142.165.135)  65.523 ms !X  70.098 ms !X  65.516 ms !X
[root@localhost ~]#

nslookup — проверка DNS-записей

Команда nslookup используются для получения информации о DNS-записях доменного имени.

[root@localhost ~]# nslookup waky.ru
Server:         192.168.0.1
Address:        192.168.0.1#53
Non-authoritative answer:
Name:   waky.ru
Address: 153.142.165.135
[root@localhost ~]# 

dig — проверка DNS-записей

Команда dig предоставляет более подробную информацию для диагностики DNS-запросов:

[root@localhost ~]# dig waky.ru
; <<>> DiG 9.16.23-RH <<>> waky.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20277
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; COOKIE: c0aefc0689bf13c9c48ae1fb682666c5e8249cb1cc81cfd1 (good)
;; QUESTION SECTION:
;waky.ru.                       IN      A
;; ANSWER SECTION:
waky.ru.                105     IN      A       153.142.165.135
;; Query time: 2 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri May 16 01:12:21 MSK 2025
;; MSG SIZE  rcvd: 80
[root@localhost ~]#

 ip — просмотр настроек сетевых интерфейсов

Команды ip отображает текущие настройки сетевых интерфейсов.

[root@waky ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:1f:51:47 brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 153.142.165.135/24 brd 37.220.86.255 scope global noprefixroute ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe1f:5147/64 scope link
       valid_lft forever preferred_lft forever
[root@waky ~]#

netstat — отображение сетевых соединений и статистики

Команда netstat показывает активные соединения, прослушиваемые порты и статистику сети.

[root@localhost ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
udp        0      0 127.0.0.1:323           0.0.0.0:*
udp6       0      0 ::1:323                 :::*
[root@localhost ~]#

ss — современная альтернатива netstat

Команда ss более быстрая команда для просмотра сокетов:

[root@localhost ~]# ss -tuln
Netid               State                Recv-Q               Send-Q                             Local Address:Port                             Peer Address:Port              Process
udp                 UNCONN               0                    0                                      127.0.0.1:323                                   0.0.0.0:*
udp                 UNCONN               0                    0                                          [::1]:323                                      [::]:*
tcp                 LISTEN               0                    128                                      0.0.0.0:22                                    0.0.0.0:*
tcp                 LISTEN               0                    128                                         [::]:22                                       [::]:*
[root@localhost ~]#

arp — просмотр таблицы ARP

Команда arp показывает соответствие IP-адресов MAC-адресам в локальной сети:

[root@localhost ~]# arp -a
? (192.168.0.106) at 00:e0:6c:68:21:34 [ether] on enp0s3
_gateway (192.168.0.1) at 40:ae:30:0e:bd:9d [ether] on enp0s3
[root@localhost ~]#

mtr — комбинирует функции ping и traceroute

Команда mtr позволяет одновременно отслеживать маршрут и измерять задержки на каждом узле.

[root@localhost ~]# mtr -bwc50 waky.ru
Start: 2025-05-16T01:21:59+0300
HOST: localhost.localdomain            Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway (192.168.0.1)            0.0%    50    1.0   0.9   0.8   1.1   0.1
  2.|-- 115.134.146.123                       0.0%    50    1.6   1.6   1.4   5.7   0.6
  3.|-- 108.228.107.143                        0.0%    50    3.3   5.4   1.8  15.7   3.4
  4.|-- 156.231.192.182                    0.0%    50    2.7   3.9   1.6  20.4   4.1
  5.|-- 188.254.25.27                     0.0%    50   69.4  69.4  69.0  70.3   0.2
  6.|-- 212.164.50.114                    0.0%    50   69.2  69.7  69.0  86.9   2.6
  7.|-- 185.133.41.43                     0.0%    50   70.4  71.3  70.2  73.9   0.9
  8.|-- 51626.ip-ptr.tech (153.142.165.135)  2.0%    50   72.8  70.7  70.4  72.8   0.3
[root@localhost ~]#

nmap — сканирование портов и служб

Команда nmap используется для проверки открытых портов на удалённых устройствах.

[root@localhost ~]# nmap waky.ru
Starting Nmap 7.92 ( https://nmap.org ) at 2025-05-16 01:29 MSK
Nmap scan report for waky.ru (153.142.165.135)
Host is up (0.071s latency).
rDNS record for 153.142.165.135: 51626.ip-ptr.tech
Not shown: 984 filtered tcp ports (no-response), 11 filtered tcp ports (admin-prohibited)
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  open   https
Nmap done: 1 IP address (1 host up) scanned in 6.14 seconds
[root@localhost ~]#

Использование команд для проверки работы сети позволяет быстро диагностировать проблемы с подключением, определить узкие места и обеспечить стабильную работу сетевой инфраструктуры.

Владение этими инструментами особенно полезно, если вы администрируете свой сервер c сайтом или приложением.

Команды для работы с удаленным сервером

Одной из основных причин повсеместного использования Linux на серверах это широкий спектр простых и удобных инструментов для работы с удаленными хостами.

Для этого используются специальные команды и протоколы, позволяющие подключаться к удалённым системам, управлять ими, передавать файлы и выполнять команды дистанционно.

Основные команды для работы с удаленным сервером

ssh — безопасное удалённое подключение

Команда ssh позволяет установить защищённое соединение с удалённым сервером для выполнения команд, управления системой или работы в интерактивном режиме.

Подключение к серверу:

[root@localhost ~]# ssh root@153.142.165.135
Last login: Fri May 16 16:33:32 2025 from 157.162.168.189
[root@waky ~]#

Использование другого порта, аргумент -p:

[root@localhost ~]# ssh -p 2222 root@153.142.165.135
Last login: Fri May 16 16:33:32 2025 from 157.162.168.189
[root@waky ~]#

Выполнение команды без входа в интерактивный режим:

[root@localhost ~]# ssh -p 1122 root@153.142.165.135 'ls -l /root/example'
total 4
drwxr-xr-x 2 1001 1002  23 May 14 17:45 new_name_dir
drwxr-xr-x 2 root root   6 May 14 17:37 source_dir
-rw-r--r-- 1 root root   0 May 14 17:35 source_file
-rwxr-xr-- 1 1001 1002 111 May 15 05:21 text.txt
[root@localhost ~]#

scp — безопасная передача файлов между локальной и удалённой машинами

Команда scp используется для копирования файлов или каталогов по сети с использованием SSH.

Передача файла на сервер:

[root@localhost ~]# scp file_to_tansfer.txt root@153.142.165.135:/root/example
file_to_tansfer.txt                                                                            100%    0     0.0KB/s   00:00
[root@localhost ~]#

Получение файла с сервера:

[root@localhost ~]# scp root@153.142.165.135:/root/example/file_to_tansfer.txt /root/local_dir/ [root@localhost ~]#

Копирование каталога рекурсивно:

[root@localhost ~]# scp -r localdir/ root@153.142.165.135:/root/example
[root@localhost ~]#

sftp — безопасная передача файлов в интерактивном режиме

Команда sftp используется для работы с файлами на удалённом сервере, похожий на FTP, но использующий SSH.

[root@localhost ~]# sftp root@153.142.165.135
Connected to 153.142.165.135.
sftp>

После подключения можно выполнять команды типа get, put, ls, cd, mkdir и др.

rsync — эффективная синхронизация и передача данных

Команда rsync позволяет быстро копировать файлы и каталоги, синхронизировать их между локальной машиной и сервером или между двумя серверами.

Передача файлов на удаленный хост:

[root@localhost ~]# rsync -av localdir/ root@153.142.165.135:/root/example

Получение данных с удаленного сервера:

[root@localhost ~]# rsync -av root@153.142.165.135:/root/example localdir/ 

Команды для работы с удалёнными серверами позволяют эффективно управлять системами, обмениваться данными и автоматизировать процессы администрирования.

Владение этими инструментами является обязательным навыком системных администраторов и специалистов по информационным технологиям.

Команды для отображения справочной информации по командам и терминалу

Невозможно запомнить все команды существующие в Linux, но это и не нужно. В процессе работы с терминалом важно уметь быстро найти необходимую информацию о командах, их синтаксисе, доступных опциях и использовании.

В Linux существует ряд команд и методов, позволяющих получить такую информацию, что значительно облегчает освоение новых команд и работу в терминале.

Основные команды для получения справочной информации

–help — краткая справка по команде

Конечно, первым местом, где стоит искать информацию о команде, это ее справка. Практически все команды поддерживают опцию –help, которая выводит краткую справку о синтаксисе и описание возможных аргументов.

[root@waky ~]# ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
…

man — просмотр руководства по команде

Команда man выводит подробную документацию по указанной команде или утилите.

[root@waky ~]# man ls

Внутри можно использовать клавиши навигации: стрелки, Page Up, Page Down, а для выхода — q.

Поиск команд, связанных с определённой темой или функцией:

[root@waky ~]# man -k network
ctstat (8)           - unified linux network statistics
dirmngr (8)          - GnuPG's network access daemon
ethtool (8)          - query or control network driver and hardware settings
…

Предоставит список команд для работы с сетью.

info — расширенная документация

Команда info предоставляет более подробную и структурированную документацию.

[root@waky ~]# info coreutils 'ls invocation'

apropos — поиск по ключевым словам

Команда apropos используется для поиска команд, связанных с определённой темой или функцией.

[root@waky ~]# apropos network
ctstat (8)           - unified linux network statistics
dirmngr (8)          - GnuPG's network access daemon
ethtool (8)          - query or control network driver and hardware settings
…

Выведет список команд, связанных с сетью.

whatis — краткое описание команды

Команда whatis показывает краткое описание команды из базы данных man-страниц.

[root@waky ~]# whatis ls
ls (1)               - list directory contents
[root@waky ~]#

which — определение пути к исполняемому файлу команды

Команда which показывает полный путь к исполняемому файлу команды.

[root@waky ~]# which ssh
/usr/bin/ssh
[root@waky ~]#

type — определение типа команды

Команда type показывает, является ли команда встроенной в shell или внешней программой.

[root@waky ~]# type ls
ls is aliased to `ls --color=auto'
[root@waky ~]#

help —справка по встроенным командам

Команда help служит для получения информации о встроенных командах Bash.

[root@waky ~]# help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
    Change the shell working directory.
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
…

Использование этих команд позволяет быстро находить необходимую информацию о командах и их возможностях, что способствует более эффективной работе в терминале и быстрому освоению новых инструментов.

Вывод

Мы рассмотрели основные команды для администрирования сервера. Работа с файлами, удаленный доступ, управление правами и прочее. Знание этих команд делает вашу работу с терминалом проще.

Linux предоставляет огромный выбор инструментов под разнообразные задачи. Достаточно помнить наиболее применимые из них, а встроенная справка всегда поможет освежить в памяти особенности их применения.