- Работа в 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 строк необходимо выполнить команду: