Маленькие хитрости
Модератор: Модераторы разделов
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Маленькие хитрости
У каждого бывалого линуксоида наверняка есть свой запас "маленьких хитростей", которые могли бы пригодиться и другим. Давно хотел, да всё забывал. Давайте попробуем? Если тема не получит развития, подклею к упомянутой ниже соседней теме.
Вообще-то, это навеяно соседней темой про переменные, а конкретно моим собственным упоминанием про HISTIGNORE. У меня в этот список добавлена строка " *", таким образом можно набрать любую команду без запоминания в истории просто добавив в начале пробел. Я сам активно пользуюсь.
Вообще-то, это навеяно соседней темой про переменные, а конкретно моим собственным упоминанием про HISTIGNORE. У меня в этот список добавлена строка " *", таким образом можно набрать любую команду без запоминания в истории просто добавив в начале пробел. Я сам активно пользуюсь.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
-
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Маленькие хитрости
(t.t @ Понедельник, 01 Августа 2005, 19:40) писал(а):У каждого бывалого линуксоида наверняка есть свой запас "маленьких хитростей", которые могли бы пригодиться и другим. Давно хотел, да всё забывал. Давайте попробуем? Если тема не получит развития, подклею к упомянутой ниже соседней теме.
думаю, получит. только давайте всегда явным образом указывать шелл - потому что эти штуки от шелла зависят больше, чем все остальное
-
- Модератор
- Сообщения: 1056
- Статус: киберпИнгвин на гусеничном ходу
- ОС: Debian unstable
Re: Маленькие хитрости
На всякий случай, мало ли кто не знает: <ctrl+r> в баше включает режим поиска строки в истории комманд bash. Пользуюсь просто постоянно.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания.
И восемь строк матом...(бесплатно)
И восемь строк матом...(бесплатно)
-
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Маленькие хитрости
(Strangerrr @ Вторник, 02 Августа 2005, 7:29) писал(а):На всякий случай, мало ли кто не знает: <ctrl+r> в баше включает режим поиска строки в истории комманд bash. Пользуюсь просто постоянно.
и в zsh такая штука есть - причем с возможностью вызова только нужного фрагмента строки.
а вот в tcsh я такой фичи пока не нашел, очень не хватает... м.б. кто знает?
alv добавил в 02.08.2005 08:46
если вам надоело, что лишнее случайное нажатие Control-D (Control-C) выкидывает вас из сеанса шелла, внесите такие строки:
в zsh (~/.zshrc)
setopt IGNORE_EOF
в tcsh (~/.cshrc)
set ignoreeof
в bash тоже есть такая фича
Для zsh:
Разворот сокращенного ввода типа cd d/e в docs/editors достигается такими строками в ~/.zshrc
autoload -U compinit
compinit
-
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Маленькие хитрости
если вам надоело, что лишнее случайное нажатие Control-D (Control-C) выкидывает вас из сеанса шелла, внесите такие строки:
IMHO, наоборот, полезная фича

И немедленно выпил.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Маленькие хитрости
при цитировании каких-нибудь конфигов обычно не принято включать комментарии и пустые строки.
самая компактная (из известных мне) команда, позволяющая от них избавиться:убирает пустые строки и строки, начинающиеся с "#", ";" и "!"
самая компактная (из известных мне) команда, позволяющая от них избавиться:
Код: Выделить всё
grep -vE '(^$|^[#;!])' config.file
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Маленькие хитрости
такая конструкция закодирует в mp3 все wav текущей директории
ls *.wav | while read f ; do lame $f $f.mp3 ; done
ls *.wav | while read f ; do lame $f $f.mp3 ; done
И немедленно выпил.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Маленькие хитрости
а в более политкорректный формат ogg файлы *.wav в текущем каталоге превращаются так:такая конструкция закодирует в mp3 все wav текущей директории
ls *.wav | while read f ; do lame $f $f.mp3 ; done
Код: Выделить всё
oggenc *.wav
в debian это делается командой
Код: Выделить всё
sudo aptitude install vorbis-tools
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 260
- ОС: Debian Etch, RHEL-5.4
Re: Маленькие хитрости
Руту в .zlogin прописываю ifdown eth0 (на случай, если хакер забредеть на комп), а в .zlogout - ifup eth0.
Послужной список: Slackware-3.x, RedHat-4.x,5.x,6.x,7.x, FedoraCore-3, Debian Etch/Lenny
Осваиваю: RHEL-5.4
Осваиваю: RHEL-5.4
-
- Сообщения: 976
- Статус: Вещий Кассандр
Re: Маленькие хитрости
(Grom @ Пятница, 05 Августа 2005, 20:03) писал(а):Руту в .zlogin прописываю ifdown eth0 (на случай, если хакер забредеть на комп), а в .zlogout - ifup eth0.
А можно ли поподробнее? Что есть .zlogin/ .zlogout, где он водится и с чем его едят? У себя я такого не нашел

