Командная строка
Заменить повторяющиеся пустые строки на одну пустую строку
Допустим у вас есть файл в котором множество повторяющихся пустых строк. А вам
хотелось бы повторяющиеся пустые строки заменить на одну пустую строку (что бы
было легче читать например).
sed -e ':a;/^$/N;/\n$/{D;ba}' file.txtПримечание:
В *BSD системах, однострочник придется оформить так:
sed -e :a -e '/^$/N;/\n$/{D;ba' -e '}' file.txtтак как после имени метки и перед } необходим перевод строки.
Объяснение как это работает
Боремся с писком в консоли
Иногда когда судьба заносит людей в текстовую консоль, надолго запоминается громкий писк из PC-Speaker который сопровождает каждое неверное движение в настроенном по умолчанию bash Ж:-)
Отключить звук в консоли можно так:
setterm -blengthМассовое переименование файлов с пробелами и разными регистрами
Переименование файлов с использованием перловых выражений s/// tr///
$ rename 'tr/ /_/;$_=lc;' *
команда переводит все файлы в директории в нижний регистр и заменяет " " на _
Как создать файл нужного размера
Часто нужно создать файл заданного размера, не всегда есть возможность использовать самописный скриптик. Можно создать файл нужного размера с помощью dd
$ dd if=/dev/zero of=~/file count=1 bs=100Mпишем нули в file, всего 100M
Логи в отдельной консоли
Чтобы быстро посмотреть последние сообщения в логах - не обязательно писать в командной строке "tail /var/log/messages". Можно вместо этого выводить нужные сообщения в отдельную консоль. Для этого пропишите в файле /etc/syslog.conf
Математически вычисления с плавающей точкой в консоли
$ echo "22/7" | bc -l 3.14285714285714285714 $если вас не устраивает 20 символов после запятой, то можно изменить их кол-во командой bc
$ echo "scale=4; 22/7" | bc 3.1428 $кстати максимальное кол-во знаков после запятой ограничено 2147483647 (в идеале) и кол-вом вашей оперативной памяти (в реале Ж:-)
на самом деле ключ -l подключает к bс стандартную математическую библиотеку С, и по умполчанию ставит scale=20.
за одно можно использовать множество математических функций типа cos, ln, exp....
Горячие клавиши в elinks
Подсмотреть горячие клавиши можно через меню: Справка -> Клавиши
стрелки вправо и влево - перейти по текущей линке и вернутся на предыдущую страницу соответственно
g - (go) запрос на вводе нового URL,
G - тоже смое что g, но при этом подставляется текущий URL. Удобно для того что бы подправить текущий,
E - тоже самое что G, но при этом подставляется URL который находится в текущей ссылке на котором стоит курсор,
% - переключать тип отображения цветов по кругу. у меня (без цвета -> 16 цветов -> 256 цветов)
. - вкл./выкл. нумерацию ссылок.
цифры - прыгнуть на ссылку с введенным номером
* - вкл./выкл. отображение [IMG] на месте изображений. Удобно для галерей Ж%-)
\ - показать/убрать код HTML текущей страницы
q - выйти
Q - выйти без запроса на выход
a - добавить страницу в букмарки
s - панель букмарков
d - скачать то на что ссыллается текущая ссылка
D - мененжер закачек
Поиск как в vi
/ - поиск
? - обратный поиск
n - найти следующее соответствие
N - найти предыдущее соответственные
# - поиск с пыжками на частично найденные слова
f - текущий фрейм на все окно
ps
это то что испольщую я постоянно, на самом деле всего намного больше Ж:-)
Автоматическое переименование закладок в Konsole
Тем, кто использует Konsole для работы в командной строке, наверняка приходилось сталкиваться с тем, что Konsole нумерует закладки в стиле Shell#1, Shell#2 и т.д. Конечно, закладки можно переименовать, но это неудобно. Лучше было бы сделать это автоматически. Например, при логине на удаленную машину закладка переименовывалась бы в username @ hostname.
Как оказалось, данная возможность в Konsole имеется, но скрыта от глаз мирских (т.е. ее нельзя найти в опциях настроек). Для того, чтобы включить опцию в нужно сделать следующее:
для tcsh
alias sess 'echo "\033]30;\!*\007\c"'
для bash - добавить в .bashrc
export PS1=$PS1"\[\e]30;\w\a\]"
или если в закладке также хочется иметь имя хоста:
export PS1=$PS1"\[\e]30;\u at \H:\w\a\]"
Отображения размеров файлов и директорий в удобной для человека формe
ramok:pts/20[~/ ls -lh .zshrc -rw-r--r-- 1 ramok ramok 25K 2006-12-22 17:56 .zshrc ramok:pts/20[~/сразу видно что файл .zshrc занимает 25 килобайт
ramok:pts/16[~/ cd /home ramok:pts/16[/home/ sudo du -hs * 32K bat 60M eggdrop 77M ftp 80M kirval 15G ramok 24K kostya 1,5G lesha 40K nwarrior ramok:pts/16[/home/видно кто больше всего отъедаем места на компьютере Ж:-)
я часто фильтрую что бы видеть только то что занимает гигабайты например
Цветной gcc, make, и diff
раз уж пошел разговор о цветах, то установив цветные фантики, можно также установить цветной gcc, make, и diff.
устанавливается пакетами:
colorgcc, colormake, colordiff
вызывается тоже с аналогичными именами. Мануалы пакетов содержат информацию о том, как перенастроить систему на использование данных оберток по умолчанию.
Поиск и замена текста в нескольких файлах
Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду:
perl -pi~ -e 's/foo/bar/' [files]
Оригинальные файлы при этом будут сохраны с именами filename~
Скриншот консоли
Если консоль использует фреймбуффер, то можно воспользоваться программой fbgrab. Если же консоль обыкновенная текстовая, то достаточно просто прочитать содержимое экрана из соответствующего устройства. Например, чтобы сделать скриншот первой консоли, достаточно написать cat /dev/vcs1 > screen.txt. Если вместо /dev/vcs1 указать /dev/vcsa1, то кроме чистого текста в файл запишутся и цвета символов (буква 'a' в имени устройства связана с 'атрибутом символа'). Часто для успешного выполнения этой команды надо иметь права root. Еще один способ - использовать программу screen (которую весьма рекомендую не только по этой причине) и воспользоваться заложенными в нее возможностями.
by ams
PS
перенесено отсюда
http://linsovet.com/node/204#comment-350
Печать из консоли в UTF8
Чтобы распечатать текстовый файл в UTF8 из консоли, нужно установить пакет gnome-u2ps.
Использование:
u2ps file-utf8.txt | lpr
grep с перловыми регекспами в Debian
Как известно многим, в Debian grep собран без поддержки перловых регулярных выражений:
t:~$ grep -P 123
grep: Ключ -P не поддерживается
Но немногие знают о существовании программы pcregrep, поведение которой аналогично grep-у, вызванному с ключом P.
Переодический запуск программ с выводом результатов на терминал
В линуксах есть команда watch. Например
$ watch -n 5 df -hбудет с переодичностью 5 секунд перезапускать команду df -h
(читаем дальше...)
alias howtime
FreeBSD, tcsh
Для определения времени исполнения команд используется /usr/bin/time ....
Удобно использовать эту команду как алиас
echo alias howtime (/usr/bin/time -h) >> ~/.cshrc
source ~/.cshrc
параметр "-h" нужен для вывода времени в часах, минутах, и секундах, а не в машинных тактах ("h" от "human")
и теперь вместо построения строки команд вводите нужную вам команду после алиаса например:
howtime mplayer video_file.avi
в конце фильма вы увидите сколько это заняло времени для компьютера
(естественно этот алиас важен не для проигрывания фильмов , а для того чтобы знать например узнать время ко
Как настроить мышку для работы в консоли и иксах
Например рабочий вариант у меня /etc/gpm.conf
device=/dev/psaux repeat_type=ms3 type=imps2после чего в /etc/X11/xorg.conf (или в /etc/X11/XF86Config-4)
Section "InputDevice"
#...
Driver "mouse"
Option "Protocol" "IntelliMouse"
Option "Device" "/dev/gpmdata"
#...
EndSection
Если проблемы с этой конфигурацией то man gpm раздел BUGS
ls | less в цвете
Чтобы содержимое большого каталога показывалось в цвете и при использовании less, можно воспользоваться следующей командой: ls --color | less -R.
Пояснение: --color нужно чтобы ls включило поддержку цвета несмотря на то, что его stdout - не терминал. Опция -R заставляет less не перехватывать ESC-последовательности, управляющие цветом, а передавать их дальше, так что они обрабатываются драйвером консоли и приводят к правильному результату.
PS. Можно создать соответствующий скрипт или, например, функцию в bash:
l() { ls --color "$@" | less -R; }
Тогда можно вызывать l -l для получения ls -l в цвете с прокруткой.
Тестирование https из командной строки
printf "GET / HTTP/1.0\nHost: ВИРТУАЛЬНЫЙ_ХОСТ\n\n" | openssl s_client -connect НУЖНЫЙ_IP:443 -state -debug
iproute bash command completion
автоматическое дополнение параметров в bash при работе с синтаксисом команды ip. Качаем скрипт iproute, помещаем в каталог /etc/bash_completion.d/, наслаждаемся жизнью :)


