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

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

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

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

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

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

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

Глоссарий DreamHost

Linux

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

Читать далее

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

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

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

Некоторые ключевые моменты, которые необходимо знать о командах Linux:

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

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

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

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

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

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

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

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

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

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

Синтаксис:

ls [опции] [каталог]

Некоторые из наиболее полезных опций команды 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] source destination

Полезные параметры 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 [options] file1 file2

Опции:

  • -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 помогает работать с архивными файлами tape archive (.tar). Она позволяет объединить несколько файлов и директорий в один сжатый файл .tar.

Синтаксис:

tar [options] filename

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

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

Например:

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

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

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

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

Синтаксис:

gzip [options] filename

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

  • -c – Выводить результат на стандартное устройство вывода вместо файла.
  • -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/

Приведенная выше командная строка рекурсивно синхронизирует папку с документами с сервером:/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, статус, время начала и т.д.

Например:

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 и ввода/вывода

Команда 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

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

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

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

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

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

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

Например:

useradd -m john

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

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

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

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

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

Например:

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 и изменить пароль тем же способом.

Команды Networking

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

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

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

Например:

ping google.com
PING google.com (142.251.42.78): 56 data bytes
64 bytes from 142.251.42.78: icmp_seq=0 ttl=112 time=8.590 ms
64 bytes from 142.251.42.78: icmp_seq=1 ttl=112 time=12.486 ms
64 bytes from 142.251.42.78: icmp_seq=2 ttl=112 time=12.085 ms
64 bytes from 142.251.42.78: icmp_seq=3 ttl=112 time=10.866 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 8.590/11.007/12.486/1.518 ms

Полезные опции 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 ошибки 0  потеряны 0  переполнения 0  frame 0
TX packets 12432322  bytes 8710937057 (8.1 GiB)
TX ошибки 0  потеряны 0 переполнения 0  carrier 0  коллизии 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
;; global options: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60290
;; флаги: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; ОПТ ПСЕВДОРАЗДЕЛ:
; EDNS: version: 0, flags:; 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 записей.

Он входит в интерактивную оболочку, позволяя вам вручную искать имена хостов, обратные 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
Non-authoritative answer:
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 позволяет настраивать правила брандмауэра netfilter Linux для фильтрации и обработки сетевых пакетов. Она устанавливает политики и правила для того, как система будет обрабатывать различные типы входящих и исходящих соединений и трафика.

Например:

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

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 hostname 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 работает 2 дня, 4:12, 1 пользователь, средняя нагрузка: 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 – Отображение информации об архитектуре процессора

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

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

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

lscpu
Архитектура:        x86_64
Режимы работы CPU:      32-бит, 64-бит
Порядок байтов:          Little Endian
CPU(s):              16
Список работающих CPU: 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 выводит информацию о текущих загруженных модулях ядра, таких как драйверы устройств. Это включает модули, связанные с сетью, хранилищем и другим оборудованием, которые используются ядром 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] password for john:

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

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

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

Команда 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.

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

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