Linux команды
###FIND###
find - поиск файлов в иерархии каталогов.
Пример:
find ~ -name "*.txt" -print
find ~ -name "*.txt" -print -o -name ".*" -print ( -o является обозначениям операции логического ИЛИ)
find . -perm 755 -print
find . -perm -007 -print
find ~ -user dave -print (поиск файлой принадлежащих определенному пользователю)
find /home -nouser -print (поиск файлой принадлежащих несуществующим пользователям)
find ~ -group dave -print
find ~ -nogroup -print
find ~ -mtime -5 -print (найти все файлы которые не обновлялись в течении последних 5 дней)
find ~ -mtime +3 -print (обновлялись в течении последних 3 дней)
find ~ -type d -print
find ~ -type f -exec ls -l {} \; (поиск обычных файлов, список которых отображается на экране с помощью команды ls -l)
find /-perm +6000 -type f -exev ls -ld {} \; > setuid.txt & (Поиск и удаления файлов с установленными битами setuid/setgid)
find ~ -maxdepth 1 -name foo # глубина поиска
###CRONTAB###
crontab - запуск задач по расписанию.
Формат записи
минута час день_месяца месяц день_недели команда
- Минуты - 0 - 59
- Часы - 0 - 23
- День месяца - 1-31
- Месяц - 1-12
- День недели - 0-7 (0 и 7 означают воскресенье)
Дополнительные переменные cron
- @reboot запускать задание при запуску системы
- @yearly раз в год
- @annually тоже что и @yearly
- @monthly раз в месяц
- @weekly раз в неделю
- @daily раз в день
- @midnight в полночь
- @hourly каждый час
at - для одноразового выполнения заданий
at [-f <файл>] ЧЧ:ММ
atq - для просмотра очередей заданий
atrm - удалить задание из очереди печати
crontab [-u <логин_имя> ] [файл | [-l] | [-r] | [-e] | [-i]]
- -l - вывести на консоль содержимого файла расписания
- -r - удалить файл расписания
- -i - удалить предварительно переспросив
- -e - редактировать файл расписания
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
0,30 18-23 * * * command
* 5 4-10 0-3 * command
*/5 * * * * command 2>/tmp/tmp.cron
@rebbot sleep 300 && command
где:
- SHELL- оболочка в которой будет запущен скрипт
- HOME - корневой каталог для пользователя
- MAILTO - кому отсылать сообщение о результате работы команд
###Оперетор & ###
& - переводит задания в фоновый режим, задание уничтожается при выходе пользователя из системы.
watch ls &
###Команда nohup###
nohup - Запуск команд в режиме игнорирования сигналов прерывания и завершения, что предотвращает завершение работы команды даже если пользователь, запустивший ее, вышел из системы. Если после команды не указан символ &, то она будет исполняться как процесс "переднего плана". Если вы собираетесь использовать nohup в сценариях, то вам потребуется использовать его в связке с командой wait, чтобы не породить процесс "зомби".
nohup команда &&
watch ls &
###Команда chpasswd###
chpasswd - изменить пароль пользоветелю
Пример:
# echo "username:password" | chpasswd
# echo -e "megapassword\nmegapassword\n" | passwd
# echo -e "megapassword\nmegapassword\n" | passwd username
$ echo -e "oldpassword\nmegapassword\nmegapassword\n" | passwd
###Метасимволы###
- ls [io]*
- ls log.[0-9]*
- [!...] - соответствуют любому символу из чисел что не указаны в квадратных скобках
- ls log.[!0-9]
- ls [A-Z]* - поиск файлов по именах которые начинаются с верхнего регистра
###ECHO###
echo - вывод сообщения на экран.
* \c - запрет отображения концевого символа новой строки
* \f - прогон страницы
* \n - новая строка
* \t - горизонтальная табуляция
* -n - не выводят завершающий символ новой строки
* -e - позволить интерпретировать обратный слеш
echo -e "Hello \n\n"
###FSTAB###
/etc/fstab - файл описывающий монтирование разделов
Формат
<file system> <mount point> <type> <options> <dump> <pass>
- auto - fs может быть смонтирована автоматически
- ro - только чтение
- rw - чтение и запись
- dev - fs может содержать файлы блочных и символьных устройств
- exec - файлы могут быть исполняемыми
- suid - разрешить использование битов SUID и SGID
-
user - разрешить непривилегированному пользователю монтировать и размонтировать данную файловою систему
-
noauto - не разрешать
- nodev - не разрешать
- noexec - не разрешать
- nosuid - не разрешать
-
nouser - не разрешать
-
defaults - по умолчанию (rw,suid,dev,exec,auto,nouser,async)
- codepage=<значение(866)> интерпритировать символы в именах файлов согласно кодовой странице
- iocharset=<значение(utf8)> выводить символы в именах файлов согласно набору символов
/dev/mapper/ubuntu--vg-root / ext4 noatime,nodiratime,errors=remount-ro 0 1
Стандартные потоки
stdin (0)- стандартный потов ввода
stdout (1)- стандартный потов вывода
stderr (2)- стандартный потов ошибок
команда > файл - направляется стандартный поток вывода
команда 1> файл - направляется стандартный поток вывода
команда >> файл - направляется стандартный поток вывода (режим присоединения)
команда 2> файл - направляется стандартный поток ошибок
команда >> файл 2>&1 - аправляется стандартный поток ошибок и вывода
команда <файл1>файл2 - Получает входные данные из первого файла и направляет выходные данные во второй файл
команда < файла - получает данные из указанного файла
команда << резделитель - получает данные из стандартного потока пока не встретит разделитель.
VAR=$(./test.sh 2>&1) # запись stdout в переменную
Перенаправление stdout и stderr в файли и stdout
tee - разветляет поток
ls | tee test.log
ls 2>&1|tee test.log
ls -lh /tmp /rkdl 1>list 2> ett
ls -lh /tmp /rkdl 1>list 2>&1 - перенаправляет на STDOUR
ls -lh /tmp /rkdl 2>list 1>&2 - связать потоки ввода и потоки вывода
2>list 1>&2 ls -lh /tmp /rkdl
more < /etc/resolv.conf
###Read ###
read - чтение из файлового дескриптора
read var1 var2
read -p "Are you sure? "
while true; do
read -p "Do you wish to install this program?" yn
case $yn in
[Yy]* ) make install; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
read -p "Do you want run docker-compose ? " -t 30 yn
if [ $yn == 'y'] || [ $yn == 'yes']
then
docker-compose up -d
fi
###GREP###
grep - выводит строки, соответствующие шаблону.
* -с - Задает отображегие только числового отображения, указывающего, сколько строк соответствуют шаблону
* -i - игнорировать регистр символов
* -h - подавляет вывод имен файлов включающих найденные строки
* -n - задает нумерацию выводимых строк
* -s - Подавляет вывод сообщения о несуществующих или нетекстовых файлах
* -v - Задает отображение строк, не соответствующих шаблону
grep "48<tab>" file.txt - вывести строку равную только 48
grep '\<48\>' file.txt
grep '48[34]' file.txt
grep '^[^48]' file.txt - находит все не начинающиеся на 4 или 8
grep '[0-9]\{3\}\.[0-9]\{3\}\.' ipfile -поиск IP
ls -l | grep '^d.....x..x'
egrep '(shutdown|reboot)s?' * - поиск shutdowns, shutdown, reboot, reboots
egrep - работает с расширенными регулярными выражениями
fgrep - быстрый вариант команды grep
who | egrep 'alex|louise|matty'
###SED###
sed [ опции ] команда входной файл
- -n - запрет вывод на экран
- -e - Cледующей командой будет команда редактирования
- -f - Эта опция используется при подключении файла сценария
####Правила отбора строк в редакторе sed####
x - строки с номера x
x,y - все строки с номерами в диавазоне от x до y
/шаблон1/,/шаблон2/ - група строк, начиная от строки, соответствующей первому шаблону, и заканчивается строкой, которая соответствует второму наблону
/шаблон/,x - шаблон - номер строки
x,/шаблон/ - номер строка - шаблон
! - все строки не соответствующие заданому адресу
$ - последняя спрока входного файла
####Основные команды редактирования####
* p - Вывод адресуемых строк
* = - Вывод номеров адресуемых строк
* a - Добавление заданного текста после каждой адресуемой строки
* i - Вставка заданного текста после каждой адресуемой строки
* с - Замена адресуемого текстового блока заданным текстом
* d - Удаление адресуемых строк
* s - Замена указанного шаблона заданным текстом в каждой адресуемой строке
* w - Добавление адресуемых строк в указанный файл
Примеры:
sed -n '2p' file.txt
sed -n 'Neave/p' file.txt - поиск по шаблону
sed -n '1p' file.txt - поиск первой строки
sed '/music/=' file.txt - вывод номеров строк
sed '1d' file.ftx - удаление 1 строка
sed '1,3d' file.ftx - удаление 1-3 строка
-e [адрес1],[адрес2] "s/шаблон/шаблон/[флаги]" - замена подстроки
флаги
- g - глобал замена в строке каждой подстроки
- n- Замена n-й подстроки
- p - Вывод на экранстроки
sed -e "s/hostname/$HOSTNAME/g" -e "s/DATABASENAME/$DBNAME/g" -e "s/DATABASEUSERNAME/$DBUSER/g" -e "s/DATABASEPASSWORD/$DBPASS/g" conf/conf.cfg > /etc/prog/conf.cfg
###SORT###
sort - команда сортировки файлов
- с - проверка того, отсортирован ли файл, сортировка не производится
- m - Объединение отсортированных файлов, сортировка не производится
- u - Удаление повторяющихся строк
- o - Вывод результата не на экран, а в указанный файл
- b - игнорирование начальных пробелов в полях сортироки
- n- включение режима числовой сортировки
- t - Задание разделителя полей
- r - Сортировка в обратном порядке
###UNIQ###
unuq - удаление повторяющихся строк
uniq опции входной_файл выходной_файл
- u - отображение не повторяющихся строк
- d - отображение одной копии каждой повторяющейся строки
- *fn - игнорирование первых n полей
###JOIN###
join - объединеие файлов
join опции входной_файл1 входной_файл2
###CUT###
cut - вырезание текста
cut [опции] файл
с список - Определяет, какие символы извлекают из каждого входного файла
f список - Определяет, какие поля извлекают из каждого входного файла
d - Задает разделитель полей
head -n15 /etc/passwd | cut -f1,6-7 -d:
head -n15 /etc/passwd | cut -c2-12 - вырезать символ с 2 по 12
###PASTE###
paste - вставка текста
paste [опции] файл...
d список - вставляет разделитель
s - ражим последовательного слияния строк каждого входного файла
###SPLIT####
split - разделение файла на части
##TR##
tr - символьное преобразование (транслейт)
tr -c -d -s ["строка1"] ["строка2"] входной файл
с - Задает замену набора символов, указанных в строке1, их собственным дополнением при условии, что значение этих символов находится в диапазоне значений кодов ASCII
d - Задает удаление во входном файле всех символом, указанных в строке1
s - Задает удаление в последовательности повторяющихся символов всех символов, кроме первого
echo mama | tr a-z A-Z
echo 'mama papa' | tr 'a-z' 'A-Z_'
head -n15 /etc/passwd | tr -s ouw -
head -n15 /etc/passwd | tr -d :/0-9 -
tr -d '\n' - убрать символ перевола строки
###UNSET###
unset - удаление значения переменной
###SHRED###
shred - Перезаписывает несколько раз указанные файлы, чтоб усложнить востановленние.
###OD###
od - Команда od (octal dump) производит преобразование ввода (или файла) в один или несколько форматов, в соответствии с указанными опциями. При отсутствии опций используется восьмеричный формат (опция -o). Эта команда полезна при просмотре или обработке файлов с двоичными данными, например /dev/urandom.
###MCOOKIE###
mcookie - Эта команда создает псевдослучайные шестнадцатиричные 128-битные числа
###UNITS###
units - Эта утилита производит преобразование величин из одних единиц измерения в другие.
###USERS###
users - Выведет список всех зарегистрировавшихся пользователей. Она, до некоторой степени, является эквивалентом команды who -q.
###GROUP###
groups - Выводит список групп, в состав которых входит текущий пользователь. Эта команда соответствует внутренней переменной $GROUPS, но выводит названия групп, а не их числовые идентификаторы.
##ID##
id - Команда id выводит идентификатор пользователя (реальный и эффективный) и идентификаторы групп, в состав которых входит пользователь.
###USERADD,USERDELL###
useradd, userdel - Команда useradd добавляет учетную запись нового пользователя в систему и создает домашний каталог для данного пользователя. Противоположная, по смыслу, команда userdel удаляет учетную запись пользователя из системы. [38] и удалит соответствующие файлы.
###WHO###
who - Выводит список пользователей, работающих в настоящий момент в системе.
###W###
w - Выводит информацию о системе, список пользователей, подключенных к системе и процессы, связанные с пользователями. Это расширенная версия команды who. Вывод от команды w может быть передан по конвейеру команде grep, с целью поиска требуемого пользователя и/или процесса.
###SU###
su - Команда предназначена для запуска программы или сценария от имени другого пользователя.
###SUDO###
sudo - Исполняет заданную команду от имени пользователя root (или другого пользователя).
tom ALL=(oracle) ALL
sudo -u oracle -i
###LAST###
last - Выводит информацию о последних входах/выходах пользователей в ситему, основываясь на записях в файле /var/log/wtmp.
###TTY###
tty - Выводит имя терминала текущего пользователя. Обратите внимание: каждое отдельное окно xterm считается отдельным терминалом.
###WALL###
wall - Имя этой команды -- аббревиатура от "write all", т.е., передать сообщение всем пользователям на все терминалы в сети.
###DMESG###
dmesg - Выводит все сообщения, выдаваемые системой во время загрузки на stdout. Очень полезная утилита для отладочных целей.
###UNAME###
uname - Выводит на stdout имя системы. С ключом -a, выводит подробную информацию, содержащую имя системы
###LASTLOG###
lastlog - Выводит список всех пользователей, с указанием времени последнего входа в систему. Данные берутся из файла /var/log/lastlog.
###LSOF###
lsof - Выводит детальный список открытых, в настоящий момент времени, файлов в виде таблицы.
- lsof - проверка открытых файлов и сокетов
- lsof -p 2234 - по процессу
- lsof -c по имени процесса
- lsof -i - проверить какие сокеты открыты
###STRACE###
strace - Диагностическая и отладочная утилита, предназначенная для трассировки системных вызовов и сигналов. В простейшем случае, запускается как: strace COMMAND.
###FREE###
free - Показывает информацию об использовании памяти, в табличной форме.
###PROCINFO##
procinfo - Извлекает и выводит информацию из файловой системы /proc.
###STAT###
stat - Дает подробную информацию о заданном файле (каталоге или файле устройства) или наборе файлов. stat /sbin/ls
###VMSTAT###
vmstat - Выводит информацию о виртуальной памяти.
###LOGGER###
logger - Добавляет в системный журнал (/var/log/messages) сообщение от пользователя. Для добавления сообщения пользователь не должен обладать привилегиями суперпользователя.
logger Test debug record.
Встраивая вызов logger в сценарии, вы получаете возможность заносить отладочную информацию в системный журнал /var/log/messages.
logger -t $0 -i Logging at line "$LINENO".
- -t - задает тэг записи в журнале.
- -i -- записывает ID процесса.
###LOGROTATE####
logrotate - Эта утилита производит манипуляции над системным журналом: ротация, сжатие, удаление и/или отправляет его по электронной почте, по мере необходимости. Как правило, утилита logrotate вызывается демоном crond ежедневно.
Добавляя соответствующие строки в /etc/logrotate.conf, можно заставить logrotate обрабатывать не только системный журнал, но и ваш личный.
###PSTREE###
pstree - Список исполняющихся процессов в виде "дерева". С ключом -p -- вместе с именами процессов отображает их PID.
###PIDOF###
pidof - Возвращает идентификатор процесса (pid) по его имени.
###FUSER###
fuser - Возвращает идентификаторы процессов, использующих указанный файл(ы) или каталог. С ключом -k, завершает найденные процессы. Может с успехом использоваться для защиты системы, особенно в сценариях разграничения доступа к системным службам.
###SYNC###
sync - Принудительный сброс содержимого буферов на жесткий диск (синхронизация содержимого буферов ввода-вывода и устройства-носителя). Несмотря на то, что нет такой уж острой необходимости в этой утилите, тем не менее sync придает уверенности системным администраторам или пользователям в том, что их данные будут сохранены на жестком диске, и не будут потеряны в случае какого-либо сбоя. В былые дни, команда sync; sync (дважды -- для абсолютной уверенности) была упреждающей мерой перед перезагрузкой системы.
###MKSWAP###
mkswap - Создание swap-раздела или swap-файла. Созданный swap-раздел (файл) нужно затем подключить командой swapon.
###SWAPON,SWAPOFF###
swapon, swapoff - Разрешает/запрещает использование swap-раздела (файла). Эта команда обычно используется во время загрузки системы или во время остановки.
###FDISK###
fdisk - Создание или изменение таблицы разделов на устройствах хранения информации, обычно -- жестких дисках. Должна вызываться с привилегиями пользователя root.
###FSCK,E2FSCK,DEBUGFS###
fsck, e2fsck, debugfs - Набор команд для проверки, восстановления и отладки файловой системы.
###BADBLOCKS###
badblocks - Выполняет поиск плохих блоков (физические повреждения носителей) на устройствах хранения информации. Эта команда может использоваться для поиска плохих блоков при форматировании вновь устанавливаемых жестких дисков или для проверки устройств резервного копирования. [40] Например, badblocks /dev/fd0, проверит дискету на наличие поврежденных блоков.
###CHROOT###
chroot - CHange ROOT -- смена корневого каталога. Обычно, команды и утилиты ориентируются в файловой системе посредством переменной $PATH, относительно корневого каталога /. Команда chroot изменяет корневой каталог по-умолчанию на другой (рабочий каталог также изменяется). Эта утилита, как правило, используется с целью защиты системы, например, с ее помощью можно ограничить доступ к разделам файловой системы для пользователей, подключающихся к системе с помощью telnet (это называется -- "поместить пользователя в chroot окружение").
Обратите внимание: после выполнения команды chroot изменяется путь к исполняемым файлам системы.
Команда chroot /opt приведет к тому, что все обращения к каталогу /usr/bin будут переводиться на каталог /opt/usr/bin. Аналогично, chroot /aaa/bbb /bin/ls будет пытаться вызвать команду ls из каталога /aaa/bbb/bin, при этом, корневым каталогом для ls станет каталог /aaa/bbb. Поместив строчку alias XX 'chroot /aaa/bbb ls' в пользовательский ~/.bashrc, можно эффективно ограничить доступ команде "XX", запускаемой пользователем, к разделам файловой системы.
###ULIMIT###
ulimit - Устанавливает верхний предел для системных ресурсов. Как правило вызывается с ключом -f, что означает наложение ограничений на размер файлов (ulimit -f 1000 ограничит размер вновь создаваемых файлов одним мегабайтом). Ключ -c ограничивает размер файлов coredump (ulimit -c 0 запретит создание coredump-файлов). Обычно, все ограничения прописываются в файле /etc/profile и/или ~/.bash_profile
###TMOUT###
TMOUT - задается количество секунд, по истечении которых оболочка bash автоматически выгрузит пользователя из системы, если в командной строке не былой введено ни одной команды, export TMOUT=600, можно добавить в /etc/profile
###ENV###
env - Запускает указанную программу или сценарий с модифицированными переменными окружения (не изменяя среду системы в целом, изменения касаются только окружения запускаемой программы/сценария). Посредством [varname=xxx], устанавливает значение переменной окружения varname, которая будет доступна из запускаемой программы/сценария. Без параметров -- просто выводит список переменных окружения с их значениями.
###WATCH###
watch - Периодически запускает указанную программу с заданным интервалом времени. По-умолчанию интервал между запусками принимается равным 2 секундам, но может быть изменен ключом -n.
###Арифметические подстановки####
Команда expr вычисляет значение выражения.
z=\`expr $z + 3\`
z=$(($z+3))
$((EXPRESSION)) -- это подстановка арифметического выражения команд.
let z=z+3
let "z += 3"
###PS###
- а - Показать процессы всех пользователей
- с - Имя команды из переменной среды
- е - Показать окружение
- f - Показать процессы и подпроцессы
- h - Вывод без заголовка
- j - Формат заданий
- l - "Длинный" формат вывода
- m - Вывод информации о памяти
- n - Числовой вывод информации
- r - Только работающие процессы
- s - Формат сигналов
- S - Добавить время использования процессора порожденными процессами
- txx - Только процессы, связанные с терминалом хх
- u - Формат вывода с указанием пользователя
- V - Формат виртуальной памяти
- w - Вывод без обрезки информации для размещения в одной строке
- X - Показать процессы без контролирующего терминала
Сравнение количества процессов в системе
ls -d /proc/* | grep [0-9] | wc -l ; ps aux | wc -l
###Архиватор tar###
Извлечь
tar xvfz file.tar.gz -C /home/file
####Создать архив####
tar cfzv file.tar.gz /home/file
- c - создать архив
- x - извлечь файлы из архива
- t - показать содержимое архива
- v - выводить на консоль подобный отчет
- f - работать с файлом, а не ленточным накопителем
- z - применить фильтр-компрессор при создании архива
###Раскрасить консоль разными цветами###
tput setaf 4 - поменять цвет букв
tput setab - установка цвета фона
tput rev - обрабатывать цвета фона начертания
tput bold - установка жирного начертания
tput smul - установка подчеркнутого начертания