Почта
Чат
Диск
     

Основные команды Linux

В Linux работа в графическом режиме осуществляется с помощью системы X Window (иксы). Данная система не предоставляет непосредственно графический интерфейс, а предоставляет другим программам средства для работы с видеокартой, монитором, клавиатурой и мышью. На основе этой системы работают графические интегрированные среды KDE, GNOME и MATE.

Введение в интерфейс командной строки

Синтаксис команд:

имя_команды [короткие_ключи] [длинные_ключи] [аргументы]

имя_командыкомандой может является любой исполняемый файл (например, ls).
короткие_ключикороткие ключи состоят из одного символа и начинаются с символа - и указываются через пробел (например, ls -l -a). Для компактности короткие ключи могут объединяться в один ключ (например, ls -la).
длинные_ключидлинные ключи состоят из нескольких символов, образующих осмысленные слова и начинаются с двух символов - и указываются через пробел (например, ls --all). Длинные ключи НЕ МОГУТ объединяться в один ключ.

Краткую справку о команде можно получить вызвом команды с ключом -h или --help. Подробную справку можно получить с помощью справочной системы man:

man имя_команды

Перемещение по тексту вниз и вверх с помощью стрелок и клавиш <PgUp> и <PgDn>. Выход нажатием клавиши <q>.

Основные команды для работы с файлами

КомандаОписание
pwdтекущий каталог
lsсписок файлов в текущем каталоге
cdсменить каталог
mkdirсоздать каталог
rmdirудалить каталог
cpкопировать файл
mvпереименовать/переместить файл
rmудалить файл
catвывести содержимое файла на консоль
geditредактировать файл
findнайти файл
whichнайти исполняемый файл
exitвыйти из системы
shutdown -r nowперезагрузить компьютер
shutdown -h nowвыключить компьютер

Прервать выполнение команд можно с помощью комбинации клавиш <Ctrl+C>.

Начальные сведения о структуре файловой системы

Файловая система представляет собой логическую структуру каталогов и файлов. Структура стандартных каталогов почти одинакова в различных дистрибутивах Linux и координируется группой разработчиков http://www.pathname.com/fhs.

КаталогОписание
/binосновные пользовательские программы
/sbinпрограммы системного администрирования
/bootфайлы загрузчика системы
/homeкаталоги и файлы пользователей
/devфайлы устройств
/etcфайлы настроек
/libсистемные библиотеки и модули ядра
/lost+foundвосстановленные части файловой системы после некорректного размонтирования
/mediaточка монтирования компакт-дисков и flash-карт
/mntвременные точки монтирования
/optдополнительные пакеты программ
/procвиртуальная файловая система, содержащая файлы с информацией о выполняющихся в данный момент процессах
/rootдомашний каталог суперпользователя
/tmpвременные файлы
/varкаталоги данных, файлы журналов, почтовые ящики, очереди печати и т.д.
/usrпрограммы, исходные коды, документация

Полный список основных каталогов можно получить из справочного руководства man hier.

Расположение основных конфигурационных файлов

Имя файлаНазначение
~/.profileдействия при начале сеанса рабоы пользователя
~/.bashrcпараметры приглашения командной строки и псевдонимы команд
~/.bash_logoutдействия при завершении сеанса работы пользователя
~/.bash_historyжурнал введенных пользователем команд
/etc/profileстандартные параметры окружения всех пользователей
/etc/bashrcпараметры приглашения командной строки и псевдонимы команд. Информация может быть переопределена в пользовательском файле ~/.bashrc
/etc/X11/xorg.confнастройки системы X Window

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

Типы файлов

Тип файлаОписаниеОбозначение (команда ls)
обычные файлыпоследовательность байтов (текст, исполняемые программы и т.п.)-
каталогиименованные наборы ссылок на другие файлыd
символические ссылкиссылки на другие файлыl
файлы физических устройств1. блочные устройства
2. символьные устройства
b
c
именованные каналыбуферы типа FIFO (First In - First Out, первым вошел - первым вышел) для обмена данными между программамиp
сокетыточки сетевого соединения двух программs
Каталоги
Каталог создается командой:

mkdir имя_каталога

При создании каталога в нем создаются два псевдокаталога: . (точка) и .. (две точки).
ФайлОписание
.содержит ссылку на этот каталог
..содержит ссылку на родительский каталог

Для удаления каталога служит команда:

rmdir имя_каталога

Символические ссылки
Символическая ссылка создается командой:

ln -s имя_файла имя_ссылки

Для просмотра ссылки служит команда:

readlink имя_ссылки

Ссылка удаляется так же, как и обычный файл:

rm имя_ссылки

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

ФайлУстройство
nullпустое устройство
tty1первая консоль
tty2вторая консоль
tty3третья консоль
tty4четвертая консоль
tty5пятая консоль
tty6шестая консоль
tty7седьмая консоль
pts/1первый виртуальный терминал
mouse0первая мышь
audio0первая звуковая плата
ttyS0первый последовательный порт (COM1 в MS-DOS)
lp0первый параллельный порт
eth0первая сетевая карта
fd0первый дисковод для гибких дисков
cdromпривод CD-ROM
hdaпервый IDE-диск
sdaпервый SCSI-диск
ramвиртуальный диск
randomгенератор псевдослучайных чисел
urandomгенератор псевдослучайных чисел с учетом информации от клавиатуры и мыши

Имена файлов

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

~ ! @ # $ & % * ( ) [ ] { } ' " \ : ; > < ' пробел

Служебные (скрытые) файлы начинаются с символа . (точка) и ни чем более не отличаются от обычных файлов.

Шаблоны имен файлов

Для задания шаблонов поиска файлов могут использоваться стандартные символы: *, ?, [].

ШаблонОписание
*любое количество любых символов
?только один любой символ
[abc]любой символ из указанных в скобках
[a-c]любой символ из указанного в скобках диапазона символов
[a-cA-C0-9]любой символ из указанных в скобках диапазонов символов

Управление правами доступа к файлам и каталогам

Каждому файлу на диске соответствует один индексный дескриптор файла, где содержится служебная информация о файле. Первые два байта дискриптора файла служат для хранения информации о типе и правах доступа к файлу. Слово данных (два байта) можно отобразить в виде последовательности шестнадцати бит:
1514131211109876543210
тип файлаSUIDSGIDT-битправа владельцаправа группыправа всех остальных

Первые четыре бита отвечают за тип файла:

Двоичный кодДесятичный кодТип файла
101010сокет
110012символическая ссылка
10008обычный файл
01106блочное устройство
01004каталог
00102символьное устройство
00011именованный канал

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

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

Двоичный кодВосьмеричный кодПрава доступа к файлу
1004чтение (r)
0102запись (w)
0011выполнение (x)
1106чтение и запись (rw)
1015чтение и выполнение (rx)
0113запись и выполнение (wx)
1117чтение, запись и выполнение (rwx)
0000нет доступа

Для управления правами доступа к файлам служит команда:

chmod [uga] [+-=] [rwx] имя_файла

Например, для того, чтобы позволить владельцу файла и группе читать и редактировать файл test.txt необходимо выполнить команду:
chmod ug=rw test.txt
Эта же команда может быть записана с использованием восьмеричных значений прав доступа:
chmod 660 test.txt
Биты 11, 10, 9 в первом слове дескриптора файла определяют дополнительные свойства файла.
Бит 9 указывается для каталогов и показывает возможность удаления файлов в этом каталоге только владельцем файлов. Например, для защиты от удаления файлов из каталога test всеми остальными установить этот T-бит (бит защищенности) в значение 1 с помощью команды:
chmod a+t test
Бит 11 (бит SUID) позволяет любому пользователю выполнять исполняемый файл с правами владельца этого файла.
Бит 10 (бит SGID) позволяет любому пользователю выполнять исполняемый файл с правами группы этого файла.
Например, может быть задана возможность исполнения скрипта script.sh кем угодно с правами владельца и группы с помощью команды:
chmod ug+s script.sh
И, наоборот, для отмены такой возможности:
chmod ug-s script.sh

Для изменения владельца и группы, к которым принадлежит файл служат команды.
КомандаОписание
chown владелец имя_файлаизменить владельца файла
chgrp группа имя_файлаизменить группу, к которой принадлежит файл

Для выполнения некоторых команд от имени суперпользователя служит команда sudo. Для получения такой возможности непривелигерованный пользователь должен иметь запись в файле /etc/sudoers.

Потоки ввода-вывода

Каждой выполняющейся программе (процессу) соответствуют три потока ввода-вывода, которые связаны с консолью (клавиатура+монитор):

ПотокНазвание
stdinстандартный ввод (клавиатура)
stdoutстандартный вывод (монитор)
stderrстандартный поток сообщений об ошибках (монитор)

Стандартные потоки можно перенаправить в файл. Для перенаправления стандартного вывода служит символ >. Например, стандартный поток вывода можно перенаправить вместо экрана в файл:
cat > hello.txt
Ввод символов с клавиатуры заканчивается нажатием клавиши <Enter> и затем комбинации клавиш <Ctrl+D>.


В случае, если ведется перенаправление в файл, то можно перенаправляемые данные дописывать к уже существующему файлу (если не существует, то будет создан) с помощью символа >>.
cat >> hello.txt

Стандартный ввод перенаправляется символом <.

Стандартный поток сообщений об ошибках перенаправляется символом 2>.

Для перенаправления стандартного вывода одной команды на стандартный ввод другой команды применяется символ |. Это так называемый конвейер команд. Благодаря этому средству можно создавать цепочки команд для обработки данных

Переменные окружения оболочки bash

Переменная окруженияОписание
PATHсписок каталогов, в которых необходимо искать исполняемые файлы
TMOUTсодержит значение времени ожидания до автоматического выхода из оболочки. Время указывается в секундах
PS1содержит специальные символы, заключенные в двойные кавычки:
\!порядковый номер текущей команды
\#порядковый номер текущей команды с начала сеанса
\$стандартное приглашение ко вводу команды
\\символ \
\dтекущая дата
\tтекущее время
\sимя оболочки
\hсетевое имя компьютера
\uимя пользователя
\Wотображает имя текущего каталога
\wотображает полное имя текущего каталога

Для просмотра содержимого переменной окружения PATH выполните команду:
echo $PATH
Для создания новой переменной окружения FC и записи в нее текста /usr/bin/gfortran используйте команду:
export FC=/usr/bin/gfortran

Контрольные вопросы

  1. Какая команда предназначена для отображения списка файлов в каталоге?
  2. С помощью какой команды осуществляется переход в другой каталог?
  3. В каком файле хранится история введенных пользователем команд?
  4. Сколько типов файлов выделяют в Linux?
  5. Может ли имя файла начинаться с символа "точка"?
  6. Какая команда разрешает владельцу файла запускать его как программу?
  7. К чему приведет задание переменной окружения TOUT значения 60 ?
  8. Какая команда предназначена для перенаправления стандартного потока вывода в файл без перезаписи?

Ссылки по теме

Информация о системе X Window (X.Org Project)
Часть 1. Знакомство с Mandriva Linux. Глава 7. Использование KDE
Часть 1. Знакомство с Mandriva Linux. Глава 8. Использование GNOME
Использование UNIX, Часть 1: Работа с командной строкой
Использование UNIX: Часть 4. Права владельца и разрешения UNIX для защиты личной информации и безопасного совместного использования
Курс молодого бойца. Основы управления доступом к файлам
Что такое права доступа и биты SUID, SGID