Linux является основой интернета. Он обеспечивает работу почти 97% ведущих веб-серверов мира. И 55.9% профессиональных разработчиков полагаются на Linux для своих разработок.
Тем не менее, у Linux всего 2.68% доли рынка настольных компьютеров. Почему такое расхождение?
Основное внимание в Linux всегда уделялось не пользовательскому интерфейсу, а предоставлению полного контроля над операционной системой через командную строку.
Это может сделать Linux пугающим для начинающих — и тысячи доступных команд только усугубляют эту сложность.
В этой статье мы рассмотрим топ-100 самых полезных команд Linux. Освоение всего лишь нескольких из этих команд может значительно повысить вашу продуктивность как пользователя Linux. Давайте начнем!
Linux
Linux относится к набору операционных систем с открытым исходным кодом (OS). Не существует единой операционной системы Linux. Вместо этого пользователи могут выбирать из широкой группы дистрибутивов Linux, каждый из которых предоставляет различные возможности.
Читать далееЧто такое команды Linux?
Команды Linux позволяют управлять вашей системой с помощью командной строки (CLI), вместо использования мыши или тачпада. Это текстовые инструкции, вводимые в терминал, чтобы точно указать системе, что делать.
Команды, которые вы вводите в терминале Linux, чувствительны к регистру и следуют синтаксису “command -options arguments
.” Вы можете комбинировать их для сложных задач с использованием конвейеров и перенаправлений.
Некоторые важные моменты, которые нужно знать о командах Linux:
- Они чувствительны к регистру; например, “
ls
” и “LS
” означают разные вещи. - Они следуют определенному синтаксису как “
command -options arguments
.” - Их можно комбинировать для сложных операций с использованием конвейеров и перенаправления.
- Они предоставляют точный контроль над вашей системой, который трудно достигнуть с графическими интерфейсами.
- Они позволяют автоматизировать задачи через скрипты Shell и пакетную обработку.
- Они могут использоваться для доступа к системным ресурсам как файловая система, сеть, память и CPU.
- Они составляют основу взаимодействия с серверами Linux и операционными системами.
Если вы программист, только начинающий кодировать, вы можете начать практиковать свои команды Linux, не покидая Windows, используя Подсистему Windows для Linux. Это позволяет запускать Linux внутри Windows без двойной загрузки и получить лучшее из обеих операционных систем.
Топ-100 наиболее полезных команд Linux
Теперь, когда у вас есть базовое понимание того, что такое команды Linux, давайте перейдем к рассмотрению ста наиболее часто используемых команд Linux.
Мы организовали их по категориям, чтобы охватить такие области, как управление файлами, мониторинг системы, сетевые операции, администрирование пользователей и многое другое.
Команды управления файлами в Linux
Управление файлами является обычной задачей в командной строке Linux. Вот основные команды для работы с файлами:
1. ls – Содержимое каталога
Команда ls
является одной из наиболее часто используемых команд в Linux. Она отображает содержимое директории, показывая все файлы и поддиректории, находящиеся внутри.
Без каких-либо опций или аргументов, ls
отобразит содержимое текущей рабочей директории. Вы можете передать путь, чтобы перечислить файлы и папки в этом месте.
Синтаксис:
ls [options] [directory] |
Некоторые из самых полезных опций ls
включают:
-l
– Отображение результатов в подробном формате, показывая дополнительные сведения, такие как права доступа, владельцы, размер и дата изменения для каждого файла и каталога.-a
– Показывать скрытые файлы и каталоги, начинающиеся с точки, в дополнение к видимым элементам.-R
– Рекурсивно перечислять все содержимое подкаталогов, спускаясь в дочерние папки на неограниченную глубину.-S
– Сортировать результаты по размеру файла, начиная с самых больших.-t
– Сортировать по временной метке, начиная с самых новых.
Пример:
ls -l /home/user/documents |
Это покажет содержимое папки «documents» в развернутом формате.
Пример вывода:
всего 824 -rwxrwx--- 1 пользователь пользователь 8389 Июл 12 08:53 report.pdf -rw-r--r-- 1 пользователь пользователь 10231 Июн 30 16:32 presentation.pptx drwxr-xr-x 2 пользователь пользователь 4096 Май 11 09:21 images -rw-rw-r-- 1 пользователь пользователь 453 Апр 18 13:32 todo.txt |
Этот вывод показывает подробный список с разрешениями, размером, владельцем и временной меткой для каждого файла и директории. Формат подробного списка, предоставляемый опцией -l
, предоставляет полезную информацию о файлах с первого взгляда.
Команда ls
предоставляет вам гибкий контроль над списком содержимого каталога. Это одна из команд, которую вы будете постоянно использовать при работе в Linux.
2. cd – Смена директории
Команда cd
используется для перемещения между каталогами. Она позволяет вам изменить текущий рабочий каталог на новое местоположение в файловой системе.
Когда вы запускаете команду cd
самостоятельно, она возвращает вас в домашний каталог. Вы также можете указать конкретный путь для перехода. Например:
cd /usr/local
– Переход в каталог /usr/local.cd ..
– Перемещение на один уровень вверх к родительскому каталогу.cd ~/pictures
– Переход в папку pictures в вашем домашнем каталоге.
Синтаксис:
cd [directory]
Пример:
cd /home/user/documents
Это изменит рабочий каталог на папку «documents» в /home/user. Использование cd
необходимо для удобного доступа и работы с файлами в разных местах.
3. mkdir – Создать новую директорию
Команда mkdir
позволяет создать новую папку. Вы просто передаете имя создаваемого каталога.
Синтаксис:
mkdir [options] <directory>
Это создаст директорию с названием «newproject» в текущем рабочем каталоге.
Некоторые полезные опции mkdir
:
-p
– Рекурсивно создает родительские директории по мере необходимости.-v
– Подробный вывод, показывающий созданные директории.
Пример:
mkdir -v ~/project/code
Это создаст подкаталог «code» в каталоге «project» в домашней папке пользователя, с подробным выводом, показывающим создание каталога.
4. rmdir – Удалить каталог
Чтобы удалить пустую директорию, используйте команду rmdir
. Обратите внимание, что rmdir
может удалять только пустые директории – для удаления непустых нам понадобится команда rm.
Синтаксис:
rmdir [options] <directory>
Некоторые варианты для rmdir включают:
-v
– Подробный вывод при удалении директорий.-p
– Рекурсивное удаление родительских директорий по мере необходимости.
Пример:
rmdir -v ~/project/code
Это удалит подкаталог «code» в «project», отображая подробный вывод.
5. touch – Создать новый пустой файл
Команда touch
используется для мгновенного создания нового пустого файла. Это полезно, когда вам нужен пустой файл для последующего заполнения данными.
Основной синтаксис touch:
touch [options] filename
Некоторые полезные опции для touch включают в себя:
-c
– Не создавать файл, если он уже существует. Это позволяет избежать случайной перезаписи существующих файлов.-m
– Вместо создания нового файла, обновить временную метку существующего файла. Это может быть использовано для изменения времени модификации.
Например:
touch /home/user/newfile.txt
Приведенная выше команда создает новый пустой файл с именем «newfile.txt» в директории пользователя /home/user. Если файл newfile.txt уже существует, то будут обновлены времена доступа и изменения файла.
6. cp – Копирование файлов и директорий
Команда cp
копирует файлы или директории из одного места в другое. Она требует указания исходного пути и пункта назначения.
Основной синтаксис cp:
cp [options] source destination
Некоторые полезные опции cp:
-r
– Копировать директории рекурсивно, спускаясь в дочерние директории для копирования их содержимого. Необходимо при копировании директорий.-i
– Запрашивать подтверждение перед перезаписью любых существующих файлов в пункте назначения. Предотвращает случайное перезаписывание данных.-v
– Отображать подробный вывод, показывающий детали каждого копируемого файла. Полезно для подтверждения точных копируемых данных.
Например:
cp -r /home/user/documents /backups/
Это рекурсивно скопирует директорию /home/user/documents и все ее содержимое в директорию /backups/. Опция -r
необходима для копирования директорий.
Команда cp
является одной из наиболее часто используемых утилит для управления файлами, предназначенных для копирования файлов и директорий в Linux. Вы будете использовать эту команду довольно часто.
7. mv – Перемещение или переименование файлов и каталогов
Команда mv
используется для перемещения файлов или директорий в другое место или для их переименования. В отличие от копирования, файлы из исходного пути удаляются после их перемещения в пункт назначения.
Вы также можете использовать команду mv
для переименования файлов, поскольку вам просто нужно изменить исходные и конечные пути на старое и новое имя.
Синтаксис команды mv:
mv [options] источник назначение
Полезные опции mv:
-i
– Запрашивать подтверждение перед перезаписью любых существующих файлов в месте назначения. Это предотвращает случайное перезаписывание данных.-v
– Выводить подробный результат, показывающий каждый файл или каталог в процессе перемещения. Это полезно для подтверждения того, что именно было перемещено.
Например:
mv ~/folder1 /tmp/folder1
Вышеуказанные действия переместят папку folder1 из домашней директории (~) в директорию /tmp/. Давайте рассмотрим другой пример использования команды mv
для переименования файлов.
mv folder1 folder2
Здесь «folder1» переименована в «folder2.»
8. rm – Удалить файлы и каталоги
Команда rm
удаляет файлы и директории. Используйте с осторожностью, так как удаленные файлы и директории невозможно восстановить.
Синтаксис:
rm [options] name
Полезные опции rm:
-r
– Рекурсивно удалять директории, включая все содержимое внутри них. Это необходимо при удалении директорий.-f
– Принудительное удаление и подавление всех запросов на подтверждение. Это опасная команда, так как файлы не могут быть восстановлены после удаления!-i
– Запрашивать подтверждение перед удалением каждого файла или директории, что обеспечивает защиту от случайного удаления.
Например:
rm -rf temp
Это рекурсивно удаляет каталог «temp» и все его содержимое без подтверждения (-f
переопределяет подтверждения).
Примечание: Команда rm
окончательно удаляет файлы и папки, поэтому используйте её с осторожностью. Если использовать с привилегиями sudo, вы также можете полностью удалить корневой каталог, и после перезагрузки компьютера Linux больше не будет функционировать.
9. find – Поиск файлов в иерархии каталогов
Команда find
рекурсивно ищет в директориях файлы, соответствующие заданным критериям.
Базовый синтаксис find:
find [path] [criteria]
Некоторые полезные параметры поиска включают:
-type f
– Поиск только обычных файлов, исключая директории.-mtime +30
– Поиск файлов, изменённых более 30 дней назад.-user jane
– Поиск файлов, принадлежащих пользователю “jane”.
Например:
find . -type f -mtime +30
Это найдет все обычные файлы старше 30 дней в текущем каталоге (обозначенном точкой).
Команда find позволяет искать файлы на основе различных условий, таких как имя, размер, права доступа, временные метки, владение и другое.
10. du – Оценка использования дискового пространства файлами
Команда du
измеряет использование места на диске для заданной директории. Когда используется без опций, она отображает использование диска для текущей рабочей директории.
Синтаксис для du:
du [options] [path]
Полезные опции du:
-h
– Отображение размера файла в удобочитаемом формате, например K для килобайт, вместо количества байт. Гораздо проще для восприятия.-s
– Показывает только общий размер директории, вместо перечисления каждой поддиректории и файла. Хорошо для сводки.-a
– Показывает размеры отдельных файлов в дополнение к общим. Помогает идентифицировать крупные файлы.
Например:
du -sh pictures
Это выведет размер папки «pictures» в удобочитаемом формате.
Команда du
полезна для анализа использования диска древовидной структуры каталогов и определения файлов, которые занимают чрезмерное пространство.
Поиск и фильтрация команд в Linux
Теперь давайте рассмотрим команды, которые позволяют искать, фильтровать и манипулировать текстом прямо из командной строки Linux.
11. grep – Поиск текста по шаблонам
Команда grep
используется для поиска текстовых паттернов в файлах или выводе. Она выводит все строки, которые соответствуют заданному регулярному выражению. grep
чрезвычайно мощный инструмент для поиска, фильтрации и сопоставления паттернов в Linux.
Вот основной синтаксис:
grep [options] pattern [files]
Например:
grep -i "error" /var/log/syslog
Этот запрос ищет в файле syslog слово «error», игнорируя регистр.
Некоторые полезные опции grep:
-i
– Игнорировать различия в регистре в шаблонах-R
– Рекурсивно искать в поддиректориях-c
– Выводить только количество совпадающих строк-v
– Инвертировать совпадение, выводить несовпадающие строки
grep
позволяет быстро искать файлы и выводить результаты по ключевым словам или шаблонам. Это незаменимый инструмент для анализа журналов, поиска в исходном коде, сопоставления регулярных выражений и извлечения данных.
12. awk – Язык сканирования и обработки шаблонов
Команда awk
позволяет проводить более сложную обработку текста на основе указанных шаблонов и действий. Она работает построчно, разделяя каждую строку на поля.
Синтаксис awk:
awk 'pattern { action }' input-file
Например:
awk '/error/ {print $1}' /var/log/syslog
Это выводит первое поле любой строки, содержащей «ошибка». awk
также может использовать встроенные переменные, такие как NR
(количество записей) и NF
(количество полей).
Расширенные возможности awk включают:
- Математические вычисления на полях
- Условные операторы
- Встроенные функции для манипулирования строками, числами и датами
- Контроль форматирования вывода
Это делает awk подходящим для извлечения данных, составления отчетов и трансформации текстового вывода. awk
чрезвычайно мощен, так как это независимый язык программирования, предоставляющий вам большой контроль как в команде Linux.
13. sed – редактор потоков для фильтрации и трансформации текста
Команда sed
позволяет фильтровать и преобразовывать текст. Она может выполнять операции, такие как поиск/замена, удаление, транспозиция и другие. Однако, в отличие от awk
, sed
была разработана для редактирования строк на построчной основе согласно инструкциям.
Вот основной синтаксис:
sed options 'commands' input-file
Например:
sed 's/foo/bar/' file.txt
Это заменяет “foo” на “bar” в file.txt.
Некоторые полезные команды sed:
s
– Поиск и замена текста/pattern/d
– Удаление строк, соответствующих шаблону10,20d
– Удаление строк с 10 по 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 [опции] файл1 файл2
Опции:
-b
– Игнорировать изменения в пробелах.-B
– Показывать различия встроенными, выделяя изменения.-u
– Выводить различия с тремя строками контекста.
Например:
diff original.txt updated.txt
Это выведет строки, которые отличаются между original.txt и updated.txt. diff
неоценим для сравнения версий текстовых файлов и исходного кода.
17. wc – Печать количества строк, слов и байт
Команда wc
(подсчет слов) выводит количество строк, слов и байтов в файле.
Синтаксис:
wc [options] [file]
Опции:
-l
– Печатать только количество строк.-w
– Печатать только количество слов.-c
– Печатать только количество байт.
Например:
wc report.txt
Эта команда выведет количество строк, слов и байтов в report.txt.
Команды перенаправления в Linux
Команды перенаправления используются для управления источниками ввода и вывода в Linux, позволяя вам отправлять и добавлять потоки вывода в файлы, принимать ввод из файлов, соединять несколько команд и разделять вывод на несколько направлений.
18. > – Перенаправление стандартного вывода
Оператор > redirection
перенаправляет стандартный поток вывода команды в файл вместо вывода на терминал. Любое существующее содержимое файла будет перезаписано.
Например:
ls -l /home > homelist.txt
Это выполнит ls -l
для отображения содержимого директории /home.
Затем, вместо вывода результата в терминал, символ >
перехватывает этот стандартный вывод и записывает его в homelist.txt, перезаписывая любое существующее содержимое файла.
Перенаправление стандартного вывода полезно для сохранения результатов команд в файлы для хранения, отладки или объединения команд.
19. >> – Добавить стандартный вывод
Оператор >>
добавляет стандартный вывод команды в файл без перезаписи существующего содержимого.
Например:
tail /var/log/syslog >> logfile.txt
Это добавит последние 10 строк файла журнала syslog в конец файла logfile.txt. В отличие от >
, >>
добавляет вывод, не стирая текущее содержимое файла logfile.txt.
Добавление полезно для сбора вывода команд в одном месте без потери существующих данных.
20. < – Перенаправление стандартного ввода
Оператор перенаправления <
подает содержимое файла в качестве стандартного ввода команде, вместо ввода с клавиатуры.
Например:
wc -l < myfile.txt
Это отправляет содержимое файла myfile.txt в качестве входных данных для команды wc, которая будет подсчитывать строки в этом файле, вместо ожидания ввода с клавиатуры.
Перенаправление ввода полезно для пакетной обработки файлов и автоматизации рабочих процессов.
21. | – Перенаправить вывод в другую команду
Оператор |
отправляет выходные данные одной команды в качестве входных данных в другую команду, объединяя их вместе.
Например:
ls -l | less
Это передает вывод команды ls -l
в команду less, что позволяет прокручивать список файлов.
Каналы часто используются для объединения команд, где выходные данные одной команды являются входными данными для другой. Это позволяет создавать сложные операции из более простых программ единичного назначения.
22. tee – Чтение из стандартного ввода и запись в стандартный вывод и файлы
Команда tee
разделяет стандартный ввод на два потока.
Он записывает ввод в стандартный вывод (показывает результат основной команды), одновременно сохраняя копию в файл.
Например:
cat file.txt | tee copy.txt
Это отображает содержимое файла file.txt в терминале, одновременно записывая его в файл copy.txt.
tee
отличается от перенаправления, при котором вы не видите результат, пока не откроете файл, куда был перенаправлен вывод.
Команды архивирования
Команды архивации позволяют объединять несколько файлов и директорий в сжатые архивные файлы для упрощения переносимости и хранения. Распространенные форматы архивов в Linux включают .tar
, .gz
и .zip
.
23. tar – Сохранение и извлечение файлов из архива
Команда tar
помогает работать с файлами архива на магнитной ленте (.tar). Она позволяет объединять несколько файлов и директорий в один сжатый файл .tar.
Синтаксис:
tar [options] filename
Полезные опции tar:
-c
– Создать новый архивный файл .tar.-x
– Извлечь файлы из архива .tar.-f
– Указать имя файла архива вместо stdin/stdout.-v
– Подробный вывод, показывающий архивируемые файлы.-z
– Сжимать или распаковывать архив с помощью gzip.
Например:
tar -cvzf images.tar.gz /home/user/images
Это создает архив tar, сжатый с помощью gzip, под названием images.tar.gz, содержащий папку /home/user/images.
24. gzip – Сжатие или расширение файлов
Команда gzip сжимает файлы, используя кодирование LZ77, чтобы уменьшить размер для хранения или передачи. С помощью gzip вы работаете с файлами .gz.
Синтаксис:
gzip [options] filename
Полезные параметры gzip:
-c
– Выводить результат в stdout вместо файла.-d
– Распаковать файл вместо сжатия.-r
– Рекурсивно сжимать директории.
Например:
gzip -cr documents/
Вышеуказанная команда рекурсивно сжимает папку документов и выводит результат в stdout.
25. gunzip – Распаковка файлов
Команда gunzip
используется для распаковки файлов .gz.
Синтаксис:
gunzip filename.gz
Пример:
gunzip documents.tar.gz
Вышеуказанная команда извлечет исходное несжатое содержимое documents.tar.gz.
26. zip – Упаковка и сжатие файлов
Команда zip
создает архивированные файлы .zip, содержащие сжатое содержимое файлов.
Синтаксис:
zip [options] archive.zip filenames
Полезные опции zip:
-r
– Рекурсивное сжатие директории.-e
– Шифрование содержимого с паролем.
Пример:
zip -re images.zip pictures
Это шифрует и сжимает папку с изображениями в images.zip.
27. unzip – Извлечение файлов из ZIP-архивов
Подобно gunzip
, команда unzip
извлекает и разархивирует файлы из архивов .zip.
Синтаксис:
unzip archive.zip
Пример:
unzip images.zip
Приведенная выше команда извлекает все файлы из images.zip в текущей директории.
Команды передачи файлов
Команды передачи файлов позволяют перемещать файлы между системами по сети. Это полезно для копирования файлов на удаленные серверы или скачивания контента из интернета.
28. scp – Безопасное копирование файлов между хостами
Команда scp
(secure copy) копирует файлы между хостами посредством SSH-соединения. Все передаваемые данные шифруются для обеспечения безопасности.
Синтаксис scp копирует файлы из исходного пути в место назначения, определённое как user@host:
scp source user@host:destination
Например:
scp image.jpg user@server:/uploads/
Это безопасно копирует image.jpg в папку /uploads на сервере как пользователь.
scp
работает как команда cp
, но для передачи файлов на удаленные сервера. Она использует SSH (Secure Shell) для передачи данных, обеспечивая шифрование для защиты конфиденциальных данных, таких как пароли, от раскрытия через сеть. Аутентификация обычно осуществляется с использованием ключей SSH, хотя также могут использоваться пароли. Файлы могут копироваться как на удаленные хосты, так и с них.
29. rsync – Синхронизация файлов между хостами
Инструмент rsync
синхронизирует файлы между двумя местоположениями, минимизируя передачу данных с использованием дельта-кодирования. Это ускоряет синхронизацию больших деревьев каталогов.
Синтаксис rsync синхронизирует источник с назначением:
rsync [options] source destination
Например:
rsync -ahv ~/documents user@server:/backups/
Приведенная выше команда рекурсивно синхронизирует папку с документами с server:/backups/, отображая подробный, понятный человеку вывод.
Полезные опции rsync:
-a
– Режим архива синхронизирует рекурсивно и сохраняет разрешения, времена и т.д.-h
– Читаемый для человека вывод.-v
– Подробный вывод.
rsync
идеально подходит для синхронизации файлов и папок с удаленными системами, а также для децентрализованного резервного копирования и обеспечения безопасности.
30. sftp – Программа безопасной передачи файлов
Программа sftp
обеспечивает интерактивную передачу файлов по протоколу SSH, аналогично обычному FTP, но с шифрованием. Она может передавать файлы на удаленные системы и с удаленных систем.
sftp подключается к хосту и принимает команды вроде:
sftp user@host
get remotefile localfile
put localfile remotefile
Это извлекает remotefile
с сервера и копирует localfile
на удаленный хост.
sftp
имеет интерактивную оболочку для навигации по удаленным файловым системам, передачи файлов и каталогов, а также управления разрешениями и свойствами.
31. wget – Загрузка файлов из интернета
Инструмент wget
загружает файлы через соединения HTTP, HTTPS и FTP. Он полезен для получения веб-ресурсов напрямую из терминала.
Например:
wget https://example.com/file.iso
Это загружает образ файла.iso с удаленного сервера.
Полезные опции wget:
-c
– Возобновить прерванную загрузку.-r
– Рекурсивная загрузка.-O
– Сохранить в определенное имя файла.
wget
идеально подходит для написания скриптов автоматической загрузки и зеркалирования веб-сайтов.
32. curl – Передача данных с сервера или на сервер
Команда curl
передает данные на сервер или с сервера в сети, используя поддерживаемые протоколы. Это включает REST, HTTP, FTP и другие.
Например:
curl -L https://example.com
Вышеуказанная команда извлекает данные с HTTPS URL и выводит их.
Полезные опции curl:
-o
– Записать вывод в файл.-I
– Показать только заголовки ответов.-L
– Следовать перенаправлениям.
curl
предназначен для программной передачи данных по сетям.
Команды прав доступа к файлам
Команды прав доступа к файлам позволяют изменять права доступа для пользователей. Это включает в себя установку разрешений на чтение/запись/выполнение, изменение владельца и режимы файлов по умолчанию.
33. chmod – Изменение режимов файла или разрешений доступа
Команда chmod
используется для изменения прав доступа или режимов файлов и каталогов. Режимы прав представляют, кто может читать, писать или выполнять файл.
Например:
chmod 755 file.txt
Существует три набора разрешений — владелец, группа и публичные. Разрешения устанавливаются с использованием числовых режимов от 0 до 7:
- 7 – чтение, запись и выполнение.
- 6 – чтение и запись.
- 4 – только чтение.
- 0 – нет разрешений.
Это устанавливает права владельца на 7 (rwx), группы на 5 (r-x) и публичные на 5 (r-x). Вы также можете ссылаться на пользователей и группы символически:
chmod g+w file.txt
Синтаксис g+w
добавляет групповое разрешение на запись в файл.
Установка правильных разрешений для файлов и каталогов имеет решающее значение для безопасности Linux и контроля доступа. chmod
предоставляет вам гибкий контроль для точной настройки разрешений, как это необходимо.
34. chown – Изменение владельца файла и группы
Команда chown
изменяет владельца файла или каталога. Владение имеет две составляющие — пользователя, который является владельцем, и группу, к которой он принадлежит.
Например:
chown john:developers file.txt
Приведенная выше командная строка установит владельца пользователя как “john” и группу владельцев как “developers”.
Только суперпользователь root может использовать chown
для изменения владельца файла. Это используется для исправления проблем с разрешениями путем изменения владельца и группы по мере необходимости.
35. umask – Установка прав доступа к файлам по умолчанию
Команда umask
контролирует разрешения по умолчанию, предоставляемые вновь созданным файлам. Она принимает восьмеричную маску в качестве входных данных, которая вычитается из 666 для файлов и 777 для каталогов.
Например:
umask 007
Новые файлы будут иметь права доступа 750 вместо 666, а новые директории — 700 вместо 777.
Установка umask
позволяет настроить разрешения файлов по умолчанию, вместо того чтобы полагаться на системные настройки. Команда umask
полезна для ограничения разрешений на новые файлы без необходимости вручную добавлять ограничения.
Команды управления процессами
Эти команды позволяют просматривать, контролировать и управлять процессами, выполняющимися в вашей системе Linux. Это полезно для определения использования ресурсов и остановки неправильно работающих программ.
36. ps – Отчет о снимке текущих процессов
Команда ps
выводит снимок текущих запущенных процессов, включая их PID, TTY, stat, время запуска и т.д.
Например:
ps aux
Здесь отображаются все процессы, выполняемые всеми пользователями, с дополнительными сведениями, такими как использование ЦП и памяти.
Некоторые полезные опции ps:
aux
– Показывать процессы всех пользователей--forest
– Отображать дерево родительских/дочерних процессов
ps
позволяет вам видеть, что в данный момент выполняется в вашей системе.
37. top – Отображение процессов Linux
Команда top
показывает информацию о процессах в Linux в реальном времени, включая PID, пользователя, процент использования CPU, использование памяти, время работы и другое. В отличие от ps
, она динамически обновляет отображение, отражая текущее использование.
Например:
top -u mysql
Приведенная выше команда отслеживает процессы только для пользователя “mysql”. Это становится довольно полезным для определения программ, интенсивно использующих ресурсы.
38. htop – Интерактивный просмотрщик процессов
Команда htop
является интерактивным просмотрщиком процессов, заменяющим команду top. Она отображает системные процессы вместе с графиками использования CPU/памяти/swap, позволяет сортировать по столбцам, завершать программы и многое другое.
Просто введите htop
в командной строке, чтобы просмотреть ваши процессы.
htop
имеет улучшенные элементы пользовательского интерфейса с цветами, прокруткой и поддержкой мыши для более простой навигации по сравнению с top. Отлично подходит для исследования процессов.
39. kill – Отправить сигнал процессу
Команда kill
отправляет сигнал процессу для его завершения или прекращения. Сигналы позволяют корректно завершить работу, если процесс их обрабатывает.
Например:
kill -15 12345
Вышеуказанная команда отправляет сигнал SIGTERM (15) для корректного завершения процесса с PID 12345.
40. pkill – Отправка сигнала процессу по имени
Команда pkill
завершает процессы по имени вместо PID. Это может упростить процесс, чем поиск PID.
Например:
pkill -9 firefox
Это принудительно останавливает все процессы Firefox с помощью SIGKILL (9). pkill
нацелен на процессы по совпадению имени, пользователя и других критериев вместо PID.
41. nohup – Запустить команду, нечувствительную к разрывам
Команда nohup
запускает процессы, нечувствительные к отключениям, так что они продолжают работать, если вы выйдете из системы или потеряете связь.
Например:
nohup python script.py &
Приведенная выше команда запустит script.py в фоновом режиме и будет невосприимчива к зависаниям. nohup
обычно используется для запуска постоянных фоновых демонов и сервисов.
Команды мониторинга производительности
Эти команды предоставляют ценную статистику производительности системы, которая помогает анализировать использование ресурсов, определять узкие места и оптимизировать эффективность.
42. vmstat – Отчет по статистике виртуальной памяти
Команда vmstat
выводит подробные отчеты о памяти, свопе, вводе/выводе и активности процессора. Это включает в себя метрики, такие как использованная/свободная память, своп вход/выход, считанные/записанные блоки диска и время процессора, затраченное на процессы/ожидание.
Например:
vmstat 5
Другие полезные опции vmstat:
-a
– Показывать активную и неактивную память-s
– Отображать счетчики событий и статистику памяти-S
– Вывод в килобайтах вместо блоков5
– Обновление вывода каждые 5 секунд.
Приведенный выше пример выводит данные о памяти и ЦП каждые 5 секунд до прерывания, что полезно для мониторинга производительности системы в реальном времени.
43. iostat – Отчет по статистике CPU и I/O
Команда iostat
отслеживает и отображает метрики использования ЦП и дискового ввода-вывода. Это включает в себя загрузку ЦП, IOPS, пропускную способность чтения/записи и другое.
Например:
iostat -d -p sda 5
Некоторые опции iostat:
-c
– Отображение информации об использовании ЦПУ-t
– Вывод временной метки для каждого отчета-x
– Показать расширенную статистику, включая время обслуживания и количество ожиданий-d
– Показать детализированную статистику по дискам/разделам вместо суммарных итогов-p
– Отображение статистики по конкретным дискам
Это показывает детальную статистику ввода/вывода для каждого устройства sda каждые 5 секунд.
iostat
помогает анализировать производительность подсистемы диска и определять узкие места в оборудовании.
44. free – Отображение объема свободной и используемой памяти
Команда free
показывает общее количество, используемое и свободное количество физической и своп-памяти в системе. Это дает обзор доступной памяти.
Например:
free -h
Некоторые опции для команды free:
-b
– Отображение вывода в байтах-k
– Показать вывод в КБ вместо байтов по умолчанию-m
– Показать вывод в МБ вместо байтов-h
– Вывод статистики в удобочитаемом формате, например ГБ, МБ вместо байтов.
Это выводит статистику памяти в удобочитаемом формате (GB, MB и т.д.). Это полезно, когда вы хотите быстро получить обзор объема памяти.
45. df – Отчет об использовании дискового пространства файловой системы
Команда df
отображает использование дискового пространства для файловых систем. Она показывает имя файловой системы, общее/использованное/доступное пространство и вместимость.
Например:
df -h
Приведенная выше команда выведет использование диска в удобочитаемом формате. Вы также можете запустить ее без аргументов, чтобы получить те же данные в размерах блоков.
46. sar – Сбор и отчет о деятельности системы
Инструмент sar
собирает и регистрирует информацию о деятельности системы, включая CPU, память, ввод-вывод, сеть и другое за определенный период времени. Эти данные могут быть проанализированы для выявления проблем производительности.
Например:
sar -u 5 60
Этот пример измеряет использование CPU каждые 5 секунд в течение 60 измерений.
sar
предоставляет подробные данные о производительности системы за прошлые периоды, которые недоступны в инструментах реального времени.
Команды управления пользователями
При использовании многопользовательских систем вам могут потребоваться команды, которые помогут управлять пользователями и группами для контроля доступа и разрешений. Давайте рассмотрим эти команды здесь.
47. useradd – Создать нового пользователя
Команда useradd
создает новую учетную запись пользователя и домашний каталог. Она устанавливает UID нового пользователя, группу, Shell и другие параметры по умолчанию.
Например:
useradd -m john
Полезные опции useradd:
-m
– Создать домашний каталог пользователя.-g
– Указать основную группу вместо стандартной.-s
– Установить логин Shell пользователя.
Вышеуказанная команда создаст нового пользователя, «john», с сгенерированным UID и созданной домашней папкой в /home/john.
48. usermod – Изменить учетную запись пользователя
Команда usermod
изменяет настройки существующей учетной записи пользователя. Это может изменить имя пользователя, домашний каталог, Shell, группу, срок действия и т. д.
Например:
usermod -aG developers john
С помощью этой команды вы добавляете пользователя john в дополнительную группу — «developers». Параметр -a
добавляет к уже существующему списку групп, к которым добавлен пользователь.
49. userdel – Удаление учетной записи пользователя
Команда userdel
удаляет учетную запись пользователя, домашний каталог и почтовый буфер.
Например:
userdel -rf john
Полезные параметры userdel:
-r
– Удалить домашний каталог пользователя и почтовый ящик.-f
– Принудительно удалить, даже если пользователь все еще в системе.
Это приводит к удалению пользователя “john,” включая связанные файлы.
Указание опций, таких как -r
и -f
с userdel
, гарантирует полное удаление учетной записи пользователя, даже если пользователь в системе или у него есть активные процессы.
50. groupadd – Добавить группу
Команда groupadd
создает новую группу пользователей. Группы представляют команды или роли для целей разграничения прав.
Например:
groupadd -r sysadmin
Полезные параметры groupadd:
-r
– Создать системную группу, используемую для основных системных функций.-g
– Указать GID новой группы вместо использования следующего доступного.
Приведенная выше команда создает новую группу “sysadmin” с системными привилегиями. При создании новых групп, -r
или -g
помогают правильно их настроить.
51. passwd – Обновление токенов аутентификации пользователя
Команда passwd
устанавливает или обновляет пароль/токены аутентификации пользователя. Это позволяет изменить ваш пароль для входа.
Например:
passwd john
Это приглашает пользователя “john” ввести новый пароль интерактивно. Если вы потеряли пароль от аккаунта, вы можете зайти в Linux с правами sudo или su и изменить пароль тем же методом.
Команды сетевой связи
Эти команды используются для мониторинга соединений, устранения проблем с сетью, маршрутизации, DNS запросов и настройки интерфейса.
52. ping – Отправка ICMP ECHO_REQUEST сетевым хостам
Команда ping
проверяет связь с удаленным хостом, отправляя пакеты запроса эхо ICMP и прослушивая эхо-ответы.
Например:
ping google.com
PING google.com (142.251.42.78): 56 байт данных
64 байта от 142.251.42.78: icmp_seq=0 ttl=112 время=8.590 мс
64 байта от 142.251.42.78: icmp_seq=1 ttl=112 время=12.486 мс
64 байта от 142.251.42.78: icmp_seq=2 ttl=112 время=12.085 мс
64 байта от 142.251.42.78: icmp_seq=3 ttl=112 время=10.866 мс
--- статистика ping для google.com ---
4 пакета передано, 4 пакета получено, 0.0% потерь пакетов
время в пути мин/сред/макс/ско = 8.590/11.007/12.486/1.518 мс
Полезные опции ping:
-c [count]
– Ограничить количество отправляемых пакетов.-i [interval]
– Интервал ожидания в секундах между пингами.
С помощью приведенной выше команды вы пингуете google.com и получаете статистику круговых поездок, указывающую на связь и задержку. Обычно ping
используется для проверки, жива ли система, к которой вы пытаетесь подключиться, и подключена ли она к сети.
53. ifconfig – Настройка сетевых интерфейсов
Команда ifconfig
отображает и настраивает параметры сетевого интерфейса, включая IP-адрес, маску сети, широковещательный адрес, MTU и аппаратный MAC-адрес.
Например:
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe1e:ef1d prefixlen 64 scopeid 0x20<link>
ether 08:00:27:1e:ef:1d txqueuelen 1000 (Ethernet)
RX packets 23955654 bytes 16426961213 (15.3 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12432322 bytes 8710937057 (8.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Запуск ifconfig
без других аргументов предоставит вам список всех сетевых интерфейсов, доступных для использования, вместе с IP и дополнительной сетевой информацией. ifconfig
также может использоваться для установки адресов, включения/отключения интерфейсов и изменения настроек.
54. netstat – Статистика сети
Команда netstat
показывает вам сетевые соединения, таблицы маршрутизации, статистику интерфейсов, соединения маскарада и членство в мультикастах.
Например:
netstat -pt tcp
Эта команда выведет все активные TCP-соединения и процессы, использующие их.
55. ss – Статистика сокетов
Команда ss
выгружает статистическую информацию о сокетах, аналогичную netstat. Она может отображать открытые сокеты TCP и UDP, размеры буферов отправки/получения и другое.
Например:
ss -t -a
Это выводит все открытые TCP-сокеты. Более эффективно, чем netstat
.
56. traceroute – Определение маршрута к хосту
Команда traceroute
выводит маршрут пакетов к сетевому хосту, показывая каждый промежуточный узел на пути и время прохождения. Полезно для отладки сети.
Например:
traceroute google.com
Это отслеживает путь к google.com и выводит каждый сетевой переход.
57. dig - Поиск DNS
Команда dig
выполняет поиск DNS и возвращает информацию о DNS записях для домена.
Например:
dig google.com
; <<>> DiG 9.10.6 <<>> google.com
;; глобальные опции: +cmd
;; Получен ответ:
;; ->>ЗАГОЛОВОК<<- opcode: QUERY, статус: NOERROR, id: 60290
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 1, АВТОРИТЕТ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ПСЕВДОРАЗДЕЛ OPT:
; EDNS: версия: 0, флаги:; udp: 1280
;; РАЗДЕЛ ВОПРОСОВ:
;google.com. IN A
;; РАЗДЕЛ ОТВЕТОВ:
google.com. 220 IN A 142.251.42.78
;; Время запроса: 6 мс
;; СЕРВЕР: 2405:201:2:e17b::c0a8:1d01#53(2405:201:2:e17b::c0a8:1d01)
;; КОГДА: Ср. 15 ноября 01:36:16 IST 2023
;; РАЗМЕР СООБЩЕНИЯ получен: 55
Этот запрос обращается к DNS-серверам за записями, связанными с google.com, и выводит детали.
58. nslookup – Интерактивный запрос к интернет-именным серверам
Команда nslookup
интерактивно запрашивает DNS серверы для выполнения поиска разрешения имен или отображения DNS записей.
Он открывает интерактивную Shell, позволяющую вам вручную искать имена хостов, обратные IP-адреса, находить типы записей DNS и многое другое.
Например, некоторые общие примеры использования nslookup. Введите nslookup в командной строке:
nslookup
Далее мы установим DNS-сервер Google 8.8.8.8 для поиска.
> server 8.8.8.8
Теперь давайте запросим A запись для stackoverflow.com, чтобы найти его IP-адрес.
> set type=A
> stackoverflow.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Неавторитетный ответ:
Name: stackoverflow.com
Address: 104.18.32.7
Name: stackoverflow.com
Address: 172.64.155.249
Теперь давайте найдем MX-записи для github.com, чтобы увидеть его почтовые серверы.
> set type=MX
> github.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Ответ без авторитетности:
github.com почтовый обменник = 1 aspmx.l.google.com.
github.com почтовый обменник = 5 alt1.aspmx.l.google.com.
github.com почтовый обменник = 5 alt2.aspmx.l.google.com.
github.com почтовый обменник = 10 alt3.aspmx.l.google.com.
github.com почтовый обменник = 10 alt4.aspmx.l.google.com.
Интерактивные запросы делают nslookup
очень полезным для изучения DNS и устранения проблем с разрешением имен.
59. iptables – Фильтрация пакетов IPv4 и NAT
Команда iptables
позволяет настраивать правила брандмауэра Linux netfilter для фильтрации и обработки сетевых пакетов. Она устанавливает политики и правила для того, как система будет обрабатывать различные типы входящих и исходящих соединений и трафика.
Например:
iptables -A INPUT -s 192.168.1.10 -j DROP
Приведенная выше команда заблокирует все входящие соединения от IP 192.168.1.10.
iptables
обеспечивает мощное управление брандмауэром ядра Linux для управления маршрутизацией, NAT, фильтрацией пакетов и другим управлением трафиком. Это критически важный инструмент для обеспечения безопасности серверов Linux.
60. ip – Управление сетевыми устройствами и маршрутизацией
Команда ip
позволяет управлять и контролировать различные действия, связанные с сетевыми устройствами, такие как назначение IP-адресов, настройка подсетей, отображение информации о ссылках и конфигурация параметров маршрутизации.
Например:
ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:8a:5c:04 brd ff:ff:ff:ff:ff:ff
Вышеуказанная команда показывает все сетевые интерфейсы, их статус и другую информацию.
Эта команда направлена на замену ifconfig более современным управлением сетью в Linux. ip
может управлять сетевыми устройствами, таблицами маршрутизации и другими настройками сетевого стека.
Команды управления пакетами
Менеджеры пакетов обеспечивают простую установку, обновление и удаление программного обеспечения в дистрибутивах Linux. Популярные менеджеры пакетов включают APT
, YUM
, DNF
, Pacman
и Zypper
.
61. apt – менеджер пакетов Debian/Ubuntu
Команда apt
управляет пакетами в системах Debian/Ubuntu с использованием репозитория APT. Она позволяет устанавливать, обновлять и удалять пакеты.
Например:
apt update
Эта команда получает последние версии пакетов и метаданные из репозиториев.
apt install nginx
Вы можете установить пакет nginx из настроенных репозиториев APT, используя указанную выше команду.
apt upgrade
И эта команда обновляет пакеты и зависимости до более новых версий.
APT
упрощает установку программного обеспечения, загружая пакеты из репозиториев.
62. pacman – Менеджер пакетов Arch Linux
pacman
управляет пакетами в Arch Linux из репозитория Arch User Repository. Он может устанавливать, обновлять и удалять пакеты.
Например:
pacman -S nmap
Это устанавливает пакет nmap из настроенных репозиториев.
pacman -Syu
Это синхронизирует с репозиториями и обновляет все пакеты.
pacman
поддерживает Arch Linux в актуальном состоянии и облегчает управление пакетами.
63. dnf – Менеджер пакетов Fedora
dnf
устанавливает, обновляет и удаляет пакеты в дистрибутивах Fedora Linux, используя пакеты RPM. Он заменяет Yum как менеджер пакетов нового поколения.
Например:
dnf install util-linux
Это устанавливает пакет util-linux.
dnf upgrade
Это обновляет все установленные пакеты до последних версий.
dnf
делает управление пакетами Fedora быстрым и эффективным.
64. yum – Red Hat Package Manager
yum
управляет пакетами в дистрибутивах Linux RHEL и CentOS, используя пакеты RPM. Он загружает их из репозиториев Yum для установки и обновления.
Например:
yum update
Это обновляет все установленные пакеты до последних версий.
yum install httpd
Вышеуказанная команда устанавливает пакет Apache httpd. yum
был основным менеджером пакетов для обновления дистрибутивов Red Hat.
65. zypper – Менеджер пакетов OpenSUSE
zypper
управляет пакетами в Linux SUSE/openSUSE. Он может добавлять репозитории, искать, устанавливать и обновлять пакеты.
Например:
zypper refresh
Команда обновления для zypper
обновляет метаданные репозитория из добавленных репозиториев.
zypper install python
Это устанавливает пакет Python из настроенных репозиториев. zypper
делает управление пакетами беспроблемным на системах SUSE/openSUSE.
66. flatpak – Менеджер пакетов приложений Flatpak
Команда flatpak
помогает управлять приложениями и средами выполнения Flatpak. flatpak
позволяет распространять приложения для рабочих столов в песочнице по всему Linux.
Например:
flatpak install flathub org.libreoffice.LibreOffice
Например, вышеуказанная команда установит LibreOffice из репозитория Flathub.
flatpak run org.libreoffice.LibreOffice
И это запускает песочницу приложения LibreOffice Flatpak. flatpak
предоставляет централизованный междистрибутивный репозиторий приложений Linux, так что вы больше не ограничены пакетами, доступными только в библиотеке пакетов конкретного дистрибутива.
67. appimage – Менеджер пакетов приложений AppImage
AppImage
– это самодостаточные приложения, которые работают на большинстве дистрибутивов Linux. Команда appimage запускает существующие AppImages.
Например:
chmod +x myapp.AppImage
./myapp.AppImage
Это позволяет напрямую запускать двоичный файл AppImage.
AppImages
позволяют развертывание приложений без установки на весь системе. Представьте их как небольшие контейнеры, которые включают все файлы, необходимые для работы приложения без множества внешних зависимостей.
68. snap – Менеджер пакетов приложений Snappy
Команда snap
управляет снэпами — контейнеризованными программными пакетами. Снэпы автоматически обновляются и работают на различных дистрибутивах Linux, аналогично Flatpak.
Например:
snap install vlc
Эта простая команда устанавливает snap медиаплеера VLC.
snap run vlc
После установки вы можете использовать snap
для запуска пакетов, установленных через snap, используя вышеуказанную команду. Snaps изолируют приложения от базовой системы для портативности и обеспечивают более чистую установку.
Команды информации о системе
Эти команды позволяют вам просматривать детали о вашем аппаратном обеспечении Linux, ядре, дистрибутивах, имени хоста, времени работы и многом другом.
69. uname – Вывод информации о системе
Команда uname
выводит подробную информацию о ядре Linux-системы, архитектуре оборудования, имени хоста и операционной системе. Это включает в себя номера версий и информацию о машине.
Например:
uname -a
Linux имя_хоста 5.4.0-48-generic x86_64 GNU/Linux
uname
полезен для запроса таких основных системных деталей. Некоторые опции включают:
-a
– Печать всей доступной системной информации-r
– Печать только номера выпуска ядра
Вышеуказанная команда выводила расширенную информацию о системе, включая имя/версию ядра, архитектуру оборудования, имя хоста и ОС.
uname -r
Это выведет только номер версии ядра. Команда uname
показывает детали о ключевых компонентах вашей системы Linux.
70. hostname – Показать или установить имя хоста системы
Команда hostname
выводит или устанавливает идентификатор имени хоста для вашей системы Linux в сети. Без аргументов она отображает текущее имя хоста. При передаче имени оно обновит имя хоста.
Например:
hostname
linuxserver
Это выводит linuxserver — имя настроенного системного хоста.
hostname UbuntuServer
hostnames
определяют системы в сети. hostname
получает или настраивает идентифицирующее имя вашей системы в сети. Вторая команда помогает вам изменить локальное имя хоста на UbuntuServer.
71. uptime – Как долго система работает
Команда uptime
показывает, как долго система Linux работает с момента последней перезагрузки. Она выводит время работы и текущее время.
Просто выполните следующую команду, чтобы получить данные о времени работы вашей системы:
uptime
23:51:26 up 2 days, 4:12, 1 user, load average: 0.00, 0.01, 0.05
Это выводит время бесперебойной работы системы, показывая, как долго система работает с момента последней загрузки.
72. whoami – Печать идентификатора активного пользователя
Команда whoami
выводит имя пользователя, под которым вы вошли в систему. Она показывает уровень привилегий, с которыми вы работаете.
Введите команду в ваш терминал, чтобы получить ID:
whoami
john
Это выводит имя пользователя, под которым текущий пользователь вошел в систему и работает, и полезно в скриптах или диагностике для определения, под какой учетной записью пользователь выполняет действия.
73. id – Печать реальных и эффективных идентификаторов пользователя и группы
Команда id
выводит подробную информацию о пользователях и группах, касающуюся эффективных идентификаторов и имен текущего пользователя. Это включает в себя:
- Реальный идентификатор и имя пользователя.
- Эффективный идентификатор и имя пользователя.
- Реальный идентификатор и имя группы.
- Эффективный идентификатор и имя группы.
Чтобы использовать команду id, просто введите:
id
uid=1000(john) gid=1000(john) groups=1000(john),10(wheel),998(developers)
Команда id
выводит реальные и эффективные идентификаторы пользователя и группы текущего пользователя. id
отображает сведения о пользователе и группе, полезные для определения прав доступа к файлам.
74. lscpu – Отображение информации об архитектуре CPU
Команда lscpu
показывает подробную информацию об архитектуре процессора, включая:
- Количество ядер процессора
- Количество сокетов
- Модель
- Размеры кэша
- Частота процессора
- Размеры адреса
Чтобы использовать команду lscpu, просто введите:
lscpu
Архитектура: x86_64
Режимы работы ЦП: 32-бит, 64-бит
Порядок байтов: Младший байт вперед
ЦП(ы): 16
Список работающих ЦП: 0-15
lscpu
предоставляет детали архитектуры ЦПУ, такие как количество ядер, сокетов, название модели, кэши и другое.
75. lsblk – Список блочных устройств
Команда lsblk
выводит информацию обо всех доступных блочных устройствах, включая локальные диски, разделы и логические тома. Вывод содержит имена устройств, метки, размеры и точки монтирования.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
|-sda1 8:1 0 512M 0 part /boot
|-sda2 8:2 0 16M 0 part
`-sda5 8:5 0 1.8T 0 part
`-lvm1 254:0 0 1.8T 0 lvm /
lsblk
перечисляет все блочные устройства, включая диски, разделы и логические тома. Дает обзор устройств хранения.
76. lsmod – Показать состояние модулей в ядре Linux
Команда lsmod
выводит список текущих загруженных модулей ядра, таких как драйверы устройств. Это включает в себя модули связанные с Networking, Storage, и другими аппаратными модулями, используемыми ядром Linux для взаимодействия с внутренними и внешними устройствами.
lsmod
Модуль Размер Используется
ipv6 406206 27
evdev 17700 0
crct10dif_pclmul 16384 1
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
aesni_intel 399871 0
aes_x86_64 20274 1 aesni_intel
Как видите, здесь перечислены загруженные модули ядра, такие как драйверы устройств. В данном случае, показано использование модулей Networking, ввода, криптографии и шифрования.
77. dmesg – Печать или управление кольцевым буфером ядра
Команда dmesg
выводит сообщения из буфера кольцевого регистра ядра. Это включает в себя важные системные события, записанные ядром во время запуска и работы.
dmesg | grep -i error
[ 12.345678] Ошибка получения пакетированного ответа на чтение: -110
[ 23.456789] tplink_mdio 0000:03:00.0: Прямая загрузка прошивки для tplink-mdio/leap_p8_v1_0.bin завершилась с ошибкой -2
[ 40.567890] iwlwifi 0000:09:00.0: Прямая загрузка прошивки для iwlwifi-ty-a0-gf-a0-59.ucode завершилась с ошибкой -2
Использование команды “grep” для “error” показывает проблемы с загрузкой конкретного программного обеспечения. Это выводит сообщения буферизированного журнала ядра, включая системные события, такие как запуск, ошибки, предупреждения и т. д.
Команды системного администрирования
Команды системного администратора помогают запускать программы от имени других пользователей, выключать или перезагружать систему, а также управлять системами инициализации и сервисами.
78. sudo – Выполнить команду от имени другого пользователя
Команда sudo
позволяет выполнять команды от имени другого пользователя, обычно суперпользователя. После ввода команды sudo
система запросит ваш пароль для аутентификации.
Это предоставляет повышенный доступ для задач, таких как установка пакетов, редактирование системных файлов, администрирование сервисов и т.д.
Например:
sudo adduser bob
[sudo] пароль для john:
Пользователь ‘bob’ был добавлен в систему.
Здесь используется sudo
для создания нового пользователя, ‘bob’. Обычно регулярные пользователи не могут добавлять пользователей без sudo
.
79. su – Смена идентификатора пользователя или переход в режим суперпользователя
Команда su
позволяет переключиться на другую учетную запись пользователя, включая суперпользователя. Вы должны предоставить пароль целевого пользователя для аутентификации. Это дает прямой доступ к выполнению команд в среде другого пользователя.
Например:
su bob
Пароль:
bob@linux:~$
После ввода пароля пользователя bob, данная команда переключает текущего пользователя на пользователя ‘bob’. Подсказка Shell будет отображать нового пользователя.
80. shutdown – Выключение или перезагрузка Linux
Команда shutdown
позволяет запланировать выключение системы, остановку или перезагрузку после указанного времени или немедленно. Это необходимо для безопасной перезагрузки или выключения многопользовательских систем Linux.
Например:
shutdown -r now
Broadcast message from root@linux Fri 2023-01-20 18:12:37 CST:
Система перезагружается прямо сейчас!
Это мгновенно перезагружает систему с предупреждением пользователям.
81. reboot – Перезагрузка или перезапуск системы
Команда reboot
перезапускает операционную систему Linux, выходит из всех учетных записей пользователей и безопасно перезагружает систему. Она синхронизирует диски и корректно завершает работу системы перед перезапуском.
Например:
reboot
Перезагрузка системы.
Это немедленно перезагружает ОС. reboot является простой альтернативой команде shutdown -r
.
82. systemctl – Управление системой и менеджером сервисов systemd
Команда systemctl
позволяет управлять сервисами systemd, такими как запуск, остановка, перезапуск или перезагрузка их. Systemd
— это новая система инициализации, используемая в большинстве современных дистрибутивов Linux, заменяющая SysV init.
Например:
systemctl start apache2
==== АУТЕНТИФИКАЦИЯ ДЛЯ org.freedesktop.systemd1.manage-units ===
Для запуска 'apache2.service' требуется аутентификация.
Аутентификация как: Имя пользователя
Пароль:
==== АУТЕНТИФИКАЦИЯ ЗАВЕРШЕНА ===
Это запускает службу apache2 после аутентификации.
83. service – Запустить скрипт инициализации System V
Команда service
запускает сценарии инициализации System V для управления службами. Это позволяет запускать, останавливать, перезапускать и перезагружать службы, управляемые традиционной SysV init.
Например:
service iptables start
[ ok ] Запуск iptables (через systemctl): iptables.service.
Приведенная выше команда запускает службу брандмауэра iptables
с использованием её скрипта инициализации SysV.
Другие команды Linux для испытания
-
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.