WebTransfer

вторник, 3 февраля 2009 г.

понедельник, 2 февраля 2009 г.

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

Для непосвященных, 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 удобней. Если у вас есть свои хитрости на этот счет, добавляйте в комментарии!

Включение аккаунта root в Ubuntu

Ubuntu - это один из немногих дистрибутивов, в котором по умолчанию отключен аккаунт root’а. То есть команда sudo работает, но полноценно войти как root нельзя. В случае, если это необходимо, такую возможность можно включить.

В процессе установки Ubuntu пользователя, в отличие от других дистрибутивов, не просят установить пароль root’а. Именно по этой причине аккаунт недоступен. Таким образом, нам необходимо установить для него пароль:

sudo passwd root

В результате этой команды система предложит ввести новый пароль для пользователя root. После
этого данный аккаунт можно будет полноценно использовать для входа в систему.

Для отключения root’ запустите следующую команду:

sudo passwd -l root

Примечание. Не забывайте, что работать под root’ом не рекомендуется! Данный аккаунт предназначен лишь для внесения изменений в систему (установки некоторого софта, настройки ОС и т.п.).

Сборка нового ядра для Ubuntu Linux

Это если решусь пересобрать :-)

Один из простых способов установить Ubuntu на флэшку.

Уверен если не все, то многие линуксоиды читали различные статьи по установке GNU/Linux на флэшки, однако все эти методы имеют один существенный минус - надо работать в консоли.
В этой статье мы рассмотрим метод, в принципе обычной установки Ubuntu, но на сменный носитель памяти. Для этого нам понадобится:
а) Флэшка(1GB, лучше 2Gb минимум).
б) Live CD Ubuntu
в) /dev/hands - без них никуда :-)

1. Вставляем Live CD в Ваш CD-ROM
2. Подключаем флэшку.
3. Загружаем Live CD
4. После загрузки идем: System - Администрирование - Partition Editor
Это откроет Partition Editor. Нажмите на вашу флэшку, чтобы удалить все разделы с неё. Нажмите Apply и выходите из Partition Editor.
5. Начните установку.
6. Пройдите по пунктам установки до раздела, где Вы размечаете диск. Выберите самостоятельную разметку. Выберите для разметки Вашу флэшку (обычно это /dev/sdb, внимание, не выбирайте sdb1)
7. Проходите далее по установкам, вводя свои данные до раздела: Готов к установке.
8. Там выбираете Дополнительно, и устанавливаете загрузчик grub на флэшку /dev/sdb .
9. Нажимаете Установить, и идете погулять, минут эдак на 20.

На этом первая часть завершена.

1. После установки перегружаемся в Live CD не вынимая флэшки.
2. После загрузки открываем терминал и вводим:
sudo -i

3.
cd /media/disk/boot/grub

4. Note: сделайте backup menu.list, на всякий пожарный.
5. Открываем для редактирования menu.list
6. Находим там следующие строки:
## ## End Default options ##
And underneath it you will find three entries pointing to your Ubuntu you just installed:
title Ubuntu 8.04, kernel 2.6.24-16-generic
root (hd1,0)
kernel /boot/vmlinuz………
initrd /boot/initrd…….
quiet
highlight: php

7. Меняем здесь все (hd1,0) на (hd0,0).
8. Находим строчку вида: # groot=(hd1,0) заменяем на # groot=(hd0,0)
9. Сохраняем.
10. Проверяем что menu.lst имеет владельца root:ubuntu
11. Редактируем device.map, меняем на hd0 to /dev/sdb
12. Перегружаемся с флэшки и радуемся!

Освобождаем память. Виртуальные консоли.

Виртуальные консоли - это прекрасный путь освободить память. Большинство дистрибутивов Linux запускают около 6 виртуальных консолей, именно между ними вы переключаетесь, используя комбинации Alt+F1 - Alt+F6. В среднем, использование 6 консолей требует около 4 Мб памяти. Если убрать пару консолей, можно освободить пару мегабайт памяти. Большинство пользователей используют 3-4 консоли. Сколько консолей вы оставите это ваше личное дело. Просто запомните, что чем меньше виртуальных консолей вы используете, тем больше памяти остается для работающих приложений. Количество используемых консолей описывается в файле /etc/inittab. Для того чтобы убрать виртуальную консоль, загрузите /etc/inittab в текстовый редактор, найдите строки, похожие на:
c1:12345:respawn:/sbin/getty tty1 38400 linux
c2:12345:respawn:/sbin/getty tty2 38400 linux
Начиная с наибольшего номера (например, c6), закомментируйте строку, поставив знак '#' в начале строки. Повторите этот шаг столько раз, сколько вам нужно. Запомните, каждая закомментированная строка убирает одну виртуальную консоль. Перезапустите систему, чтобы изменения вступили в силу.