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

Однако это действительно не более чем миф, который можно придумать про что угодно. Хотя бы про обычную компьютерную клавиатуру. Тот, кто видит ее впервые в жизни, будет немало удивлен тому, что кнопки располагаются не по алфавиту. И наверняка такое решение покажется ему весьма странным, поскольку поначалу каждую букву приходится довольно долго искать.

Тем не менее никому не приходит в голову разместить клавиши каким-то иным способом. Поскольку удобство именно такого на первый взгляд недружественного интерфейса давно доказано и не вызывает сомнений. А уж если освоить набор вслепую, то временные затраты на изучение окупятся многократно.

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

В чем же ее достоинства? Прежде всего - в универсальности. Независимо от того, какой дистрибутив вы используете, базовые команды будут одни и те же. Нельзя забывать и о том, что текстовый режим устойчивее графического. Вспомните хотя бы знаменитый BSoD (“синий экран смерти”) в Windows. Надпись почему-то отображается именно в консоли, а не в красиво прорисованном окне.

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

Наконец, консольные команды удобны при выполнении некоторых рутинных операций. Ведь компьютер и придуман для автоматизации рабочего процесса. Разумеется, для того чтобы работа в консоли была эффективной, пользователю придется потратить немного времени на изучение стандартных команд Linux. Но оно компенсируется довольно быстро.

Перейти в режим командной строки можно двумя способами. Первый - активация текстовой консоли. Для этого следует нажать комбинацию клавиш Ctrl+Alt+F[номер консоли]. Появится строка приглашения на регистрацию в системе, где нужно последовательно набрать логин и пароль. Второй способ - открытие консоли непосредственно в оконном менеджере. При этом пользователь продолжает работать в графическом режиме. Важно понимать, что и в первом, и во втором случаях все запущенные программы будут продолжать нормально функционировать.



Если с запуском терминала в графическом режиме всё понятно, то активация дополнительных консолей может вызвать ряд вопросов. Какую конкретно функциональную клавишу надо нажать? Сколько консолей может функционировать одновременно и можно ли изменить их количество? Как вернуться обратно в графический интерфейс

