Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Некоторые переменные окружения и команда echo

Читайте также:
  1. C) жеке командалар немесе команда топтары көп рет қайталанатын болса
  2. CGI-переменные окружения
  3. PS, TOP командаларымен процесстерді тексеру. Процестермен жұмыс істеуге арналған командалардың түрлері.
  4. Stty, tset командаларын тағайындау және сипаттау. Қатқыл дискімен жұмыс істеу командалары. /etc/passwd, /etc/shadow және /etc/group файлдары.
  5. А) постоянные и переменные издержки на производство товара
  6. Анализ конкурентного окружения.
  7. Анализ окружения системы
  8. Анализ среды непосредственного окружения
  9. Анализ факторов макроокружения
  10. Аппаратный стек и локальные переменные подпрограммы

 

Все процессы имеют свои переменные окружения, а 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 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.016 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав