Сайт
Чукина
Владимира
Владимировича

20 сентября 2017 г.

Работа в Linux в графической оболочке и командной строке

Введение в графический интерфейс

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

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

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

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

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

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

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

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

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

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

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

Имена файлов

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

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

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

Типы файлов

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

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

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

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

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

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

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

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

readlink имя_ссылки

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

rm имя_ссылки

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

mknod имя_устройства тип_устройства старший_номер младший_номер

АтрибутОписание
тип_устройства в Linux существуют блок-ориентированные и байт-ориентированные устройства. В блочные устройства (например, диски) данные передаются блоками и для обмена необходим буфер. В символьные устройства (например, принтер) данные передаются посимвольно и буфер не требуется.
b - блочное устройство
с - символьное устройство
старший_номеруказывает тип устройства. Список старших номеров хранится в файле /proc/devices
младший_номерпорядковый номер устройств одного типа (с одинаковым старшим номером)

Файлы наиболее часто используемых устройств.

ФайлУстройство
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генератор псевдослучайных чисел с учетом информации от клавиатуры и мыши
Именованные каналы
Именованный канал - это буфер типа FIFO (First In - First Out, первым вошел - первым вышел) для обмена данными между программами. Одна программа производит запись в именованный канал, а другая программа считывает эти данные из именованного канала.
Именованный канал создается командой:

mkfifo имя_канала

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

rm имя_канала

Сокеты
Сокеты создаются программно. Например, код программы на C++ может иметь иметь следующий вид:

 #include <sys/types.h>
 #include <sys/socket.h>

 int fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

 // Далее действия с созданным сокетом

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

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

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

По умолчанию потоки ввода-вывода связаны с консолью (клавиатура+монитор):
stdin- с клавиатурой,
stdout- с монитором,
stderr- с монитором.

Стандартные потоки можно перенаправить в файл или стандартный поток другого процесса.

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

cat > hello.txt

Ввод символов с клавиатуры заканчивается нажатием клавиши <Enter> и затем комбинации клавиш <Ctrl+D>.


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

cat >> hello.txt


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

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

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

Команды-фильтры

КомандаОписание
more имя_файлапостранично выводит на экран текстовый файл. Перемещение вниз нажатием клавиши <ENTER>. Выход нажатием клавиши <q>.
less имя_файлавыводит на экран текстовый файл. Позволяет перемещаться по тексту вниз и вверх с помощью клавиш стрелок и клавиш <PgUp> и <PgDn>.
grep фраза имя_файлавыводит на экран строки из текстового файла, в которых присутствует указанная последовательность символов (фраза).

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

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

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

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

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

Сценарии оболочки bash

При необходимости выполнения последовательности команд их можно записать в текстовый файл (получится сценарий действий), сделать файл исполняемым и вызвать этот файл на исполнение. В первой строке файла сценария указывается путь к интерпретатору команд, а далее следуют команды. Для добавления комментариев используется символ # (диез), кроме первой строки. Например, следующий сценарий создает каталог и записывает в него два файла:
#!/bin/bash

mkdir test
cd test
echo "First file." > file_01.txt
echo "Second file." > file_02.txt
Файлам сценариев обычно дают расширение .sh.

Текстовый редактор vim

В текстовом редакторе vim существуют два режима работы: командный и редактирования. При запуске редактор находится в командном режиме, то есть можно вводить специальные команды.
Навигация по тексту
kвверх
jвниз
hвлево
lвправо
+на строку вниз
-на строку вверх
wна слово вперед
eна слово назад
0в начало строки
$в конец строки
Hв начало экрана
Lв конец экрана
10Gперейти к строке номер 10
$Gперейти к последней строке

Копирование текста
ywкопировать слово
yyкопировать строку

Вставка текста
pвставить в следующую строку
Pвставить в предыдущую строку

Удаление текста
xудалить символ в позиции курсора
Xудалить символ перед курсором
dwудалить слово
ddудалить строку
Dудалить от курсора и до конца строки

Отмена действий
uотмена введенной команды
Ctrl+Rвозврат отмененной команды

Поиск и замена текста
/образецискать текст вниз от курсора
?образецискать текст вверх от курсора
nповторить поиск в том же направлении
Nповторить поиск в обратном направлении
:%s/текст1/текст2/cнайти текст1 и заменить на текст2 каждый раз спрашивая подтверждение

Для перехода в режим редактирования необходимо нажать клавишу i. Для возврата в командный режим нажать клавишу <Esc>.
Сохранение файла и выход
:wсохранить файл
:w новое_имясохранить файл под новым именем
:w! новое_имясохранить файл под новым именем, предварительно удалив одноименный файл
:qвыйти из редактора
:wqсохранить и выйти
:q!выйти без сохранения

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

Файловая система представляет собой логическую структуру каталогов и файлов. Структура стандартных каталогов почти одинакова в различных дистрибутивах 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.

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

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

В файле ~/.bashrc можно задать значения переменных окружения. Например, в конце файла ~/.bashrc могут быть записаны следующие строки:
export PS1="[\u@\h \W]\$ "
export TMOUT=600

Работа с протоколами системы

Журналы (логи) работы программ находятся в каталоге /var/log/. Например, для просмотра последних 10 строк журнала системных сообщений /var/log/messages можно использовать команду:

tail /var/log/messages

Для вывода последних 20 строк необходимо выполнить команду:

tail -20 /var/log/messages

Для вывода первых 20 строк необходимо выполнить команду:

head -20 /var/log/messages

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

Информация о системе X Window (X.Org Project)
Часть 1. Знакомство с Mandriva Linux. Глава 7. Использование KDE
Часть 1. Знакомство с Mandriva Linux. Глава 8. Использование GNOME
Использование UNIX, Часть 1: Работа с командной строкой
Протоколы в Linux
Православное радио "Воскресенье"   Валаамский монастырь   Медиа-сервер "Россия Православная"   Интернет-магазин "ЛинуксЦентр"   Яндекс цитирования   Valid CSS!   Valid XHTML 1.0 Strict!   Unicode Encoded Badge