Краткое руководство по пониманию команд 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
— древовидное представление файлов и каталогов определенного каталога.