Топ 100 команд Linux (которые вам нужно знать)

by Matt Stamp
Топ 100 команд Linux (которые вам нужно знать) thumbnail

Linux является основой интернета. Он обеспечивает работу почти 97% ведущих веб-серверов мира. И 55.9% профессиональных разработчиков полагаются на Linux для своих разработок.

Тем не менее, у Linux всего 2.68% доли рынка настольных компьютеров. Почему такое расхождение?

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

Это может сделать Linux пугающим для начинающих — и тысячи доступных команд только усугубляют эту сложность.

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

Глоссарий DreamHost

Linux

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

Читать далее

Что такое команды Linux?

Команды Linux позволяют управлять вашей системой с помощью командной строки (CLI), вместо использования мыши или тачпада. Это текстовые инструкции, вводимые в терминал, чтобы точно указать системе, что делать.

Команды, которые вы вводите в терминале Linux, чувствительны к регистру и следуют синтаксису “command -options arguments.” Вы можете комбинировать их для сложных задач с использованием конвейеров и перенаправлений.

Некоторые важные моменты, которые нужно знать о командах Linux:

  • Они чувствительны к регистру; например, “ls” и “LS” означают разные вещи.
  • Они следуют определенному синтаксису как “command -options arguments.”
  • Их можно комбинировать для сложных операций с использованием конвейеров и перенаправления.
  • Они предоставляют точный контроль над вашей системой, который трудно достигнуть с графическими интерфейсами.
  • Они позволяют автоматизировать задачи через скрипты Shell и пакетную обработку.
  • Они могут использоваться для доступа к системным ресурсам как файловая система, сеть, память и CPU.
  • Они составляют основу взаимодействия с серверами Linux и операционными системами.

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

Топ-100 наиболее полезных команд Linux

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

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

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

Управление файлами является обычной задачей в командной строке Linux. Вот основные команды для работы с файлами:

1. ls – Содержимое каталога

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

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

Синтаксис:

ls [options] [directory]

Некоторые из самых полезных опций ls включают:

  • -l – Отображение результатов в подробном формате, показывая дополнительные сведения, такие как права доступа, владельцы, размер и дата изменения для каждого файла и каталога.
  • -a – Показывать скрытые файлы и каталоги, начинающиеся с точки, в дополнение к видимым элементам.
  • -R – Рекурсивно перечислять все содержимое подкаталогов, спускаясь в дочерние папки на неограниченную глубину.
  • -S – Сортировать результаты по размеру файла, начиная с самых больших.
  • -t – Сортировать по временной метке, начиная с самых новых.

Пример:

ls -l /home/user/documents

Это покажет содержимое папки «documents» в развернутом формате.

Пример вывода:

всего 824
-rwxrwx--- 1 пользователь пользователь    8389 Июл 12 08:53 report.pdf
-rw-r--r-- 1 пользователь пользователь   10231 Июн 30 16:32 presentation.pptx
drwxr-xr-x 2 пользователь пользователь    4096 Май 11 09:21 images
-rw-rw-r-- 1 пользователь пользователь     453 Апр 18 13:32 todo.txt

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

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

2. cd – Смена директории

Команда cd используется для перемещения между каталогами. Она позволяет вам изменить текущий рабочий каталог на новое местоположение в файловой системе.

Когда вы запускаете команду cd самостоятельно, она возвращает вас в домашний каталог. Вы также можете указать конкретный путь для перехода. Например:

  • cd /usr/local – Переход в каталог /usr/local.
  • cd .. – Перемещение на один уровень вверх к родительскому каталогу.
  • cd ~/pictures – Переход в папку pictures в вашем домашнем каталоге.

Синтаксис:

cd [directory]

Пример:

cd /home/user/documents

Это изменит рабочий каталог на папку «documents» в /home/user. Использование cd необходимо для удобного доступа и работы с файлами в разных местах.

3. mkdir – Создать новую директорию

Команда mkdir позволяет создать новую папку. Вы просто передаете имя создаваемого каталога.

Синтаксис:

mkdir [options] <directory>

Это создаст директорию с названием «newproject» в текущем рабочем каталоге.

Некоторые полезные опции mkdir:

  • -p – Рекурсивно создает родительские директории по мере необходимости.
  • -v – Подробный вывод, показывающий созданные директории.

Пример:

mkdir -v ~/project/code

Это создаст подкаталог «code» в каталоге «project» в домашней папке пользователя, с подробным выводом, показывающим создание каталога.

Получайте контент прямо в свой почтовый ящик

Подпишитесь сейчас, чтобы получать все последние обновления прямо в свой почтовый ящик.

4. rmdir – Удалить каталог

Чтобы удалить пустую директорию, используйте команду rmdir. Обратите внимание, что rmdir может удалять только пустые директории – для удаления непустых нам понадобится команда rm.

Синтаксис:

rmdir [options] <directory>

Некоторые варианты для rmdir включают:

  • -v – Подробный вывод при удалении директорий.
  • -p – Рекурсивное удаление родительских директорий по мере необходимости.

Пример:

rmdir -v ~/project/code

Это удалит подкаталог «code» в «project», отображая подробный вывод.

5. touch – Создать новый пустой файл

Команда touch используется для мгновенного создания нового пустого файла. Это полезно, когда вам нужен пустой файл для последующего заполнения данными.

Основной синтаксис touch:

touch [options] filename

Некоторые полезные опции для touch включают в себя:

  • -c – Не создавать файл, если он уже существует. Это позволяет избежать случайной перезаписи существующих файлов.
  • -m – Вместо создания нового файла, обновить временную метку существующего файла. Это может быть использовано для изменения времени модификации.

Например:

touch /home/user/newfile.txt

Приведенная выше команда создает новый пустой файл с именем «newfile.txt» в директории пользователя /home/user. Если файл newfile.txt уже существует, то будут обновлены времена доступа и изменения файла.

6. cp – Копирование файлов и директорий

Команда cp копирует файлы или директории из одного места в другое. Она требует указания исходного пути и пункта назначения.

