Linux полное руководство петерсон

ОПЕРАЦИОННАЯ
СИСТЕМА
LINUX

ЭКТ-55

  1. ОСНОВНАЯ
    ЛИТЕРАТУРА

Петерсен
Р. Linux.
Полное руководство.: Перевод с
английского. Киев: BHV:
Ирина. 2000,
2 экз.

Померанц
О. Ядро Linux.
Программирование модулей. Перевод с
английского. М.: Кудиц-образ, 2000,
1 экз.

Рейчард
К. Linux.
Справочник. Перевод с английского.
СПб.: Питер, 1999,
3 экз.

Хатч
Б. Секреты хакеров. Безопасность Linux
– готовые решения. Перевод с английского.
/ Б. Хатч, Ли Дж., Курц Дж., М.: Вильямс,
2002, 1 экз.

  1. СОДЕРЖАНИЕ
    ДИСЦИПЛИНЫ

    1. ЛЕКЦИОННЫЕ
      ЗАНЯТИЯ:

  1. 1

Введение
в ОС
Linux. Назначение
операционной системы. Основные
достоинства ОС Linux.

  1. 2,3

Тема
1. Командный интерпретатор.
Регистрация
нового пользователя. Виды командных
интерпретаторов. Настройка текущего
интерпретатора. Интерфейс командного
интерпретатора. Основные команды для
работы с данными ОС Linux.
Редактирование командной строки.
Метасимволы ОС Linux.
Стандартные потоки (программный канал)
и перенаправление данных в ОС Linux.

  1. 4

Тема
2. Файловая структура ОС
Linux.
Наименование
файлов. Типы данных ОС Linux.
Назначение
типовых разделов ОС Linux.
Отображение
содержимого разделов и вывод данных
в удобной для пользователя форме.
Назначение ссылок. Права доступа на
объекты ОС Linux.

  1. 5

Тема
3. Поиск и сортировка данных в ОС
Linux.
Использование
команды find.
Расширенный поиск данных и операции
назначения. Сортировка данных с помощью
команды sort.

  1. 6

Тема
4. Сжатие и архивирование данных.
Команда
tar. Команды
compress и
uncompress. Команды
gzip,
gunzip
и zcat.

  1. 7

Тема
5. Системные процессы.
Понятие
родительского и дочернего процессов.
Просмотр процессов и их PID.
Поиск нужного процесса. Управление
процессами при помощи сигналов.
Завершения процессов. Приоритетный
и фоновый режимы заданий.

  1. 8

Тема
6. Рабочие столы GNOME и K Desktop (KDE).
Библиотеки
Qt и Harmony. Монтирование компакт-дисков
и дискет с рабочего стола. Перемещение
по файловой системе. Операции
копирования, перемещения, удаления и
архивирования. Менеджеры окон. Менеджеры
файлов GMC и Nautilus.

  1. 9

Тема
7. Текстовые редакторы ОС Linux
.
Редакторы для рабочего стола K Desktop и
Gnome. Редактор Vim. Редактор Emacs. Текстовые
редакторы с графическим интерфейсом
kedit,
nedit
и gedit.

  1. 10

Тема
8. Сетевые инструментальные средства.

Базовые сведения о протоколе TCP/IP. FTP
соединение. Команды для работы с сетью:
ping, finder, traceroute, netconfig, netstat. Команды для
работы с удаленным соединением: rlogin,
rcp, rsh, ftp, rftp, rmdir, rwho.

  1. 11

Тема
9. Система управления версиями.
Принцип
и назначение работы CVS.
Типовой пример сохранения проекта.
Совместная работа над проектом.
Удаление проекта.

  1. 12

Тема
10. Компиляторы, библиотеки и
инструментальные средства
программирования.
Получение
информации info.
Компилятор C:
gcc.
Двоичные форматы. Назначение статических,
совместно используемых и динамических
библиотек. Символический отладчик
gbd.
Утилита make.
Создание проекта с помощью makefile.

  1. 13,
    14

Тема
11.
Shell
программирование
.
Shell – сценарии. Переменные и сценарии.
Аргументы командной строки сценария.
Экспорт переменных. Арифметические
операции. Управляющие конструкции.

  1. 15

Тема
12. Основные сведения Perl.

Выполнение Perl сценариев из командной
строки. Сценарии Perl. Модули Perl. Ввод и
вывод в Perl. Дескрипторы Perl.

  1. 16

Тема
13. Утилита gawk.

Команда gawk. Поиск по шаблоны и специальные
символы. Переменные, операторы и
массивы. Использование шаблона в
качестве условия. Файлы инструкции
gawk. Управляющие структуры.

  1. 17

Тема
14. Основные сведения Tcl.

Сценарии и интерпретатор. Выражение,
встроенные команды. Переменные. Массивы
и списки. Ввод и вывод.

    1. ЛАБОРАТОРНЫЕ
      ЗАНЯТИЯ

  1. 1

Изучение
команд командного интерпретатора
BASH
в ОС Linux

  1. 2

Назначение
прав доступа на объекты ОС Linux.

  1. 3

Поиск
и сортировка данных в ОС Linux.

  1. 4

Архивирование
данных и управление системными
процессами ОС Linux.

  1. 5

Программирование
в Shell.

  1. 6

Программирование
в среде Perl.

  1. 7

Программирование
в среде Gawk.

  1. 8

Программирование
в среде TCL/TK.

кафедра
ИЭМС

  1. Карта обеспеченности
    студентов учебной литературой

на 2006-2007
уч.года

Дисциплина Физические
основы элементной базы ЭВС

Операционная система
Linux

Лектор
Козлов А.В.

Группы ЭКТ-55 ( 1 семестр)

Количество
студентов 20 чел.

Шифр

Авторы,
название

Год
изд. Изд-во

Наличие
по каталогу

аб.

фил.

ч.з.

каф.

эл.

1.

044.451.

П-293

Петерсен
Р. Linux.
Полное руководство.: Перевод с
английского.

Киев:

BHV:

Ирина¸
2000

2

2.

004.451.9

Померанц
О. Ядро Linux.
Программирование модулей. Перевод с
английского.

М.:

Кудиц-образ,

2000

1

3.

004.451
(033)

Р-358

Рейчард
К. Linux.
Справочник. Перевод с английского.

СПб.:

Питер,

1999

3

4.

004.056

X-257

Хатч
Б. Секреты хакеров. Безопасность Linux
– готовые решения. Перевод с английского.
/ Б. Хатч, Ли Дж., Курц Дж.

М.:

Вильямс,
2002

1

Лектор Козлов
А.В.

Зам. зав.
кафедрой Крупкина Т.Ю.

Соседние файлы в папке LINUX

  • #
  • #
  • #
  • #
  • #
  • #
  • #

Данная книга представляет собой великолепное руководство по Linux, позволяющее получить наиболее полное представление об этой операционной системе. Книга состоит из трех частей, каждая из которых раскрывает один из трех основных аспектов работы с Linux: Linux для пользователя, сетевые технологии Linux (и методика настройки Linux-сервера), программирование Linux. В книге охвачен очень широкий круг вопросов, начиная с установки и использования Linux «в обычной жизни» (офисные пакеты, игры, видео, Интернет), и заканчивая описанием внутренних процессов Linux, секретами и трюками настройки, особенностями программирования под Linux, созданием сетевых приложений, оптимизацией ядра и др.

Изложение материала ведется в основном на базе дистрибутивов Fedora Cora (Red Hat) и Mandriva (Mandrake). Однако не оставлены без внимания и другие дистрибутивы SuSe, Slackware, Gentoo, Alt Linux, Knоppix. Дается их сравнительное описание, a по ходу изложения всего материала указываются их особенности.

Книга написана известными специалистами и консультантами по использованию Linux, авторами многих статей и книг по Linux, заслуживших свое признание в самых широких Linux-кругах. Если вы желаете разобраться в особенностях Linux и познать ее внутренний мир, эта книга — ваш лучший выбор.

libcats.org

Главная

Обложка книги Linux полное руководство

Linux полное руководство

Скачать книгу бесплатно (pdf, 80.49 Mb)


Читать «Linux полное руководство»

Популярные книги за неделю:

#1

Ф.И.Бурдейный, Н.В.Казанский. Карманный справочник радиолюбителя-коротковолновика (1959, DjVu)

440 Kb

#2

Я.Войцеховский. Радиоэлектронные игрушки (1977, djvu)

13.76 Mb

#3

Подготовка саперов, подразделений специального назначения по разминированию

Категория: Научно-популярная литература (разное)

1.49 Mb

#4

Приспособления для ремонта автомобилей

Росс Твег

Категория: civil, civil, transport

7.37 Mb

#5

