Библиотека Интернет Индустрии I2R.ru |
|||
|
Более продуктивная работа с bash 2.xПеревод статьи Яна Макдональда (Ian Macdonald) «Working more productively with bash 2.x»
Обзор и введениеbash – это shell, т.е. командный интерпретатор для современных компьютеров. Он совместим с Bourne-shell (sh) и включает полезные функции Korn-shell (ksh) и C-shell (csh). Он соответствует стандартам IEEE POSIX P1003.2/ISO 9945.2 для командных интерпретаторов и утилит. Некоторые возможности bash, приведенные без строго определенного порядка: редактирование и автозаполнение; история и повторный ввод команд; контроль заданий; функции shell и псевдонимы; массивы; математические операции; кавычки ANSI C; раскрытие "~"; раскрытие "{}"; работа с подстроками; раскрытие косвенных переменных; расширенные возможности ввода-вывода; контроль встроенных команд; помощь; стек для хранения каталогов; режим совместимости с POSIX; интернационализация; определение времени выполнения команды. bash – командный интерпретатор по умолчанию во всех популярных дистрибутивах Linux. По этой причине, он широко используется, но редко в полной мере. bash, возможно, самая используемая вами в работе
программа Linux, но много ли в действительности вы получаете от ее
использования? Если вы хотите повысить производительность, снизив количество
нажатий клавиш в день, этот документ для вас.
Переменные shell$CDPATH Попробуйте это: После использования вышеуказанной команды, cd
i386 вероятно переместит вас в /usr/src/redhat/RPMS/i386 в
Linux-системе на основе Red Hat. Попробуйте это: После использования вышеуказанной команды, повторяющиеся команды, вызовы ls, запуски почтового клиента mutt без каких-либо дополнительных параметров, плюс вызовы встроенных команд bg, fg и exit не попадут в историю команд. $MAILPATH Попробуйте добавить следующие команды к вашему ~/.bash_profile, чтобы получать уведомления о появлении новой почты в любом ящике в ~/Mail. MAILPATH=/var/spool/mail/$USER for i in `echo ~/Mail/[^.]*` do MAILPATH=$MAILPATH:$i done export MAILPATH unset i Если вы используете mutt и во многие из каталогов не попадает автоматически отфильтрованная почта, вы можете выбрать только те, куда попадает новая почта, также просматриваемые mutt. В это случае, попробуйте что-нибудь похожее на
нижеследующее в своем ~/.bash_profile: $TMOUT Эти установки полезны при работе под root для уменьшения риска безопасности в тех случаях, когда кто-то забывает выйти из системы, работая как суперпользователь. Опции set
Опции shopt ?(шаблон)
Вот пример. Скажем, вы хотите установить все RPM-файлы в указанном каталоге, кроме тех, которые собраны для архитектуры noarch. Вы можете использовать что-нибудь типа этого: rpm -Uvh /usr/src/RPMS/!(*noarch*) Эти выражения могут быть также сгруппированы, тогда, если вы хотите вывести список всех не-PDF и не-Postscript файлов в текущем каталоге, вы можете сделать так: ls -lad !(*.p?(df|s)) readline: советы и приемы эффективной работыБиблиотека readline используется bash и многими другими программами для чтения строк с терминала, позволяя пользователю исправлять введенные строки с помощью стандартных клавиш редактирования Emacs.
Программируемое автозаполнениеВведениеСравнительно новая возможность в bash – программируемое автозаполнение, которое доступно, начиная с бета-версии 2.04. Программируемое автозаполнение знакомо вам, если вы пользователь zsh. Оно также присутствует, хотя в менее удобной форме, в tcsh. Намного легче продемонстрировать принцип работы программируемого автозаполнения, чем объяснить его, таким образом я предлагаю установить один из нижеуказанных файлов и попробовать. Если вам не понравится, вы всегда можете отключить автозаполнение для определенной команды, полностью запретить использование, или удалить файлы из вашей системы. Они могут быть установлены и удалены очень чисто, так что вам не придется об этом беспокоится. Стандартное автозаполнениеbash предлагает много форм автозаполнения с самого начала, включая путь, имя файла, пользователя, хоста и переменной.
Программируемое автозаполнение бесконечно увеличивает количество типов автозаполнения. МеханикаДетальное описание механики программируемого автозаполнения появится здесь через некоторое время. DownloadСледующие файлы доступны для скачивания. Все они
сделаны доступными под лицензией GNU General Public License.
УстановкаЕсли вы хотите установить собранный RPM, запустите следующую команду из-под root: # rpm -Uvh bash-completion-xxxxxxxx-x.noarch.rpm После чего вы обнаружите новый файл в своей системе, /etc/bash_completion. Если вы не добавляли параметр --noscripts при вызове rpm, когда делали установку, скрипт RPM, вызываемый после установки, изменит ваш /etc/bashrc так, чтобы он содержал следующий кусок кода: # START bash completion -- do not remove this line bash=$; bmajor=$; bminor=$ if [ "$PS1" ] && [ $bmajor -eq 2 ] && [ $bminor '>' 04 ] && [ -f /etc/bash_completion ]; then # interactive shell # Source completion code . /etc/bash_completion fi unset bash bmajor bminor # END bash completion -- do not remove this line Если вы устанавливаете файл с исходниками, упакованный либо gunzip, либо bunzip2, положите его куда-нибудь в своей системе и добавьте вышеуказанный код либо в /etc/bashrc, либо в ~/.bashrc. Если вы положили исходник куда-нибудь еще, кроме /etc/bash_completion, вам нужно отредактировать начало, чтобы переменная $BASH_COMPLETION указывала на правильное расположение файла bash_completion. Строка, которая вам нужна: [ -z "$BASH_COMPLETION" ] && declare -r BASH_COMPLETION=/etc/bash_completion Начало работыВы можете получить полный список всех команд, которые были связаны с автозаполнением, выполнив команду complete -p. Дополнительно, команда declare -f покажет вам код всех функций shell, включая те, что связаны с автозаполнением. Чтобы ознакомиться с программируемым
автозаполнением, вероятно, лучше всего просто набрать некоторые из этих команд и
затем нажать Если вы сисадмин, вы найдете автозаполнение
ssh особенно полезным, поскольку оно завершает имена хостов по
содержимому из файлов known_hosts. Также если вы монтируете NFS-партиции
с большого количества хостов, попробуйте набрать mount имя
хоста: Программисты возможно сочтут полезным автозаполнение параметров p4 и cvs. Исправление ошибок и дополненияЕсли вы найдете какие-либо ошибки или пожелаете сделать какие-либо дополнения, я буду счастлив получить ваши патчи к коду. Особенно кстати будут автозаполнение параметров gcc и полная обработка параметров cvs. Еще одна огромная просьба – сделать код более портируемым без замедления работы. Патчи во всех этих областях приветствуются. Новые релизыподпишитесь на извещение о новых версиях. Связь со мнойЕсли у вас появится мнение о коде, пожалуйста найдите время оценить его. Анонсы статей сайта Softerra |
|
2000-2008 г. Все авторские права соблюдены. |
|