"...Вы имеете право хранить молчание, все, что вы скажете, может быть использовано против вас..."
-
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Маленькие хитрости
оболочка root'a у человека zsh. Это файлы которые выполняются при входе(логине) и выходе(logout).
вероятно команды рута выполняются через su/sudo.
вероятно команды рута выполняются через su/sudo.
И немедленно выпил.
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Маленькие хитрости
А в пролетарском баше логаут-файл есть?(polachok @ Воскресенье, 07 Августа 2005, 0:40) писал(а):оболочка root'a у человека zsh. Это файлы которые выполняются при входе(логине) и выходе(logout).
вероятно команды рута выполняются через su/sudo.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 2749
- Статус: <3 Anime
- ОС: Gentoo Linux <3
Re: Маленькие хитрости
Для t.t:
Я такого не видел. При запуске он читает .bashrc
Я такого не видел. При запуске он читает .bashrc
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Маленькие хитрости
Ну, это известно.(serg_sk @ Воскресенье, 07 Августа 2005, 21:24) писал(а):При запуске он читает .bashrc
Я так подозреваю, что его и нет. Но на всякий случай спросил.(serg_sk @ Воскресенье, 07 Августа 2005, 21:24) писал(а):Я такого не видел.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 585
- Статус: Просто flook
Re: Маленькие хитрости
~/.bash_logout? Или это не пролетарский?
В каждом из нас спит гений... и с каждым днем все крепче...
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Маленькие хитрости
Нет, почему? Очень даже(flook @ Понедельник, 08 Августа 2005, 8:52) писал(а):~/.bash_logout? Или это не пролетарский?

¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 585
- Статус: Просто flook
Re: Маленькие хитрости
$ man bash
...
When a login shell exits, bash reads and executes commands from the
file ~/.bash_logout, if it exists.
...
$ bash --version
GNU bash, version 2.05b.0(1)-release (i686-pc-linux-gnu)
...
When a login shell exits, bash reads and executes commands from the
file ~/.bash_logout, if it exists.
...
$ bash --version
GNU bash, version 2.05b.0(1)-release (i686-pc-linux-gnu)
В каждом из нас спит гений... и с каждым днем все крепче...
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Маленькие хитрости
Хм..
t:~$ man bash|grep logout
Reformatting bash(1), please wait...
t:~$ bash --version
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
Первое, где посмотрел, естественно.
t:~$ man bash|grep logout
Reformatting bash(1), please wait...
t:~$ bash --version
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
Первое, где посмотрел, естественно.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 2749
- Статус: <3 Anime
- ОС: Gentoo Linux <3
Re: Маленькие хитрости
Код: Выделить всё
serg_sk@Elvenhome ~ $ less /usr/share/man/man1/bash.1.gz | grep logout
file ~/.bash_logout, if it exists.
logout Exit a login shell.
~/.bash_logout
serg_sk@Elvenhome ~ $
Просто man bash | grep logout почему-то не катит, хотя я с ним поизвращался маленько

Код: Выделить всё
serg_sk@Elvenhome ~ $ bash --version
GNU bash, version 3.00.16(1)-release (i686-pc-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Маленькие хитрости
Вот это меня вообще удивляет. А именно, less /usr/share/man/man1/bash.1.gz . Ты точно ничего не перепутал?(serg_sk @ Понедельник, 08 Августа 2005, 11:41) писал(а):$ less /usr/share/man/man1/bash.1.gz | grep logout
file ~/.bash_logout, if it exists.
logout Exit a login shell.
~/.bash_logout
Хм.. Интересно. Сделал zcat /usr/share/man/man1/bash.1.gz | grep logout -- получилось. Всегда делал man fa-fa | grep fu-fu -- всё работало...
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 2749
- Статус: <3 Anime
- ОС: Gentoo Linux <3
Re: Маленькие хитрости
Для t.t:
Так и сделал.
Так и сделал.

Код: Выделить всё
serg_sk@Elvenhome ~ $ cat .bash_history | tail -n 3
less /usr/share/man/man1/bash.1.gz | grep logout
bash --version
exit
serg_sk@Elvenhome ~ $
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Маленькие хитрости
Для t.t:
в debian по умолчанию less <> zless и cat <> zcat :
Sash Kan добавил в 08.08.2005 13:31
а можно и так:
в debian по умолчанию less <> zless и cat <> zcat :
Код: Выделить всё
zcat `man -w bash` | grep logout
zless `man -w bash` | grep logout
Sash Kan добавил в 08.08.2005 13:31
(t.t @ Понедельник, 08 Августа 2005, 12:13) писал(а):Всегда делал man fa-fa | grep fu-fu -- всё работало...
а можно и так:
Код: Выделить всё
man -Z fa-fa | grep fu-fu
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Маленькие хитрости
Я уже догадался.(Sash Kan @ Понедельник, 08 Августа 2005, 12:29) писал(а):Для t.t:
в debian по умолчанию less <> zless и cat <> zcat :
t.t добавил в 08.08.2005 13:34
Понял, спасибо. век живи -- век учись.(Sash Kan @ Понедельник, 08 Августа 2005, 12:31) писал(а):а можно и так:
CODE
man -Z fa-fa | grep fu-fu
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 32
Re: Маленькие хитрости
Для консоли. Может кому понадобится.
Напоминалка:
Создаем например в ~/bin файл remind в нем пишем:
(sleep $1; echo Прошло $*) &
делаем его выполняемым chmod +x remind, напоминалка готова
первый агрумент задает время
второй словосочитание для напоминания
Пример: remind 5'm' Чай готов
Через 5 минут будет сообщение Прошло 5'm' Чай готов
('m' - минуты 'h' - часы 'd' - дни, секунды по умолчанию или 's')
На мой взгляд полезная вещь, так как я все время забываю за компьютером,
что поставил заваривать чай, а вспоминаю только через 2 часа.
Телефонная электронно-поисковая книга:
Создаем например в ~/lib обычный текстовый файл telbook, куда будем заносить всю информацию (телефоны, адреса, имена)
Главное правило - один адресат в одной строке:
ФИО телефон адрес
ФИО телефон адрес
ФИО телефон адрес
...
А далее все просто. Опять же в ~/bin создаем файл tel в нем пишем:
grep -i "$*" /полный/путь/где/лежит/telbook
(Примечание: ключ i для игнорирования регистра букв)
Сохраняем, делаем выполняемым: chmod +x tel. И все готово.
Набираем tel ФИО и видим на экране все про этого ФИО, можно набирать также телефоны и адреса.
Незабудте указать путь к bin в переменной PATH, что бы запускать из любого места.
Все программки были взяты из книги Б.Кернигана и Р.Пайка "Программное окружение UNIX", и немного доделаны.
Напоминалка:
Создаем например в ~/bin файл remind в нем пишем:
(sleep $1; echo Прошло $*) &
делаем его выполняемым chmod +x remind, напоминалка готова
первый агрумент задает время
второй словосочитание для напоминания
Пример: remind 5'm' Чай готов
Через 5 минут будет сообщение Прошло 5'm' Чай готов
('m' - минуты 'h' - часы 'd' - дни, секунды по умолчанию или 's')
На мой взгляд полезная вещь, так как я все время забываю за компьютером,
что поставил заваривать чай, а вспоминаю только через 2 часа.
Телефонная электронно-поисковая книга:
Создаем например в ~/lib обычный текстовый файл telbook, куда будем заносить всю информацию (телефоны, адреса, имена)
Главное правило - один адресат в одной строке:
ФИО телефон адрес
ФИО телефон адрес
ФИО телефон адрес
...
А далее все просто. Опять же в ~/bin создаем файл tel в нем пишем:
grep -i "$*" /полный/путь/где/лежит/telbook
(Примечание: ключ i для игнорирования регистра букв)
Сохраняем, делаем выполняемым: chmod +x tel. И все готово.
Набираем tel ФИО и видим на экране все про этого ФИО, можно набирать также телефоны и адреса.
Незабудте указать путь к bin в переменной PATH, что бы запускать из любого места.
Все программки были взяты из книги Б.Кернигана и Р.Пайка "Программное окружение UNIX", и немного доделаны.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Маленькие хитрости
(sNEO @ Вторник, 09 Августа 2005, 11:51) писал(а):Для консоли. Может кому понадобится.
Напоминалка:
в принципе, команда at делает примерно то же самое.
(sNEO @ Вторник, 09 Августа 2005, 11:51) писал(а):Телефонная электронно-поисковая книга:
а вот это надо будет себе присобачить

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 89
Re: Маленькие хитрости
Кусочек из ~/.zshrc :
И еще кусочек из ~/.fluxbox/keys
P.S. Строго не судите
Код: Выделить всё
mof() {
echo 'mounting floppy...';;
mount /mnt/floppy && \
echo 'Files on this floppy: ' && \
echo '----------------------------' && \
ls --color=never -A /mnt/floppy && \
echo '----------------------------' && \
echo 'Space used: ' &&\
df -h | grep Filesystem && \
df -h | grep floppy && \
#echo 'done';
}
flash_on() {
echo 'Mounting JetFlash device...';
mount /mnt/jetflash && \
echo 'Files on this flash: ' && \
echo '----------------------------' && \
ls --color=never -A /mnt/jetflash && \
echo '----------------------------' && \
echo 'Space used: ' &&\
df -h | grep Filesystem && \
df -h | grep jetflash && \
}
flash_off() {
echo 'Unmounting JetFlash device...';
umount /mnt/jetflash && \
echo 'done.'
}
photo_on() {
echo 'Mounting Photo device...';
mount /mnt/usb && \
ls /mnt/usb/dcim/100km008 && \
echo 'done.'
}
photo_off() {
echo 'Unmounting Photo device...';
umount /mnt/usb && \
echo 'done.'
}
PHOTODIR=/home/graph/photo
photo_trans(){
photo_on;
DATE=$(date +%Y_%m_%d)
echo "Moving photos to " $PHOTODIR/$DATE;
mkdir -p $PHOTODIR/$DATE;
mv -v /mnt/usb/dcim/100km008/* $PHOTODIR/$DATE;
photo_off;
gqview $PHOTODIR/$DATE &;
}
И еще кусочек из ~/.fluxbox/keys

Код: Выделить всё
Control F2 :StickWindow
Control F3 :ToggleDecor
Control F9 :MinimizeWindow
Mod1 F9 :MaximizeWindow
Control Mod1 Right :NextWorkspace
Control Mod1 Left :PrevWorkspace
Control Right :NextTab
Control Left :PrevTab
Mod4 x :CLose
Mod4 k :KillWindow
Mod4 i :Iconify
Mod4 s :Shade
Mod4 v :MaximizeVertical
Mod4 h :MaximizeHorizontal
Mod4 Right :MoveRight 5 # Moves the window to the right
Mod4 Left :MoveLeft 5
Mod4 Up :MoveUp 5
Mod4 Down :MoveDown 5
Mod4 F1 :SendtoWorkspace 1
Mod4 F2 :SendtoWorkspace 2
Mod4 F3 :SendtoWorkspace 3
Mod4 F4 :SendtoWorkspace 4
Mod4 F5 :SendtoWorkspace 5
Mod1 Mod4 Right :ResizeHorizontal 1
Mod1 Mod4 Left :ResizeHorizontal -1
Mod1 Mod4 Up :ResizeVertical -1
Mod1 Mod4 Down :ResizeVertical 1
#------ Media keys ----
None XF86PowerDown :ExecCommand sudo /sbin/halt -p
Mod1 XF86PowerDown :ExecCommand sudo /sbin/reboot
None XF86AudioLowerVolume :ExecCommand amixer set Master 5%-
None XF86AudioRaiseVolume :ExecCommand amixer set Master 5%+
None XF86AudioMute :ExecCommand amixer set Master 0%
None XF86AudioPlay :ExecCommand beep-media-player -t
None XF86AudioStop :ExecCommand beep-media-player -s
None XF86AudioPrev :ExecCommand beep-media-player -r
None XF86AudioNext :ExecCommand beep-media-player -f
None XF86AudioMedia :ExecCommand beep-media-player
P.S. Строго не судите

Ni Ansa
My LJ: Журнал мечтательного биофизика
My LJ: Журнал мечтательного биофизика