Как правило, по умолчанию доступно шесть текстовых консолей. Поскольку поддержание каждой требует примерно 4 Мб памяти, то на слабых машинах их число желательно уменьшить. Для этого следует открыть файл /etc/inittab с правами администратора системы, найти секцию, состоящую из записей вида “2:2345:respawn:/sbin/mingetty tty2”, каждая из которых соответствует одной консоли, и поставить знак комментария (#) напротив лишних. Количество строк в этой секции равно числу текстовых консолей. Причем в большинстве дистрибутивов одна из них служит не для регистрации пользователя, а для системных сообщений. Не правда ли, очень удобно в случае каких-либо неполадок: история болезни всегда доступна.

Количество виртуальных консолей задается в файле /etc/inittab

Первая цифра в строке - это номер консоли и соответственно номер функциональной клавиши, которую надо использовать в комбинации для ее вызова. Для переключения текстовых консолей нужно нажимать не Ctrl+Alt+F[номер консоли], а просто Alt+F[номер консоли] - клавиша Ctrl применяется только в графическом режиме.

Для возврата в графический интерфейс следует активировать соответствующую консоль. Ее номер на единицу больше того, что был последним прописан в /etc/inittab. Например, если используется шесть текстовых консолей, то оконный менеджер запущен на седьмой.

При работе в текстовом режиме визуальный маркер начала строки может быть двух видов: знак диеза (#) и знак доллара ($). Первый указывает на то, что пользователь работает под именем root и ему открыты все файлы системы. В этом случае необходимо проявлять особую осторожность - необдуманные действия чреваты серьезными последствиями.

Обычный пользователь обозначается знаком доллара. Тут тоже есть небольшой нюанс. Концепция ограничения прав доступа приводит к тому, что некоторые команды, выполнение которых подразумевает расширенные полномочия, откажутся запускаться. Причем специфика UNIX такова, что никаких подсказок или пояснений на экране не появится - предполагается, что человек полностью контролирует систему и нисколько не нуждается в помощи программ, от которых требуется только беспрекословное выполнение распоряжений хозяина.

С другой стороны, ищущий дополнительную информацию всегда ее найдет. Одна из самых главных и часто используемых команд - man [имя]. Она выведет на экран справочное руководство, посвященное какому-либо объекту системы, название которого указывается в качестве аргумента. Разумеется, информация берется не из воздуха, а из файла, для чего он должен физически присутствовать на диске. Обратите на это внимание - некоторые разработчики пытаются уменьшить объем дистрибутива, не включая в него страницы помощи. В этом случае их надо установить отдельно.


Команда man выдаст на экран справочное руководство к любому объекту системы

Поскольку man - точно такой же объект системы, как и все остальные, справку по нему можно получить, набрав команду man man. По всей видимости, пользователю, первый раз загрузившему Linux, следует начать именно с нее.

Каждое руководство состоит из разделов, называемых полями. Поле NAME предназначено для краткой информации об объекте. В поле SYNOPSIS содержатся сведения о способах запуска программы. И наконец, поле DESCRIPTION - это подробное описание.

Но что делать пользователю, если он пока не знает, какая программа может выполнить его задание? Воспользоваться командами apropos или whatis. Они предназначены для поиска информации в руководствах. Различие между ними заключается в том, что первая осуществляет поиск по всей базе, а вторая - только по именам объектов, содержащихся в поле NAME. Очевидно, что одна работает медленнее, но выдает больше сведений, чем другая.

Чаще всего в текстовом режиме выполняются операции по настройке системы. Означает ли это для пользователя, что ему придется активировать новую консоль комбинацией Ctrl+Alt+F[номер консоли]? Вовсе нет: в большинстве случаев графический режим покидать не обязательно.

Для того чтобы запустить какую-либо программу с правами администратора, требуется открыть терминал и набрать команду su без параметров, затем система попросит ввести пароль пользователя root -- и полный доступ к файлам вам обеспечен.

Теперь рассмотрим несколько примеров, которые свидетельствуют о том, что командная строка придумана вовсе не для издевательства над пользователем, а, наоборот, для его удобства. Выполним ряд довольно популярных операций без помощи “меню и кнопочек”.

Допустим, вам требуется разбить файл на несколько частей, чтобы отправить его по электронной почте (исходный размер настолько большой, что сервер его не пропускает). Для этого необходимо использовать команду split. Она копирует файл, разбивая его на отдельные фрагменты заданного размера (по умолчанию - 1 Мб). В качестве аргументов следует использовать два имени: исходного объекта и префикса того, что получается на выходе.

Например, имеется большой видеоролик name.avi. Надо разбить его на части размером в 10 Мб. Команда будет выглядеть следующим образом: split -b1000k name.avi name. Первый аргумент указывает объем получаемого объекта, второй - имя исходного, третий - префикс имени результата. Таким образом, в результате операции будут получены файлы name.aa, name.ab, name.ac и т. д. Собрать кусочки воедино поможет команда cat name.* > name.avi.


При помощи команды cat можно быстро ознакомиться с содержимым файла

Нередко у пользователя возникает необходимость сравнить два файла. Самый простой способ - воспользоваться командой cmp [имя первого файла] [имя второго файла]. Если объекты полностью совпадают, то программа молча завершит работу, ибо сообщить ей нечего. Если же она обнаружит какое-то отличие, то выдаст пользователю номер соответствующей строки.

Если требуется полный список несоответствий, то следует воспользоваться командой diff [имя первого файла] [имя второго файла] При этом программа выдаст на экран полный отчет.

В ряде случаев бывает удобно, чтобы информация о различиях не появлялась на экране, а сразу сохранялась в каком-либо файле. Для этого можно прибегнуть к функции перенаправления вывода, и команда будет выглядеть так: diff [имя первого файла] [имя второго файла] > [имя файла отчета].

Операция перенаправления вывода позволяет обратиться к помощи довольно простых на первый взгляд команд для существенного ускорения текущей работы -- например, по составлению полного списка всех файлов, входящих в каталог.

За просмотр содержимого директории отвечает программа ls. Чтобы результат ее работы сохранялся в файле, необходимо использовать уже известную нам возможность и набрать в консоли ls [имя каталога] > [имя файла, куда будет записана информация].


Содержимое директории можно посмотреть, набрав в консоли команду ls

Наконец, последнее замечание. Пользователи часто сетуют на то, что работа в командной строке связана с повышенной нагрузкой на память. Мол, приходится держать в голове все названия служебных утилит. Это не совсем так - в большинстве случаев достаточно знать лишь несколько первых символов. По нажатии клавиши Tab оболочка сама попытается дописать полное название (или предложить варианты, если таковые имеются). ка

Linux консольные приложения

Как уже неоднократно говорилось, для работы в Linux вовсе не обязателен графический интерфейс. Кстати, некоторые дистрибутивы по сей день, не укомплектованы системой XWindow. И, следует заметить, это не делает их менее популярными.

Конечно, наивно думать, что значительная часть пользователей будет предпочитать консольные приложения графическим. И уж тем более не стоит даже предполагать, что кто-то, ознакомившись с такими программами, радикально пересмотрит свои взгляды на эргономику. На практике консольный режим востребован только тогда, когда применение привычных “окон” либо невозможно, либо явно нецелесообразно.

Например, система установлена на сервер. Ради того, чтобы раз в месяц (а то и реже) отредактировать какой-либо файл конфигурации, вряд ли разумно тратить ресурсы системы на поддержку абсолютно лишнего в данном случае графического интерфейса.

Консольных приложений существует великое множество, но мы бегло рассмотрим только четыре наиболее популярных и часто используемых на практике. Это текстовый редактор vim, браузер links, файловый менеджер Midnight Commander и FTP-клиент lftp.

Команды консоли Linux, или как еще говорят командная строка, это своего рода промежуточное звено между пользователем и непосредственно компьютером. Для того, что бы машина выполнила ваш приказ, ей необходимо дать соответствующую команду. Изначально, именно так и происходили взаимоотношения человека с компьютером, а вот несколько позже, появился дополнительный инструмент мышка, которая значительно упростила весь процесс взаимообмена информацией и сделала его более доступным для всех пользователей. Тем не менее, консоль и на сегоднешний день, остается мощным и порой очень удобным инструментом для выполнения всякого рода действий.

Вообще, консольных утилит существует превеликое множество, но здесь мы в кратце, в качестве примера, рассмотрим лишь две из них, но очень важные и часто используемые. Утилита Apt-get , предназначенная для работы с программными пакетами. Для тех же, кто совершенно не признает консоль, может воспользоваться замечательной графической оболочкой для Apt-get , под названием Synaptic (имеется в официальном репозитории).

Как пользоваться утилитой?

//основная формула

sudo apt-get команда

//в качестве примера обновим все пакеты

sudo apt-get upgrade

Основные команды apt-get при работе с пакетами.

apt-get update //обновление инф. о пакетах из репозитариев
apt-get upgrade //обновление всех пакетов
apt-get dist-upgrade //обновление системы в целом
apt-get clean //чистит лок. хранилище, кроме файлов кэша
apt-get autoclean //тоже, что и clean , с удален. кэш-файлов
apt-get check //обновляет кэш и провер. неудовл. зависимости
apt-get autoremove //удаление ранее скачаных, но ненужных пакетов
apt-get remove //удаление пакета с сохран. конфигурац. файлов
apt-get purge //удаление пакета со всеми зависимостями
apt-get install //установка пакета
apt-get build-dep //устанавл. все для сборки исходных пакетов
apt-get source //скачивает пакеты с исходниками

Параметры:

-h, --help //справка
-q, --quiet //скрыть индикатор процесса
-qq //не показывать ничего кроме ошибок
-d, --download-only //только получить пакеты и выйти
-s, --simulate //выполнить симуляцию событий
-y, --yes //автом. отвечать "Да" на все вопросы
--reinstall //переустановить пакеты
-f, --fix-broken //исправить нарушенные зависимости
-m, --ignore-missing //игнорировать отсутствующие пакеты
-u, --show-upgraded //показать обновленные пакеты
--no-upgrade //не производить обновления пакетов
-b, --compile, --build //собрать пакет после получения
-D //при удалении, удалить зависящие компоненты
-V //подробно показывать номера версий пакетов
--no-remove //если пакеты отмеч. к удален., то apt-get выкл.
--force-yes //принудительное выполнение заданной операции

Прикол.

apt-get moo

Должны увидеть корову, которая спрашивает: "Вы мычали сегодня?"

Утилита "aptitude".

Рассмотрим еще одну очень хорошую утилиту под названием "aptitude ", фактически это тоже самое, что и "apt-get ", но считается лучше, а также имеет псевдо-графический интерфейс. Принцип работы точно такой же, только вместо "apt-get ", нужно вводить значение "aptitude ". Сначала установим саму утилиту:

sudo apt-get aptitude

Теперь, если набрать: aptitude , то попадете в интерфейс программы.

Рассмотрим некоторые команды:

// Установка пакета.

sudo aptitude пакет1 пакет2 пакет3

Как видите, устанавливать можно сразу неограниченное количество пакетов одновременно. Сколько бы вы их не устанавливали, aptitude автоматически разрешит все зависимости, вам останется только согласится (y) и нажать (enter) . Так же, по аналогии можно удалять пакеты:

sudo aptitude remove имя_пакета1
или
sudo aptitude purge имя_пакета1

Первая команда удаляет только файлы пакета, не трогая настройки, вторая удаляет полностью все. Посмотреть описание пакета можно так:

aptitude show имя_пакета

Вообщем, эта утилита абсолютный аналог "apt-get ", но при установке и удалении пакетов, желательно использовать ее, нежели "apt-get ". Во всяком случае, на официальном сайте Ubuntu дают именно такие рекомендации.

Другие команды консоли.

Список команд, относящихся к информации.

hostname //сетевое имя машины
whoami //имя текущего пользователя
uname -m //покажет архитектуру машины
uname -r //версия ядра
sudo dmidecode -q //информ. об аппарат. обеспечении системы
cat /proc/cpuinfo //информация о процессоре
cat /proc/interrupts //прерывания
cat /proc/meminfo //вся информация о памяти
cat /proc/swaps //вся информация про swap
cat /proc/version //версия ядра и другая информация
cat /proc/net/dev //сетевые интерфейсы и статистика
cat /proc/mounts //смонтированные устройства
cat /proc/partitions //доступные разделы
cat /proc/modules //загруженные модули ядра
lspci -tv //PCI устройства
lsusb -tv //USB устройства
date //текущая дата
cal //календарь и текущий месяц
cal 2012 //покажет весь 201х год

Команды, относящиеся к процессам перезагрузки и выключения.

shutdown -h now //выключить систему
init 0 //выключить систему
telinit 0 //выключить систему
shutdown -h hours:minutes & //запланировать выключение системы
shutdown -c //отменить запланированное выключение
shutdown -r now //перезагрузить систему
reboot //перезагрузить систему
logout //завершить сессию

Операции с файлами и не только...

cd /home //перейти в домашний каталог
cd .. //перейти на уровень выше
cd ../.. //перейти на 2 уровня выше
cd - //перейти в предыдущий каталог
pwd //показать путь к текущей директории
ls
ls -F //показать файлы и директории
ls -l //показ. подробности о файлах, директориях
ls -a //показать скрытые файлы
mkdir dir1 //создать директорию с именем dir1
mkdir dir1 dir2 //создать директории dir1 и dir2
mkdir -p /tmp/dir1/dir2 //создать директорию в указанном месте
rm -f file1 //удалить файл с именем file1
rmdir dir1 //удалить директорию с именем dir1
rm -rf dir1 //удалит директорию dir1 и всё её содержимое
rm -rf dir1 dir2 //удалить директории dir1 \dir2 и содержимое
mv dir1 new_dir //переименовать / переместить директорию
cp //копирование файлов/папок
ln -s //cоздать символическую ссылку
chmod //присвоение прав файлам

Поиск файлов и директорий.

Забыли, куда сохраняли? Не беда! В консоли найдётся всё.

find / -name file1 //искать файлы, дирек. начин. с /
find / -user user1 //искать файлы, директ. с user1
find /home/user1 -name \*.bin //искать файлы .bin в / home / user1
find /usr/bin -type f -atime +100 //иск. бин. файлы, незап. 100 дн.
find /usr/bin -type f -mtime -10 //иск. файлы созд./изм. за 10 дн.
find / -name \*.deb -exec chmod 755 "{}" \; //иск. файлы (.deb) и измен. права
locate \*.ps //найти файлы с расширением .ps
whereis halt //показать путь к программе halt
which halt //показ. полн. путь к програм. halt

На первый взгляд, все это может выглядеть несколько устрашающе, но это только на первый взгляд. Не стоит сразу бросаться в панику и сразу же, возвращаться к Windows (у). Современные дистрибутивы , а Ubuntu в особенности, вполне позволяет вам обходиться без командной строки. Тем не менее, командная строка, в отдельных случаях намного бывает удобней, чем графический интерфейс. Также, совсем необязательно заучивать все эти команды наизусть, достаточно будет создать текстовый файл, скопировать в него все содержимое и держать его поблизости, как шпаргалку, которой при необходимости можно воспользоваться.

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

Справочники команд Linux: http://books.tr200.ru/v.php?id=278389

В Linux любую административную задачу можно выполнить из консоли. Умение работать из консоли –- это необходимый опыт для администрирования Linux. Существует инструментарий, позволяющий избежать общения с консолью, но с ним вы будете более ограничены в возможностях. Подключиться к консоли просто и получить документацию к командам тоже несложно. В данной статье описаны самые простые и необходимые команды, для того чтобы начать работу в консоли.

Подключение консоли

Если ваша система загружается в текстовом режиме (обычная конфигурация для серверов, чтобы получать на консоль вывод сообщений основных процессов), то вы уже в консоли при входе в систему. Обычно в системе 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. Основные ключи:

mv
С помощью команды mv перемещают и переименовывают файлы.

cat
Просматривать файлы можно командой cat. Эта команда выдаст содержимое файла в другой файл или на экран, или на вход другой команды. cat -- это сокращение от "concatenate" (объединять), так что можно использовать ее для объединения нескольких файлов в один большего размера.

more
Командой more можно просматривать информацию постранично.

less
Для того чтобы просмотреть текстовый файл с возможностью прокрутки вверх-вниз и поиска по образцу, используйте команду less.

vi
Тестовый редактор vi есть почти в любом UNIX-подобном окружении. Для версии, установленной в Linux, есть встроенный учебник, и однажды научившись, вы сможете делать некоторые поистине невероятные вещи нажатием всего нескольких кнопок. Очень удобен vi для редактирования файлов с паролями и конфигурациями.

man
Документацию по той или иной команде можно увидеть с помощью команды man. Man -- это сокращение от manual (). Документация обычно полная. Узнать больше о команде man можно, напечатав:

info
info похожа на man, за исключением поддержки гиперссылок, что делает перемещение по документации более простым.

Какой shell?

Оболочка командной строки представляет собой слой, отделенный от операционной системы. Окружение оболочки затрагивает такие возможности, как редактируемые командные строки и прокручиваемые истории. Оболочка также определяет синтаксис, который требуется для создания функций в скриптах. В Linux скрипты могут содержать циклы и выполнять больше, чем просто условные операторы, включая многие вещи, которые вы ожидаете от языка программирования.

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 .

Выход из оболочки

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

Оставьте свой комментарий!

Операционная система Linux очень нравится программистам и любителям «поковыряться», потому что в ней предусмотрено активное использование консоли, содержащей сотни команд. Если вы решили серьезно взяться за изучение этой гибкой ОС, следует для начала выучить в основные команды .

Зачем же существуют в Linux команды консоли ? Вводя их в консоль, пользователь может оперативно совершать массу действий: открытие, перемещение и копирование файлов, просмотр различной информации и статистики, мониторинг и отладка, получение подробной информации о системе, видоизменение программной и визуальной части системы. И это лишь часть возможностей, которые вы получаете, благодаря этим командам.

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

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

Помните, что для полноценной работы с консолью вам нужны права администратора. Ниже представлен список основных команд в консоли Linux и их расшифровка.

1. Простейшие действия

ls — выдать список файлов в текущем каталоге.

cd [каталог] — сменить текущий каталог. Если имя каталога не указывается, то текущим становится домашний каталог пользователя.

cp <что_копировать> <куда_копировать> — копировать файлы.

mv <что_перемещать> <куда_перемещать> — переместить или переименовать файл.

rm <файлы> — удалить файлы.

mkdir <каталог> — создать новый каталог.

rmdir <каталог> — удалить пустой каталог.

rm -r <файлы и/или каталоги> (рекурсивное удаление) — удалить файлы или каталоги и их подкаталоги. ОСТОРОЖНЕЙ с этой командой, поскольку пока у Linux нет системы полного восстановления удаленных файлов (если вы не пользуетесь специальными программами для помещения удаленных файлов в специальный каталог, что-то вроде «корзинки» в ОС Windows).

cat <имя_файла> — вывод содержимого файла на стандартный вывод (по умолчанию — на экран).
Можно записать вводимый на экран текст с помощью следующей последовательности действий:

cat > <имя_файла>
.
.
.
CTRL/d

more <имя_файла> — просмотр содержимого длинного текстового файла по страницам.

less <имя_файла> — просмотр содержимого текстового файла с возможностью вернуться к предыдущим страницам. Нажмите q, когда захотите выйти из программы. «less» — аналог команды DOS «more», хотя очень часто «less» бывает более удобной чем «more».

pico <имя_файла> — редактировать текстовый файл с помощью текстового редактора pico.

tar -zxvf <файл> — распаковать архив tgz или tar.gz

find <каталог> - name имя_файла — найти файл с именем «имя файла» и отобразить результат поиска на экране. Поиск начинается с каталога <каталог>; «имя_файла» может содержать маску для поиска.

pine — хорошая текстово-ориентированная программа для чтения электронной почты.

mc — запустить программу управления файлами «Midnight Commander» (Выглядит как «Norton Commander», но по своим возможностям ближе к far).

./ Имя_Программы — запустить на исполнение исполняемый файл в текущем каталоге, если текущего каталога нет в списке каталогов, указанных в переменной окружения PATH.

xterm (в X терминале) — запустить простой терминал в графической оболочке X-windows. Для того чтобы выйти из него, наберите »exit».

2. Стандартные команды и команды, дающие информацию по системе команд (всегда набираются в одной строке)

pwd — вывести имя текущего каталога.

whoami — вывести имя под которым Вы зарегистрированы.

date — вывести дату и время.

time <имя программы> — выполнить программу и получить информацию о времени, нужном для ее выполнения. Не путайте эту команду с date. Например: Я могу определить выполнить команду ls и узнать, как много времени требуется для вывода списка файлов в каталоге, набрав последовательность: time ls

who — определить кто из пользователей работает на машине.

rwho -a — определение всех пользователей, подключившихся к вашей сети. Для выполнения этой команды требуется, чтобы был запущен процесс rwho.

ruptime — какие машины работают в сети, и какие остановлены.

finger <имя_пользователя> — системная информация о зарегистрированном пользователе. Попробуйте: finger <ваш login-name>

uptime — количество времени, прошедшего с последней перезагрузки операционной системы.

ps a — вывести список текущих процессов в Вашем сеансе работы.

top интерактивный список текущих процессов, отсортированных по использованию центрального процессора.

uname -a — вывести информацию о версии операционной системы.

free — вывести информацию по использованию памяти.

df -h — вывести информацию о свободном и используемом месте на дисках.

du . -bh | more — вывод на экран информации о размере файлов и каталогов, начиная с текущего каталога.

set|more — вывести текущие значения переменных окружения. (Не для всех shell. Для csh/tcsh — printenv | more, хотя set тоже покажет полезную информацию.)

echo $PATH — вывести значение переменной окружения «PATH» Команда echo может использоваться для вывода значений любых переменных окружения. Воспользуйтесь командами set или printenv для получения полного списка.

3. Работа с сетью

ssh — обеспечивает безопасное вхождение в удаленный сеанс работы с другой машиной, а также позволяет выполнить заданную команду на удаленной машине без вхождения в сеанс работы:

ssh [-l Ваше_имя_пользователя_на_удаленной_машине]<имя_удаленной_машины> — вхождение в сеанс на удаленной машине. Используйте имя машины или ее IP адрес. (Вы должны быть зарегистрированы на этой удаленной машине). Если Ваше_имя_пользователя одинаково на локальной и удаленной машинах, то его можно не набирать, т.е.: ssh <имя_удаленной_машины> — позволит Вам войти в сеанс на удаленной машине

ssh <Ваше_имя_пользователя_на удаленной машине@><имя_удаленной_машины> <команда> — выполнит на удаленном компьютере заданную команду и передаст Вам на экран результат ее выполнения (При установлении соединения по ssh Вы должны будете ввести пароль, который Вы имеете на удаленном компьютере; при этом пароль будет передан по сети в зашифрованном виде, т.е. безопасным образом.)

scp — обеспечивает безопасное копирование файлов в сети:

scp <имя_файла_на_локальном_компьютере> <Ваше_имя_пользователя_на удаленной машине>@<имя_удаленной_машины>: — cкопирует файл с локального компьютера в Вашу корневую директорию на удаленном компьютере (наличие «:» в конце команды обязательно).

telnet <имя_удаленной_машины> — связаться по telnet с другой машиной. Войдите в сеанс работы после установления связи с помощью вашего пароля.

ftp <имя_удаленной_машины> — связаться по ftp с удаленным компьютером. Этот тип связи хорош для копирования файлов с/на удаленную машину.

Предпочтительно не пользоваться командами telnet и ftp, а использовать только ssh и scp, поскольку они обеспечивают безопасность сетевого соединения!

hostname -i — показывает IP адрес компьютера, на котором Вы работаете.

4. Некоторые команды администрирования

alias ls=»ls -Fskb —color» — создать alias-псевдоним для того чтобы одной командой можно было запустить более сложную комбинацию команд. Поместите создание alias в файл /etc/bashrc если вы хотите, чтобы эти псевдонимы были доступны всем пользователям вашей системы.

Для tcsh — формат определения alias другой:

alias la ‘ls -AF —color=none’

kapasswd — команда для изменения пароля для доступа к файловой системе AFS. При работе на базовом Linux-кластере ЛИТ следует пользоваться только этой командой (а не командой passwd!) для изменения пароля для вхождения в кластер.

passwd — изменить свой пароль на каком-либо локальном компьютере.

chmod <права доступа> <файл> — изменить права доступа к файлу, владельцем которого вы являетесь.
Есть три способа доступа к файлу:
чтение - read (r), запись - write (w), исполнение - execute (x) и три типа пользователей:
владелец файла - owner (u), члены той же группы, что и владелец файла (g) и все остальные (o).
Поверить текущие права доступа можно следующим способом:

ls -l имя_файла

Если файл доступен всеми способами всем пользователям, то напротив имени файла будет следующая комбинация букв: rwxrwxrwx
Первые три буквы — это права доступа для владельца файла, второй триплет — права доступа для его группы, следующая тройка — права доступа для остальных. Отсутствие права доступа показывается как «-».; Например: Эта команда позволит вам установить права доступа на чтение для файла «junk» для всех (all=user+group+others):

chmod a+r junk

Эта команда отнимет право доступа на исполнение файла у всех кроме пользователя и группы:

chmod o-x junk

Для получения дополнительной информации наберите chmod —help или man chmod или почитайте любое руководство по Linux. Вы можете установить права доступа по умолчанию для создаваемых вами файлов с помощью команды»umask» (наберите man umask).

chown <новый_владелец> <файлы> — изменить владельца файлов.

chgrp <новая_группа> <файлы> — изменить группу для файла.

Вы можете использовать две последние команды, после того как сделали копию файла для кого-либо.

5. Контроль процессов

ps axu | grep <Ваше_имя_пользователя> - отобразить все процессы, запущенные в системе от Вашего имени пользователя.

kill - «убить» процесс. Для начала определите PID Вашего «убиваемого» процесса при помощи ps.

killall <имя_программы>- «убить» все процессы по имени программы.

xkill (в терминале X window) - «убить» процесс, на окно которого укажите курсором.

6. Встроенные в Linux программные утилиты и языки

emacs (в X терминале) — редактор emacs. Очень многофукционален, но весьма сложен для неопытных пользователей.

gcc — GNU C компилятор. В сети есть очень хорошие руководства по использованию.

g++ — GNU C++ компилятор.