Основы ос linux/unix для пользователей



Pdf просмотр
страница1/5
Дата18.11.2016
Размер5.04 Kb.
Просмотров912
Скачиваний0
  1   2   3   4   5

Основы ОС Linux/UNIX для пользователей

Copyright c 2010 Садов О.Л. Данное руководство может свободно использоваться и распространяться на условиях, оговоренных в Open Publication License, v1.0, доступной по следующему ресурсу <
http://www.opencontent.org/openpub/
>

Содержание
I
Начальные сведения
7
1
Процедура регистрации в системе
9
1.1
Вход в систему . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 1.2
Смена пароля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 1.3
Выход из системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2
Командные интерпретаторы и переменные среды
11
2.1
Понятие «командного интерпретатора» . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11 2.2
Переменные среды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 2.3
Специальные символы Shell
15 2.3.1
Обработка потоков информации (программные конвейеры,
перенаправление ввода/вывода) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 2.3.2
Метасимволы shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 2.3.3
Другие спецсимволы shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 2.4
Командные последовательности, упрощающие работу с командной строкой . . . . . . .
16 2.4.1
alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17 2.4.2
history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 2.4.3
Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 2.5
Стартовые файлы оболочки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
II
Основные команды и программы ОС UNIX/Linux
20
3 Поиск справочной информации
22
3.1
Системное руководство man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 3.1.1
Команда man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 3.1.2
Справочная система whatis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23 3.1.3
Команда apropos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24 3.1.4
Справочная система info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4 Информационные команды
26
4.1
Команда uname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26 4.2
Команда date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26 4.3
Команда cal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27 4.4
Команда id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27 4.5
Команда logname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
5 Работа с другими пользователями
29
5.1
Команда who . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 5.2
Команда write
29
6 Работа с терминальными линиями
30
6.1
Команда tty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30 6.2
Команда stty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
7
Работа с файлами и каталогами
32
7.1
Работа с файловой системой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32 3

7.1.1
Команда ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32 7.1.2
Команда pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33 7.1.3
Команда cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33 7.1.4
Команда cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33 7.1.5
Команда ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34 7.1.6
Команда mv
35 7.1.7
Команда rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35 7.1.8
Команда mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36 7.1.9
Команда rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36 7.2
Изменение атрибутов файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37 7.2.1
Команда chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37 7.2.2
Команда chown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38 7.3
Просмотр содержимого файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38 7.3.1
Команда cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38 7.3.2
Команда more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39 7.3.3
Команда less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40 7.3.4
Команда pg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40 7.3.5
Команда head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41 7.3.6
Команда tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41 7.3.7
Команда tee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 7.3.8
Команда split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 7.3.9
Команда wc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 7.3.10 Команда od . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43 7.4
Поиск информации в файлах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44 7.4.1
Команды grep, egrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44 7.5
Команды архивации, компрессии и декомпрессии . . . . . . . . . . . . . . . . . . . . . .
44 7.5.1
Команда tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44 7.5.2
Команда cpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46 7.5.3
Команды gzip и gunzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46 7.6
Подсчет контрольных сумм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47 7.6.1
Команда sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47 7.6.2
Команда md5sum
47 7.7
Команды доступа к принтеру . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48 7.7.1
Команда lpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48 7.7.2
Команда lpq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48 7.7.3
Команда lprm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48 7.7.4
Команда lp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48 7.7.5
Команда cansel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49 7.7.6
Команда lpstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49 7.8
Поиск и проверка состояния файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50 7.8.1
Команда find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50 7.8.2
Команды which и type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 7.8.3
Команда file
51 7.8.4
Команда test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
8 Управление задачами
53
8.1
Команда ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53 8.2
Команда jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54 8.3
Команда bg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55 8.4
Команда fg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55 8.5
Команда kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
9 Отложенной исполнение команд
56
9.1
Команда sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56 4