Основной синтаксис cp:

cp [options] source destination

Некоторые полезные опции cp:

  • -r – Копировать директории рекурсивно, спускаясь в дочерние директории для копирования их содержимого. Необходимо при копировании директорий.
  • -i – Запрашивать подтверждение перед перезаписью любых существующих файлов в пункте назначения. Предотвращает случайное перезаписывание данных.
  • -v – Отображать подробный вывод, показывающий детали каждого копируемого файла. Полезно для подтверждения точных копируемых данных.

Например:

cp -r /home/user/documents /backups/

Это рекурсивно скопирует директорию /home/user/documents и все ее содержимое в директорию /backups/. Опция -r необходима для копирования директорий.

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

7. mv – Перемещение или переименование файлов и каталогов

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

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

Синтаксис команды mv:

mv [options] источник назначение

Полезные опции mv:

  • -i – Запрашивать подтверждение перед перезаписью любых существующих файлов в месте назначения. Это предотвращает случайное перезаписывание данных.
  • -v – Выводить подробный результат, показывающий каждый файл или каталог в процессе перемещения. Это полезно для подтверждения того, что именно было перемещено.

Например:

mv ~/folder1 /tmp/folder1

Вышеуказанные действия переместят папку folder1 из домашней директории (~) в директорию /tmp/. Давайте рассмотрим другой пример использования команды mv для переименования файлов.

mv folder1 folder2

Здесь «folder1» переименована в «folder2.»

8. rm – Удалить файлы и каталоги

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

Синтаксис:

rm [options] name

Полезные опции rm:

  • -r – Рекурсивно удалять директории, включая все содержимое внутри них. Это необходимо при удалении директорий.
  • -f – Принудительное удаление и подавление всех запросов на подтверждение. Это опасная команда, так как файлы не могут быть восстановлены после удаления!
  • -i – Запрашивать подтверждение перед удалением каждого файла или директории, что обеспечивает защиту от случайного удаления.

Например:

rm -rf temp

Это рекурсивно удаляет каталог «temp» и все его содержимое без подтверждения (-f переопределяет подтверждения).

Примечание: Команда rm окончательно удаляет файлы и папки, поэтому используйте её с осторожностью. Если использовать с привилегиями sudo, вы также можете полностью удалить корневой каталог, и после перезагрузки компьютера Linux больше не будет функционировать. 

9. find – Поиск файлов в иерархии каталогов

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

Базовый синтаксис find:

find [path] [criteria]

Некоторые полезные параметры поиска включают:

  • -type f – Поиск только обычных файлов, исключая директории.
  • -mtime +30 – Поиск файлов, изменённых более 30 дней назад.
  • -user jane – Поиск файлов, принадлежащих пользователю “jane”.

Например:

find . -type f -mtime +30

Это найдет все обычные файлы старше 30 дней в текущем каталоге (обозначенном точкой).

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

10. du – Оценка использования дискового пространства файлами

Команда du измеряет использование места на диске для заданной директории. Когда используется без опций, она отображает использование диска для текущей рабочей директории.

Синтаксис для du:

du [options] [path]

Полезные опции du:

  • -h – Отображение размера файла в удобочитаемом формате, например K для килобайт, вместо количества байт. Гораздо проще для восприятия.
  • -s – Показывает только общий размер директории, вместо перечисления каждой поддиректории и файла. Хорошо для сводки.
  • -a – Показывает размеры отдельных файлов в дополнение к общим. Помогает идентифицировать крупные файлы.

Например:

du -sh pictures

Это выведет размер папки «pictures» в удобочитаемом формате.

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

Поиск и фильтрация команд в Linux

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

11. grep – Поиск текста по шаблонам

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

Вот основной синтаксис:

grep [options] pattern [files]

Например:

grep -i "error" /var/log/syslog

Этот запрос ищет в файле syslog слово «error», игнорируя регистр.

Некоторые полезные опции grep:

  • -i – Игнорировать различия в регистре в шаблонах
  • -R – Рекурсивно искать в поддиректориях
  • -c – Выводить только количество совпадающих строк
  • -v – Инвертировать совпадение, выводить несовпадающие строки

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

12. awk – Язык сканирования и обработки шаблонов

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

Синтаксис awk:

awk 'pattern { action }' input-file

Например:

awk '/error/ {print $1}' /var/log/syslog

Это выводит первое поле любой строки, содержащей «ошибка». awk также может использовать встроенные переменные, такие как NR (количество записей) и NF (количество полей).

Расширенные возможности awk включают:

  • Математические вычисления на полях
  • Условные операторы
  • Встроенные функции для манипулирования строками, числами и датами
  • Контроль форматирования вывода

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

13. sed – редактор потоков для фильтрации и трансформации текста

Команда sed позволяет фильтровать и преобразовывать текст. Она может выполнять операции, такие как поиск/замена, удаление, транспозиция и другие. Однако, в отличие от awk, sed была разработана для редактирования строк на построчной основе согласно инструкциям.

Вот основной синтаксис:

sed options 'commands' input-file

Например:

sed 's/foo/bar/' file.txt

Это заменяет “foo” на “bar” в file.txt.

Некоторые полезные команды sed:

  • s – Поиск и замена текста
  • /pattern/d – Удаление строк, соответствующих шаблону
  • 10,20d – Удаление строк с 10 по 20
  • 1,3!d – Удалить все, кроме строк 1-3

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

14. sort – Сортировка строк текстовых файлов

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

Основной синтаксис сортировки:

sort [options] [file]

Полезные варианты сортировки:

  • -n – Сортировать числовые значения вместо алфавитных
  • -r – Изменить порядок сортировки на обратный
  • -k – Сортировать по определенному полю или столбцу

Например:

sort -n grades.txt

Эта команда выполняет числовую сортировку содержимого файла grades.txt. sort удобна для упорядочивания содержимого файлов для более читабельного вывода или анализа.

15. uniq – Отчет или пропуск повторяющихся строк

Команда uniq фильтрует повторяющиеся смежные строки из входных данных. Это часто используется в сочетании с сортировкой.

Основной синтаксис:

uniq [options] [input]

Опции:

  • -c – Добавлять уникальные строки с количеством их появлений.
  • -d – Показывать только повторяющиеся строки, без уникальных.

Например:

sort data.txt | uniq

Это удаляет все повторяющиеся строки в data.txt после сортировки. uniq дает вам возможность контролировать фильтрацию повторяющегося текста.

16. diff – Сравнение файлов построчно

Команда diff сравнивает два файла построчно и выводит различия. Обычно используется для отображения изменений между версиями файлов.

Синтаксис:

diff [опции] файл1 файл2

Опции:

  • -b – Игнорировать изменения в пробелах.
  • -B – Показывать различия встроенными, выделяя изменения.
  • -u – Выводить различия с тремя строками контекста.

Например:

diff original.txt updated.txt

Это выведет строки, которые отличаются между original.txt и updated.txt. diff неоценим для сравнения версий текстовых файлов и исходного кода.

17. wc – Печать количества строк, слов и байт

Команда wc (подсчет слов) выводит количество строк, слов и байтов в файле.

Синтаксис:

wc [options] [file]

Опции:

  • -l – Печатать только количество строк.
  • -w – Печатать только количество слов.
  • -c – Печатать только количество байт.

Например:

wc report.txt

Эта команда выведет количество строк, слов и байтов в report.txt.

Команды перенаправления в Linux

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

18. > – Перенаправление стандартного вывода

Оператор > redirection перенаправляет стандартный поток вывода команды в файл вместо вывода на терминал. Любое существующее содержимое файла будет перезаписано.

Например:

ls -l /home > homelist.txt

Это выполнит ls -l для отображения содержимого директории /home.

Затем, вместо вывода результата в терминал, символ > перехватывает этот стандартный вывод и записывает его в homelist.txt, перезаписывая любое существующее содержимое файла.

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

19. >> – Добавить стандартный вывод

Оператор >> добавляет стандартный вывод команды в файл без перезаписи существующего содержимого.

Например:

tail /var/log/syslog >> logfile.txt

Это добавит последние 10 строк файла журнала syslog в конец файла logfile.txt. В отличие от >, >> добавляет вывод, не стирая текущее содержимое файла logfile.txt.

Добавление полезно для сбора вывода команд в одном месте без потери существующих данных.

20. < – Перенаправление стандартного ввода

Оператор перенаправления < подает содержимое файла в качестве стандартного ввода команде, вместо ввода с клавиатуры.

Например:

wc -l < myfile.txt

Это отправляет содержимое файла myfile.txt в качестве входных данных для команды wc, которая будет подсчитывать строки в этом файле, вместо ожидания ввода с клавиатуры.

Перенаправление ввода полезно для пакетной обработки файлов и автоматизации рабочих процессов.

21. | – Перенаправить вывод в другую команду

Оператор | отправляет выходные данные одной команды в качестве входных данных в другую команду, объединяя их вместе.

Например:

ls -l | less

Это передает вывод команды ls -l в команду less, что позволяет прокручивать список файлов.

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

22. tee – Чтение из стандартного ввода и запись в стандартный вывод и файлы

Команда tee разделяет стандартный ввод на два потока.

Он записывает ввод в стандартный вывод (показывает результат основной команды), одновременно сохраняя копию в файл.

Например:

cat file.txt | tee copy.txt

Это отображает содержимое файла file.txt в терминале, одновременно записывая его в файл copy.txt.

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

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

Команды архивации позволяют объединять несколько файлов и директорий в сжатые архивные файлы для упрощения переносимости и хранения. Распространенные форматы архивов в Linux включают .tar, .gz и .zip.

23. tar – Сохранение и извлечение файлов из архива

Команда tar помогает работать с файлами архива на магнитной ленте (.tar). Она позволяет объединять несколько файлов и директорий в один сжатый файл .tar.

Синтаксис:

tar [options] filename

Полезные опции tar:

  • -c – Создать новый архивный файл .tar.
  • -x – Извлечь файлы из архива .tar.
  • -f – Указать имя файла архива вместо stdin/stdout.
  • -v – Подробный вывод, показывающий архивируемые файлы.
  • -z – Сжимать или распаковывать архив с помощью gzip.

Например:

tar -cvzf images.tar.gz /home/user/images

Это создает архив tar, сжатый с помощью gzip, под названием images.tar.gz, содержащий папку /home/user/images.

24. gzip – Сжатие или расширение файлов

Команда gzip сжимает файлы, используя кодирование LZ77, чтобы уменьшить размер для хранения или передачи. С помощью gzip вы работаете с файлами .gz.

Синтаксис:

gzip [options] filename

Полезные параметры gzip:

  • -c – Выводить результат в stdout вместо файла.
  • -d – Распаковать файл вместо сжатия.
  • -r – Рекурсивно сжимать директории.

Например:

gzip -cr documents/

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

25. gunzip – Распаковка файлов

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

Синтаксис:

gunzip filename.gz

Пример:

gunzip documents.tar.gz

Вышеуказанная команда извлечет исходное несжатое содержимое documents.tar.gz.

26. zip – Упаковка и сжатие файлов

Команда zip создает архивированные файлы .zip, содержащие сжатое содержимое файлов.

Синтаксис:

zip [options] archive.zip filenames

Полезные опции zip:

  • -r – Рекурсивное сжатие директории.
  • -e – Шифрование содержимого с паролем.

Пример:

zip -re images.zip pictures

Это шифрует и сжимает папку с изображениями в images.zip.

27. unzip – Извлечение файлов из ZIP-архивов

Подобно gunzip, команда unzip извлекает и разархивирует файлы из архивов .zip.

Синтаксис:

unzip archive.zip

Пример:

unzip images.zip

Приведенная выше команда извлекает все файлы из images.zip в текущей директории.

Команды передачи файлов

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

28. scp – Безопасное копирование файлов между хостами

Команда scp (secure copy) копирует файлы между хостами посредством SSH-соединения. Все передаваемые данные шифруются для обеспечения безопасности.

Синтаксис scp копирует файлы из исходного пути в место назначения, определённое как user@host:

scp source user@host:destination

Например:

scp image.jpg user@server:/uploads/

Это безопасно копирует image.jpg в папку /uploads на сервере как пользователь.

scp работает как команда cp, но для передачи файлов на удаленные сервера. Она использует SSH (Secure Shell) для передачи данных, обеспечивая шифрование для защиты конфиденциальных данных, таких как пароли, от раскрытия через сеть. Аутентификация обычно осуществляется с использованием ключей SSH, хотя также могут использоваться пароли. Файлы могут копироваться как на удаленные хосты, так и с них.

29. rsync – Синхронизация файлов между хостами

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

Синтаксис rsync синхронизирует источник с назначением:

rsync [options] source destination

Например:

rsync -ahv ~/documents user@server:/backups/

Приведенная выше команда рекурсивно синхронизирует папку с документами с server:/backups/, отображая подробный, понятный человеку вывод.

Полезные опции rsync:

  • -a – Режим архива синхронизирует рекурсивно и сохраняет разрешения, времена и т.д.
  • -h – Читаемый для человека вывод.
  • -v – Подробный вывод.

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

30. sftp – Программа безопасной передачи файлов

Программа sftp обеспечивает интерактивную передачу файлов по протоколу SSH, аналогично обычному FTP, но с шифрованием. Она может передавать файлы на удаленные системы и с удаленных систем.

sftp подключается к хосту и принимает команды вроде:

sftp user@host

get remotefile localfile

put localfile remotefile

Это извлекает remotefile с сервера и копирует localfile на удаленный хост.

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

31. wget – Загрузка файлов из интернета

Инструмент wget загружает файлы через соединения HTTP, HTTPS и FTP. Он полезен для получения веб-ресурсов напрямую из терминала.

Например:

wget https://example.com/file.iso

Это загружает образ файла.iso с удаленного сервера.

Полезные опции wget:

  • -c – Возобновить прерванную загрузку.
  • -r – Рекурсивная загрузка.
  • -O – Сохранить в определенное имя файла.

wget идеально подходит для написания скриптов автоматической загрузки и зеркалирования веб-сайтов.

32. curl – Передача данных с сервера или на сервер

Команда curl передает данные на сервер или с сервера в сети, используя поддерживаемые протоколы. Это включает REST, HTTP, FTP и другие.

Например:

curl -L https://example.com

Вышеуказанная команда извлекает данные с HTTPS URL и выводит их.

Полезные опции curl:

  • -o – Записать вывод в файл.
  • -I – Показать только заголовки ответов.
  • -L – Следовать перенаправлениям.

curl предназначен для программной передачи данных по сетям.

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

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

33. chmod – Изменение режимов файла или разрешений доступа

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

Например:

chmod 755 file.txt

Существует три набора разрешений — владелец, группа и публичные. Разрешения устанавливаются с использованием числовых режимов от 0 до 7:

  • 7 – чтение, запись и выполнение.
  • 6 – чтение и запись.
  • 4 – только чтение.
  • 0 – нет разрешений.

Это устанавливает права владельца на 7 (rwx), группы на 5 (r-x) и публичные на 5 (r-x). Вы также можете ссылаться на пользователей и группы символически:

chmod g+w file.txt

Синтаксис g+w добавляет групповое разрешение на запись в файл.

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

34. chown – Изменение владельца файла и группы

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

Например:

chown john:developers file.txt

Приведенная выше командная строка установит владельца пользователя как “john” и группу владельцев как “developers”.

Только суперпользователь root может использовать chown для изменения владельца файла. Это используется для исправления проблем с разрешениями путем изменения владельца и группы по мере необходимости.

35. umask – Установка прав доступа к файлам по умолчанию

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

Например:

umask 007

Новые файлы будут иметь права доступа 750 вместо 666, а новые директории — 700 вместо 777.

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

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

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

36. ps – Отчет о снимке текущих процессов

Команда ps выводит снимок текущих запущенных процессов, включая их PID, TTY, stat, время запуска и т.д.

Например:

ps aux

Здесь отображаются все процессы, выполняемые всеми пользователями, с дополнительными сведениями, такими как использование ЦП и памяти.

Некоторые полезные опции ps:

  • aux – Показывать процессы всех пользователей
  • --forest – Отображать дерево родительских/дочерних процессов

ps позволяет вам видеть, что в данный момент выполняется в вашей системе.

37. top – Отображение процессов Linux

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

Например:

top -u mysql

Приведенная выше команда отслеживает процессы только для пользователя “mysql”. Это становится довольно полезным для определения программ, интенсивно использующих ресурсы.

38. htop – Интерактивный просмотрщик процессов

Команда htop является интерактивным просмотрщиком процессов, заменяющим команду top. Она отображает системные процессы вместе с графиками использования CPU/памяти/swap, позволяет сортировать по столбцам, завершать программы и многое другое.

Просто введите htop в командной строке, чтобы просмотреть ваши процессы.

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

гистограмма, показывающая, что разработчики предпочитают Linux (76,9%) по сравнению с Docker (73,6%) и Kubernetes (71,1%)

39. kill – Отправить сигнал процессу

Команда kill отправляет сигнал процессу для его завершения или прекращения. Сигналы позволяют корректно завершить работу, если процесс их обрабатывает.

Например:

kill -15 12345

Вышеуказанная команда отправляет сигнал SIGTERM (15) для корректного завершения процесса с PID 12345.

40. pkill – Отправка сигнала процессу по имени

Команда pkill завершает процессы по имени вместо PID. Это может упростить процесс, чем поиск PID.

Например:

pkill -9 firefox

Это принудительно останавливает все процессы Firefox с помощью SIGKILL (9). pkill нацелен на процессы по совпадению имени, пользователя и других критериев вместо PID.

41. nohup – Запустить команду, нечувствительную к разрывам

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

Например:

nohup python script.py &

Приведенная выше команда запустит script.py в фоновом режиме и будет невосприимчива к зависаниям. nohup обычно используется для запуска постоянных фоновых демонов и сервисов.

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

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

42. vmstat – Отчет по статистике виртуальной памяти

Команда vmstat выводит подробные отчеты о памяти, свопе, вводе/выводе и активности процессора. Это включает в себя метрики, такие как использованная/свободная память, своп вход/выход, считанные/записанные блоки диска и время процессора, затраченное на процессы/ожидание.

Например:

vmstat 5

Другие полезные опции vmstat:

  • -a – Показывать активную и неактивную память
  • -s – Отображать счетчики событий и статистику памяти
  • -S – Вывод в килобайтах вместо блоков
  • 5 – Обновление вывода каждые 5 секунд.

Приведенный выше пример выводит данные о памяти и ЦП каждые 5 секунд до прерывания, что полезно для мониторинга производительности системы в реальном времени.

43. iostat – Отчет по статистике CPU и I/O

Команда iostat отслеживает и отображает метрики использования ЦП и дискового ввода-вывода. Это включает в себя загрузку ЦП, IOPS, пропускную способность чтения/записи и другое.

Например:

iostat -d -p sda 5

Некоторые опции iostat:

  • -c – Отображение информации об использовании ЦПУ
  • -t – Вывод временной метки для каждого отчета
  • -x – Показать расширенную статистику, включая время обслуживания и количество ожиданий
  • -d – Показать детализированную статистику по дискам/разделам вместо суммарных итогов
  • -p – Отображение статистики по конкретным дискам

Это показывает детальную статистику ввода/вывода для каждого устройства sda каждые 5 секунд.

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

44. free – Отображение объема свободной и используемой памяти

Команда free показывает общее количество, используемое и свободное количество физической и своп-памяти в системе. Это дает обзор доступной памяти.

Например:

free -h

Некоторые опции для команды free:

  • -b – Отображение вывода в байтах
  • -k – Показать вывод в КБ вместо байтов по умолчанию
  • -m – Показать вывод в МБ вместо байтов
  • -h – Вывод статистики в удобочитаемом формате, например ГБ, МБ вместо байтов.

Это выводит статистику памяти в удобочитаемом формате (GB, MB и т.д.). Это полезно, когда вы хотите быстро получить обзор объема памяти.

45. df – Отчет об использовании дискового пространства файловой системы

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

Например:

df -h

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

46. sar – Сбор и отчет о деятельности системы

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

Например:

sar -u 5 60

Этот пример измеряет использование CPU каждые 5 секунд в течение 60 измерений.

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

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

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

47. useradd – Создать нового пользователя

Команда useradd создает новую учетную запись пользователя и домашний каталог. Она устанавливает UID нового пользователя, группу, Shell и другие параметры по умолчанию.

Например:

useradd -m john

Полезные опции useradd:

  • -m – Создать домашний каталог пользователя.
  • -g – Указать основную группу вместо стандартной.
  • -s – Установить логин Shell пользователя.

Вышеуказанная команда создаст нового пользователя, «john», с сгенерированным UID и созданной домашней папкой в /home/john.

48. usermod – Изменить учетную запись пользователя

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

Например:

usermod -aG developers john

С помощью этой команды вы добавляете пользователя john в дополнительную группу — «developers». Параметр -a добавляет к уже существующему списку групп, к которым добавлен пользователь.

49. userdel – Удаление учетной записи пользователя

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

Например:

userdel -rf john

Полезные параметры userdel:

  • -r – Удалить домашний каталог пользователя и почтовый ящик.
  • -f – Принудительно удалить, даже если пользователь все еще в системе.

Это приводит к удалению пользователя “john,” включая связанные файлы.

Указание опций, таких как -r и -f с userdel, гарантирует полное удаление учетной записи пользователя, даже если пользователь в системе или у него есть активные процессы.

50. groupadd – Добавить группу

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

Например:

groupadd -r sysadmin

Полезные параметры groupadd:

  • -r – Создать системную группу, используемую для основных системных функций.
  • -g – Указать GID новой группы вместо использования следующего доступного.

Приведенная выше команда создает новую группу “sysadmin” с системными привилегиями. При создании новых групп, -r или -g помогают правильно их настроить.

51. passwd – Обновление токенов аутентификации пользователя

Команда passwd устанавливает или обновляет пароль/токены аутентификации пользователя. Это позволяет изменить ваш пароль для входа.

Например:

passwd john

Это приглашает пользователя “john” ввести новый пароль интерактивно. Если вы потеряли пароль от аккаунта, вы можете зайти в Linux с правами sudo или su и изменить пароль тем же методом.

Команды сетевой связи

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

52. ping – Отправка ICMP ECHO_REQUEST сетевым хостам

Команда ping проверяет связь с удаленным хостом, отправляя пакеты запроса эхо ICMP и прослушивая эхо-ответы.

Например:

ping google.com
PING google.com (142.251.42.78): 56 байт данных
64 байта от 142.251.42.78: icmp_seq=0 ttl=112 время=8.590 мс
64 байта от 142.251.42.78: icmp_seq=1 ttl=112 время=12.486 мс
64 байта от 142.251.42.78: icmp_seq=2 ttl=112 время=12.085 мс
64 байта от 142.251.42.78: icmp_seq=3 ttl=112 время=10.866 мс
--- статистика ping для google.com ---
4 пакета передано, 4 пакета получено, 0.0% потерь пакетов
время в пути мин/сред/макс/ско = 8.590/11.007/12.486/1.518 мс

Полезные опции ping:

  • -c [count] – Ограничить количество отправляемых пакетов.
  • -i [interval] – Интервал ожидания в секундах между пингами.

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

53. ifconfig – Настройка сетевых интерфейсов

Команда ifconfig отображает и настраивает параметры сетевого интерфейса, включая IP-адрес, маску сети, широковещательный адрес, MTU и аппаратный MAC-адрес.

