UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$ echo hello world
hello world
$
Но аргументы могут формироваться путем выбора по шаблону. Так, команда
$ echo ch1.*
перечисляет имена всех файлов в гл. 1,
$ echo *
перечисляет имена всех файлов текущего каталога в алфавитном порядке,
$ pr *
выводит на печать содержимое всех ваших файлов (в алфавитном порядке), а
$ rm *
удаляет все файлы текущего каталога. (Лучше быть абсолютно уверенным, что вы действительно этого хотите!)
Символ
*
$ rm *.save
удалит все файлы, оканчивающиеся на
.save
Заметьте, что все имена файлов выбираются в алфавитном порядке, который отличается от числового. Если в вашей книге 10 глав, порядок может быть не тем, на который вы рассчитываете, поскольку
ch10
ch2
$ echo *
ch1.1 ch1.2 ... ch10.1 ch10.2 ... ch2.1 ch2.2 ...
Символ
*
shell
[...]
$ pr ch[12346789]*
$ pr ch[1-46-9]*
$ rm temp[a-z]
Шаблон
?
$ ls ?
$ ls -l ch?.1
$ rm temp?
Отметим, что шаблоны сопоставляются только с именами существующих файлов. В частности, нельзя создать новые имена файлов с помощью шаблонов. Например, если вы захотите расширить
ch
chapter
$ mv ch.* chapter.*
поскольку
chapter.*
Символы шаблонов, подобные
*
/usr/mary/*
/usr/mary/
/usr/*/calendar
calendar
Если вам когда-нибудь придется отказаться от специального назначения символов
*
?
$ ls '?'
Можно также предварить специальный символ обратной дробной чертой:
$ ls ?
(Вспомните, что, поскольку
?
shell
В чем состоит различие между следующими командами:
$ ls junk $ echo junk
$ ls / $ echo /
$ ls $ echo
$ ls * $ echo *
$ ls '*' $ echo '*'
Большинство команд, которые мы рассматривали, производят вывод на терминал, некоторые из них, подобно редактору, осуществляют ввод с терминала. А теперь приведем почти универсальное правило: терминал может быть заменен для ввода, вывода или обеих операций на файл.
Например,
$ ls
выдает список файлов на ваш терминал. Но если задать
$ ls > filelist
то тот же список файлов помещается вместо этого в файл
filelist
>
cat
$ cat f1 f2 f3 > temp
Символ
>>
>
$ cat f1 f2 f3 >> temp
сольет содержимое
f1
f2
f3
temp
>
temp
Аналогично символ
<
let
$ mail mary joe torn bob < let
Во всех этих примерах наличие пробелов по обе стороны символа
>
<
Имея возможность переключать выходной поток с помощью
<
$ who > temp
$ sort < temp
Поскольку команда
who
wc -l