Linux является основой интернета. Он управляет почти 97% ведущих веб-серверов мира. И 55.9% профессиональных разработчиков полагаются на Linux для своих потребностей в разработке.
Тем не менее, у Linux всего 2.68% доли рынка настольных ОС. Почему такое различие?
Основное внимание в Linux всегда уделялось не пользовательскому интерфейсу, а предоставлению полного контроля над операционной системой через командную строку.
Это может показаться пугающим для новичков в Linux — И тысячи доступных команд только усугубляют ситуацию.
В этой статье мы рассмотрим топ-100 самых полезных команд Linux. Освоение хотя бы некоторых из этих команд может помочь вам повысить вашу продуктивность как пользователя Linux. Давайте начнем!
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-201,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. Отлично подходит для изучения процессов.
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 для испытания
-
mount
– Подключение или «прикрепление» дисков к системе. -
umount
– Отключение или «удаление» дисков из системы. -
xargs
– Создание и выполнение команд, полученных через стандартный ввод. -
alias
– Создание ярлыков для длинных или сложных команд. -
jobs
– Отображение программ, которые в данный момент выполняют задачи в фоне. -
bg
– Возобновление остановленного или приостановленного фонового процесса. -
killall
– Завершение процессов по имени программы, а не по PID. -
history
– Отображение ранее использованных команд в текущей сессии терминала. -
man
– Доступ к руководствам по командам прямо в терминале. -
screen
– Управление несколькими сессиями терминала из одного окна. -
ssh
– Установка защищенных зашифрованных соединений с удаленными серверами. -
tcpdump
– Захват сетевого трафика на основе определенных критериев. -
watch
– Повторение команды через интервалы и выделение различий в выводе. -
tmux
– Мультиплексор терминала для постоянных сессий и разделения. -
nc
– Открытие TCP или UDP соединений для тестирования и передачи данных. -
nmap
– Обнаружение хостов, сканирование портов и определение операционных систем. -
strace
– Отладка процессов путем трассировки сигналов и вызовов операционной системы.
7 основных советов по использованию команд Linux
- Знайте свой Shell: Bash, zsh, fish? Различные оболочки имеют уникальные особенности. Выберите ту, которая лучше всего подходит для ваших нужд.
- Овладейте основными утилитами:
ls
,cat
,grep
,sed
,awk
и др. составляют основу инструментария Linux. - Пользуйтесь пайплайнами: Избегайте чрезмерного использования временных файлов. Умело соединяйте программы в цепочки.
- Проверяйте перед перезаписью: Всегда дважды проверяйте перед тем, как перезаписывать файлы с помощью
>
и>>
. - Отслеживайте свои рабочие процессы: Документируйте сложные команды и рабочие процессы для последующего использования или обмена.
- Создавайте свои инструменты: Пишите простые скрипты и алиасы для часто выполняемых задач.
- Начинайте без
sudo
: Используйте учетную запись обычного пользователя в начале, чтобы понять разрешения.
И не забывайте тестировать новые команды на виртуальных машинах или VPS-серверах, чтобы они стали для вас второй натурой, прежде чем вы начнете использовать их на производственных серверах.
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.