Новость из категории: Информация

GNU Core Utilities. Часть III

Содержание:
1. Часть I;
2. Часть II;
3. Часть III (Вы читаете данный раздел);
4. Часть IV;
5. Часть V;
6. Часть VI.
GNU Core Utilities. Часть III

Чтение и запись файлов

Для этого служат утилиты 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) покажет в нашем рабочем каталоге новый файл.

GNU Core Utilities. Часть III

Посмотрим, что в этом новом файле находится —выведем его в stdout, не перенаправляя поток. Тогда файл выведется на экран.
cat copy_bash_profile

Новый файл идентичен исходному.

Поток с зарезервированным номером 0 — это стандартный ввод (stdin). По умолчанию он подключен к клавиатуре. Но его, как и stdout, можно перенаправить для принятия информации из других мест. Для полноты картины добавим, что есть и третий стандартный поток — с номером 2 (stderr). Это вывод ошибок, диагностических и отладочных сообщений в текстовом виде.

Если название исходного файла не указано, cat выводит stdin в stdout. А если ввести команду cat без параметров? Она будет читать информацию со стандартного ввода по умолчанию (клавиатуры) и копировать ее в стандартный вывод по умолчанию (на экран).

GNU Core Utilities. Часть III

Не волнуйтесь, выйти просто: сочетанием клавиш Ctrl+C.

Перенаправив стандартный ввод с помощью символа <, можно информацию принимать из файла, а не с клавиатуры. Так, наш пример cat .bash_profile можно вызвать иначе—cat , а затем имя создаваемого файла. Далее вводим текст с клавиатуры. Терминал принимает ввод, пока его не остановят нажатием Ctrl+C.

cat > poem
Оглянись, дружок, вокруг! Вот компьютер — верный друг.
Он всегда тебе поможет: сложит, вычтет и умножит.

Ctrl+C, открываем получившийся файл — cat < poem —и введенный текст из файла перейдет на экран. Даже символы перевода строки сохранились!

GNU Core Utilities. Часть III

Если в тот же файл точно так же ввести еще текст, старый текст сотрется. Но символ командной оболочки bash >> позволяет перенаправить поток, приписав его к файлу. Пробуем.

cat >> poem
Наверху машины всей размещается дисплей,
Словно смелый капитан! А на нем горит экран.


Ctrl + C и проверяем.

cat < poem

GNU Core Utilities. Часть III

GNU Core Utilities. Часть III

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх