Команды по управлению ОС Linux
10:13, 01.07.2022
Когда речь заходит о Linux, большинство людей сразу же вспоминают знаменитый мем из культового фильма «Мальчишник в Вегасе», на котором Зак Галифианакис предстает в окружении сложных математических формул. Якобы лишь избранные способны овладеть искусством управления Linux, а для простых смертных это что-то непостижимое. Под «избранными» мы подразумеваем бородатых программистов, которые одним своим взором способны отсортировать массив со случайными числами по методу «пузырька», и которые в уме способны считать линейные алгоритмы.
Всё это, конечно же, раздутая гипербола, а на деле управление операционной системой Linux не вызовет никаких проблем даже у новичка. Всё, что вам нужно – изучить основные команды терминала Linux, понять их смысл и добавить эту статью в закладки на случай, если потребуется освежить знания. Потребуется немного практики, чтобы понять логику работы ОС, а дальше все пойдет как по маслу. Итак, поехали.
Основные Linux команды для управления сетью
Начнем с команды ip – стандартного инструмента, необходимого любому уважающему себя сетевому администратору. Эту команду используют как для настройки новых ПК, так и для планомерного устранения сетевых проблем, которые могут появляться со временем. Команда ip позволяет:
- получить информацию о сетевых адресах;
- осуществлять управление маршрутизацией трафика;
- вывести данные обо всех сетевых устройствах, интерфейсах и туннелях.
Ее синтаксис выглядит следующим образом:
ip <OPTIONS> <OBJECT> <COMMAND>
Наиболее значимым является ключевое слово <OBJECT>, куда можно подставлять самые разные ключи:
- address — адрес протокола (IPv4 или IPv6) на девайсе.
- tunnel — IP-туннель.
- route — запись таблицы маршрутизации.
- rule — правило в БД политики маршрутизации.
- vrf — контроль виртуальных устройств маршрутизации и перенаправление трафика.
- xfrm — параметры IPSec-политики.
Для наглядности приведем несколько примеров корректного использования команды ip в повседневной жизни сисадмина.
- [root@server ~]# ip address show – показать в терминале IP-адреса, назначенные интерфейсу на сервере;
- [root@server ~]# ip address add 192.168.1.254/24 dev enps03 – присвоить IP-адрес интерфейсу;
- [root@server ~]# ip address del 192.168.1.254/24 dev enps03 – удалить IP-адрес из интерфейса;
- [root@server ~]# ip link set eth0 up – изменить статус интерфейса, в нашем случае мы включаем eth0;
- [root@server ~]# ip link set eth0 down – выключить статус интерфейса eth0;
- [root@server ~]# ip link set eth0 promisc on – перевести eth0 в режим приема сетевых пакетов;
- [root@server ~]# ip route add default via 192.168.1.254 dev eth0 – добавить маршрут, используемый по умолчанию всеми адресами, через локальный шлюз, доступный на устройстве eth0;
- [root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254 – удалить маршрут для 192.168.1.0/24, который использует шлюз 192.168.1.254 для доступа.
Существует также множество других команд, мы лишь привели самые распространенные их варианты.
Также существует ряд других важных сетевых команд:
- MTR – программа, которая функционирует в режиме командной строки, нужна для диагностики сетей, ее активно используют для устранения существующих неполадок. Имеет синтаксис «mtr hostname/IP». Команда mtr позволяет диагностировать маршрут и подключенные устройства – например, в случае увеличения времени ответа сервера или при увеличении количества потерянных пакетов.
- Tcpdump – эта утилита позволяет захватывать и анализировать пакеты данных, её можно установить на сервер с помощью команды [root@server ~]# dnf install -y tcpdump. Возможности утилиты позволяют даже отфильтровывать трафик и «хватать» только те пакеты, которые поступают от определенного хоста. Например, чтобы захватить пакеты, поступающие из адреса 7.7.7.7, можно использовать такую команду: [root@server ~]# tcpdump -i eth0 -c 10 host 7.7.7.7.
- Netstat – этот инструмент используют для получения сведений обо всех сетевых подключениях и таблицах маршрутизации. По умолчанию может отсутствовать в системе, тогда утилиту нужно будет установить с помощью команды [root@server ~]# dnf install net-tools. Её зачастую используют без всяких параметров, в неизменном виде: [root@server ~]# netstat.
- Ping – этот инструмент помогает проверить на уровне IP возможность связи отдельных TCP/IP-систем. Позволяет диагностировать проблемы целостности сети, является крайне простой и удобной в использовании.
- Nslookup – эту команду терминала Linux используют для выполнения DNS-запросов и получения подобных сведений об IP-адресах и доменах. Например, с помощью команды [root@server ~]# nslookup hostzealot.com можно получить A-запись указанного домена.
Теперь перейдем к другим категориям полезных Linux-команд.
Linux команды для просмотра документации
Справочную информацию и доступ к документации можно получить с помощью таких команд:
- Whatis – отобразить краткое описание программы;
- Whereis – показать полный путь к исполняемому файлу;
- File – позволяет идентифицировать тип файла или его расширение;
- Program_name —help – получить подробные сведения об указанной программе или утилите;
- Whoami – отобразить UID пользователя.
Linux команды для управления процессами
Для управления процессами существует 4 важнейших команды:
- KILL / XKILL / PKILL / KILLALL – разные вариации одной и той же команды, позволяющей «убивать» процессы. Только с нюансами. Например, после команды «Kill» нужно добавить PID процесса, а для «xkill» достаточно кликнуть по нужному окну для завершения работы. «killall» и «pkill» вписываются с именем процесса. Использовать в зависимости от ситуации.
- PS / PGREP – позволяет получить идентификатор (PID) различных процессора на сервере. Можно добавить опцию -e для отображения PID определенного процесса.
- TOP / HTOP – отобразить процессы. Удобно для мониторинга.
- TIME – показывает время выполнения процесса. По сути являет собой секундомер. Полезно, чтобы оценить отставание вашей реализации алгоритма от стандартов.
Linux команды для управления пользователями
Здесь у нас две ключевые команды:
- USERADD / USERDEL / USERMOD – нужны для добавления, удаления и изменения учетных записей пользователей. Нужны не так чтобы часто, чаще всего используются на начальном этапе настройки сервера.
- PASSWD – с помощью этой команды можно заменить пароль указанной учетной записи. Будучи суперпользователем, вы можете свободно сбрасывать любые пароли, удалять их и менять по своему усмотрению.
Linux команды окружения пользователя
- SU / SUDO – позволяет запускать программу от имени определенного пользователя. Разница между SU и SUDO заключается в том, что первая команда выполняется с переключением на другого пользователя, а вторая лишь выполняет команду от его имени. Чаще используется SUDO, она считается более безопасной.
- DATE – отобразить дату и время, также с её помощью можно форматировать отображение данных так, как вам удобно, установить другой часовой формат и т.д.
- ALIAS – интересная команда, позволяющая синонимизировать другие Linux-команды. То есть вы можете создавать новые, группировать старые или попросту менять имена существующих. Классная вещь для сокращения длинных и сложно запоминаемых команд.
- UNAME – отображает ключевые сведения о системе, рекомендуется использовать с параметром -a.
- UPTIME – показывает время беспрерывной работы системы. Используют, чтобы узнать, когда последний раз была перезагрузка сервера.
- SLEEP – позволяет выключить компьютер или сервер через определенное время.
Команды Linux консоли для работы с текстом
- LESS – нужна для просмотра длинного текста, который не помещается на экране. Полезно, когда терминал не поддерживает прокрутку.
- HEAD / TAIL. Первая команда отображает первые 10 строк из файла, вторая же показывает «хвост», то есть последние 10 его строк. Изменить количество отображаемых строк можно с помощью опции -n.
- GREP – помогает отыскать текст по заданному шаблону.
- SORT – сортирует строки текста по заданным критериям. Например, опция -n позволяет сортировать по числовым значениям.
- WC – полезный инструмент, позволяющий подсчитать слова, строки, байты и символы в объекте.
- DIFF – используется для сравнения двух файлов построчно. Причем важным преимуществом этой команды является то, что отображаются только отличающиеся строки, в то время как совпадения игнорируются.
Linux команды для управления файлами
Пожалуй, один из самых важных и часто используемых наборов команд консоли Linux:
- LS – просмотр каталогов, используется с опциями -l (List) и -a (All).
- CAT – позволяет быстро создать файл и поместить в него текст. Используйте оператор > redirect, чтобы перенаправить текст в файл.
- CD – переход от текущего каталога к указанному. При вводе без параметров возвращает в домашний каталог.
- PWD – выводит на экран текущий каталог.
- MKDIR – создает новый каталог. Часто используется в связке с опцией -p для создания всей структуры подкаталогов, даже если они еще не созданы.
- FILE – отображает тип файла.
- CP – копирует файл или каталог из параметра «Исходный_файл» или «Исходный_каталог» в файл или каталог, указанный параметром «Целевой_файл» или «Целевой_каталог».
- LN – полезна для создания жестких или символических ссылок на файлы. Облегчает доступ к определенным файлам и директориям в будущем.
- RM – служит для удаления файлов и папок. Используется для наведения порядка в системе.
- MV – перемещает или переименовывает файлы/каталоги. Для ОС Linux эти два типа операций не отличаются, так как переименование подразумевает, по сути, перемещение файла в ту же папку, но с другим именем.
На этом мы заканчиваем наш разбор команд и инструментов Linux, которыми важно владеть каждому уважающему себя системному администратору. Спасибо за внимание!