Midnight Commander дважды выводит путь своей командной строке (та что снизу). Если путь получается длинный - то он начинает занимать всю ширину экрана, а на собственно команду не остается места. Сей глюк проявляется только в терминальный программах (в консоли все отлично).
Решение найдено на убунтовском форуме.
Решения тех проблем, с которым мне приходилось сталкиваться.
понедельник, 21 февраля 2011 г.
midnight commander и двойной путь
Автор:
morridzh
на
11:57
0
коммент.
пятница, 29 октября 2010 г.
Звук по завершении долгой консольной команды
Допустим, нужно выполнить в терминале команду, которая выполняется достаточно долго, чтобы ее дожидаться ничем больше не занимаясь. В тоже время, бывает такая потребность, что как только команда выполнится нужно сделать какое-то следующее действие. Ну и вообще, просто чтобы не забыть, что она вообще там выполняется.
Придумано такое решение. Можно в командной строке указать, что после требуемой команды выполнить еще одну, которая ... подаст звуковой сигнал!
В простейшем случае воспроизвести звук из терминала можно командой beep. Чтобы не спутать звук, с обычным сигналом bell из терминала, в параметрах beep можно указать длительность и частоту звука. Звук будет воспроизведен через встроенный динамик (pc speaker).
Пример:
do_time_consuming_task; beep -f 1000 -l 500 -r 3
upd В xterm обнаружилась интересная функция. Называется PopupOnBell, в простейшем случае активируется при запуске с ключом -pob. В таком режиме, если на терминал выводится символ ASCII BELL (код 0x07 или 8-ричный 007), то окно терминала уведомляет менеджер о наличии активности (точно не знаю как назвать), после чего Desktop Manager, например, Gnome отображает кнопку такого окна на панели задач мигающей (примерно так, как если свернутый Instant Messanger получает новое сообщение).
Соответственно, можно, например, чтобы каждый раз, как shell в терминале получает управление (выводит приглашение) терминал сообщал о активности.
PS1="\\007$PS1"
sleep 5
Если выполнить эти команды, а потом свернуть окно xterm, то через 5 секунд оно замигает в панели задач.
upd #2 Аналогичное решение для gnome-terminal.
Автор:
morridzh
на
12:29
0
коммент.
среда, 20 октября 2010 г.
Длинная командная строка через xargs
Иногда приходится выполнить команду с таким количеством аргументов, что '*' (звездочка) уже не работает - shell пытается создать слишком длинную командную строку. Выход - разбить список на несколько более мелких и выполнить команду для каждого из них. В том числе и для этого создана команда xargs.
Она получает список из stdin и выполняет переданную ей команду подставляя список в качестве ее аргументов. Для разбития списка на куски есть разные опции (-n или -s).
Но до сего момента я не подозревал, что список аргументов может быть не в самом конце нужной команды, но и в любом месте.
Для примера. Если нужно скопировать кучу файлов и cp * <dest> не работает. Пробуем писать:
ls * | xargs -n 1000 cp /dest
И оно тоже не будет работать, потому как список аргументов от xargs будет подставлен в конец команды cp и в итоге будет выглядеть примерно как:
cp /dest arg1 arg2 ... argn
Как поместить список аргументов в нужное место? А вот это в man'е не совсем очевидно при первом прочтении. А в итоге нужно делать так:
ls * | xargs -n 1000 -I FILES cp FILES dest
Что тут происходит? Опция -I сообщает xargs, что если подстрока 'FILES' встретится где-либо в части исполняемой команды (initial arguments), то именно в это место и нужно раскрыть список аргументов из stdin.
Автор:
morridzh
на
16:46
0
коммент.
Ярлыки: утилиты
понедельник, 18 октября 2010 г.
Консольная мышь
Заимев в пользование IP-KVM, осознал потребность в консольной мыше. Для этой цели в ubuntu наличествует пакет gpm.
apt-get install gpm
Автор:
morridzh
на
11:39
0
коммент.
пятница, 2 апреля 2010 г.
Удалить старые файлы и папки в корзину
Надоело чистить папку downloads руками? Можно добавить в crontab такую строчку:
/usr/bin/find /home/user/downloads/ -maxdepth 1 -ctime +30 -exec trash {} ;Действует она просто - удаляет в коризну все файлы старше 30 дней из подкаталога downloads домашнего каталога. У меня настроен ее запуск при перезагрузке.
Автор:
morridzh
на
16:34
0
коммент.
среда, 10 февраля 2010 г.
Считать пароль с клавиатуры
Как считать некий текст с клавиатуры, без его отображения на терминале? Для этого у внутренней bash'евской команды read есть специальный ключ -s (silent). Если в качестве последнего аргумента не указано имя переменной, куда нужно поместить результат, то результат помещается в переменную REPLY.
А нужно это было примерно для такого:
read -s && adduser2custombase.pl newuser $REPLY
После выполнения в терминале этой строчки приглашался пользователь, который задавал свой пароль.
Автор:
morridzh
на
14:23
0
коммент.
Ярлыки: bash
четверг, 10 декабря 2009 г.
посчитать кол-во некоторого символа в файле
Допустим, ищем количество запятых (,) в файле. Нашел в интернете несколько решений:
awk '{c+=gsub(s,s)}END{print c}' s=',' input.txtgrep -o \, input.txt | wc -l
tr -dc \, < input.txt | wc -c
Автор:
morridzh
на
15:59
0
коммент.
Ярлыки: текст