- Клавиши и команды для работы непосредственно с самим терминалом 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 предоставляет огромный выбор инструментов под разнообразные задачи. Достаточно помнить наиболее применимые из них, а встроенная справка всегда поможет освежить в памяти особенности их применения.