Командная строка


ramok аватар

Заменить повторяющиеся пустые строки на одну пустую строку

Допустим у вас есть файл в котором множество повторяющихся пустых строк. А вам
хотелось бы повторяющиеся пустые строки заменить на одну пустую строку (что бы
было легче читать например).

sed -e ':a;/^$/N;/\n$/{D;ba}' file.txt

Примечание:


В *BSD системах, однострочник придется оформить так:

sed -e :a -e '/^$/N;/\n$/{D;ba' -e '}' file.txt

так как после имени метки и перед } необходим перевод строки.

Объяснение как это работает

0
Ваша оценка: Ничего
ramok аватар

Боремся с писком в консоли

Иногда когда судьба заносит людей в текстовую консоль, надолго запоминается громкий писк из PC-Speaker который сопровождает каждое неверное движение в настроенном по умолчанию bash Ж:-)

Отключить звук в консоли можно так:

setterm -blength
0
Ваша оценка: Ничего

Массовое переименование файлов с пробелами и разными регистрами

Переименование файлов с использованием перловых выражений s/// tr///

$ rename 'tr/ /_/;$_=lc;' *

команда переводит все файлы в директории в нижний регистр и заменяет " " на _

0
Ваша оценка: Ничего

Как создать файл нужного размера

Часто нужно создать файл заданного размера, не всегда есть возможность использовать самописный скриптик. Можно создать файл нужного размера с помощью dd

$ dd if=/dev/zero of=~/file count=1 bs=100M

пишем нули в file, всего 100M

0
Ваша оценка: Ничего

Логи в отдельной консоли

Чтобы быстро посмотреть последние сообщения в логах - не обязательно писать в командной строке "tail /var/log/messages". Можно вместо этого выводить нужные сообщения в отдельную консоль. Для этого пропишите в файле /etc/syslog.conf

0
Ваша оценка: Ничего
ramok аватар

Математически вычисления с плавающей точкой в консоли

Иногда в скрипте необходимо посчитать что либо не целочисленное Ж:-) Самое простое это считать нужно с помощью практически стандартного консольного канкулятора bc с ключиком -l
$ 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....
0
Ваша оценка: Ничего
ramok аватар

Горячие клавиши в 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
это то что испольщую я постоянно, на самом деле всего намного больше Ж:-)

0
Ваша оценка: Ничего
alexu аватар

Копирование содержимого файла в буфер обмена из командной строки

Скопировать содержимое файла в буфер обмена в Linux, не используя выделение или Ctrl-C можно несколькими способами:
1) стандартный буфер X с помощью xclip
скопировать: cat file | xclip
вставить: xclip -o

2) стандартный буфер X с помощью xsel
скопировать: cat file | xsel
вставить: xsel

утилиты xsel и xclip очень похожи, но xsel имеет больше опций (несколько буферов, возможность работать с различными дисплеями, добавление в буфер к существующей информации, и т.д. За подробностями - в man xsel

3) буфер klipper от KDE:
скопировать: dcop klipper klipper setClipboardContents "$(cat file)"
вставить: dcop klipper klipper getClipboardContents

добавляйте свои способы ;)

0
Ваша оценка: Ничего
alexu аватар

Автоматическое переименование закладок в 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\]"

0
Ваша оценка: Ничего
ramok аватар

Отображения размеров файлов и директорий в удобной для человека формe

Многие команды юникса воспринмают фалаг -h, при котором цифровая информация выводится в удобной для человека форме(human readable), тоесть в килобайтах, мегабайтах, гигабайтах и так далее.

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/ 
видно кто больше всего отъедаем места на компьютере Ж:-)
я часто фильтрую что бы видеть только то что занимает гигабайты например
0
Ваша оценка: Ничего
alexu аватар

Цветной gcc, make, и diff

раз уж пошел разговор о цветах, то установив цветные фантики, можно также установить цветной gcc, make, и diff.
устанавливается пакетами:

colorgcc, colormake, colordiff

вызывается тоже с аналогичными именами. Мануалы пакетов содержат информацию о том, как перенастроить систему на использование данных оберток по умолчанию.

0
Ваша оценка: Ничего
ramok аватар

Сбор статистики о используемых скриптовых языках

Абсолютно безполезный скрипт для сбора статистики о наиболее часто используемых скриптовых языках. Можно использовать эту информацию в холиворах или как аргумент в тяжелых раздумиях какой скпиптовый язык изучать Ж:-)
Вот некоторая статистика собранная на некоторых доступных мне машинах: ...
0
Ваша оценка: Ничего
alexu аватар

Поиск и замена текста в нескольких файлах

Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду:

perl -pi~ -e 's/foo/bar/' [files]

Оригинальные файлы при этом будут сохраны с именами filename~

0
Ваша оценка: Ничего
ramok аватар

Скриншот консоли

Если консоль использует фреймбуффер, то можно воспользоваться программой fbgrab. Если же консоль обыкновенная текстовая, то достаточно просто прочитать содержимое экрана из соответствующего устройства. Например, чтобы сделать скриншот первой консоли, достаточно написать cat /dev/vcs1 > screen.txt. Если вместо /dev/vcs1 указать /dev/vcsa1, то кроме чистого текста в файл запишутся и цвета символов (буква 'a' в имени устройства связана с 'атрибутом символа'). Часто для успешного выполнения этой команды надо иметь права root. Еще один способ - использовать программу screen (которую весьма рекомендую не только по этой причине) и воспользоваться заложенными в нее возможностями.

by ams
PS
перенесено отсюда
http://linsovet.com/node/204#comment-350

0
Ваша оценка: Ничего

Печать из консоли в UTF8

Чтобы распечатать текстовый файл в UTF8 из консоли, нужно установить пакет gnome-u2ps.
Использование:
u2ps file-utf8.txt | lpr

0
Ваша оценка: Ничего
ramok аватар

Как сравнить 2 каталога

diff -qr dir1 dir2

0
Ваша оценка: Ничего

grep с перловыми регекспами в Debian

Как известно многим, в Debian grep собран без поддержки перловых регулярных выражений:
t:~$ grep -P 123
grep: Ключ -P не поддерживается
Но немногие знают о существовании программы pcregrep, поведение которой аналогично grep-у, вызванному с ключом P.

0
Ваша оценка: Ничего
ramok аватар

Переодический запуск программ с выводом результатов на терминал

Иногда нужно переодически перезапускать какую нибуть команду, что бы мониторить что нибуть. Например дисковое пространство, или оперативную память.
В линуксах есть команда watch. Например
$ watch -n 5 df -h
будет с переодичностью 5 секунд перезапускать команду df -h
(читаем дальше...)
0
Ваша оценка: Ничего
ramok аватар

Временное приостановление консольных программ

Ecли консольная программа слишком быстро выводит слишком много текста и/или слишком быстро или слишком грузит систему(как например http://linsovet.com/node/7#comment-488 Ж:-) и хочется приостановить временно её выполнение, приостановить можно ctrl-s. Продолжить выполнение ctrl-q. Часто случается случайно нажать ctrl-s и создается впечатление что консоль "зависла". Это можно отколючить если вы хотите использовать эти клавиши для своих целей

$ stty -ixon

Другой способ приостановить программу ctrl-z. Этим вы приостановите полцесс и забросите в фон.

0
Ваша оценка: Ничего

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

в конце фильма вы увидите сколько это заняло времени для компьютера
(естественно этот алиас важен не для проигрывания фильмов , а для того чтобы знать например узнать время ко

0
Ваша оценка: Ничего