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 - запуск задач по расписанию.

Формат записи

минута час день_месяца месяц день_недели команда

Дополнительные переменные cron

at - для одноразового выполнения заданий
at [-f <файл>] ЧЧ:ММ
atq - для просмотра очередей заданий
atrm - удалить задание из очереди печати

crontab [-u <логин_имя> ] [файл | [-l] | [-r] | [-e] | [-i]]

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

где:

Оперетор &

& - переводит задания в фоновый режим, задание уничтожается при выходе пользователя из системы.

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

Метасимволы

ECHO

echo - вывод сообщения на экран.
* \c - запрет отображения концевого символа новой строки
* \f - прогон страницы
* \n - новая строка
* \t - горизонтальная табуляция
* -n - не выводят завершающий символ новой строки
* -e - позволить интерпретировать обратный слеш

echo -e "Hello \n\n"

FSTAB

/etc/fstab - файл описывающий монтирование разделов

Формат

<file system> <mount point>   <type>  <options>       <dump>  <pass>
/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 [ опции ] команда входной файл

Правила отбора строк в редакторе 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/шаблон/шаблон/[флаги]" - замена подстроки
флаги
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 - команда сортировки файлов

UNIQ

unuq - удаление повторяющихся строк
uniq опции входной_файл выходной_файл

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 - Выводит детальный список открытых, в настоящий момент времени, файлов в виде таблицы.

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".

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

Сравнение количества процессов в системе
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

Раскрасить консоль разными цветами

tput setaf 4 - поменять цвет букв
tput setab - установка цвета фона
tput rev - обрабатывать цвета фона начертания
tput bold - установка жирного начертания
tput smul - установка подчеркнутого начертания