Например:

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe1e:ef1d  prefixlen 64  scopeid 0x20<link>
ether 08:00:27:1e:ef:1d  txqueuelen 1000  (Ethernet)
RX packets 23955654  bytes 16426961213 (15.3 GiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 12432322  bytes 8710937057 (8.1 GiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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

54. netstat – Статистика сети

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

Например:

netstat -pt tcp

Эта команда выведет все активные TCP-соединения и процессы, использующие их.

55. ss – Статистика сокетов

Команда ss выгружает статистическую информацию о сокетах, аналогичную netstat. Она может отображать открытые сокеты TCP и UDP, размеры буферов отправки/получения и другое.

Например:

ss -t -a

Это выводит все открытые TCP-сокеты. Более эффективно, чем netstat.

56. traceroute – Определение маршрута к хосту

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

Например:

traceroute google.com

Это отслеживает путь к google.com и выводит каждый сетевой переход.

57. dig - Поиск DNS

Команда dig выполняет поиск DNS и возвращает информацию о DNS записях для домена.

Например:

dig google.com
; <<>> DiG 9.10.6 <<>> google.com
;; глобальные опции: +cmd
;; Получен ответ:
;; ->>ЗАГОЛОВОК<<- opcode: QUERY, статус: NOERROR, id: 60290
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 1, АВТОРИТЕТ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ПСЕВДОРАЗДЕЛ OPT:
; EDNS: версия: 0, флаги:; udp: 1280
;; РАЗДЕЛ ВОПРОСОВ:
;google.com. IN A
;; РАЗДЕЛ ОТВЕТОВ:
google.com. 220 IN A 142.251.42.78
;; Время запроса: 6 мс
;; СЕРВЕР: 2405:201:2:e17b::c0a8:1d01#53(2405:201:2:e17b::c0a8:1d01)
;; КОГДА: Ср. 15 ноября 01:36:16 IST 2023
;; РАЗМЕР СООБЩЕНИЯ  получен: 55

Этот запрос обращается к DNS-серверам за записями, связанными с google.com, и выводит детали.

58. nslookup – Интерактивный запрос к интернет-именным серверам

Команда nslookup интерактивно запрашивает DNS серверы для выполнения поиска разрешения имен или отображения DNS записей.

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

Например, некоторые общие примеры использования nslookup. Введите nslookup в командной строке:

nslookup

Далее мы установим DNS-сервер Google 8.8.8.8 для поиска.

> server 8.8.8.8

Теперь давайте запросим A запись для stackoverflow.com, чтобы найти его IP-адрес.

> set type=A
> stackoverflow.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Неавторитетный ответ:
Name: stackoverflow.com
Address: 104.18.32.7
Name: stackoverflow.com
Address: 172.64.155.249

Теперь давайте найдем MX-записи для github.com, чтобы увидеть его почтовые серверы.

> set type=MX
> github.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Ответ без авторитетности:
github.com почтовый обменник = 1 aspmx.l.google.com.
github.com почтовый обменник = 5 alt1.aspmx.l.google.com.
github.com почтовый обменник = 5 alt2.aspmx.l.google.com.
github.com почтовый обменник = 10 alt3.aspmx.l.google.com.
github.com почтовый обменник = 10 alt4.aspmx.l.google.com.

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

59. iptables – Фильтрация пакетов IPv4 и NAT

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

Например:

iptables -A INPUT -s 192.168.1.10 -j DROP

Приведенная выше команда заблокирует все входящие соединения от IP 192.168.1.10.

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

60. ip – Управление сетевыми устройствами и маршрутизацией

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

Например:

ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:8a:5c:04 brd ff:ff:ff:ff:ff:ff

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

Эта команда направлена на замену ifconfig более современным управлением сетью в Linux. ip может управлять сетевыми устройствами, таблицами маршрутизации и другими настройками сетевого стека.

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

Менеджеры пакетов обеспечивают простую установку, обновление и удаление программного обеспечения в дистрибутивах Linux. Популярные менеджеры пакетов включают APT, YUM, DNF, Pacman и Zypper.

61. apt – менеджер пакетов Debian/Ubuntu

Команда apt управляет пакетами в системах Debian/Ubuntu с использованием репозитория APT. Она позволяет устанавливать, обновлять и удалять пакеты.

Например:

apt update

Эта команда получает последние версии пакетов и метаданные из репозиториев.

apt install nginx

Вы можете установить пакет nginx из настроенных репозиториев APT, используя указанную выше команду.

apt upgrade

И эта команда обновляет пакеты и зависимости до более новых версий.

APT упрощает установку программного обеспечения, загружая пакеты из репозиториев.

62. pacman – Менеджер пакетов Arch Linux

pacman управляет пакетами в Arch Linux из репозитория Arch User Repository. Он может устанавливать, обновлять и удалять пакеты.

Например:

pacman -S nmap

Это устанавливает пакет nmap из настроенных репозиториев.

pacman -Syu

Это синхронизирует с репозиториями и обновляет все пакеты.

pacman поддерживает Arch Linux в актуальном состоянии и облегчает управление пакетами.

63. dnf – Менеджер пакетов Fedora

dnf устанавливает, обновляет и удаляет пакеты в дистрибутивах Fedora Linux, используя пакеты RPM. Он заменяет Yum как менеджер пакетов нового поколения.

Например:

dnf install util-linux

Это устанавливает пакет util-linux.

dnf upgrade

Это обновляет все установленные пакеты до последних версий.

dnf делает управление пакетами Fedora быстрым и эффективным.

64. yum – Red Hat Package Manager

yum управляет пакетами в дистрибутивах Linux RHEL и CentOS, используя пакеты RPM. Он загружает их из репозиториев Yum для установки и обновления.

Например:

yum update

Это обновляет все установленные пакеты до последних версий.

yum install httpd

Вышеуказанная команда устанавливает пакет Apache httpd. yum был основным менеджером пакетов для обновления дистрибутивов Red Hat.

65. zypper – Менеджер пакетов OpenSUSE

zypper управляет пакетами в Linux SUSE/openSUSE. Он может добавлять репозитории, искать, устанавливать и обновлять пакеты.

Например:

zypper refresh

Команда обновления для zypper обновляет метаданные репозитория из добавленных репозиториев.

zypper install python

Это устанавливает пакет Python из настроенных репозиториев. zypper делает управление пакетами беспроблемным на системах SUSE/openSUSE.

66. flatpak – Менеджер пакетов приложений Flatpak

Команда flatpak помогает управлять приложениями и средами выполнения Flatpak. flatpak позволяет распространять приложения для рабочих столов в песочнице по всему Linux.

Например:

flatpak install flathub org.libreoffice.LibreOffice

Например, вышеуказанная команда установит LibreOffice из репозитория Flathub.

flatpak run org.libreoffice.LibreOffice

И это запускает песочницу приложения LibreOffice Flatpak. flatpak предоставляет централизованный междистрибутивный репозиторий приложений Linux, так что вы больше не ограничены пакетами, доступными только в библиотеке пакетов конкретного дистрибутива.

67. appimage – Менеджер пакетов приложений AppImage

AppImage – это самодостаточные приложения, которые работают на большинстве дистрибутивов Linux. Команда appimage запускает существующие AppImages.

Например:

chmod +x myapp.AppImage
./myapp.AppImage

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

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

68. snap – Менеджер пакетов приложений Snappy

Команда snap управляет снэпами — контейнеризованными программными пакетами. Снэпы автоматически обновляются и работают на различных дистрибутивах Linux, аналогично Flatpak.

Например:

snap install vlc

Эта простая команда устанавливает snap медиаплеера VLC.

snap run vlc

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

Команды информации о системе

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

69. uname – Вывод информации о системе

Команда uname выводит подробную информацию о ядре Linux-системы, архитектуре оборудования, имени хоста и операционной системе. Это включает в себя номера версий и информацию о машине.

Например:

uname -a
Linux имя_хоста 5.4.0-48-generic x86_64 GNU/Linux

uname полезен для запроса таких основных системных деталей. Некоторые опции включают:

  • -a – Печать всей доступной системной информации
  • -r – Печать только номера выпуска ядра

Вышеуказанная команда выводила расширенную информацию о системе, включая имя/версию ядра, архитектуру оборудования, имя хоста и ОС.

uname -r

Это выведет только номер версии ядра. Команда uname показывает детали о ключевых компонентах вашей системы Linux.

70. hostname – Показать или установить имя хоста системы

Команда hostname выводит или устанавливает идентификатор имени хоста для вашей системы Linux в сети. Без аргументов она отображает текущее имя хоста. При передаче имени оно обновит имя хоста.

Например:

hostname
linuxserver

Это выводит linuxserver — имя настроенного системного хоста.

hostname UbuntuServer

hostnames определяют системы в сети. hostname получает или настраивает идентифицирующее имя вашей системы в сети. Вторая команда помогает вам изменить локальное имя хоста на UbuntuServer.

71. uptime – Как долго система работает

Команда uptime показывает, как долго система Linux работает с момента последней перезагрузки. Она выводит время работы и текущее время.

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

uptime
23:51:26 up 2 days, 4:12, 1 user, load average: 0.00, 0.01, 0.05

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

72. whoami – Печать идентификатора активного пользователя

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

Введите команду в ваш терминал, чтобы получить ID:

whoami
john

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

73. id – Печать реальных и эффективных идентификаторов пользователя и группы

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

  • Реальный идентификатор и имя пользователя.
  • Эффективный идентификатор и имя пользователя.
  • Реальный идентификатор и имя группы.
  • Эффективный идентификатор и имя группы.

Чтобы использовать команду id, просто введите: 

id
uid=1000(john) gid=1000(john) groups=1000(john),10(wheel),998(developers)

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

74. lscpu – Отображение информации об архитектуре CPU

Команда lscpu показывает подробную информацию об архитектуре процессора, включая:

  • Количество ядер процессора
  • Количество сокетов
  • Модель
  • Размеры кэша
  • Частота процессора
  • Размеры адреса

Чтобы использовать команду lscpu, просто введите: 

lscpu
Архитектура:        x86_64
Режимы работы ЦП:      32-бит, 64-бит
Порядок байтов:          Младший байт вперед
ЦП(ы):              16
Список работающих ЦП: 0-15

lscpu предоставляет детали архитектуры ЦПУ, такие как количество ядер, сокетов, название модели, кэши и другое.

75. lsblk – Список блочных устройств

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

lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0   1.8T  0 disk
|-sda1    8:1    0   512M  0 part  /boot
|-sda2    8:2    0    16M  0 part
`-sda5    8:5    0   1.8T  0 part
`-lvm1 254:0    0   1.8T  0 lvm   /

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

76. lsmod – Показать состояние модулей в ядре Linux

Команда lsmod выводит список текущих загруженных модулей ядра, таких как драйверы устройств. Это включает в себя модули связанные с Networking, Storage, и другими аппаратными модулями, используемыми ядром Linux для взаимодействия с внутренними и внешними устройствами.

lsmod
Модуль                  Размер  Используется
ipv6                  406206  27
evdev                   17700  0
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
aesni_intel           399871  0
aes_x86_64             20274  1 aesni_intel

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

77. dmesg – Печать или управление кольцевым буфером ядра

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

dmesg | grep -i error
[   12.345678] Ошибка получения пакетированного ответа на чтение: -110
[   23.456789] tplink_mdio 0000:03:00.0: Прямая загрузка прошивки для tplink-mdio/leap_p8_v1_0.bin завершилась с ошибкой -2
[   40.567890] iwlwifi 0000:09:00.0: Прямая загрузка прошивки для iwlwifi-ty-a0-gf-a0-59.ucode завершилась с ошибкой -2

Использование команды “grep” для “error” показывает проблемы с загрузкой конкретного программного обеспечения. Это выводит сообщения буферизированного журнала ядра, включая системные события, такие как запуск, ошибки, предупреждения и т. д.

Команды системного администрирования

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

78. sudo – Выполнить команду от имени другого пользователя

Команда sudo позволяет выполнять команды от имени другого пользователя, обычно суперпользователя. После ввода команды sudo система запросит ваш пароль для аутентификации.

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

Например:

sudo adduser bob
[sudo] пароль для john:

Пользователь ‘bob’ был добавлен в систему.

Здесь используется sudo для создания нового пользователя, ‘bob’. Обычно регулярные пользователи не могут добавлять пользователей без sudo.

79. su – Смена идентификатора пользователя или переход в режим суперпользователя

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

Например:

su bob
Пароль:
bob@linux:~$

После ввода пароля пользователя bob, данная команда переключает текущего пользователя на пользователя ‘bob’. Подсказка Shell будет отображать нового пользователя.

80. shutdown – Выключение или перезагрузка Linux

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

Например:

shutdown -r now
Broadcast message from root@linux Fri 2023-01-20 18:12:37 CST:
Система перезагружается прямо сейчас!

Это мгновенно перезагружает систему с предупреждением пользователям.

81. reboot – Перезагрузка или перезапуск системы

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

Например:

reboot
Перезагрузка системы.

Это немедленно перезагружает ОС. reboot является простой альтернативой команде shutdown -r.

82. systemctl – Управление системой и менеджером сервисов systemd

Команда systemctl позволяет управлять сервисами systemd, такими как запуск, остановка, перезапуск или перезагрузка их. Systemd — это новая система инициализации, используемая в большинстве современных дистрибутивов Linux, заменяющая SysV init.

Например:

systemctl start apache2
==== АУТЕНТИФИКАЦИЯ ДЛЯ org.freedesktop.systemd1.manage-units ===
Для запуска 'apache2.service' требуется аутентификация.
Аутентификация как: Имя пользователя
Пароль:
==== АУТЕНТИФИКАЦИЯ ЗАВЕРШЕНА ===

Это запускает службу apache2 после аутентификации.

83. service – Запустить скрипт инициализации System V

Команда service запускает сценарии инициализации System V для управления службами. Это позволяет запускать, останавливать, перезапускать и перезагружать службы, управляемые традиционной SysV init.

Например:

service iptables start
[ ok ] Запуск iptables (через systemctl): iptables.service.

Приведенная выше команда запускает службу брандмауэра iptables с использованием её скрипта инициализации SysV.

Другие команды Linux для испытания

  1. mount – Подключить или “прикрепить” диски к системе.
  2. umount – Отключить или “удалить” диски из системы.
  3. xargs – Собирает и выполняет команды, полученные через стандартный ввод.
  4. alias – Создать ярлыки для длинных или сложных команд.
  5. jobs – Показать программы, текущие выполняющиеся задачи в фоновом режиме.
  6. bg – Возобновить остановленный или приостановленный фоновый процесс.
  7. killall – Завершить процессы по имени программы, а не по PID.
  8. history – Показать ранее использованные команды в текущем терминальном сеансе.
  9. man – Получить доступ к руководствам по командам прямо в терминале.
  10. screen – Управлять несколькими терминальными сеансами из одного окна.
  11. ssh – Установить защищенное шифрованное соединение с удаленными серверами.
  12. tcpdump – Захват сетевого трафика на основе конкретных критериев.
  13. watch – Повторять команду через интервалы и выделять различия в выводе.
  14. tmux – Мультиплексор терминала для постоянных сеансов и разделения.
  15. nc – Открыть TCP или UDP соединения для тестирования и передачи данных.
  16. nmap – Обнаружение хостов, сканирование портов и определение операционных систем.
  17. strace – Отладка процессов путем отслеживания сигналов и вызовов операционной системы.

7 основных советов по использованию команд Linux

  1. Знайте свою Shell: Bash, zsh, fish? Разные оболочки имеют уникальные функции. Выберите ту, которая лучше всего подходит для ваших нужд.
  2. Освойте основные утилиты: ls, cat, grep, sed, awk и другие являются основой набора инструментов Linux.
  3. Пользуйтесь конвейерами: Избегайте чрезмерного использования временных файлов. Умело соединяйте программы между собой.
  4. Проверяйте перед перезаписью: Всегда дважды проверяйте перед тем, как перезаписывать файлы с помощью > и >>.
  5. Отслеживайте свои рабочие процессы: Документируйте сложные команды и рабочие процессы для последующего использования или обмена.
  6. Создавайте свои собственные инструменты: Пишите простые сценарии оболочки и алиасы для частых задач.
  7. Начните без sudo: Используйте изначально учетную запись стандартного пользователя, чтобы понять разрешения.

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

Глоссарий DreamHost

VPS Хостинг

Виртуальный частный сервер (VPS) – это виртуальная платформа, которая хранит данные. Многие хостинг-провайдеры предлагают тарифные планы VPS хостинга, которые предоставляют владельцам сайтов выделенное, частное пространство на общем сервере.

Читать далее

Лучший Linux хостинг с DreamHost

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

В этом DreamHost преуспевает.

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

  • Быстрый веб-хостинг на современных серверах Linux.
  • Доступ к Shell через SSH для управления через командную строку.
  • Настройка версий PHP, включая PHP 8.0.
  • Веб-серверы Apache или NGINX.
  • Управляемые базы данных MySQL, PostgreSQL, Redis.
  • Установка приложений в один клик, таких как WordPress и Drupal.
  • Ускоренное SSD NVMe хранилище для повышения скорости.
  • Бесплатное автоматическое обновление SSL сертификата от Let’s Encrypt.

Эксперты DreamHost могут помочь вам наилучшим образом использовать платформу Linux. Наши серверы тщательно настроены для обеспечения безопасности, производительности и надежности.

Запустите свой следующий проект на надежной хостинг-платформе Linux. Начать с надежного, масштабируемого хостинга на DreamHost.com.

Получайте контент прямо в свой почтовый ящик

Подпишитесь сейчас, чтобы получать все последние обновления прямо в свой почтовый ящик.