Права
- chmod -R 741 /var/www/files — Сменить права рекурсивно (-R) во всей папке files на rwx r— —x, где: 4 – чтение (r), 2 – запись (w), 1 – исполнение (x)
- chattr +Sai — Добавление атрибутов к файлу, синхронное изменение всех данных на диск, без кэширования (S); только добавление данных, удаление и переименование запрещено (a); запрещено удаление, изменение или переименование (i) (immutable).
Поиск
- locate foo — Быстрый поиск по заранее проиндексированным файлам с помощью updatedb.
- pinfo bash — Удобная замена info.
- find /usr/bin -type f -mtime -10 -iname ‘*.log’ — Найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней, с именем заканчивающимся на «.log» без учета регистра.
- find /usr/project \( -name *.htm -o -name ‘*.html’ \) -exec enconv -V —convert-to=UTF-8 {} \; — Конвертировать найденные файлы в правильную кодировку.
- find -iname ‘*.mp3’ -print0 | xargs -0 mid3iconv -eCP1251 —remove-v1 — Конвертация тегов в UTF-8 (должен быть установлен python-mutagen)
- find /bakdir -name bak-20??-??-??.tar.gz | sort | head -n -7 | egrep -v 20[01][0-9]-[01][0-9]-01 | while read I ; do rm -v «$I» ; done — Вымученная изящная конструкция, по очистке бэкап архивов, которая оставляет файлы за последнюю неделю и каждое первое число. find выводит список наших бэкап файлов, формат которых bak-год-месяц-число.tar.gz, sort правильно сортирует, head передает все файлы, кроме последних 7-ми, egrep исключает файлы за первое число, конструкция while удаляет остальное.
- ls /bakdir/bak-20??-??-??.tar.gz | head -n -7 | egrep -v 20[01][0-9]-[01][0-9]-01 | while read I ; do rm -v «$I» ; done — Еще более изящная и ресурсоемкая конструкция.
Вывод
- tar -cjvf /home/user/etc_`date ‘+%Y-%m-%d’`.tar.bz2 /etc — (с)Запаковать в (f)tar-архив и (j)сжать bzip2 папку /etc c текущей датой в имени файла, с (v)подробным выводом.
- tar -xzvf /home/user/Downloads/centerim-4.22.6.tar.gz -С /opt/ — (x)Распаковать (z)gzip-архив в /opt
- tar —use-compress-program=xz -xvf kernel.txz — Распаковать xz-архив.
- cat /etc/mail.conf | grep -v «#» | sed -e ‘/^ *$/d’ — Показать файл без комментариев и пустых строк (неоптимально).
- egrep -v ‘^#|^$’ /etc/mail.conf — Показать файл без комментариев и пустых строк (оптимально:).
- ls -f1 /var/log/packages/ | wc -l — Вывести количество строк (wc -c — байт).
- diff -y httpd.conf httpd.con.new — Сравнение в две колонки.
- diff -u httpd.conf httpd.con.new — Унифицированное cравнение (в один столбец, но читаемо). (рек. colordiff).
- tail -n +5 /file — Вывести строки, начиная с 5-ой
- egrep -o ‘([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}’ — Вывести только IP.
- … | awk ‘{print($1″STRING»)}’ — Вывести то что в пайпе, добавив STRING.
- awk ‘$1==»string» {print $2}’ file1 >> file2 — Считать файл file1 , если данные в первом столбце равны ‘string’ добавить в файл file2 данные из второго столбца этой строки
- … | tr ‘\n’ ‘ ‘ — Заменить все переносы строки на пробелы.
Модификация
- sed -i ‘s/foo/too/’ — Заменить foo на too.
- sed -i ’14d’ /file — Удалить 14ю строку.
- sed -i ‘/[Nn]etwork/d’ /file — Удалить строку содержащую Network или network.
- sed -i ‘$ a \\n[mounts]\nuser root’ /etc/munin/config — Добавить в конец файла «[mounts]» затем перенос на новую строка и «user root».
- sed ’14a\ echo \»graph_category logger\»‘ /etc/munin/plugins/command — После 14ой строки добавить «echo «graph_category logger»».
- sed ‘1i \# vim: ft=ruby\n’ — Вставить в начало файла ‘# vim: ft=ruby’ и перенос строки.
(c) не мой. Копипаст с http://ru.wikibooks.org/wiki/Linux-hand-book