
LINUX / KOZLOV2_1
.pdf[antonk@lab4236sl ~]$ ls –l
При этом дефис перед опцией обязателен, по нему ОС Linux отличает опцию от параметра.
Опция -а позволяет вывести на экран все файлы текущего каталога, включая так называемые скрытые файлы. Скрытыми часто бывают файлы конфигурации. Имена скрытых файлов всегда начинаются с точки, поэтому их часто называют точечными файлами.
При использовании двух, трех и более опций в составе командной строки их объединяют, при этом перед группой опций ставится один общий дефис. Например, опция -al выдает расширенный вывод информации обо всех файлах, содержащихся в текущем каталоге, включая скрытые файлы, а опция –ld – расширенную информацию о каталоге (не о содержимом), путь к которому указывается в качестве параметра.
Параметр – это слово, которое вводится в командной строке после команды, а при наличии опций – после опций.
В командах управления файлами в качестве параметров обычно используются имена файлов. Например, если требуется информация только об одном файле, то указывается его имя после опции -l:
[antonk@lab4236sl ~]$ ls -l BMT.log
-rw-rw-r– 1 antonk antonk 540 Sep 4 12:19 BMT.log
[antonk@lab4236sl ~]$
Вкачестве параметра может также выступать путь к файлу как с именем файла (ов), так и без него.
2.3.Редактирование командной строки
Винтерпретатор BASH заложены специальные возможности редактирования командной строки, которые могут оказаться весьма полезными при изучении ОС Linux. Перед выполнением команд их можно корректировать, перемещая курсор по командной строке и вставляя или удаляя символы. Это особенно полезно при работе с очень сложными командами, перезапись которых связана с тратой дополнительного времени.
Чтобы добавить текст, переместите курсор, используя клавиши со стрелками, в нужное место и введите требуемые символы. В любой момент можно инициировать выполнение команды нажатием клавиши Enter. Если при вводе команды допущена орфографическая ошибка, не нужно вводить команду заново. Исправить ошибку помогут операции редактирования.
21
PDF created with pdfFactory Pro trial version www.pdffactory.com
С помощью клавиши [вверх] можно вынести на экран только что выполненную команду. Затем можно выполнить команду еще раз или, отредактировав ее, выполнить модифицированную команду. Эта возможность очень удобна при многократном повторении некоторых операций, например при редактировании одного и того же файла.
Полезной особенностью интерпретатора BASH является хранение списка (или просто перечня) ранее введенных команд (history list). С помощью клавиши [вверх] можно выводить в командную строку по очереди все ранее введенные команды из перечня, а с помощью клавиши [вниз] – перемещаться вниз по этому перечню. Можно изменить и выполнить любую из ранее введенных команд после ее отображения в командной строке.
Если команда занимает несколько строк, пользователь имеет возможность ввести символ обратной косой черты [\] перед нажатием клавиши Enter. Обратная косая черта дает указание командному интерпретатору игнорировать нажатие клавиши Enter, позволяя продолжать ввод команды на следующей строке.
Вследующем примере команда ср вводится в трех строках. Первые две строки завершаются обратной косой чертой, что объединяет все три строки в одну командную строку:
[antonk@lab4236sl ~]$ cp -I\
>mydata\
>newdata
2.4.Общие, групповые и перенаправляющие символы
Вкачестве параметров в командах чаще всего встречаются имена файлов или другие объекты файловой системы. Однако имена файлов можно задавать как в явной (точное имя файла), так и в неявной (шаблон данного) формах, например, если вы будете знать
только часть имени файла или захотите указать несколько имен файлов с одинаковым расширением или одинаковыми буквами в начале или в конце.
В командном интерпретаторе используется ряд специальных символов, называемых групповыми символами, с помощью которых файлы можно искать, сравнивать, а также создавать список имен файлов. Этими символами являются «звездочка», «вопросительный знак» и квадратные скобки (*, ?, [ ]). Получив частичное имя файла, командный интерпретатор использует эти символы как образец для поиска и формирования cписка имен обнаруженных файлов. Параметр с неполным именем файла заменяется списком совпавших с ним имен файлов. Этот список имен может использоваться как параметр в
22
PDF created with pdfFactory Pro trial version www.pdffactory.com
командах, оперирующих с несколькими файлами (например, ls). Групповые символы командного интерпретатора приведены в табл.2.1.
Таблица 2.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
23
PDF created with pdfFactory Pro trial version www.pdffactory.com
[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 |
|
|
|
|
24 |
PDF created with pdfFactory Pro trial version www.pdffactory.com
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
25
PDF created with pdfFactory Pro trial version www.pdffactory.com
[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 ~]$ |
|
|
|
2.5. Cтандартные потоки Linux
Иногда требуется не только вывести информацию на экран, но также поместить ее
файл для дальнейшей сортировки или для демонстрации этих данных другим разработчикам СБИС. Такое действие можно организовать путем функций перенаправления. Полный перечень символов перенаправления указан в табл.2.2.
26
PDF created with pdfFactory Pro trial version www.pdffactory.com
Таблица 2.2
Cимволы перенаправления командного интерпретатора
Символы |
Назначение |
перенаправления |
|
|
|
> |
Перенаправляет стандартный вывод в |
|
файл или на устройство. При этом, если |
|
файл не существует, он создается, если же |
|
файл существует, он перезаписывается |
|
|
>! |
Восклицательный знак приводит к |
|
перезаписи файла, если он существует. |
|
Этот символ отменяет действие опции, |
|
которая запрещает перезапись |
|
существующих файлов |
|
|
< |
Перенаправляет стандартный ввод из |
|
файла или устройства в программу |
|
|
> > |
Перенаправляет стандартный вывод в |
|
файл или на устройство, добавляя |
|
выводимые данные к концу файла |
|
|
2 > |
Перенаправляет стандартный вывод |
|
сообщений об ошибках в файл или на |
|
устройство |
|
|
2>> |
Перенаправляет и добавляет стандартный |
|
вывод сообщений об ошибках в файл или |
|
на устройство |
|
|
2>&1 |
Перенаправляет стандартный вывод |
|
сообщений об ошибках на стандартный |
|
ввод |
|
|
>& |
Перенаправляет стандартный вывод |
|
сообщений об ошибках в файл или на |
|
устройство |
|
|
|& |
Перенаправляет по каналу стандартный |
|
вывод сообщений об ошибках на вход |
|
другой команды |
|
|
|
27 |
PDF created with pdfFactory Pro trial version www.pdffactory.com
Воперационной системе существует разделение между физическим файлом и его логической организацией. Вообще, по определению файл – поименованная область на диске. Логическая организация файлов определяет способ выполнения операций ввода и вывода. Данные, обрабатываемые в операциях ввода и вывода, организованы в виде файлов. Данные, вводимые с клавиатуры или выводимые на экран при работе команд Linux, направляются в поток данных, организованный как непрерывная совокупность байтов. Входной поток данных в ОС Linux называется стандартным вводом, а выходной поток данных – стандартным выводом. Существует также отдельный выходной поток данных, зарезервированный исключительно для сообщений об ошибках, называемый стандартным выводом сообщений об ошибках.
Поскольку стандартный ввод и стандартный вывод имеют такую же организацию, как файлы, они могут свободно взаимодействовать с файлами. В ОС Linux широко используются средства перенаправления, которые позволяют перемещать данные в файлы
ииз файлов. Можно, например, перенаправить стандартный вывод так, чтобы ин- формация не отображалась на экране, а записывалась в файл.
Вследующем примере показано, как информация сначала отображается на экране, затем записывается в новый файл «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\?
28
PDF created with pdfFactory Pro trial version www.pdffactory.com
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]
Если пользователь попытается использовать один и тот же файл для входного потока команды и перенаправленного потока назначения, возникнет ошибка. Так как операция перенаправления выполняется первой, входной файл, поскольку он существует,
29
PDF created with pdfFactory Pro trial version www.pdffactory.com
уничтожается и заменяется файлом с тем же именем. Когда команда начинает выполняться, она обнаруживает пустой входной файл.
2.6.Переменные окружения и псевдонимы
В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 установим запрет на перезапись файла средствами перенаправления и
30
PDF created with pdfFactory Pro trial version www.pdffactory.com