Советы и подсказки по bash

13 Декабрь 2007

Перевод заметки Bash tips and tricks

Для непосвященных, bash - командная оболочка по умолчанию во многих Linux-дистрибутивах, включая Fedora, Ubuntu, Redhat и др. Используя операционную систему Linux-семейства, вы, вероятно, используете и bash. По этой причине ниже я собрал несколько часто возникающих проблем с bash и простые способы их решения.

1. Потеря истории команд

Если открыть окно терминала и ввести несколько команд, а после открыть второе окно, то история команд bash во втором окне не будет содержать команд из первого. К тому же, если закрыть первый терминал, а затем второй, то история команд из первого терминала будет перезаписана вторым. Вдвойне неприятно!

Так происходит из-за того, что история команд записывается только при закрытии терминала, а не после каждой команды. Это можно исправить.

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

nano ~/.bashrc

sudo здесь не нужно, это файл пользователя, а не настройка системы. Мне нравится nano, но можно использовать любой редактор: gedit, kate, mousepad, vi или emacs

добавить строки

shopt -s histappend

PROMPT_COMMAND='history -a'

И сохранить. (Ctrl-O для записи. “^” означает клавишу “Ctrl” в nano и других программах. ^X для выхода)

Так история команд будет добавляться к старой, а не перезаписывать ее, и запись будет происходить каждый раз в момент отображения подсказки bash.

2. Глупые ошибки в написании

Добавьте

shopt -s cdspell

опять-таки в .bashrc. Таким образом ошибки в написании (например, ect вместо etc) будут исправляться.

3. Дубликаты в истории команд

Я часто набираю cd .. несколько раз подряд, и когда я нажимаю клавишу “вверх”, чтобы вернуться к ранее введенным командам, я не хочу, чтобы мне постоянно напоминали о моих неоптимальных передвижениях по файловой системе.

Добавьте

export HISTCONTROL="ignoredups"

опять таки к .bashrc.

Или даже лучше, добавьте

export HISTIGNORE="&:ls:[bf]g:exit"

Это позволит избавиться от дубликатов, а также от ls, bg, fg и exit, что сделает историю команд bash более читабельной.

4. Разорванные многострочные команды в истории команд

Добавьте

shopt -s cmdhist

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

5. Пара дополнительных советов от комментаторов

Нажмите Ctrl-R в bash, далее начните набирать команду. Так искать в истории команд гораздо быстрее, чем нажимать 300 раз “вверх”.

Также можно искать при помощи

history | grep "foo"

Команда

cd -

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

Нажатие “Esc”+”.” вызывает последний упомянутый объект. Например, если набрать cat /etc/apt/sources.list, а затем rm и нажать “Esc”+”.”, то команда будет автоматически завершена: rm /etc/apt/sources.list. Попробуйте!

Заключение

Вот несколько советов, как сделать историю команд bash удобней. Если у вас есть свои хитрости на этот счет, добавляйте в комментарии!

Пять наиболее распространенных заблуждений в отношении Linux

4 Октябрь 2007

Перевод заметки Five Common Misconceptions About Linux

Пользуясь исключительно Linux на протяжении почти четырёх лет, я могу уверенно судить о том, что Linux может, а чего - не может. Ни в коем случае не претендуя на решение всех проблем, несколько самых распространённых заблуждений я все-таки постараюсь рассеять.
Далее »

Мой первый Linux-вирус?

13 Сентябрь 2007

Перевод заметки My first Linux virus?

Блуждая по файловой системе Linux на своем компьютере, я обнаружил странную директорию в /home …

drwxr-xr-x 2 root root 4096 2007-08-19 12:03 eb588afc0325b12eeb074fd6

Я не создавал эту директорию. Если это вирус, то это самый тупой вирус во Вселенной, но всякое бывает. Далее я заглянул внутрь директории и увидел следующие файлы:

$ l eb588afc0325b12eeb074fd6/

total 956

-rw-r--r-- 1 root root 865822 2007-08-02 21:41 mrt.exe._p

-rw-r--r-- 1 root root 96216 2007-08-02 21:34 mrtstub.exe

-rw-r--r-- 1 root root 45057 2007-08-19 12:03 $shtdwn$.req

