Читайте также:
|
|
Все процессы имеют свои переменные окружения, а shell позволяет вам увидеть их непосредственно при помощи команды echo. Некоторые интересные переменные:
1. HOME: эта переменная окружения содержит строку, в которой отображен путь к вашему домашнему каталогу.
2. PATH: содержит список всех каталогов, в которых shell должен будет искать исполняемые файлы, когда вы набираете команду. Обратите внимание, что в отличие от DOS, shell по умолчанию не будет искать команды в текущем каталоге!
3. USERNAME: эта переменная содержит ваше имя логина.
4. UID: эта переменная содержит ваш ID пользователя.
5. PS1: определяет, как будет выглядеть ваше приглашение, и зачастую является комбинацией специальных последовательностей. Для получения дополнительной информации вы можете прочитать bash(1) (страницу руководства), набрав в терминале man bash.
Чтобы shell вывел значение переменной, вы должны указать перед ее именем знак $. Вот пример с командой echo:
$ echo Hello
Hello
$ echo $HOME
/home/queen
$ echo $USERNAME
queen
$ echo Hello $USERNAME
Hello queen
$ cd /usr
$ pwd
/usr
$ cd $HOME
$ pwd
/home/queen
Как видите, shell подставляет значение переменной перед выполнением команды. В противном случае наш пример cd $HOME не заработал бы. По сути командный процессор сначала заменил $HOME на ее значение (/home/queen), так что строка стала cd /home/queen, чего мы и добивались. То же самое происходит и с примером echo $USERNAME.
2.3. cat: Вывод на экран содержимого одного или более файлов
Основное назначение этой команды – вывод содержимого одного или более файлов на стандартный вывод, обычно на экран:
$ cat /etc/fstab
/dev/hda5 / ext2 defaults 1 1
/dev/hda6 /home ext2 defaults 1 2
/dev/hda7 swap swap defaults 0 0
/dev/hda8 /usr ext2 defaults 1 2
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
/dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
$ cd /etc
$ cat modules.conf shells
alias parport_lowlevel parport_pc
pre-install plip modprobe parport_pc; echo 7 > /proc/parport/0/irq
#pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start
#alias char-major-14 sound
alias sound esssolo1
keep
/bin/zsh
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
/bin/ash
/bin/bsh
/usr/bin/zsh
Однако вывод содержимого файлов можно выполнить не только на экран, но и в другие файлы. Например, можно соединение в один несколько существующих файлов. При этом порядок соединения устанавливается порядком файлов, вводимых в командной строке:
сat <имя 1-го файла> < имя 2-го файла >…< имя n-го файла > > <имя создаваемого файла путем соединения выше указанных>
добавление одного файла к другому ужу существующему
cat <имя добавляемого файла> >> <имя файла получателя>
создание текстового файла
cat > <имя создаваемого файла>
2.4. less: Пейджер
Название произошло от игры слов, связанной с первым пейджером из когда-либо использовавшихся в UNIX® с именем more (more - больше; less - меньше). Пейджер (page - страница) - это программа, которая позволяет пользователю просматривать большие файлы по частями страница за страницей (точнее, экран за экраном). Причина, по которой мы рассматриваем less, а не more, заключается в том, что less более интуитивна. Вам следует использовать less для просмотра больших файлов, которые не умещаются на одном экране. Например:
less /etc/termcap
Для перемещения по этому файлу используйте клавиши вверх и вниз. Для выхода нажмите Q. Возможности less значительно шире: нажмите H для вызова справки с различными доступными опциями.
2.5. ls: Вывод списка файлов
Команда ls (LiSt) эквивалентна команде dir в DOS, но сделать она может больше, гораздо больше. В действительности это связано с тем, что файлы также могут делать гораздо больше. Синтаксис команды ls:
ls [опции] [файл|каталог] [файл|каталог...]
Если в командной строке не указан файл или каталог, ls выведет список файлов в текущем каталоге. Опций довольно много, поэтому мы опишем только некоторые из них:
l -a: вывод списка всех файлов, включая скрытые файлы. Напомним, что в UNIX® скрытые файлы - это те, чьи имена начинаются с.; опция -A выводит список «почти» всех файлов, т.е. всех файлов, которые были бы показаны опцией -a за исключением «.» и «..»
l -R: рекурсивный вывод списка, т.е. все файлы и подкаталоги в каталогах, указанных в командной строке.
l -h: вывод для каждого файла его размера в удобном для чтения формате. Это означает, что вы увидите размеры файлов с использованием суффиксов типа "K", "M" и "G", например, "234K" и "132M". Пожалуйста, обратите внимание, что размеры вычисляются по основанию 2, а не по основанию 10. Это означает, что 1 K на самом деле равен 1024 байтам, а не 1000 байт.
l -l: вывод дополнительной информации о файлах: их права доступа, владельцы и группы, размеры файлов и время последнего доступа.
l -i: вывод перед каждым файлом номера inode (уникальный номер файла в файловой системе, см. Глава 4, Файловая система Linux).
l -d: обработка каталогов, указанных в командной строке так, как если бы они были обычными файлами, вместо вывода списка их файлов.
Вот несколько примеров:
l ls -R: рекурсивно выводит список содержимого текущего каталога.
l ls -is images/..: выводит список с номером inode и размером в килобайтах для каждого из файлов в каталоге images/, а также в родительском каталоге по отношению к текущему.
l ls -l images/*.png: выводит список всех файлов в каталоге images/, чьи имена заканчиваются на.png, включая файл.png, если такой существует.
2.6. mkdir, touch: Создание пустых каталогов и файлов
Команда mkdir (MaKe DIRectory - создать каталог) используется для создания каталогов. Ее синтаксис довольно прост:
mkdir [опции] <каталог> [каталог...]
Только на одну опцию имеет смысл обратить внимание: опция -p. Она выполняет два действия:
1. создаёт родительские каталоги, если они не существовали до этого. Без этой опции mkdir просто вызовет сбой, жалуясь на отсутствие заявленных каталогов;
2. молча завершит работу, если каталог, который вы хотели создать, уже существует. Для сравнения, если вы не указали опцию -p, mkdir возвратит сообщение об ошибке, жалуясь на то, что каталог уже существует.
Вот несколько примеров:
l mkdir foo: создает каталог foo в текущем каталоге;
l mkdir -p images/misc docs: создает каталог misc в каталоге images. Сначала создается последний каталог, если такой не существует (-p); также создается каталог с именем docs в текущем каталоге.
Изначально команда touch предназначалась не для создания файлов, а для обновления времени последнего доступа к файлу и времени его изменения[12]. Однако touch создаст перечисленные пустые файлы, если они не существуют. Ее синтаксис:
touch [опции] файл [файл...]
Таким образом, выполнение команды:
touch file1 images/file2
создаст в текущем каталоге пустой файл с именем file1 и пустой файл file2 в каталоге images, если ранее эти файлы не существовали.
2.7. rm: Удаление файлов или каталогов
Команда rm (ReMove - удалить) является аналогом команд DOS del и deltree, и содержит дополнительные опции. Её синтаксис выглядит следующим образом:
rm [опции] <файл|каталог> [файл|каталог...]
Опции включают:
l -r или -R: рекурсивное удаление. Эта опция является обязательной для удаления каталога, пустого или нет. Однако для удаления пустых каталогов вы также можете воспользоваться командой rmdir.
l -i: запрос подтверждения перед каждым удалением. Обратите внимание, что по умолчанию в Mandriva Linux, rm по соображениям безопасности - это алиас команды rm -i (похожие алиасы существуют для cp и mv). Однако ваше мнение относительно полезности этих алиасов может измениться. Если вы хотите удалить их, вы можете создать пустой файл ~/.alias, который предотвратит использование общесистемных алиасов. Или же вы можете отредактировать свой файл ~/.bashrc для отключения некоторых общесистемных алиасов путем добавления этой строки: unalias rm cp mv
l -f, как противоположность -i, принудительно удалит файлы или каталоги, даже если у пользователя нет доступа для записи в файлы[13].
Несколько примеров:
l rm -i images/*.jpg file1: удаляет все файлы с именами, заканчивающимися на.jpg, в каталоге images и удаляет file1 в текущем каталоге, запрашивая подтверждение на удаление каждого файла. Отвечайте y для подтверждения удаления и n для отмены.
l rm -Rf images/misc/ file*: удаляет без запроса подтверждения весь каталог misc/ в каталоге images/ вместе со всеми файлами в текущем каталоге, чьи имена начинаются с file.
Внимание! При использовании rm файлы удаляются безвозвратно. Способа для их восстановления не существует! (Ну, вообще-то для этого всё-таки есть несколько способов, но это нетривиальная задача и обычно используется предупреждение удаления файлов.) Не раздумывайте при использовании опции -i, чтобы убедиться в том, что вы не удалите по ошибке что-нибудь важное.
2.8. mv: Перемещение или удаление файлов
Синтаксис команды mv (MoVe - переместить) следующий:
mv [опции] <файл|каталог> [файл|каталог...] <назначение>
Обратите внимание, что когда вы перемещаете несколько файлов, назначением должен быть каталог. Чтобы переименовать файл, просто переместите его в файл с новым именем.
Некоторые опции:
l -f: принудительное выполнение операции. Если перезаписывается существующий файл, предупреждения не выводятся.
l -i: противоположное действие. У пользователя спрашивается подтверждение перед перезаписью существующего файла.
l -v: подробный режим, сообщает обо всех изменениях и действиях.
Несколько примеров:
l mv -i /tmp/pics/*.png.: перемещает все файлы из каталога /tmp/pics/, чьи имена заканчиваются на.png, в текущий каталог (.), но запрашивает подтверждение перед перезаписью в нем любых файлов.
l mv foo bar: переименовывает файл foo в bar. Если каталог bar уже существовал, результатом выполнения этой команды будет перемещение файла foo или всего каталога (самого каталога плюс всех файлов и каталогов в нем, рекурсивно) в каталог bar.
l mv -vf file* images/ trash/: перемещает без запроса подтверждения все файлы из текущего каталога с именами, начинающимися с file, вместе со всем каталогом images/ в каталог trash/, и показывает порядок выполнения каждой операции.
2.9. cp: Копирование файлов и каталогов
Команда cp (CoPy - копировать) является аналогом команд DOS copy и xcopy, и содержит дополнительные опции. Её синтаксис выглядит следующим образом:
cp [опции] <файл|каталог> [файл|каталог...] <назначение>
Вот наиболее общие опции cp:
l -R: рекурсивное копирование; обязательна для копирования каталога, даже если он пуст.
l -i: запрос подтверждения перед перезаписью любых файлов, которые могут быть перезаписаны.
l -f: противоположность -i, заменяет любые существующие файлы без запроса подтверждения.
l -v: подробный режим, сообщает обо всех действиях, выполняемых cp.
Несколько примеров:
l cp -i /timages/* images/: копирует все файлы из каталога /timages/ в каталог images/, находящийся в текущем каталоге. Запрашивается подтверждение, если должен быть перезаписан файл.
l cp -vR docs/ /shared/mp3s/* mystuff/: копирует весь каталог docs, плюс все файлы из каталога /shared/mp3s в каталог mystuff.
l cp foo bar: делает копию файла foo в файл с именем bar в текущем каталоге.
2.10. cmp, diff: Сравнение файлов.
Команда cmp сравнивает содержимое двух файлов. Если различий нет, то ничего не выведется, иначе выведется строка и номер символа, в котором файлы различны.
Если команда с параметром –l то будет выводиться номер байта, в котором различия.
Если команда с параметром -s, то будет выводится 0 если файлы идентичны,1 если есть различия, и значения больше 1 если произошла ошибка.
cmp [-ls] <имя 1-го файла> <имя 2-го файла>
Команда diff сравнивает файлы построчно, а не посимвольно как cmp. Различие между работой этих двух команд можно проиллюстрировать на примере. Если два файла отличаются только символом новой строки в начале, то сравнивая их при помощи команды cmp мы получим что они различны в каждом символе. А команда diff вернет, что файлы различны только в одной строке.
2.11. cut: Извлечение столбцов данных из файла
Команда cut извлекает столбцы данных (данные могут быть в байтах, символах или полях) из каждой строки файла.
cut [-cdf список] <файл>
Пусть каждая строка файла с названием names содержит данные об одном человеке:
Листинг 1
Fast Freddy:Sacramento:CA:111-1111-111:Avenue 5
Joe Some:Los Angeles:CA:222-2222-2222:Arlean
Drake Snake:San Francicsko:CA:333-333-3333:GreenStreet
Что бы вывести только имена и телефоны всех людей достаточно указать параметры –f и-d:
cut –f 1,4 –d: names
Общий вид:
cut –f <номер поля1>,<номер поля2>,<…> -d <разделитель полей> <имя файла>
Параметр «–f список» определяет поля, которые выбираются. Поля должны отделяться двоеточием и они указываются параметром -d.
Для показа содержимого определенного столбца используется параметр «-c список»:
cut –c 1-5 names
В результате на экран выведется содержимое первого столбца с 1 по 5 символ:
Fast
Joe
Drake
2.12. du: Определение размера каталога или файла
Команда du предоставляет информацию о размере занимаемого каталогом или файлом дискового пространства.
du [-ask] <имена файлов>
du -a – разделит суммарное значение и покажет размер каждого каталога и подкаталога.
du -s – позволит показать только итоговое значение.
du -k – приводит к выводу размеров всех файлов в килобайтах.
Дата добавления: 2014-12-19; просмотров: 80 | Поможем написать вашу работу | Нарушение авторских прав |