Добавлен: 20.10.2018
Просмотров: 2983
Скачиваний: 23
СОДЕРЖАНИЕ
Ознакомление с рабочим столом ОС Linux и командным интерпретатором BASH
Права доступа к файлам и каталогам
Команды командного интерпретатора BASH и специальные символы
Программные каналы, перенаправление входных и выходных потоков данных
Программа-оболочка Midnight Commander
Мультифайловое программирование
Настройка командного интерпретатора с помощью специальных переменных
$ nm main.o
00000000 T main
U print_hello
$
Таблицы символов объектных файлов содержат общее имя print_hello. В процессе линковки высчитываются и подставляются в нужные места адреса, соответствующие именам из таблицы. Вот и весь секрет.
$ gcc progr1
gcc: no input files
$
Настройка командного
интерпретатора
с помощью специальных
переменных
В ОС Linux есть специальные переменные интерпретатора, с помощью которых осуществляется настройка интерпретатора пользователя. Часть из них определяет система при регистрации пользователя, а остальные пользователь может определить сам, изменив установленные системой по умолчанию.
Автоматическое определение специальных переменных осуществляется специальными сценариями командного интерпретатора, которые называются файлами инициализации. При запуске КИ выполняются соответствующие файлы инициализации. При каждой регистрации пользователя в системе, включающей КИ BASH, выполняется файл инициализации .bash_profile командного интерпретатора BASH. В этом файле содержатся определения специальных переменных и значения для них. Их можно изменить, редактируя файл или выполняя специальные команды из КИ BASH. Редактировать файлы инициализации имеет право системный администратор, а изменить специальные пользовательские переменные может пользователь из командной строки. К таким переменным относятся: HOME, SHELL, PATH, PS1, PS2, MAIL.
HOME ‑ содержит путевое имя начального каталога пользователя;
SHELL ‑ содержит путевое имя программы для того типа интерпретатора, в котором регистрируется пользователь;
PATH ‑ содержит перечень каталогов, в которых выполняется поиск команд Linux;
PS1 ‑ содержит основные символы приглашения к работе, показываемые в командной строке;
PS2 ‑ содержит дополнительный символ приглашения, который используется для команд, состоящих из нескольких строк;
MAIL ‑ содержит путевое имя файла почтового ящика.
Значения указанных переменных можно просмотреть, набрав в командной строке: $ echo $имя_переменной, например: $ echo $MAIL
Значения указанных переменных можно изменить, присвоив им новые значения. При этом можно использовать заранее определенный набор кодирующих символов: \w - показать текущий рабочий каталог, \u - показать имя пользователя, \t - показать время или \! - номер события в хронологическом списке, например:
$ PS1="ваш текст\u\w $",
$ PS1="\t\u ->",
$ PS2="@"
Команда сортировки sort
Команда sort предназначена для сортировки строк текстовых файлов по алфавиту. Для изучения команды sort выполнить:
Задание 1. 1. Войти в свой рабочий каталог (если Вы начали работу, то в нем окажетесь автоматически) и создать новый файл spisok, состоящий из 10 - 15 непронумерованных строк, т.е. имитирующий список каких-либо объектов, например фамилий.
Задание 2. Отсортировать список в алфавитном порядке и вывести на экран ( | - обозначение так называемого программного канала - передача выходных данных команды на вход следующей команды):
$ sort spisok | cat
что аналогично выполнению последовательности двух команд:
$ sort spisok
$ cat spisok
При этом содержимое файла spisok не изменяется, а на экране воспроизводится отсортированный файл.
Задание 3. Отсортировать файл в обратном порядке (опция -f или –r команды sort), пронумеровать строки и вывести на стандартное устройство вывода - экран (опция -n команды cat), результат записать в новый файл spisok1 (> - перенаправление стандартного вывода в файл или на устройство).
$ sort spisok | cat -n > spisok1
Задание 4. Вывести на экран содержимое файла spisok1 и записать в файл spisok2 с использованием перенаправления стандартного ввода-вывода, следующим образом:
$ cat < spisok1 > spisok2
Контрольное задание
Изучите элементы рабочего стола, который Вы увидели после входа в систему. Просмотрите файловую структуру ОС Linux в графическом режиме. Удобно войти в нее через ярлык home directory, расположенный на рабочем столе или запустить из главного меню программу Nautilus (рабочий стол GNOME) или Konquerror (рабочий стол KDE).
Просмотрите содержимое основных каталогов, доступных пользователю для чтения: bin, dev, etc, lib, mnt, tmp, var. Из каталога usr скопируйте 2 файла в Ваш рабочий каталог.
Запустите окно терминала и выполните команды определения путевого каталога, просмотра списка файлов и каталогов текущего каталога и выбранных Вами из файловой структуры. Используйте разные опции команды ls.
Используя текстовые редакторы vi, vim, gvim, gedit и команду cat, создайте по одному файлу в каждом из перечисленных текстовых редакторов, установленных в Вашей системе. Созданный в одном редакторе файл отредактируйте в другом (можно выбрать вариант: текстовый и графический редакторы).
Составьте файловую структуру, имеющую три уровня вложения и содержащую 5 - 6 созданных Вами файлов, расположив их в каталогах разных уровней. Выполните это задание в режиме консоли, в качестве примера используйте пример, представленный в конце работы. Cоздавая структуру, проверяйте результаты командой ls с различными опциями.
Используя справочник man, уточните опции и параметры нескольких описанных в работе команд. Выборочно проверьте некоторые из них.
Используя архив команд history_list, повторите несколько команд на выбор. Проверьте возможность редактирования этих команд.
Настройте командный интерпретатор с помощью специальных переменных по-другому, используя описанные выше кодирующие символы.
Изучите программу Midnight Commander. Ее запуск осуществляется из окна терминала: $ mc. Создайте подкаталог в Вашем рабочем каталоге и запишите в него 2 - 3 файла.
Выполните примеры и задания, представленные в работе.
Выполните следующие команды, используя свои файлы и каталоги (перемещения по каталогам отслеживать самостоятельно):
1. Сравнение двух файлов посимвольно: $ cmp f1 f2
где f1 и f2 - любые файлы текущего каталога. Команда cmp проверяет файлы до первого различия и выводит позицию отличающегося символа и строки второго файла.
2. Проверка: файл или директорий? $ file f1 k2
В результате выводится информация:
f1 : text
k2 : directory
3. Просмотр содержимое текущего каталога другим способом: $ ls -F
Результат выполнения команды: f1 k2/
4. Просмотр файла по байтам
$ od - опция
Возможные опции:
-с - в символьном формате
-d - в десятичном формате
-o - в шестнадцатеричном формате
-x - значения байтов в восьмеричном формате
5. Запись в файл и на стандартный вывод (терминал или экран):
$ tee file1
6. Использование различных опций в команде more, удобной для просмотра больших файлов. Просмотреть содержимое указанных файлов (без опций): $ more f1 f2 f3 f4, здесь f1, f2, f3, f4, - имена файлов.
Использование команды more с различными опциями:
Показать содержимое файла file1, начиная с четвертой страницы:
$ more +4 file1
Пропуск пяти страниц вперёд: $ more 5 file1
Пропуск двух страниц назад: $ more - 2 file1
Прокрутка содержимого файла по полстраницы: $ more d file1
Просмотр опций команды more: $ more h
q - выход из команды-утилиты more.
7. Копирование файла f1 в другой файл f5 с проверкой: существует ли уже файл f5?
$ cp -i f1 f5
Если файл f5 уже существует, то на экране появляется сообщение: overwrite f5? (перезаписать файл f5?) требуется ответить: n - если не перезаписывать; y - если перезаписывать вместо предыдущего файла f5.
8. Аналогично, опция i используется для команды перемещения и удаления:
$
mv -i f3 f4
(здесь
будет выведено подтверждение на
перемещение файлов f3
и f4)
9. $ rm -i f5 (будет выведено подтверждение на удаление файла f5).
10. Изучить команды head и tail, дающие возможность просмотреть первые или последние несколько строк файла (по умолчанию выводятся первые 10 строк файла), используя соответственно:
$ head имя_файла и $ tail имя_файла
Лабораторное задание
и порядок выполнения работы
Изучить материал, выполняя примеры и задания, представленные в работе, и используя личные файлы и каталоги.
Выполнить контрольное задание, описанное в конце работы, используя свои файлы и каталоги.
(По решению преподавателя! Кратко законспектировать материал по новым командам.
Оформить отчет и защитить работу).
Требования к отчету
Отчет должен содержать по требованию преподавателя:
-
Описание последовательности команд создания своей файловой структуры (с Вашими именами файлов и каталогов).
-
Краткие сведения о работе и перечень опробованных в этой работе команд командного интерпретатора BASH.