Краткое руководство по пониманию команд Linux.
Эта статья поможет разобраться в большинстве важных и широко используемых команд Linux, которые потребуются инженеру DevOps.
Для выполнения этих команд можно использовать любую Linux-машину / виртуальную машину / онлайн-терминал Linux, чтобы быстро начать работу с командами.
Команды информации о системе
hostname — показывает имя хоста системы.
hostid — показывает идентификатор хоста системы, назначенный операционной системой.
date — показывает текущую дату и время в формате UTC.
whoami — показывает имя пользователя терминала, вошедшего в систему в данный момент.
uptime — показывает время, прошедшее с момента входа в систему компьютера.
uname — название ядра системы.
clear — очищает экран.
history — перечисляет все команды, история ваших команд.
sudo — выполнения от имени суперпользователя.
echo $? — показывает статус завершения последней выполненной команды (0 — успех, 1-255 — ошибка / сбой).
shutdown -r now — немедленно перезагрузите компьютер (-r restart).
printenv — отображает все переменные среды системы Linux.
last — показывает предыдущие входы в систему Linux.
Команды каталогов
pwd — показывает текущий рабочий каталог (сокращенно. Распечатать рабочий каталог).
cd — изменить каталог.
cd ..— изменения в родительском каталоге (т.е. на один уровень выше).cd (имя или путь к каталогу)— перейдите в указанный каталог.cd ~илиcd— изменения в домашнем каталоге пользователя, вошедшего в систему в данный момент.cd ../..— изменяет каталог на два уровня выше.cd -— изменения в последнем рабочем каталоге.
mkdir — создать каталог.
mkdir (имя каталога)— создает каталог.mkdir -p (путьк каталогу и имя)— создает каталог с его родительскими каталогами, если он не существует (-p parent).
ls — перечисляет файлы и папки каталога, в котором вы находитесь.
ls -a— выводит список всех файлов и папок вместе со скрытыми файлами (-a все).ls -al— выводит список всех файлов и папок вместе со скрытыми файлами в форматированном виде (формат длинного списка-l).
Файловые команды
touch — создает пустой файл или обновляет временную метку существующего файла.
touch (file)— создает один пустой файл.touch (file1 file2)— создает пустые файлы file1, file2.
cat — объединяет и отображает содержимое файлов.
cat (путь/имя файла)— отображает содержимое файла.cat (путь/имя файла)— создает новый файл, позволяет вводить содержимое в интерактивном режиме и перенаправляет введенное содержимое в созданный файл.
head — по умолчанию отображает первые 10 строк файла.
head (имя файла)— по умолчанию отображает первые 10 строк файла.head -n 5— отображает первые 5 строк файла (-номер n)
tail -просмотреть последние 10 строк файла.
tail -n 5 (имя файоа)— отображает последние 5 строк файла (номер-n).tail -F (имя файла)— отображает содержимое файла в режиме реального времени, даже когда файл повернут или заменен (используется для мониторинга файла журнала).
less — используется для просмотра файлов.
less (имя файла)— используется для просмотра больших файлов (файлов журналов) в разбивке на страницы.
rm — удалить команду.
rm (имя файла)— удаляет файл.rm -r (путь/имя файла)— рекурсивно удаляет файлы и папки из каталога (-r recursive).rm -rf (путь/имя файла)— принудительно удалите файлы и папки каталога рекурсивно (-f принудительно).
cp — скопировать команду.
cp (source) (destination)— скопируйте файлы и папки из источника в место назначения.cp -r (dir1) (dir2)— рекурсивно скопируйте каталог dir1 в каталог dir2 (-r recursive).
mv — переместить или переименовать команду.
mv (fileName) (newFileName)— переименовывает файл на новое имя.mv (oldFilePath) (newFilePath)— перемещает файл по новому пути.
Команды разрешения файлов
ls -l (pathOfFileName) — показывает права доступа к файлу.
ls -ld (dirNamePath) — показывает разрешения каталога.
chmod (octalNumber) (fileName) — изменяет режим / разрешения файла.
chmod (octalNumber) -R (dirName) — рекурсивно изменяет режим / разрешения каталога.
chown (newUser) (fileName) — изменяет права пользователя на файл.
chown (newUser):(newGroup> (fileName) — изменяет права собственности пользователей и групп на файл.
chgrp (groupName) (fileName/dirName) — обновляет название группы для файла / каталога.
getfacl (fileName/dirName) — показывает список управления доступом к файлам / каталогам.
setfacl -m u:(userName):rwx (fileName/dirName) — изменяет текущий acl файла / каталога.
setfacl -x u:(userName): (fileName/dirName) — удаляет разрешения acl для файла / каталога.
setfacl -m g:(groupName):rwx (fileName/dirName) — изменяет списки управления доступом группы для файла / каталога.
setfacl -x g:(groupName): (fileName/dirName) — удаляет разрешения acl группы для файла / каталога.
Восьмеричные числа прав доступа к файлам
чтение (r) — 4, запись (w)- 2, выполнение (x) — 1
- Суммируйте числа, чтобы создать восьмеричное число для предоставления прав доступа к файлу / каталогу.
Команды управления пользователями
useradd — создает учетную запись пользователя.
useradd (userName)— создает учетную запись пользователя без каталогов home и mail spool.useradd -m (userName)— создает учетную запись пользователя с каталогами home и mail spool.passwd (userName)— создает пароль для пользователя и сохраняет его в файле /etc/shadow.
userdel — удаление пользователя.
userdel (userName)— удаляет пользователя из системы.userdel -r (userName)— удаляет пользователя из системы вместе с каталогами home и mail spool (-r удалить).
/etc/passwd — хранит информацию об учетных записях пользователей.
cat /etc/passwd— отображает полный список пользователей на этом компьютере.
/etc/shadow — сохраняет пароль для пользователей в зашифрованном формате.
cat /etc/shadow— отображает полный список паролей пользователей на этом компьютере.
su — заменить пользователя.
su (userName)— переключается на указанного пользователя.exit— для выхода из системы от этого пользователя.
usermod — изменить пользователя.
usermod -aG (groupName) (userName)— добавляет пользователя в другую группу (-aG добавляет пользователя в группу, не удаляя из других групп).
chsh — сменить оболочку.
chsh -s /bin/bash (user)— изменяет оболочку для пользователя на bash.chsh -s /bin/sh (user)— изменяет оболочку для пользователя на sh.
Команды управления группами
groupadd (groupName) — создает группу.
groupdel (groupName) — удалить группу.
/etc/group — сохраняет информацию о группах.
cat /etc/group— отображает полный список групп на этом компьютере.
gpasswd (groupName) — создает пароль для группы.
gpasswd -a (userName) (groupName)— добавляет пользователя в группу.gpasswd -d (userName) (groupName)— удаляет пользователя из группы.gpasswd -M (userName1),(userName2),(userName3) (groupName)— добавляет нескольких пользователей в группу и удаляет существующих из группы.
Команды поиска
locate — используются для поиска файлов / каталогов на основе имен.
sudo updatedb— обновляет базу данных, чтобы результаты были актуальными.locate (fileName/dirName)— находит файл / каталог и отображает путь.
Команда GREP — поиск регулярного выражения в файлах
grep (textToSearch) (fileName) — используются для поиска текстовых шаблонов в файлах.
grep -i (textToSearch) (fileName) — используется для поиска текстовых шаблонов в файле, игнорируя регистр (-i игнорирую регистр).
grep -v (textToSearch) (fileName) — используется для поиска несоответствующих строк текстовых шаблонов (-v инвертировать-сопоставлять).
grep -l (textToSearch) (fileNames) — используется для отображения соответствующих строковых имен файлов.
grep -r (textToSearch) (catalog) — рекурсивный поиск регулярного выражения в файлах указанного каталога.
Найти файл, команда find
find . -name (fileName) — находит указанный файл, если он доступен в текущем каталоге (.(точка) обозначает текущий каталог).
find (dirName) -name (fileName) — находит указанный файл в каталоге.
find (dirName) -perm 754 — находит файлы в каталоге с разрешением 754.
Команды информирования об оборудовании
free -h — отображает информацию о системной памяти (формат -h, читаемый человеком).
df -h — показывает использование дискового пространства смонтированными файловыми системами.
du — использование диска.
du -h— отображает информацию об использовании диска (в удобочитаемом формате-h).du -sh— отображает общий размер каталога вместо отдельных файлов в удобочитаемом формате (-s summary).du -sh (fileName/dirName)— отображает общий размер файла / каталога.
Сетевые команды
ping (hostName) — проверяет доступность и отзывчивость удаленного хоста.
dig (domainName) — показывает DNS-информацию домена.
wget (url) — используются для извлечения / загрузки файлов из Интернета.
curl (url) — используются для извлечения / загрузки файлов из Интернета.
ifconfig — отображение доступных сетевых интерфейсов.
ip addr — отображение информации о сетевом интерфейсе и управление ею.
curl ifconfig.me — показывает общедоступный IP-адрес компьютера.
netstat -antp — показывает все открытые порты tcp (-a все, t-tcp, n-активный, p протокол).
traceroute (url) — отслеживает маршрут с использованием пакетов от источника до узла назначения.
Команды обработки информации о запущенных процессах
ps — показывает текущий запущенный процесс.
ps -u (userName)— показывает процесс ввода имени пользователя
ps -ef — показывает все процессы системы.
top — показывает динамическое представление запущенных процессов системы в реальном времени.
kill (pid) — корректно завершает pid процесса.
pgrep (processName) — показывает идентификатор процесса процессов на основе имени / других критериев.
bg — фоновый, переводит процесс в фоновый режим и продолжает выполнение без прерывания.
fg — передний план, выводит процесс на передний план и делает его активным процессом.
nohup — без зависаний, запускает команду / скрипт в фоновом режиме даже после закрытия терминала или выхода пользователя из системы.
Команды архивирования файлов tar
tar -cvf (fileName> <directory) — создает файл tar с именем файла для указанного каталога (-c create, -v verbose, f — имя выходного файла).
tar -xvf (sourceTarFileName) -C (destinationDir) — помещает извлеченные файлы в каталог назначения (-x extract, v verbose, -f имя исходного файла tar).
Дополнительные команды
echo "sample text" | grep text — выходные данные первой команды передаются в качестве входных данных для второй команды с использованием символа канала (|).
ls -l | tee file.txt — перенаправляет список на file.txt и одновременно отображает его в терминале.
echo "sample text" > (fileName) — запишите содержимое в указанный файл, перезаписав существующее содержимое (> оператор перенаправления).
echo "new sample text" >> (fileName) — добавляет содержимое к указанному файлу без перезаписи существующего содержимого (>> операция перенаправления).
stat (fileName/dirName) — показывает подробную информацию о файле или каталоге.
cron — системный демон для управления запланированными задачами.
tree — древовидное представление файлов и каталогов определенного каталога.