Боже мой, если это действительно вирус, то он еще тупее, чем я думал: пытается внедрить .exe-файлы в мою Linux-систему! В любом случае, кто-то должен знать ответ… Поиск по mrtstub выдал эту страницу, прямо с вражеского сайта. Довольно быстро я нашел ответ:

mrtstub - это часть Malicious Software Removal Tool (инструмента для удаления вредоносных программ). Отвечает за копирование и запуск mrt.exe.

Вкратце: на моем компьютере установлены две системы: Linux и Microsoft Windows (сын иногда использует для игр), и моя домашняя директория Linux подмонтирована при помощи ext3-драйвера в Windows. Система спрашивала меня об установке этого Malicious Software Removal Tool, в чем я отказывал 10 раз, при чем просил каждый чертов раз НИКОГДА НЕ УСТАНАВЛИВАТЬ. На одиннадцатый раз мой сын также запретил установку Malicious Software Removal Tool (он всегда так поступает), но Windows молча, без разрешения, установила этот кусок дерьма в мой компьютер.

С меня хватит! Я потрачу пятерку и куплю CrossOver для запуска игр на Linux, раз и навсегда избавившись от Windows.

Режим “язвить” в sudo!

7 Сентябрь 2007

Перевод заметки Enable Sudo insults for some laughs!

Недавно я обнаружил забавную штуку в программе sudo: программа может язвить и подкалывать, если неправильно вводить пароль. Я расскажу, как активировать эту возможность и дам несколько примеров, что именно sudo может сказать.

Для включения этого режима используйте команду:

sudo visudo

(всегда используйте visudo для редактирования файла sudoers).

Найдите строку, начинающуюся с Default и добавьте insults в конце (все добавления в этой строке через запятую). Получится что-то типа такого:

Defaults !lecture,tty_tickets,!fqdn,insults

Сохраните файл. В следующий раз, когда вы неправильно введете пароль для sudo, программа не упустит возможность вас подколоть.

Заметка: для очистки сессии sudo, чтобы вновь потребовалось введение пароля, используйте:

sudo -K

Несколько примеров:

Maybe if you used more than just two fingers…

I have been called worse.

Listen, burrito brains, I don’t have time to listen to this trash.

Развлекайтесь :)

Десять заповедей начинающего пользователя Linux

15 Август 2007

Перевод заметки The 10 Commandments for New Linux Users

  1. Не входи в систему под root-аккаунтом.
    Используй “sudo” или “su -” для задач администрирования.
  2. Используй менеджер пакетов, если возможно.
    Иногда установки из исходников не избежать, но если использовать пакетный менеджер дистрибутива для установки программы, с его же помощью можно эту программу обновить или удалить. Это одна из сильных сторон Linux.
  3. Будь частью сообщества.
    Делись тем, что получил бесплатно. Предлагай помощь и совет всегда, когда возможно.
  4. Читай документацию и страницы man.
    Всегда читай документацию. Авторы программ пытались предвидеть твои вопросы и ответить на них еще до того, как ты их задал.
  5. Используй помощь других.
    Переход на Linux может быть трудным делом. Это может раздражать, но множество людей хотят помочь тебе в этом деле. Позволь им.
  6. Ищи.
    В большинстве случаев, твой вопрос или проблема уже решены. Попытайся найти ответы, которые уже даны, прежде чем спрашивать снова.
  7. Изучай.
    Linux открывает целый новый мир средств и возможностей. Испробуй все, что можешь.
  8. Используй командную строку.
    Особенно когда речь заходит о настройке, используй графические средства для наладки системы, но не забывай и о командной строке. Во многих случаях, командная строка - единственный способ использовать некоторые более продвинутые возможности.
  9. Не воссоздавай Windows.
    Linux не задуман как клон Windows. Это другая система. Прими и цени различия.
  10. Не отчаивайся.
    Я испробовал несколько дистрибутивов прежде чем нашел тот, который мне нравится. Я до сих пор пробую другие дистрибутивы время от времени. Я также испробовал по нескольку программ для одних и тех же задач прежде чем сделал свой выбор (например, для музыки - amarok, xmms, beep и exaile, для торрентов - azureus, ktorrent, deluge). Если что-то не нравится, почти всегда это можно изменить.