Главная Форум Wiki Почта Jabber Devel NIX-FILES
Материал из AltLUG Wiki
(Перенаправлено с Begin:command)
Перейти к: навигация, поиск

Работа в командной строке

Ода командной строке

[wiki@alug command]$ Почему командная строка является лучшим инструментом, чем графический интерфейс?_

Вся идеология *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 {} \;

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

Особенности составления команд

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

stdin
Стандартное устройство ввода. По умолчанию им считается клавиатура. В командной строке его можно переопределить.
stdout
Стандартное устройство вывода. По умолчанию - экран монитора.
stderr
Стандартное устройство вывода ошибок. По умолчанию так-же экран.

Переопределение этих устройств можно осуществлять с помощью символов > и |. Посмотрим на примере, как это происходит.

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

Ключи командной строки

  • Стандартные
--version
--help
--
-

Основные комманды (/bin/*)

cp
копирование
mv
перемещение
mkdir
создание каталога
rm
удаление
vi (vim)
текстовый редактор

 

Содержание

См. также

xterm, find, grep, mpg123

Ссылки

Примечание

Личные инструменты