GNU Core Utilities. Часть III
Содержание:
1. Часть I;
2. Часть II;
3. Часть III (Вы читаете данный раздел);
4. Часть IV;
5. Часть V;
6. Часть VI.
Для этого служат утилиты cat, tac, nl, od, base64. С программой cat мы уже сталкивались, используя ее как вспомогательное средство для демонстрации работы других программ. Суть ее работы — копировать файл(ы) или стандартный ввод в стандартный вывод. Посмотрим, ка кие текстовые файлы есть в нашем рабочем ка та логе: ls -a. Среди файлов, выведенных на экран этой командой, мне почему-то приглянулся .bash_profile. Давайте выведем на экран его содержимое (если в вашей системе такого файла нет, возьмите .bash_history или какой-нибудь другой файл из списка): cat .bash_ profile. На экране должно отобразиться содержимое этого файла. Мы вывели файл в стандартный вывод!
Стандартный вывод — это один из стандартных потоков в UNIX- подобных системах, а стандартные потоки — это потоки процессов для выполнения «стандартных» функций, имеющие зарезервированные номера (дескрипторы). Потоку стандартного вывода (stdout) присвоен номер 1. По умолчанию stdout подключен к терминалу. Но командная оболочка UNIX-подобных систем позволяет перенаправить поток в другое место . Давайте воспользуемся этой возможностью и перенаправим stdout в новый файл. Назовем его copy_bash_profile . Для этого понадобится добавить к команде символ перенаправления (>) и название нового файла.
Ввели команду и... ничего на экране не увидели. Это естественно: целью вывода выбран не экран, а файл. Зато команда dir -a (или просто dir) покажет в нашем рабочем каталоге новый файл.
Посмотрим, что в этом новом файле находится —выведем его в stdout, не перенаправляя поток. Тогда файл выведется на экран.
Новый файл идентичен исходному.
Поток с зарезервированным номером 0 — это стандартный ввод (stdin). По умолчанию он подключен к клавиатуре. Но его, как и stdout, можно перенаправить для принятия информации из других мест. Для полноты картины добавим, что есть и третий стандартный поток — с номером 2 (stderr). Это вывод ошибок, диагностических и отладочных сообщений в текстовом виде.
Если название исходного файла не указано, cat выводит stdin в stdout. А если ввести команду cat без параметров? Она будет читать информацию со стандартного ввода по умолчанию (клавиатуры) и копировать ее в стандартный вывод по умолчанию (на экран).
Не волнуйтесь, выйти просто: сочетанием клавиш Ctrl+C.
Перенаправив стандартный ввод с помощью символа <, можно информацию принимать из файла, а не с клавиатуры. Так, наш пример cat .bash_profile можно вызвать иначе—cat , а затем имя создаваемого файла. Далее вводим текст с клавиатуры. Терминал принимает ввод, пока его не остановят нажатием Ctrl+C.
Ctrl+C, открываем получившийся файл — cat < poem —и введенный текст из файла перейдет на экран. Даже символы перевода строки сохранились!
Если в тот же файл точно так же ввести еще текст, старый текст сотрется. Но символ командной оболочки bash >> позволяет перенаправить поток, приписав его к файлу. Пробуем.
Ctrl + C и проверяем.
1. Часть I;
2. Часть II;
3.
4. Часть IV;
5. Часть V;
6. Часть VI.
Чтение и запись файлов
Для этого служат утилиты cat, tac, nl, od, base64. С программой cat мы уже сталкивались, используя ее как вспомогательное средство для демонстрации работы других программ. Суть ее работы — копировать файл(ы) или стандартный ввод в стандартный вывод. Посмотрим, ка кие текстовые файлы есть в нашем рабочем ка та логе: ls -a. Среди файлов, выведенных на экран этой командой, мне почему-то приглянулся .bash_profile. Давайте выведем на экран его содержимое (если в вашей системе такого файла нет, возьмите .bash_history или какой-нибудь другой файл из списка): cat .bash_ profile. На экране должно отобразиться содержимое этого файла. Мы вывели файл в стандартный вывод!
Стандартный вывод — это один из стандартных потоков в UNIX- подобных системах, а стандартные потоки — это потоки процессов для выполнения «стандартных» функций, имеющие зарезервированные номера (дескрипторы). Потоку стандартного вывода (stdout) присвоен номер 1. По умолчанию stdout подключен к терминалу. Но командная оболочка UNIX-подобных систем позволяет перенаправить поток в другое место . Давайте воспользуемся этой возможностью и перенаправим stdout в новый файл. Назовем его copy_bash_profile . Для этого понадобится добавить к команде символ перенаправления (>) и название нового файла.
cat > copy_bash_profile .bash_profileВвели команду и... ничего на экране не увидели. Это естественно: целью вывода выбран не экран, а файл. Зато команда dir -a (или просто dir) покажет в нашем рабочем каталоге новый файл.
Посмотрим, что в этом новом файле находится —выведем его в stdout, не перенаправляя поток. Тогда файл выведется на экран.
cat copy_bash_profileНовый файл идентичен исходному.
Поток с зарезервированным номером 0 — это стандартный ввод (stdin). По умолчанию он подключен к клавиатуре. Но его, как и stdout, можно перенаправить для принятия информации из других мест. Для полноты картины добавим, что есть и третий стандартный поток — с номером 2 (stderr). Это вывод ошибок, диагностических и отладочных сообщений в текстовом виде.
Если название исходного файла не указано, cat выводит stdin в stdout. А если ввести команду cat без параметров? Она будет читать информацию со стандартного ввода по умолчанию (клавиатуры) и копировать ее в стандартный вывод по умолчанию (на экран).
Не волнуйтесь, выйти просто: сочетанием клавиш Ctrl+C.
Перенаправив стандартный ввод с помощью символа <, можно информацию принимать из файла, а не с клавиатуры. Так, наш пример cat .bash_profile можно вызвать иначе—cat , а затем имя создаваемого файла. Далее вводим текст с клавиатуры. Терминал принимает ввод, пока его не остановят нажатием Ctrl+C.
cat > poem
Оглянись, дружок, вокруг! Вот компьютер — верный друг.
Он всегда тебе поможет: сложит, вычтет и умножит.Ctrl+C, открываем получившийся файл — cat < poem —и введенный текст из файла перейдет на экран. Даже символы перевода строки сохранились!
Если в тот же файл точно так же ввести еще текст, старый текст сотрется. Но символ командной оболочки bash >> позволяет перенаправить поток, приписав его к файлу. Пробуем.
cat >> poem
Наверху машины всей размещается дисплей,
Словно смелый капитан! А на нем горит экран.Ctrl + C и проверяем.
cat < poem