aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This...

41
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Университет ИТМО» Учебно-методические указания к лабораторной работе №2 по курсу Введение в специальность Введение в Linux и систему команд. Санкт-Петербург 2017 г.

Transcript of aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This...

Page 1: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Университет ИТМО»

Учебно-методические указания к

лабораторной работе №2 по курсу Введение в специальность

Введение в Linux и систему команд.

Санкт-Петербург 2017 г.

Page 2: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Linux Введение в и систему командДанные учебно-методические указания содержат теоретический материал

необходимый для выполнения лабораторной работы №2 «Введение в Linux и систему команд» по курсу Введение в специальность для бакалавров направления 210700 «Инфокоммуникационные технологии и системы связи». В частности, рассматриваются понятие, функции, состав и виды операционной системы Linux, файловые системы, а также основы работы в ОС Linux (интерфейс пользователя, система команд).

Введение

С момента своего создания в 1991 году Линусом Торвальдсом, Linux превратилась в основную движущую силу в компьютерных вычислениях - обеспечивая системы от Нью-Йоркской фондовой биржи, до мобильных телефонов, суперкомпьютеров и пользовательских устройств.

Линус Торвальдс был студентом в Хельсинки, Финляндия, в 1991 году, когда он начал проект: написание своего собственного ядра операционной системы. Он также собрал вместе и / или разработал другие необходимые ингредиенты, требуемые для построения всей операционной системы с его ядром в центре. Результат вскоре стал известен как ядро Linux.

В 1992 году Linux был вновь лицензирован, используя General Public License (GPL) на GNU (проект Фонда свободного программного обеспечения (Free Software Foundation - FSF), который способствует свободно доступному программному обеспечению), который позволил построить мировое сообщество разработчиков. Объединив ядро с другими компонентами системы от проекта GNU, другие многочисленные разработчики создали полные системы, называемые Дистрибутивами Linux в середине 90-х годов.

Linux многое заимствует из операционной системы UNIX, потому что она была написана со свободными и открытыми версия исходных текстов UNIX. Файлы хранятся в иерархической файловой системы, с верхним корневым узлом системы или просто "/". Всякий раз, когда это возможно, Linux делает его компоненты доступными через файлы или объекты, которые выглядят как файлы. Процессы, устройства и сетевые сокеты все представляются объекты подобные файлам, и могут часто быть обработаны с использованием тех же утилит, используемые для обычных файлов.

Linux является полностью многозадачной (метод, когда выполняются несколько задач в течение того же периода времени), многопользовательской операционной системой, со встроенным сетевыми и сервисными процессами, известными как демонов (daemons) в мире UNIX.

Различные дистрибутивы Linux могут быть основаны на различных версиях ядра. Например, очень популярный дистрибутив RHEL 6 основан на версии 2.6.32 ядра Linux, которая является довольно старой, но чрезвычайно стабильной. Другие дистрибутивы могут продвигаться быстрее в принятии новейших версиях ядра. Важно отметить, что ядро не является предложением "все или ничего", например, RHEL 6 вобрал многие из последних усовершенствований ядра в его версии 2.6.32.

Примеры других необходимых инструментов и ингредиентов, предоставляемые дистрибутивами включают C/С ++, отладчик GDB, ядро приложений системных библиотек, необходимых для выполнения, низкоуровневый интерфейс для рисования графики на экране, а также высокоуровневую среду рабочего стола и систему для установки и обновления различных компонентов, включая само ядро.

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

Page 3: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

конкретных потребностей. Крупные коммерческие организации, как правило, предпочитают коммерчески поддерживаемые дистрибутивы от Red Hat, SUSE и Canonical (Ubuntu ) .

CentOS является популярной бесплатной альтернативой Red Hat Enterprise Linux (RHEL). Ubuntu и Fedora популярны в области образования. Scientific Linux благоприятствует научно-исследовательским сообществам в части его совместимости с научно- математических пакетов программного обеспечения. И CentOS и Scientific Linux являются бинарно совместимыми с RHEL (т.е код программы является перемещаемым между различными ОС); т.е. бинарные пакеты программного обеспечения в большинстве случаев можно установить должным образом через дистрибутивы .

Многие коммерческие поставщики, в том числе Red Hat, Ubuntu, SUSE и Oracle обеспечивают долгосрочную платную поддержку для своих дистрибутивов, а также сертификации аппаратного и программного обеспечения. Все основные поставщики предоставляют обновления услуг для поддержания инсталляции своей системы с последними технологиями безопасности, исправлением ошибок и повышения производительности , а также обеспечивают онлайн-ресурсы поддержки. Ниже представлена упрощенная генеалогия дистрибутивов Linux.

Linux FoundationОрганизацияОрганизация Linux Foundation является некоммерческой организацией, которая

спонсирует работу создателя Linux Линуса Торвальдса. Организация была основана в 2000 году и ее миссия заключается в поддержке, защите и продвижении Linux. Организация Linux Foundation поддерживается ведущими технологическими компаниями и тысячами индивидуальных членов из разных стран мира и предоставляет ресурсы своих членов и сообщества разработки открытого исходного кода для того, чтобы Linux оставался свободным и технически совершенствовался.

Организация Linux Foundation действует по нескольким направлениям. В дополнение к своей основной миссии охраны, продвижения и совершенствования Linux, Фонд:

Проводит технические мероприятия по всему миру. Разрабатывает и осуществляет учебные программы. Поддерживает крупные совместные проекты и промышленные инициативы. Управляет kernel.org, где выпускаются официальные версии ядра Linux. Ведет популярный сайт linux.com.

LinuxФайловая системаПредставьте себе холодильник (на рис. ниже), который имеет несколько полок,

которые можно использовать для хранения различных предметов. Эти полки помогают

Page 4: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

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

Linux поддерживаются различные типы файловых систем:

Обычные дисковые файловые системы: ext2, ext3, ext4, XFS, Btrfs, JFS, NTFS и т.д. Файловые системы для Flash storage: ubifs, JFFS2, YAFFS и т.д. Файловые системы баз данных Файловые системы специального назначения: PROCFS, Sysfs, TMPFS, debugfs, и т.д.

Ниже рассматривается стандартная файловая структура, которая используется большинством дистрибутивов Linux.

Разделы и файловые системы

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

Сравнение файловых систем в ОС Windows и Linux приведены в следующей таблице:

  Windows Linux

Раздел (Partition) Disk1 /dev/sda1

Тип файловой системы NTFS/FAT32 EXT3/EXT4/XFS...

Параметры монтирования

DriveLetter Точка монтирования

Page 5: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Основной каталог, где располагается ОС

C drive /

Стандартная иерархическая файловая система

Системы Linux хранят свои важные файлы в соответствии со стандартным расположением под названием Стандартная иерархическая файловая система, или Filesystem Hierarchy Standar - FHS. Этот стандарт гарантирует, что пользователи могут перемещаться между дистрибутивами Linux без переобучения организации и возможностей файловой системы.