128 советов начинающему программисту

Очков В.Ф., Пухначев Ю.В.

Категория: computers, computers, prog

8.91 Mb

#6

Английский язык в картинках

I.A. Richards; Christine M. Gibson

Категория: Иностранные языки

5.77 Mb

#7

Ограждение участка. Ограды. Заборы. Калитки. Ворота

В.И.Рыженко

Категория: Строительство

1.23 Mb

#8

Самоделки школьника

Тарасов Б.В.

Категория: science, science, technical, hobby, oddjob

41.91 Mb

#9

Фаллос. Священный мужской образ

Юджин Моник

Категория: НАУЧНО-ПОПУЛЯРНОЕ, ЧЕЛОВЕК

3.37 Mb

#10

Наука и жизнь.Маленькие хитрости

Категория: E_Engineering, EM_Mechanics of elastic materials

3.50 Mb

Только что пользователи скачали эти книги:

#1

Крушение власти и армии. (Февраль-сентябрь 1917 г.)

Деникин Антон Иванович

Категория: Биографии и Мемуары

1.66 Mb

#2

Персептроны

Минский М., Пейперт С.

Категория: Computer science, Genetic, neural

4.12 Mb

#3

Уравнения и краевые задачи теории пластичности и ползучести

Писаренко Г.С., Можаровский Н.С.

Категория: Physics, Classical physics, Elastic media

11.77 Mb

#4

Лечение чистотелом

Костина Лидия Александровна

Категория: Здравоохранение. Медицинские науки

4.76 Mb

#5

Программирование в алгоритмах

Окулов С. М.

Категория: Компьютерная литература, 12 разное, Основы программирования, алгоритмы, теория

5.23 Mb

#6

Практика программирования USB

Агуров П.В

Категория: Языки программирования

6.03 Mb

#7

Cinema 4D 10. Основные инструменты и рабочая среда для професионалов

58.33 Mb

#8

Литература и язык. Современная иллюстрированная энциклопедия

А.П. Горкин

Категория: ГУМАНИТАРНЫЕ НАУКИ

14.71 Mb

#9

Сборник задач по физике

Р.И. Грабовский.

Категория: ЕСТЕСТВЕННЫЕ НАУКИ

16.98 Mb

#10

Поршневые двигатели внутреннего сгорания. Дефекты работы двигателей.

Ответственный редактор выпуска Ю.А.Степанов.

275 Kb

———————————————————
>>> СКАЧАТЬ ФАЙЛ <<<
———————————————————
Проверено, вирусов нет!
———————————————————

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Полное руководство, 3-е издание (+2CD) по выгодным ценам оптом и в розницу вы можете у нас. Доставка по всей России. ISBN 966-552-046-6. Ричард. — Книги | Руководство администратора Linux | Эви Немет, Гарт. Linux. Полное руководство | Ричард Петерсен | | Полное руководство | Купить. Книжка Running Linux , в русском переводе Запускаем Линукс , O Reily, с ковбоем на. Ричард Петерсен. LINUX. Полное руководство. Название: LINUX: полное руководство. Год выпуска: 2006 Автор: Колисниченко Д.Н., Аллен Питер. Установка и конфигурирование Linux (+ 2 CD — ROM), 1999. в продаже ее нет. Ричард Петерсен Linux. Полное руководство, 2000 Ричард Петерсен Энциклопедия Linux. Наиболее полное и подробное руководство (+ 2 CD-ROM) (Linux: The Complete Reference), Твердый переплет. Руководство разработчика, Твердый переплет, 2001. Данная книга в. Linux. Полное руководство, Ричард Петерсен Linux. Полное руководство, 2000. Великолепное руководство по Linux, позволяющее получить довольно полное представление об этой операционной системе. Ссылки на документацию, книги, руководства, manpages, и т.д. Ричард Петерсен LINUX: руководство по операционной системе , перевод с английского С.М.Тимачева, изд. BHV, Киев, 2-ое. Полное справочное руководство. Это руководство описывает использование и простую настройку редактора. Ричард Кинг, Джеймс Кларк, Майк Кларксон, Глин Клементс, Дэвид. Петерсен, Кристиан Плонт, Франческо Поторти, Майкл Д. Прандж. Чтобы просмотреть полное имя команды и документацию к пункту меню, напечатайте. внутри учебной группы, более полное овладение учебным материалом. Ричард Петерсен LINUX: руководство по операционной системе перевод с. Название: Red Hat Enterprise Linux 7: Desktops and Administration Автор: Richard Petersen Страниц: 1156. Формат: AZW3, PDF Размер: 13,6 mb. В приложении было дано полное содержание прилагаемого диска с. Р. Петерсен, LINUX: Руководство по операционной системе , Пеp. с англ. Патрик Фолькердинг, Кевин Ричард и Эрик Фостер-Джонсон. Это самое полное руководство пользователя по графической оболочке. Ричард Петерсен Linux: руководство по операционной системе — эта книга. Краткое руководство по установке Gentoo Linux x86 138. HOWTO Полное обновление системы 340. В 1983 году Ричард Столлмэн объявил о создании проекта GNU попытки создания свободной UNIX-подобной операционной. 2.2 Марк-Кристиан Петерсон (раньше Элан Кокс). отклик на событие) типа UNIX или Linux, которая позволяет выполнять программы. полного набора приложений Internet и полнофункциональный. LINUX: руководство по операционной системе , Ричард Петерсен, перевод с английского С.М.Тимачева под редакцией М.В.Коломыцева. Arabic Coins And How To Read Them by Richard J. , 17,1 MB. Running Linux. L. Paterson — Weapons of Desperation- German Frogmen and Midge- Submarines of the Second World . Полное руководство.djvu, 13 ,2 MB. Регулярные обновления 333 Обновление Gentoo Linux 336 Руководство по. Инструкции по обновлению профилей 338 HOWTO Полное обновление. Свободные UNIX-подобные операционные системы В 1983 году Ричард. Версии Сопроводители 2.0 Дэвид Виенхал 2.2 Марк-Кристиан Петерсон. Торпедные катера типа Schnellboot подсерии S-100 история создания, технические характеристики, вооружение и фото торпедных. Oracle (Oracle Corporation) американская транснациональная корпорация, второй по. В середине 1979 года авиабаза Райт-Патерсон ВВС США приобрела. Hat Enterprise Linux Oracle Linux, чем пошатнула биржевые котировки Red. Между руководством корпорации обязанности распределяются.

image Привет, Хаброжители! Международный бестселлер «Командная строка Linux» поможет преодолеть путь от первых робких щелчков по клавишам до уверенного создания полноценных программ для последней версии bash — наиболее популярной командной оболочки Linux. Второе издание рассказывает о новых возможностях bash 4.x, таких как новые операторы перенаправления и операции подстановки. Вы освоите неустаревающие навыки владения командной строкой: навигацию по файловой системе, настройку окружения, объединение команд в цепочки и сопоставление с регулярными выражениями. Вы постигнете философию, лежащую в основе многих инструментов командной строки, разберетесь с богатым наследием, полученным от суперкомпьютеров с Unix, и приобщитесь к знаниям, накопленным поколениями гуру, исключивших мышь из своего арсенала инструментов. Преодолев первый «шок командной оболочки», вы поймете, насколько естественным и логичным является этот способ взаимодействия с компьютером.

Отрывок. Глава 25. Начало проекта

В этой главе мы приступаем к созданию программы. Цель данного проекта — показать, как можно использовать разные возможности командной оболочки для создания программ и, что особенно важно, для создания хороших программ.

Далее мы напишем генератор отчетов. Он будет выводить разнообразную информацию о системе и ее состоянии в формате HTML, благодаря чему ее можно будет просматривать в веб-браузере.

Обычно создание программ выполняется в несколько этапов, на каждом из которых добавляются новые функции и возможности. По окончании первого этапа наша программа будет воспроизводить минимальную HTML-страницу без какой-либо информации. Эту информацию мы добавим на следующих этапах.

Этап первый: минимальный документ

Прежде всего, определим, как выглядит формат правильно сформированного HTML-документа. Он имеет следующий вид:

<html>
       <head>
           <title>Заголовок страницы</title>
       </head>
       <body>
               Тело страницы.
        </body>
</html>

Если ввести этот текст в текстовом редакторе и сохранить в файле с именем foo.html, мы сможем открыть его, введя следующий адрес URL в Firefox: file:///home/username/foo.html.
На первом этапе создадим программу, которая будет выводить эту разметку HTML в стандартный вывод. Написать такую программу очень просто. Откройте текстовый редактор и создайте файл с именем ~/bin/sys_info_page:

[me@linuxbox ~]$ vim ~/bin/sys_info_page

А затем введите следующую программу:

#!/bin/bash
# Программа вывода страницы с информацией о системе
echo "<html>"
echo "  <head>"
echo "         <title>Page Title</title>"
echo "  </head>"
echo "  <body>"
echo "          Page body."
echo "  </body>"
echo "</html>"

Наша первая версия содержит строку-шебанг (shebang), комментарий (можно только приветствовать) и последовательность команд echo, по одной для вывода каждой строки. После сохранения файла сделайте его выполняемым и попробуйте запустить:

[me@linuxbox ~]$ chmod 755 ~/bin/sys_info_page
[me@linuxbox ~]$ sys_info_page

После запуска на экране должен появиться текст HTML-документа, потому что команды echo в сценарии посылают свои строки в стандартный вывод. Запустите программу снова и перенаправьте вывод программы в файл sys_info_page.html, чтобы затем посмотреть результат в веб-браузере:

[me@linuxbox ~]$ sys_info_page > sys_info_page.html
[me@linuxbox ~]$ firefox sys_info_page.html

Пока все идет неплохо.

Разрабатывая программы, всегда следует помнить о простоте и ясности. Сопровождение дается проще, когда программа легко читается и доступна для понимания, не говоря уже о том, что программу легче писать, когда есть возможность уменьшить объем ручного ввода. Текущая версия программы работает замечательно, но ее можно упростить. Если объединить все команды echo в одну, это определенно упростит в будущем добавление новых строк в вывод программы. Поэтому изменим программу, как показано ниже:

#!/bin/bash

# Программа вывода страницы с информацией о системе

echo "<html>
        <head>
                <title>Page Title</title>
        </head>
        <body>
                Page body.
        </body>
</HTML>"

Строки в кавычках могут включать символы перевода строки и, соответственно, содержать несколько строк текста. Командная оболочка будет продолжать читать текст, пока не встретит закрывающую кавычку. Это правило действует также в командной строке:

[me@linuxbox ~]$ echo "<html>
>         <head>
>                 <title>Page Title</title>
>         </head>
>         <body>
>                 Page body.
>         </body>
> </html>"

Символ > в начале каждой строки — это приглашение к вводу командной оболочки, определяемое ее переменной PS2. Оно появляется всякий раз, когда происходит ввод многострочной инструкции. Эта особенность пока малопонятна, но потом, когда мы познакомимся с многострочными программными инструкциями, ее преимущества станут очевидными.

Этап второй: добавление некоторых данных

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

#!/bin/bash

# Программа вывода страницы с информацией о системе
echo "<html>

        <head>
                <title>System Information Report</title>
        </head>
        <body>
                <h1>System Information Report</h1>
        </body>
</html>"

Здесь добавлено название страницы и заголовок в теле отчета.

Переменные и константы

В нашем сценарии возникла проблема. Обратили внимание, что строка System Information Report повторяется дважды? Вообще, для такого крохотного сценария это не такая большая проблема, но представьте по-настоящему длинный сценарий, в котором эта строка повторяется много раз. Если в таком сценарии понадобится изменить название, придется внести изменения во множестве мест, а это масса ручной работы. Можно ли изменить сценарий так, чтобы строка определялась в нем только один раз? Это существенно упростило бы сопровождение сценария в будущем. Да, это возможно, например, так:

#!/bin/bash

# Программа вывода страницы с информацией о системе

title="System Information Report"

echo "<html>
        <head>
                <title>$title</title>
        </head>
        <body>
                <h1>$title</h1>
        </body>
</html>"

Создав переменную с именем title и присвоив ей значение System Information Report, мы воспользовались преимуществами подстановки параметров и поместили строку во множество мест.

Но как создать переменную? Просто — достаточно использовать ее. Когда командная оболочка встречает переменную, она автоматически создает ее. Этим она отличается от многих языков программирования, в которых переменные должны явно объявляться или определяться до ее использования. Командная оболочка слишком либеральна в этом отношении, что в итоге приводит к некоторым проблемам. Например, рассмотрим следующий сценарий, выполненный в командной строке:

[me@linuxbox ~]$ foo="yes"
[me@linuxbox ~]$ echo $foo
yes
[me@linuxbox ~]$ echo $fool

[me@linuxbox ~]$