9.2
Команды at и batch
56 9.3
Команда atq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57 9.4
Команда atrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57 9.5
Команда crontab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
10 Текстовые редакторы
59
10.1 Команда ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59 10.2 Команда vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60 10.3 Команда emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61 10.4 Команда joe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
11 Обработка текстовой информации
64
11.1 Команда sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64 11.2 Команда awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64 11.3 Команда cmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66 11.4 Команда diff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66 11.5 Команда fold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66 11.6 Команда sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67 11.7 Команда uniq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67 11.8 Команда tr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68 11.9 Команда join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68 11.10 Команда paste
69
12 Программирование в среде командных интерпретаторов
70
12.1 Запуск командных файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70 12.2 Позиционные параметры
71 12.3 Основные конструкции и операторы командного языка . . . . . . . . . . . . . . . . . . .
71 12.3.1 Условный интерпретатор if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71 12.3.2 Оператор переключения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71 12.3.3 Оператор цикла while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72 12.3.4 Оператор цикла for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72 12.3.5 Оператор цикла until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72 12.3.6 Вычисление выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72 12.3.7 Определение подпрограмм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73 12.4 Встроенные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73 12.4.1 basename — выделение компонентов имени файла . . . . . . . . . . . . . . . . . .
73 12.4.2 dirname — выделение имени каталога . . . . . . . . . . . . . . . . . . . . . . . . .
73 12.4.3 echo — вывести на печать
73 12.4.4 eval — выполнить команду . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73 12.4.5 exec — запустить программу на исполнение . . . . . . . . . . . . . . . . . . . . .
73 12.4.6 espr — вычисление арифметических выражений . . . . . . . . . . . . . . . . . . .
73 12.4.7 read — прочесть строку . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74 12.4.8 readonly — защита переменных от изменения . . . . . . . . . . . . . . . . . . . .
74 12.4.9 shift — сдвиг позиционных параметров . . . . . . . . . . . . . . . . . . . . . . . .
74
III
Сетевое окружение ОС Linux/UNIX
75
13 Утилиты из набора SSH (Secure Shell)
77
13.1 Вход на удаленный хост — ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77 13.2 Обмен данными с удаленным хостом — scp
77
14 Традиционные сетевые утилиты
79
14.1 Вход на удаленный хост — telnet
79 5

14.2 Обмен файлами — ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80 14.3 Отправка и чтение электронной почты — mail
81
15 Средства получения информации из сети Интернет
82
15.1 Текстовый веб-браузер — lynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82 15.2 wget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83 15.3 lftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83 15.4 rsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
IV
Графическая среда ОС Linux/UNIX
86
16 Основные понятия X-Window
88
16.1 Устройства ввода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88 16.2 Понятие DISPLAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88 16.3 Шрифты X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88 16.4 Цвета X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89 16.5 Ресурсы X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89 16.6 Стандартные опции Xt
90
17 Базовые приложения X-Window
91
17.1 Xserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91 17.2 Window Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92 17.3 Эмулятор терминала — xterm
92 17.4 Уничтожение окон программ-клиентов — xkill . . . . . . . . . . . . . . . . . . . . . . . .
93 17.5 Получение информации об окне — xwininfo . . . . . . . . . . . . . . . . . . . . . . . . .
93 17.6 Получение списка клиентов — xlsclients . . . . . . . . . . . . . . . . . . . . . . . . . . .
94 17.7 Получение информации о клиенте — xdpyinfo . . . . . . . . . . . . . . . . . . . . . . . .
95 17.8 Список шрифтов — xlsfonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97 17.9 Утилита выбора шрифтов — xfontsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98 17.10 Средство просмотра шрифтов — xfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98 17.11 Получение списка шрифтов — showrgb . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98 17.12 Список текущих ресурсов клиента — appres . . . . . . . . . . . . . . . . . . . . . . . . .
99 17.13 Манипуляции с ресурсами — xrdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100 17.14 Редактор ресурсов — editres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100 17.15 Установка свойств дисплея и устройств ввода — xset . . . . . . . . . . . . . . . . . . . .
101 17.16 Установка свойств корневого окна — xsetroot
102 17.17 Отслеживание событий — xev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102 17.18 Установка раскладок клавиатуры и мыши — xmodmap . . . . . . . . . . . . . . . . . . .
102 17.19 Установка параметров клавиатуры — setxkbmap . . . . . . . . . . . . . . . . . . . . . . .
103 17.20Обновление экрана — xrefresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
104
Предметный указатель
105
6

Часть I
Начальные сведения
7

История Unix-систем начинается в 1970 г., когда Кен Томпсон (Ken Thompson) и Денис Ритчи (Dennis
Ritchie) работавшие в AT&T Bell Laboratories в свободное время создали многозадачную многополь- зовательскую операционную систему, написанную на языке высокого уровня C. Система распростра- нялась в исходных кодах среди университетов за символическую плату, что послужило взрывному росту ее популярности в 80-е годы прошлого столетия. Практически все разработчики новых ком- пьютерных систем, начиная с этого периода, использовали UNIX как базовую платформу для своих новых разработок.
Коммерциализация рынка UNIX-систем и переход на закрытую модель разработки и распростране- ния привели к созданию альтернативного движения по разработке набора программ, аналогичных набору утилит, стандартно входящих в UNIX — GNU (самоссылающаяся аббревиатура "GNU is Not
Unix") проект. В 1991 году финский студент Линус Торвальдс (Linus Torvalds) создал собственное ядро операционной системы, совместимое по программным интерфейсам с ОС UNIX, получившее название Linux. Ядро Linux в сочетании с набором утилит проекта GNU послужили основой для создания полноценной ОС, сравнимой по возможностям с коммерческими UNIX-системами, а подчас и превосходящей их.
8

Глава 1
Процедура регистрации в системе
1.1
Вход в систему
Вход в систему начинается с системного приглашения:
login:
В ответ на приглашение следует ввести идентификатор пользователя, зарегистрированного в системе,
и нажать клавишу [ENTER].
Затем система запрашивает пароль пользователя:
login: guest
Password:
Ввод пароля также необходимо завершить нажатием клавиши [ENTER]. Вводимые символы при вводе на экране не отображаются из соображений секретности. При совпадении идентификатора и пароля с зарегистрированными в системе
1
, появляется приглашение командного интерпретатора в случае обычной терминальной сессии или открывается графическая сессия.
1.2
Смена пароля
Для смены своего системного пароля
2
достаточно набрать команду passwd, затем дважды ввести новый пароль
3
в ответ на приглашение. Пароль при этом не отображается.
$ passwd
Changing password for user guest.
Changing password for guest
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
1
После инсталляции системы в ней присутствует по крайней мере один пользователь: root, являющийся суперпользовате- лем с максимально возможными полномочиями. Его пароль устанавливается при инсталляции.
2
После первого входа в систему надо сменить пароль, выданный вам системным администратором, на новый, кроме того,
пароль полезно менять не реже 1 раза в 2 месяца.
3
Пароль должен состоять, по крайней мере, из 6 символов, в которые полезно включать буквы, набранные в разных регистрах, цифры и не специальные символы.
9

1.3. Выход из системы
При несоответствии двух вариантов пароля друг другу система выдает сообщение об ошибке, и пароль не изменяется.
1.3
Выход из системы
Завершение пользовательского сеанса осуществляется при помощи команды exit, или logout, или же просто одновременным нажатием клавиш [Ctrl]-[D] (если эта возможность специально не отключена)
при работе в терминальной сессии или средствами графической оболочки.
10

Глава 2
Командные интерпретаторы и
переменные среды
2.1
Понятие «командного интерпретатора»
С самого момента создания ОС UNIX разработчики поместили пользовательский интерфейс, назвав его shell (оболочка), в пространство пользовательских процессов и снабдили его компактным, но мощным набором средств для общения с ядром и утилитами ОС. Несмотря на наличие большого количества мощных графических интерфейсов, появившихся в UNIX, командная строка является важнейшим средством для общения с операционной системой.
Все команды, набираемые в строке, могут быть использованы в командных файлах, исполняемых ин- терпретатором shell, и наоборот. Действия, выполняемые в командном интерпретаторе, в дальнейшем могут быть окружены графической оболочкой, и детали их исполнения, таким образом, окажутся скрыты от конечного пользователя.
При каждом входе в систему пользователь попадает в среду так называемого домашнего интерпрета- тора пользователя, выполняющего настроечные действия для пользовательской сессии и в дальней- шем осуществляющего интерактивное общение с пользователем. Выход из пользовательской сессии завершает работу интерпретатора и порожденных из него процессов. Любому пользователю может быть назначен любой из существующих в системе интерпретаторов или же интерпретатор собствен- ной разработки. На данный момент существует целый набор командных интерпретаторов, способных быть пользовательской оболочкой и средством исполнения командных файлов:
sh — Bourne-Shell, исторический и концептуальный предок всех остальных командных интер- претаторов, разработанный Стивеном Борном (Stephen Bourne) в AT&T Bell Labs.
csh — C-Shell, интерпретатор, разработанный в университете Беркли Биллом Джоем (Bill Joy)
для системы ЗBSD с C-подобным синтаксисом управляющих операторов. Обладает расширен- ными средствами для работы в интерактивном режиме, средствами управления заданиями, но работа с командными файлами не очень корректна.
ksh — Korn-Shell, интерпретатор, разработанный Дэвидом Корном (David Korn) и стандартно поставляемый с SYSV. Программно совместим с Bourne-Shell, включает в себя средства ре- дактирования командных строк. Набор средств, предоставляемый Korn-Shell, зафиксирован в качестве стандарта командного языка в РОЅIХ Р1003.2.
Кроме вышеперечисленных оболочек, стандартно поставляемых с каждой коммерческой системой,
существует некоторое количество интерпретаторов, свободно распространяемых в исходных кодах:
11

2.2. Переменные среды
bash — Bourne-Again-Shell, в достаточной степени совместимый с Bourne-Shell, включающий в себя как средства интерактивной работы, предложенные в C-Shell, так редактирование команд- ных строк.
tcsh — Tenex-C-Shell, дальнейшее развитие C-Shell с расширенным интерактивным интерфейсом и несколько улучшенным программным.
zsh — Z-Shell, включает в себя все наработки Bourne-Again-Shell и Tenex-C-Shell, а также некоторые существенные их расширения (впрочем, не так популярен, как последние).
pdksh — Public-Domain-Korn-Shell, свободно распространяемый аналог Korn-Shell с некоторыми дополнениями.
Для облегчения работы пользователей, не привыкших к работе с командной строкой, существует ряд свободно распространяемых интерфейсов, например, Midnight Commander (mc), напоминающий
Norton Commander, или файловые менеджеры графических интерфейсов, напоминающие Explorer MS
Windows.
2.2
Переменные среды
Операционная система поддерживает специальный вид ресурсов, называемых переменные среды
(environment variables). Эти переменные представляют собой пару ИМЯ - ЗНАЧЕНИЕ. Имя мо- жет начинаться с буквы и состоять из букв, цифр и символов подчеркивания.
Для подстановки значения переменной в командную строку перед именем переменной ставится знак
$:
$ echo $USER
guest
В случае, если переменная не установлена, возвращается пустая строка.
Для установки значения переменной используется оператор присваивания (в случае Bourne-подобных оболочек):
$ TEST=test или встроенный оператор set (в случае С-подобных):
$ set TEST=test
Команда set без аргументов выводит список значений всех переменных, установленных в среде:
$ set
COLUMNS=197
CVS_RSH=ssh
DIRSTACK=()
EUID=1000
GROUPS=()
G_BROKEN_FILENAMES=1
HISTFILE=/home/guest/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/home/guest
HOSTNAME=myhost
HOSTTYPE=i686
IFS=$’ \t\n’
INPUTRC=/etc/inputrc
12

2.2. Переменные среды
KDEDIR=/usr
KDEDIRS=/home/guest/.local/
KDE_IS_PRELINKED=1
KDE_NO_IPV6=1
LANG=ru_RU.UTF-8
LESSOPEN=’|/usr/bin/lesspipe.sh %s’
LINES=65
LOGNAME=guest
Переменные могут носить характер локальный для данного процесса или глобальный для сессии.
Задать локальные значения для переменных можно, предварив ими вызов команд:
$ TEST=test1 sh -c ’echo $TEST’
test1
Оценить содержимое набора переменных для сессии можно, вызвав встроенную команду интерпре- татора env, в случае Bourne-подобных интерпретаторов (sh, ksh, bash, zsh, pdksh...), и printenv в случае использования интерпретаторов клона C-Shell (csh, tcsh... ):
$ env
HOSTNAME=myhost
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
KDE_NO_IPV6=1
SSH_CLIENT=172.16.0.9 50487 22
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
SSH_TTY=/dev/pts/6
USER=guest
MOZILLA_CERTIFICATE_FOLDER=/home/guest/.evolution/
KDEDIR=/usr
MAIL=/var/spool/mail/guest
PATH=/usr/games:/usr/local/bin:/bin:/usr/bin:/home/guest/bin
INPUTRC=/etc/inputrc
PWD=/home/guest
KDE_IS_PRELINKED=1
LANG=ru_RU.UTF-8
KDEDIRS=/home/guest/.local/
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/home/guest
LOGNAME=guest
QTLIB=/usr/lib/qt-3.3/lib
CVS_RSH=ssh
SSH_CONNECTION=172.16.0.9 50487 172.16.2.9 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env
Наборы команд Shell могут компоноваться в командные файлы, называемые скриптами, где в первой строке в специального вида комментарии указывается командный интерпретатор для исполнения этого набора. Например, создадим в текстовом редакторе файл с названием test, следующего содержания:
13

2.2. Переменные среды
#!/bin/sh echo Переменная TEST:
echo $TEST
Данная программа будет выводить на стандартный вывод текстовое сообщение «Переменная TEST:»
и значение переменной TEST, если оно задано. Запустить его из командной строки можно, передав его в качестве параметра командному интерпретатору:
$ sh test
Переменная TEST:
Придать переменной глобальный характер можно при помощи оператора export (Bourne) или setenv
(C-SHell):
$ export TEST=test1
$ sh test
Переменная TEST:
test1
Задать локальные значения переменных для выполнения данной программы можно, предварив ими вызов команд:
$ TEST=test2 sh test
Переменная TEST:
test2
Удаление переменных среды производится при помощи оператора unset:
$ unset TEST
Наиболее важные переменные:
• SHELL — домашняя оболочка.
• PATH — список каталогов, просматриваемых при поиске исполняемых файлов.
• MANPATH — список каталогов, просматриваемых при поиске файлов системного руководства
man (см.
Разд. 3.1.1
).
• IFS — разделители полей.
• LPDEST — принтер, используемый по умолчанию, если данная переменная не установлена,
используются установки системы.
• EDITOR — редактор, используемый по умолчанию.
• VISUAL — режим редактирования командной строки.
• PS1 1
или promt
2
— первичное приглашение shell, выдаваемое в поток стандартного вывода в интерактивном режиме.
• PS2 — вторичное приглашение, выдаваемое в поток стандартного вывода в интерактивном ре- жиме при вводе символа перевода строки в незавершенной команде.
• TERM — тип используемого терминала.
• PAGER — команда, используемая man для просмотра страниц руководства.
• TZ — часовой пояс.
• LINES — количество строк, помещающихся на экране.
1
Клон Bourne-Shell. В Bourne-Shell по умолчанию обычно $ или #.
2
Клон C-Shell. В C-Shell по умолчанию обычно %.
14

2.3. Специальные символы Shell
• COLUMNS — количество символов, помещающихся в столбце.
• HOME — домашний каталог, используемый, в частности, командой cd (см.
Разд. 7.1.3
).
• LOGNAME — ваше входное имя.
2.3
Специальные символы Shell
2.3.1
Обработка потоков информации (программные конвейеры,
перенаправление ввода/вывода)
Стандартом для UNIX-команд является чтение информации из потока стандартного ввода (по умол- чанию — клавиатура текущего терминала), запись — в стандартный вывод (экран терминала) и пе- ренаправление ошибок — в стандартный поток ошибок (также экран терминала), если в параметрах команды не указано чего-либо иного. Эти умолчания могут быть переназначены средствами sheel’а.
Таблица 2.1 Способы перенаправления
Команда
Назначение
< файл
Перенаправить стандартный ввод из файла
> файл
Перенаправить стандартный вывод в файл
<< метка_конца
Далее следует «встроенный документ», оканчивающийся мет-
кой_конца
>> файл
Вывод будет дописываться в конец файла
поток<файл
Перенаправление ввода потока
поток>файл
Перенаправление вывода потока
поток>&поток файл
Слияние потоков
поток>>&поток файл
Слияние потоков и дописывание в конец файла
| программа
«Конвейер» — перенаправление стандартного вывода исполняемой команды на стандартный ввод программы
2.3.2
Метасимволы shell
Набор метасимволов, используемый sheel, имеет для UNIX универсальное значение — с некото- рыми расширениями он также используется текстовыми редакторами, программами поиска и т.д.
Этот расширенный набор поддерживается свободно распространяемой библиотекой regexp, которая встраивается во многие приложения GNU-проекта.
Таблица 2.2 Метасимволы shell
Метасимвол
Назначение
*
Любое количество символов (возможно 0)
?
Один символ
+
Один символ и более
[набор_символов]
Любой из набора
[!набор_символов]
Ни один из набора
15

2.4. Командные последовательности, упрощающие работу с командной строкой
Таблица 2.3 Способы перенаправления
Спецсимвол
Назначение
;
Ограничитель команды
&
Запуск команды в фоновом режиме
команда1&&команда2
В случае удачного завершения команды1 выполнить команду2
команда1||команда2
В случае неудачного завершения команды1 выполнить команду2
’строка’
Подставить строку, не делая подстановку переменных
"строка"
Подставить строку, делая подстановку переменных
‘команда‘
Подставить стандартный вывод команды в командную строку
\
Экранирующий символ или символ продолжения команды на сле- дующей строке
2.3.3
Другие спецсимволы shell
2.4
Командные последовательности, упрощающие работу с ко-
мандной строкой
Простейшие средства манипуляции командной строкой предоставляются на уровне драйвера терми- нала. Они могут быть переустановлены при помощи команды stty. В
Табл. 2.4
показаны комбинации клавиш для наиболее необходимых операций:
Таблица 2.4 Комбинации клавиш для наиболее необходимых операций
Операция
Назначение
Комбинация клавиш
erase
Стереть символ обычно [Ctrl]-[H], или [Ctrl]-[?],
или просто [Backspace] или [Delete]
werase
Стереть слово обычно [Ctrl]-[W]
kill
Стереть строку обычно [Ctrl]-[U]
rprnt
Перевывести текущую строку обычно [Ctrl]-[R]
intr
Послать запущенному процессу сиг- нал завершения обычно [Ctrl]-[C] или [Delete]
quit
Прервать текущий процесс с образо- ванием core dump’а памяти обычно [Ctrl]-[\]
stop
Остановить вывод текущего процесса на терминал обычно [Ctrl]-[S]
start
Продолжить остановленный вывод процесса обычно [Ctrl]-[Q]
eof
Символ окончания файла обычно [Ctrl]-[D]
susp
Остановить текущий процесс обычно [Ctrl]-[Z]
Командный интерпретатор Bourne-Shell послужил отличным примером разумного разграничения встро- енных интерпретаторов и внешних утилит, но, к сожалению, не обладал средствами, облегчающими пользователю интерактивную работу в командной строке. Начиная с C-Shell, такие улучшения посте- пенно стали вводиться. Были введены механизмы alias, history и job-control.
Начиная с интерпретатора Korn-Shell, был введен механизм редактирования командных строк путем эмуляции командных последовательностей двух наиболее распространенных в мире UNIX’а текстовых редакторов: vi и emacs. Установка в эти моды происходит при вызове shell’а с опцией -о vi или -о emacs или при установке переменной среды VISUAL.
Основные командные последовательности vi-моды:
16

2.4. Командные последовательности, упрощающие работу с командной строкой
[ЕЅС] — вход и выход из командного режима
[j] — предыдущая команда в history
[k] — последующая команда в history
[^] — переход в начало строки
[$] — переход в конец строки
[l] — передвинуться на символ вперед
[h] — передвинуться на символ назад
[x] — удалить один символ
[dw] — удалить одно слово
[D] — удалить все до конца строки
Основные командные последовательности emacs-моды:
[Ctrl]-[P] — предыдущая команда в history
[Ctrl]-[N] — последующая команда в history
[Ctrl]-[A] — переход в конец строки
[Ctrl]-[E] — переход в конец строки
[Ctrl]-[F] — передвинуться на символ вперед
[Ctrl]-[B] — передвинуться на символ назад
[Ctrl]-[D] — удалить один символ
[Meta]-[D] — удалить одно слово
[Ctrl]-[K] — удалить все до конца строки
Во всех свободно распространяемых интерпретаторах, а также в версиях Кorn-Shell некоторых ком- мерческих производителей для передвижения по командной строке можно использовать клавиши управления курсором.
Начиная с Кorn-Shell, в интерпретаторе стала поддерживаться возможность «дописывания» имен в ко- мандной строке. Клавиатурной комбинацией для «дописывания» является [ЕЅС]-[ЕЅС], в некоторых
shell’ах — [ТаЬ]. Первый аргумент командной строки является исполняемой командой, и поэтому его поиск производится согласно переменной $PATH. Остальные ищутся по файловой структуре при за- дании пути. Некоторые интерпретаторы (Tenex-C-Shell, Z-Shell) могут помочь и в наборе аргументов команд.
2.4.1
alias
Механизм псевдосимволов alias позволяет назначать более удобные заменители для наиболее необ- ходимых команд. C-Shell:
% alias la ls -a
% alias ll ls -al
% alias bye exit
17

2.4. Командные последовательности, упрощающие работу с командной строкой
Клон Bourne-Shell:
% alias la=’ls -a’
% alias ll=’ls -al’
% alias bye=’exit’
Команда alias без аргументов выдает список назначенных псевдонимов:
% alias bue exit la
(ls -a)
ll
(ls -al)
Отменить назначение псевдонима можно при помощи команды unalias:
$ unalias la
$ alias ll=’ls -al’
bye=’exit’
2.4.2
history
Использовать ранее введенные команды можно при помощи history:
% history
1
alias la ls -a
2
alias ll ls -al
3
alias bye exit
4
alias
5
unalias la
6
alias
В клоне C-Shell, а также в Bourne-Again-Shell, Z-Shell набранную ранее команду можно вызвать опять, набрав !’номер команды в history’:
% !4
alias bye exit la
(ls -a)
ll
(ls -al)
2.4.3
Jobs
Начиная с интерпретатора Кorn-Shell, был введен механизм управления задачами. Каждая задача может быть либо сразу запущенна интерпретатором в фоновом режиме, либо остановлена комбина- цией [Ctrl]-[Z], а впоследствии переведена в фоновый (bg %’номер задачи’) или интерактивный
(fg % ’номер задачи’, или %’номер задачи’) режим. Текущее состояние задач можно оценить при помощи команды jobs. При помощи встроенного оператора kill процессу может быть послан сигнал
(например, для его завершения).
$ xterm &
[1] 27259
$ xeyes
[2]+
Stopped xeyes
$ jobs
18

2.5. Стартовые файлы оболочки
[1]-
Running xterm &
[2]+
Stopped xeyes
$ bg
[2]+ xeyes &
$ jobs
[1]-
Running xterm &
[2]+
Running xeyes &
$ fg xeyes
$ jobs
[1]+
Running xterm &
2.5
Стартовые файлы оболочки
В качестве стартовых файлов, запускаемых на исполнение при входе пользователя в систему, исполь- зуются файлы:
• Bourne: .profile
• Z-Shell: .zprofile
• С-Shell: .login
Для инициализации shell’ов, порожденных вторично, используются:
• csh: .cshrc
• bash: .bashrc
• tcsh: .tcshrc
• zsh: .zshrc
При выходе из сессии вызывается на исполнение файл .logout, а в Z-Shell — .zlogout.
19

Часть II
Основные команды и программы
ОС UNIX/Linux
20

Все команды, набираемые в командной строке или исполняемые в командном файле, являются либо командами, встроенными в интерпретатор, либо внешними исполняемыми файлами. Набор встроен- ных команд достаточно невелик, что определяется основной концепцией UNIX — система должна состоять из небольших программ, выполняющих достаточно простые четко определенные функции,
связывающиеся между собой по стандартному интерфейсу. Существует два основных набора внешних утилит, являющихся на сегодняшний день стандартом для UNIX-подобных систем:
SYSV Utilities — утилиты, разработанные в рамках проекта ЅYSTEM V и соответствующие стандарту POSIX Р1003.2, установленному группой X/OPEN. Стандарт для всех коммерческих производителей систем UNIX.
GNU Utilities — ставший стандартом de facto набор команд, разрабатываемый FSF (Free
Software Foundation) и доступный бесплатно в исходных кодах. Это набор, в достаточной сте- пени соответствующий РОЅIХ, но с некоторыми расширениями. Достаточно легко собирается на любой UNIX-подобной системе.
21


Каталог: static -> Docs
Docs -> Руководство пользователя Copyright c 2008-2013 ОАО линукс инк. Данное руководство может свободно использоваться и распространяться на условиях, оговоренных в Open Publication License, 0, доступной по следующему ресурсу
Docs -> Инструкция по работе с порталом owa mos ru
Docs -> Настройка системы
Docs -> Linux Format Апрель 2008 Разгоняем Linux Александр Толстой
Docs -> Linux Format Август 2008
Docs -> Руководство по установке Copyright c 2008-2013 ОАО линукс инк. Данное руководство может свободно использоваться и распространяться на условиях, оговоренных в Open Publication License, 0, доступной по следующему ресурсу
Docs -> Руководство пользователя Copyright c 2008-2013 ОАО линукс инк. Данное руководство может свободно использоваться и распространяться на условиях, оговоренных в Open Publication License, 0, доступной по следующему ресурсу
Docs -> План-график проведения обучения специалистов в области технического регулирования в Таможенном союзе и Едином экономическом пространстве (4-й квартал)


Поделитесь с Вашими друзьями:
  1   2   3   4   5


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал