Окружение

Переменная POSIXLY_CORRECT определяет размер блока. Переменная TABSIZE задаёт ширину табуляции, если не установлена переменная POSIXLY_COR- RECT. Переменная COLUMNS (когда она содержит целое число) определяет ширину вывода в колонках (для использования с опцией -C). Имена файлов не должны обрезаться, чтобы уместить их в многоколоночном выводе.

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES. Переменная TZ задаёт временную зону для временных меток, которые выдаёт ls. Переменная LS_COLORS используется для задания цветов.

Переменная QUOTING_STYLE используется для задания значения по умолчанию для опции --quoting-style. Данная опция по умолчанию установлена в literal, но авторы предупреждают, что это умолчание может когда-нибудь в следующей версии измениться на shell.

Ошибки реализации

В BSD системах ls выдаёт размеры, которые являются наполовину меньше правильных, для файлов, которые смонтированы по NFS из HP-UX систем. В HP-UX системах ls выдаёт размеры, которые в два раза больше правильных для файлов, которые смонтированы по NFS из BSD систем. Это недостаток систем HP-UX; он также есть и в программе ls из HP-UX.

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

pwd

pwd (англ. print working directory — напечатать рабочий каталог) — консольная утилита в UNIX-подобных системах, которая выводит полный путь от корневого каталога к текущему рабочему каталогу.

Пример работы

bash-3.00$ cd /export/home/sergey/

bash-3.00$ pwd

/export/home/sergey

bash-3.00$

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

chdir

cd, также доступная как chdir (англ. change directory переводится как изменить каталог), эта команда командной строки используется для изменения текущего рабочего каталога в Unix, DOS и других операционных системах. Она также доступна для использования в скриптах командного интерпретатора или в DOS пакетных файлах. cd часто встроена в оболочки, такие как Bourne shell, csh, tcsh, bash (где вызывается Си функция POSIX chdir()) и в DOS COMMAND.COM.

Использование

Каталог как логическая секция файловой системы используется для содержания файлов. Каталоги могут также содержать и другие каталоги. Команда cd можеть быть использована для перехода во вложенные каталоги (подкаталоги), перехода обратно в родительский каталог, перехода в корневой каталог (/ в UNIX, \ в DOS) или для перехода в любой другой каталог.

Предположим некоторые последующие подкаталоги из файловой системы Unix, которые расположены в домашнем каталоге пользователя (обозначенного как «~») с файлом («text.txt») и тремя подкаталогами.

Пользовательский вид файловой системы Unix-like систем начинающейся с домашнего каталога (часто обозначаемого ~). Данные три каталога могут содержать другие подкаталоги и/или файлы.

Если текущий пользовательский рабочий каталоги — это домашний («~»), тогда ввод команды «ls» с последующим «cd games» может привести к следующему:

me@host:~$ ls

workreports games encyclopedia text.txt

me@host:~$ cd games

me@host:games$

Рабочий каталог изменится на «~/games».

Подобным образом в сессии DOS (общепринятый «домашний каталог» отсутствует и зависит от конкретной реализации) может наблюдать следующее:

C:\> dir

workreports <DIR> Wed Oct 9th 9:01

games <DIR> Tue Oct 8th 14:32

encyclopedia <DIR> Mon Oct 1st 10:05

text txt 1903 Thu Oct10th 12:43

C:\> cd games

C:\games>

Заметим, что cd даёт различный эффект в разных операционных системах, если её использовать без аргументов. Например, если выполнить без аргументов в DOS, будет показан полный путь к текущему рабочему каталогу, а если в Unix, то осуществится переход в домашний каталог. Эффект от команды cd в различных скриптах или пакетах также варьируется. Например, в DOS может напрямую изменить рабочий каталог из пакетного файла посредством команды, а в UNIX вызовом в скрипте cd, как правило, не меняет рабочий каталог пользователя (как следствие передачи управления в UNIX скриптах отдельной оболочке с собственным адресным пространством).

Другие упоминания

chdir() (или CHDIR(), в некоторых случаях регистрозависимо) также может быть одной из функций изменения каталога в языках программирования, например Perl, стандартных библиотеках Си, Visual Basic и т. д.

Переменные окружения

При выполнении изменяет значение переменной PWD на каталог, в который переходит пользователь

HOME - содержит адрес домашнего каталога

CDPATH Путь поиска для команды cd

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

rm

rm (от англ. remove) — утилита в UNIX и UNIX-подобных системах, используемая для удаления файлов из файловой системы. Ключи, использующиеся с rm:

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

-i — выводить запрос на подтверждение каждой операции удаления.

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

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

Пример использования: rm -rf mydir — рекурсивно удалить без подтверждения и кода ошибочного завершения файл (или директорию) mydir.

Внимание! Часто, в различных конференциях более знающие пользователи, при просьбе дать совет более молодому, предлагают ввести в консоль команду sudo rm -rf /, которая в свою очередь удаляет все содержимое корневой папки. По этому поводу существует шутка — патч Бармина.

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

Переменное окружение

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.

mv

mv (от англ. move) — утилита в UNIX и UNIX-подобных системах, используется для перемещения или переименования файлов или каталогов.

Использование:

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

mv file1 file_1 переименовывает файл

Если последний аргумент является именем существующего каталога, то mv перемещает все заданные файлы в этот каталог.

mv file ./dir/ перемещает 'file' в 'dir/file' относительно текущего каталога

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

Ключи, использующиеся с mv:

–f, не запрашивать подтверждения операций.

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

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

cp — команда Unix, предназначенная для копирования файлов из одного в другие каталоги (возможно, с другой файловой системой). Исходный файл остаётся неизменным, имя созданного файла может быть таким же, как у исходного, или измениться.

Последующие примеры использования касаются AIX версии cp. В других операционных системах семейства Unix данная команда может иметь другие ключи. В DOS и Windows аналогом является команда COPY.

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

Переменное окружение

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.

cp

Использование

Чтобы скопировать файл

cp [ -f ] [ -h ] [ -i ] [ -p ][ -- ] исходный_файл целевой_файл

Чтобы скопировать файл или файлы в другой каталог

cp [ -f ] [ -h ] [ -i ] [ -p ] [ -r | -R ] [ -- ] исходный_файл ... целевая_директория

Чтобы скопировать каталог в другой каталог

cp [ -f ] [ -h ] [ -i ] [ -p ] [ -- ] { -r | -R } исходная_директория ... целевая_директория

Синтаксис команды

-f (force) — разрешает удаление целевого файла, в который производится копирование, если он не может быть открыт для записи.

-h — используйте этот ключ, чтобы копировать символические ссылки. По умолчанию команда переходит по символическим ссылкам и копирует файлы, на которые те указывают.

-i (interactive) — команда будет запрашивать, следует ли перезаписывать конечный файл, имя которого совпадает с именем исходного, то есть если в параметре целевой_каталог или целевой_файл встречается такое же имя файла, какое было задано в параметре исходный_файл или исходная_директория, то запрашивается подтверждение. Для того, чтобы перезаписать файл, следует ввести y или его эквивалент для данной локали. Ввод любого другого символа приведёт к отмене перезаписи данного файла.

в некоторых системах назначен alias cp='cp -i', т.е. по умолчанию команда cp будет спрашивать о перезаписи

-p (preserve) — повторяет следующие свойства исходного файла или директории у целевого файла или директории:

Время последнего изменения и последнего доступа.

Идентификатор пользователя и группы.

Права доступа и биты SUID и SGID.

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

Переменное окружение

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.

cat

cat — утилита UNIX, выводящая последовательно указанные файлы, таким образом, объединяя их в единый поток. Если вместо имени файла указывается «-», то читается стандартный ввод.

cat a.txt - b.txt > abc.txt

Иногда (в учебных примерах) используется в качестве первого элемента конвейера обработки текста утилитами sed, awk и так далее, хотя в большинстве случаев её можно заменить оператором '<' либо передачей имени файла в качестве аргумента, что позволяет избежать создания отдельного процесса. Реально команда полезна в двух случаях:

Когда требуется вывести куда-то файл без изменений;

Когда требуется объединить более одного файла, либо файл(ы) с потоком стандартного ввода.

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

$ cat .bashrc | grep if

mkdir

mkdir в операционной системе Unix команда для создания новой директории.

Пример использования:

mkdir имя_директории

Создание нескольких директорий :

mkdir имя_директории1 имя_директории2 имя_директории3

создаст папки: имя_директории1, имя_директории2 и имя_директории3

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

Подобная команда есть в DOS (чаще используемая в сокращении md).

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

Переменное окружение

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.

rmdir

rmdir — команда в операционных системах DOS, UNIX, Windows которая удаляет директорию. Так же эту команду понимает большинство FTP серверов.

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

Пример использования:

rmdir имя_директории

где имя_директории соответсвует той директории, которую вы хотите удалить. В Unix cуществуют также ключи(параметры) для этой команды такой как -p, при использовании с этим ключом удаляются также директории высшего уровня если они пустые.

Например:

rmdir -p foo/bar/baz

Сначала будет удалена директори baz/, затем bar/ и в конце foo/ таким образом будут удалены три директории записанные в аргументе.

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

rm -r for/bar/baz

Для того чтобы сделать это в DOS, используйте deltree, или же rd /s имя_директори в Windows.

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

Переменное окружение

При работе обычным образом используются значения переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.

File

file — команда Unix, предназначенная для определения типа файла.

Использование

file [-zL] [-f file] file ...

Ключи

-f file: Считывает из указанного файла список файлов для проверки.

-L : Определяет тип файлов, указанных по ссылке.

-z : Определяет тип файлов, находящихся в сжатых файлах.

Не является фильтром, так как не работает со стандартным потоком ввода.

Find

find — утилита поиска файлов, используемая в UNIX‐подобных операционных системах. Может производить поиск в одной или нескольких директориях с использованием критериев, заданных пользователем. По умолчанию, find возвращает все файлы после текущего в рабочей директории. Более того, find позволяет применять пользователю определённые действия ко всем найденным файлам. Также поддерживаются регулярные выражения.

Список ключей

-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.

-type — тип искомого: f=файл, d=каталог, l=связь (link).

-user — владелец: имя пользователя или UID.

-group — владелец: группа пользователя или GID.

-perm — указываются права доступа.

-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).

-atime — время последнего обращения к файлу.

-ctime — время последнего изменения владельца или прав доступа к файлу.

-mtime — время последнего изменения файла.

-newer — искать файлы созданные позже указанной даты.

-delete — удалять найденные файлы.

-ls — генерирует вывод как команда ls -dgils.

-print — показывает на экране найденные файлы.

-exec command {} \; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.

-ok — перед выполнением команды указанной в -exec, выдаёт запрос.

-depth — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.

-prune — используется, когда вы хотите исключить из поиска определённые каталоги.

Примеры

Вывести список файлов во всей файловой системе, изменённых в течение последней минуты:

find / -newerct '1 minute ago' -print

Найти все файлы в указанном каталоге и изменить им права доступа:

find /path -type f -exec chmod 0644 {} \;

Найти все каталоги ниже указанного каталога и изменить им права доступа:

find /path -type d -exec chmod 0755 {} \;

Не является фильтром, так как не работает со входным потоком данных.

Переменное окружение

LANG Величина по умолчанию для интернациональных переменных которые не установлены или null

LC_ALL если установлена как не пустая строка, то переопределяет значения всех остальных интернациональных переменных

LC_CTYPE Определяет, как shell работает с символами

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

NLSPATH Определяет локации категорий интернациональных сообщений.

PATH Пути поиска команды в каталогах

TZ задает временную зону

chmod

chmod — изменение прав доступа к файлам. Название происходит от программы ОС Unix chmod, которая, собственно, изменяет права доступа к файлам, каталогам и символическим ссылкам.

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

Примером строкового формата может служить запись rwxr-xr-x.

Примером символьной записи может служить 755, которая эквивалентна записанной выше строковой записи: каждое право имеет числовой код и может быть задано вручную:

400 — владелец имеет право на чтение;

200 — владелец имеет право на запись;

100 — владелец имеет право на выполнение;

40 — группа имеет право на чтение;

20 — группа имеет право на запись;

10 — группа имеет право на выполнение;

4 — остальные имеют право на чтение;

2 — остальные имеют право на запись;

1 — остальные имеют право на выполнение.

Суммировав эти коды можно получить символьную запись. Например, chmod 444: 400+40+4=444 — все имеют право только на чтение.

Не является фильтром, так как не работает со входным потоком данных.

При работе обычным образом используются переменные LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.

ln

ln — команда UNIX, устанавливающая связь между файлом и именем файла.

Формат команды:

ln файл1 файл2

# создаётся «жёсткая» ссылка (hard link)

ln -s файл1 файл2

# создаётся «символическая» ссылка (symbolic link)

Эта команда создаёт жёсткую ссылку на файл «файл1», которая будет выглядеть как новый файл. Таким образом для файловой системы исходный файл «файл1» и ссылка на него «файл2», на самом деле физически будут являться одним и тем же файлом. Жесткие ссылки не могут указывать на файлы в других файловых системах.

Если вы создаёте символическую ссылку (используя ключ «-s»), то при этом файла «файл1» может и не существовать. Символическая ссылка с именем «файл2» всё равно будет создана.

Не является фильтром, так как не работает со входным потоком данных.

При работе обычным образом используются переменные LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.

wc

wc (от англ. word count — «количество слов») — unix‐утилита, выводящая число переводов строк, слов и байт для каждого указанного файла и итоговую строку, если было задано несколько файлов. Если входной файл не задан, или равен ‘-‘, то данные считываются со стандартного ввода.

Простой пример использования wc:

$ wc ideas.txt excerpt.txt

40 149 947 ideas.txt

2294 16638 97724 excerpt.txt

2334 16787 98671 total

В первой колонке содержится количество строк, во второй — слов, в третьей — символов.

Новые версии wc различают подсчет байтов и символов, чтобы правильно работать с кодировками вроде UTF-8, включающими многобайтовые коды символов. Для выбора режима работы используются ключи -c и -m.

Изначально GNU wc входил в состав пакета GNU textutils, но сейчас он является частью GNU coreutils.

Использование

wc -l <filename> вывести количество строк

wc -c <filename> вывести количество байт

wc -m <filename> вывести количество символов

wc -L <filename> вывести длину самой длинной строки

wc -w <filename> вывести количество слов

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

$ cat unix.doc | wc

29 656 31744

tee

tee - чтение со стандартного ввода и запись в стандарный вывод и файл

Употребление

tee [опции] файлы

Описание

Копирует стандартный ввод в каждый файл, а также на стандартный вывод.

Пример

$ cat .bashrc | tee sample

# .bashrc

# User specific aliases and functions

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

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

type

type - отображает информацию по команде

Употребление

type имена_команд

Описание

type отображает доступную информацию по каждой из заданных команд

Не является фильтром, так как не работает со входным потоком данных.

tail

tail — утилита в UNIX, выводящая несколько (по умолчанию 10) последних строк из файла.

Синтаксис

tail [параметры] имя_файла

Ключ -n <количество строк> (или просто -<количество строк>) позволяет изменить количество выводимых строк:

tail -20 /var/log/messages

Команда часто используется в качестве элемента конвейера обработки текста различными утилитами:

df | head -n 2 | tail -n 1 | column -t | cut -d" " -f1

Слежение за файлом

При использовании специального ключа -f утилита tail следит за файлом: новые строки (добавляемые в конец файла другим процессом) автоматически выводятся на экран в реальном времени. Это особенно удобно для слежения за логами. Например:

tail -f /var/log/messages

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

$ tail -3 .bashrc | grep t | tail -1

. /etc/bashrc

head

head — утилита в UNIX и UNIX-подобных системах, выводящая первые n строк из файла, по умолчанию n равно 10:

head /var/log/messages

Изменить количество выводимых строк можно указав ключ -n <количество строк>:

head -n 20 /var/log/messages

или -<количество строк>:

head -20 /var/log/messages

Зачастую используется в качестве элемента конвейера обработки текста различными утилитами, чтобы ограничить вывод информации:

df | head -n 2 | tail -n 1 | column -t | cut -d" " -f1

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

$ head -3 .bashrc | grep s | head -1

# .bashrc

more

more используется для просмотра содержимого текстовых файлов в операционных системах, основанных на Unix. В отличие от less, more выводит содержимое файла на экран отдельными страницами. Для перехода на следующую страницу используется клавиша пробела. Нажатие на клавишу «Enter» приводит к смещению вниз на одну строку. Кроме клавиш пробела и «Enter» в режиме паузы ещё некоторые клавиши действуют как управляющие (например, клавиша «В» возвращает текст на один экран назад). Выйти из режима просмотра можно с помощью клавиши «Q». Обо всех опциях команды more можно прочитать на справочной странице man.

Употребление

more [опции] имена_файлов

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

$ cat .bashrc | more

# .bashrc

# User specific aliases and functions

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

pg

pg - фильтр для просмотра файлов на экране

Употребление

pg [опции] [файлы]

Описание

Команда pg позволяет просматривать файлы страницами, равными по размеру экрану. Если имена файлов не заданы или задан символ -,

то просматривается стандартный ввод.

Пример

$ pg sample

# .bashrc

# User specific aliases and functions

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

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

$ cat .bashrc | pg

# .bashrc

# User specific aliases and functions

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

######

$ ls -l

итого 0

-rw-r--r-- 2 zeke zeke 0 2008-10-19 16:24 sample

-rw-r--r-- 1 zeke zeke 0 2008-10-19 16:24 sample_2

-rw-r--r-- 2 zeke zeke 0 2008-10-19 16:24 sample_3

lrwxrwxrwx 1 zeke zeke 6 2008-10-19 18:03 sample_4 -> sample

-rw-r--r-- 1 zeke zeke 0 2008-10-19 18:06 sample_5

drwxr-xr-x 2 zeke zeke 4096 2008-10-19 20:02 sample_dir/

первый символ: '-' означает что это файл

d - каталог

l - ссылка

следущие 9 символов определяют права доступа в порядке: user(владелец) group(группа-владелец) other(остальные)

затем следует число, определяющее количество жестких связей

далее идет владелец(alexander) и группа-владелец(alexander)

следущее поле - размер в байтах

потом дата последней модификации и имя файла/ссылки/каталога

Соседние файлы в папке материалы к собеседованию