Мы сначала присвоили значение yes переменной foo и затем вывели ее значение командой echo. Далее, мы попробовали вновь вывести значение переменной, но допустили опечатку, указав имя fool, и получили пустую строку. Такой результат объясняется тем, что командная оболочка благополучно создала переменную fool, встретив ее, и присвоила ей пустое значение по умолчанию. Из этого примера следует, что нужно внимательно следить за правописанием! Также важно понять, что в действительности произошло в этом примере. Из предыдущего знакомства с особенностями работы механизма подстановки мы знаем, что команда

[me@linuxbox ~]$ echo $foo

подвергается действию механизма подстановки параметров, в результате чего приобретает вид

[me@linuxbox ~]$ echo yes

С другой стороны, команда

[me@linuxbox ~]$ echo $fool

превращается в

[me@linuxbox ~]$ echo

На место пустой переменной ничего не подставляется! Это может вызвать ошибку в командах, требующих наличия аргументов. Например:

[me@linuxbox ~]$ foo=foo.txt
[me@linuxbox ~]$ foo1=foo1.txt
[me@linuxbox ~]$ cp $foo $fool
cp: после 'foo.txt' пропущен операнд, задающий целевой файл
По команде "cp --help" можно получить дополнительную информацию.

Мы присвоили значения двум переменным, foo и foo1. А затем попытались выполнить команду cp, но допустили опечатку в имени второго аргумента. После обработки механизмом подстановки команда cp получила только один аргумент, хотя требует двух.

Ниже приводятся несколько правил именования переменных:

  • Имена переменных могут состоять из алфавитно-цифровых символов (букв и цифр) и символов подчеркивания.
  • Первый символ в имени переменной может быть только буквой или символом подчеркивания.
  • Присутствие пробелов и знаков препинания в именах переменных не допускается.

Название переменная подразумевает значение, которое может изменяться, и во многих приложениях переменные именно так и используются. Однако переменная title в нашем приложении используется как константа. Константа, так же как переменная, имеет имя и содержит значение. Отличие лишь в том, что значение константы не изменяется. В приложении, осуществляющем геометрические расчеты, можно определить константу PI со значением 3.1415, вместо того, чтобы использовать это число по всей программе. Командная оболочка не различает константы и переменные; эти термины используются в основном для удобства программиста. Типичное соглашение — использовать буквы верхнего регистра для обозначения констант и буквы нижнего регистра для истинных переменных. Давайте изменим сценарий, приведя его в соответствие с этим соглашением:

#!/bin/bash

# Программа вывода страницы с информацией о системе

TITLE="System Information Report For $HOSTNAME"

echo "<html>
        <head>
                <title>$TITLE</title>
        </head>
        <body>
                <h1>$TITLE</h1>
        </body>
</html>"

Попутно мы дополнили название, добавив в конец значение переменной командной оболочки HOSTNAME. Это — сетевое имя машины.

ПРИМЕЧАНИЕ

В действительности командная оболочка имеет механизм, гарантирующий неизменяемость констант, в виде встроенной команды declare с параметром -r (read-only — только для чтения). Если переменной TITLE присвоить значение, как показано ниже:

declare -r TITLE="Page Title"

командная оболочка не допустит повторного присваивания значения переменной TITLE. Этот механизм редко используется на практике, но он имеется и его можно применять в особенно строгих сценариях.

Присваивание значений переменным и константам

Мы подошли к моменту, когда наше знание особенностей работы механизма подстановки начинает приносить свои плоды. Как мы видели, присваивание значений переменным производится так:

переменная=значение

где переменная — это имя переменной, а значение — строка. В отличие от некоторых других языков программирования, командная оболочка не заботится о типах значений, присваиваемых переменным; она все значения интерпретирует как строки. Существует возможность заставить командную оболочку ограничить круг присваиваемых значений целыми числами, задействовав команду declare с параметром -i, но, как и объявление переменных, доступных только для чтения, эта возможность редко используется на практике.

Обратите внимание на отсутствие пробелов в операторе присваивания между именем переменной, знаком «равно» и значением. А из чего может состоять значение? Из всего что угодно, что можно развернуть в строку.

a=z                 # Присвоит переменной a строку "z".
b="a string"        # Внутренние пробелы должны находиться в кавычках.
c="a string and $b" # При присваивании допускается выполнять подстановку,
                    # например, значений других переменных.
d=$(ls -l foo.txt)  # Результат выполнения команды.
e=$((5 * 7))        # Подстановка результата арифметического выражения.
f="tta stringn"  # Экранированные последовательности, такие как
                    # символы табуляции и перевода строки.

