Чтение онлайн

на главную - закладки

Жанры

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

Кроме команды i, для вставки текста вы можете использовать команду а. Эта команда вставляет текст после текущего положения курсора. Например, используя команду а, вы можете вставить текст между словами first и second:

first_second third

Команда о вставляет текст в строку, которая находится ниже текущей. Для удаления текста в режиме команд используются команды: х, dd, dw. Первая удаляет символ перед курсором, вторая удаляет целые строки, а dw — слово, на котором находится курсор.

Для замены текста используется команда R.

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

Редактор vi разрабатывался таким образом, чтобы его можно было использовать на алфавитно-цифровых терминалах, на клавиатуре которых были только алфавитно-цифровые клавиши. На таких терминалах для перемещения по тексту используются клавиши h, j, k, и l для перемещения влево, вниз, вверх и вправо соответственно. Команда w переместит курсор на начало следующего слова, a b — на начало предыдущего. Команды 0 (ноль) и $ используются для перемещения в начало и конец текущей строки. Комбинация клавиш Ctrl+F переместит вас на один экран вперед, a Ctrl+B — на один экран назад. Для перемещения на определенную строку используйте номер этой строки и символ G. Например, команда 1G переместит вас на первую строку файла, а команда G (без номера) — в конец файла.

Для выхода из редактора vi без сохранения изменений, перейдите в режим последней строки, введя символ ":", а затем введите команду q!. Для записи изменений введите команду w, для выхода и сохранения — команду wq.

Если вы хотите редактировать другой файл без выхода из vi, введите команду е filename в режиме последней строки. Перед этим нужно сохранить текущий файл или использовать команду е! filename для загрузки нового файла без сохранения изменений в текущем файле.

Добавить к редактируемому файлу другой файл позволяет команда r filename в режиме последней строки. Выполнить команду интерпретатора команд операционной системы можно с помощью команды :r! команда, например, :r! Is /etc. Тогда результат выполнения этой команды будет добавлен к текущему файлу.

19.7. Интерпретатор команд bash

Интерпретатор команд — это программа, выполняющая команды пользователя. Стандартным интерпретатором (или оболочкой) является bash (Bourne Again Shell). Достаточно распространенными также являются следующие интерпретаторы: sh, ash, bsh, tcsh, csh, zsh. Список установленных в вашей системе оболочек находится в файле /etc/shells. Команды оболочки можно вводить в командной строке, а можно оформить в виде сценария. Сценарий — это файл, содержащий команды оболочки. Создайте обыкновенный текстовый файл и сделайте его исполнимым. Система выполнит указанную последовательность команд. Для того, чтобы система узнала, какую оболочку нужно использовать, первая строка сценарий должна содержать полное имя сценария.

Например:

#!/bin/bash

Между символами # и ! не должно быть пробелов. Для обработки сценария вы можете использовать любую программу (естественно, она должна понимать синтаксис файла), а не только указанную в файле /etc/shells. Например, вы можете написать:

#!/usr/bin/my_proga

Оболочка при этом запустит программу /usr/bin/my_proga и передает имя файла сценария в качестве параметра. Если вы напишете:

#!/usr/bin/my_proga -f

то

оболочка выполнит команду:

#!/usr/bin/my_proga -f <имя_сценария>

Создадим небольшой сценарий, который будет очищать экран и выводить на него ваше имя. Имя можно передать как параметр. Назовем наш сценарий test:

#!/bin/bash

# Это комментарий

clear

echo $1

Теперь рассмотрим все по порядку. С первой строкой, я думаю, все ясно. Вторая строка очищает экран. Третья строка выводит информацию, которая передана сценарию как первый (1) параметр. Запустите сценарий следующим образом:

./test Vasya Pupkin

На экране будет напечатан первый параметр, то есть слово Vasya. Вы можете немного изменить сценарий, чтобы он выводил оба параметра:

echo $1 $2

Если вы хотите передать фамилию, имя и отчество, то нужно использовать следующую команду:

echo "$1"

При этом не нужно явно указывать три параметра, просто интерпретатор не будет использовать пропуск для разделения параметров и все, что вы передадите ему, будет считаться одним параметром. При этом, если вы запустите сценарий с параметром Vasya Pupkin, на экране увидите Vasya Pupkin. А если укажете параметр Ivanov Ivan Ivanovich, сценарий так и напечатает Ivanov Ivan Ivanovich.

19.7.1. Каналы и списки

Материал этого и следующего пункта дополняет гл. 5, в которой рассматривалось перенаправление ввода/вывода. Поэтому я не буду подробно описывать сам механизм этих процессов, а ограничусь лишь несколькими примерами, чтобы напомнить вам гл. 5.

С помощью каналов вы можете перенаправить стандартный вывод одной программы на стандартный ввод другой. Например:

cat /var/log/secure | less

ps –ax | grep "$UID" | less

В первом случае стандартный вывод команды cat (содержимое файла /var/log/secure) перенаправляется на стандартный ввод программы less, которая обеспечивает поэкранный вывод информации. Вторая строка выводит список всех процессов, принадлежащих данному пользователю. Первая команда ps-ax выводит список всех запущенных в системе процессов, вторая (grep "$UID") ищет фрагмент текста, содержащий идентификатор пользователя (UID) и выводит результат на стандартный вывод, то есть на стандартный ввод команды less. $UID является переменной окружения, которая содержит идентификатор пользователя. О переменных окружения поговорим немного позже.

Интерпретатор позволяет указывать списки команд в командной строке. Например:

lpr file.txt; lpq

При этом сначала выполняется команда постановки задания в очередь печати, а потом проверяется состояние принтера. Теперь более сложный пример:

ps –ax | head –n 1; ps –ax | grep httpd

Сначала выполняется команда ps для печати заголовка таблицы, а потом — для вывода информации о демоне httpd.

Можно использовать операции конъюнкции и дизъюнкции, например:

Поделиться:
Популярные книги

На границе империй. Том 7. Часть 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 7. Часть 4

Старый, но крепкий 9

Крынов Макс
9. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
сянься
5.00
рейтинг книги
Старый, но крепкий 9

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Я все еще граф. Книга IX

Дрейк Сириус
9. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я все еще граф. Книга IX

Последний реанорец. Том I и Том II

Павлов Вел
1. Высшая Речь
Фантастика:
фэнтези
7.62
рейтинг книги
Последний реанорец. Том I и Том II

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Личный аптекарь императора. Том 6

Карелин Сергей Витальевич
6. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Личный аптекарь императора. Том 6

Кодекс Охотника. Книга XXVII

Винокуров Юрий
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXVII

Я спас СССР! том 2

Вязовский Алексей
2. Я спас СССР
Фантастика:
альтернативная история
5.62
рейтинг книги
Я спас СССР! том 2

Хозяин Теней 5

Петров Максим Николаевич
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 5

Алекс и Алекс

Афанасьев Семен
1. Алекс и Алекс
Фантастика:
боевая фантастика
6.83
рейтинг книги
Алекс и Алекс

Кодекс Охотника. Книга XXXIV

Винокуров Юрий
34. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIV

Третий Генерал: Том IX

Зот Бакалавр
8. Третий Генерал
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Третий Генерал: Том IX

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая