|
Host Space - хостинг сайтов, отличная скорость и качество, регистрация доменов.
Bash: основы обитания в командной строке
Вполне вероятна ситуация, при
которой вам придется сталкиваться
с командным режимом. Как правило,
это является результатом
неправильной конфигурации системы
или вам просто нужно выполнить
какие-либо сервисные процедуры.
Хотя, возможно, вы просто хотите как
можно лучше разобраться с Linux.
Многие удобные (и мощные)
инструменты есть только в
текстовом виде.
Необходимые примечания
При написании примеров команд
очень часто в начале ставится
специальный символ "$",
показывающий, что набранное
выполняется от имени простого
пользователя. Если же необходимы
привилегии суперпользователя, то
ставится "#". В принципе,
"#" можно заменить командой sudo
(если она настроена для запуска от
вашего имени).
Очень часто домашний каталог
обозначается как "~". То есть,
если имя пользователя joe, то ~
эквивалентно пути /home/joe.
ПРОПИСНЫЕ и строчные буквы - это
различные символы, и имена Name и name -
это различные имена. То есть
возможно одновременное
существование файлов aaa и ААА в
одной папке.
Имя файла - всего лишь ссылка на
него. То есть у файла может быть
несколько имен. Это называется
"жёсткая ссылка", также есть
"символическая ссылка", для
которой создаётся специальный
файл, указывающий на исходный
объект. Символическую ссылку можно
создавать для папок и файлов на
любых разделах и носителях (даже
съёмных).
Исполняемые файлы не имеют
расширения (конечно, могут и иметь,
но "выполнимость"
определяется не по нему). Право на
выполнение - такой же атрибут, как
право на запись/чтение. При желании
можно разрешить/запретить любому
пользователю выполнять любую
команду.
Командные интерпретаторы
За "общение" пользователя с
системой отвечает так называемая
"оболочка", она же командный
интерпретатор (вспомните DOS и его
COMMAND.COM). Только важным отличием от
того же DOS и Windows с их скудными
инструментами являются большие
возможности, предоставляемые
текстовыми инструментами. Так вот,
bash - это стандартный линуксовский
командный интерпретатор. Кроме
того, под linux существуют крайне
различные его заменители (ash, fish, csh и
другие). Используемая оболочка
прописана в опциях пользователя.
По умолчанию, bash загружается
сразу, как вы вошли в систему или
запустили какой-нибудь эмулятор
терминала (Konsole, xterm, gnome-terminal и
другие). Собственно, он и
обрабатывает всё, что вы вводите.
База
Обычно команды имеют следующий
вид:
команда параметры аргументы
например, rm -rf /
команда rm предназначена для
удаления;
ключ r показывает, что нужно
удалять рекурсивно, то есть будут
удалена папка и все файлы/подпапки
этого каталога (вообще, для
удаления каталогов применяется
rmdir);
ключ f указывает, что ничего при
выполнении выводить не надо;
аргумент / означает, что удалять
мы будем корневой каталог, то есть в
результате выполнения у нас
удалится всё, что подмонтировано в
системе (уточняю: всё, что можно
удалить).
Вот пара команд, которые наиболее
часто используются при работе, и их
стоит запомнить:
man - показ справки по команде;
$ man rm - руководство, как
пользоваться rm;
cd - сменить каталог на
указанный;
$ cd /home/oni
cp - копировать файл/каталог;
$ cp /home/oni/temp/aaaa /home/oni/work/
ls - показать содержимое
указанного каталога (если ничего не
указано, то отображается
содержимое текущей папки);
$ ls /home
Очень полезным является ключ -а,
про добавлении которого
показываются скрытые файлы и папки
(имя которых начинается с точки,
например, .config).
mv - переместить файл (если
каталог, то нужно указывать ключ -r).
Также применяется при
переименовании, ведь, по сути, между
переименованием и перемещением
нету разницы.
$ mv ~/somefile ~/somedirectory/
$ mv ~/somefile ~/newname
ln - создает жёсткую ссылку, если
добавить ключ -s, то создаётся
символическая ссылка.
$ ln ~/myfile ~/directory/file - редактирование
любого из этих фалов приведёт к
изменению исходного файла.
find - поиск, имеет несколько
нестандартный вид. Имеет много
параметров, позволяет искать по
имени, размеру и т. п.;
$ find ~/work -name document - ищет в ~/work файл с
именем document;
top - отображает таблицу активных
процессов в реальном времени;
ps - отображает моментальный
"снимок" процесса;
$ ps aux - выведутся все текущие
процессы;
grep - поиск текстовой строки в
файлах.
$ grep line /home/
Можно воспользоваться перехватом
вывода и подключить grep к выводу ps.
$ ps aux | grep bash выводит информацию о
процессах, которые содержат
"bash" в выводимом тексте.
Ну раз заговорили о процессах, то
стоит упомянуть следующие.
kill - убивает процесс по его
идентификатору (PID);
killall - убивает все процессы с
указанным именем;
# kill 1 - убивает процесс init (у него
всегда PID=1);
$ killall opera
eject - открывает устройство
чтения компакт-дисков;
$ eject -T - открыть, если закрыт, и
наборот;
shutdown - позволяет перезагружать
(-r), выключать компьютер (-h);
# shutdown -h now - выключает компьютер
незамедлительно;
также для перезагрузки
используется команда reboot, а для
выключения - halt;
# reboot
# halt
Это некоторые из команд,
позволяющих чувствовать себя в
консоли уже не таким ничего не
понимающим чайником. А вообще, для
файловых операций можно установить
консольный файловый менеджер midnight
commander и выполнять им очень многое.
# aptitude install mc
Дополнительные советы
При выполнении команды (наборе
пути) не нужно полностью всё писать.
Есть великая клавиша "Tab",
которая заведует функцией
автоматического завершения.
Например, вместо того, чтобы
набирать
cd /media/win_d/Program\ Files/ProcessExplorer/
можно набрать:
cd /me{TAB}/w{TAB}d/P{TAB}/Pr{TAB}
Так как пробел является
специальным символом, разделяющим
аргументы, то при указании имени,
содержащего пробел, нужно перед ним
ставить бэкслэш (\ ). Аналогично с
символами типа *, ? и другими. Хотя
можно путь взять в одиночные или
двойные кавычки. Зато это позволяет
создавать файлы с именами, которые
невозможны в Windows/DOS.
Для большего удобства сначала
стоит отредактировать файл ~/.bashrc,
который представляет собой файл
настроек bash. Если вам надо, чтобы
какие-либо команды выполнялись
каждый раз при вашем запуске bash, то
их тоже можно указать здесь. Также
стоит раскомментировать эти
строчки:
if [ "$TERM" != "dumb" ]; then
eval "dircolors -b"
alias ls="ls -F --color --file-type"
alias dir=ls --color=auto --format=vertical
alias vdir=ls --color=auto --format=long
fi
Это приведет к тому, что при
выполнении ls список будет
разноцветным.
Также стоит включить функцию
автозавершения.
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Это несколько ускорит работу, так
как теперь при указании аргументов
не надо их писать полностью.
Например, вместо sudo aptitude install bb
можно сделать так: in{TAB}. Аналогично
и для других случаев.
Антон "Oni"
ЛИПАРИН,
oni-ddr.livejournal.com
www.kv.by
Компьютеры 25-07-2008
Mail.ru проведет репортаж с летних Олимпийских игр в Пекине 08-08-2008 Компьютеры Компания Mail.ru открыла на своем сайте специальный раздел "Пекин2008@Mail.Ru", посвященный летним Олимпийским играм.
На страницах "Пекин2008@Mail.Ru" пользователи интернета смогут найти самую свежую информацию о ходе спортивных состязаний, в том числе результаты соревнований, прогнозы по наиболее вероятным победителям в каждом виде спорта, комментарии экспертов и многое другое. Кроме того, в разделе "Пекин2008@Mail.Ru" можно посмотрет... |