В одной строке можно выполнить присваивание сразу нескольким переменным:

a=5 b="a string"

При использовании подстановки имена переменных можно заключать в необязательные фигурные скобки {}. Это пригодится в том случае, когда имя переменной становится неоднозначным в окружающем контексте. В следующем примере выполняется попытка переименовать файл myfile в myfile1 с использованием переменной:

[me@linuxbox ~]$ filename="myfile"
[me@linuxbox ~]$ touch $filename
[me@linuxbox ~]$ mv $filename $filename1
mv: после 'myfile' пропущен операнд, задающий целевой файл
По команде "mv --help" можно получить дополнительную информацию.

Эта попытка не увенчалась успехом, потому что командная оболочка интерпретировала второй аргумент команды mv как имя новой (и пустой) переменной. Ниже показано, как решается подобная проблема:

[me@linuxbox ~]$ mv $filename ${filename}1

Добавив фигурные скобки, мы гарантировали, что командная оболочка не будет интерпретировать последний символ 1 как часть имени переменной.

Примечание

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

Воспользуемся этой возможностью, чтобы добавить в отчет дополнительные данные, а именно дату и время составления отчета, а также имя пользователя, составившего отчет:

#!/bin/bash

# Программа вывода страницы с информацией о системе

TITLE="System Information Report For $HOSTNAME"
CURRENT_TIME=$(date +"%x %r %Z")
TIME_STAMP="Generated $CURRENT_TIME, by $USER"

echo "<html>
        <head>
                <title>$TITLE</title>
        </head>
        <body>
                <h1>$TITLE</h1>
                <p>$TIME_STAMP</p>
        </body>
</html>"

Встроенные документы

Мы рассмотрели два разных метода вывода текста, и оба используют команду echo. Однако существует еще один, третий метод, который называется встроенным документом (here document), или встроенным сценарием (here script). Встроенный документ — это дополнительная форма перенаправления ввода/вывода, которая передает текст, встроенный в сценарий, на стандартный ввод команды. Действует это перенаправление так:

команда << индикатор
текст
индикатор

где команда — это имя команды, принимающей указанный текст через стандартный ввод, а индикатор — это строка, отмечающая конец встроенного текста. Изменим сценарий, задействовав в нем встроенный документ:

#!/bin/bash

# Программа вывода страницы с информацией о системе

TITLE="System Information Report For $HOSTNAME"
CURRENT_TIME=$(date +"%x %r %Z")
TIME_STAMP="Generated $CURRENT_TIME, by $USER"

cat << _EOF_
<html>
        <head>
                <title>$TITLE</title>
        </head>
        <body>
            <h1>$TITLE</h1>
            <p>$TIME_STAMP</p>
        </body>
</html>
_EOF_

Теперь вместо команды echo в сценарии используются команда cat и встроенный документ. На роль индикатора была выбрана строка _EOF_ (означает end-of-fileконец файла, распространенное соглашение), и она отмечает конец встроенного текста. Обратите внимание, что строка-индикатор должна находиться в отдельной строке, одна, и за ней не должно следовать никаких пробелов.

Но какие преимущества дало использование встроенного документа здесь? Практически никаких, кроме того, что кавычки внутри встроенных документов теряют свое специальное значение для командной оболочки. Ниже приводится пример использования встроенного документа в командной строке:

[me@linuxbox ~]$ foo="some text"
[me@linuxbox ~]$ cat << _EOF_
> $foo
> "$foo"
> '$foo'
> $foo
> _EOF_
some text
"some text"
'some text'
$foo

Как видите, командная оболочка не обращает никакого внимания на кавычки. Она интерпретирует их как обычные символы. Благодаря этому мы свободно вставляем кавычки во встроенные документы. Этим обстоятельством можно воспользоваться при разработке программ составления отчетов.

Встроенные документы можно использовать с любыми командами, принимающими данные со стандартного ввода. В следующем примере встроенный документ используется для передачи последовательности команд программе ftp, чтобы загрузить файл с удаленного FTP-сервера:

#!/bin/bash

# Сценарий загрузки файла через FTP

FTP_SERVER=ftp.nl.debian.org
FTP_PATH=/debian/dists/stretch/main/installer-amd64/current/images/cdrom
REMOTE_FILE=debian-cd_info.tar.gz

ftp -n << _EOF_
open $FTP_SERVER
user anonymous me@linuxbox
cd $FTP_PATH
hash
get $REMOTE_FILE
bye
_EOF_
ls -l $REMOTE_FILE

Если заменить оператор перенаправления << на <<-, командная оболочка будет игнорировать начальные символы табуляции во встроенном документе. Благодаря этому во встроенный документ можно добавить отступы для большей удобочитаемости:

#!/bin/bash

# Сценарий загрузки файла через FTP

FTP_SERVER=ftp.nl.debian.org
FTP_PATH=/debian/dists/stretch/main/installer-amd64/current/images/cdrom
REMOTE_FILE=debian-cd_info.tar.gz

ftp -n <<- _EOF_
        open $FTP_SERVER
        user anonymous me@linuxbox
        cd $FTP_PATH
        hash
        get $REMOTE_FILE
        bye
        _EOF_
ls -l $REMOTE_FILE

Однако пользоваться этой особенностью не всегда удобно, потому что для оформления отступов многие текстовые редакторы (и сами программисты) предпочитают использовать символы пробела вместо символов табуляции.

Заключение

В этой главе мы приступили к разработке проекта, при помощи которого пройдем через все этапы создания сценария. Мы познакомились с переменными и константами и особенностями их использования. Они чаще других программных компонентов применяются для подстановки. Мы также увидели, как организовать вывод информации в сценарии, и познакомились с разными методами встраивания блоков текста.

Об авторе

Уильям Шоттс (William Shotts) — профессиональный разработчик программного обеспечения с более чем 30-летним стажем, который уже больше 20 лет активно пользуется операционной системой Linux. Имеет богатый опыт разработки программного обеспечения, технической поддержки, контроля качества и написания документации. Также является создателем LinuxCommand.org, образовательного и информационно-просветительского сайта, посвященного Linux, где публикуются новости, обзоры и оказывается поддержка пользующимся командной строкой Linux.

О научном редакторе

Жорди Гутьеррес Эрмосо (Jordi Gutiérrez Hermoso) — программист, математик и сторонник этичного хакерства. С 2002 года пользуется исключительно Debian GNU/Linux не только дома, но и на работе. Жорди участвует в разработке GNU Octave, бесплатной вычислительной среды, во многом совместимой с Matlab, а также Mercurial, распределенной системы управления версиями. Увлекается чистой и прикладной математикой, катанием на коньках, плаванием и вязанием. В последнее время много думает о проблемах выброса парниковых газов и участвует в акциях по спасению носорогов.

» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок

Для Хаброжителей скидка 25% по купону — Linux

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.


Скачать


Linux в наше время весьма популярен как у обычных пользователей, так и у крупных корпораций — таких как Microsoft, IBM и т.д. Эта книга содержит в себе как теоретические, так и практические материалы, т.е. теория и практика будут объединены в одно целое — не будет отдельных больших и скучных теоретических глав.

Книгу можно разделить на четыре части. В первой части мы поговорим об установке системы, рассмотрим вход и завершение работы, выполним кое-какие действия по настройке системы, рассмотрим основы командной строки.
Вторая часть посвящена настройкам Интернета, установке программного обеспечения, и обзору популярных программ для Linux — вы узнаете не только, как устанавливать программы, но и какую программу установить, что не менее важно. В третьей части будет подробно рассмотрено локальное администрирование в Linux: управление файловыми системами; загрузка операционной системы; системные процессы и основные группы пользователей.
Ну и, конечно, какой Linux без сервера? Четвертая часть посвящена вопросам администрирования Linux-сервера в локальной сети — будет показано, как настроить серверы DNS, SSH, DHCP, FTP; поговорим об интеграции сервера в Windows-сеть; о безопасности сервера; а также настроим брандмауэр и научимся защищать сервер от сетевых атак.

Год: 2021
Серия Полное руководство
Жанр: Компьютерная литература
Формат: PDF
Качество: Изначально электронное (ebook)
Язык: Русский
Страниц 481
Размер: 61.8 Мб

Скачать LINUX. Полное руководство по работе и администрированию


Скачать


Понравилась статья? Поделить с друзьями:
  • Анальгин ультра инструкция по применению цена отзывы аналоги цена
  • Инструкция по охране труда генерального директора 2022
  • Мазь цитогеликс инструкция по применению цена
  • Ritmix gp 032bth инструкция подключения на андроид
  • Мельдоний инструкция по применению цена капсулы 250мг взрослым