- Работа в Linux в графической оболочке и командной строке
- Введение в интерфейс командной строки
- Основные команды для работы с файлами
- Имена файлов
- Типы файлов
- Потоки ввода-вывода
- Команды-фильтры
- Шаблоны имен файлов
- Переменные окружения оболочки bash
- Сценарии оболочки bash
- Текстовый редактор vim
- Начальные сведения о структуре файловой системы
- Расположение основных конфигурационных файлов
- Работа с протоколами системы
Работа в Linux в графической оболочке и командной строке
В Linux работа в графическом режиме осуществляется с помощью системы X Window (иксы). Данная система не предоставляет непосредственно графический интерфейс, а предоставляет другим программам средства для работы с видеокартой, монитором, клавиатурой и мышью. На основе этой системы работают графические интегрированные среды KDE и GNOME.
Введение в интерфейс командной строки
имя_команды [короткие_ключи] [длинные_ключи] [аргументы]
| имя_команды | командой может является любой исполняемый файл (например, ls ). |
| короткие_ключи | короткие ключи состоят из одного символа и начинаются с символа — и указываются через пробел (например, ls -l -a ). Для компактности короткие ключи могут объединяться в один ключ (например, ls -la ). |
| длинные_ключи | длинные ключи состоят из нескольких символов, образующих осмысленные слова и начинаются с двух символов — и указываются через пробел (например, ls —all ). Длинные ключи НЕ МОГУТ объединяться в один ключ. |
Краткую справку о команде можно получить вызвом команды с ключом -h или —help . Подробную справку можно получить с помощью справочной системы man :
Перемещение по тексту вниз и вверх с помощью стрелок и клавиш и . Выход нажатием клавиши .
Основные команды для работы с файлами
| Команда | Описание |
| pwd | текущий каталог |
| ls | список файлов в текущем каталоге |
| cd | сменить каталог |
| mkdir | создать каталог |
| rmdir | удалить каталог |
| cp | копировать файл |
| mv | переименовать/переместить файл |
| rm | удалить файл |
| cat | вывести содержимое файла на консоль |
| vim | редактировать файл |
| find | найти файл |
| which | найти исполняемый файл |
| exit | выйти из системы |
| shutdown -r now | перезагрузить компьютер |
| shutdown -h now | выключить компьютер |
Прервать выполнение команд можно с помощью комбинации клавиш .
Имена файлов
Имена файлов и каталогов могут иметь длину до 255 символов.
В именах нельзя использовать символ / и не рекомендуется использовать символы, имеющие специальное значение для командной оболочки:
Служебные (скрытые) файлы начинаются с символа . (точка) и ни чем более не отличаются от обычных файлов.
Типы файлов
| Тип файла | Описание | Обозначение (команда ls) |
| обычные файлы | последовательность байтов (текст, исполняемые программы и т.п.) | — |
| каталоги | именованные наборы ссылок на другие файлы | d |
| символические ссылки | ссылки на другие файлы | l |
| файлы физических устройств | 1. блочные устройства 2. символьные устройства | b c |
| именованные каналы | буферы типа FIFO (First In — First Out, первым вошел — первым вышел) для обмена данными между программами | p |
| сокеты | точки сетевого соединения двух программ | s |
Каталоги
Каталог создается командой:
При создании каталога в нем создаются два псевдокаталога: . (точка) и .. (две точки).
| Файл | Описание |
| . | содержит ссылку на этот каталог |
| .. | содержит ссылку на родительский каталог |
Для удаления каталога служит команда:
Символические ссылки
Символическая ссылка создается командой:
ln -s имя_файла имя_ссылки
Для просмотра ссылки служит команда:
Ссылка удаляется так же, как и обычный файл:
Файлы физических устройств
Файлы представляют собой последовательность байтов. Исходя из этого, в 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, первым вошел — первым вышел) для обмена данными между программами. Одна программа производит запись в именованный канал, а другая программа считывает эти данные из именованного канала.
Именованный канал создается командой:
Именованный канал удаляется так же, как и обычный файл:
Сокеты
Сокеты создаются программно. Например, код программы на C++ может иметь иметь следующий вид:
#include #include int fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // Далее действия с созданным сокетом
Потоки ввода-вывода
Каждой выполняющейся программе (процессу) соответствуют три потока:
| Поток | Название |
| stdin | стандартный ввод |
| stdout | стандартный вывод |
| stderr | стандартный поток сообщений об ошибках |
По умолчанию потоки ввода-вывода связаны с консолью (клавиатура+монитор):
| stdin | — с клавиатурой, |
| stdout | — с монитором, |
| stderr | — с монитором. |
Стандартные потоки можно перенаправить в файл или стандартный поток другого процесса.
Для перенаправления стандартного вывода служит символ > . Например, стандартный поток вывода можно перенаправить вместо экрана в файл:
Ввод символов с клавиатуры заканчивается нажатием клавиши и затем комбинации клавиш .
В случае, если ведется перенаправление в файл, то можно перенаправляемые данные дописывать к уже существующему файлу (если не существует, то будет создан) с помощью символа >> .
Стандартный ввод перенаправляется символом < .
Стандартный поток сообщений об ошибках перенаправляется символом 2> .
Для перенаправления стандартного вывода одной команды на стандартный ввод другой команды применяется символ | . Это так называемый конвейер команд. Благодаря этому средству можно создавать цепочки команд для обработки данных
Команды-фильтры
| Команда | Описание |
| more имя_файла | постранично выводит на экран текстовый файл. Перемещение вниз нажатием клавиши . Выход нажатием клавиши . |
| less имя_файла | выводит на экран текстовый файл. Позволяет перемещаться по тексту вниз и вверх с помощью клавиш стрелок и клавиш и . |
| grep фраза имя_файла | выводит на экран строки из текстового файла, в которых присутствует указанная последовательность символов (фраза). |
Шаблоны имен файлов
Для задания шаблонов поиска файлов могут использоваться стандартные символы: *, ?, [].
| Шаблон | Описание |
| * | любое количество любых символов |
| ? | только один любой символ |
| [abc] | любой символ из указанных в скобках |
| [a-c] | любой символ из указанного в скобках диапазона символов |
| [a-cA-C0-9] | любой символ из указанных в скобках диапазонов символов |
Переменные окружения оболочки bash
Сценарии оболочки bash
При необходимости выполнения последовательности команд их можно записать в текстовый файл (получится сценарий действий), сделать файл исполняемым и вызвать этот файл на исполнение. В первой строке файла сценария указывается путь к интерпретатору команд, а далее следуют команды. Для добавления комментариев используется символ # (диез), кроме первой строки. Например, следующий сценарий создает каталог и записывает в него два файла:
#!/bin/bash mkdir test cd test echo "First file." > file_01.txt echo "Second file." > file_02.txt
Текстовый редактор vim
В текстовом редакторе vim существуют два режима работы: командный и редактирования. При запуске редактор находится в командном режиме, то есть можно вводить специальные команды.
Навигация по тексту
| k | вверх |
| j | вниз |
| h | влево |
| l | вправо |
| + | на строку вниз |
| — | на строку вверх |
| w | на слово вперед |
| e | на слово назад |
| 0 | в начало строки |
| $ | в конец строки |
| H | в начало экрана |
| L | в конец экрана |
| 10G | перейти к строке номер 10 |
| $G | перейти к последней строке |
Копирование текста
Вставка текста
Удаление текста
| x | удалить символ в позиции курсора |
| X | удалить символ перед курсором |
| dw | удалить слово |
| dd | удалить строку |
| D | удалить от курсора и до конца строки |
Отмена действий
Поиск и замена текста
| /образец | искать текст вниз от курсора |
| ?образец | искать текст вверх от курсора |
| n | повторить поиск в том же направлении |
| N | повторить поиск в обратном направлении |
| :%s/текст1/текст2/c | найти текст1 и заменить на текст2 каждый раз спрашивая подтверждение |
Для перехода в режим редактирования необходимо нажать клавишу i. Для возврата в командный режим нажать клавишу .
Сохранение файла и выход
| :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 можно использовать команду:
Для вывода последних 20 строк необходимо выполнить команду:
Для вывода первых 20 строк необходимо выполнить команду: