Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КТНИ / mppz2_m2_iems_iems_ktni_niy16

.pdf
Скачиваний:
25
Добавлен:
27.03.2016
Размер:
672.53 Кб
Скачать

Тема 2. Модуль 2. - Работа в командном интерпретаторе BASH в ОС Linux.

План занятия:

1)Общие сведения об ОС Linux

2)Общие, групповые и перенаправляющие символы

3)Cтандартные потоки Linux

4)Переменные окружения и псевдонимы

5)Программный канал. Конвейерная передача

6)Базовые операции с объектами файловой системы

7)Особенности файловой системы

8)Назначение прав доступа на объекты

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

10)Сортировка данных командой sort

11)Семейство фильтров grep

12)Команда WC

13)Системные процессы ОС Linux

14)Архивирование и сжатие данных

1.Общие сведения об OC Linux

Операционные системы UNIX-семейства удовлетворяют всем требованиям, предъявляемым к ним средствами разработки СБИС: это возможность обеспечения одновременного доступа к средствам разработки множеству пользователей; высокая скорость обработки информации; наличие набора текстовых, графических редакторов, средств чтения файлов помощи и внутренней документации САПР; набор программ для сетевого доступа в Internet и в другие сети; набор средств для удаленной работы с САПР; большое разнообразие полезных программ и утилит для работы с аудио-, видео- и фотообъектами, а также многое другое. Кроме того, важным компонентом операционных систем этого семейства является командный интерпретатор, способный обрабатывать командные запросы пользователя и выдавать полученную информацию на экран монитора, в файл или на устройство.

Разработка ОС UNIX осуществлялась компьютерными профессионалами, работающими в научной среде. По мере своего развития UNIX дала основу разным операционным системам, среди которых наиболее известными являются Linux, Solaris и FreeBSD. Каждая из этих систем начала развиваться индивидуально, но сохранила все достоинства UNIX.

Наиболее используемой операционной системой семейства UNIX является Linux. Данная платформа имеет дружественный графический интерфейс, позволяющий пользователю комфортно управлять ОС с использованием не только клавиатуры, но и устройства типа мышь. Среди основных преимуществ Linux следует отметить:

гибкость; мощность; стабильность;

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

большое количество текстовых и графических программ; набор клиентских и серверных приложений;

наличие «открытой лицензии».

ОС Linux удобно сочетает в себе высокую производительность работы и возможность точной настройки элементов под нужды конкретного разработчика. Квалифицированная настройка функций позволяет операционной системе круглосуточно на протяжении длительного времени работать без перебоев. Наличие многопользовательского и многозадачного режимов совместно с высоким уровнем безопасности ОС дают возможность разработчикам использовать одновременно множество приложений САПР без угрозы потерять или испортить свои данные. Высокая стабильность, наряду с высокой мощностью операционной системы, позволяют надежно обслуживать запросы пользователей на аппаратно-вычислительной платформе средней комплектации.

Не менее важным преимуществом Linux является наличие так называемой «открытой лицензии» на большинство дистрибутивов. Несмотря на то, что исходные коды ряда программных обеспечений распространяются открыто и бесплатно, они защищены общедоступными лицензиями, которые исключают право коммерческих компаний незначительно модифицировать их и объявлять авторские права на эти изменения, а затем брать программный продукт под собственный контроль и продавать его как свой. Наиболее популярной является общедоступная лицензия GNU Public License, предоставляемая Фондом бесплатного программного обеспечения (Free Software Foundation). Операционная система Linux распространяется по этой лицензии. Общедоступная лицензия GNU оставляет авторские права за разработчиком, но гарантирует бесплатное использование программного обеспечения при условии, что само программное обеспечение и все дополнения и изменения к нему всегда будут оставаться свободно распространяемыми.

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

2.Общие, групповые и перенаправляющие символы

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

Вкомандном интерпретаторе используется ряд специальных символов, называемых групповыми символами, с помощью которых файлы можно искать, сравнивать, а также создавать список имен файлов. Этими символами являются «звездочка», «вопросительный знак» и квадратные скобки ( *, ?, [ ] ). Получив частичное имя файла, командный интерпретатор использует эти символы как образец для поиска и формирования cписка имен обнаруженных файлов. Параметр с неполным именем файла заменяется списком совпавших с ним имен файлов. Этот список имен может использоваться как параметр в командах, оперирующих с несколькими файлами (например, ls). Групповые символы командного интерпретатора приведены в табл.1.

Таблица 1

Групповые символы командного интерпретатора

Групповые символы

Назначение

 

 

*

Устанавливает соответствие с любым набором символов в

 

именах файлов

 

 

?

Устанавливает соответствие с любым отдельным

 

символом в именах файлов

 

 

С помощью «звездочки» (*) можно обращаться к файлам, имена которых начинаются или заканчиваются определенной комбинацией символов. При этом «звездочка» помещается до или после комбинации, являющейся образцом, который нужно найти в именах файлов. Если «звездочка» стоит перед образцом, производится поиск всех файлов, имена которых заканчиваются этим образцом. Если «звездочка» стоит после образца, то производится поиск имен файлов, которые начинаются этим образцом. Найденные имена копируются в список имен файлов, создаваемый посредством данной операции.

В следующем примере осуществляется поиск имен файлов, начинающихся комбинацией символов «BMT», и составляется соответствующий список. Затем осуществляется поиск имен файлов, завершающихся комбинацией «txt», и также составляется соответствующий список. В последнем примере показано, как использовать символ «звездочки» (*) в любой комбинации символов.

[antonk@lab4236sl ~]$ ls

 

 

1

4.txt

BMT_mdr.grd

d.c

tecswb.pref

l.txt

5.txt

DBtest

dessis.par

temp

2 BMT.log

Desktop

pyvnc2swf-0.8.2.tar.gz vnc2swf-0.5.0.tar.gz

2.txt

BMT_des.cmd

a.c

 

script

3

BMT_dio.cmd b.c

 

sentaurus

3.txt

BMT_mdr.dat

c.c

tecplot.phy

[antonk@lab4236sl ~]$ ls BMT*

BMT.log BMT_des.cmd BMT_dio.cmd BMT_mdr.dat BMT_mdr.grd

[antonk@lab4236sl ~]$ ls *txt l.txt 2.txt 3.txt 4.txt 5.txt [antonk@lab4236sl ~]$ ls [te]*

tecplot.phy tecswb.pref temp:

a.c b.c c.c d.c list

[antonk@lab4236sl ~]$

Имена файлов часто содержат расширения, состоящие из точки и нескольких символов. Например, расширение .cmd обозначает командные файлы САПР, .par файлы с электрофизическими параметрами САПР, .dat – файл с данными для визуализатора PICASSO, .log файл с комментариями текстового сопровождения выполнения приложений, .txt текстовые файлы, .с файлы языка С, .срр файлы программ C++, a .jpg файлы изображений JPEG. Расширение имени файла не является обязательным, не может применяться отдельно от имени и должно составлять часть имени файла. Использование символа «звездочки» облегчает выделение файлов с данным расширением.

В следующем примере «звездочка» используется для указания только файлов с расширением .с. «Звездочка» в совокупности с расширением .с может применяться как параметр для команды ls.

[antonk@lab4236sl ~]$ ls

 

1

4.txt

BMT_mdr.grd

d.c

tecswb.pref

l.txt 5.txt

DBtest

 

dessis.par

temp

2

BMT.log Desktop

pyvnc2swf-0.8.2.tar.gz vnc2swf-0.5.0.tar.gz

2.txt BMT_des.cmd

a.c

 

script

3

BMT_dio.cmd

b.c

 

sentaurus

3.txt BMT_mdr.dat

c.c

 

tecplot.phy

[antonk@lab4236sl ~]$ rm temp

Групповой символ «звездочки» можно использовать с командой rm для удаления сразу нескольких файлов. Сначала с помощью «звездочки» задается список файлов с данным расширением, либо начинающихся, либо заканчивающихся данной комбинацией символов, а затем этот список передается команде rm для удаления. Если в командной

строке поставить «звездочку» без дополнительных символов, то это будет соответствовать всем файлам. Если использовать ее как параметр в команде rm, то будут удалены все файлы. В следующем примере команда ls * выдает список всех файлов, а команда rm * удаляет все файлы:

[antonk@lab4236sl ~]$ ls *

 

 

1

3.txt

BMT_dio.cmd

c.c

te cplot.phy

l.txt

4.txt

BMT_mdr.dat

d.c

tecswb.pref

2

5.txt

BMT_mdr.grd

dessis.par

vnc2swf-0.5.0.tar.gz

2.txt

BMT.log a.c

pyvnc2swf-0.8.2.tar.gz

3

BMT_des.cmd b.c

script

 

DBtest:

 

 

 

genesis_layout_antonk.X-2005.10 inspect_macro.par

inspect_layout_antonk.X-2 0 0 5.10

 

Desktop:

 

 

 

TCL_License.terms bin

tcad

 

temp:

 

 

 

a.c b.c c.c d.c list

 

 

[antonk@lab4236sl ~]$

 

 

Символом * в команде rm следует пользоваться очень осторожно и осмотрительно. Такая комбинация может оказаться весьма опасной. «Звездочка», по ошибке поставленная в команде rm без опции -i, может привести к случайному удалению всех ваших файлов в текущей директории.

[antonk@lab4236sl ~]$ rm *

В следующем примере производится стирание только файлов с расширением .с, вторая команда удаляет все файлы.

[antonk@lab4236sl ~]$ rm *.c

Далее покажем вывод всех файлов, имена которых начинаются на комбинацию символов «BMT».

[antonk@lab4236sl ~]$ ls BMT*

BMT.log BMT_des.cmd BMT_dio.cmd BMT_mdr.dat BMT_mdr.grd

[antonk@lab4236sl ~]$

Групповые символы «звездочка» и «знак вопроса» задают неуказанные части имени файла, а «квадратные скобки» позволяют задавать набор допустимых символов для поиска. Система будет искать в имени файла любой из этих символов.

Набор символов можно задавать в виде диапазона. Дефис между верхним и нижним пределами набора символов позволяет указать сразу на все символы в данном диапазоне. Диапазон, как правило, определяется используемым набором символов. В наборе символов ASCII диапазон [a-g] означает все строчные буквы от а до g включительно. В следующем примере выбираются имена файлов, имеющих в своем названии один символ с первого по четвёртый включительно.

[antonk@lab4236sl ~]$ ls [1-4]

1 2 3

[antonk@lab4236sl ~]$

При комбинации «квадратных скобок» с другими групповыми символами можно формировать очень гибкие шаблоны поиска по образцу. Иногда групповой символ входит в состав имени файла. В этом случае перед ним нужно поставить обратную косую черту [ \ ].

В следующем примере пользователю нужно обозначить файл, который начинается на три фиксированные буквы «bmt» и заканчивается символом «?». Здесь ? – групповой символ, который обозначит все имена файлов, начинающиеся комбинацией букв «bmt» и имеющие далее один символ. Если спецсимвол обратной косой черты перед знаком вопроса не поставить, то отобразятся все файлы, имеющие сначала комбинацию букв «bmt», а затем один любой произвольный символ, а если спецсимвол обратной косой

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

[antonk@lab4236s ~]$ ls -l bmt?

-rw-rw-r– 1 antonk antonk

0

Sep 21

15:11 bmtl

-rw-rw-r– 1 antonk antonk

0

Sep 21

15:11 bmt2

-rw-rw-r– 1 antonk antonk

0

Sep 21

15:11 bmt3

-rw-rw-r– 1 antonk antonk

42

Sep 21

15:11 bmt?

[antonk@lab4236s ~]$ ls -l bmt\?

-rw-rw-r– 1 antonk antonk 42 Sep 21 15:11 bmt?

[antonk@lab4236s ~]$

3. Cтандартные потоки Linux

Иногда требуется не только вывести информацию на экран, но также поместить ее файл для дальнейшей сортировки или для демонстрации этих данных другим разработчикам СБИС. Такое действие можно организовать путем функций перенаправления. Полный перечень символов перенаправления указан в табл.2.

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

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

Таблица 2

Cимволы перенаправления командного интерпретатора

Символы

Назначение

перенаправления

 

>

Перенаправляет стандартный вывод в файл или

 

на устройство. При этом, если файл не

 

существует, он создается, если же файл

 

существует, он перезаписывается

>!

Восклицательный знак приводит к перезаписи

 

файла, если он существует. Этот символ отменяет

 

действие опции, которая запрещает перезапись

 

существующих файлов

<

Перенаправляет стандартный ввод из файла или

 

устройства в программу

> >

Перенаправляет стандартный вывод в файл или

 

на устройство, добавляя выводимые данные к

 

концу файла

2 >

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

 

об ошибках в файл или на устройство

2>>

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

 

сообщений об ошибках в файл или на устройство

2>&1

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

 

об ошибках на стандартный ввод

>&

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

 

об ошибках в файл или на устройство

|&

Перенаправляет по каналу стандартный вывод

 

сообщений об ошибках на вход другой команды

В следующем примере показано, как информация сначала отображается на экране, затем записывается в новый файл «www», находящийся в домашнем каталоге пользователя antonk, а далее содержимое данного файла выводится с помощью фильтра cat:

[antonk@lab4236s ~]$ ls -ld /etc/u*

drwxr-xr-x 4 root root 4096 Feb 13

2008

/etc/udev

-rw-r–r– 1 root root

127

Nov 26

2006

/etc/updatedb.conf

drwxr-xr-x 3

root

root

4096

Feb

13

2008

/etc/uucp

[antonk@lab4236s ~]$ ls -ld

/etc/u* > -/www

[antonk@lab4236s ~]$ cat -/www

 

 

 

drwxr-xr-x 4 root root 4096 Feb 13

2008

/etc/udev

-rw-r–r– 1 root root

127

Nov 26

2006

/etc/updatedb.conf

drwxr-xr-x 3

root

root

4096

Feb

13

2008

/etc/uucp

[antonk@lab4236s ~]S

Можно также перенаправить стандартный ввод с клавиатуры в файл, чтобы входная информация читалась из файла, а не с клавиатуры. По умолчанию большинство команд направляют стандартный поток вывода на экран. В следующем примере с помощью комбинации средств перенаправления стандартного ввода и стандартного вывода информация из файла «bmt?» копируется в новый файл «1111»:

[antonk@lab4236s~]$ cat bmt\?

sdfsdf sdfsdf

[antonk@lab4236s ~]$ cat < bmt\? > 1111 [antonk@lab4236s ~]$ cat 1111

sdfsdf sdfsdf

[antonk@lab4236s ~]$

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

апоместится в файл.

Вследующем примере показаны: сокращенный вывод сведений о файлах, находящихся в текущей директории, с помощью команды ls, затем расширенный вывод сведений с использованием опции –l, далее перенаправление стандартного потока вывода в файл «list». Наконец, в конце этого примера с помощью команды cat осуществляется просмотр нового файла «list» со сведениями о файлах, находящихся в текущей директории.

[antonk@lab4236sl temp]S ls a.c b.c c.c d.c

[antonk@lab4236sl temp]S ls -l total 16

-rw-rw-r– 1 antonk antonk 0 Oct 31 19:19 a.c -rw-rw-r– 1 antonk antonk 0 Oct 31 19:19 b.c -rw-rw-r– 1 antonk antonk 0 Oct 31 19:19 c.c -rw-rw-r– 1 antonk antonk 0 Oct 31 19:19 d.c

[antonk@lab4236sl temp]S ls > list [antonk@lab4236sl temp]S cat list b.c

d.c list

[antonk@lab4236sl temp]

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

4.Переменные окружения и псевдонимы

ВOC Linux имеется возможность настройки сеанса пользователя (аккаунта) с помощью переменных окружения и псевдонимов. Переменной окружения называется имя, которое ссылается на определенную область памяти, где временно хранятся данные. Назначение новых переменных осуществляется путем присваивания имени переменной ее значения. В зависимости от типа командного интерпретатора способ задания переменных окружения может отличаться. Например, в интерпретаторе BASH синтаксическое правило назначения переменной выглядит следующим образом: имя_переменной=значение_переменной. Чтобы отобразить все заданные в памяти переменные, требуется ввести команду env. Отобразим часть переменных окружения:

LANG=ru_RU.UTF-S LM_LICENSE_FILE=7326@82.179.185.68 ISEDB=/home/antonk/DBte st/ SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass EOME=/home/antonk

3HLVL=2

LOGNAME=antonk CVS_RSH=ssh QTLIB=/usr/lib64/qt-3.3/lit

SSH_CONNECTION=82.179.185.70 1209 82.179.185.125 22 LESSOPEN=|/usr/bin/lesspipe.sh %s ISEROOT=/syn/SYNOPSYS/TCAD61

STROOT_LIB=/root/STDB STDB=/root/STDB G_BROKEN FILENAMES=1

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

Вследующем примере создадим новый файл «rrr», с помощью переменной noclobber установим запрет на перезапись файла средствами перенаправления и попробуем стандартный вывод расширенного действия выполнения команды ls записать в вновь созданный файл «rrr». Перезапись не разрешена. Далее с помощью переменной noclobber разрешим перезапись уже существующего файла «rrr» и посмотрим его содержимое.

[antonk@lab4236s ~]$ cat > rrr

1223333

[antonk@lab4236s ~]$ cat rrr

1223333

[antonk@lab4236s ~]$ set -o noclobber [antonk@lab4236s ~]$ ls -ld /home/antonk > rrr bash: rrr: cannot overwrite existing file

[antonk@lab4236s ~]$ set +o noclobber [antonk@lab4236s ~]$ ls -ld /home/antonk > rrr [antonk@lab4236s ~]$ cat rrr

drwx------ 27 antonk antonk 4096 Sep 22 11:53 /home/antonk

[antonk@lab4236s ~]$

Перечень служебных переменных можно отобразить с помощью команды set –o. Часть вывода служебных переменных приведена ниже:

[antonk@lab4236s ~]$ set –o

allexport

off

braceexpand

on

arrexit

off

arrtrace

off

functrace

off

hashall

on

histexpand

on

ignoreeof

off

interactive-comments on keyword off

monitor on noclobber off

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

еезначении.

Вследующем примере создадим переменную MY_VAR и присвоим ей значение 5. Затем убедимся, что такая переменная действительно существует, и возвратим ее значение:

[antonk@lab4236s ~]$ MY_VAR=5 [antonk@lab4236s ~]$ set | grep MY_VAR

MY_VAR=5

[antonk@lab4236s ~]$ echo $MY_VAR

5

[antonk@lab4236s ~]$

В отдельных случаях удобно использовать так называемые псевдонимы. Псевдонимы

(aliases) – сокращенные имена, заменяющие одну или несколько команд, которые также могут содержать опции и параметры. Формат команды: alias dir=строка_команды.

Например, установим псевдоним на команду ls с опциями –ld для папки /home/antonk и назовем его lh:

[antonk@lab4236s ~]$

alias lh='ls -ld /home/antonk'

[antonk@lab4236s ~]$

lh

drwx--------- 27 antonk

antonk 4096 Sep 22 14:22 /home/antonk

[antonk@lab4236s ~]$

 

Теперь по команде lh будет отрабатываться комбинация ls –ld /home/antonk . Следует отметить, что длинные выражения с правой стороны от равенства, включающие пробелы, знаки табуляции или другие спецсимволы, ограничиваются одиночными апострофами. Вновь созданные переменные окружения и псевдонимы действуют в течение текущего сеанса и по завершении сеанса командного интерпретатора стираются из памяти. Для того чтобы в новом сеансе они вновь работали, их можно занести в точечный файл rc-скрипта BASH-интерпретатора – в файл .bashrc .

5. Программный канал. Конвейерная передача

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

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

В следующем примере передадим по каналу стандартный вывод расширенного выполнения команды ls с опциями –la (опция –l расширенный вывод сведений об объекте, -a – отображение скрытых (точечных) файлов) для папки /home/antonk на вход команды head (команда читает сверху вниз первые n строк) для отображения пяти первых строк, а затем средствами перенаправления запишем полученную информацию в новый файл «yyyy».

[antonk@lab4236s ~]$

ls -la /home/antonk | head -5 > yyyy

[antonk@lab4236s ~]$

cat yyyy

total 1713212

 

 

 

-rw-rw-r– 1 antonk

antonk

109 Sep 22 13:45 !

drwx------27 antonk

antonk

4096 Sep 22 14:22 .

drwxr-xr-x 34 root

 

root

4096 Sep 18 09:23 ..

-rw------- 1 antonk

antonk

491 Sep 18 09:29 .ICEauthority

[antonk@lab4236s ~]$

Программные каналы эффективно применяют также для сортировки и фильтрации данных. Например, с помощью команды отображения системных процессов ps выведем последние четыре процесса, принадлежащих пользователю antonk и отсортируем их по мере убывания номера процесса UID. Для вывода системных процессов применяется команда ps с опциями –ef. Более подробно об этой команде поговорим в разделе «Системные процессы».

[antonk@lab4236s ~]S ps -ef | grep antonk | tail -4 | sort -nr -k 2

antonk 18889 14588

0

14:34

pts/2

00:00:00 sort -nr -k 2

antonk 18888 14588

0

14:34

pts/2

00:00:00 tail -4

antonk

18887 14588

0

14:34

pts/2

00:00:00 grep antonk

antonk

18886 14588

0

14:34

pts/2

00:00:00 ps -ef

[antonk@lab4236s ~]$

Прокомментируем приведенную команду. Фильтр grep с параметром antonk позволяет отобразить только те строки, которые содержат слово antonk, т.е. относятся к пользователю antonk. Далее по программному каналу с помощью команды tail с опцией -4 выделяются только последние четыре процесса и затем производится численная (опция - n) в обратном порядке (опция –r) по второй колонке (-k 2), т.е. по номеру процесса (PID) сортировка.

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

[antonk@lab4236s ~]$ find ~ -name 'r*' -type f

/home/antonk/222/lab9/tt/rr /home/antonk/.gstreamer-0.10/registry.x86_64.xml /home/antonk/.gstreamer-0.8/registry-x86_64.xml /home/antonk/rrr

[antonk@lab4236s ~]$ find ~ -name 'r*' -type f | grep -v 64

/home/antonk/222/lab9/tt/rr /home/antonk/rrr

[antonk@lab4236s ~]$

В примере с помощью команды find (более подробно возможности команды find см. в главе 3), начиная с домашней директории пользователя antonk, отображены только файлы, имена которых начинаются с буквы «r» и далее имеют произвольное количество символов. Затем с помощью программного канала данный поток отправляется на фильтр grep (опция -v – инверсия регулярного выражения), с помощью которого отфильтровываются строки, не имеющие цифр 64.

С помощью программного канала можно пересылать из одной команды в другую не только перечень, выводимый командой ls, но также любую информацию, например содержимое целого файла. В следующем примере с помощью команды cat читается и выводится содержимое файла «yyyy», которое затем посылается по каналу в команду lpr (печать содержимого файла).

[antonk@lab4236s ~]$ cat yyyy | lpr

[antonk@lab4236s ~]$

6. Базовые операции с объектами файловой системы

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

Прежде чем мы приступим к рассмотрению основных операций с объектами файловой системы (ОФС), определим данные объекты. Ранее мы считали, что ОФС являются файл и каталог. В UNIX-системах этот перечень несколько шире. Кроме перечисленных, существуют еще файл устройства и ссылка. В свою очередь файл устройства может быть символьного или блокового типа. Таким образом, имеется четыре объекта: файл, директория (каталог, папка), файл устройства и ссылка.

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

Ссылка – файл, посредством которого можно обращаться к любым ОФС, находящимся в любом месте данной системы. В целом ссылки немного напоминают ярлыки, но есть определенные нюансы.

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

Смена директории. После того, как пользователь зарегистрируется в ОС Linux, он попадает в домашнюю директорию пользователя. Однако по мере работы со средствами операционной системы или САПР разработчику необходимо периодически менять директорию, например, переходить от одного проекта к другому. Для этого в командном интерпретаторе предусмотрена команда cd . Синтаксис команды: cd новая_директория.

В следующем примере пользователь из своей текущей директории (по умолчанию домашняя директория пользователя antonk) переходит в директорию /etc , затем обратно. Команда pwd служит для возврата к текущему местоположению пользователя. Знак «-» в качестве параметра при команде cd позволяет вернуться в предыдущее местоположение.

[antonk@lab4236s -]$ pwd

/home/antonk

[antonk@lab4236s -]$ cd /etc [antonk@lab4236s etc]$ pwd

/etc

[antonk@lab4236s etc]$ cd -

/home/antonk

[antonk@lab4236s -]$ pwd

/home/antonk

[antonk@lab4236s -]$

Создание нового каталога. Создание нового каталога (директории, папки) – одна из наиболее востребованных операций, которую выполняют пользователи Linux, в том числе и разработчики СБИС. Для того чтобы разделить проекты между собой, удобно хранить их и работать с ними в разных директориях. Создание новой директории осуществляется с помощью команды mkdir. Синтаксис команды: mkdir имя_новой_директории.

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

Соседние файлы в папке КТНИ