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
.” - Они могут быть комбинированы для сложных операций с использованием конвейеров и перенаправлений.
- Они предоставляют точный контроль над вашей системой, что сложно достичь с графическими интерфейсами.
- Они позволяют автоматизировать задачи через скрипты оболочки и пакетную обработку.
- Они могут использоваться для доступа к системным ресурсам таким как файловая система, сеть, память и ЦП.
- Они являются основой взаимодействия с серверами и операционными системами 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
Это выводит первое поле любой строки, содержащей «error». 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 [опции] [файл]
Полезные опции сортировки:
-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
помогает работать с файлами архива на ленте (.tar). Она позволяет объединять несколько файлов и директорий в один сжатый файл .tar.
Синтаксис:
tar [options] filename
Полезные опции tar:
-c
– Создать новый архивный файл .tar.-x
– Извлечь файлы из архива .tar.-f
– Указать имя файла архива вместо стандартного ввода/вывода.-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
– Выводить результат в 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 исходный_файл пользователь@хост:назначение
Например:
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
– Вывод в KB вместо блоков5
– Обновление вывода каждые 5 секунд.
Пример выше выводит данные о памяти и процессоре каждые 5 секунд до прерывания, что полезно для мониторинга производительности системы в реальном времени.
43. iostat – Отчет по статистике CPU и ввода/вывода
Команда iostat
отслеживает и отображает использование ЦПУ и метрики дискового ввода-вывода. Это включает в себя загрузку ЦПУ, IOPS, пропускную способность чтения/записи и другое.
Например:
iostat -d -p sda 5
Некоторые опции iostat:
-c
– Отображение информации об использовании ЦПУ-t
– Печать временной метки для каждого отчета-x
– Показать расширенную статистику, такую как время обслуживания и количество ожиданий-d
– Показать подробную статистику по дискам/разделам вместо общих итогов-p
– Отображение статистики для конкретных дисковых устройств
Здесь показаны подробные статистические данные по I/O для каждого устройства sda каждые 5 секунд.
iostat
помогает анализировать производительность подсистемы дисков и определять узкие места оборудования.
44. free – Отображение объема свободной и используемой памяти
Команда free
показывает общее количество, использованное и свободное количество физической и своп-памяти в системе. Это дает обзор доступной памяти.
Например:
free -h
Некоторые параметры для команды free:
-b
– Отображать вывод в байтах-k
– Показать вывод в КБ вместо байтов по умолчанию-m
– Показать вывод в МБ вместо байтов-h
– Печатать статистику в удобочитаемом формате, например ГБ, МБ вместо байтов.
Это выводит статистику памяти в удобочитаемом формате (ГБ, МБ и т.д.). Это полезно, когда вы хотите быстро получить обзор объема памяти.
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 и изменить пароль тем же способом.
Команды сетевой работы
Эти команды используются для мониторинга соединений, устранения проблем с сетью, маршрутизации, поиска 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
--- статистика ping для google.com ---
4 пакета передано, 4 пакета получено, потерь пакетов 0.0%
время в пути мин./сред./макс./ско = 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 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 Lookup
Команда dig
выполняет поиск DNS и возвращает информацию о DNS записях для домена.
Например:
dig google.com
; <<>> DiG 9.10.6 <<>> google.com
;; global options: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60290
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 220 IN A 142.251.42.78
;; Время запроса: 6 мсек
;; SERVER: 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
Неавторитетный ответ:
Name: stackoverflow.com
Address: 104.18.32.7
Name: stackoverflow.com
Address: 172.64.155.249
Теперь давайте найдем записи MX для github.com, чтобы увидеть его почтовые серверы.
> set type=MX
> github.com
Сервер: 8.8.8.8
Адрес: 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
yum
управляет пакетами в дистрибутивах Linux RHEL и CentOS, используя пакеты RPM. Он получает данные из репозиториев Yum для установки и обновления.
Например:
yum update
Это обновляет все установленные пакеты до последних версий.
yum install httpd
Вышеуказанная команда устанавливает пакет Apache httpd. yum
является основным менеджером пакетов для обновления дистрибутивов Red Hat.
65. zypper – Менеджер пакетов OpenSUSE
zypper
управляет пакетами в SUSE/openSUSE Linux. Он может добавлять репозитории, искать, устанавливать и обновлять пакеты.
Например:
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 Application
Команда 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
показывает, как долго система Linux работает с момента последней перезагрузки. Она выводит время работы и текущее время.
Просто выполните следующую команду, чтобы получить данные о времени работы вашей системы:
uptime
23:51:26 up 2 дня, 4:12, 1 пользователь, средняя нагрузка: 0.00, 0.01, 0.05
Это отображает время работы системы, показывая, как долго система работает с последней перезагрузки.
72. whoami – Вывод идентификатора активного пользователя
Команда whoami
выводит имя пользователя, который в данный момент залогинен в системе. Она показывает уровень привилегий, с которыми вы работаете.
Введите команду в вашем терминале, чтобы получить ID:
whoami
john
Это выводит имя пользователя, под которым текущий пользователь вошел в систему и работает, что полезно в скриптах или диагностике для определения, от имени какой учетной записи выполняются действия.
73. id – Вывод реальных и эффективных идентификаторов пользователя и группы
Команда id
выводит подробную информацию о пользователях и группах, касающуюся эффективных идентификаторов и имен текущего пользователя. Это включает в себя:
- Реальный ID пользователя и имя.
- Эффективный ID пользователя и имя.
- Реальный 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-бит
Порядок байтов: Little Endian
ЦПУ: 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
Поиск по “error” показывает проблемы с загрузкой конкретного firmware. Это выводит буферизированные сообщения журнала ядра, включая системные события, такие как запуск, ошибки, предупреждения и т. д.
Команды системного администрирования
Команды системного администратора помогают запускать программы от имени других пользователей, выключать или перезагружать систему, а также управлять системами инициализации и сервисами.
78. sudo – Выполнить команду от имени другого пользователя
Команда sudo
позволяет выполнять команды от имени другого пользователя, обычно суперпользователя. После ввода команды sudo
, система запросит ваш пароль для аутентификации.
Это предоставляет расширенный доступ для задач, таких как установка пакетов, редактирование системных файлов, администрирование сервисов и т. д.
Например:
sudo adduser bob
[sudo] password for 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. служба – Выполнение сценария инициализации 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’s оптимизированная инфраструктура 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.