Linux использует символ '/' для разделения путей (в отличие от Windows, который использует '\'), и не имеет буквы диска. Новые диски монтируются как каталоги в единой файловой системе, часто в /media (так, например, CD-ROM диск с меткой FEDORA может в конечном итоге найти на /media/Fedora, и файл readme.txt на этом диске будет в /media/FEDORA/README.txt) .

Ниже представлена стандартная иерархическая файловая система.

В зависимости от специфики политики конкретного дистрибутива, программы и программные пакеты могут быть установлены в различных каталогах. Обычно, исполняемые программы должны находиться в каталогах /bin, /usr/bin,/sbin,/usr/sbin или /opt.

Один из способов найти программы состоит в использовании утилиты which. Например, чтобы выяснить, где именно Находится программа diff в файловой системе:

$ which diff

Page 6: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

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

$ whereis diff

Все имена файловой системы Linux чувствительны к регистру, поэтому /boot, /Boot, и /BOOT представляют три различные каталога (или папки - folder). Многие дистрибутивы различаются набором базовых утилит (программ, поддерживаемых работу операционной системы), необходимых для правильной работы системы и других программ, и размещают их в каталогах под /usr (представляйте "user").

Чтобы получить представление о том, как организованы другие программы, найдите каталог /usr в диаграмме выше и сравните подкаталоги с теми, которые существуют непосредственно в корневом каталоге системы (/).

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

https :// www . youtube . com / watch ? v =4 HZIRqah 8 bk - Просмотр Filesystem Hierarchy с помощью Graphical Interface в Ubuntu

https://www.youtube.com/watch?v=OSSgsq-_x6A Просмотр Filesystem Hierarchy с помощью Graphical Interface в openSUSE

https://www.youtube.com/watch?v=bjWvQNM0mZs Просмотр Filesystem Hierarchy с помощью Graphical Interface в CentOS

Попробуйте выполнить практическое задание в вашей Linux:1. Войдите в каталог /etc/avahi.2. Проверьте текущий путь (current path) каталога avahi, используя комбинацию клавиш

<Ctrl>-L.При работе с Linux можно использовать либо интерфейс командной строки

(Command Line Interface - CLI) или графический интерфейс пользователя (Graphical User Interface - GUI). При работе на CLI, вы должны помнить, какие программы и команды используются для выполнения задач, и как быстро и точно получить больше информации об их использовании и вариантах кодирования. С другой стороны, использование графического интерфейса обычно быстро и легко. Он позволяет взаимодействовать с вашей системой через

Page 7: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

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

В общем случае, можно управлять сеансами с помощью графического интерфейса для трех дистрибутивов семейства Linux, которые в большинстве случаев используются на практике: CentOS (семейство Fedora), OpenSUSE (семейство SUSE) и Ubuntu (семейство Debian). Как вы вскоре увидите, OpenSUSE использует KDE (конкретная реализация XWindow) вместо GNOME в качестве менеджера рабочего стола по умолчанию. Если используется KDE, то опыт будет несколько отличаться от того, что показывается в GNOME. Ниже на рисунке представлены возможные конфигурации графического интерфейса для разных дистрибутивов:

В основе графического взаимодействия Unix лежит X Window System, которая обеспечивает базовые функции графической среды: отрисовку и перемещение окон на экране, взаимодействие с устройствами ввода, такими как, например, мышь и клавиатура. X Window System не определяет деталей интерфейса пользователя— этим занимаются менеджеры окон, которых разработано множество. По этой причине внешний вид программ в среде X Window System может очень сильно различаться в зависимости от возможностей и настроек конкретного оконного менеджера.

В X Window System предусмотрена сетевая прозрачность: графические приложения могут выполняться на другой машине в сети, а их интерфейс при этом будет передаваться по сети и отображаться на локальной машине пользователя (в случае, если это разрешено в настройках). В контексте X Window System термины «клиент» и «сервер» имеют непривычное для многих пользователей значение: «сервер» означает локальный дисплей пользователя (дисплейный сервер), а «клиент»— программу, которую этот дисплей использует (она может выполняться на удалённом компьютере).

Page 8: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

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

Оконный менеджер управляет размещением и внешним видом окон приложений. Он может создавать интерфейс, подобный Microsoft Windows или Macintosh (например, так работают оконные менеджеры Kwin в KDE и Metacity в GNOME), или совершенно другой стиль (например, во фреймовых оконных менеджерах, таких как Ion). Оконный менеджер может быть простым и минималистичным (как twm — базовый оконный менеджер, поставляемый с X), а может предлагать функциональность, близкую к полноценной рабочей среде (например, Enlightenment).

Многие системы используют X вместе с полной средой рабочего стола, которая включает в себя оконный менеджер, различные приложения и единый стиль интерфейса. Наиболее популярные среды рабочего стола —GNOME и KDE. В стандарте Single UNIX Specification указана среда Common Desktop Environment (CDE) — среда рабочего стола, основанная на Motif, в основном использовалась в проприетарных операционных системах UNIX, OpenVMS.

CDE разработана в The Open Group совместно с Hewlett-Packard, IBM, Novell и Sun Microsystems и основана на VUE(Visual User Environment) от HP.

Настраиваемая природа Linux позволяет отказаться (временно или постоянно) от графического интерфейса X Window, или запустить его после того, как система была загружена. Некоторые дистрибутивы Linux различают версии дистрибутива между desktop (с X) и сервера (как правило, без X); Рабочие сервера Linux, как правило, устанавливаются без X, и даже если он (X) установлен, как правило, не запускается во время запуска системы. Удаление X с производственного сервера может быть очень полезным в поддержании упрощенной системы, которую легче поддерживать и обеспечивать безопасность.

Рабочий стол GNOME (Desktop Environment)

GNOME является популярной средой рабочего стола с простым в использовании графическим интерфейсом пользователя. Рабочий стол представляется в виде настольной среды по умолчанию для многих дистрибутивов, включая Red Hat Enterprise Linux, Fedora, CentOS, SUSE Linux Enterprise и Debian. GNOME имеет навигацию на основе меню и иногда обеспечивает легкий переход, по крайней мере, некоторых пользователей Windows. Однако, можно заметить, внешний вид оказывается совершенно разным для разных дистрибутивов, даже если все они используют GNOME.

Еще одна распространенная среда рабочего стола очень важная в истории Linux, а также широко используемая является KDE, которая используется по умолчанию в OpenSUSE.

Другие альтернативы для настольной среды включают Unity (от Ubuntu, основанный на GNOME), Xfce, LXDE. Большинство сред рабочего стола имеют сходную структуру с GNOME.

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

https://www.youtube.com/watch?v=IHOiTIiRs6s- Вход и выход с помощью Graphical Interface в CentOS

https :// www . youtube . com / watch ? v = NVsyIwLMaZA Вход и выход с помощью Graphical Interface в openSUSE

https :// www . youtube . com / watch ? v =2 KE - GQjeIVw Вход и выход с помощью Graphical Interface в Ubuntu

Для поручения практических навыков входа и выхода в систему с использованием GUI попробуйте различные варианты для дистрибутивов.

Page 9: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Logging In and Logging Out using the GUI in CentOSLogging In and Logging Out using the GUI in openSUSELogging In and Logging Out using the GUI in Ubuntu

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

Page 10: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

LinuxКомандныйинтерфейсВ этом разделе мы займемся освоением командной строки Unix, которая является

основой операционной системы Linux. Как вы уже убедились, графическая система X Windows обеспечивает простой и быстрый доступ к графическим программам, существенно повышающим эффективность работы пользователя. Но часто при этом устраняется возможность полного управления системой Linux. Это становится очевидным в самом начале изучения системы команд.

Системные администраторы Linux проводят значительное количество времени, работая в командной строке. Они часто автоматизируют задачи и устраняют проблемы в этой текстовой среде. Существует поговорка, "графические интерфейсы делают легкие задачи легче, в то время как интерфейс командной строки делает возможными сложные задачи." Linux в значительной степени зависит от обилия инструментов командной строки. Интерфейс командной строки обеспечивает следующие преимущества:

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

В главе рассмотрены некоторые часто употребляемые команды: ls, find и grep. Поскольку это команды большинства дистрибутивов, пользователи Unix без труда определят их назначение и возможности, предоставляемые опытному пользователю.

Что такое команда Linux

Прежде чем перейти к рассмотрению конкретных команд, дадим определение команде. Пользователям, вышедшим из среды DOS, это понятие знакомо: команда - основа главных функций операционной системы. Из команд DIR, COPY или ATTRIB составляются довольно сложные процедуры, оформляемые в виде bat-файлов (командных файлов).

Однако в DOS, как и в других операционных системах, количество команд ограниченно и статично — пользователь не может вводить собственные команды.

В мире Unix (следовательно, и Linux) понятие команды несколько иное. Здесь команда - это любой выполняемый файл. Командой является любой файл, предназначенный для выполнения, а не для хранения данных или конфигурационных параметров. Любой выполняемый файл, записанный в систему, становится ее командой.

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

Page 11: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Выполнение команды Linux

Чтобы выполнить команду, введите ее в командной строке.$ <command> и нажать <Enter>Если файл команды не находится в каталогах вашего пути, введите команду с

указанием полного пути.$ /usr/bin/<command>Например:$ /usr/bin/Путь в Linux

Некоторых пояснений требует понятие пути (path). Каждому пользователю, вошедшему в систему, предоставляется путь по умолчанию. Узнать его можно с помощью команды

$ echo $РАТНРезультат ее выполнения может выглядеть примерно так:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Путь $PATH - список каталогов, разделенных двоеточиями. Если команда вводится без указания нуги, то происходит ее поиск (т.е. поиск соответствующего выполняемого файла) во всех каталогах пути по умолчанию. В приведенном выше примере, если команда guess есть и в каталоге /usr/local/bin и в каталоге /usr/bin, то выполнится та из них, которая расположена в каталоге /usr/local/bin. Если же вы хотите выполнить именно ту команду guess, которая расположена в каталоге usr/sbin, то вам придется указать полный путь, т.е. ввести команду /usr/bin/guess.

Обычные команды Linux

Количество команд, доступных в обычном дистрибутиве достаточно велико. Но даже высококвалифицированный пользователь постоянно пользуется лишь некоторыми командами.

Когда выполняются команды, по умолчанию существуют три стандартные потока файлов (или дескрипторов ) всегда открытые для использования : стандартный ввод (standard input )(standard in или stdin), стандартный вывод standard output (standard out или stdout ) и стандартный поток ошибок standard error (или stderr). Как правило, stdin является клавиатура,

Page 12: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

stdout и stderr выводятся на терминале; часто stderr перенаправляется в файл регистрации ошибок. stdin часто получает данные путем направления ввода, приходящего из файла или с выхода предыдущей команды через pipe (конвейер – это однонаправленный канал межпроцессного взаимодействия). stdout также часто перенаправляются в файл. Поскольку stderr содержит записанные сообщения об ошибках, часто ничего туда не направляется.

В Linux, все открытые файлы представляются внутренне путем так называемых файловых дескрипторов. Проще говоря , они представляются номерами, начинающимися с нуля. Дескриптором файла stdin является 0, stdout является 1 , и дескриптором файла stderr является 2 Как правило, если другие файлы открываются в дополнение к этим трем, которые открываются по умолчанию , они начнутся в файлового дескриптора 3 и по увеличению от этого значения.

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

Например, если у нас есть программа под названием do_something, которая считывает данные со стандартного входа и записывает на стандартный вывод и стандартный поток ошибок, мы можем изменить его источник с помощью знака меньше (< ) со следующим затем именем файла, который будет использоваться для ввода данных :

$ do_something < input-fileЕсли вы хотите отправить вывод в файл , используйте знак больше ( > ) ,например :$ do_something > output-fileПоскольку stderr не то же самое , как stdout, сообщения об ошибках по-прежнему

можно увидеть в терминальном окне.Если вы хотите перенаправить поток ошибок в отдельный файл, то используется

файловый дескриптор stderr номер 2, в знак больше ( > ) , за которым следует имя файла, который будет содержать все что команды записывают в стандартный поток ошибок :

$ do_something 2> error-file

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

su pwd, cd и ls cat more и less find, locate, whereis и grep tar и gzip man

su

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

Вы можете выйти из системы, вновь войти в нее как user2, затем, выполнив все, что

Page 13: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

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

Наконец, третий способ - использование команды su. Чтобы перейти на учетную пользователя user2, достаточно ввести команду:

$ su user2

после чего на экране появится строка ввода пароля пользователя user2:$ su user2password:Чтобы вернуться к учетной записи userl, введите команду:$ exitПолностью это будет выглядеть следующим образом:[userl@localhost userl]$ su user2 Password: [user2@ocalhost user1)$ <некоторые команды>[user2@localhost user1]$ exit[user1@localhost userl]$Обычно команда su используется для получения прав корневого пользователя (или

супер-пользователя с правами администратора),если предстоит выполнение административных задач - создание или редактирование учетных записей пользователей, конфигурирование сети или принтеров.

Если ввести команду su без имени пользователя, то система будет подразумевать имя root — администратора по умолчанию. После ввода пароля вы можете продолжить работу как корневой пользователь.

[userl@localhost userl]$ su Password: [root@localhost userl]#Войдя в систему как пользователь root, вы можете при помощи команды su без ввода

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

[root@localhost /root]#su userl[userl@localhost /root]$Команда su предоставляет много возможностей, используемых при решении сложных

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

Опробовать возможности с переходом между пользователями можно после выполнения процедуры создания и присвоения атрибутов еще одного пользователя(например, user2). Для этого следует последовательно выбрать на рабочем столе Menu|Администрирование|Пользователи и группы. В левой панели появившегося диалогового окна следует ввести имя пользователя (user2) и определить пароль для входа.

pwd, cd lsиБолее основательно мы ознакомимся с этими командами позже. Основное их

назначение — работа с каталогами и файлами.

Page 14: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Первая команда - pwd (аббревиатура от present working directory - текущий рабочий каталог). Набрав ее в командной строке и нажав Enter, можно узнать свой текущий каталог.

anatoly@anatoly-VirtualBox ~ $ pwd/home/anatoly

В примере команда pwd возвращает имя текущего каталога /home/anatoly. Следовательно, вы находитесь в исходном каталоге пользователя anatoly (это мой каталог).

Команда cd не только определяет текущее состояние каталога, но и изменяет его. По этой команде выполняется переход из текущего каталога в любой другой (доступный).

Вернемся к предыдущему примеру с текущим каталогом /home/anatoly. Воспользовавшись командой cd, перейдем в подкаталог Документы этого каталога.

anatoly@anatoly-VirtualBox ~ $ cd Документы/anatoly@anatoly-VirtualBox ~/Документы $

(Переключать клавиатуру между языками выполняется по умолчанию <Alt><Shift>). Если теперь ввести команду pwd, подтверждается переход в новый каталог. Аналогично выполняется переход в системный каталог временных файлов /tmp:

anatoly@anatoly-VirtualBox ~/Документы $ cd /tmpanatoly@anatoly-VirtualBox /tmp $ pwd/tmpanatoly@anatoly-VirtualBox /tmp $

Отличие сводится к наличию ведущей косой черты (/) перед названием каталога. Первая команда (cd Документы) ее не использует, поэтому адресация перехода выполняется по отношению к текущему каталогу (относительная адресация). Если выполнить точно такую же команду из исходного каталога user2 (/home/user2), то вы перейдете в каталог

/home/user2/Документы .А вторая команда (cd /tmp) использует ведущую косую черту. Такая команда позволяет

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

Наконец, команда ls предназначена для просмотра содержимого текущего каталога. Если ввести эту команду из каталога anatoly, от результат будет примерно следующим.

anatoly@anatoly-VirtualBox ~ $ lsВидео Загрузки Музыка Рабочий столДокументы Изображения Общедоступные Шаблоны

Обратите внимание на способ вывода на экран имен файлов и каталогов - в несколько столбцов. Ширина столбца определяется максимально длинным именем файла или каталога в нем.

Команда ls используется для вывода содержимого не только текущего, но и любого доступного каталога Для вывода содержимого каталога usr необходимо ввести команду ls /usr.

anatoly@anatoly-VirtualBox ~ $ ls /usrbin games include lib local sbin share srcВозникает вопрос: какой прок в указанной информации, если нельзя отличить

каталоги от файлов и не указаны объемы последних?Чтобы вывести дополнительную информацию, воспользуйтесь расширенным

форматом команды: ls -l (структура команд рассмотрена позже). Ниже показан результат ввода этой команды в том же исходном каталоге anatoly:

anatoly@anatoly-VirtualBox ~ $ ls -lитого 32drwxr-xr-x 2 anatoly anatoly 4096 мая 28 10:45 Видеоdrwxr-xr-x 2 anatoly anatoly 4096 мая 28 12:35 Документыdrwxr-xr-x 2 anatoly anatoly 4096 мая 28 10:45 Загрузкиdrwxr-xr-x 2 anatoly anatoly 4096 мая 28 10:45 Изображенияdrwxr-xr-x 2 anatoly anatoly 4096 мая 28 10:45 Музыка

Page 15: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

drwxr-xr-x 2 anatoly anatoly 4096 мая 28 10:45 Общедоступныеdrwxr-xr-x 2 anatoly anatoly 4096 мая 28 11:24 Рабочий столdrwxr-xr-x 2 anatoly anatoly 4096 мая 28 10:45 Шаблоны

Теперь у нас есть достаточно подробные сведения о каждом файле. Самые важные из них находятся слева от имени файла или каталога - дата последней модификации и (только для файлов) объем в байтах (1024 байт = 1 Кбайт).

Первый символ первого столбец указывает, что приведено в этой строке: каталог (d) или файл (-) отсутствует в данном списке. Например, каталог Документы:

drwxr-xr-x 2 anatoly anatoly 4096 мая 28 12:35 ДокументыЕсли ввести ls -l Документы/, то вывод будет следующим и уже содержать

файл, который вы сейчас читаете:anatoly@anatoly-VirtualBox ~ $ ls -l Документы/

итого 184-rw-r--r-- 1 anatoly anatoly 185856 мая 28 12:58 Linux_Command.doc

Здесь можно посмотреть видео из youtube , демонстрирующее работу некоторых команд

catКоманда cat отображает содержимое файла или файлов. Например, предположим, вы

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

Чтобы отобразить содержимое двух или более файлов, перечислите имена этих файлов в командной строке. Например, чтобы распечатать содержимое файлов johnson и sanders, введите команду:

$ cat johnson sandersКоманда cat прочитает файлы johnson и sanders и выведет их содержимое на

терминале.Синтаксис команды:

cat ключи имя-файла(ов)tac file1 выводит содержимое файла file1 на стандартное устройство вывода в

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

следующее сообщение: cannot open имя-файлаСоздание файла командой cat

Если не задан входной файл, то будет предполагаться стандартный ввод (клавиатура). Одновременно перенаправим вывод в новый (создаваемый) файл $cat > newfile.

Здесь стандартный ввод буферизован: накопление 512 (обычно) знаков и потом ввод.Небуферизованный (лучше, на случай сбоев) ввод:с ключом -u (unbuffered): $ cat -u > people Mary 101 Sally 113 Jana 121 ^d [<Ctrl>d - для конца текста (EOF)] $

Можно добавлять в существующий файл: $ cat -u >> people Charlie 122

Page 16: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Bill 100 ^d $

more lessиКоманды more (больше) и less (меньше) тесно связаны и функционально подобны.

Интересно, что у той, которая называется "меньше", возможностей больше.Основное назначение этих команд - вывод на экран или в окно текста большого

объема по частям, чтобы его можно было листать в обоих направлениях, а также поиск в этом тексте.

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

MoreНачнем с команды more. Это основная команда постраничной или построчной

прокрутки большого текста на экране и поиска в этом тексте.Чтобы просмотреть большой текстовый файл textflie, то можно ввести следующую

команду:$ more textfileПосле нажатия клавиши Enter на экране появится первая страница текста, в последней

строке которой будет одно слово -More- (Далее). Нажатие клавиши пробела прокручивает текст на одну страницу, нажатие Enter - на одну строку. В конце текста на экране появится подсказка командной строки.

Чтобы выполнить поиск в тексте в направлении от начала к концу, введите косую черту (/) и строку поиска. Текст прокрутится до первого появления искомого слова или фразы. Для продолжения поиска следует ввести искомое слово.

Команде more можно передать результаты выполнения другой команды, воспользовавшись методом конвейеризации, когда выход одной команды является входом для другой команды. Для создания конвеййера команд следует использовать символ |, который вводится одновременным нажатием Shift+\ на клавиатуре.

Если в системе ввести команду ls -l для просмотра содержимого каталога /usr/bin, то будет выведен список значительно больше, чем может вместить самое большое окно xterm. Чтобы просмотреть этот список по частям, необходимо передать результаты выполнения команды ls -1 команде more.

$ ls -l /usr/bin | moreКак видим, к команде ls -l при помощи вертикальной черты присоединена команда

more. Таким образом мы образовали конвейер и результат команды ls -l выводится по условиям команды more - с постраничной или построчной прокруткой и поиском текста.

ПримечаниеПодробные инструкции по применению команды more приведены на странице

руководства этой команды. Работа со страницами руководства рассмотрена в параграфе, посвященном команде man

LessКоманда less - усовершенствованный вариант команды more. В дополнение к

функциям, описанным выше (постраничная или построчная прокрутка текста от начала до конца и поиск), команда less позволяет выполнять следующие операции:

переход на указанную строку; переход в начало или конец текста; прокрутка текста от конца к началу; поиск в обратном направлении.

Чтобы перейти на определенную строку текста, введите ее номер с буквой g в конце экрана в позиции( :). Если опустить номер строки, будет выполнен переход к первой строке.

Page 17: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

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

Для построчной прокрутки текста вверх или вниз достаточно нажать соответствующую клавишу со стрелкой. Постраничная прокрутка вверх выполняется нажатием клавиш Ctrl+B.

Наконец, операция поиска в прямом направлении (от начала до конца) задается косой чертой (/), а в обратном - вопросительным знаком (?).

Как и команда more, команда less имеет собственную страницу руководства. Работа со страницами руководства рассмотрена в разделе, посвященном команде man.

Для завершения просмотра нажмите Q или q, для помощи - H или h.

Find, locate, whereis grepиКоманды find, locate, whereis и grep - мощные инструменты поиска файлов. Мы

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

Все эти команды предназначены для поиска, но назначение у каждой команды свое. Команда find применяется для поиска файлов по ряду критериев, в том числе по имени и дате создания, grep - для поиска в файлах определенного содержимого.

FindЭта команда позволяет отыскивать файлы по имени, дате создания или модификации,

владельцу (обычно, это создатель файла), размеру и даже типу файла. Мы рассмотрим лишь самый распространенный способ поиска - по имени файла.

Основная структура команды find следующая:$ find <starting-directory parameters actions>Параметр starting-directory определяет каталог, с которого должен начинаться поиск.

Например, если в качестве этого параметра указать /home, поиск будет проводиться во всех подкаталогах каталога /home - в исходных каталогах пользователей. Если указать одну косую (/), будет выполнен поиск по всем каталогам.

Параметр parameters означает критерии поиска. В нашем случае, это имя файла, который надо найти (- name <имя_ файла>).

Параметр actions указывает, что делать с найденными файлами. Чаще всего указывается флажок -print, по которому выводится имя найденного файла с указанием пути. Задавать поиск без этого действия бессмысленно, поскольку результат останется неизвестным.

Подведем итоги. Чтобы найти в системе все файлы с именем foo, введите следующую команду.

$ find / -name foo -printНа экране результат может выглядеть примерно так:$ find / -name foo -print /trap/foo /home/armand/foo /home/tdanesh/fooСоветОбратите внимание: в предыдущем примере задавался поиск во всей системе. Чтобы

такая операция была возможна, необходимо войти в систему как корневой пользователь, которому доступны все каталоги. Если этого не сделать, то в ответ на каждую попытку провести поиск в каталоге, к которому нет доступа, будет выводиться сообщение об ошибке "permission denied" (нет доступа).

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

Page 18: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

$ find / -name 'fo*' -print /tmp/foo /var/lib/texmf/fonts /usr/bin/font2c /usr/bin/mh/folders /usr/bin/mh/folder /usr/bin/mh/forw /usr/bin/formail /usr/bin/fontexport /usr/bin/fontimport /usr/bin/fold

и т.д.Обратите внимание, имя файла указано в одинарных кавычках 'fо*'. Если их не

использовать, то результат не изменится. В некоторых системах при использовании символа шаблона "*" без кавычек приведет к сообщению об ошибке.

Если результаты выполнения команды find не помещаются на экране, можно присоединить к ней команду more, как в примере с командой ls -1.

$ find / -name 'fo*' -print | more

LocateЕсли команда find выполняется слишком долго, можно попробовать воспользоваться

командой locate. Эта команда сканирует базу данных файлов вашего компьютера, обновляемую раз в сутки. Алгоритм ее работы несколько отличается от алгоритма команды find, поскольку locate возвращает все файлы, в имени или названии каталога которого есть искомая строка.

Например, команда locate xauth породит следующий результат:anatoly@anatoly-VirtualBox ~ $ locate xauth/lib/x86_64-linux-gnu/security/pam_xauth.so/usr/bin/xauth/usr/lib/python2.7/dist-packages/Xlib/xauth.py/usr/lib/python2.7/dist-packages/Xlib/xauth.pyc/usr/share/doc/xauth/usr/share/doc/xauth/changelog.Debian.gz/usr/share/doc/xauth/copyright/usr/share/man/man1/xauth.1.gz/usr/share/man/man8/pam_xauth.8.gz/usr/share/pyshared/Xlib/xauth.py/var/lib/dpkg/info/xauth.list/var/lib/dpkg/info/xauth.md5sumsОбратите внимание, что эта команда выдала полный путь для всех файлов и каталогов,

имена которых включают строку "xauth," в том числе каталоги /var/lib/dpkg/info/ .xauth и /var/lib/dpkg/info/, а также файл команды /usr/bin/xauth.

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

WhereisЕсли вы ищете команду с известным названием, воспользуйтесь whereis, чтобы найти,

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

fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gzПолученные сведения указывают, где расположена команда fdisk (/sbin/fdisk), а также

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

К недостаткам команды whereis можно отнести то, что она просматривает только каталоги, включенные в специальный список. По этой причине она не сможет найти новую

Page 19: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

команду или страницу руководства, которую вы только что инсталлировали.

GrepЕсли команда find применяется для поиска файла по имени, типу или дате, то по

команде grep происходит поиск заданной строки текста в нескольких файлах.Предположим, у вас есть текстовый файл, содержащий слово "radio". Вы записали

этот файл в исходный каталог, но забыли его имя. Следовательно, надо найти файл, который содержит слово "radio". Именно такой поиск выполняется по команде grep.

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

$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he found thatОбратите внимание: команда grep выводит по одной строке на каждое найденное

слово "radio". Справа от имени файла после двоеточия приведена строка, содержащая искомое слово. Общий формат команды grep следующий:

$ greptext-pattern file-listВ качестве строки поиска text-pattern можно указать слово, фразу или более сложное

регулярное выражение. Регулярные выражения - мощное средство поиска текста. Их описание можно найти на странице руководства команды grep. Список файлов file-list может быть любой формы, допускаемой оболочкой.

Обычно проверка одного файла проводится командой:$ grep text-pattern file-nameа проверка всех файлов некоторого каталога командой:$ grep text-pattern *В последней команде "*" - это выражение, означающее поиск во всех файлах текущего

каталога. Строка поиска в простейшем варианте представляет собой слово или часть слова без пробелов. Если надо найти фразу, например "is a test", от ее указывают в двойных кавычках, как в следующем примере:

$ "grep "is a test"* ab.txt: This is a test of searching for the word radio.Подобно командам more и less, команду grep удобно конвейеризировать с другими

командами. Предположим, что нам необходимо получить список всех файлов в текущем каталоге с датой модификации 28 мая. Для этого можно воспользоваться командой 1s -1 с присоединенной командой grep:

$ 1s -1 | grep "May 12" -rw-r—r-- 1 root root 19197 May 12 21:17 rfbprotoheader.pdf -rw-r—r- 1 root root 110778 May 12 21:20 rfprotoA.zip -rw-r—r--- 1 root root 17692 May 12 23:03 svnc-0 .1. tar ,gz -rw-r—r-- l root root 25222 May 12 19:58 vnc-3 . 3 . l_j-avasrc . tgz drwxr-xr-x 2 root root 1024 May 12 21:49 vncj.ava

r gzipТа иБольшинство пользователей других операционных систем, в том числе Windows и

Mac OS, знакомы со сжатыми архивами. Сжатый архив - это единый файл, содержащий один или несколько файлов в сжатой форме.

Сжатые архивы часто используются для распространения программного обеспечения через Internet. В Linux есть команда unzip для доступа к архивным ZIP-файлам, но в мире Unix большее распространение получили архивы TAR. Эти архивы после заполнения сжимаются программой сжатия одиночных файлов gzip.

Tar

Page 20: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Первоначально программа tar предназначалась для создания резервных копий системы на магнитных лентах (tar -сокращение от tape archive, что означает архив на магнитной ленте). В настоящее время эта программа широко применяется для подготовки программного обеспечения к распространению.

Формат команды создания архива:$ tar cvf tar-file-name file-listПо этой команде создается архивный файл tar-file-name (как правило, с расширением .

tar), в который записываются все файлы, указанные в списке file-list, составленном в соответствии с правилами, рассмотренными позже. Обратите внимание: файлы, вносимые в архив, не переносятся, а копируются, поэтому нет опасности их случайного удаления.

Обратите также внимание на параметры, следующие непосредственно за командой. В приведенном примере это cvf. Каждый из этих параметров определяет отдельные аспекты поведения команды tar:

с - указывает создание нового архива, в отличие от просмотра существующего или внесения в него файлов;

v - указывает подробный вывод данных с указанием каждого архивируемого файла;

f - указывает архивирование в файл, а не на магнитную ленту.Если необходимо архивировать все файлы с расширением . txt в текущем каталоге в

архивный файл text. tar, можно воспользоваться командой:$ tar cvf text.tar *.txt ab.txt pop.txtОбратите внимание на перечисление файлов, копируемых в архив.Каталог, указанный в списке файлов команды tar, копируется в архив вместе со всеми

содержащимися в нем файлами и подкаталогами. Следовательно, для копирования всего содержимого, например, каталога vnc в архивный файл vnc. tar можно воспользоваться командой

$ tar cvf vnc.tar vncПолностью, это может иметь следующий вид.

$ tar cvf vnc.tar vnc vnc/ vnc/LICENSE.TXT vnc/README vnc/README. vnc server vnc/Xvnc vnc/classes/ vnc/classes/DesCipner.class vnc/classes/animatedMemorylmageSource.class vnc/classes/authenticationPanel.class vnc/classes/clipboardFrame.class vnc/classes/optionsFrame.class vnc/classes/rfbProto.class vnc/classes/vncCanvas.class vnc/classes/vncviewer.class vnc/classes/vncviewer.jar vnc/vncpasswd vnc/vncserver vnc/vncviewer Обратите внимание, что в первой ответной строке команды указывается создание

каталога vnc в архиве, после чего происходит копирование файлов в этот каталог.Существующий архив, как правило, просматривают или извлекают из него файлы.

Для, просмотра содержимого архива параметр с заменяется параметром t.$ tar tvf vnc.tar drwxr-xr-x root/root 0 1998-05-16 23:55 vnc/ -rw-r—r—.root/root 18000 1998-01-23 16:52

Page 21: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

vnc/LICENCE.TXT -rw-r—r— root/root 6142 1998-01-23 16:53 vnc/REAEME -r—r—r— root/root 601 1998-01-23 16:28 vnc/README.vncserver -r-xr-xr-x root/root 1286834 1998-01-23 13:00 vnc/Xvnc drwxr-sr-x root/root 0 1998-01-23 16:24 и т.д.Как видим, список файлов выводится в подробной форме: как при выводе

содержимого каталога командой ls -l.Чтобы извлечь содержимое архива в текущий каталог, параметр с заменятся

параметром х.$ tar xvf vnc.tar vnc/ vnc/LICENSE.TXT vnc/README vnc/README.vncserver

vnc/Xvnc vnc/classes/ vnc/classes/DesCipher.class vnc/classes/animatedMemorylmageSource.class vnc/classes/authenticationPanel.class vnc/classes/clipboardFrame.class vnc/classes/optionsFrame.class vnc/classes/rfbProto.class vnc/classes/vncCanvas.class vnc/classes/vncviewer.class vnc/classes/vncviewer.jar vnc/vncpasswd vnc/vncserver vnc/vncviewer

GzipВ приведенных примерах применения команды tar файлы архивируются, но не

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

состоящий из множества сжатых файлов, команда gzip только сжимает отдельные файлы.Если у вас есть очень большой файл test.pdf, использовать который в ближайшее

время не планируется, то для экономии места на диске его можно сжать следующей командой.

$ gzip test.pdfПо этой команде файл test. pdf сжимается и к его имени добавляется расширение . gz,

так что он превращается в файл test .pdf . gz. До сжатия файл имел объем 110 778 байт:-rw-r--r-- I root root 110778 Jun 5 16:54 test.pdfПосле сжатия его объем уменьшился до 83 729 байт.-rw-r--r-- I root root 83729 Jun 5 16:54 test.pdf.gzКак и в большинстве команд, в команде gzip для указания нескольких файлов можно

использовать символы шаблоны. Например, по команде$ gzip *сжимаются все файлы в текущем каталоге (но не в его подкаталогах).Восстановление сжатых файловДля восстановления файла, сжатого командой gzip, можно воспользоваться этой же

командой с параметром -d.$ gzip -d test.pdf.gzФайл восстанавливается в прежнем виде, из его имени удаляется расширение . gz.Можно обойтись без параметра -d, если для восстановления сжатого файла ввести

команду:$ gunzip test.pdf.gz

Объединение команд gzip и tarПоскольку ранние версии команды tar выполняли архивирование без сжатия, она

обычно применялась в сочетании с командой gzip, как в следующем примере:$ tar cvf text.tar *.txt ab.txt pop.txt $ gzip text.tarгде создается сжатый архив с именем text. tar. gz.Доступ в этот архив возможен только после восстановления от сжатия:$ gunzip text.tar.gz $ tar tvf text.tar -rw-r--r-- root/root 48 1998-06-05 16:13 ab.txt -rw-r--r--

root/root 6 1998-06-05 16:13 pop.txtБолее поздние версии команды tar, в том числе, входящие в современные

Page 22: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

дистрибутивы, предусматривают непосредственное создание сжатых архивов и прямой доступ к ним. Чтобы создать сжатый архив, команду tar надо ввести с параметром z:

$ tar czvf vnc.tar.gz vnc vnc/ vnc/LICENSE.TXT vnc/README vnc/README.vncserver vnc/Xvnc vnc/classes/ vnc/classes/DesCipher.class vnc/classes/animatedMemorylmageSouree.class vnc/classes/authenticationPanel.class vnc/classes/clipboardFrame.class vnc/classes/optionsFrame.class vnc/classes/rfbProto.class vnc/classes/vncCanvas.class vnc/classes/vncviewer.class vnc/classes/vncviewer.jar vnc/vncpasswd vnc/vncserver vnc/vncvi ewer

Для просмотра полученного архива можно воспользоваться командой'$ tar tzvf text.tar.gz -rw-r—r— root/root 48 1998-06-05 16:13 ab.txt -rw-r—r— root/root 6

1998-06-05 16:13 pop.txtи для извлечения файлов - командой $ tar xzvf text.tar.gzab.txt pop.txt

Man и хmаn

Здесь часто встречаются ссылки на страницы руководства. Это стандартная форма справочной системы Linux. В Linux почти каждая команда имеет собственную страницу руководства.

Страница руководства открывается командой man:$ man command-nameПо этой команде открывается страница руководства команды command-name, которую

можно пролистывать или выполнять в ней поиск, как при просмотре текста с помощью команды less. Если указанную страницу руководства не удается найти, выводится сообщение об ошибке.

$ man non-existent-man-page Нет справочной страницы для ggg No manual entry for non-existent-man-pageРабота с файлами

Копирование и удаление файлов Перемещение и переименование файлов Создание файлов Создание символических ссылок Краткое введение в подстановочные символы

Ранее мы рассмотрели сведения, знание которых необходимо для эффективного использования Linux. Вы знаете, что каждая команда - это отдельная программа (выполняемый файл). Вы научились выполнять операции с файлами, изучая различные варианты применения команды ls для вывода на экран списка файлов.

Теперь мы подробнее рассмотрим применение команд для операций с файлами и каталогами, в том числе, для их копирования, удаления, перемещения и создания. В завершении рассмотрим применение подстановочных символов, например звездочки, широко используемой в DOS и Windows.

Копирование и удаление файловКопирование и перемещение - наиболее распространенные файловые операции. Вам

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

Копирование файлов

Page 23: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Любой, у кого есть хотя бы небольшой опыт работы в DOS или окне DOS системы Windows, знает, что перетаскивание файлов из окна в окно— не единственный способ их копирования. Команда DOS copy предоставляет дополнительные возможности - например, использование подстановочных символов, - которые могут ускорить, упростить процесс и сделать его более эффективным, чем в Диспетчере файлов или Проводнике.

В Linux для копирования применяется команда ср (/bin/cp).Основные операции копирования

Безусловно, простейшее применение команды ср - копирование файла из одного каталога в другой или создание дубликата в том же каталоге. Например, чтобы создать копию файла ThisFile, поместив ее в том же каталоге под именем ThisFile-Acopy, необходимо ввести следующую команду:

$ ср ThisFile ThisFile-AcopyЕсли теперь заглянуть в указанный каталог при помощи команды ls -l, то в нем

окажется два файла абсолютно одинакового объема, но с разными датами создания. Дата создания нового файла совпадет с датой копирования, первоначальный же останется неизменным. При этом, естественно, изменение файлаThisFile-Acopy не воздействует на файл ThisFile.

Аналогично, можно копировать файл ThisFile в каталог /tmp (например, чтобы предоставить к нему доступ другому пользователю). Для этого воспользуйтесь следующей командой.

$ ср ThisFile /tmpЕсли файл, копируемый в другой каталог, требуется еще и переименовать, следует

ввести команду:$ ср ThisFile /tmp/NewFileNameНе записывайте поверх существующего файлаВсе дистрибутивы Linux имеют один существенный недостаток: при копировании

файлов существует опасность записи копии поверх существующего файла. Предположим, у вас есть два файла- ThisFile и NewFile. Если вы решите создать копию одного из них, введя команду

$ ср ThisFile NewFileкопия запишется поверх файла NewFile, что приведет к его утрате (если, конечно, вы

не были настолько предусмотрительны, чтобы позаботиться о резервной копии).Чтобы избежать неприятностей, вводите команду ср с ключом -i. В этом случае

система потребует подтверждения копирования поверх существующего файла.$ ср -i ThisFile NewFile ср: overwrite 'ThisFile'?Чтобы обезопасить себя от подобных неприятностей, создайте алиас (псевдоним)

команды ср следующей командой:$ alias cp='cp -iТеперь при каждом обращении к команде ср последняя автоматически будет

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

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

Копирование нескольких файлов одной командойОдним из недостатков команды сору системы DOS является то, что в ней можно

указать лишь одно имя файла или выражение. Например, по команде$ copy file /tempпроисходит копирование файла file в каталог /temp. Другой вариант: $ copy *.txt/temp. В этом случае, в каталог /temp копируются все

Page 24: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

текстовые файлы из текущего каталога. Если необходимо скопировать три отдельных файла, придется вводить команду трижды. Для копирования всех текстовых и выполняемых (.ехе) файлов текущего каталога команду придется вводить дважды.

Команда ср из Linux в этом отношении несколько удобнее. В отличие от двойника из DOS, в команде ср можно указать более двух аргументов. При этом последний из них трактуется как адрес назначения, остальные - как имена копируемых файлов.

Рассмотрим пример. Предположим, необхдимо скопировать файлы FileOne, FileTwo и FileThree из текущего каталога в каталог /tmp. Естественно, это можно сделать, введя команду копирования трижды.

$ ср FileOne /tmp $ ср FileTwo /tmp $ ср FileThree /tmpОднако можно упростить задачу, объединив три команды в одну. $ ср FileOne FileTwo

FileThree /tmpАналогично, при копировании большого числа файлов можно указать несколько

аргументов с подстановочными символами.$ ср *.txt *.doc *.bak /tmpВ этом случае происходит копирование всех файлов, имена которых имеют одно из

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

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

ср: when copying multiple files, last argument must be a directory. Try 'cp —help'for more information. (При копировании нескольких файлов последним надо указывать каталог. Для получения дополнительной информации введите 'ср --help'.)

Для копирования целого каталога со всеми подкаталогами введите команду ср с флажком -R. Если в текущем каталоге существует подкаталог SomeDir, то для рекурсивного копирования этого подкаталога (со всем его содержимым) в подкаталог / tmp воспользуйтесь следующей командой.

$ ср -R SomeDir /tmpПри копировании будет создан новый каталог /tmp/SomeDir, в который и будет

скопировано содержимое исходного подкаталога SomeDir.

Дополнительные возможностиКоманда ср предоставляет несколько дополнительных средств, увеличивающих

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

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

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

Владельцем копии файла обычно становится пользователь, выполнивший копирование, а не создатель файла-оригинала. Предположим, файл TheFile был создан пользователем userl и помещен в каталог /tmp, чтобы пользователь user2 смог копировать его оттуда в свой исходный каталог. В списке файлов этот файл выглядит примерно так:

-rw-r—r-- 1 userl users 16992 Apr 5 12:10 TheFileПосле того, как пользователь user2 скопирует этот файл командой$ ср /tmp/TheFile /NewFile

Page 25: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

он становится владельцем файла-копии.-rw-rw-r-- I user2 users 16992 Apr 5 13:10 NewFileФайлу, созданному в некотором каталоге, назначается набор разрешений по

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

Иногда в копии необходимо сохранить все атрибуты файла-оригинала. Предположим, что корневой пользователь создает на съемном диске резервную копию некоторого набора файлов. В отличие от обычного архивирования на магнитную ленту, требующего других средств, в этом случае можно воспользоваться командой ср. Но резервные копии должны полностью соответствовать оригиналам. Самое время вспомнить о флажке -р, установка которого позволяет сохранить в копии все атрибуты оригинала. Если, возвращаясь к предыдущему примеру, вести команду

$ ср -р /tmp/TheFileкопия будет неотличима от оригинала:-rw-r--r-- I userl users 16992 Apr 5 12:10 TheFileЕще одна проблема, связанная с копированием файлов - копирование символических

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

При обычном копировании символической ссылки происходит копирование не ее самой ,а файла, на который она указывает. Например, если бы в предыдущем примере TheFile было именем символической ссылки:

rwxrwxrwx 1 userl users 16992 Apr 5 12:10 TheFile OtherFileто результат ввода команды$ ср /tmp/TheFile /NewFileбыл бы следующим:-rw-rw-r-- 1 user2 users 16992 Apr 5 13:10 NewFileНо что делать, если надо копировать ссылку, а не файл, на который она указывает,

чтобы результат выглядел, как в следующем примере?lrwxrwxrwx 1 user2 users 2 Apr 5 13:10 NewFile /tmp/OtherFileВ команде ср для этого предусмотрен ключ -d, который отменяет копирование файла

ссылки. Команда копирования принимает вид:S ср -d /tmp/TheFile /NewFileПопробуем подытожить сказанное. Как создать командой ср резервную копию

существующего каталога со всеми подкаталогами? Это можно сделать при помощи сочетания двух рассмотренных флажков и рекурсивного копирования. Например, по команде

$ ср -pdR TheDirectory /backupsсоздается точная копия каталога TheDirectory в каталоге /backups/TheDirectory.$ ср -a TheDirectory/backupsУдаление файловКонечно же, Linux предоставляет не менее удобное средство удаления файлов. Это

команда rm с соответствующим выполняемым файлом /bin/rm.В простейшей форме команда применяется для удаления одного или нескольких

файлов из текущего каталога. Командой$ rm ThisFileиз текущего каталога удаляется файл ThisFile. Если из текущего каталога надо удалить

все текстовые файлы, введите следующую команду.$ rm *.txt

Page 26: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

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

$ rm ThisFile *.txtКак и команда копирования, rm несет в себе не только удобство, но и опасность.

Нетрудно представить последствия случайного ввода команды$ rm thesis.docвместо$ rm thesis.bakКак бы невероятным ни казался этот кошмар, он случается сплошь и рядом, принося

массу ненужной работы и головную боль.Чтобы избежать этого, установите в команде rm флажок -i, известный нам по команде

ср, для вывода предупреждений об удалении файлов.$ rm-i thesis.doc rm: remove 'thesis.doc'?Можно также создать псевдоним команды rm, обеспечив вывод предупреждений по

умолчанию.$ alias rm='rm-i'Удаление каталоговПользователям часто приходится удалять целиком каталоги. Предположим, у вас есть

каталог, созданный в результате разархивирования файла, загруженного из Internet. После установки и тестирования программы, содержавшейся в загруженном файле, вы решите этот каталог удалить, для чего в команде rm необходимо установить флажок -r. Например, команда удаления каталога

$ rm -r TemplnstallПомнится, вы определили псевдоним команды rm для вывода предупреждений об

удалении файлов. При удалении больших каталогов это может оказаться некстати.$ rm -r TempInstallrm: descend directory 'tempInstall'? уrm: remove TempInstall/File1'? у

rm: remove TempInstall/File2'? уrm: remove directory 'TempInstall'? уПредставьте, что вам предстоит удалить несколько сот файлов. Невыполнимая задача.

Для этих случаев предусмотрен флажок -f. Если вы уверены, что при удалении всего каталога не удалите ничего лишнего, отмените вывод предупреждений об удалении, установив в команде rm флажок -f.

$ rm -rf TempInstallНапоминаниеК использованию флажка -f следует относиться осторожно. Это средство не

только мощное, но и опасное.Учетная запись суперпользователя конфигурирована с установкой алиаса

(псевдонима) команды rm по умолчанию rm -i. Эта установка очень важна, поскольку малейшая ошибка суперпользователя может иметь катастрофические последствия для системы. Можно представить себе, чтo произойдет, если при попытке удалить каталог /tmp между "/" и "tmp" каким-то образом окажется пробел.

$ rm -r / tmpЭто команда удаления всех файлов и каталогов диска. И еще одно подтверждение

важности алиаса команды rm -i.Естественно, использование флажка - f требует от суперпользователя большой

осторожности, да и само использование учетной записи суперполъзователя следует свести к минимуму. В конце концов, команда

$ rm -rf / tmpопасна даже при наличии нужного алиаса.

Page 27: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Основная операция перемещенияРассмотрим основную операцию перемещения.$ mv FlleOne /tmpПо этой команде файл FileOne перемещается в каталог /tmp.Перемещение и переименованиеОдновременно с перемещением в каталог /tmp, файл можно переименовать,

воспользовавшись следующей командой.$ mv FileOne /tmp/NewFileNameОтсюда следует, что для переименования файла достаточно переместить его в

собственный каталог с новым именем.$ mv FileOne NewFileNameКак видим, перемещение и переименование - одна и та же операция.Перемещение нескольких файловПеремещение, как и копирование, может производиться сразу нескольких файлов,

поскольку в команде mv допустимо наличие более двух аргументов. В этом случае последний аргумент указывает каталог назначения (перемещать, как и копировать, несколько файлов в один нельзя). Рассмотрим ситуацию, в которой необходимо переместить в каталог /tmp все файлы текущего каталога с расширениями .bak, .tmp и .old. Воспользуемся командой

$ mv *.bak *.tmp *.old /tmpПо этой простой команде все файлы текущего каталога с расширениями . bak, .tmp

и .old будут перемещены в каталог /tmp.Командой mv можно перемещать целые каталоги, причем для этого не надо

устанавливать флажки. Если в текущем каталоге есть подкаталог TheDir, который надо переместить в каталог /tmp, введите команду

$ mv TheDir/ /tmpАналогично, каталог TheDir превращается в подкаталог каталога NewDir:$ mv TheDir/ /NewDirПримечаниеКак и для двух команд, рассмотренных выше, для команды mv необходимо установить

алиас mv -i, чтобы предотвратить случайную запись перемещаемых файлов поверх уже .существующих. Для этого введите команду $ alias mv='mv -i'. В учетной записи суперпользователя такой алиас для команд cр, rm и mv установлен по умолчанию.

СозданиефайловВы уже знаете несколько способов создания файлов. В операции копирования как раз

это и происходит. Это же относится и к операции перемещения. Наконец, новый файл появляется при создании документа в текстовом редакторе, сохранении приложения сообщения электронной почты или создании копии экрана.

Но иногда требуется создать пустой файл нулевого объема. Пример такой ситуации - создание пустого файла сценарием для отметки особого состояния или прием программирования, называемый захватом файла (file locking).Суть его в следующем. Если сценарий открывает файл для внесения изменений, он одновременно создает специальный блокировочный файл (lock file). Блокировочный файл показывает другим программам и сценариям, что данный файл открыт для редактирования, а потому не может редактироваться другими программами или сценариями. Завершив редактирование файла и закрыв его, сценарий уничтожает блокировочный файл, вновь открывая доступ к отредактированному файлу.

Чтобы быстро и эффективно создавать блокировочные файлы, не выделяя значительный дисковый объем, нужен рациональный способ создания пустого файла. Для этого применяется команда touch. Например, по команде

$ touch NewFileсоздается файл нулевого объема NewFile.

Page 28: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

-rw-rw-r-- 1 anatoly anatoly 0 Apr 6 21:06 NewFileЕще одно распространенное применение команды touch - изменение даты

модификации существующего файла. Поведение многих программ определяется датами модификации файлов, с которыми они работают. Команда touch позволяет менять даты модификации файлов, не открывая и не редактируя их.

Создание каталоговКаталоги относятся к числу специальных разновидностей файлов в Linux. Их

специфика в том, что они содержат другие файлы. Для каталога вы можете установить такие ограничения на доступ, что другие пользователи даже не смогут посмотреть, какие файлы в нем содержатся. Примерами каталогов может служить корневой каталог верхнего уровня (/) или ваш личный (домашний) каталог (например, /home/mj).

Но создать каталог той же командой, которой вы создаете файлы, нельзя. Для этого предусмотрены специальные команды mkdir и rmdir. Если вы хотите создать подкаталог для документов в вашем каталоге, можете воспользоваться следующей командой:

$ mkdir documentsНо эта команда не даст ожидаемого результата, если вы не находитесь в своем

каталоге. Для большей уверенности задается полный путь создаваемого каталога:$ mkdir /home/mj/documentsБудет ли эта команда работать или нет, зависит от предоставленных вам прав и

доступности корневого каталога. К примеру, как рядовой пользователь вы, вероятно, не сможете создать новый каталог /golf, но корневому пользователю эта задача по силам.

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

$ rmdir /home/mj/documentsБудет ли эта команда работать, зависит от ваших прав для каталога /home/mj и от того,

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

Создание символических ссылокИногда приходится создавать не файлы, а символические ссылки. Символические

ссылки - это указатели на реальные файлы в других каталогах. Обычно они используются системными администраторами и разработчиками прикладных программ. Представьте себе программиста, работающего над несколькими версиями одной программы. В конкретный момент времени тестирование проходит версия prog1, prog2 или progl0 - в зависимости от того, на какой стадии разработки находится проект. Чтобы гарантировать запуск для тестирования последней версии, можно создать на нее символическую ссылку prog. Каждый запуск prog будет приводить к запуску последней версии программы.

Есть два способа создания символических ссылок. Первый - ввод команды ln с ключом -s, определяющим создание символической ссылки, и двумя аргументами - файлом, на который указывает ссылка, и именем самой ссылки.

Например, чтобы создать в текущем каталоге ссылку МуСору на файл /bin/cp, введите следующую команду.

$ ln -s /bin/ср МуСоруПосле этого команда ls -l покажет наличие символической ссылки.1rwxrwxrwx 1 anatoly anatoly 9 мая 28 15:44 МуСору -> /bin/cp

Краткое введение в подстановочные символыРассмотрим еще одну важную тему, посвященную подстановочным символам.

Page 29: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

Подстановочные символы применяются для указания в одном компактном выражении имен нескольких файлов или каталогов. Мы уже неоднократно использовали звездочку (*), заменяющую любое число (включая нуль) произвольных символов. Например, выражение *. txt соответствует всем перечисленным ниже именам файлов.

.txt a.txt file.txt txt.txtПо умолчанию богатый синтаксис применения подстановочных символов

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

?. Соответствует любому одному символу, так что выражению file.? соответствует файл file.с, но не file. txt.

[Список]. Соответствует любому одному символу, указанному в списке, так что выражению file.[abc] соответствуют файлы file.a, file.b и file.с, но не file.d или file.txt.

Порядок выполнения работы 1. Тщательно изучить материал всех разделов методических указаний и выполните

демонстрационные примеры применения команд. 2. Показать преподавателю вариант выполненной команды на ващ выбор. 3. После разрешения преподавателя приступить к выполнению следующего задания. 3.1. Создать на диске в /home/user дерево каталогов с нижеприведенной структурой.

При этом после создания каталога D сделать его текущим. Далее все каталоги, кроме IBM, необходимо создавать, не изменяя текущего каталога. Затем сменить текущий каталог на WP и создать каталог IBM и его подкаталоги PC и XT.

Получаемые результаты проверять командой TREE. 3.2. Сделать текущим каталог D

3.3. Удалить подкаталог четвертого уровня PPP, не сменяя текущий каталог. Проверить результат операции командой ls -a – подкаталог РРР в дереве должен отсутствовать.

3.4. Создать в подкаталоге ХТ текстовый файл с расширением txt, назвав его своей фамилией. В качестве текста набрать свою фамилию и инициалы.

3.5. Создать в том же каталоге еще два текстовых файла, назвав их своими именем и отчеством. В качестве текста взять соответственно название специальности и название

Page 30: aad.tpu.ruaad.tpu.ru/1955/Intro2014/Linux_Command-2016.doc  · Web view$ grep radio * ab.txt: This is a test of searching for the word radio. pop.txt: 0n another radio station, he

факультета с номером группы. 3.6. Перейти в каталог XT. 3.7. Объединить файлы *.txt под именем файла "фамилия". Просмотреть содержимое

полученного файла на экране. 3.8. Распечатать содержимое файла "фамилия" с помощью команды cat. 3.9. Удалить файл "фамилия". 3.10. Перейти в каталог D. 3.11. Переименовать файл "имя". 3.12. Скопировать файл "отчество" в каталог XXX. 3.13. Перенести переименованный файл в каталог BAG. 3.14. Скопировать каталог IBM в каталог AUTO под новым именем FIO. 3.15. Перенести каталог IBM со всем содержимым в каталог USER с прежним именем. 3.16. Удалить каталог IBM. 3.17. Вывести на дисплей дерево каталогов с файлами. Оформить выполненные действия в составе отчета по домашней работе.Напоминаю, что дома перед началом выполнения задания необходимо установить

Linux Mint в системе виртуализации VirtualBox.(Ссылки на инструкции на aad.tpu.ru/1955).