вторник, 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 удобней. Если у вас есть свои хитрости на этот счет, добавляйте в комментарии!
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 пользователя, в отличие от других дистрибутивов, не просят установить пароль root’а. Именно по этой причине аккаунт недоступен. Таким образом, нам необходимо установить для него пароль:
sudo passwd root
В результате этой команды система предложит ввести новый пароль для пользователя root. После
этого данный аккаунт можно будет полноценно использовать для входа в систему.
Для отключения root’ запустите следующую команду:
sudo passwd -l root
Примечание. Не забывайте, что работать под root’ом не рекомендуется! Данный аккаунт предназначен лишь для внесения изменений в систему (установки некоторого софта, настройки ОС и т.п.).
Один из простых способов установить 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. Перегружаемся с флэшки и радуемся!
В этой статье мы рассмотрим метод, в принципе обычной установки 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), закомментируйте строку, поставив знак '#' в начале строки. Повторите этот шаг столько раз, сколько вам нужно. Запомните, каждая закомментированная строка убирает одну виртуальную консоль. Перезапустите систему, чтобы изменения вступили в силу.
c1:12345:respawn:/sbin/getty tty1 38400 linux
c2:12345:respawn:/sbin/getty tty2 38400 linux
Начиная с наибольшего номера (например, c6), закомментируйте строку, поставив знак '#' в начале строки. Повторите этот шаг столько раз, сколько вам нужно. Запомните, каждая закомментированная строка убирает одну виртуальную консоль. Перезапустите систему, чтобы изменения вступили в силу.
Подписаться на:
Сообщения (Atom)