Linux: интересные опции к интересным командам
 
В этой статье, я решил рассказать тебе об интересных опциях различных команд linux, которые тебе помогут быстро выполнить желаемую задачу. Ведь нередко ты сталкиваешься с проблемой и решаешь её, написанием отдельного скрипта например, когда в консоли это можно выполнить в одну-две строки.
 
1. /bin/ls
 
Интересными опциями, о которых мало кто знает для команды ls являются например, такие как "-d", "-R" или "-1". Они могут быть полезны в некоторых случаях, как:
 
ls -lad dir позволяет просмотреть директорию без просмотра ее содержимого,
то есть права на саму папку.
ls -R - рекурсивный просмотр всех каталогов (например, если тебе нужно найти
все .bash_history на машине, тебе будет достаточно команды:
cp `ls -Ra / | grep .bash_history` /tmp/hist)
ls -1 - зарисует тебе все файлы в один столбец (очень удобно для формирования
массива в Perl без использования opendir() и readdir() )
 
2. /usr/bin/grep
Grep по своей сути - поиск шаблона в файле. Но нередко его используют в конвейере для поиска шаблона, например cat /etc/passwd | grep root, хотя можно было бы обойтись командой grep root /etc/passwd. У grep также есть замечательные опции, которыми можно воспользоваться:
 
grep -v string file - выведет все строки, которые НЕ содержат string.
Отсюда приходит мысль: чистка логов обойдется всего лишь в 2 команды (убираем
все строки из /var/log/messages содержащие ip-адрес 127.0.0.1)
# grep -v '127.0.0.1' /var/log/messages > /var/log/mess
mv /var/log/mess /var/log/messages
Все обходится без специальных логвайперов (кстати, оные тоже юзают grep -v).
grep -r - рекурсивный поиск. С опцией -E, выводящей все совпадения прямо на
экран можно поискать Credit Cards на заломанной машине ;) Слюнки потекли?
Показываю как:
# grep -iEr visa /var/lib/mysql >/tmp/cc.log 2>&1
Записываем все совпадения в /tmp/cc.log.
 
3. /usr/bin/perl ;)
Perl имеет очень занятную опцию -e. С помощью нее можно писать шедевры в командной строке. Например: следует удалить файлы в директории если их размер равен 0 байт. /bin/rm && grep не справятся с задачей если файлов очень много. На помощь придет Perl :]
 
# perl -e 'opendir(DIR,"/usr/jpg"); @jpg=readdir(DIR);closedir(DIR);
foreach (@jpg) { chomp; if (-z "/usr/jpg/$_") { unlink("/usr/jpg/$_") } }'
 
Perl решит эту проблему за несколько секунд ;) Просто и удобно.
 
4. awk && grep
Задача: нужно убить процесс pppd, с заданным ttyS устройства. Это можно выполнить в одну строку, при помощи awk ;)
 
# kill -9 `ps -t ttyS0 | grep pppd | awk {'print($1)'}`
 
Вызовем простую функцию print() из языка awk и напечатаем процесс pppd (первая часть /bin/ps).
Вот некоторые примочки, которые могут тебе пригодиться (лично я сам использую их очень часто, что и тебе советую).
 
Да... чуть не забыл. Никогда не свети свою историю команд - поверь - может быть плохо. Либо сделай: export HISTFILE=/dev/null, либо, чтобы не мучаться, сразу ln -sf /dev/null /home/yourlogin/.bash_history ;)
 
Автор: Дмитрий Докучаев aka Forb
Designed by Naigo. All Rights Reserved. 2004 year
Soft By Naigo
Only The Best Soft
softbynaigo.narod.ru
GISMETEO.RU: график температуры на 10 дней для г. Москвы
NSD.ru - Безопасность в сети! Всё о хакерстве. Анонимность. Защита. Противостояние...
Официальный сервер еженедельной газеты "ЕвроФУТБОЛ"
Яндекс цитирования
Супер! >
Бесплатно размещу рекламу!
    пишите на fromsitesbn@front.ru
Бесплатная раскрутка сайтов
Главная | Internet | Work | Security | Media | Coding | Библиотека
Главная | Internet | Work | Security | Media | Coding | Библиотека
Топ-5 статей
 
Анонимность
 
Полное руководство по взлому IIS сервера
 
Список портов
 
Регулярные выражения в PERL
 
Программим на Shell-e
Hosted by uCoz