NetSago
Вход
Войти

Как присоединиться?
Меню
Главная
События
 Заметки
Статьи
Теги
Поиск
О Проекте
Ссылки
Наше
NetSago Paste
NetSago Phrack
RSS События по RSS
RSS Заметки по RSS
netsago NetSago
Популярное
Веб-сервер lighttpd. by n0xi0uzz

5 способов сделать использование bash более продуктивным by n0xi0uzz

Заметки — 5 способов сделать использование bash более продуктивным
Назад в Заметки

5 способов сделать использование bash более продуктивным
n0xi0uzz



Теги: bash



Перевод статьи Richard Bradshaw «5 ways to make using bash more productive»

Если вы используете Linux или Mac, то вы, скорее всего, используете bash в качестве командного интерпретатора по умолчанию. Обычно у него есть несколько неплохих возможностей (табы, история и т.п.), но существуют также несколько советов и трюков, которые могут сделать его более приятным в использовании. Ниже следует 5 моих любимых.

Перечисленные вещи следует добавлять в ваш файл .bashrc. Откройте его с помощью
nano ~/.bashrc

вы можете заменить «nano» на ваш любимый текстовый редактор (vi, emacs, pico, gedit, kate и т.п.)

Эффективный поиск по истории
Нажмите ctrl+R для начала поиска, затем наберите фразу, которую следует найти в истории. Этот совет несложный, но он является отправной точкой, которую все должны знать!
history | grep "искомоевыражение"

Вы найдете выражение в вашей истории с использованием немного более гибкого способа.

Улучшите историю bash
Если вы используете две сессии bash в одно и то же время, закрыв вторую, вы будете писать поверх команд, набранных в первой. Это означает, что история одной из сессий будет утеряна. По меньшей мере, это раздражает. К счастью, есть способ исправить это.

Откройте ваш файл .bashrc, как указано выше, и добавьте строки:
shopt -s histappend
PROMPT_COMMAND='history -a'

Новая история будет добавляться в конец существующей, вместо того, чтобы переписывать неё. Теперь вся ваша история будет сохранена!


Исправьте распространенные ошибки написания
Добавьте в файл .bashrc:
shopt -s cdspell

Простые ошибки, такие как «otp» вместо «opt», или «ect» вместо «etc», будут игнорироваться.

Уберите дубликаты в истории
Когда-нибудь читали свою историю команд и находили, что она в основном состоит из ls, pwd и exit? А как насчет набора одних и тех же команд вновь и вновь, таких как считывание содержимого лога?

Добавьте
export HISTCONTROL="ignoredups"
export HISTIGNORE="&:ls:[bf]g:exit”

и дублирующиеся записи будут игнорироваться, как и некоторые общие команды.

Исправьте многострочные команды
Добавьте
shopt -s cmdhist

к .bashrc.

Это позволит вам быть уверенным в том, что команды в несколько строк будут оставаться едиными в истории.

Заключение
Итак, вот 5 вещей, которые сэкономили мое время, — если вы знаете другие трюки, дайте мне знать о них в комментариях.

Комментарии:

Онанимус (11 октября 2008 01:24):

Предлагаю еще один способ применения HISTIGNORE.
У меня часто была проблема, что когда набираю su, потом необходимо ввести рутовый пароль, так вот необратив внимания (да и наверное я не один такой) можно набрать su и случайно еще что-то, нажать ентер, и ввести неглядя пароль, и получалось что пароль попадал в хистори.

Хакеры часто этим пользуются просматривая лист истории пользователей на предмет случайно введенных паролей.
Так вот что предлагаю.

Например ваш пароль начинается с заглавной буквы (много команд вы знаете в линукс, которые начинаются с заглавных букв? и я тоже немного) так вот ставим строку

export HISTIGNORE="[A-Z]*"

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

export HISTIGNORE="my password"

а только маску пишем. Вот

Онанимус (30 сентября 2008 12:15):

Вот мой хистконтрол:
export HISTCONTROL="ignoreboth:erasedups"
ignore* - прибивает только следующие друг за другом одинаковые команды, а вот erasedups удаляет из истории команды, которые были когда-либо запущены раньше.

Онанимус (30 сентября 2008 05:16):

Онанимус, спОсибо!!!
У меня после строчки
export HISTCONTROL="ignoredups"
в хистори постоянно появлялись команды от mc типа:
cd "`printf "%b" '\0057temp'`"
cd "`printf "%b" '\0057etc\0057apache2'`"

Онанимус (29 сентября 2008 10:05):

HISTCONTROL может принимать значения:
"ignoredups" - в историю не будут добавляться одинаковые записи, если они идут подряд.
"ignorespace" - будут пропускаться все команды, которые начинаются с пробела.
"ignoreboth" - будут пропускаться оба типа записей.
Помоему 3 вариант удобнее :)

HISTFILESIZE и HISTSIZE - устанавливают размер истории и файла истории в строках.
export HISTSIZE=1000
export HISTFILESIZE=$HISTSIZE

Автозаполнение sudo по клавише TAB:
complete -cf sudo

Введите текст с изображения:


И комментарий:

Язык
English/Английский
Поиск
Расширенный Поиск
Ошиблись?
Если вы обнаружили ошибку на сайте, пожалуйста, сообщите нам о ней.
Посчитали
146 / 1817
К нам сегодня зашли 362 робота. Они хотят убить всех человеков.

Зарегистрированных пользователей: 5
Онлайн: 0

Время генерации: 0.060 с
NetSago.v2.β © [2006;∞)  Neunica