Служебные символы и список основных команд
Добавлено: 21 окт 2025, 10:24
Служебные символы
Символ # это комментарий (всё что после него, будет игнорироваться интерпретатором bash), за исключением $# - это количество переданных аргументов запускаемому скрипту.
Доступ к переданным аргументам скрипта $1, $2 .. $N, причём $0 будет содержать имя выполняемого скрипта
Любое буквенное значение после после символа $ - это чтение созданной ранее переменной, если переменная не создана, то по-умолчанию такая переменная она содержит пустое значение
Символы перенаправления
Символ | используется для перенаправления результата предыдущей команды в следующую команду
Символ >> используется для добавления результата команды в конец существующего файла, если файл не существует, то будет создан с результатом выполненной команды (т.е, например, Если нам нужно вести журнал логов)
Символ > заменяет содержимое существующего файла, результатом выполненной команды или создаст новый файл с результатом выполненной команды (ну т.е., например, если нам нужно отправлять данные для работы сокета)
Символ : используется как заглушка, если требуется наличие команды, там где команда не предусмотрена сценарием
Символ && логическое объединение команд в одной строке. Если предыдущая команда выдала исключение (т.е. завершилась с ошибкой), то следующая за ней команда выполнена не будет
Символ ; разделение команд, находящихся в одной строке
Список основных команд
man команда документация
В альпайне она не установлена по-умолчанию (так как alpine это самый маленький линукс), поэтому она идёт в составе пакетов: apk add mandoc man-pages mandoc-apropos , Равно как и интерпретатор bash не установлен в alpine по умолчанию,
потому что по-умолчанию в нём используется #!/bin/sh, что вобщем-то тоже самое, только немного в урезанном виде (в плане функционала разумеется) А чтобы в дальнейшем документация ставилась вместе с пакетом apk add docs
history История ранее введённых команд.
inxi -Fxxxrz Суммарная информация обо всём железе в том числе все температурные показатели
Короче вся информация по железу в ёмком отформатированном виде.
poweroff её форк shutdown -h now выключить
reboot её форк shutdown -r now перезагрузить
echo 'текст' выводит текст на терминал и/или переменную, причём переменная может находится совместно с текстом
Если мы создаём переменную и выполняем операцию присвоения, то пробелы по краям символа присвоения недопустимы.
Главное, чтобы имя созданной нами переменной не пересеклась с зарезервированными переменными.
Зарезервированные переменные как правило в верхнем регистре.
grep шаблон файл поиск строк, соответствующих шаблону
sudo grep -v "#" /etc/sudoers Выведет содержимое файла за исключением всех строк, со держащих комментарий #
где это полезно? есть варианты? например, у нас конфиг как правило очень объёмный и именно за счёт комментария, а нам надо, например, посмотреть каким значением выставлен интересующий нас параметр
cat файл вывод на экран файла
не всегда бывает удобно огромную простыночку скроллить, для этого придумали следующую команду:
less файл постраничный вывод файла (для выхода клавиша q)
tail -f файл вывод последних записей сделанных в файл в интерактивном режиме (-n число сколько вывести строк первоначально)
tee чтение из стандартного ввода и запись в стандартный вывод и файлы
find /путь/где/ищем -name "*искомый фрагмент имени файла или каталога*" поиск нужного файла или каталога
mcedit файл текстовый редактор (в составе пакета mc визуального менеджера пакетов) или nano,vi,vim,nvim
cd каталог перейти в указанный каталог
cp откуда куда скопировать файл
mv откуда куда переместить/переименовать файл
mkdir -p каталог создать каталог
: > файл создать пустой файл или очистить имеющийся файл
rm -fr удалить файл или каталог
read -p "Введите путь к каталогу: " src_dir запрашивает ввод данных и записывает их в переменную $src_dir
tar cvfj файл.tar.bz2 каталог создание архива bzip2
tar xvfj файл.tar.bz2 распаковка архива bzip2
tar xvfz файл.tar.gz распаковка архива gzip
unzip архив.zip распаковка архива zip
unrar x архив.rar распаковка архива rar
w используется для отображения информации о текущих пользователях системы и их активных сеансах. Она показывает, кто вошёл в систему, с каких терминалов, когда они вошли и какие процессы они выполняют.
qrencode -t ansiutf8 "текст" генератор qr-кодов в командной строке (полезно, если нужно поделиться ссылкой на ресурсе в комментах, где ссылки оставлять запрещено)
sudo command -v команда или sudo which команда покажет расположение исполняемого файла (для команд без прав root работает без sudo)
sudo visudo или эквивалент sudo mcedit /etc/sudoers кастомная настройка прав доступа к командам для обычных пользователей, требующих административных прав на выполнение
su - начать работу под админом
sudo useradd пользователь добавить пользователя в систему
sudo passwd пользователь поменять/назначить пароль пользователю (если пользователю не назначен пароль, то он не сможет авторизоваться)
sudo userdel пользователь удалить пользователя из системы
ps aux список текущих процессов запущенных в системе (его форк htop имеющий интерфейс для управления процессами)
ps -p 1 -o comm= система инициализации
mpstat Подробная текущая нагрузка на камень по всем ядрам и потокам (в составе пакета sysstat)
общая нагрузка на камень:
chmod u+x файл.sh Поменять права доступа для файла или каталога
chown пользователь:группа Поменять пользователя и/или группу для файла или каталога
crontab -l список наших скриптов запускающихся по расписанию
ip a или форк этой команды sudo ifconfig -a подробный список имеющихся сетевых интерфейсов, для винды ipconfig /all
ip -br a краткий список имеющихся сетевых интерфейсов или такой вариант ip link show type tun
ip route show список сетевых маршрутов, для винды route print
sudo iptables -nvL список правил файервола цепочки (-t filter) фильтра
sudo arp-scan --localnet просканировать локальную сеть
sudo arp-scan -l -I <сетевой интерфейс> просканировать сеть с явным указанием сетевого интерфейса
ss -tulpn список открытых портов (в составе пакета iproute2)
df -Th или его форк lsblk список смонтированных носителей информации (как логических устройств) и размеры свободно/занято/всего
ncdu количество занятого/свободного места начиная с текущего каталога с интерфейсом управления
du -h / | grep '[0-9]G' количество занятого/свободного места начиная от корня без интерфейса управления в данном случае всё что больше гигабайта (дофига инфы выведет, удобнее ncdu использовать)
du -a -d 1 -h | sort -h список файлов в текущем каталоге отсортированных по размеру
sudo fdisk -l список носителей информации (как физических устройств)
sudo skdump /dev/sda (в составе пакета libatasmart-bin) , для винды wmic diskdrive get status - менее информативна, покажет либо OK либо Bad
dd if=/home/user/file.iso of=/dev/sdb status=progress bs=1M conv=fdatasync скопировать одно блочное устройство в другое
sudo blkid список идентификаторов логических дисков
whoami покажет под каким пользователем выполняется скрипт
readlink -f симв.ссылка покажет на что ссылается символическая ссылка
wc -l файл посчитает количество строк в файле.
Например: посчитает общее число запущенных процессов (учитывая тот факт, что для каждого процесса отдельная строка в команде ps)
screen -rd виртуальные терминалы
exit 0 завершает сеанс терминала или выполнение скрипта
rtorrent торрент для командной строки с интерфейсом
curl -O ссылка скачать файл (посмотреть белый ip-адрес curl https://ipinfo.io/ip) или можно использовать его форк wget ссылка
git clone ссылка на гит проект скачать проект с гита
Скачать видосик с ютуба
pgrep -lf процесс или его форк ps aux | grep процесс
bc - калькулятор в командной строке
bc -l использовать предопределенные математические процедуры
if fi
7.2. Операции проверки файлов
7.3. Операции сравнения
Массивы, циклы, функции
Основы синтаксиса Bash #!/bin/bash
Мониторинг параметров системы и оповещения
создать ключ SSH по размеру 4096 байт и отправить его на сервер
Автоматическая загрузка публичного ключа на удалённые сервера
Добавление административных прав пользователю для явно указанных команд, требующих административных прав на выполнение
/etc/sudoers
Символ # это комментарий (всё что после него, будет игнорироваться интерпретатором bash), за исключением $# - это количество переданных аргументов запускаемому скрипту.
Доступ к переданным аргументам скрипта $1, $2 .. $N, причём $0 будет содержать имя выполняемого скрипта
Любое буквенное значение после после символа $ - это чтение созданной ранее переменной, если переменная не создана, то по-умолчанию такая переменная она содержит пустое значение
Символы перенаправления
Символ | используется для перенаправления результата предыдущей команды в следующую команду
Символ >> используется для добавления результата команды в конец существующего файла, если файл не существует, то будет создан с результатом выполненной команды (т.е, например, Если нам нужно вести журнал логов)
Символ > заменяет содержимое существующего файла, результатом выполненной команды или создаст новый файл с результатом выполненной команды (ну т.е., например, если нам нужно отправлять данные для работы сокета)
Символ : используется как заглушка, если требуется наличие команды, там где команда не предусмотрена сценарием
Символ && логическое объединение команд в одной строке. Если предыдущая команда выдала исключение (т.е. завершилась с ошибкой), то следующая за ней команда выполнена не будет
Символ ; разделение команд, находящихся в одной строке
Список основных команд
man команда документация
В альпайне она не установлена по-умолчанию (так как alpine это самый маленький линукс), поэтому она идёт в составе пакетов: apk add mandoc man-pages mandoc-apropos , Равно как и интерпретатор bash не установлен в alpine по умолчанию,
потому что по-умолчанию в нём используется #!/bin/sh, что вобщем-то тоже самое, только немного в урезанном виде (в плане функционала разумеется) А чтобы в дальнейшем документация ставилась вместе с пакетом apk add docs
history История ранее введённых команд.
inxi -Fxxxrz Суммарная информация обо всём железе в том числе все температурные показатели
Короче вся информация по железу в ёмком отформатированном виде.
poweroff её форк shutdown -h now выключить
reboot её форк shutdown -r now перезагрузить
echo 'текст' выводит текст на терминал и/или переменную, причём переменная может находится совместно с текстом
Если мы создаём переменную и выполняем операцию присвоения, то пробелы по краям символа присвоения недопустимы.
Главное, чтобы имя созданной нами переменной не пересеклась с зарезервированными переменными.
Зарезервированные переменные как правило в верхнем регистре.
grep шаблон файл поиск строк, соответствующих шаблону
sudo grep -v "#" /etc/sudoers Выведет содержимое файла за исключением всех строк, со держащих комментарий #
где это полезно? есть варианты? например, у нас конфиг как правило очень объёмный и именно за счёт комментария, а нам надо, например, посмотреть каким значением выставлен интересующий нас параметр
cat файл вывод на экран файла
не всегда бывает удобно огромную простыночку скроллить, для этого придумали следующую команду:
less файл постраничный вывод файла (для выхода клавиша q)
tail -f файл вывод последних записей сделанных в файл в интерактивном режиме (-n число сколько вывести строк первоначально)
tee чтение из стандартного ввода и запись в стандартный вывод и файлы
Код: Выделить всё
./программа 2>&1 | tee файл.logmcedit файл текстовый редактор (в составе пакета mc визуального менеджера пакетов) или nano,vi,vim,nvim
cd каталог перейти в указанный каталог
cp откуда куда скопировать файл
mv откуда куда переместить/переименовать файл
mkdir -p каталог создать каталог
: > файл создать пустой файл или очистить имеющийся файл
rm -fr удалить файл или каталог
read -p "Введите путь к каталогу: " src_dir запрашивает ввод данных и записывает их в переменную $src_dir
tar cvfj файл.tar.bz2 каталог создание архива bzip2
tar xvfj файл.tar.bz2 распаковка архива bzip2
tar xvfz файл.tar.gz распаковка архива gzip
unzip архив.zip распаковка архива zip
unrar x архив.rar распаковка архива rar
w используется для отображения информации о текущих пользователях системы и их активных сеансах. Она показывает, кто вошёл в систему, с каких терминалов, когда они вошли и какие процессы они выполняют.
qrencode -t ansiutf8 "текст" генератор qr-кодов в командной строке (полезно, если нужно поделиться ссылкой на ресурсе в комментах, где ссылки оставлять запрещено)
sudo command -v команда или sudo which команда покажет расположение исполняемого файла (для команд без прав root работает без sudo)
sudo visudo или эквивалент sudo mcedit /etc/sudoers кастомная настройка прав доступа к командам для обычных пользователей, требующих административных прав на выполнение
su - начать работу под админом
sudo useradd пользователь добавить пользователя в систему
sudo passwd пользователь поменять/назначить пароль пользователю (если пользователю не назначен пароль, то он не сможет авторизоваться)
sudo userdel пользователь удалить пользователя из системы
ps aux список текущих процессов запущенных в системе (его форк htop имеющий интерфейс для управления процессами)
ps -p 1 -o comm= система инициализации
mpstat Подробная текущая нагрузка на камень по всем ядрам и потокам (в составе пакета sysstat)
общая нагрузка на камень:
Код: Выделить всё
mpstat 1 1 | grep -A 5 "%idle" | tail -n 1 | awk -F " " '{print 100 - $12"%"}'achown пользователь:группа Поменять пользователя и/или группу для файла или каталога
crontab -l список наших скриптов запускающихся по расписанию
ip a или форк этой команды sudo ifconfig -a подробный список имеющихся сетевых интерфейсов, для винды ipconfig /all
ip -br a краткий список имеющихся сетевых интерфейсов или такой вариант ip link show type tun
ip route show список сетевых маршрутов, для винды route print
sudo iptables -nvL список правил файервола цепочки (-t filter) фильтра
sudo arp-scan --localnet просканировать локальную сеть
sudo arp-scan -l -I <сетевой интерфейс> просканировать сеть с явным указанием сетевого интерфейса
ss -tulpn список открытых портов (в составе пакета iproute2)
df -Th или его форк lsblk список смонтированных носителей информации (как логических устройств) и размеры свободно/занято/всего
ncdu количество занятого/свободного места начиная с текущего каталога с интерфейсом управления
du -h / | grep '[0-9]G' количество занятого/свободного места начиная от корня без интерфейса управления в данном случае всё что больше гигабайта (дофига инфы выведет, удобнее ncdu использовать)
du -a -d 1 -h | sort -h список файлов в текущем каталоге отсортированных по размеру
sudo fdisk -l список носителей информации (как физических устройств)
sudo skdump /dev/sda (в составе пакета libatasmart-bin) , для винды wmic diskdrive get status - менее информативна, покажет либо OK либо Bad
dd if=/home/user/file.iso of=/dev/sdb status=progress bs=1M conv=fdatasync скопировать одно блочное устройство в другое
sudo blkid список идентификаторов логических дисков
whoami покажет под каким пользователем выполняется скрипт
readlink -f симв.ссылка покажет на что ссылается символическая ссылка
wc -l файл посчитает количество строк в файле.
Например: посчитает общее число запущенных процессов (учитывая тот факт, что для каждого процесса отдельная строка в команде ps)
Код: Выделить всё
ps aux | wc -l exit 0 завершает сеанс терминала или выполнение скрипта
rtorrent торрент для командной строки с интерфейсом
curl -O ссылка скачать файл (посмотреть белый ip-адрес curl https://ipinfo.io/ip) или можно использовать его форк wget ссылка
git clone ссылка на гит проект скачать проект с гита
Скачать видосик с ютуба
pgrep -lf процесс или его форк ps aux | grep процесс
bc - калькулятор в командной строке
bc -l использовать предопределенные математические процедуры
if fi
7.2. Операции проверки файлов
7.3. Операции сравнения
Массивы, циклы, функции
Основы синтаксиса Bash #!/bin/bash
Мониторинг параметров системы и оповещения
создать ключ SSH по размеру 4096 байт и отправить его на сервер
Автоматическая загрузка публичного ключа на удалённые сервера
Добавление административных прав пользователю для явно указанных команд, требующих административных прав на выполнение
/etc/sudoers