20 окт. 2000 г.

Азы linux (для детей) урок 30

Перенаправление ввода-вывода (I/O) (зпключение)
В этой главе мы узнали, как команды могут быть связаны друг с другом, и как вывод одной команды может быть использован в качестве ввода для другой.
Перенаправление ввода/вывода — обычная задача на машинах UNIX и Linux. Этот мощный механизм позволяет гибко использовать блоки, из которых сделан UNIX.
Наиболее часто используемыми перенаправлениями являются > и |. См. Приложение C, "Особенности Shell" для обзора команд перенаправления и других конструкций shell.
Команда Значение
date Отображает дату и время
set Настройка опций оболочки
sort Сортирует строки текста
uniq Удаляет повторяющиеся строки из отсортированного файла




Упражнения

Эти упражнения представляют дополнительные примеры того, как объединять команды. Основная цель - попытаться использовать клавишу Enter как можно меньше.
Все упражнения выполняются под обычным пользовательским ID, так что появляются некоторые ошибки. Когда вы их видите, не забывайте прочитать man-страницы!
  • Используйте команду cut на вывод длинного списка каталога, чтобы отобразить только права доступа к файлам. Затем отправьте в конвейере этот вывод на sort и uniq, чтобы отфильтровать все повторяющиеся строки. Потом с помощью wc посчитайте различные типы разрешений в этом каталоге.
  • Отправьте вывод date в файл. Добавьте выход ls в этот же файл. Отправьте этот файл на ваш локальный почтовый ящик (не указывайте ничего вроде «@домен», достаточно просто имени пользователя). В случае успеха при использовании Bash вы увидите новое почтовое уведомление.
  • Отобразите список устройств в /dev, которые в настоящее время используются вашим UID. Организуйте конвейер через less, чтобы посмотреть их должным образом.
  • Выполните следующие команды под непривилегированным пользователем. Определите стандартный ввод, вывод и ошибку для каждой команды. Теперь проверьте ваши результаты выдачи команд снова, теперь перенаправляя стандартный вывод в файл /var/tmp/output и стандартную ошибку в файл /var/tmp/error.
    • cat nonexistentfile
    • file /sbin/ifconfig
    • grep root /etc/passwd /etc/nofiles > grepresults
    • /etc/init.d/sshd start > /var/tmp/output
    • /etc/init.d/crond start > /var/tmp/output 2>&1
  • Как много процессов у вас сейчас работает?
  • Сколько скрытых файлов в вашем домашнем каталоге?
  • Используйте locate, чтобы найти документацию по ядру.
  • Узнайте, какой файл содержит следующую запись:
root:x:0:0:root:/root:/bin/bash
А эту:
system:		root
  • Посмотрите, что произойдет после выполнения этой команды:
> time; date >> time; cat < time
  • Какие команды вы бы использовали, чтобы проверить, какие сценарии в /etc/init.d запускают данный процесс?