Строки такого цвета кликабельны, при нажатии откроются параметры команды.
==Открыть параметры всех команд==
Особенности
- Особенности работы в командной строке:
- command_1; command_2; command_3 выполнение нескольких команд друг за другом независимо от успешного выполнения предыдущей команды
- command_1 && command_2 && command_3 выполнение нескольких команд друг за другом при условии успешного выполнения предыдущей команды
- yum install nginx && \
systemctl start nginx команда из нескольких строк. Символ \ в конце строки экранирует символ переноса и таким образом позволяет сделать команду в несколько строк - sudo !! выполнение последней команды с правами sudo
- yes | command_or_script ответ yes на все запросы команды или скрипта
- !1 выполнение первой команды из истории команд
- !command выполнение команды из истории, которая первая совпадает с введенной
- $(command) подстановка в командную строку результата одной команды для замены части другой команды
- clear очистка экрана
- "name dir" или name\ dir при указании имени файла или каталога с пробелом в названии, нужно брать строку в кавычки или поставить слэш перед пробелом
- command -v у многих команд есть ключ -v (verbose), при указании которого будет выводится подробная информация о работе команды
- Метасимволы и регулярные выражения
- * любое количество символов
- ? любой один символ
- ^abc строки начинающиеся на abc
- abc$ строки заканчивающиеся на abc
- [1-3] диапазон цифр
- [a-c] диапазон букв
- [abc] любой один символ указанный в скобках
- [!abc] любой один символ не указанный в скобках
- {6,7,8} последовательность
- {0..9} последовательность
- {a..d} последовательность
- [[:alpha:]] любая буква
- [[:lower:]] любой символ в нижнем регистре
- [[:upper:]] любой символ в верхнем регистре
- [[:alnum:]] любая буква или цифра
- [[:digit:]] любая цифра
- [[:space:]] любой символ пробела (включая табуляцию, перевод строки и т.д.)
Запись многострочного текста из консоли в файл
cat > /home/text.txt <<EOF str 1 str 2 str 3 EOF
Горячие клавиши
Tab | одно нажатие дополняет команду или путь, два нажатия отображает все возможные варианты дополнения |
---|---|
Ctrl + C | прерывание работы выполняющейся команды |
Ctrl + Z | перевод работы выполняющейся команды в фоновый режим. Команда jobs показывает задачи в фоновом режиме. Команда fg возвращает задачу в нормальный режим |
Ctrl + P, Ctrl + N | вывод предыдущей и следующей введенной команды (аналог стрелок вверх и вниз) |
Ctrl + A, Ctrl + E | перемещение к началу строки и к концу (аналог кнопок Home и End) |
Ctrl + U, Ctrl + K | вырезание текста от начала строки до курсора и от курсора до конца строки |
Ctrl + W | вырезать слово перед курсором, если курсор на слове, то удаляет от начала слова до курсора |
Ctrl + Y | вставка текста, вырезанного через Ctrl + U, Ctrl + K, Ctrl + W |
Ctrl + T | замена символа на предыдущий |
Ctrl + R | поиск по истории введенных команд. После нажатия нужно начать вводить имя искомой команды, будет отображена самая последняя с указанными символами, если нажать еще раз Ctrl + R выведется более старая команда |
Ctrl + L | очистка терминала (аналог команды clear) |
Ctrl + D | закрытие терминала (аналог команды exit) |
Ctrl + S, Ctrl + Q | поставить на паузу, снять с паузы вывод команды |
Файлы и каталоги
Создание, изменение, удаление
Для добавления в имя файла или каталога текущей даты и времени нужно указать в имени при создании следующую конструкцию: $(date +%Y-%m-%d_%H:%M)- touch <file> создание файла
- mkdir <dir> создание каталога
- mkdir -p <dir/dir1/dir2> создание каталога со всеми промежуточными каталогами
- cp <source> <dest> копирование
- -a копирование с сохранением прав и владельца
- -r рекурсивное копирование, то есть включая все вложенные каталоги
- -r </source>/* </dest> копирование всех вложенных каталогов и файлов
- -p копирование без изменения разрешений доступа
- -f копирование с заменой
- -v вывод подробного лога действий
- yes | cp -rfv </source> </dest> копирование всех каталогов и файлов с заменой и подробным выводом
- mv <source> <dest> перенос/переименование файла или каталога
- ln <source> <link> создание жесткой ссылки
- ln -s <source> <link> создание символической ссылки
- rm <file> удаление файла
- -rf <dir> удаление каталога со всеми файлами и каталогами внутри без подтверждения
- echo "<string>" > <file> очистка файла и запись туда указанной строки
- echo "<string>" >> <file> дозапись в файл указанной строки без очистки файла
- > <file> очистка файла
Вывод содержимого файлов
- cat <file> вывод содержимого файла в консоль
- -n с нумерацией строк
- -E с отображением символов окончания строки
- tac <file> вывод содержимого файла в консоль с обратным порядком строк
- head <file> вывод первых 10 строк файла
- tail <file> вывод последних 10 строк файла
- ls список файлов и каталогов
- -l с разрешениями, доступом
- -a со скрытыми файлами и каталогами
- -R с дочерними каталогами и их содержимым
- -lt с сортировкой по времени
- -ltr с сортировкой по времени в обратном порядке
- -lh с отображением размеров в удобном виде
- -ld выводить информацию о текущем каталоге, а не о его содержимом
- -i с количеством инод
- ll алиас для ls -l
- file <file> вывод типа файла
- fuser <file> идентифицирует процессы, использующие файл
- lsof список открытых файлов
- lsof <file> кто использует указанный файл
- lsof +D <dir> рекурсивный поиск всех открытых файлов, начиная с указанного каталога
- lsof -u <user> список всех файлов открытых пользователем
- lsof -c <progr_name> список всех файлов открытых программой
- lsof -p <pid> список всех файлов открытых процессом с указанным pid
- namei -l </source/dir1/dir2> вывод прав всех каталогов в пути
- pwd вывод абсолютного путь к текущему каталогу
- wc <file> вывод числа строк, слов и байт в файле
- -c вывод только числа байт в файле
- -m вывод только числа символов в файле
- -l вывод только числа строк в файле
- -L вывод только числа символов строки максимальной длины в файле
- diff <file1> <file2> сравнение файлов
- realpath <file> вывод абсолютного пути файла
Поиск
- find <dir> поиск по файловой системе, без параметров выводит все файлы в указанном каталоге
- -name "<file>" искать file с учетом регистра
- -not -name "<*.*>" вывести файлы кроме тех, что содержат указанную маску
- -iname "<file>" искать file без учета регистра
- -type l поиск символьных ссылок
- -type d поиск каталогов
- -samefile "<file>" найти все жесткие ссылки на файл в каталоге
- -user root поиск файлов, принадлежащих пользователю
- -perm 777 поиск файлов, с определенными правами
- -size +100M поиск файлов с размером больше 100 мегабайт
- -mmin -120 поиск файлов доступ к которым осуществлялся меньше 120 минут назад
- -mtime +30 -delete удаление файлов старше 30 дней в указанном каталоге
- -mtime +30 -exec rm -f {} \ удаление файлов старше 30 дней в указанном каталоге, выполняется команда после ключа -exec
- -type d -empty -delete удаление пустых каталогов
- -type f -iname "*~\$*" -delete удаление файлов, имеющих в своем составе ~$
- -nouser -nogroup поиск файлов не принадлежащих имеющимся в системе пользователям и группам
- -type f -links +2 поиск файлов имеющих больше двух жестких ссылок
- -empty поиск пустых каталогов и файлов
- grep <string> поиск указанной строки на вводе
- grep <string> <dir>/* поиск строки во всех файлах указанного каталога
- grep -R <string> </dir>/* поиск строки во всех файлах указанного каталога и его подкаталогов
- grep -l <string> </dir>/* поиск строки в файлах и вывод только имен файлов, в которых есть нужная трока
- grep -A <n> <string> поиск с выводом n строк после искомой строки
- grep -B <n> <string> поиск с выводом n строк перед искомой строкой
- grep -c вывод количества совпадений
- grep -i <string> поиск указанной строки игнорируя регистр букв
- grep -n <string> поиск указанной строки и вывод с номерами строк
- grep -s <string> поиск указанной строки, при этом не выводятся сообщения об ошибке
- grep -w <string> поиск полного совпадения указанной строки
- grep -w <string> поиск строк, в которых нет указанной строки
- grep -e <string-1> -e <string-2> поиск по нескольким выражениям
Права
- chmod XXX <dir(file)> установка прав на чтение, запись, выполнение файла или каталога
- chmod -R XXX <dir(file)> рекурсивно применить разрешения
- Вместо X подставляется цифра, соответствующая разрешениям. Первая цифра - права для владельца, вторая - права для группы, третья - права для всех остальных
- 7 rwx
- 6 rw-
- 5 r-x
- 4 r--
- 3 -wx
- 2 -w-
- 1 --x
- 0 ---
- chmod 777 <dir(file)> разрешение для всех
- Можно задавать права символами, а не цифрами
- u права для пользователя
- g права для группы
- o права для остальных
- a права для всех
- + добавить права
- - сбросить права
- = установить права
- r права на чтение
- w права на запись
- x права на выполнение
- chmod u+x <dir(file)> добавить разрешение пользователю на выполнение
- chmod go-wx <dir(file)> убрать у группы и у остальных права на запись и выполнение
- chmod a=rwx <dir(file)> присвоить полные права всем
- chown user <dir(file)> смена владельца каталога или файла
- chown -R <user> <dir(file)> рекурсивная смена владельца
- chown <user>:<group> <dir(file)> смена владельца и группы
- chown :<group> <dir(file)> смена только группы, аналогично команде chgrp group <dir(file)>
Прочее
- cd <dir> переход в каталог
- cd - переход в предыдущий каталог, в котором находился терминал
Сеть
- ethtool <network interface> вывод информации о сетевой карте указанного сетевого интерфейса
- host <hostname or ip> получение доменного имени по ip-адресу или получение ip-адреса по доменному имени
- hostname вывод сетевого имени системы
- hostnamectl set-hostname <hostname> установка сетевого имени hostname
- ip a сетевые подключения
- netstat отображение статистики сети
- -rn таблица маршрутизации
- -t отбор для протокола tcp
- -u отбор для протокола udp
- -i статистика по количеству принятых и отправленных пакетов
- -l отображение слушающих портов
- nslookup <hostname> проверка доступности хоста
- nmblookup <workgroup> -M проверка, кто является master browser`ом в домене/рабочей группе
- dig утилита для обращения к DNS серверам
- dig HOSTNAME.local получение ip-адреса по полному имени (имя хоста с именем домена)
- dig -x 192.168.10.15 получение имени хоста по ip-адресу
- dig -x 192.168.10.15 +short получение имени хоста по ip-адресу с кратким выводом
- dig google.com показывает все ip-адреса сайта
Пакеты и репозитории
- rpm утилита нижнего уровня в CentOS, которая может получить сведения о пакете
- -qa отображение всех установленных пакетов
- -q <package_name> поиск установленного пакета в системе
- -qlp <package_name.rpm> отобразить содержимое пакета
- -qip <package_name.rpm> вывод информации о пакете
- yum/dnf пакетный менеджер CentOS, dnf используется начиная с CentOS8, параметры у них одинаковые
- install <package_name или URL> установка пакета
- check-update проверка обновлений, без установки
- check-update <package_name> проверка обновлений указанного пакета, без установки
- update <package_name> обновление пакета
- remove <package_name> удаление пакета и всех зависимых от него
- repolist вывод установленных репозиториев
- list installed вывод списка всех установленных пакетов
- list installed <package-name-1> <package-name-2> проверка, установлены ли указанные пакеты
- --downloadonly install <package_name> скачать пакет без установки, он будет в каталоге /var/cache/yum/x86_64/7/base/packages/ (для CentOS7)
- search <package_name> поиск пакета в репозитории по названию и описанию
- list <package_name> поиск пакета в репозитории по названию
- list <package_name> --showduplicates отобразить все версии пакета в репозиториях
- provides <dir> показать к какому пакету относится путь
- info посмотреть информацию обо всех пакетах
- info <package_name> посмотреть информацию о пакете такую как: установлен ли пакет, версию, размер, репозиторий
- history просмотр транзакций yum
- history info 1 просмотр что сделано в транзакции по номеру 1
- history undo откатить транзакцию
- apt пакетный менеджер Ubuntu
- install <package_name или URL> установка пакета
- update синхронизация внутренней базы данных о пакетах с репозиториями
- upgrade <package_name> обновление указанного пакета, без указания пакета обновляет все установленные
- dist-upgrade обновление дистрибутива
- remove <package_name> удаление пакета
- check поиск нарушенных зависимостей
- rpm2cpio <package_name>.rpm | cpio -idv распаковка rpm пакета
- whereis <progr_name>.rpm | cpio -idv проверить куда установлено приложение
Службы и процессы
- systemctl утилита управления юнитами, без параметров выводит состояние всех юнитов
- start <service_name> запуск службы
- stop <service_name> остановка службы
- status <service_name> статус службы
- restart <service_name> перезапуск службы
- reload <service_name> перечитать файл конфигурации службы
- enable <service_name> добавить службу в автозагрузку
- disable <service_name> убрать службу из автозагрузки
- enable --now <service_name> запустить и добавить в автозагрузку
- --type=service вывод состояния всех служб
- is-active <service_name> проверить активен ли сейчас юнит
- is-enabled <service_name> проверить включен ли юнит в автозагрузку
- list-units --type=service посмотреть список всех загружаемых служб
- list-units --type=service --all посмотреть список всех служб
- list-unit-files --type=service посмотреть краткий список служб и их состояние
- --failed --type=service посмотреть только отказавшие службы
- list-dependencies список юнитов в виде дерева
- ps вывод запущенных процессов в данном терминале
- ps aux вывод всех процессов, включая процессы без управляющего терминала
- ps -efH вывод всех процессов в виде дерева
- ps -C <service_name> проверить запущен ли процесс с указанным именем
- ps -p <pid> проверить запущен ли процесс с указанным pid
- fg продолжение приостановленной задачи
- jobs вывод приостановленных задач
- killall <name> убить все процессы с указанным именем
- kill <pid> убить процесс с введенным pid
- top вывод запущенных процессов в интерактивном режиме
- Следующие команды вводятся при запущенной утилите top в интерактивном режиме
- n отображать указанное количество процессов
- k уничтожить процесс
- u отображать процессы указанного пользователя
- M сортировать по объему ОЗУ
- P сортировать по загрузке процессора
- q выход
Система
- dmesg вывод сообщений, которые отображались в процессе загрузки системы
- iscpu вывести характеристики процессора
- timedatectl вывод настроек времени
- timedatectl list-timezones посмотреть список доступных часовых поясов
- timedatectl set-timezone <timezone> установить часовой пояс
- free вывод размера оперативной памяти
- free -m в МБ
- free -g в ГБ
- shutdown выключение системы через минуту после ввода команды
- shutdown now выключение системы сразу после ввода команды
- shutdown -r перезагрузка системы через минуту после ввода команды
- shutdown -c отмена выполнения выключения или перезагрузки
- shutdown -h 22:15 запланировать выключение системы на 22 часа 15 минут
- uptime показать время с начала работы системы
- uname -a показать информацию о системе, такую как имя хоста, версию ядра
- journalctl посмотреть журнал системных логов с момента последней загрузки
- --list-boots список журналов предыдущих загрузок
- -b -1 посмотреть журнал предыдущей загрузки
- --since "2021-11-18 07:00:00" посмотреть журнал начиная с указанной даты
- --until "2021-11-18 07:00:00" посмотреть журнал до указанной даты
- --since "2021-11-17 07:00:00" --until "2021-11-18 07:00:00" посмотреть журнал за указанный промежуток времени
- -u <service_name> посмотреть журнал для указанного сервиса
- /usr/bin/sudo посмотреть журнал для указанного процесса по его пути
- _PID=<pid> посмотреть журнал для указанного процесса по его pid
- _UID=<uid> посмотреть журнал для указанного пользователя по его uid
- strace <command> трассировка системных вызовов и сигналов введенной команды
- ltrace <command> трассировка вызовов библиотеки введенной команды
- Параметры системы
- cat /etc/*-release информация о системе
- cat /proc/version версия ядра
- cat /proc/cmdline список параметров, переданных ядру при загрузке
- cat /proc/cpuinfo информация о ЦПУ
- cat /proc/meminfo информация о ОЗУ
- cat /proc/devices список устройств
- cat /proc/filesystems поддерживаемые файловые системы
- cat /proc/mounts список подмонтированных файловых систем
- cat /proc/modules список загруженных модулей
- cat /proc/swaps список разделов и файлов подкачки, которые активны в данный момент
- Переменные среды
- env вывод переменных среды
- export ввод переменной среды
- unset отключение переменной среды
- PATH=$PATH:/home добавление значения /home в переменную PATH
Пользователи и группы
- useradd <user> добавить пользователя user
- -g <group> <user> с указанием основной группы
- -c "text" <user> с указанием описания пользователя
- -e YYYY-MM-DD <user> с указанием даты, когда пользователь будет заблокирован
- -G <group1>,<group2> <user> с указанием списка дополнительных групп, которым пользователь принадлежит
- userdel -r <user> удалить пользователя user вместе с его каталогом
- usermod <user> изменение параметров пользователя
- -L <user> блокировка учетной записи
- -U <user> разблокировка учетной записи
- -g <group> <user> изменение основной группы пользователя
- -c "text" <user> добавление описания пользователя
- -e YYYY-MM-DD <user> указание даты блокировки пользователя
- -aG <group1>,<group2> <user> добавление пользователю дополнительных групп
- groupadd <group>создать группу <group>
- -f если группа уже есть в системе выйти со статусом успешного выполнения
- -g <id> с указанием <id> группы
- groupmod -n <group2> <group1> сменить название группы <group1> на <group2>
- groupdel <group> удалить группу
- getent passwd получить список всех пользователей системы, из файла /etc/passwd
- id <user> информация о пользователе user
- passwd <user> установить/изменить пароль пользователя
- -S вывод статуса пользователя
- -l блокировка пользователя
- -d удаление пароля пользователя
- gpasswd <group> изменяет/устанавливает пароль группы, что позволяет пользователям временно войти в группу при помощи команды newgrp <group>, если им известен пароль
- last вывод списка входа и выхода пользователей по времени
- lastb вывод списка неудачных попыток входа
- who показать пользователей онлайн, время и дату входа
- whoami показать имя текущего пользователя
- sudo -u <user> <command> выполнить одну команду от имени указанного пользователя
- sudo su - <user> войти под указанным пользователем без ввода его пароля
Диски, разделы, устройства
- df вывод информации об использовании дисков
- -h в человекочитаемом виде
- -T с отображением типа файловых систем
- -i с отображением информации об inode
- du вывод размера файлов в текущем каталоге и подкаталогах
- -h в человекочитаемом виде
- -sh вывести размер текущего каталога
- -sh ./* вывести размер подкаталогов текущего каталога
- -sh * | sort -rn вывести список файлов и каталогов, сортируя его по размеру
- lsusb вывод подключенных usb устройств
Разное
- cal вывод календаря на текущий месяц
- date вывод текущей даты и времени
- export EDITOR=nano изменить редактор по умолчанию
- history история введенных команд
- crontab команда для настройки cron
- -l посмотреть задания cron для пользователя под которым осуществлен вход
- -u <user> -l посмотреть задания cron для пользователя <user>
- -e редактировать задания cron
- -u <user> -e редактировать задания cron для пользователя <user>