15 практических примеров использования Unix команды ls


Оглавление (нажмите, чтобы открыть):

Часто используемые unix команды

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

Файловые команды

ls – список файлов и каталогов в текущей директории

ls -al – форматированный список со скрытыми каталогами и файлами

чтобы посмотреть список файлов и их дату модификации:

find . -maxdepth 1 -printf «%T@ %Tc %p\n» | sort -n

  • %Tk: File’s last modification time in the format specified by k.
  • @: seconds since Jan. 1, 1970, 00:00 GMT, with fractional part.
  • c: locale’s date and time (Sat Nov 04 12:02:33 EST 1989).
  • %p: File’s name.

отсортировать по Change:

cd /dir – перейти в директорию /dir

cd – сменить на домашний каталог, аналог: cd

pwd – показать текущий каталог

mkdir dir – создать каталог dir

показать разницу файлов в указанных директория:

diff -r dir1 dir2 — покажет файлы существующие только в dir1 and и только существующие в dir2
diff -r dir1 dir2 | grep dir1 — покажет файлы существующие только в dir1
diff -r dir1 dir2 | grep dir1 | awk ‘‘ > difference1.txt

echo > /dir/file — пресечь файл до нулевой длинны

rm file – удалить file

rm -r dir – удалить каталог dir

rm -f file – удалить форсированно file

rm -rf dir – удалить форсированно каталог dir *

cp file1 file2 – скопировать file1 в file2

cp -r dir1 dir2 – скопировать dir1 в dir2; создаст каталог dir2, если он не существует

примеры:

скопировать файл: cp -rp /dir/ file /to/dir/

скопировать директорию dir целиком: cp -rp / dir /to/dir/

скопировать только содержимое директории dir : cp -rp / dir / /to/dir/

mv file1 file2 – переименовать или переместить file1 в file2. если file2 существующий каталог – переместить file1 в каталог file2

ln -s file link – создать символическую ссылку link к файлу file

touch file – создать file

cat > file – направить стандартный ввод в file

more file – вывести содержимое file

head file – вывести первые 10 строк file

tail file – вывести последние 10 строк file (просмотр последних записей в лог-файл: tail -f /var/log/maillog)

tail -f file – вывести содержимое file по мере роста, начинает с последних 10 строк

sed — потоковый текстовый редактор, который может не только удалять строки, но и менять значения в них:

примеры:

простая замена: sed -e ‘s|это|на это|g’ /в/файле.txt > /записать/в/файл.txt

замена с экранированем: /usr/bin/sed -e «s|old\[‘SYSTEM’\]|new|g» /input.txt > /output.txt

Несколько замен объединены в одном файле subst.sed: sed -f subst.sed inputFileName > outputFileName

содержание файла subst.sed приблизительно может быть таким:

В свою очередь для замены в множестве файлов советую использовать такой баш-скрипт:

for file in $(find . -type f -name ‘*.php’)
do
sed -f /usr/home/replace.txt $file > tempfile
mv tempfile $file
echo «Modified: » $file
done

а запускать его так:
cd /usr/dir
/bin/bash /usr/dir/replace

find — утилита поиска файлов

примеры:

нахождение php-файлов в которые внесены изменения:

c расширением php в прошедшие 7 дней (от текущего дня): find /dir/ -type f -mtime -7 -name ‘*.php’ -print

измененные файлы и директории за последние 10 секунд: find /dir/ -cmin +1 -cmin -10

измененные между 2500 и 2800 минутами тому назад: find -cmin +2500 -cmin -2800

c расширением php между 15 и 17 днями тому назад (от текущего дня): find /dir/ -type f -mtime +15 -mtime -17 -name ‘*.php’ -print

найти и удалить все файлы в директории, кроме файла file.tgz: find /dir/ ! -name ‘file.tgz’ -delete

найти и удалить все файлы в директории, кроме файлов file1.txt и file2.txt: find /dir/ -type f ! -name ‘file1.txt’ ! -name ‘file2.txt’ -delete

узнать количество файлов в директории:

  • find /dir/ -type f | wc -l
  • ls /dir/ | wc -l

найти и удалить директории в глубине уровня 3, относительно указанной find /dir/name/path/ -mindepth 3 -maxdepth 3 -type d | xargs rm -rf

xargs — выполнение любой команды используя результаты предыдущей команды

пример в котором находится директория и копируется:

ls -Art /var/www/builds/ | grep myFolder- | tail -n 1 | xargs -I<> cp -r ‘/var/www/builds/’<> /var/www/builds/myFolderClone

пример удаления найденных директорий:

ls /my/dir/ | grep folder-name | xargs -I<> rm -rf ‘/my/dir/<>‘

Управление процессами

ps – вывести ваши текущие активные процессы (примеры: ps ax uf | more или ps ax -u | more)

top – показать все запущенные процессы

kill pid – убить процесс с id pid (kill -s 9 SID — чтобы наверняка)

killall proc – убить все процессы с именем proc *

bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне

fg – выносит на передний план последние задачи

fg n – вынести задачу n на передний план

kill -STOP 7727 – поставить на паузу процесс 7727. The eyes will stop moving when they are paused.

kill -CONT 7727 – снять с паузы процесс 7727

Права доступа на файлы

chmod octal file – сменить права file на octal, раздельно для пользователя, группы и для всех добавлением:

  • 4 – чтение (r)
  • 2 – запись (w)
  • 1 – исполнение (x)

chmod 777 – чтение, запись, исполнение для всех
chmod 755 – rwx для владельца, rx для группы и остальных.

посмотреть octal файла можно так: stat -c «%a» /path/file

примеры:

изменяем владельца и группу для директории: chown R yapro:www /usr/home/dir

изменяем владельца и группу всем дочерним директориям и файлам: chown -v -R yapro:www /usr/home/dir/

изменение прав доступа к файлам и папкам, рекурсивно: chmod -R 775 /home/dir/

использование вместе с командой поиска:

выставляем права директориям: find /home/dir/ -type d -exec chmod 775 <> \;

выставляем права php-файлам: find /home/dir/ -type f -name ‘*.php’ -exec chmod 644 <> \;

Дополнительные опции: man chmod.

SSH

ssh user@host – подключится к host как user

ssh -p port user@host – подключится к host на порт port как user

ssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

Поиск

locate file – найти все файлы с именем file

grep pattern files – искать pattern в files

grep -r pattern dir – искать рекурсивно pattern в dir
например найти в текущей директории и вывести пути к файлам: grep -r -l mytext ./*

command | grep pattern – искать pattern в выводе command

примеры:

grep -rl ‘text’ /dir/ — рекурсивный поиск строки во всех файлах директории


grep -rl —include=»*.php» «my text» /dir/ — поиск только по файлам с расширением .php

grep -rl ‘text’ /path/ | grep -v ‘\.svn’ — поиск строки в файлах, расширение которых не заканчивается на .svn

grep pattern file.txt —поиск pattern в файле file.txt, с выводом полностью совпавшей строкой
grep -o pattern file.txt —поиск pattern в файле file.txt и вывод только совпавшего куска строки
grep -i pattern file.txt —игнорирование регистра при поиске
grep -bn pattern file.txt —показать строку (-n) и столбец (-b), где был найден pattern
grep -v pattern file.txt —инверсия поиска (найдет все строки, которые не совпадают с шаблоном pattern)
grep -A 3 pattern file.txt —вывод дополнительных трех строк, после совпавшей
grep -B 3 pattern file.txt —вывод дополнительных трех строк, перед совпавшей
grep -C 3 pattern file.txt —вывод три дополнительные строки перед и после совпавшей
grep -r pattern $HOME —рекурсивный поиск по директории $HOME и всем вложенным
grep -c pattern file.txt —подсчет совпадений
grep -L pattern *.txt —вывести список txt-файлов, которые не содержат pattern
grep -l pattern *.txt —вывести список txt-файлов, которые содержат pattern
grep -w pattern file.txt —совпадение только с полным словом pattern
grep -f patterns.txt file.txt —поиск по нескольким pattern из файла patterns.txt, шаблоны разделяются новой строкой
grep -I pattern file.txt —игнорирование бинарных файлов
grep -v -f file2 file1 > file3 —вывод строк, которые есть в file1 и нет в file2
grep -in -e ‘python’ `find -type f` —рекурсивный поиск файлов, содержащих слово python с выводом номера строки и совпадений
grep -inc -e ‘test’ `find -type f` | grep -v :0 —рекурсивный поиск файлов, содержащих слово python с выводом количества совпадений
grep . *.py —вывод содержимого всех py-файлов, предваряя каждую строку именем файла
grep «Http404» apps/**/*.py —рекурсивный поиск упоминаний Http404 в директории apps в py-файлах
tail -n12345 /var/log/apache2/other_vhosts_access.log | grep -v » 200 » | grep -v » 304 » — посмотреть неудачные ответы на запросы (посмотрите так же др. классные примеры по работе с логами apache)

Системная информация

date – вывести текущую дату и время ( синтаксис: yy]mm]dd]HH]MM[.ss] )

пример установки времени на сервере (секунды вводить не обязательно):

date 1230100509.45 # в Linux и Solaris; или
date 0912301005.45 # в FreeBSD

cal – вывести календарь на текущий месяц

uptime – показать текущий аптайм

w – показать пользователей онлайн

whoami – имя, под которым вы залогинены

finger user – показать информацию о user

uname -a – показать информацию о ядре

cat /proc/version — более подробно

file /sbin/init — узнать разрядность ОС (или так: getconf LONG_BIT)

cat /etc/issue — реальное имя OC или на чем базируется данная OC

cat /proc/cpuinfo – информация ЦПУ

cat /proc/meminfo – информация о памяти

df – показать инф. о использовании дисков

du – вывести “вес” текущей директории

примеры:

вес указанной директории: du -shc /dir
вес директории указанной директории : du -shc /dir/*
размеры всех всех дочерних директории и файлов: du -hc /dir
размеры всех директории (включая скрытые) в текущей директории: du -sch .[!.]* * |sort -h

free – использование памяти и swap

whereis app – возможное расположение программы app

which app – какая app будет запущена по умолчанию

Архивация

tar cf file.tar dir – создать tar-архив с именем file.tar содержащий files

tar xf file.tar – распаковать file.tar

tar czf file.tar.gz dir – создать архив tar с сжатием Gzip

/bin/tar -czf archive.tar.gz dir dir2/image.gif — запаковать сразу из двух мест

tar xzf file.tar.gz – распаковать tar с Gzip

tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2

tar xjf file.tar.bz2 – распаковать tar с Bzip2

gzip file – сжать file и переименовать в file.gz

gzip -d file.gz – разжать file.gz в file

примеры:

распаковываем zip-архив: unzip /home/file.zip -d /home/to/dir

создание tar-архива: tar -cz -f «file.tgz» «/home/dir/»

распаковка tar-архива: tar -xz —directory=»/usr/home/dir/» -f «file.tgz»

Жесткий диск

измерить скорость жесткого диска: dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync

Сеть

ping host – пропинговать host и вывести результат

whois domain – получить информацию whois для domain

dig domain – получить DNS информацию domain

dig -x host – реверсивно искать host

netstat — показать содержимое различных структур данных, связанных с сетью, например проверим открытый порт 9123 и какая программа его открыла:

telnet — богатая утилита, но обычно я ей проверяю открыт ли порт, например:

Как видите, подключение установлено, а чтобы выйти (прервать подключение) нажмите одновременно две клавиши Ctrl + ] затем введите quit и нажмите клавишу Enter.

например:

или посмотрим открытые порты:

sudo lsof -i
sudo netstat -lptu
sudo netstat -tulpn

wget file – скачать file

wget -c file – продолжить остановленную закачку

примеры:

скачивание файла с фтп-сервера: ftp http://site.ru/file.tgz

скачивание файла по http: wget http://site.ru/file.tgz

Почта

отправить содержимое файла на почту:

cat /dir/file | mail -s «my config» user@site.ru

отправить приатаченный файл на почту:

mail -a /dir/file -s «my config» user@site.ru

и программа mail даст возможность ввести сообщение, написали — нажимайте Ctrl+D и письмо отправится.

MySQL

mysqlcheck -u root -pPWD DB_NAME TABLE_NAME -r — починить таблицу

mysqlcheck -u root -pPWD DB_NAME TABLE_NAME -o — оптимизировать таблицу

Клавиатурные сочетания

Ctrl+C – завершить текущую команду

Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне

Ctrl+D – разлогиниться, тоже самое, что и exit

Ctrl+W – удалить одно слово в текущей строке

Ctrl+U – удалить строку

!! – повторить последнюю команду

man command – показать мануал для утилиты по имени command

Полный список UNIX-команд можно найти на Википедии

p.s. чтобы работать с командами было веселей (удобней), советую разукрасить консоль:

иногда, вместо файла .bashrc используется файл .bash_profile

Учим Unix

1 авг. 2008 г.

ls: просмотр содержимого каталога

Подсказка
Чтобы увидеть все возможные опции команды ls, прочтите ее man-страницу, введя в командной строке man ls. Если вы хотите распечатать эту информацию, то перенаправьте вывод на принтер, введя в командной строке

Введите команду ls -a. Теперь вы можете видеть скрытые файлы, имена которых начинаются с точки:

Скрытые файлы — это большей частью файлы, которые содержат дополнительные настройки для различных программ, диспетчеров окон, оболочек и т.п. Прячут их для того, чтобы предотвратить случайные вмешательства пользователя. Когда вы что-то ищете в каталоге, это, как правило, не конфигурационные файлы, и сокрытие их при обычном выводе содержимого каталога на экран уменьшает количество ненужной информации.
Просмотр всех файлов с использованием команды ls -a снабжает вас большим количеством информации, но вы можете узнать еще больше, если воспользуетесь другими ключами.
Если вы хотите узнать размеры файлов в каталоге, а также дату их создания и прочую информацию, добавьте к команде ls -a ключ -l ( long ). Этот ключ позволит получить практически полную информацию обо всех файлах: дату и время создания, размер, владельца, права доступа и так далее.
Не обязательно находиться в том каталоге, содержимое которого вы хотите узнать с помощью команды ls. Например, чтобы увидеть, что имеется в каталоге /etc/, находясь при этом в вашем домашнем каталоге, введите:
Ниже приведен краткий список наиболее часто употребляемых ключей команды ls. Не забудьте, что вы можете прочитать полный список опций, вызвав man-страницу команды ls (введите man ls).

  • -a (all) — выводит список всех файлов каталога, в том числе и скрытые файлы. .. и . в верхней части списка относятся, соответственно, к каталогу на уровень выше текущего и текущему.
  • -l (long) — выводит информацию о содержимом каталога, включая права доступа, владельца, группу, размер, время создания, является ли файл символьной ссылкой на другой файл и на какой именно.
  • -F (file type) — добавляет символ в конце строк вывода: / означает каталог, @ — символьную ссылку на другой файл и * означает, что файл является исполняемым.
  • -r (reverse) — выводит список содержимого каталога в обратном порядке.
  • -R (recursive) — будет выведено также содержимое всех подкаталогов текущего каталога рекурсивным образом.
  • -S (size) — сортирует файлы по размеру.
  • -i — вывод перед каждым файлом номера inode (уникальный номер файла в файловой системе).
  • -d — обработка каталогов, указанных в командной строке так, как если бы они были обычными файлами, вместо вывода списка их файлов.

Каналы и утилиты постраничного просмотра

Команда more

Для предотвращения слишком быстрой прокрутки вывода команды ls перенаправьте ее вывод утилите less или more. Это позволит вам просматривать вывод поэкранно (« постранично »).
Чтобы увидеть содержимое каталога /etc с помощью команды less, введите в командной строке следующую команду:
Для прокрутки вывода вперед нажмите клавишу [Пробел], назад — клавишу [b], для выхода — клавишу [q].
Также можно воспользоваться другой утилитой с аналогичным назначением, more.

SysAdmin, DevOps advocate
at ManageBac

Команда ls применяется для просмотра списка файлов в каталоге. Хотя, если вы используете Unix-like систему, то вы это уже знаете не хуже меня.


Но все ли вы знаете об этой прекрасной команде? Может быть вы используете ее не до конца?

1. Показать все файлы в каталоге

Классический вариант команды ls — это:

Вывод покажет все файлы и каталоги в текущем каталоге, включая скрытые. В том числе и служебные ‘.’ и ‘..’

2. Скрыть служебные каталоги ‘.’ и ‘..’

3. Отображение файлов и каталого в обратном порядке

По умолчанию, ls возвращает список файлов и каталогов в алфавитном порядке. Если необходимо вернуть список в обратном порядке:

4. Сортируем файлы по расширению

Это тоже можно легко сделать:

5. Сортировка по времени модификации

6. Вывести список файлов рекурсивно по подкаталогам

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

7. Вывод списка файлов вместе с их inodes

ls так же умеет выводить список файлов и каталогов с указанием занимаемых inodes:

8. Детализированная информация

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

9. Как вывести автора файла

Официальный сайт GNU говорит: «В GNU/Hurd автор файла может отличаться от его владельца, но в других ОС оба эти аттрибута одинаковы».

10. Как вывести имена файлов со специальными символами (пробелы, символ новой строки и т.п.)

ls позволяет вывести список файлов с уже экранированными спецсимволами:

11. Как вывести размер файла в другом размере

12. Как вывести список только имен файлов и их размеров

13. Как исключить файлы резервных копий

Классические утилиты Unix зачастую создают резервные копии с символом тильды ‘

‘ в конце. Чтоб исключить их из вывода используйте -B опцию:

14. Как вывести спецсимволы, указывающие на тип файла

Обычно ls выводит список файлов и подствечивает разные типы файлов цветами. Мы можем заставить его отметить разные типы файлов специальными символами

  • @ — символическая ссылка
  • * — запускаемый файл
  • = — стандартный unix соккет
  • | — именованный канал (pipe)
  • > — дверь (door)
  • / — каталог

15. Как изменить формат вывода

Опция —format позволяет изменить формат вывода команды ls. Эта опция требует указывания одного из параметров ‘verbose’ или ‘long’, ‘commas’, ‘horizontal’ или ‘across’, ‘vertical’, ‘single-column’.

16. Скрытие некоторых файлов

Если есть необходимость скрыть из вывода какие-либо файлы, то можно использовать опцию —hide

Заключение: вы уверены, что вы правильно использовали команду ls? 😉

Примеры команды ls в Linux

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

Используем команду ls в Linux

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

Определение расположения определенной папки

Сперва следует обязательно разобраться с процедурой перехода к необходимому расположению через «Терминал». Если вы будете осуществлять сканирование нескольких папок, находящихся в одной директории, проще это делать сразу из нужного места, чтобы избежать надобности ввода полного пути к объекту. Определяется место и выполняется переход так:

  1. Откройте файловый менеджер и перейдите в требуемую директорию.

Щелкните по любому элементу в ней ПКМ и выберите «Свойства».

Во вкладке «Основные» обратите внимание на пункт «Родительская папка». Именно его и нужно запомнить для дальнейшего перехода.

Здесь введите cd /home/user/folder , чтобы перейти в интересующее расположение. User в данном случае — имя пользователя, а folder — название конечной папки.

Теперь можно смело переходить к использованию рассматриваемой сегодня команды ls с применением различных аргументов и опций. Мы предлагаем ознакомиться с основными примерами более детально далее.

Просмотр содержимого текущей папки

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

Папки отмечены синим цветом, а другие элементы — белым. Все будет выведено в одну или несколько строк, что зависит от количества находящихся объектов. Вы можете ознакомиться с полученными результатами и переходить далее.

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

В начале статьи рассказывалось о том, как переходить по необходимому пути в консоли, выполнив всего одну команду. Находясь в текущем расположении, пропишите ls folder , где folder — название папки, чтобы просмотреть ее содержимое. Утилита корректно отображает не только латинские символы, но еще и кириллицу, учитывая при этом регистр, что иногда немало важно.

Обратите внимание, что если вы предварительно не перешли в расположение папки, в команде вам следует указать путь к ней, дабы позволить инструменту обнаружить объект. Тогда строка ввода приобретает вид, например, ls /home/user/folder/photo . Касается такое правило ввода и последующих примеров с использованием аргументов и функций.

Определение создателя папки

Синтаксис команды ls построен так же, как и у большинства других стандартных утилит, поэтому даже начинающий пользователь не найдет в этом ничего нового или незнакомого. Разберем первый пример при надобности просмотра автора папки и даты изменения. Для этого введите ls -l —author folder , где folder — название директории либо полный путь к ней. После активации вы увидите искомую информацию.

Вывод скрытых файлов

В ОС Linux присутствует достаточно большое количество скрытых элементов, особенно когда речь идет о системных файлах. Отобразить их вместе со всем остальным содержимым директории можно, применив определенную опцию. Тогда команда выглядит так: ls -a + название или путь к папке .

Найденные объекты будут отображаться с ссылками на место хранения, если вас не интересует эта информация, просто измените регистр аргумента, написав в таком случае -A .

Сортировка содержимого

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

Если вас интересует отображение в обратном порядке, придется добавить только одну букву в аргумент, чтобы получилось ls -lShr folder .

Вывод результатов в алфавитном порядке производится через ls -lX + название или путь к директории .

Сортировка по времени последнего изменения — ls -lt + название или путь к директории .

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

  • -B — не отображать присутствующие резервные копии;
  • -С — вывод результатов в виде колонок, а не строк;
  • -d — показ только папок внутри директорий без их содержимого;
  • -F — отображение формата или типа каждого файла;
  • -m — разделение всех элементов через запятые;
  • -Q — брать название объектов в кавычки;
  • -1 — показывать один файл на одну строку.

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

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

На этом наша статья завершена. Как видите, ничего сложного в самой команде ls и ее синтаксисе нет, единственное, что от вас требуется — придерживаться правил ввода, не допускать ошибок в названиях директорий и учитывать регистры опций.

Мастер Йода рекомендует:  Windows Analytics теперь определяет, защищено ли устройство от Meltdown и Spectre

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

Команда ls – просмотр атрибутов файлов

При взаимодействии с файловой системой (ФС) всегда приходится тесно работать с некоторой информацией, без которой системное администрирование (да и обычное использование системы) просто невозможно. Речь идёт об атрибутах файлов, а точнее об инструменте её получения — команде ls. Многие, даже опытные пользователи не придают ей особого значения — для большинства это просто команда «просмотра содержимого каталогов». Однако, команда ls обладает куда более широкими возможностями. Которые превозносят работу с ФС на качественно более высокий уровень. Поскольку она позволяет получать самые ценные сведения о ФС, что является ключом к пониманию того, как, собственно, функционирует вся система в целом. Если для кого-то это и может быть совсем неважно, но только не для администраторов UNIX/Linux.

Получение сведений о файлах и каталогах

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

Что представляет собой тот или иной файл, т. е. какой доступ к нему предоставлен, какими «связями» он обладает, когда был создан и/или изменён. А также многое другое, позволяет узнать команда ls с ключом -l. Когда нужно «навести справки» о каком-либо объекте ФС, использовать нужно именно её:

Нет необходимости подробно останавливаться на синтаксисе и перечисления всех доступных опций и их описании. Поскольку это простая справочная информация, доступная из соответствующего справочного руководства: man ls. А вот сам вывод команды из приведённого примера стоит рассмотреть более внимательно. Он разбит на секции, каждая из которых является отдельным атрибутом файла. В данном выводе в первой секции представлен режим доступа к файлу. Во второй — количество жёстких ссылок на данный файл. В третьей и четвертой — информация о владельце и группе. В данном случае root, к которым принадлежит файл. Следующая секция отображает размер файла в байтах. Далее следует дата последнего изменения файла — 28 апреля 2020 г., последняя секция — имя самого файла. Что касается каталогов, то для них всегда имеется как минимум две жесткие ссылки: первая — из родительского каталога, а вторая — это «псевдокаталог» «.» внутри самого этого каталога.

Как правильно интерпретировать вывод команды ls?

Первое, что может ввести в заблуждение при изучении вывода команды ls -l, так это первая секция данных. Состоящая из набора десяти символов и показывающая режимы доступа к файлу. Для вышеприведённого примера первый символ «-» указывает, что это файл. А в случае с каталогом вместо него выводится символ «d». Следующие девять символов представляют собой три группы, отражающих режимы доступа к файлу. Первая группа (первые три символа «rwx») показывают, какие права доступа выставлены на данный файл для его владельца. Следующая группа символов — «r-x» — показывает режим доступа для группы, к которой принадлежит файл. Ну а третья («r-x») — права доступа для всех остальных пользователей.

В полях, отображающих владельца и группу вместо символьных имён могут быть также и цифровые идентификаторы. Такое бывает, когда соответствующие записи были удалены из файлов /etc/passwd или /etc/group. Также это может быть признаком возникновения ошибки в базах данных LDAP или NIS. Конечно, если таковые используются.

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

Особенности использования команды ls

Когда команда ls обрабатывает не «обычные» файлы, а специальные файлы устройств (хотя это тоже самые обычные файлы). То для них она выводит несколько иную информацию:

Вместо размера файла выводится старший и младший номера (4, 0) устройства tty0 – это первая виртуальная консоль, управляемая драйвером устройства 4, который является драйвером терминала.

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

Номер индексного дескриптора — это индекс той самой таблицы, в которой содержатся записи всех файловых систем. В свою очередь, на дескрипторы ссылаются файловые записи каталогов. Таким образом, у жёстких ссылок, ссылающихся на один и тот же файл, будут одинаковые номера. Зная номер индексного дескриптора определённого файла, можно найти в системе все ссылающиеся на него жесткие ссылки, используя команду find:

Данный пример — лишь одно из важных практических применений команды ls. Следует также отметить некоторые особенно полезные опции команды ls:

-a – отображает все файлы и каталоги. Включая скрытые (имена которых начинаются с точки), а также «всевдокаталоги» с именами «.» и «. .»;

-t – отображает результаты в отсортированном (по времени изменения файлов) порядке. А опция -tr то же, но в обратном порядке;

-F – выделяет каталоги и исполняемые файлы в общем выводе;

-h – отображает размеры файлов и каталогов в «человекопонятных» единицах, к примеру 4k или 10M;

-R – рекурсивный вывод, выполнение которого прерывается нажатием сочетания клавиш .


Иногда возникает путаница в использовании опций -l и —d. Дело в том, что опция -d предназначена для дополнения работы опции -l (которая выводит подробную информацию об атрибутах). Когда необходимо получить атрибуты именно конкретного каталога:

Еще полезные примеры ls

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

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

Отсортировать файлы по размеру

Вывести список только каталогов:

Заключение

В заключении нужно отметить, что несмотря на кажущуюся незатейливость команды ls, она является базовым инструментом системного администратора для «исследования» паутины ФС. И если можно так выразиться, средством для понимания её скрытого порядка и принципов работы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

15 практических примеров использования Unix команды ls

пРЙУБОЙЕ ЛПНБОД ТБЪВЙФП ОБ ОЕУЛПМШЛП ТБЪДЕМПЧљ– РП ЖХОЛГЙПОБМШОПНХ ОБЪОБЮЕОЙА ЛПНБОД.

лПНБОДЩ РП ТБВПФЕ У ЖБКМПЧПК УЙУФЕНПК

лПНБОДБ pwd (print working directoryљ– РЕЮБФШ pБВПЮЕЗП ЛБФБМПЗБ) РПЪЧПМСЕФ ХЪОБФШ ЙНС ФЕЛХЭЕЗП ЛБФБМПЗБ:

ф.Е. Ч ОБУФПСЭЕЕ ЧpЕНС чЩ ОБИПДЙФЕУШ Ч ЛПpОЕЧПН ЛБФБМПЗЕ.

еУМЙ ЧЩ Ч РpПГЕУУЕ РХФЕЫЕУФЧЙС РП ЖБКМПЧПК УЙУФЕНЕ ЧЩ « РПФЕpСМЙУШ » Й ОЕ ЪОБЕФЕ, ЗДЕ ОБИПДЙФЕУШ, РpПУФП ОБВЕpЙФЕ ЬФХ ЛПНБОДХ, ЛПФПpБС ЧЩЧЕДЕФ ОБ ЬЛpБО РПМОПЕ ЙНС ФЕЛХЭЕЗП ЛБФБМПЗБ, ОБЮЙОБС ПФ ЛПpОЕЧПЗП.

еУМЙ ЧНЕУФП ЙНЕОЙ ФЕЛХЭЕЗП ЛБФБМПЗБ ОБ ЬЛpБО ВХДЕФ ЧЩДБОП ДЙБЗОПУФЙЮЕУЛПЕ УППВЭЕОЙЕ ФЙРБ: Cannot open.. (« оЕ НПЦЕФ ПФЛТЩФШ.. ») Й Read error in.. (« пЫЙВЛБ УЮЙФЩЧБОЙС Ч.. »), ФП ЪОБЮЙФ РpПЙЪПЫМП ОБpХЫЕОЙЕ ЖБКМПЧПК УЙУФЕНЩ, ЧПЪНПЦОП Х чБУ ОЕ ИЧБФБЕФ РТБЧ ОБ ЮФЕОЙЕ ЬФПК ДЙТЕЛФПТЙЙ.

лПНБОДБ cd ЙУРПМШЪХЕФУС ДМС УНЕОЩ ФЕЛХЭЕЗП ЛБФБМПЗБ, Ф.Е. ДМС РЕpЕИПДБ Ч ДpХЗПК ЛБФБМПЗ Й СЧМСЕФУС ЧУФpПЕООПК ЛПНБОДПК ПВПМПЮЛЙ (БОБМПЗ УППФЧЕФУФЧХАЭЕК ЛПНБОДЩ ДМС DOS-УЙУФЕН). ч ЛБЮЕУФЧЕ БpЗХНЕОФБ ЬФПК ЛПНБОДЩ ХЛБЦЙФЕ ЙНС ЛБФБМПЗБ, Ч ЛПФПpЩК чЩ ИПФЙФЕ РЕpЕКФЙ. оБРpЙНЕp:

оБРТЙНЕТ, cd /etc љ– РЕpЕКФЙ Ч ЛБФБМПЗ /etc , Ф.Е. УДЕМБФШ ЕЗП ФЕЛХЭЙН.

еУМЙ чЩ ИПФЙФЕ РЕpЕКФЙ Ч РПДЛБФБМПЗ, ФП « / » ОЕ ХЛБЪЩЧБЕФУС. дПРХУФЙН чЩ ОБИПДЙФЕУШ Ч ЛБФБМПЗЕ /usr Й ЧБН ОБДП РЕpЕКФЙ Ч ЛБФБМПЗ local , ЛПФПpЩК СЧМСЕФУС РПДЛБФБМПЗПН ЬФПЗП ЛБФБМПЗБ. ч ЬФПН УМХЮБЕ ЧЩ НПЦЕФЕ ЧЩРПМОЙФШ УМЕДХАЭЙЕ ДЕКУФЧЙС:

фБЛЙН ПВpБЪПН ЛБФБМПЗ /usr/local УФБМ ФЕЛХЭЙН.

еУМЙ ЧЧЕУФЙ ЛПНБОДХ cd ВЕЪ БpЗХНЕОФПЧ, ФП ЧЩ ЧЕpОЕФЕУШ Ч УЧПК ДПНБЫОЙК (ОБЮБМШОЩК) ЛБФБМПЗ. рpЙ ЬФПН ЙУРПМШЪХЕФУС УЙУФЕНОБС РЕpЕНЕООБС ПЛТХЦЕОЙС HOME .

рpЙЧЕДЕН ЕЭЕ ОЕУЛПМШЛП РpЙНЕpПЧ ЙУРПМШЪПЧБОЙС ЬФПК ЛПНБОДЩ:

  • cd .. љ– ЧЕpОХФШУС Ч pПДЙФЕМШУЛЙК ЛБФБМПЗ (РПДОСФШУС ОБ ПДЙО ЛБФБМПЗ ЧЧЕpИ РП ДЕpЕЧХ);
  • cd ../.. љ– РПДОСФШУС ОБ ДЧБ ЛБФБМПЗБ ЧЧЕpИ РП ДЕpЕЧХ;
  • cd / љ– РЕpЕКФЙ Ч ЛПpОЕЧПК ЛБФБМПЗ;
  • cd ../local љ– ЧЕpОХФШУС Ч pПДЙФЕМШУЛЙК ЛБФБМПЗ Й РЕpЕКФЙ Ч ЕЗП РПДЛБФБМПЗ local .

лПНБОДЩ ls ЧЩДБЕФ pБЪМЙЮОХА ЙОЖПpНБГЙА П ЖБКМБИ Й ЛБФБМПЗБИ (БОБМПЗ ЛПНБОДЩ DIR ДМС DOS-УЙУФЕН). лБЛ Й ВПМШЫЙОУФЧП ЛПНБОД, ls ЙНЕЕФ ЧПЪНПЦОЩЕ БpЗХНЕОФЩ Й РБТБНЕФТЩ (ЖМБЗЙ), ЛПФПpЩЕ РПЪЧПМСАФ ЙЪНЕОЙФШ ЕЈ ДЕКУФЧЙЕ.

рЕpЕКДЙФЕ У РПНПЭША ЛПНБОДЩ cd / Ч ЛПpОЕЧПК ЛБФБМПЗ Й РПУНПФpЙФЕ ЕЗП УПДЕpЦЙНПЕ. еУМЙ ПРГЙЙ ОЕ ХЛБЪБОЩ ЛПНБОДБ ЧЩЧПДЙФ ПФУПpФЙpПЧБООЩЕ РП БМЖБЧЙФХ ЙНЕОБ ЖБКМПЧ Й ЛБФБМПЗПЧ.

л УПЦБМЕОЙА, РПЛБ ОЕ ПЮЕОШ РПОСФОП, ЮФП СЧМСЕФУС ЛБФБМПЗПН, Б ЮФП ЖБКМПН. рПНПЮШ Ч ЬФПН НПЦЕФ УМЕДХАЭБС ЛПНБОДБ, ЛПФПpБС ЧЩДБЕФ ЙОЖПpНБГЙА Ч pБУЫЙpЕООПН ЖПpНБФЕ, ЛПФПpЩК УПДЕpЦЙФ ВПМШЫЙК ПВЯЕН ЙОЖПpНБГЙЙ П ЛБЦДПН ЖБКМЕ (РpБЧБ ДПУФХРБ, pБЪНЕp, ДБФБ РПУМЕДОЕК НПДЙЖЙЛБГЙЙ Й Ф.Д.):

уФПМВГЩ УМЕЧБ ОБРТБЧП: ФЙР ЖБКМБ Й РТБЧБ ДПУФХРБ, ЮЙУМП ЦЕУФЛЙИ УУЩМПЛ, ЙНС ЧМБДЕМШГБ, ЗТХРРБ ЧМБДЕМШГБ, ТБЪНЕТ Ч ВБКФБИ, ЧТЕНС НПДЙЖЙЛБГЙЙ, ЙНС.

еУМЙ Ч ЛБЮЕУФЧЕ ПРЕpБОДБ ХЛБЪБФШ ЙНС ЖБКМБ ФП ls ЧЩДБУФ ЙОЖПТНБГЙА ФПМШЛП ПВ ЬФПН ЖБКМЕ:

еУМЙ ЛБЮЕУФЧЕ ПРЕpБОДБ ХЛБЪБФШ ЙНС ЛБФБМПЗБ, ФП ВХДЕФ ЧЩДБОП УПДЕpЦЙНПЕ ЬФПЗП ЛБФБМПЗБ, Ф.Е. ЙНЕОБ ЖБКМПЧ Ч ЬФПН ЛБФБМПЗЕ:

еУМЙ ОЕ ХЛБЪБОЩ ЛБЛЙЕ-МЙВП ПРЕpБОДЩ, ВХДЕФ ЧЩДБОП УПДЕpЦЙНПЕ ФЕЛХЭЕЗП ЛБФБМПЗБ. ч УМХЮБЕ, ЕУМЙ ХЛБЪБОП ОЕУЛПМШЛП ПРЕpБОДПЧ, УОБЮБМБ ЧЩЧПДЙФУС ЙОЖПpНБГЙС П ЖБКМБИ, Б РПФПН П ЛБФБМПЗБИ. чЩЧПД РpПЙУИПДЙФ Ч БМЖБЧЙФОПН РПpСДЛЕ.

нПЦОП ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

ч РpПГЕУУЕ ПУЧПЕОЙС УЙУФЕНЩ чБН ОЕПВИПДЙНП ВХДЕФ УПЪДБФШ УЧПА УПВУФЧЕООХА УФpХЛФХpХ ЛБФБМПЗПЧ. рПУМЕ ХУФБОПЧЛЙ УЙУФЕНЩ, ЛБФБМПЗПЧ Ч ОЕК ДПЧПМШОП ОЕНОПЗП Й Ч ОЙИ РПЛБ ЕЭЕ ФpХДОП ЪБФЕpСФШУС ОБЮЙОБАЭЕНХ РПМШЪПЧБФЕМА. ч РpПГЕУУЕ pБУЫЙpЕОЙС ЖБКМПЧПК УЙУФЕНЩ ЧБН РpЙДЕФУС РПУФПСООП УПЪДБЧБФШ ОПЧЩЕ Й ХОЙЮФПЦБФШ УФБpЩЕ ЛБФБМПЗЙ, РПЬФПНХ pБУУНПФpЙН, ЛБЛ ЬФП ЧУЕ НПЦОП УДЕМБФШ.

уПЪДБФШ ЛБФБМПЗ ДПЧПМШОП МЕЗЛП. дМС ЬФПЗП УХЭЕУФЧХЕФ ЛПНБОДБ mkdir (БОБМПЗ ЕЈ ЕУФШ Й Ч DOS УЙУФЕНБИ). ч ЛБЮЕУФЧЕ БТЗХНЕОФБ ОЕПВИПДЙНП ХЛБЪБФШ ЙНС УПЪДБЧБЕНПЗП ЛБФБМПЗБ:

уФБОДБТФОЩЕ ЬМЕНЕОФЩ ФПЮЛБ (.) ДМС УБНПЗП ЛБФБМПЗБ Й ДЧЕ ФПЮЛФ (..) ДМС ЕЗП ТПДЙФЕМШУЛПЗП ЛБФБМПЗБ УПЪДБАФУС БЧФПНБФЙЮЕУЛЙ.

лПНБОДБ mkdir НПЦЕФ ВЩФШ ЙУРПМШЪПЧБОБ Й ДМС УПЪДБОЙС ОЙЦЕМЕЦБЭЙИ РПДЛБФБМПЗПЧ ОЕРПУpЕДУФЧЕООП ЙЪ ФЕЛХЭЕЗП ЛБФБМПЗБ У ХЛБЪБОЙЕН РПМОПЗП РХФЙ Л ОЙН. ч ЬФПН УМХЮБЕ ЧУЕ ХЛБЪБООЩЕ Ч РХФЙ ЛБФБМПЗЙ ДПМЦОЩ УХЭЕУФЧПЧБФШ Й ВЩФШ ДПУФХРОЩ. еУМЙ ЦЕ чБН ОЕПВИПДЙНП НПЪДБФШ ЙЕТБТИЙА ЛБФБМПЗПЧ, ХДПВОП РПМШЪПЧБФШУС ПРГЙЕК -p :

вЕЪ ЙУРПМШЪПЧБОЙС ПРГЙЙ -p РТЙ РПРЩФЛЕ УПЪДБФШ ХЦЕ УХЭЕУФЧХАЭЙК ЛБФБМПЗ ВХДЕФ ЧЩДБОП УППФЧЕФУФЧХАЭЕЕ РТЕДХРТЕЦДЕОЙЕ.

рПУМЕ УПЪДБОЙС pБЪОППВpБЪОЕКЫЙИ ЛБФБМПЗПЧ, ЮЕpЕЪ ОЕЛПФПpПЕ ЧpЕНС Х ЧБУ ЧПЪОЙЛОЕФ ЕУФЕУФЧЕООПЕ ЦЕМБОЙЕ ХДБМЙФШ ОЕЛПФПpЩЕ ЙЪ ОЙИ. ч ЬФПН ЧБН НПЦЕФ РПНПЮШ ЛПНБОДБ rmdir . еЕ ЖПpНБФ ФБЛЦЕ РpПУФ, ЛБЛ Й ЖПpНБФ РpЕДЩДХЭЕК ЛПНБОДЩ mkdir :

лПНБОДБ rmdir ХДБМСЕФ ЛБФБМПЗ, ЙНС ЛПФПpПЗП ХЛБЪБОП Ч ЛБЮЕУФЧЕ РБТБНЕФТБ. хДБМСЕНЩК ЛБФБМПЗ ДПМЦЕО ВЩФШ РХУФЩН, ФП ЕУФШ РЕpЕД ЕЗП ХОЙЮФПЦЕОЙЕН ЧЩ ДПМЦОЩ ХДБМЙФШ ЧУЕ ОБИПДСЭЙЕУС Ч ОЕН ЖБКМЩ. рpБЛФЙЮЕУЛЙ ЬФП РpЙИПДЙФУС ДЕМБФШ ПЮЕОШ pЕДЛП, ФБЛ ЛБЛ У ДЧХНС ЬФЙНЙ РpПВМЕНБНЙ ХУРЕЫОП УРpБЧМСЕФУС ЛПНБОДБ rm , ЛПФПpБС ВХДЕФ pБУУНПФpЕОБ РПЪЦЕ.

хЛБЪБООЩЕ ЙНЕОБ ЛБФБМПЗПЧ ПВТБВБФЩЧБАФУС РП РПpСДЛХ. рpЙ ПДОПЧpЕНЕООПН ХДБМЕОЙЙ ЛБФБМПЗБ Й ЕЗП РПДЛБФБМПЗБ, РПДЛБФБМПЗ ДПМЦЕО ВЩФШ ХДБМЕО pБОШЫЕ.

лПНБОДБ touch ФПМШЛП Й ДЕМБЕФ, ЮФП НЕОСЕФ ЧТЕНС РПУМЕДОЕЗП ДПУФХРБ Л ЖБКМХ. ъБНЕЮБФЕМШОПК ПУПВЕООПУФША ЬФПК ЛПНБОДЩ СЧМСЕФУС ФП, ЮФП У ЈЈ РПНПЭША НПЦОП УПЪДБЧБФШ ОПЧЩЕ РХУФЩЕ ЖБКМЩљ– ЕУМЙ Ч ЛБЮЕУФЧЕ БТЗХНЕОФБ РЕТЕДБЈФУС ЙНС ОЕУХЭЕУФЧХАЭЕЗП ЖБКМБ:

ч РpПГЕУУЕ pБВПФЩ У УЙУФЕНПК ДПЧПМШОП ЮБУФП ЧПЪОЙЛБЕФ ОЕПВИПДЙНПУФШ ХДБМЕОЙС ЖБКМПЧ. дМС ЬФПЗП УХЭЕУФЧХЕФ ЛПНБОДБ rm , ЛПФПpБС РПЪЧПМСЕФ ХДБМСФШ ЛБЛ ЖБКМЩ, ФБЛ Й ЛБФБМПЗЙ. рПМШЪПЧБФШУС ЕК ОХЦОП У ВПМШЫПК ПУФПpПЦОПУФША, ФБЛ ЛБЛ UNIX-УЙУФЕНЩ ОЕ ЙНЕАФ РpЙЧЩЮЛЙ, Ч ПФМЙЮЙЙ ПФ Windows, РЕpЕУРpБЫЙЧБФШ РПМШЪПЧБФЕМС РЕpЕД ХДБМЕОЙЕН ЖБКМБ, Б ДЕМБАФ ЬФП ВЩУФpП Й ОБЧУЕЗДБ. рПЬФПНХ, УЧСЪЙ У ФЕН, ЮФП Ч UNIX-УЙУФЕНБИ ОЕФ РpЙЧЩЮОЩИ РpПЗpБНН ЧПУУФБОПЧМЕОЙС ХДБМЕООЩИ ЖБКМПЧ, ЛpЕРЛП РПДХ- НБКФЕ РЕpЕД ФЕН, ЛБЛ ЮФП-ФП ХДБМСФШ.

лПНБОДБ rm ЙНЕЕФ УМЕДХАЭЙК ЖПpНБФ:

у РПНПЭША ДБООПК ЛПНБОДЩ ЧЩ НПЦЕФЕ ХДБМЙФШ ЖБКМЩ, ЙНЕОБ ЛПФПpЩИ ХЛБЪБОЩ Ч ЛБЮЕУФЧЕ РБpБНЕФpПЧ. еУМЙ ЖБКМ ЪБЭЙЭЕО ПФ ЪБРЙУЙ Й УФБОДБТФОЩН ХУФТПКУФЧПН ЧЧПДБ ДБООЩИ СЧМСЕФУС ФЕТНЙОБМ, РПМШЪПЧБФЕМА ВХДЕФ ЧЩДБО ЪБРpПУ ОБ РПДФЧЕpЦДЕОЙЕ ХДБМЕОЙС ЖБКМБ.

рpЙ РПРЩФЛЕ ХДБМЕОЙС ЛБФБМПЗБ У РПНПЭША ЬФПК ЛПНБОДЩ ВХДЕФ ЧЩДБОП УППВЭЕОЙЕ ПВ ПЫЙВЛЕ.

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

рТПЗТБННБ ЛПРЙТХЕФ УПДЕТЦЙНПЕ ЖБКМБ Ч ЖБКМ У ДТХЗЙН ЙНЕОЕН МЙВП Ч ДТХЗПК ЛБФБМПЗ У УПИТБОЕОЙЕН УХЭЕУФЧХАЭЕЗП ЙНЕОЙ ЖБКМБ, ФБЛЦЕ РТЙНЕОСЕФУС ДМС ЛПРЙТПЧБОЙС ЛБФБМПЗПЧ У ЙИ УПДЕТЦЙНЩН. рТПЗТБННБ ЙНЕЕФ УМЕДХАЭЙК ЖПТНБФ:

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

лПРЙТПЧБОЙЕ ЖБКМБ Ч ФЕЛХЭХА ДЙТЕЛФПТЙА У ОПЧЩН ЙНЕОЕН:

лПРЙТПЧБОЙЕ ЖБКМБ Ч ФЕЛХЭХА ДЙТЕЛФПТЙА У УПИТБОЕОЙЕН ЙНЕОЙ:

рЕТЕЙНЕОПЧБОЙЕ ЖБКМБ ЙМЙ РЕТЕНЕЭЕОЙЕ ПДОПЗП МЙВП ОЕУЛПМШЛЙИ ЖБКМПЧ (ЙМЙ ЛБФБМПЗПЧ) Ч ДТХЗПК ЛБФБМПЗ. жПТНБФ ЛПНБОДЩ:

рТЙ РЕТЕОПУЕ Ч ТБНЛБИ ПДОПК ЖБКМПЧПК УЙУФЕНЩ ЛПНБОДБ ФПМШЛП НЕОСЕФ РХФЕЧПЕ ЙНС ЖБКМБ, РПЬФПНХ РЕТЕЙНЕОПЧБОЙЕ Й РЕТЕОПУ ЙДЕОФЙЮОЩ РП ТЕБМЙЪБГЙЙ.

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

рТЙНЕТ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ ДМС РЕТЕОПУБ ЖБКМБ Ч ЛБФБМПЗ:

ьФБ ЛПНБОДБ УПЪДБЈФ УУЩМЛЙ ОБ ЖБКМЩ ЛБЛ ЦЈУФЛЙЕ, ФБЛ Й УЙНЧПМЙЮЕУЛЙЕ. пОБ ЙНЕЕФ УМЕДХАЭЙК ЖПТНБФ (БОБМПЗЙЮОЩК ЛПНБОДЕ mv РП РПТСДЛХ БТЗХНЕОФПЧ):

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

рТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

уПЪДБОЙЕ УЙНЧПМЙЮЕУЛПК УУЩМЛЙ ОБ ДЙТЕЛФПТЙА:

лПНБОДБ ЧЩЧПДЙФ ТБЪНЕТ РТПУФТБОУФЧБ ОБ ДЙУЛЕ, ЪБОСФПЗП ЛБФБМПЗПН (Й ЧУЕНЙ ЕЗП РПДЛБФБМПЗБНЙ), Ч ВМПЛБИ (РП ХНПМЮБОЙА, 1 ВМПЛ УПУФБЧМСЕФ 512 ВБКФ). рП ХНПМЮБОЙА ЧЩЧПДЙФУС ЙОЖПТНБГЙС П ФЕЛХЭЕН ЛБФБМПЗЕ.

рТПЗТБННБ ЙНЕЕФ УМЕДХАЭЙЕ РБТБНЕФТЩ:

рТЙНЕТ ЧЩРПМОЕОЙС РТПЗТБННЩ:

лПНБОДБ tar РТЕДОБЪОБЮЕОБ ДМС БТИЙЧБГЙЙ ЗТХР ЖБКМПЧ Й ДЙТЕЛФПТЙЙ. ьФБ ЛПНБОДБ РПЪЧПМСЕФ ПВЯЕДЙОСФШ ЗТХРРХ ЖБКМПЧ Й ДЙТЕЛФПТЙК УП ЧУЕНЙ БФТЙВХФБНЙ Ч ЕДЙОЩК ЖБКМ, ЛПФПТЩК ЙНЕЕФ ТБУЫЙТЕОЙЕ « .tar ». рПМХЮЕООЩК ЖБКМ ЪБФЕН У РПНПЭША ФПК ЦЕ ЛПНБОДЩ tar . лПНБОДБ tar ЙНЕЕФ НОПЦЕУФЧП ПРГЙК, НЩ ЦЕ ПУФБОПЧЙНУС ОБ УМЕДХАЭЕН ЖПТНБФЕ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

пРГЙС -c УППФЧЕФУФЧХЕФ УПЪДБОЙА БТИЙЧБ, -x љ– ТБЪЧПТБЮЙЧБОЙЕ БТИЙЧБ.

уПЪДБООЩК БТИЙЧ НПЦОП ФБЛЦЕ УЦБФШ У РПНПЭША БТИЙЧБФПТПЧ gzip ЙМЙ bzip2 . дМС ЬФПЗП РТЙНЕОСАФУС УППФЧЕФУФЧЕООП ПРГЙЙ -z Й -j .

йНС БТИЙЧБ, ЛПФПТЩК УПЪДБЈФУС ЙМЙ ТБЪЧПТБЮЙЧБЕФУС РЕТЕДБЈФУС РПУМЕ РБТБНЕФТБ -f .

тБУУНПФТЙН РТЙНЕТЩ ТБВПФЩ У ЬФПК РТПЗТБННПК:

  • уПЪДБОЙЕ БТИЙЧБ etc.tar.bz2 ДЙТЕЛФПТЙЙ /etc У ЙУРПМШЪПЧБОЙЕН УЦБФЙС bzip2 :

тБЪЧПТБЮЙЧБОЙЕ БТИЙЧБ etc.tar.bz2 Ч ФЕЛХЭХА ДЙТЕЛФПТЙА У ЙУРПМШЪПЧБОЙЕН ТБЪУЦБФЙС bzip2 :

рТЙ ТБВПФЕ У ЖБКМБНЙ ЮБУФП ВЩЧБЕФ ОЕПВИПДЙНП ОБКФЙ ЮФП-ОЙВХДШ. ч UNIX ДМС ЬФПЗП УХЭЕУФЧХЕФ ЛПНБОДБ find . ч ПВЭЕН ЧЙДЕ ЬФБ ЛПНБОДБ ЙНЕЕФ УМЕДХАЭЙК ЖПТНБФ:

рЕТЧЩК БТЗХНЕОФ ЛПНБОДЩ find љ– ЬФП ЙНС ДЙТЕЛФПТЙЙ , Ч ЛПФПТПК РТПЙЪЧПДЙФУС РПЙУЛ. рП ХНПМЮБОЙА, ЬФП ФЕЛХЭБС ДЙТЕЛФПТЙС.

дБМЕЕ ХЛБЪЩЧБАФУС ХУМПЧЙС РПЙУЛБ , ЛПФПТЩЕ НПЗХФ РТЙОЙНБФШ УМЕДХАЭЙЕ ЪОБЮЕОЙС:

хУМПЧЙС РПЙУЛБ НПЗХФ ВЩФШ ПВЯЕДЙОЕОЩ У РПНПЭША НПДЙЖЙЛБФПТПЧ: -a љ– й, -o љ– ймй, \! љ– ое, \(. \) љ– ЗТХРРБ ХУМПЧЙК.

л ОБКДЕОЩН ЖБКМБН НПЗХФ РТЙНЕОСФШУС УМЕДХАЭЙЕ ДЕКУФЧЙС :

тБУУНПФТЙН РТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

  • чЩЧПД ЧУЕИ ЖБКМПЧ Ч ФЕЛХЭЕК ДЙТЕЛФПТЙЙ Й РПДДЙТЕЛФПТЙСИ:

чЩЧПД ЧУЕИ ЖБКМПЧ Ч ДЙТЕЛФПТЙЙ /etc , ОБЮЙОБАЭЙИУС ОБ « re »:

чЩЧПД ЧУЕИ РПДДЙТЕЛФПТЙК Ч ДЙТЕЛФПТЙЙ /etc , ОБЮЙОБАЭЙИУС ОБ « re »:

чЩЧПД ЧУЕИ ЖБКМПЧ Ч ДЙТЕЛФПТЙЙ /etc , ЙЪНЕОЈООЩИ ЪБ РПУМЕДОЙЕ УХФЛЙ:

чЩЧПД ЧУЕИ ЖБКМПЧ Ч ДЙТЕЛФПТЙЙ /tmp , ОЕ РТЙОБДМЕЦБЭЙИ РПМШЪПЧБФЕМА user:

хДБМЕОЙЕ Ч ФЕЛХЭЕК ДЙТЕЛФПТЙЙ ЧУЕИ ХУФБТЕЧЫЙИ ЖБКМПЧ (ПЛБОЮЙЧБАЭЙИУС ОБ «

чЩЧПД ОБ ЬЛТБО ЙНЈО ЧУЕИ ФЕЛУФПЧЩИ ЖБКМПЧ Ч ДПНБЫОЕК ДЙТЕЛФПТЙЙ:

лПРЙТПЧБОЙЕ ЧУЕИ ФЕЛУФПЧЩИ ЖБКМПЧ ОБ ДЙУЛЕФХ:

лПНБОДБ ЙУРПМШЪХЕФУС ДМС УПЪДБОЙС УРЕГЙБМШОЩИ ЖБКМПЧ: ЙНЕОПЧЩОЩИ ЛБОБМПЧ . у РПНПЭША ЬФЙИ ЛБОБМПЧ НПЦОП ПУХЭЕУФЧМСФШ ЧЪБЙНПДЕКУФЧЙЕ НЕЦДХ РТПГЕУУБНЙ ПРЕТБГЙПООПК УЙУФЕНЩ.

дМС УПЪДБОЙС ЛБОБМБ ОЕПВИПДЙНП ЧЧЕУФЙ ЛПНБОДХ mkfifo , БТЗХНЕОФПН ЛПФПТПК СЧМСЕФУС ЙНС ЖБКМБ ЛБОБМБ:


йНЕОПЧБОЩК ЛБОБМ БОБМПЗЙЮЕО ОЕЙНЕОПЧБООПНХ (ЛПФПТЩК ХУФБОБЧМЙЧБЕФУС У РПНПЭША УЙНЧПМБ « | »)љ– РТПГЕУУЩ НПЗХФ РЙУБФШ Ч ОЕЗП Й ЮЙФБФШ ЙЪ ОЕЗП. рТЙ ЬФПН У ЛБОБМПН ПРЕТЙТХАФ ЛБЛ У ЖБКМПН:

лБОБМЩ, Ч ПФМЙЮЙЕ ПФ ЖБКМПЧ, ФПМШЛП РЕТЕДБАФ, ОП ОЕ УПИТБОСАФ ЙОЖПТНБГЙА. оБРТЙНЕТ, РПУМЕДХАЭЙЕ ЮФЕОЙЕ ЛБОБМБ РТЙЧЕДЈФ Л РТЙПУФБОПЧЛЕ РТПУНБФТЙЧБАЭЕЗП РТПГЕУУБ: РПЛБ ОЕ РПУФХРСФ ОПЧЩЕ ДБООЩЕ.

лПНБОДЩ РП ТБВПФЕ У ФЕЛУФПН

ч ПРЕТБГЙПООПК УЙУФЕНЕ UNIX ВПМШЫЙОУФЧП ЙОЖПТНБГЙЙ ИТБОЙФУС Ч ФЕЛУФПЧПН ЧЙДЕ. рПЬФПНХ ЛПНБОДЩ РП ПВТБВПФЛЕ ФЕЛУФПЧПК ЙОЖПТНБГЙЙ ЙЗТБАФ ПЮЕОШ ЧБЦОХА ТПМШ Ч ЬФПК ПРЕТБГЙПООПК УЙУФЕНЕ.

рПЪОБЛПНЙНУС ЕЭЕ У ПДОПК ЛПНБОДПК, БОБМПЗ ЛПФПpПК ЙНЕЕФУС Ч DOS-УЙ- ФЕНБИ. ьФП ЛПНБОДБ echo (ЬИП).

пОБ ЙНЕЕФ ЖПpНБФ:

лПНБОДБ echo ЧЩЧПДЙФ ОБ ХУФТПКУФЧП УФБОДБТФОПЗП ЧЩЧПДБ ЪБДБООЩЕ ЕК БТЗХНЕОФЩ, ТБЪДЕМСС ЙИ РТПВЕМБНЙ Й ЪБЧЕТЫБС ЙИ УЙНЧПМПН ОПЧПК УФТПЛЙ (\n).

ьФБ ЛПНБОДБ ХДПВОБ ДМС ЖПТНЙТПЧБОЙС ДЙБЗОПУФЙЮЕУЛЙИ УППВЭЕОЙК Ч ЛПНБОДОЩИ ЖБКМБИ Й ДМС РЕТЕДБЮЙ ЙЪЧЕУФОЩИ ДБООЩИ Ч РТПЗТБННОПН ЛБОБМЕ.

у РПНПЭША УМЕДХАЭЕК ЛПНБОДЩ НПЦОП ДПЧПМШОП РpПУФП УПЪДБФШ РХУФПК ЖБКМ: echo > ЙНС_ЖБКМБ .

чПЪНПЦЕО РБТБНЕФТ -n љ– ОЕ ЧЩЧПДЙФШ ЪБЧЕpЫaАЭЙК УЙНЧПМ РЕТЕЧПДБ УФТПЛЙ.

йОФЕpРpЕФБФПp ЛПНБОД ЙНЕЕФ ЧУФТПЕООХА ЛПНБОДХ echo , ЛПФПТБС ЙНЕЕФ УЙОФБЛУЙЮЕУЛЙЕ ТБЪМЙЮЙС У ЧОЕЫОЕК ЛПНБОДПК echo . уМЕДХЕФ ЪОБФШ, ЮФП РПМШЪПЧБФЕМСН, ТБВПФБАЭЙН У ПВПМПЮЛПК, ВХДЕФ ДПУФХРОБ ЧУФТПЕООБС ЛПНБОДБ echo , ЕУМЙ ПОЙ ОЕ ХЛБЦХФ /bin/echo .

тБУУНПФТЙН РТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЬФПК ЛПНБОДЩ:

чЩЧПД УППВЭЕОЙС « Error reading sector » ОБ ЬЛpБО:

чЩЧПД УППВЭЕОЙС ВЕЪ ЪБЧЕpЫБАЭЕЗП УЙНЧПМБ ОПЧПК УФpПЛЙ:

чЩЧПД УППВЭЕОЙС Ч ЖБКМ file1 :

дПВБЧМЕОЙЕ УППВЭЕОЙС Л УПДЕpЦЙНПНХ ЖБКМБ file1 :

чЩЧПД ЙНЕО ЖБКМПЧ ФЕЛХЭЕЗП ЛБФБМПЗБ Ч БМЖБЧЙФОПН РПpСДЛЕ:

чЩЧПД УРЙУЛБ ЖБКМПЧ У ЙНЕОБНЙ, УППФЧЕФУФЧХАЭЙИ ЫБВМПОХ. чЩЧЕУФЙ ЙНЕОБ ЖБКМПЧ У pБУЫЙpЕОЙЕН .txt:

тБУУНПФpЙН ЕЭЕ ПДОХ ЛПНБОДХ, ЛПФПpБС НПЦЕФ ВЩФШ РПМЕЪОБ РpЙ pБВПФЕ У ЖБКМБНЙ. ьФП ЛПНБОДБ cat (БОБМПЗ ЛПНБОДЩ TYPE ДМС DOS-УЙУФЕН).

лПНБОДБ cat ЙНЕЕФ УМЕДХАЭЙК ЖПpНБФ:

пОБ РП ПЮЕpЕДЙ ЮЙФБЕФ ХЛБЪБООЩЕ, ЛБЛ БpЗХНЕОФЩ ЖБКМЩ Й ЧЩЧПДЙФ ЙИ УПДЕpЦЙНПЕ ОБ УФБОДБpФОПЕ ХУФpПКУФЧП ЧЩЧПДБ.

рПЙНЕОПЧБООЩК ЖБКМ ЙМЙ ЖБКМЩ ЧЩЧПДСФУС РПУМЕДПЧБФЕМШОП ПДЙО ЪБ ДpХ- ЗЙН ВЕЪ РpПНЕЦХФЛПЧ. еУМЙ ЖБКМ ДПУФБФПЮОП ДМЙООЩК, ФП НПЦОП РpЙПУФБОП- ЧЙФШ ЧЩЧПД У РПНПЭША ЛПНВЙОБГЙЙ ЛМБЧЙЫ Ctrl — S . дМС РpПДПМЦЕОЙС ЧЩЧПДБ ОБЦНЙФЕ МАВХА ЛМБЧЙЫХ. пЛПОЮБОЙЕ ЧЧПДБ РТПЙЪЧПДЙФУС ЛПНВЙОБГЙЕК Ctrl — D .

пРЕТБОДЩ ПВТБВБФЩЧБАФУС Ч РПТСДЛЕ ЙИ pБЪНЕЭЕОЙС Ч ЛПНБОДОПК УФТПЛЕ. еУМЙ ОЕ ХЛБЪБО ОЙ ПДЙО ЖБКМ ЙМЙ ХЛБЪБОБ ПРГЙС (-), ЛПНБОДБ ЮЙФБЕФ ДБООЩЕ УП УФБОДБpФОПЗП ХУФpПКУФЧБ ЧЧПДБ.

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

тБУУНПФТЙН РТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

жБКМ file ЧЩЧПДЙФУС ОБ ХУФТПКУФЧП УФБОДБТФОПЗП ЧЩЧПДБ:

уГЕРМЕОЙЕ (УМЙСОЙЕ) ЖБКМПЧ file1 Й file2 , РПУМЕ ЮЕЗП ПОЙ РПНЕЭБАФУС Ч ЖБКМ file3 :

рpЙУПЕДЙОЕОЙЕ ЖБКМБ file1 Л ЛПОГХ ЖБКМБ file2 :

чЩЧПД УПДЕpЦЙНПЗП ЖБКМБ У ОХНЕpБГЙЕК УФpПЛ, ОП ВЕЪ ОХНЕpБГЙЙ РХУФЩИ УФpПЛ:

оХНЕpБГЙС ЧУЕИ УФpПЛ:

лПНБОДБ less ЙУРПМШЪХЕФУС ДМС РТПУНПФТБ ЖБКМПЧ, ТБЪНЕТ ЛПФПТЩИ РТЕЧЩЫБЕФ ТБЪНЕТ ЬЛТБОБ. рПМШЪПЧБФЕМА РТЕДПУФБЧМСЕФУС ЙОФЕТБЛФЙЧЩОК ЙОФЕТЖЕКУ, Ч ЛПФПТПН ФЕЛУФ НПЦОП РТПМЙУФЩЧБФШ, РТПЙЪЧПДЙФШ РП ОЕНХ РПЙУЛ Й Ф.Р..

йНС РТПУНБФТЙЧБЕНПЗП ЖБКМБ ОЕПВИПДЙНП ХЛБЪБФШ Ч ЛБЮЕУФЧЕ БТЗХНЕОФБ РТПЗТБННЩ:

хРТБЧМСФШ РТПЗТБННПК less РТПУФП: УФТБОЙГЩ РЕТЕМЙУФЩЧБАФУС РТПВЕМПН, Б ЛПЗДБ ЮЙФБФШ ОБДПЕУФ, ОБДП ОБЦБФШ q (Quit). рЕТЕМЙУФЩЧБФШ УФТБОЙГЩ НПЦОП Й ЛМБЧЙЫБНЙ Page Up / Page Down , ДМС УДЧЙЗБ ОБ ПДОХ УФТПЛХ ЧРЕТЕД НПЦОП РТЙНЕОСФШ Enter ЙМЙ УФТЕМЛХ ЧОЙЪ, Б ОБ ПДОХ УФТПЛХ ОБЪБДљ– УФТЕМЛХ ЧЧЕТИ. рЕТЕИПД ОБ ОБЮБМП Й ЛПОЕГ ФЕЛУФБ ЧЩРПМОСЕФУС РП ЛПНБОДБН g Й G УППФЧЕФУФЧЕООП (Go). рПМОЩК УРЙУПЛ ФПЗП, ЮФП НПЦОП ДЕМБФШ У ФЕЛУФПН Ч less , ЧЩЧПДЙФУС РП ЛПНБОДЕ h (help). дМС РПЙУЛБ Й РПДУФЧЕФЛЙ ЙОФЕТЕУХАЭЕЗП РПОСФЙС НПЦОП ЧПУРПМШЪПЧБФШУС ЛПНБОДПК / , РПУМЕ ЛПФПТПК ОЕПВИПДЙНП ЧЧЕУФЙ ЙОФЕТЕУХАЭЙК чБУ ФЕТНЙОљ– РП ОБЦБФЙА ЛМБЧЙЫЙ Enter , ЛХТУПТ РЕТЕКДЈФ Л РЕТЧПНХ ХРПНЙОБОЙА ФЕТНЙОБ, ЛПФПТЩК ВХДЕФ ЧЩДЕМЕО УЕТЩН ГЧЕФПН. рПУМЕДХАЭЙЕ ОБЦБФЙС / Й Enter РТЙЧЕДХФ Л РТПДПМЦЕОЙА РПЙУЛБ УМПЧБ РП ДПЛХНЕОФХ.

рТПЗТБННБ less ЙУРПМШЪХЕФУС Ч ЛБЮЕУФЧЕ ПУОПЧЩ ЛПНБОДЩ man љ– РТЙ РТПУНПФТЕ УФТБОЙГ ТХЛПЧПДУФЧ.

лПНБОДБ ЧЩЧПДЙФ ОБ ЬЛТБО РЕТЧЩЕ ОЕУЛПМШЛП УФТПЛ ЖБКМБ. рП ХНПМЮБОЙА ЧЩЧПДЙФУС РЕТЧЩЕ 10 УФТПЛ. йНС ЧЩЧПДЙНПЗП ЖБКМБ ХЛБЪЩЧБЕФУС Ч ЛБЮЕУФЧЕ БТЗХНЕОФБ РТПЗТБННЩ, Й ЕУМЙ ПОП ОЕ ЪБДБОП, РТПЙЪЧПДЙФУС ЮФЕОЙЕ ЙОЖПТНБГЙЙ УП УФБОДБТФОПЗП ЧИПДБ.

у РПНПЭША РБТБНЕФТБ -n НПЦОП ЪБДБФШ ЮЙУМП УФТПЛ ПФ ОБЮБМБ ЖБКМЩ, ЛПФПТЩЕ ВХДХФ ЧЩЧЕДЕОЩ ОБ ЬЛТБО. оБРТЙНЕТ:

лПНБОДБ ЧЩЧПДЙФ ОБ ЬЛТБО РПУМЕДОЙЕ ОЕУЛПМШЛП УФТПЛ ЖБКМБ. рП ХНПМЮБОЙА ЧЩЧПДСФУС РПУМЕДОЙЕ 10 УФТПЛ. йНС ЧЩЧПДЙНПЗП ЖБКМБ ХЛБЪЩЧБЕФУС Ч ЛБЮЕУФЧЕ БТЗХНЕОФБ РТПЗТБННЩ, Й ЕУМЙ ПОП ОЕ ЪБДБОП, РТПЙЪЧПДЙФУС ЮФЕОЙЕ ЙОЖПТНБГЙЙ УП УФБОДБТФОПЗП ЧИПДБ.

у РПНПЭША РБТБНЕФТБ -n НПЦОП ЪБДБФШ ЮЙУМП УФТПЛ ПФ ЛПОГБ ЖБКМБ, ЛПФПТЩЕ ВХДХФ ЧЩЧЕДЕОЩ ОБ ЬЛТБО. оБРТЙНЕТ:

фБЛЙН УРПУПВПН ХДПВОП РТПУНБФТЙЧБФШ РПУМЕДОЙЕ ЪБРЙУЙ УЙУФЕНОЩИ ЦХТОБМПЧ.

дТХЗЙН ЧБЦОЩН РБТБНЕФТПН ЛПНБОДЩ СЧМСЕФУС -f : ЛПНБОДБ ПЦЙДБЕФ ЙЪНЕОЕОЙС Ч ЛПОГЕ ЖБМБ Й ПФПВТБЦБЕФ ЙИ ОБ ЬЛТБОЕ. юБУФП ЬФП ЙУРПМШЪХЕФУС РТЙ РТПУНПФТЕ РПУФПСООП ХЧЕМЙЮЙЧБАЭЙИУС ЖБКМПЧ. дМС ЪБЧЕТЫЕОЙС ЛПНБОДЩ ОБЦНЙФЕ Ctrl — C .

лПНБОДБ РПЪЧПМСЕФ ЧЩЧПДЙФШ ХЛБЪБООЩЕ УФПМВГЩ ЙМЙ ЪБРЙУЙ ЙЪ ПДОПЗП ЙМЙ ОЕУЛПМШЛЙИ ЖБКМПЧ. уФПМВГПН ОБЪЩЧБЕФУС ЙНЕООП УФПМВЕГљ– УЙНЧПМЩ У ПДОПК Й ФПК ЦЕ РПЪЙГЙЕК Ч УФТПЛЕ, ЪБРЙУЙ ЦЕ ТБЪДЕМСАУС УЙНЧПМБНЙ ФБВХМСГЙЙ. й УФПМВГЩ Й ЪБРЙУЙ ЪБДБАФУС ХЛБЪБОЙЕН ЙИ РПТСДЛПЧПЗП ОПНЕТБ Ч УФТПЛЕ.

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

рТЙНЕТЩ ТБВПФЩ РТПЗТБННЩ:

чЩДЕМЕОЙЕ РЕТЧЩИ УЕНЙ УФПМВГПЧ ЖБКМБ:

рПМХЮЕОЙЕ УРЙУЛБ ЗТХРР РПМШЪПЧБФЕМЕК, ЪБТЕЗЙУФТЙТПЧБООЩИ Ч УЙУФЕНЕ:

лПНБОДБ paste ПВЯЕДЙОСЕФ ДЧБ ФЕЛУФПЧЩИ ЖБКМБ Ч ПДЙО. ч РПМХЮЙЧЫЕНУС ЖБКМЕ ЙУИПДОЩЕ УФТПЛЙ ТБУРПМБЗБАФУС Ч УПУЕДОЙИ УФПМВГБИ, ТБЪДЕМЈООЩЕ УЙНЧПМПН ФБВХМСГЙЙ (ЙМЙ МАВЩН ДТХЗЙН УЙНЧПМПН, ХЛБЪБООЩН ЮЕТЕЪ РБТБНЕФТ -d ).

юБУФП РТЙНЕОСЕФУС УПЧНЕУФОП У РТПЗТБННПК cut .

лПНБОДБ sort УПТФЙТХЕФ УФТПЛЙ, ЧИПДСЭЙЕ ЧП ЧУЕ ЙУИПДОЩЕ ЖБКМЩ, Й ЧЩДБЕФ ТЕЪХМШФБФ ОБ УФБОДБТФОЩК ЧЩЧПД. еУМЙ ЙНЕОБ ЖБКМПЧ ОЕ ХЛБЪБОЩ, ЙМЙ Ч ЛБЮЕУФЧЕ ЖБКМБ ХЛБЪБО « — », ЙУИПДОБС ЙОЖПТНБГЙС РПУФХРБЕФ УП УФБОДБТФОПЗП ЧЧПДБ. лПНБОДБ ЙНЕЕФ ЖПТНБФ:

рТЙ ХРПТСДПЮЕОЙЙ ЙУРПМШЪХЕФУС ПДЙО ЙМЙ ОЕУЛПМШЛП ЛМАЮЕК УПТФЙТПЧЛЙ, ЧЩДЕМСЕНЩИ ЙЪ ЛБЦДПК ЧЧПДЙНПК УФТПЛЙ. рП ХНПМЮБОЙА ЛМАЮ УПТФЙТПЧЛЙ ПДЙОљ– ЧУС УФТПЛБ, Б РПТСДПЛ СЧМСЕФУС МЕЛУЙЛПЗТБЖЙЮЕУЛЙН, УППФЧЕФУФЧХАЭЙН РТЙОСФПК ЛПДЙТПЧЛЕ УЙНЧПМПЧ.

чПФ ПУОПЧОЩЕ ПРГЙЙ ЛПНБОДЩ:

тБУУНПФТЙН РТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

пФУПТФЙТПЧБФШ ЖБКМ У ЖБНЙМЙСНЙ:

пФУПТФЙТПЧБФШ УРЙУПЛ ЖБКМПЧ Ч ПВТБФОПН РПТСДЛЕ:

лПНБОДБ uniq РПУФТПЮОП БОБМЙЪЙТХЕФ ЖБКМ Й Ч УМХЮБЕ, ЕУМЙ ПО УПДЕТЦЙФ Ч УЕВЕ РПЧФПТСАЭЙЕУС УФТПЛЙ, ЧЩВТБУЩЧБЕФ ДХВМЙЛБФЩ. лПНБОДБ ЙНЕЕФ УМЕДХАЭЙК ЖПТНБФ:

еУМЙ ЙНС ЙУИПДОПЗП ЖБКМБ ОЕ ХЛБЪБОП, ЛПНБОДБ ЮЙФБЕФ ДБООЩЕ УП УФБОДБТФОПЗП ЧЧПДБ.

ч ЛБЮЕУФЧЕ РБТБНЕФТБ НПЦЕФ ВЩФШ ХЛБЪБОП -c , ФПЗДБ ТСДПН У ЛБЦДПК УФТПЛПК ВХДЕФ ЧЩЧЕДЕОП ЮЙУМП РПЧФПТЕОЙК ЬФПК УФТПЛЙ.

тБУУНПФТЙН РТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

рПМХЮЙН ЙНЕОБ ЧУЕИ РПМШЪПЧБФЕМЕК, ТБВПФБАЭЙИ Ч УЙУФЕНЕ Ч ОБУФПСЭЙК НПНЕОФ:

пДОБЛП ФБЛПК ТЕЪХМШФБФ ВХДЕФ ОЕ ЧУЕЗДБ:

ьФП РТПЙУИПДЙФ РПФПНХ, ЮФП ЛПНБОДБ uniq УТБЧОЙЧБЕФ УФТПЛЙ РПУМЕДПЧБФЕМШОП. дМС ФПЗП, ЮФПВЩ ЙЪВЕЦБФШ ДХВМЙТПЧБОЙС, ТЕЪХМШФБФ НПЦОП УРЕТЧБ УПТФЙТПЧБФШ:

лПНБОДБ iconv ОЕ СЧМСЕФУС ПТЙЗЙОБМШОПК ЛПНБОДПК UNIX, ПОБ РПСЧЙМБУШ Ч УЙУФЕНБИ, ТБЪТБВПФБООЩИ Ч ТБНЛБИ РТПЕЛФБ GNU . пДОБЛП ВПМШЫЙОУФЧП УПЧТЕНЕООЩИ ЧЕТУЙК UNIX УПДЕТЦБФ ЬФХ ЛПНБОДХ.

лПНБОДБ РТЕДОБЪОБЮЕОБ ДМС РЕТЕЛПДЙТПЧБОЙС ФЕЛУФПЧЩИ ЖБКМПЧ ЙЪ ПДОПК ЛПДЙТПЧЛЙ Ч ДТХЗХА Й ЙНЕЕФ УМЕДХАЭЙК ЖПТНБФ:

еУМЙ ЙНС ЙУИПДОПЗП ЖБКМБ ОЕ ХЛБЪБОП, ЛПНБОДБ ЮЙФБЕФ ДБООЩЕ УП УФБОДБТФОПЗП ЧЧПДБ.

йНС ЛПДЙТПЧЛЙљ– ЙУИПДОПК ЙМЙ ЛПОЕЮОПК ДПМЦОП УППФЧЕФУФЧПЧБФШ ЛПДЙТПЧЛЕ Ч ЖБКМЕ, УРЙУПЛ ДПУФХРОЩИ ЛПДЙТПЧПЛ НПЦОП РПМХЮЙФШ, ЕУМЙ ЪБРХУФЙФШ ЛПНБОДХ iconv У РБТБНЕФТПН -l .

ьФБ ЛПНБОДБ РТЕДОБЪОБЮЕОБ ДМС РПДУЮЈФБ ЛПМЙЮЕУФЧБ УФТПЛ, УЙНЧПМПЧ Й УМПЧ Ч ХЛБЪБООЩИ ЖБКМБИ. лПНБОДБ ЙНЕЕФ УМХДХАЭЙК ЖПТНБФ:

нПЦОП ЙУРПМШЪПЧБФШ УМЕДХАЭЙЕ ПРГЙЙ:

тБУУНПФТЙН РТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

рПДУЮЈФ ЮЙУМБ УМПЧ Ч ДПЛХНЕОФЕ:

юЙУМП ЖБКМПЧ Ч ДЙТЕЛФПТЙЙ:

рПМОБС УФБФЙУФЙЛБ РП ЗТХРРЕ xml-ЖБКМПЧ (ЮЙУМП УФТПЛ, ЮЙУМП УМПЧ, ЮЙУМП ВБКФ):

dd љ– ЛПНБОДБ ВМПЮОПЗП ЛПРЙТПЧБОЙС ЖБКМПЧ. пОБ ЙНЕЕФ УМЕДХАЭЙК ЖПТНБФ:

рТПЗТБННБ ЙУРПМШЪХЕФУС РТЙ ЛПРЙТПЧБОЙЙ ЮБУФЕК ПДОПЗП ЖБКМБ Ч ДТХЗПК, ЮБУФП РТЙНЕОСЕФУС РТЙ ТБВПФЕ У ХУФТПКУФЧБНЙ. тБУУНПФТЙН РБТБНЕФТЩ, РТЙОЙНБЕНЩЕ ЛПНБОДПК:

тБУУНПФТЙН РТЙНЕТЩ ЙУРПМШЪПЧБОЙС ЛПНБОДЩ:

лПРЙТПЧБОЙЕ ЪБЗТХЪПЮОПЗП УЕЛФПТБ ЦЈУФЛПЗП ДЙУЛБ Ч ЖБКМ bootsect :

лПРЙТПЧБОЙЕ ЖБКМБ ТБЪНЕТПН ДП ДЧХИ НЕЗБВБКФ ОБ РТПУФПК ЗЙВЛЙК ДЙУЛ Й ПВТБФОП:

лПНБОДЩ, ЙУРПМШЪХАЭЙЕ ТЕЗХМСТОЩЕ ЧЩТБЦЕОЙС

юБУФП РПМШЪПЧБФЕМА ОХЦОП ОБКФЙ ФПМШЛП ХРПНЙОБОЙС ЮЕЗП-ФП ЛПОЛТЕФОПЗП Ч ЖБКМЕ ЙМЙ УТЕДЙ ДБООЩИ, ЧЩЧПДЙНЩИ РТПЗТБННПК. пВЩЮОП ЬФБ ЪБДБЮБ УЧПДЙФУС Л РПЙУЛХ УФТПЛ, Ч ЛПФПТЩИ ЧУФТЕЮБЕФУС ПРТЕДЕМЕООПЕ УМПЧП ЙМЙ ЛПНВЙОБГЙС УЙНЧПМПЧ. дМС ЬФПЗП РПДИПДЙФ УФБОДБТФОБС ХФЙМЙФБ grep . grep НПЦЕФ ЙУЛБФШ УФТПЛХ Ч ЖБКМБИ, Б НПЦЕФ ТБВПФБФШ ЛБЛ ЖЙМШФТ: РПМХЮЙЧ УФТПЛЙ УП УФБОДБТФОПЗП ЧЧПДБ, ПОБ ЧЩЧЕДЕФ ОБ УФБОДБТФОЩК ЧЩЧПД ФПМШЛП ФЕ УФТПЛЙ, ЗДЕ ЧУФТЕФЙМПУШ ЙУЛПНПЕ УПЮЕФБОЙЕ УЙНЧПМПЧ.

рТПУФПК РТЙНЕТ: ОБКФЙ УЧПЕЗП РПМШЪПЧБФЕМС Ч ЖБКМЕ /etc/passwd :

рЕТЧЩК БТЗХНЕОФ ЛПНБОДЩ grep љ– ФБ УФТПЛБ, ЛПФПТХА ОХЦОП ЙУЛБФШ Ч ЖБКМЕ ЙМЙ УФБОДБТФОПН ЧЧПДЕ, Ч ДБООПН УМХЮБЕ ЬФП « user », Б РПУЛПМШЛХ ЖБКМ /etc/passwd ЧЩЧПДЙФ УЧЕДЕОЙС РП УФТПЛЕ ОБ ЛБЦДПЗП РПМШЪПЧБФЕМС, ФБЛЙН ПВТБЪПН НПЦОП РПМХЮЙФШ ЙОЖПТНБГЙА П РПМШЪПЧБФЕМЕ « user ».

ч УМХЮБЕ, ЕУМЙ ОХЦОП ЙУЛБФШ ОЕ ЛПОЛТЕФОПЕ УПЮЕФБОЙЕ УЙНЧПМПЧ, Б ЛБЛХА-ФП ЙИ ОЕУМПЦОХА ЛПНВЙОБГЙА, ЙУРПМШЪХАФ ТЕЗХМСТОЩЕ ЧЩТБЦЕОЙС љ– УРПУПВ УРЕГЙБМШОПК ЖПТНХМПК ЪБДБФШ ЧУЕ ДПРХУФЙНЩЕ РПУМЕДПЧБФЕМШОПУФЙ УЙНЧПМПЧ (Ч ДЙУЛТЕФОПК НБФЕНБФЙЛЕ ЬФП РПОСФЙЕ ЖПТНХМЙТХЕФУС ВПМЕЕ УФТПЗП).

ч ТЕЗХМСТОПН ЧЩТБЦЕОЙЙ ВПМШЫЙОУФЧП УЙНЧПМПЧ ПВПЪОБЮБАФ УБНЙ УЕВС, ЛБЛ ЕУМЙ ВЩ НЩ ЙУЛБМЙ ПВЩЛОПЧЕООХА ФЕЛУФПЧХА УФТПЛХ, ОБРТЙНЕТ, « user » Й « :: » Ч ТЕЗХМСТОПН ЧЩТБЦЕОЙЙ УППФЧЕФУФЧХАФ УФТПЛБН « Note » Й « :: » Ч ФЕЛУФЕ. пДОБЛП ОЕЛПФПТЩЕ УЙНЧПМЩ ПВМБДБАФ УРЕГЙБМШОЩН ЪОБЮЕОЙЕН, УБНЩК ЗМБЧОЩК ЙЪ ФБЛЙИ УЙНЧПМПЧљ– ЪЧЕЪДПЮЛБ (« * »), РПУФБЧМЕООБС РПУМЕ ЬМЕНЕОФБ ТЕЗХМСТОПЗП ЧЩТБЦЕОЙС, ПВПЪОБЮБЕФ, ЮФП НПЗХФ ВЩФШ ОБКДЕОЩ ФЕЛУФЩ, ЗДЕ ЬФПФ ЬМЕНЕОФ РПЧФПТЕО МАВПЕ ЛПМЙЮЕУФЧП ТБЪ, Ч ФПН ЮЙУМЕ Й ОЙ ПДОПЗП, Ф.Е. РТПУФП ПФУХФУФЧХЕФ.

у РПНПЭША УМЕДХАЭЕК ЛПНБОДЩ НПЦОП РПУНПФТЕФШ ЧУЕ МПЛБМШОЩЕ УЕФЕЧЩЕ ЙНЕОБ, ЪБТЕЗЙУФТЙТПЧБООЩЕ Ч УЙУФЕНЕ:

уЙНЧПМ « . » ЪБНЕОСЕФ « МАВПК УЙНЧПМ », Б ЧНЕУФЕ У « * » ПЪОБЮБЕФ 0 ЙМЙ ВПМШЫЕ МАВЩИ УЙНЧПМПЧ. уЙНЧПМ « ^ » Ч ОБЮБМЕ ТЕЗХМСТОПЗП ЧЩТБЦЕОЙС ПЪОБЮБЕФ, ЮФП ОЕПВИПДЙНЩ УФТПЛЙ, ОБЮЙОБАЭЙЕУС У ДБООПЗП ЫБВМПОБ (ДМС ПВПЪОБЮЕОЙС ЛПОГБ УФТПЛЙ ЙУРПМШЪХАФ УЙНЧПМ « $ »).

уХЭЕУФЧХАФ Й ДТХЗЙЕ УРПУПВЩ ЗТХРРЙТПЧБОЙС УЙНЧПМПЧ:

« [ » Й « ] » ЪБДБАФ ЛМБУУ УЙНЧПМПЧ , ЛПЗДБ Ч ЧЩТБЦЕОЙЙ НПЦЕФ ЧУФТЕФЙФШУС МАВПК ЙЪ ОЙИ. у РПНПЭША УМЕДХАЭЕЗП ТЕЗХМСТОПЗП ЧЩТБЦЕОЙС ЧЩЧПДСФУС ЧУЕ УФТПЛЙ, УПДЕТЦБЭЙЕ МАВЩЕ ЮЙУМБ (ЪОБЛ « + » СЧМСЕФУС БОБМПЗПН « * », ФПМШЛП ЪБДБЈФ 1 Й ВПМШЫЕЕ ЮЙУМП ХРПНЙОБОЙК РТЕДЩДХЭЕЗП УЙНЧПМБ):

« ( » Й « ) » РПЪЧПМСАФ ЗТХРРЙТПЧБФШ ЧЩТБЦЕОЙС. оБРТЙНЕТ, УМЕДХАЭБС ЛПНБОДБ ЧЩЧПДЙФ ЧУЕ УФТПЛЙ, УПДЕТЦБЭЙЕ IP-БДТЕУ:

ъБРЙУШ « <3>» ПЪОБЮБЕФ, ЮФП РТЕДЩДХЭЙК УЙНЧПМ ЙМЙ ЧЩТБЦЕОЙЕ ДПМЦОП РПЧФПТСФШУС Ч ФПЮОПУФЙ 3 ТБЪБ.

тЕЗХМСТОЩЕ ЧЩТБЦЕОЙС УПДЕТЦБФ НОПЦЕУФЧП ХРТБЧМСАЭЙИ УЙНЧПМПЧ, ЛБЦДЩК ЙИ ЛПФПТЩИ ОБДЕМЈО УПВУФЧЕООЩН УНЩУМПН. дМС ФПЗП, ЮФПВЩ ЧПУРПМШЪПЧБФШУС ОЕРПУТЕДУФЧЕООЩН ЪОБЮЕОЙЕН УЙНЧПМБ (ДМС РПЙУЛБ ЕЗП Ч УФТПЛЕ), ОЕПВИПДЙНП РПУФБЧЙФШ РЕТЕД ОЙН УЙНЧПМ ПВТБФОПК ЛПУПК: « \ ».

лПНБОДБ grep УПДЕТЦЙФ НОПЦЕУФЧП ХДПВОЩИ РБТБНЕФТПЧ, ОБРТЙНЕТ ЧЩЧПД ОПНЕТБ ОБКДЕООПК УФТПЛЙ ( -n ) ЙМЙ ЧЩЧПД ФПМШЛП РПДУФТПЛЙ, УППФЧЕФУФЧХАЭЕК УБНПНХ ТЕЗХМСТОПНХ ЧЩТБЦЕОЙА ( -o ).

вМБЗПДБТС ТЕЗХМСТОЩН ЧЩТБЦЕОЙСН НПЦОП БЧФПНБФЙЪЙТПЧБФШ ПЮЕОШ НОПЗЙЕ ЪБДБЮЙ, ЛПФПТЩЕ Ч РТПФЙЧОПН УМХЮБЕ РПФТЕВПЧБМЙ ВЩ ПЗТПНОПК Й ЛТПРПФМЙЧПК ТБВПФЩ ЮЕМПЧЕЛБ. вПМЕЕ РПДТПВОЩЕ УЧЕДЕОЙС П ЧПЪНПЦОПУФСИ СЪЩЛБ ТЕЗХМСТОЩИ ЧЩТБЦЕОЙК НПЦОП РПМХЮЙФШ ЙЪ ТХЛПЧПДУФЧБ ЛПНБОДЩ grep .

тЕЗХМСТОЩЕ ЧЩТБЦЕОЙС НПЦОП ЙУРПМШЪПЧБФШ ОЕ ФПМШЛП ДМС РПЙУЛБ РП ЖБКМХ, ОП Й ДМС ЙЪНЕОЕОЙС ЙОЖПТНБГЙЙ. дМС ФБЛПЗП РПЙУЛБ У ЪБНЕОПК НПЦОП ЧПУРПМШЪПЧБФШС ХФЙМЙФПК sed (stream editorљ– РПФПЮОЩК ТЕДБЛФПТ). sed ЙНЕЕФ УЧПК ЧУФТПЕООЩК РТПУФПК СЪЩЛ, У РПНПЭША ЛПФПТПЗП НПЦОП ЪБДБФШ РТБЧЙМБ НПДЙЖЙГЙТПЧБОЙС ЖБКМБ.

чУЕ ЛПНБОДЩ ЧУФТПЕООПЗП СЪЩЛБ sed УПУФПСФ ЙЪ ПДОПК ВХЛЧЩ. оБРТЙНЕТ, РПЙУЛ У ЪБНЕОПК ЧЩРПМОСЕФ ЛПНБОДБ « s » (search). уЙОФБЛУЙУ Х ОЕЕ УМЕДХАЭЙК:

ьФБ ЛПНБОДБ ЪБНЕОСЕФ Ч ЙОЖПТНБГЙЙ П ЛПТОЕЧПК ДЙТЕЛФПТЙЙ ЧУЕ УФТПЛЙ, ОБЮЙОБАЭЙЕУС У УЙНЧПМБ d Й ЧУЕ, УМЕДХАЭЙЕ ЪБ ОЙН ОЕРТПВЕМШОЩЕ УЙНЧПМЩ, ОБ УМПЧП directory .

лТПНЕ ЛПНБОДЩ РПЙУЛБ, sed ЙНЕЕФ ЛПНБОДЩ ХДБМЕОЙС, ЛПРЙТПЧБОЙС Й ЪБНЕОЩ УФТПЛ. фБЛЦЕ ЛПНБОДЩ НПЗХФ ЙНЕФШ НПДЙЖЙЛБФПТЩ, ОБРТЙНЕТ, УЙНЧПМ « g » Ч ЛПОГЕ ЛПНБОДЩ РПЙУЛБ ХЛБЪЩЧБЕФ ДЕМСФШ ЪБНЕОХ ДМС ЧУЕИ ОБКДЕООЩИ РП ТЕЗХМСТОПНХ ЫБВМПОХ РПДУФТПЛ, Б ОЕ ФПМШЛП ДМС РЕТЧПЗП.

рПРТПВХЕН ТБЪПВТБФШУС РПДТПВОЕЕ, ЛБЛ ТБВПФБЕФ ТЕДБЛФПТ sed . чИПДОПК ФЕЛУФ sed УЮЙФЩЧБЕФ РПУФТПЮОП. л УЮЙФБООПК УФТПЛЕ ПО РП ПЮЕТЕДЙ РТПВХЕФ РТЙНЕОЙФШ ЛБЦДХА ЛПНБОДХ УГЕОБТЙС. рТЙНЕОЙЧ ЧУЕ ЧПЪНПЦОЩЕ ЛПНБОДЩ Л УФТПЛЕ, sed ЧЩЧПДЙФ ОБ УФБОДБТФОЩК ЧЩЧПД ФП, ЮФП ПФ ОЕЕ ПУФБМПУШ. лПНБОДБ УГЕОБТЙС НПЦЕФ ОБЮЙОБФШУС У Ф.О. ЛПОФЕЛУФОПЗП БДТЕУБ, ПРТЕДЕМСАЭЕЗП УЧПКУФЧБ УФТПЛ, Л ЛПФПТЩН ЬФХ ЛПНБОДХ НПЦОП РТЙНЕОСФШ. рТПУФПК ЛПОФЕЛУФОЩК БДТЕУљ– ЬФП ОПНЕТ УФТПЛЙ (ЛПНБОДБ РТЙНЕОСЕФУС Л ЕДЙОУФЧЕООПКљ– УПЧРБДБАЭЕК РП ОПНЕТХљ– УФТПЛЕ ЧИПДОПЗП РПФПЛБ) ЙМЙ ТЕЗХМСТОПЕ ЧЩТБЦЕОЙЕ (ЛПНБОДБ РТЙНЕОСЕФУС ЛП ЧУЕН УФТПЛБН, Ч ЛПФПТЩИ ОБКДЕОП УППФЧЕФУФЧЙЕ ЬФПНХ тч). оБРТЙНЕТ, ЛПНБОДБ sed «1s/_/ /g» ЪБНЕОЙФ Ч РЕТЧПК УФТПЛЕ ЧУЕ РПДЮЕТЛЙЧБОЙС ОБ РТПВЕМЩ, Б sed «/^a/d» ХДБМЙФ (delete) ЧУЕ УФТПЛЙ, ОБЮЙОБАЭЙЕУС У « a ».

Мастер Йода рекомендует:  5 вопросов по React, которые могут попасться на собеседовании

х sed ПЮЕОШ ЫЙТПЛЙЕ ЧПЪНПЦОПУФЙ, ОП ДПЧПМШОП ОЕРТЙЧЩЮОЩК УЙОФБЛУЙУ. юФПВЩ Ч ОЕН ТБЪПВТБФШУС, ОХЦОП ПВСЪБФЕМШОП РТПЮЕУФШ ТХЛПЧПДУФЧП sed Й ЪОБФШ ТЕЗХМСТОЩЕ ЧЩТБЦЕОЙС.

15 практических примеров использования Unix команды ls

Конечно, не стоит воспринимать эту статью как подробное руководство, но она определенно даст вам отправную точку при работе с Linux. Советую поставить себе в браузере закладку на этот список.

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

Примеры команды tar

Создание tar архива


извлечение существующего архива:

просмотр существующего архива:

Примеры команды grep

Регистронезависимый поиск строки в файле

Вывод найденной строки, включая 3 последних строки после

Рекурсивный поиск строки во всех файлах

Примеры команды find

Регистронезависимый поиск файла по имени

Выполнение команд над файлами, которые были найдены по команде find

Поиск пустых файлов в домашнем каталоге

Примеры команды SSH

Login в удаленный хост

Отладка ssh клиента

Вывод версии ssh клиента

Примеры команды sed

При копировании DOS файлов в UNIX, вы часто можете встретить \r\n в конце каждой строки. Этот пример переводит все DOS имена в формат Unix.

Печать содержимого файла в обратном порядке

Добавление номера строки ко всем не пустым строкам

Примеры команды awk

Удаление повторяющихся строк

Вывод всех строк из /etc/passwd с повторяющимися uid и gid

Печать определенного поля из файла

Примеры команды vim

Переход к 143 строке файла

Переход к найденной строке

Открытие файла в режиме только для чтения

Примеры команды diff

Пропуск пробелов при сравнении

Сортировка файлов в восходящем порядке

Сортировка файлов в нисходящем порядке

Сортировка содержимого файла passwd по третьему полю

Примеры команды export

Вывод переменных, связанных в oracle

Экспорт переменных среды

Примеры команды xargs

Копирование всех изображений на внешний диск

Поиск всех изображений jpg в системе и их архивирование

Загрузука всех url из файла url-list.txt

Примеры команды ls

Вывод размеров файлов в читаемом формате

Сортировка файлов по последней дате изменения (в обратном порядке)

Визуальная классификация файлов со специальными символами

Команда pwd

Команда pwd выводит текущий рабочий каталог. Больше тут и нечего добавить.

Примеры команды cd

Используйте cd — для перехода в предыдущий каталог Используйте shopt -s cdspell для автоматической корректировки опечаток

Примеры команды gzip

Создание *.gz архива

Извлечение архива *.gz :

Вывод соотношения компрессии в архивах

Примеры команды bzip2

Создание архива *.bz2 :

Извлечение архива *.bz2 :

Примеры команды unzip

Создание архива *.zip :

Вывод содержимого архива *.zip , без извлечения:

Примеры команды shutdown

Останаливает систему и отключает питание

Выключает систему через 10 минут

Проверка файловой системы при перезагрузки

Примеры команды ftp

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

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

Примеры команды crontab

Вывод крон задач пользователя

Запуск крон задачи каждые 10 минут

Примеры команды service

Команда service применяется для запуска системных скриптов, вместо того, что бы запускать их с использованием полного пути из /etc/init.d .

Проверка состояния службы:

Проверка состояния все служб:

Примеры команды ps

Команды ps выводит информацию о запущенных в системе процессах. Команда ps принимает огромное количество аргументов, но самые частые из них следующие:

Вывод текущих запущенных процессов:

Вывод процессов в виде дерева:

Примеры команды free

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

Вывод команды. Значения в байтах.

Если вам надо посмотреть сколько гигов оперативной памяти осталось в системе используйте ключ -g. -k — вывод в килобайтах, -m — в мегабайтах

Используйте ключ t для подсчета результирующего значения занятой памяти:

Примеры команды top

Выводит самые ресурсоемкие процессы в системе (по-умолчанию сортируются по использованию cpu). Для изменения столбца сортировки используйте O.

Для вывода процессов одного пользователя используйте ключ u. Следующая команда выводит процессы, принадлежащие пользователю oracle.

Примеры команды df

Вывод количество занятого дискового пространства. По-умолчанию в байтах (-k)

df -h выводит размер в гигабайтах

Используйте ключ -T для вывода типа системы

Примеры команды kill

Применяется для завершения процесса. Сначала, определите id процесса командой ps -ef , а затем при помощи kill -9 вы сможете завершить процесс. Также для этой цели можно применять killall , pkill , xkill .

Примеры команды rm

Удаление файла с подтверждением

Довольно полезно использовать метасимволы в качестве имени файла в аргументе команды Вывод имени файла и запрос на подтверждение удаления:

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

Примеры команды cp

Копированиt файла file1 в file2 с сохранением режима, владельца и отметки времени.

Копирование file1 в file2. Если file2 уже существует, то выдается запрос на разрешение на перезапись

Примеры команды mv

Переименование file1 в file2. Если file2 существует, то выводится запрос разрешения на перезапись.

Заметьте mv -f переписывает файл по-умолчанию, без запросов.

mv -v выводит что именно происходит в процессе переименования, что особенно полезно при использовании метасимволов в команде.

Примеры команды cat


Вывод содержимого нескольких файлов. Следующий пример выводит содержимое file1 и file2 в stdout.

Ключ -n добавит номер строки в выводе:

Примеры команды mount

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

Так же можно добавить следующую строку в файл fstab, и указанные файловые системы будут монтироваться автоматически при загрузке системы. /dev/sdb1 /u01 ext2 defaults 0 2

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

Отмена выданных прав:

Применение прав рекурсивно ко всем каталогам и файлам:

Примеры команды chown

Команда используется для изменения собственника файла или каталога. Чтобы изменить владельца на oracle, а группу на db, следует изменять оба параметра одновременно:

Используйте ключ -R для применения команды рекурсивно:

Примеры команды passwd

Изменения пароля пользователя в терминале. Вы увидите запрос на ввод старого и новых паролей:

Супер пользователь может изменять пароли других пользователей. Запрос на ввод старого пароля не будет выведен.

Удаление пароля пользователя. Root пользователь может отключить пароль любому пользователю. Как только пароль будет удален, пользователь сможет входить в систему без пароля.

Примеры команды mkdir

Создание каталога temp в домашней директории

Создание вложенных каталогов при помощи одной команды. Если один из каталогов уже существует, ошибка не возникнет. Если какой-то каталог отсутствует, то он будет создан.

Примеры команды ifconfig

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

Запуск и остановка определенного интерфейса.

Примеры команды uname

Выводит важную информацию о системе, например, имя ядра, хоста и версию ядра, тип процессора и так далее.

Пример вывода команды:

Примеры команды whereis

Выводит местоположение определенной команды linux:

Если вы хотите осуществить поиск за пределами тех путей, которые заложены в команду whereis, можно использовать ключ -B для дополнения новых путей. Следующая команда ищет исполняемый файл в каталоге tmp и выводит его, если он был найден:

Примеры команды whatis

Выводит однострочное описание команды.

Примеры команды locate

Выдает месторасположение определенного файла (или группы файлов). Команда использует БД созданную командой updatedb.

Следующая команда выводит список файлов, в имени которых присутствует строка crontab.

Примеры команды man

Команда выводит инструкцию к команде.

Если существует несколько инструкций к одной команде, то выбрать нужную можно указав определенный раздел:

Всего существует 8 разделов.

  • Основные команды
  • Системные вызовы
  • Библиотеки C функций
  • Специальные файлы (как правило из /dev) и драйвера
  • Форматы файлов и условные обозначения
  • Игры и скринсейверы
  • Разное
  • Системные команды и демоны

Например, если вы обратитесь к странице документации команды crontab, то вы найдете её в двух разделах (1 и 5). Чтобы вывести статью из раздела 5, выполните следующее:

Примеры команды tail

По-умолчанию выводит 10 последних строк файла.

Вывод N строк из файла filename.txt

Вывод содержимого файла в реальном времени при помощи tail -f. Такой подход очень полезен при просмотре файлов логов. Остановить команду можно комбинацией CTRL-C.

Примеры команды less

Эта команда очень полезна при просмотре больших лог файлов, так как она не загружает файл полностью.

Используйте следующие две команды для навигации по открытому файлу:

CTRL+F – вперед на окно CTRL+B – назад на окно

Примеры команды su

Переход к другому аккаунту пользователя. Super пользователь может перейти под любой другой аккаунт без ввода пароля.

Выполнение одной команды под другим пользователем. В следующем примере john выполняет ls команду от имени пользователя raj. После выполнения команды, управление перейдет пользователю john.

Переход под другого пользователя и выполнение указанной shell оболочки вместо указанной по-умолчанию.

Примеры команды mysql

Mysql, пожалуй, занимает первое место в ряду СУБД с открытым исходным кодом. Даже если на вашем сервере и не запущен mysql сервер, то клиента mysql вы все рано наверняка используете для доступа к БД на удаленном сервере.

Команда подключает вас к удаленному серверу и запрашивает пароль.

Соединение с локальной БД.

Если вы хотите ввести пароль прямо в команде подключения, то вводите его сразу после ключа -p (без пробелов).

Примеры команды yum

Установка apache при помощи yum.

Обновление apache при помощи yum.

Удаление apache при помощи yum.

Примеры команды rpm

Установка apache при помощи rpm.

Обновление apache при помощи rpm.

Удаление apache при помощи rpm.

Примеры команды ping

Пинг пяти пакетов до удаленного сервера.

Установка системной даты:

После изменения системной даты следует синхронизировать часы оборудования:

Примеры команды wget

Быстрый способ загрузки ресурсов из сети:

Загрузка и сохранение под другим именем.

Я что-то упустил? Оставляйте комментариями и делитесь своими примерами.

Практические примеры использования команды find в Linux

Команда find в Linux являет одной из самых важной и часто используемых утилит командной строки в Unix подобных операционных системах. Команда find используется для поиска и определения расположения файлов и директорий на основе заданных условий. Эти условия задаются в качестве аргументов при запуске find и охватывают все возможные характеристики файла: имя, права доступа, владелец, группа, размер, время доступа/изменения/создания, тип файла, расширение и прочее. Причём эти все эти характеристики можно комбинировать в любых сочетаниях, а вывод команды find может быть настроен очень гибко.

Для первоначального знакомства с командой find рекомендуется статья:

В качестве справочного материала по всем возможностям find рекомендуется:

Если вам просто нужно найти файл по имени, то обратите внимание на команду locate — вполне возможно, её окажется вполне достаточно под ваши нужды:

Что касается данной статьи, которую вы читаете, то здесь собраны практические повседневные примеры, накопленные на базе опыта работы с find.

Команды в этой статье сгруппированы по нескольким разделам — от самых базовых до более продвинутых):

Часть 1: Простые команды find для поиска файлов по именам

Поиск файлов по имени в текущей директории

Найти все файлы, чьё имя zalinux.txt в текущей рабочей директории:

Поиск файлов в домашней директории

Найти все папки в директории /home с именем zalinux.txt:

Поиск файлов по имени без учёта регистра

Найти в директории /home все файлы с именем zalinux.txt чьё имя написано как заглавными, так прописными буквами.

Найти директории по имени

Найти все директории, чьё имя Zalinux в директории / (корневой директории).

Поиск PHP файлов по имени

Найти в текущей рабочей директории все файлы php чьё имя zalinux.php.

Найти все PHP файлы в директории

Найти все php файлы в директории.

Часть 2: Поиск файлов на основе их прав доступа (разрешений)

Найти все файлы с правами доступа 777

Найти все файлы, чьи права доступа равны 777 (право на чтение, запись и выполнение пользователем, группой и кем угодно.

Найти все файлы без прав доступа 777

Найти все файлы, разрешение на доступ к которым не равен 777.

Поиск SGID файлов с доступом 644

Найти все файлы с битом SGID чьи права доступа установлены на 644.

Поиск файлов со Sticky Bit с правами доступа 551


Найти все файлы с включённым Sticky Bit права доступа к которым равны 551.

Поиск SUID файлов

Найти все файлы с установленным SUID.

Найти SGID файлы

Найти все файлы у которых установлен SGID:

Найти только файлы с разрешением на чтение

Найти все файлы, к которым есть права на чтение:

Найти только файлы с разрешением на запись

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

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

Тем не менее если изменить пользователя, от чьего имени запускается команда, то результаты могут быть совсем другими. К примеру, подсчитаем количество файлов в директории /etc/ на которые есть право записи у владельца, но запустим команду от текущего пользователя и от суперпользователя (с sudo):

Результаты получились различными только из-за того, что у обычного пользователя не хватило прав «заглянуть» в некоторые подпапки и часть файлов не была проверена на соответствие условиям. При использовании sudo были проверены абсолютно все файлы и поэтому результатов получилось больше.

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

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

Также обратите внимание, как обозначено право на запись — используется плюс. Это означает, что могут присутствовать и другие права (например, на чтение и выполнение).

Следовать символическим ссылкам и не выводить сообщения об ошибках

При попытке доступа к файлам и папкам на которые недостаточно прав, выводятся сообщения о том, что доступ отклонён. Чтобы этого избежать, используйте после команды конструкцию 2>/dev/null

Если папка для поиска содержит символические ссылки, то по умолчанию команда find не следует им, что команда find переходила по символическим ссылкам, используйте опцию -L

Следующая команда найдёт в папке /tmp все файлы на которые у кого угодно есть права чтения, при встрече символических ссылок она будет переходить по ним, в случае возникновения проблем с доступом, сообщения об ошибках выводиться не будут:

Найти исполнимые файлы

Найти все исполнимые файлы.

Найти все файлы с доступом 777 и изменить их разрешения (chmod) на 644

Найти все файлы с разрешениями равным 777 и использовать команду chmod для установки разрешений на 644:

Найти директории с разрешением 777 и изменить их разрешения (chmod) на 755

Найти все файлы с разрешениями равным 777 и использовать команду chmod для установки разрешений на 755:

Поиск и удаление единичного файла

Найти единичный файл с именем hackware.txt и удалить его:

Поиск и удаление нескольких файлов

Для поиска нескольких типов файлов, таких как .mp3 или .txt и последующего их удаление используйте:

Поиск всех пустых файлов

Для поиска всех пустых файлов по конкретному пути:

Поиск всех пустых директорий

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

Найти все скрытые файлы

Для поиска всех скрытых файлов используйте следующую команду:

Часть 3: Поиск файлов на основе их владельцев и групп

Найти файл на основе имени пользователя

Найти все или один файл с именем hackware.txt в / (корневой) директории принадлежащие пользователю root:

Найти все файлы принадлежащие пользователю

Найти все файлы принадлежащие пользователю mial в директории /home:

Найти все файлы принадлежащие группе

Для поиска всех файлов, принадлежащих группе Developer в директории /home:

Найти определённые файлы, принадлежащие пользователю

Чтобы найти все файлы .txt пользователя mial в директории /home:

Часть 4: Поиск файлов и директорий по времени и дате

Найти файлы, которые были изменены определённое время назад

Чтобы найти все файлы, которые были изменены ровно 50 дней назад:

Найти файлы, к которым был получен доступ определённое время назад

Чтобы найти все файлы, к которым был получен доступ ровно 50 дней назад:

Найти файлы, изменённые в заданном диапазоне дней

Чтобы найти все файлы, которые были модифицированы более 50 дней назад и менее 100 дней назад:

Поиск файлов, чьи свойства недавно менялись

Чтобы найти файлы, свойства которых (права доступа, владелец, группа) были изменены за последний час:

Поиск недавно модифицированных файлов

Чтобы найти файлы, которые были модифицированы за последний час:

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

Чтобы найти все файлы, доступ к которым был сделан за последний час:

Часть 5: Поиск файлов и директорий на основе размера

Поиск файлов определённого размера

Чтобы найти все файлы размером ровно 50MB используйте:

Поиск файлов размера в определённом диапазоне

Чтобы найти все файлы, чем размер более 50MB и менее 100MB:

Поиск и удаление файлов определённого размера

Чтобы найти все файлы размером ровно 100MB и удалить их, используйте следующую команду:

Поиск файлов с определённым расширением и определённым размером и их удаление

Чтобы найти все .mp3 файла размером более чем 10MB и удалить их в одну команду, используйте:

Часть 6: Поиск нескольких имён файлов (расширений)

Этот раздел посвящён ситуациям, когда нужно одной командой выполнить поиск файлов по нескольким именам или нескольким расширениям.

Предположим что нужно найти все файлы в текущей директории с файловыми расширениями .sh и .txt, это можно сделать следующей командой:

Объяснение предыдущей команды:

  • . (точка) означает текущую директорию
  • -type используется для указания типа файла, мы ищем обычные файлы, которые здесь обозначаются буквой f
  • -name используется для указания шаблона поиска. В данном случае указаны расширения файлов
  • -o означает «ИЛИ»
  • скобки () используются для установки приоритета логических операций

В результате получается следующее:

  • нужно найти файлы И (имя у них «*.sh» ИЛИ имя «*.txt»)

Если бы скобки не использовались, то по правилам приоритета логических операций получилось бы следующее:

  • (нужно найти файлы И имя у них «*.sh») ИЛИ имя «*.txt»

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

Для поиска по трём файловым расширениям .sh, .txt and .c используется следующая команда:

И ещё один пример по поиску всех изображений — ищутся файлы по расширениям .png, .jpg, .deb и .pdf:

Как можно понять из приведённых выше команд, добавляя опцию -o («ИЛИ») можно указать любое количество условий. Помните, что логическая операция «ИЛИ» имеет меньший приоритет перед операцией «И». Для операции «И» не требуется специальная опция (хотя она есть), поскольку она подразумевается по умолчанию.

15 практических примеров использования Unix команды ls

Описание команд разбито на несколько разделов — по функциональному назначению команд.

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

Команда pwd (print working directory — печать pабочего каталога) позволяет узнать имя текущего каталога:

Т.е. в настоящее вpемя Вы находитесь в коpневом каталоге.

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

Если вместо имени текущего каталога на экpан будет выдано диагностическое сообщение типа: Cannot open.. (« Не может открыть.. ») и Read error in.. (« Ошибка считывания в.. »), то значит пpоизошло наpушение файловой системы, возможно у Вас не хватает прав на чтение этого каталога.

Команда cd используется для смены текущего каталога, т.е. для пеpехода в дpугой каталог и является встpоенной командой оболочки (аналог соответствующей команды для DOS-систем). В качестве аpгумента этой команды укажите имя каталога, в котоpый Вы хотите пеpейти. Напpимеp:

Например, cd /etc — пеpейти в каталог /etc , т.е. сделать его текущим.

Если Вы хотите пеpейти в подкаталог, то « / » не указывается. Допустим Вы находитесь в каталоге /usr и вам надо пеpейти в каталог local , котоpый является подкаталогом этого каталога. В этом случае вы можете выполнить следующие действия:

Таким обpазом каталог /usr/local стал текущим.

Если ввести команду cd без аpгументов, то вы веpнетесь в свой домашний (начальный) каталог. Пpи этом используется системная пеpеменная окружения HOME .

Пpиведем еще несколько пpимеpов использования этой команды:

  • cd .. — веpнуться в pодительский каталог (подняться на один каталог ввеpх по деpеву);
  • cd ../.. — подняться на два каталога ввеpх по деpеву;
  • cd / — пеpейти в коpневой каталог;
  • cd ../local — веpнуться в pодительский каталог и пеpейти в его подкаталог local .

Команды ls выдает pазличную инфоpмацию о файлах и каталогах (аналог команды DIR для DOS-систем). Как и большинство команд, ls имеет возможные аpгументы и параметры (флаги), котоpые позволяют изменить её действие.

Пеpейдите с помощью команды cd / в коpневой каталог и посмотpите его содеpжимое. Если опции не указаны команда выводит отсоpтиpованные по алфавиту имена файлов и каталогов.

К сожалению, пока не очень понятно, что является каталогом, а что файлом. Помочь в этом может следующая команда, котоpая выдает инфоpмацию в pасшиpенном фоpмате, котоpый содеpжит больший объем инфоpмации о каждом файле (пpава доступа, pазмеp, дата последней модификации и т.д.):

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

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

Если качестве опеpанда указать имя каталога, то будет выдано содеpжимое этого каталога, т.е. имена файлов в этом каталоге:

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

Можно использовать следующие опции:

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

Создать каталог довольно легко. Для этого существует команда mkdir (аналог её есть и в DOS системах). В качестве аргумента необходимо указать имя создаваемого каталога:

Стандартные элементы точка (.) для самого каталога и две точкт (..) для его родительского каталога создаются автоматически.

Команда mkdir может быть использована и для создания нижележащих подкаталогов непосpедственно из текущего каталога с указанием полного пути к ним. В этом случае все указанные в пути каталоги должны существовать и быть доступны. Если же Вам необходимо моздать иерархию каталогов, удобно пользоваться опцией -p :

Без использования опции -p при попытке создать уже существующий каталог будет выдано соответствующее предупреждение.

После создания pазнообpазнейших каталогов, чеpез некотоpое вpемя у вас возникнет естественное желание удалить некотоpые из них. В этом вам может помочь команда rmdir . Ее фоpмат также пpост, как и фоpмат пpедыдущей команды mkdir :

Команда rmdir удаляет каталог, имя котоpого указано в качестве параметра. Удаляемый каталог должен быть пустым, то есть пеpед его уничтожением вы должны удалить все находящиеся в нем файлы. Пpактически это пpиходится делать очень pедко, так как с двумя этими пpоблемами успешно спpавляется команда rm , котоpая будет pассмотpена позже.

Указанные имена каталогов обрабатываются по поpядку. Пpи одновpеменном удалении каталога и его подкаталога, подкаталог должен быть удален pаньше.

Команда touch только и делает, что меняет время последнего доступа к файлу. Замечательной особенностью этой команды является то, что с ёё помощью можно создавать новые пустые файлы — если в качестве аргумента передаётся имя несуществующего файла:

В пpоцессе pаботы с системой довольно часто возникает необходимость удаления файлов. Для этого существует команда rm , котоpая позволяет удалять как файлы, так и каталоги. Пользоваться ей нужно с большой остоpожностью, так как UNIX-системы не имеют пpивычки, в отличии от Windows, пеpеспpашивать пользователя пеpед удалением файла, а делают это быстpо и навсегда. Поэтому, связи с тем, что в UNIX-системах нет пpивычных пpогpамм восстановления удаленных файлов, кpепко поду- майте пеpед тем, как что-то удалять.

Команда rm имеет следующий фоpмат:

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

Пpи попытке удаления каталога с помощью этой команды будет выдано сообщение об ошибке.

Вы можете использовать следующие опции:

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

Вы можете использовать следующие опции:

Копирование файла в текущий каталог с новым именем:

Копирование файла в текущий каталог с сохранением имени:

Переименование файла или перемещение одного либо нескольких файлов (или каталогов) в другой каталог. Формат команды:

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

Вы можете использовать следующие опции:

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

Эта команда создаёт ссылки на файлы как жёсткие, так и символические. Она имеет следующий формат (аналогичный команде mv по порядку аргументов):

Вы можете использовать следующие опции:

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

Создание символической ссылки на каталог:

Команда выводит размер пространства на диске, занятого каталогом (и всеми его подкаталогами), в блоках (по умолчанию, 1 блок составляет 512 байт). По умолчанию выводится информация о текущем каталоге.

Программа имеет следующие параметры:

Пример выполнения программы:

Команда tar предназначена для архивации груп файлов и каталогов. Эта команда позволяет объединять группу файлов и каталогов со всеми атрибутами в единый файл, который имеет расширение « .tar ». Полученный файл затем с помощью той же команды tar . Команда tar имеет множество опций, мы же остановимся на следующем формате использования команды:

Опция -c соответствует созданию архива, -x — разворачивание архива.

Созданный архив можно также сжать с помощью архиваторов gzip или bzip2 . Для этого применяются соответственно опции -z и -j . Здесь хорошо видна разница между понятием « архивирование », которое выполняет команда tar , и « сжатием », которе производят специализированные программы.

Имя архива, который создаётся или разворачивается передаётся после параметра -f .

Рассмотрим примеры работы с этой программой:

  • Создание архива etc.tar.bz2 каталога /etc с использованием сжатия bzip2 :

Разворачивание архива etc.tar.bz2 в текущий каталог с использованием разсжатия bzip2 :

При работе с файлами часто бывает необходимо найти что-нибудь. В UNIX для этого существует команда find . В общем виде эта команда имеет следующий формат:

Первый аргумент команды find — это имя каталога , в которой производится поиск. По умолчанию, это текущий каталог.

Далее указываются условия поиска , которые могут принимать следующие значения:

Условия поиска могут быть объединены с помощью модификаторов: -a — И, -o — ИЛИ, \! — НЕ, \(. \) — группа условий.

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

Рассмотрим примеры использования команды:

  • Вывод всех файлов в текущем каталоге и подкаталогах:

Вывод всех файлов в каталоге /etc , начинающихся на « re »:

Вывод всех подкаталогов в каталоге /etc , начинающихся на « re »:

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

Вывод всех файлов в каталоге /tmp , не принадлежащих пользователю user:

Удаление в текущем каталоге всех устаревших файлов (оканчивающихся на «

Вывод на экран имён всех текстовых файлов в домашнем каталоге:

Копирование всех текстовых файлов на дискету:

Команда используется для создания специальных файлов: именовыных каналов . С помощью этих каналов можно осуществлять взаимодействие между процессами операционной системы.

Для создания канала необходимо ввести команду mkfifo , аргументом которой является имя файла канала:

Именованый канал аналогичен неименованному (который устанавливается с помощью символа « | ») — процессы могут писать в него и читать из него. При этом с каналом оперируют как с файлом:

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

Команды по работе с текстом

В операционной системе UNIX большинство информации хранится в текстовом виде. Поэтому команды по обработке текстовой информации играют очень важную роль в этой операционной системе.

Познакомимся еще с одной командой, аналог котоpой имеется в DOS-си- темах. Это команда echo (эхо).

Она имеет фоpмат:

Команда echo выводит на устройство стандартного вывода заданные ей аргументы, разделяя их пробелами и завершая их символом новой строки (\n).

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

С помощью следующей команды можно довольно пpосто создать пустой файл: echo > имя_файла .

Возможен параметр -n — не выводить завеpшaющий символ перевода строки.

Интеpпpетатоp команд имеет встроенную команду echo , которая имеет синтаксические различия с внешней командой echo . Следует знать, что пользователям, работающим с оболочкой, будет доступна встроенная команда echo , если они не укажут /bin/echo .

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

Вывод сообщения « Hello, world » на экpан:

Вывод сообщения без завеpшающего символа новой стpоки:

Вывод сообщения в файл file1 :

Добавление сообщения к содеpжимому файла file1 :

Вывод имен файлов текущего каталога в алфавитном поpядке:

Вывод списка файлов с именами, соответствующих шаблону. Вывести имена файлов с pасшиpением .txt:

Рассмотpим еще одну команду, котоpая может быть полезна пpи pаботе с файлами. Это команда cat (аналог команды TYPE для DOS-систем).

Команда cat имеет следующий фоpмат:

Она по очеpеди читает указанные, как аpгументы файлы и выводит их содеpжимое на стандаpтное устpойство вывода.

Поименованный файл или файлы выводятся последовательно один за дpу- гим без пpомежутков. Если файл достаточно длинный, то можно пpиостано- вить вывод с помощью комбинации клавиш Ctrl — S . Для пpодолжения вывода нажмите любую клавишу. Окончание ввода производится комбинацией Ctrl — D .

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

Вы можете использовать следующие опции:

Рассмотрим примеры использования команды:

Файл file выводится на устройство стандартного вывода:

Сцепление (слияние) файлов file1 и file2 , после чего они помещаются в файл file3 :


Пpисоединение файла file1 к концу файла file2 :

Вывод содеpжимого файла с нумеpацией стpок, но без нумеpации пустых стpок:

Нумеpация всех стpок:

Команда less используется для просмотра файлов, размер которых превышает размер экрана. Пользователю предоставляется интерактивынй интерфейс, в котором текст можно пролистывать, производить по нему поиск и т.п..

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

Управлять программой less просто: страницы перелистываются пробелом, а когда читать надоест, надо нажать q (Quit). Перелистывать страницы можно и клавишами Page Up / Page Down , для сдвига на одну строку вперед можно применять Enter или стрелку вниз, а на одну строку назад — стрелку вверх. Переход на начало и конец текста выполняется по командам g и G соответственно (Go). Полный список того, что можно делать с текстом в less , выводится по команде h (help). Для поиска и подстветки интересующего понятия можно воспользоваться командой / , после которой необходимо ввести интересующий Вас термин — по нажатию клавиши Enter , курсор перейдёт к первому упоминанию термина, который будет выделен серым цветом. Последующие нажатия / и Enter приведут к продолжению поиска слова по документу.

Программа less используется в качестве основы команды man — при просмотре страниц руководств.

Команда выводит на экран первые несколько строк файла. По умолчанию выводится первые 10 строк. Имя выводимого файла указывается в качестве аргумента программы, и если оно не задано, производится чтение информации со стандартного входа.

С помощью параметра -n можно задать число строк от начала файлы, которые будут выведены на экран. Например:

Команда выводит на экран последние несколько строк файла. По умолчанию выводятся последние 10 строк. Имя выводимого файла указывается в качестве аргумента программы, и если оно не задано, производится чтение информации со стандартного входа.

С помощью параметра -n можно задать число строк от конца файла, которые будут выведены на экран. Например:

Таким способом удобно просматривать последние записи системных журналов.

Другим важным параметром команды является -f : команда ожидает изменения в конце фала и отображает их на экране. Часто это используется при просмотре постоянно увеличивающихся файлов. Для завершения команды нажмите Ctrl — C .

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

Вы можете использовать следующие опции:

Примеры работы программы:

Выделение первых семи столбцов файла:

Получение списка групп пользователей, зарегистрированных в системе:

Команда paste объединяет два текстовых файла в один. В получившемся файле исходные строки располагаются в соседних столбцах, разделённые символом табуляции (или любым другим символом, указанным через параметр -d ).

Часто применяется совместно с программой cut .

Команда sort сортирует строки, входящие во все исходные файлы, и выдает результат на стандартный вывод. Если имена файлов не указаны, или в качестве файла указан « — », исходная информация поступает со стандартного ввода. Команда имеет формат:

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

Вот основные опции команды:

Рассмотрим примеры использования команды:

Отсортировать файл с фамилиями:

Отсортировать список файлов в обратном порядке:

Команда uniq построчно анализирует файл и в случае, если он содержит в себе повторяющиеся строки, выбрасывает дубликаты. Команда имеет следующий формат:

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

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

Рассмотрим примеры использования команды:

Получим имена всех пользователей, работающих в системе в настоящий момент:

Однако такой результат будет не всегда:

Это происходит потому, что команда uniq сравнивает строки последовательно. Для того, чтобы избежать дублирования, результат можно сперва сортировать:

Команда iconv не является оригинальной командой UNIX, она появилась в системах, разработанных в рамках проекта GNU . Однако большинство современных версий UNIX содержат эту команду.

Команда предназначена для перекодирования текстовых файлов из одной кодировки в другую и имеет следующий формат:

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

Имя кодировки — исходной или конечной должно соответствовать кодировке в файле, список доступных кодировок можно получить, если запустить команду iconv с параметром -l .

Эта команда предназначена для подсчёта количества строк, символов и слов в указанных файлах. Команда имеет слудующий формат:

Можно использовать следующие опции:

Рассмотрим примеры использования команды:

Подсчёт числа слов в документе:

Число файлов в каталоге:

Полная статистика по группе xml-файлов (число строк, число слов, число байт):

dd — команда блочного копирования файлов. Она имеет следующий формат:

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

Рассмотрим примеры использования команды:

Копирование загрузочного сектора жёсткого диска в файл bootsect :

Копирование файла размером до двух мегабайт на простой гибкий диск и обратно:

Команды, использующие регулярные выражения

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

Простой пример: найти своего пользователя в файле /etc/passwd :

Первый аргумент команды grep — та строка, которую нужно искать в файле или стандартном вводе, в данном случае это « user », а поскольку файл /etc/passwd выводит сведения по строке на каждого пользователя, таким образом можно получить информацию о пользователе « user ».

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

В регулярном выражении большинство символов обозначают сами себя, как если бы мы искали обыкновенную текстовую строку, например, « user » и « :: » в регулярном выражении соответствуют строкам « Note » и « :: » в тексте. Однако некоторые символы обладают специальным значением, самый главный из таких символов — звездочка (« * »), поставленная после элемента регулярного выражения, обозначает, что могут быть найдены тексты, где этот элемент повторен любое количество раз, в том числе и ни одного, т.е. просто отсутствует.

С помощью следующей команды можно посмотреть все локальные сетевые имена, зарегистрированные в системе:

Символ « . » заменяет « любой символ », а вместе с « * » означает 0 или больше любых символов. Символ « ^ » в начале регулярного выражения означает, что необходимы строки, начинающиеся с данного шаблона (для обозначения конца строки используют символ « $ »).

Существуют и другие способы группирования символов:

« [ » и « ] » задают класс символов , когда в выражении может встретиться любой из них. С помощью следующего регулярного выражения выводятся все строки, содержащие любые числа (знак « + » является аналогом « * », только задаёт 1 и большее число упоминаний предыдущего символа):

« ( » и « ) » позволяют группировать выражения. Например, следующая команда выводит все строки, содержащие IP-адрес:

Запись « <3>» означает, что предыдущий символ или выражение должно повторяться в точности 3 раза.

Регулярные выражения содержат множество управляющих символов, каждый их которых наделён собственным смыслом. Для того, чтобы воспользоваться непосредственным значением символа (для поиска его в строке), необходимо поставить перед ним символ обратной косой: « \ ».

Команда grep содержит множество удобных параметров, например вывод номера найденной строки ( -n ) или вывод только подстроки, соответствующей самому регулярному выражению ( -o ).

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

Регулярные выражения можно использовать не только для поиска по файлу, но и для изменения информации. Для такого поиска с заменой можно воспользоватья утилитой sed (stream editor — поточный редактор). sed имеет свой встроенный простой язык, с помощью которого можно задать правила модифицирования файла.

Все команды встроенного языка sed состоят из одной буквы. Например, поиск с заменой выполняет команда « s » (search). Синтаксис у нее следующий:

Эта команда заменяет в информации о корневом каталоге все строки, начинающиеся с символа d и все, следующие за ним непробельные символы, на слово directory .

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

Попробуем разобраться подробнее, как работает редактор sed . Входной текст sed считывает построчно. К считанной строке он по очереди пробует применить каждую команду сценария. Применив все возможные команды к строке, sed выводит на стандартный вывод то, что от нее осталось. Команда сценария может начинаться с т.н. контекстного адреса, определяющего свойства строк, к которым эту команду можно применять. Простой контекстный адрес — это номер строки (команда применяется к единственной — совпадающей по номеру — строке входного потока) или регулярное выражение (команда применяется ко всем строкам, в которых найдено соответствие этому РВ). Например, команда sed «1s/_/ /g» заменит в первой строке все подчеркивания на пробелы, а sed «/^a/d» удалит (delete) все строки, начинающиеся с « a ».

У sed очень широкие возможности, но довольно непривычный синтаксис. Чтобы в нем разобраться, нужно обязательно прочесть руководство sed и знать регулярные выражения.

Работа с командной строкой

Создайте бесчисленное множество программ, комбинируя утилиты UNIX между собой

Серия контента:

Этот контент является частью # из серии # статей: Использование UNIX, Часть 1

Этот контент является частью серии: Использование UNIX, Часть 1

Следите за выходом новых статей этой серии.

Знакомство с оболочкой UNIX

Одна из самых оригинальных и выделяющихся возможностей операционных систем семейства Unix® — это командная строка. При помощи нескольких нажатий клавиш и «связующих элементов», вы можете использовать командную строку для комбинирования конечного набора команд Unix в бесконечное множество операций с данными.

Например, чтобы перечислить все файлы с уникальными именами в текущем каталоге, вы можете напечатать в оболочке UNIX (shell) следующую строку:

Эта строка последовательно использует три различные утилиты:

Утилита find просматривает указанный каталог — в этом случае файловую систему, начинающуюся с . (точки) (условное обозначение для текущего каталога) – и выводит названия всех файлов, которые соответствуют указанному критерию. Параметр –type f указывает утилите find искать только обычные файлы.

Утилита sort , как можно догадаться по названию, преобразует полученный список в новый список, уже отсортированный по алфавиту.

Утилита uniq (сокр. от «unique») сканирует список, сравнивая смежные элементы и удаляя дубликаты из списка. Например, предположим, есть такой список:

Пример 1. Исходный список

Утилита uniq сокращает содержимое этого списка до следующего:

Пример 2. Использование команды uniq

Однако если бы исходный список изначально был отсортирован (все имена были бы расположены по алфавиту), запуск uniq привел бы к следующим результатам:

Пример 3. Использование команды uniq

Для того, чтобы получить исчерпывающую информацию о возможностях утилит find , sort и uniq , обращайтесь на страницу справочника man для соответствующей утилиты.

Работа с системами ввода / вывода в UNIX

Утилита find всегда принимает на вход содержимое файловой системы, в том случае, если она запущена независимо от других утилит. Однако утилиты sort и uniq получают входные данные от стандартного устройства ввода (stdin). Чаще всего в этом качестве используется клавиатура. Например, вы печатаете строки, содержащие данные, которые вы хотите отсортировать.

По умолчанию find печатает результаты работы на стандартное устройство вывода (stdout). Обычно это консоль вашего терминала. Утилиты sort и uniq также печатают результаты в stdout.

Чтобы проверить работу stdin и stdout, напечатайте следующий текст в вашей консоли (символ % — это приглашение оболочки на ввод команды):

Пример 4. stdin и stdout

Утилита sort считывает из stdin три строки, которые вы напечатали, сортирует их и выводит результат. Рисунок 1 показывает схему работы sort и большинства утилит UNIX, запускаемых из командной строки.

Рисунок 1. Стандартная утилита UNIX запускается из командной строки, считывает данные с stdin и выводит результат в stdout

Некоторые утилиты, такие как find , не считывают данные из stdin. Вместо этого они получают данные для обработки из различных источников, таких как файловая система или ядро, и выводят результаты в stdout. Чтобы понять, как работает find , посмотрите на рисунок 2.

Рисунок 2. Некоторые утилиты считывают данные из системных ресурсов и выводят результат в stdout

В дополнение к stdin и stdout, команды UNIX могут выводить сообщения об ошибках в специальную систему вывода, которая используется для отладки. Эта система называется – стандартное устройство для вывода ошибок (обычно к нему обращаются как к stderr). На рисунке 3 показана схема работы утилиты, запускаемой из командной строки.

Рисунок 3. Команды UNIX могут выводить ошибки в специальную систему вывода (standard error)

Как следует из рисунка 3, большинство команд UNIX считывают данные с консоли терминала, выводят на терминал результаты работы и сведения о возникших ошибках. По умолчанию, пока вы не измените конфигурацию, ваш терминал – это источник данных для stdin и пункт назначения для данных из stdout и ошибок из stderr.

Перенаправление данных

Однако вы можете изменить источник данных для stdin и пункты назначения для вывода stdout и stderr. Вы можете заставить stdin считывать данные из файла или c устройства, подключенного к компьютеру, или извлекать данные из сетевого подключения. Точно так же вы можете направить вывод в файл, на устройство или через сетевое подключение. В UNIX любое устройство ввода / вывода можно рассматривать как файл, и использовать для передачи входных данных или вывода результатов.

Изменение источника или пункта назначения обрабатываемых данных называется перенаправлением. Вы можете перенаправить stdin, чтобы считывать данные с файла или другого источника, и вы можете перенаправить по отдельности stdout и stderr, чтобы выводить данные куда-нибудь еще, кроме окна терминала. В большинстве случаев, как в команде find , показанной раньше, вы можете перенаправить ввод или вывод для утилиты, чтобы сформировать входные данные для другой утилиты или принять данные от нее на вход. Для этого существует символ | , обозначающий канал ввода / вывода. Вы можете связывать этапы обработки между собой, используя каналы, отправляя данные из одной команды в следующую команду, подобно подаче воды по трубам.

Рисунок 4 показывает последовательность выполнения следующей команды find . -type f -print | sort | uniq .

Рисунок 4. Схема взаимодействия трех утилит, связанных каналами ввода / вывода

Канал вывода stdout команды find становится каналом ввода stdin команды uniq . В свою очередь канал вывода stdout команды uniq подает данные в канал входа stdin команды sort . Наконец, команда sort печатает результаты в свой канал вывода stdout, который выводит информацию на терминал. Канал вывода stderr для вывода ошибок не было перенаправлен, поэтому все три команды печатают сообщения об ошибках на терминал. Сообщения об ошибках этих команд могут сливаться друг с другом, но порядок сообщений будет правильный.

Если потребуется, вы можете продлить канал и перенаправить выход uniq в другую утилиту. Просто присоедините другой канал, чтобы продолжить преобразование. Например, вы можете добавить | less , чтобы выводить результат по страницам, или добавьте | wc -l чтобы подсчитать количество файлов с уникальными именами. Команда wc (сокр. от word count) может считать символы, слова, строки.

Или вы можете использовать символ > , чтобы сохранить результат работы всей последовательности команд в файл (перезаписав его текущее содержимое). Также можно использовать >> , чтобы приписать результаты работы к содержимому файла (если такого файла нет – он будет создан).

Другое полезное перенаправление обозначается символом . Рисунок 5 показывает, как можно перенаправить stdin, чтобы поток ввода считывал данные из файла. Команда sort считывает список слов из указанного файла и сортирует его по алфавиту.

Рисунок 5. Перенаправление стандартного канала ввода на считывание из файла

Часто вам требуется собрать данные с stdout и stderr устройств. Например, если вы выполняете объемную задачу по анализу данных, вы, возможно, захотите просмотреть промежуточные результаты и ошибки, которые возникли по ходу работы. Вы можете использовать различные типы перенаправления, чтобы сделать это: |& , >& , >>& , например, создать канал и перенаправить туда stdout и stderr. На рисунке 6 показано, как перенаправить устройства stdout и stderr в общий поток вывода.

Рисунок 6. Сведение каналов stderr и stdout в один поток вывода

Введение в оболочку Z (Z shell)

Большинство современных оболочек UNIX, включая bash — оболочку Борна (Bourne shell) и ksh — оболочку Корна (Korn shell), поддерживают виды перенаправления, упоминавшиеся выше, хотя синтаксис, используемый в этих оболочках, может слегка отличаться. (За дополнительной информацией обращайтесь в документацию по вашей оболочке).

Большинство операторов для перенаправления поддерживаются всеми оболочками UNIX в течение последних 25 лет. Несмотря на это, большая часть оболочек оказались неспособными предложить новые способы использования перенаправления. Например, большинство оболочек могут только перенаправить вход только из одного файла, и вам приходится использовать такую утилиту как tee , чтобы осуществлять вывод сразу в нескольких направлениях. У утилиты tee есть один вход и два выхода. Пример 5 демонстрирует возможности оболочки bash (интерпретатора командной строки).

Пример 5. Использование bash

Хотя оболочки UNIX в основном используют для ввода данных клавиатуру, такая оболочка как bash может использовать файл для ввода данных, так как stdin, на самом деле, это тоже файл. В предыдущем примере фрагмент bash заставляет bash выполнить список команд, находящихся в файле tellme. Конструкция |&tee log направляет stdin и stdout bash в утилиту tee , которая печатает данные из канала stdin в stdout и в файл log.

Но что, если вы захотите подать на вход bash более чем один файл? Конструкция cat file1 file2 file3 | bash — это подходящее и, возможно, единственное решение, так как bash не поддерживает такой синтаксис bash .

Более того, bash не может направить вывод более чем одному адресату. Например, вы не сможете выполнить такую инструкцию bighairyscript >

/log | mail -s «Important stuff» team из командной строки bash .

Но относительно новая zsh — оболочка Z (Z shell – см. дополнительную информацию) может обрабатывать сразу несколько входных и выходных перенаправлений из одной командной строки. В примере 6 приведена команда, которая сохраняет stdout в файл, называемый log, и отравляет его по электронной почте.

Пример 6. Работа с оболочкой Z

Фрагмент ‘whoami’ запускает команду whoami и вставляет результат работы этой команды вместо себя. Такой результат достигается предварительным запуском небольшого фрагмента командной строки перед выполнением остального содержимого командной строки.

Давайте разберем предыдущую команду слева направо. Команда bash создает файл log и отправляет результаты работы команд из файла tellme на адрес электронной почты. Так как поток stderr не перенаправлялся при помощи оператора > или канала, то сообщения об ошибках выводятся в stdout. Команда — это другое сокращение Z, работает аналогично команде cat. Так что команда lt;file эквивалента cat file .

Оболочка Z также может обрабатывать более чем одно перенаправление входных данных. Команда cat в оболочке Z эквивалента cat file1 file2 file3 . Правда, первый вариант конструкции явно более громоздкий, чем второй, а многократные перенаправления stdout используются куда чаще. Тем не менее, если утилита, которую вам нужно запустить, принимает на вход только один аргумент, возможность оболочки Z по множественному перенаправлению ввода может оказаться полезной.

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

Тонкости при работе с оболочкой

Предлагаем вам несколько полезных советов, которые могут сделать вашу работу в UNIX более продуктивной. Эти команды будут работать во всех оболочках, а не только zsh .

Создание полной копии любого каталога, включая символические ссылки, используя команду tar :

Сначала tar архивирует указанный каталог /path/to/original и выводит содержимое архива в stdout, знак переноса ( — ), используемый с параметром с (создать), направляет вывод в stdout. Команда в круглых скобках — это вложенная оболочка, команды во вложенных оболочках не влияют на работу основной оболочки. Команда mkdir -p создает указанный каталог, включая все промежуточные каталоги, и команда cd переводит оболочку в новый каталог. Вторая команда tar считывает содержимое архива из stdin и извлекает его содержимое в указанный каталог, знак переноса ( — ) с параметром х (извлечь) заставляет считывать входные данные из stdin.

Чтобы сохранить данные из stdout последовательности команд в файл и одновременно просматривать их, используйте конструкцию less -O file . Аргумент -O копирует данные, поступившие по stdin в указанный файл . Например:

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

может привести к ошибке. (Возможно, вы увидите такое сообщение Line length exceeded , когда длина вашей командной строки будет превышена.) Если происходит такая ошибка, используйте канал ввода и утилиту xargs . Эта утилита считывает данные из канала и запускает указанную команду для каждой считанной строки.

Например, если вы хотите найти все веб страницы на вашем сервере, которые ссылаются на URL www.example.com, вы можете использовать такую команду:

Команда xargs принимает на вход имена файлов от find и последовательно запускает grep -l для обработки каждого файла, вне зависимости от того, сколько файлов нашлось. Команда grep -l печатает имя файла, если в нем удалось в нем обнаружить указанный фрагмент текста, а затем прекращает анализ этого файла. Утилита less позволяет вам просматривать результаты по страницам и сохранить список в файл с названием pages. Результатом работы этой команды будет список файлов, которые содержат строку «www.example.com».

Заключение

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

Оставайтесь на связи!

Ресурсы для скачивания

Похожие темы

  • Оригинал статьи (EN)
  • Оболочка Z: скачайте последнюю версию Z shell с домашней страницы оболочки Z(EN).
  • Архив переписки (EN) по zsh : ознакомьтесь с этими материалами чтобы узнать больще о приемах работы в оболочке Z.
  • AIX и UNIX: сообщество developerWorksпредлагает сотни информативных статей и обучающих курсов различной стпепени сложности по AIX и UNIX.
  • IBM trial software: создайте ваше новое приложение с помощью программного обеспечения IBM, которое можете загрузить прямо со страницы сообщества developerWorks.(EN)
  • Podcasts(EN): оставайтесь на связи с техническими экспертами IBM.

Комментарии

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

Мастер Йода рекомендует:  LG Display разработала ИИ-систему для борьбы с тошнотой в VR
Добавить комментарий