http://system-administrators.info/?p=404
В Linux любую административную задачу можно выполнить из консоли. Во многих случаях использование консоли требует меньше времени и дает больше возможностей, чем графическая программа. Более того, любая консольная задача может быть записана в скрипт и тем самым автоматизирована. Чтобы по настоящему контролировать среду Linux, вы захотите узнать, как работать с консолью. Предоставленная здесь информация поможет начать использовать консоль Linux, если у вас уже есть опыт работы с DOS/Windows.
Подключение консоли
Если ваша система загружается в текстовом режиме (обычная конфигурация для серверов, чтобы получать на консоль вывод сообщений основных процессов), то вы уже в консоли при входе в систему. Обычно в системе Linux можно попасть на дополнительные консоли, нажав клавиши Ctrl + Alt + (F1 – F6). Каждая консоль — это совершенно отдельная сессия в системе и может использоваться разными пользователями в одно и то же время.
Такое “многоконсольное” поведение отличается от “многодесктопового” в Windows. В Linux каждая консоль может контролироваться совершенно разными пользователями. Например, можно войти пользователем root на первую консоль, и пользователем joeuser на вторую. Обе консоли запускают разные программы в пространстве своего пользователя. В том же духе, разные пользователи могут удаленно входить в систему Windows. В этом случае Linux дает возможности скорее как мэйнфрейм, нежели простой сервер или рабочая станция.
Если же вы работаете в графическом режиме, то можете открыть терминал, чтобы получить доступ к окну с консолью. Обычно на панели задач рабочего стола есть кнопка терминала либо его можно найти в меню Program в System Tools. Терминал также можно открыть из контекстного меню (появляется по щелчку правой кнопкой мыши на рабочем столе).
Команды
Из консоли доступно много дополнительных команд. Некоторые из них действительно полезны только при написании скриптов. Здесь приведены некоторые из тех, которые вероятно вам потребуются. Не забывайте, что все команды и ключи чувствительны к регистру. -R не то же самое, что -r и, скорее всего, приведет к другому результату. Консольные команды почти всегда пишутся в нижнем регистре.
cd
Для перемещения по каталогам используется знакомая команда cd. Главное — запомнить, что там, где вы привыкли к обратному слэшу (\), в системе Linux используется прямой (/). Обратный слэш тоже встречается, но по другому поводу — он указывает, что команда будет продолжена на следующей строке. Это иногда делается для лучшей читаемости при наборе очень длинных команд.
ls
Список файлов в каталоге вызывается командой ls. Есть несколько ключей, с помощью которых можно менять вид списка: ls -l Показывает расширенный вывод, включающий в себя размеры файлов, дату и время последнего изменения и атрибуты
ls -t Сортирует файлы по времени
ls -S Сортирует файлы по размеру
ls -r При использовании вместе с одним из ключей для сортировки изменяет порядок вывода. ls -lt показывает самые новые файлы в самом верху списка. ls -lrt показывает самые новые файлы в самом низу.
ls -h Удобочитаемый. Использует дружественные индикаторы k, M и G, которые показывают размер файла в понятных человеку единицах, а не отображают его в байтах.
ls -a Показывает все файлы в каталоге, даже скрытые
cp
Копируются файлы с помощью команды cp. Она работает точно так же, как и copy в DOS. Основные ключи:cp -R Копирует файлы рекурсивно; используется при копировании каталога со всем его содержимым
cp -f Копирует и перезаписывает существующие файлы без запроса подтверждения
cp -l Создает ссылки на файлы вместо копирования; смотрите ниже
mv
С помощью команды mv перемещают и переименовывают файлы. Команда работает абсолютно так же, как и DOS’овская move, за тем исключением, что она переместит полностью и каталоги, и файлы.
cat
Просматривать файлы можно командой cat. В DOS’е ей соответствует type. Эта команда выдаст содержимое файла в другой файл или на экран, или на вход другой команды. cat — это сокращение от “concatenate” (объединять), так что можно использовать ее для объединения нескольких файлов в один большего размера.
more
Командой more можно просматривать информацию постранично. Работает так же как DOS’овская more.
less
Для того чтобы просмотреть текстовый файл с возможностью прокрутки вверх-вниз и поиска по образцу, используйте команду less.
vi
Некоторые скажут, что vi аббревиатура от «virtually impossible» (практически невозможный). Использование этого текстового редактора является давней традицией в мире Unix. vi в самом деле не слишком интуитивно понятен, но зато доступен почти в любом UNIX-подобном окружении. Для версии, установленной в Linux, есть встроенный учебник, и однажды научившись, вы сможете делать некоторые поистине невероятные вещи нажатием всего нескольких кнопок. В самом деле, ни один редактор не заменит vi для редактирования файлов с паролями и конфигурациями.
man
Документацию по той или иной команде можно увидеть с помощью команды man. Man — это сокращение от manual (справочник). Документация обычно полная. Узнать больше о команде man можно, напечатав:
man man
info
info похожа на man, за исключением поддержки гиперссылок, что делает перемещение по документации более простым.
Какой shell?
Одно серьезное отличие системы DOS/Windows от Linux — это то, что оболочка командной строки представляет собой слой, отделенный от операционной системы. Окружение оболочки затрагивает такие возможности, как редактируемые командные строки и прокручиваемые истории. Оболочка также определяет синтаксис, который требуется для создания функций в скриптах. В DOS/Windows была только одна возможность для написания скриптов — скромный файл .BAT. Он мог многое, но для выполнения более неординарных задач требовал немало изобретательности со стороны пишущего скрипт. В Linux скрипты могут содержать циклы и выполнять больше, чем просто условные операторы, включая многие вещи, которые вы ожидаете от языка программирования. Если вы хорошо писали .BAT файлы, то скрипты shell будут получаться блестяще.
Shell по умолчанию — это свой параметр у каждого пользователя. Обычно в Linux это /bin/bash, но может быть и какой-нибудь другой. Документация man для каждого shell’а действительно очень хорошая, в ней детально рассмотрены shell’ы и как они работают. Чем пытаться рассказать все здесь, лучше выберите shell из списка, приведенного ниже, и посмотрите его справочную информацию (man page).
bash
Оболочка bash — свободная версия Bourne shell, первой Unix оболочки, плюс множество дополнительных свойств. Bash имеет редактируемые командные строки, прокручиваемую историю команд и дописывание кнопкой tab, чтобы не приходилось набирать длинные названия файлов.
csh
C shell использует C-подобный синтаксис и заимствует много свойств из Bourne shell, однако использует другой набор внутренних shell команд.
ksh
Korn shell использует тот же синтаксис, что и Bourne shell, и включает в себя дружественность к пользователю от C shell. ksh используется во многих установочных скриптах, поэтому вероятно должен быть в системе, даже если не является основной оболочкой.
tcsh
TC shell — улучшенная версия C shell и на 100% совместима с ней.
zsh
Z shell — улучшенная версия Korn shell со многими свойствами bash shell.
Ссылки на файлы
Одна притягательная возможность файловой системы Linux — ссылки на файлы. Благодаря им файл может быть виден в нескольких местах файловой системы. Однако, в Linux ссылка может рассматриваться как исходный файл. Ссылку можно исполнять, редактировать, обращаться к ней, не делая ничего необычного. Некоторые приложения в системе являются линком к какому-то исполняемому файлу. При внесении изменений в файл через ссылку вы на самом деле редактируете оригинал. Ссылка — это не копия. Существует два вида ссылок: жесткая и символьная.
Жесткая ссылка может указывать на файлы только в той же файловой системе. Она обеспечивает связь с физическим индексом файла (иначе inode) в файловой системе. Жесткие ссылки не разрываются при перемещениях оригинала, поскольку они все указывают скорее на физические данные файла, нежели на его местонахождение в файловой структуре. Файл с жесткой ссылкой не требует от пользователя прав доступа к исходному файлу и не показывает его расположение, что дает некоторые преимущества по безопасности. Если вы удалите файл, к которому есть жесткие ссылки, он все равно останется до тех пор, пока не будут удалены и все ссылки на него.
Символьная ссылка — указатель на местоположение файла в файловой системе. Символьные ссылки могут перекрывать файловые системы и даже указывать на файлы из удаленной файловой системы. Символьная ссылка указывает на расположение исходного файла, и чтобы ее использовать, пользователь должен иметь права доступа к этому исходному файлу. Если оригинал удаляется, то все символьные ссылки разрываются. Они будут указывать на несуществующий файл.
Оба вида ссылок можно создать при помощи команды
ln
. По умолчанию ln создает жесткую ссылку, а с ключом -s — символьную.
# Create a hard link from MyFile in the current
# directory to /YourDir/MyFile
ln MyFile /YourDir
# Create a symbolic (soft) link from MyFile in
# the current directory to /YourDir/YourFile
ln -s MyFile /YourDir/Yourfile
В приведенных выше примерах MyFile, /YourDir/MyFile и /YourDir/Yourfile рассматриваются как один и тот же файл.
Выход из оболочки
Умение работать из консоли –- это необходимый опыт для администрирования Linux. Существует инструментарий, позволяющий избежать общения с консолью, но с ним вы будете более ограничены в возможностях. Подключиться к консоли просто и получить документацию к командам тоже несложно с помощью команд man и info.
Шелл, терминал и консоль - основы
http://system-administrators.info/?p=1089
В этой небольшой статье мы рассмотрим основы, необходимые для того, что бы ориентироваться в консольном мире. Мы попробуем выяснить что же такое шелл (shell), что же такое терминал (terminal) и наконец поговорим про консоль (console).
1. Хороший, плохой и злой
Шелл, терминал и консоль. Эти слова часто используются, заменяя друг друга, для того что бы описать текстовый режим взаимодействия с системой или интерфейс командной строки (Command Line Interface, CLI). Этот режим часто называют, что кстати говоря не правильно, символьный интерфейс пользователя (“character user interface”, CUI). На самом деле разница между этими тремя понятиями сегодня становится все более и более размытой. Идея о разделении этих понятий исходит из времен, когда ПК были не на столько популярны как сегодня, а ОС UNIX царила на компьютерах того времени.
Shell - это слой или часть операционной системы, часто называемая интерпретатором. Шелл - это специальный интерфейс созданный для обеспечения взаимодействия между пользователем и ядром системы (system kernel) (грубо говоря он является частью совокупности ядра операционной системы и минимального программного обеспечения, необходимого для функционирования системы, system core). Т.е. это программное окружение обеспечивающее необходимые условия для запуска приложений. Можно выделить два типа шеллов: графический (например Windows Explorer, Finder в Mac OS X) и текстовый (например bash, sh, tsh, csh, zsh).
Terminal - физическое (hardware) устройство ввода/вывода подсоединенное к центральному компьютеру, которое позволяет пользователю взаимодействовать с ним (ПК). Оно предназначено для ввода команд, и отображения результата выполнения команд каким либо образом (например на экране монитора, а возвращаясь в ит-средневековье это были телетайпы с присоединенным к ним принтеров для вывода информации).
Console - терминал системного администратора. Стоит упомянуть здесь, что возможности и стоимость терминальных устройств очень сильно повлияло на развитие UNIX-систем. Первые терминалы были очень медленные и программистам приходилось писать маленькие программы, которые генерировали так же мало данных. Спасибо правилу KISS (Keep it simple stupid!; Будь проще, тупица!), которое породило тенденцию к достижению простых и, где это возможно, элегантных решений. Программы стали получать входные данные из форм в виде коротких текстовых сообщений.
2. Bash
Баш - это один из самых известных шеллов доступных во всем семействе ОС Linux. Эту программу часто называют “Bourne again shell” в честь Steven Bourn, который разработал классический шелл sh. Одной из главных особенностей всех шеллов это то, что как правило все команды являются небольшими программами, которые легко найти на своем диске. Bash - это тоже программа расположенная в каталоге /bin/bash в ОС Linux (Solaris - /usr/bin/bash, FreeBSD и OpenBSD - /usr/local/bin/bash, NetBSD - /usr/pkg/bin/bash). Некоторые команды шелла встроены в сам шелл, например cd, break, exec.
Шеллы извлекают огромную пользу из возможности доступа к потокам ввода/вывода:
stdin - стандартный поток ввода или канал ввода трансформирующий входящие данные в компьютер (по умолчанию данные берутся с клавиатуры);
stdout - стандартный поток вывода или канал вывода, который выводит сгенерированные командой результирующие данные либо на монитор (по умолчанию), либо например в файл;
stderr - стандартные поток ошибок, или канал куда передаются сообщения об ошибках полученных в результате выполнения программы, по умолчанию выводятся на монитор.
Источник: linuxpeople.ru
Комментариев нет:
Отправить комментарий