Ода командной строке
Вся идеология *nix систем основывается на том, что есть много (очень много) инструментов выполняющих задачи в узкой сфере. Но делающих это качественно (очень качественно). Задача пользователя заключается в том, чтобы объединить эти инструменты для выполнения специфических задач. Эти принципы существуют и в других системах, но в большинстве случаев возможности командной строки в этих системах второстепенны. На первый план выдвигается GUI (графический интерфейс пользователя). Никто не спорит, в графическом интерфейсе, возможно, удобней работать. Некоторые задачи действительно удобнее делать в графическом режиме. Рисовать например. И для художника командная строка наверное не нужна. Но мы ведь не такие. Нам хочется не просто выжать из компьютера всю его мощь, но и наиболее рационально использовать эту мощь. А этого без командной строки, IMHO, сделать невозможно. Даже такая простая задача, как прослушивание музыки, у меня решается с помощью командной строки (правда сам в это время работаю все таки в графическом режиме) /usr/X11R6/bin/xterm \
-geometry 40x12 -bg black -fg grey -fn -misc-*--18-*-koi8-r \
-e /usr/bin/mpg123 -Z /home/beaver/media/disk/*.mp3
Поиск файлов с определенным содержимым так же можно осуществлять с помощью командной строки: find -exec grep -H bash {} \;
Область применения командной строки неограничена, но для использования этих возможностей необходимо знать возможности не только каких-то программ, но и особенности составления команд. Особенности составления командДля понятия особенностей командной строки необходимо знать о том, что ввод информации может осуществлятся не только с помощью нажатий на клавиши, а отображение происходит не только на экране. Компьютеру вообще все это без разницы. Для него существуют стандартные устройства ввода и вывода информации. Их три.
Переопределение этих устройств можно осуществлять с помощью символов > и |. Посмотрим на примере, как это происходит. cat /etc/paswd >copypaswd 2>errcat Командой cat выводим содержимое файла /etc/paswd в файл copypasswd (>), а сообщения об ошибках команды cat в файл errcat (2>). Так как в этом примере имя файла умышленно указано неправильно, то файл copypasswd будет пустым, а в файл errcat будет следующего содержания: cat: /etc/paswd: No such file or directory Возможна и такая вот конструкция: cat >copy.txt </etc/passwd 2>error.txt Все это приемлимо для случаев, когда ввод или вывод сообщений программ необходимо вывести в файл. А если результат работы программы необходимо передать на вход другой программы? Для этого существует pipe (трубопровод). Например, с помощью такой вот конструкции можно построить список файлов текущего каталога (и подкаталогов) отсортированным, одновременно удаляя некоторые символы из результата вывода. find | sort | sed 's/\.\///' | sed '/^\./d' #тоже самое, что и ls -1 POSIXКлючи командной строки
Основные комманды (/bin/*)
|
|