Arsenev-Obrazcov_S.S._i_dr._Osnovy_raboty_v_komandnoy_stroke_OS_Linux
.pdfДополнительные возможности
В командной строке linux существует еще один калькулятор. Пользователи обычно обнаруживают его по ошибке, когда вместо cd вводят dc. Это - калькулятор Reverse Polish. Работает он не как обычный калькулятор: сначала пользователь вводит числа, а затем операцию. С помощью этого калькулятора можно решать простые уравнения. Например:
user:~$ dc
5 4 + p
9
[Ctrl] + [D]
user:~$
31
9.Перенаправление стандартного ввода/вывода данных, конвейер
Вкомандной строке можно использовать известную операцию конкатенации “cat”. Она позволяет объединять несколько файлов в один:
user:Work$ cat abc.txt def.txt ghi.txt
ABC
ABC
ABC
…
GHI
GHI
GHI
user:Work$
Вывод на стандартное устройство (экран)
Результат объединения трех файлов мы видим с вами на экране. Такой выходной поток называется “standart output”. Но этот же выходной поток можно перенаправить, например, в новый файл:
user:Work$ cat abc.txt def.txt ghi.txt > combined.txt
user:Work$
Переадресация «>» использовала стандартный вывод команды cat и перенаправила его из терминала в файл comb.txt. Обратите внимание, что данная операция полностью переписывает файл comb.txt.
user:Work$ more combined.txt
ABC
…
GHI
GHI
user:Work$ cat abc.txt def.txt > combined.txt user:Work$ more combined.txt
ABC
…
DEF DEF
user:Work$
Для того, чтобы добавить поток вывода к файлу (не перезаписывая его) используют команду “>>”.
user:Work$ cat ghi.txt >> combined.txt
user:Work$ more combined.txt
ABC
…
GHI
user:Work$
32
Упражнение
Создайте файл lorem.txt и запишите в него результат конкатенации нескольких файлов с помощью “>”. После этого допишите к нему же результат конкатенации еще какихнибудь файлов с помощью “>>”.
Ввод со стандартного устройств (клавиатура)
В дополнение к стандартным выводам, команды Unix также имеют концепцию стандартного ввода «standard input». Здесь команды могут считывать данные. Если команда получает имя файла в качестве аргумента, то она будет считывать данные из него. Ввод по умолчанию осуществляется со стандартного канала ввода - клавиатуры. В этом случае используется комбинация клавиш [Ctrl] + [D], чтобы указать «конец ввода».
Будьте осторожны с комбинацией [Ctrl]+[D]. Если вы вызовите ее просто в пустой строке, то она будет интерпретирована как выход.
Мы уже встречались с командой wc:
user:Work$ wc abc.txt 9 9 36 abc.txt
user:Work$
Можно работать с этой командой, используя стандартный вход. Для этого введем текст в консоль:
user:Work$ wc
The quick brown fox jumps over the lazy dog. The cow jumped over the moon.
[Ctrl]+[D]
2
user:Work$
Поскольку [Ctrl]+[D] потенциально опасная комбинация клавиш, в Unix существует команда для завершения ввода:
user:Work$ wc <<END
The quick brown fox jumps over the lazy dog. The cow jumped over the moon.
END
2 15 75
user:Work$
Самое интересное, что вместо END можно написать, что угодно:
user:Work$ wc <<STOP
The quick brown fox jumps over the lazy dog. The cow jumped over the moon.
STOP
2 15 75
user:Work$
Так же совсем необязательно, чтобы этот маркер был словом. Например, пусть будет символ «!»:
33
user:Work$ wc <<!
The quick brown fox jumps over the lazy dog. The cow jumped over the moon.
!
2 15 75
user:Work$
Наконец, мы можем использовать стандартный канал ввода, чтобы перенаправить информацию из файла в консоль:
user:Work$ wc < combined.txt
27 27 108 user:Work$
Обратите внимание, что в консоль выводится просто результат (также как и в случае с символами “>”, “>>”). Это отличается от обычного вызова команды wc:
user:Work$ wc combined.txt
27 27 108 combined.txt
user:Work$
Конвейер
Существует мощный инструмент, объединяющий стандартный вход и стандартный выход, который называется “pipe”. Он нужен для того, чтобы в обход вывода текста (или другой информации) в консоль или сохранения его в файле, производить различные операции:
user:Work$ cat lorem.txt combined.txt | wc
40 568 3801
user:Work$
Вернемся к файлу “Treasure Island” и скомбинируем две команды:
user:Work$ cd ../Treasure\ Island/
user:Treasure Island$ grep -iw rum story.txt | more
Yo-ho-ho, and a bottle of rum!"
called roughly for a glass of rum. This, when it was brought to him,
…
"Rum," he repeated. "I must get away from here. Rum! Rum!"
the stranger. I got the rum, to be sure, and tried to put it down his --More--
34
10. Приложение
Список основных команд
Команда |
Пример |
bash |
bash commands.sh |
bc |
|
bg |
|
cat |
cat abc.txt def.txt |
cd |
cd ../Work |
chmod |
chmod a+x commands.sh |
clear |
|
cp |
cp island.jpg map.jpg |
date |
date +"%H:%k:%M" |
echo |
echo *.txt |
env |
|
exit |
|
fg |
|
grep |
grep rum story.txt |
history |
|
jobs |
|
less |
less lorem.txt |
ls |
ls Work |
mkdir |
mkdir Fun |
more |
more lorem.txt |
mv |
mv island.jpg ../map.jpg |
rm |
rm nonsense.txt |
rmdir |
rmdir Fun |
w |
|
wc |
wc lorem.txt |
who |
|
Назначение
Это название интерпретатора командной строки, которое мы все время использовали. Калькулятор командной строки.
Команда перевода приложения в фоновый режим, которая была остановлена с помощью
[Ctrl]+[Z].
Конкатенация одного или нескольких файлов. Изменение каталога.
Изменение свойств файла или каталога. Очистка экрана. (Лучше использовать [Ctrl]+[L].)
Копирование файла. (Используйте опцию “-R” для рекурсивного копирования каталога)
Вывод даты и времени. Может быть изменен формат вывода.
Трансляция введенного текста на экран. Вывод всех переменных среды.
Выход из терминала. То же, что и [Ctrl]+[D]. Команда перезапуска приложения, остановленного с помощью комбинации [Ctrl]+[Z]. Команда поиска файла или каталога.
Список ранее использованных команд Список всех запущенных приложений.
Постраничный вывод текста в выбранном файле. Список содержимого каталога.
Создание каталога.
Вывод текста выбранного файла, который помещается на экране.
Переместить (переименовать) файл или каталог. Удаление файла (используйте опцию «R» для рекурсивного удаления каталога).
Удаление пустого каталога.
Информация о всех пользователях, находящихся в системе, их работе и загрузке системы. Подсчет строк, слов и символов в файле.
Вывод имён пользователей, которые подключены к системе в данный момент.
Формат даты
Год |
|
|
%C |
20 |
Век |
%Y |
2009 |
Год из 4-х цифр |
%y |
09 |
Год из 2-х цифр |
Месяц |
|
|
%b |
Apr |
Аббревиатура месяца |
%B |
April |
Полное название месяца |
%m |
04 |
Шифр месяца из 2-х цифр |
День |
|
|
%j |
118 |
Номер дня в году (1…366) |
%d |
28 |
Номер дня в месяце из 2-х цифр |
%a |
Tue |
Аббревиатура дня недели |
%A |
Tuesday |
Полное название дня |
|
|
35 |
%u |
2 |
Номер дня недели (1…7, 1=Понедельник) |
%w |
2 |
Номер дня недели с нуля (0…6, 0=Воскресенье) |
Час |
|
|
%H |
21 |
Час в 24-часовом формате (0…23) |
%I |
09 |
Час в 12-часовом формате (1…12) |
Минута |
|
|
%M |
07 |
Минута |
Секунда |
|
|
%S |
23 |
Секунда |
%s |
1240949377 |
Количество секунд, начиная с 1970-01-01 00:00:00 GMT |
Полезно |
|
|
%n |
|
Новая строка |
%t |
|
Tab |
Существует два полезных модификатора. Если «% M» должно дать «07», то «% _M» даст
« 7», а «% -M» даст «7».
Управление текстом в командной строке
Часто существует два способа управления: нажатие одной или одновременно нескольких клавиш.
[Ctrl]+[F] |
[→] |
Перемещение вправо на один символ. |
[Ctrl]+[B] |
[←] |
Перемещение влево на один символ. |
[Alt]+[F] |
[Ctrl]+[→] |
Перемещение вправо на одно слово. |
[Alt]+[B] |
[Ctrl]+[←] |
Перемещение влево на одно слово. |
[Ctrl]+[A] |
[Home] |
Перемещение в начало строки. |
[Ctrl]+[E] |
[End] |
Перемещение в конец строки. |
[Ctrl]+[W] |
|
Удаление слова слева от курсора. |
[Ctrl]+[K] |
|
Удаление слова справа от курсора. |
[Ctrl]+[U] |
|
Удаление строки слева от курсора. |
[Ctrl]+[P] |
[↑] |
Вернуться назад на один шаг в истории. |
[Ctrl]+[N] |
[↓] |
Вернуться вперед на один шаг в истории. |
36
УЧЕБНОЕ ПОСОБИЕ
АРСЕНЬЕВ-ОБРАЗЦОВ СЕРГЕЙ СЕРГЕЕВИЧ ЖУКОВА ТАТЬЯНА МИХАЙЛОВНА ВОЛКОВ ЕВГЕНИЙ АЛЕКСЕЕВИЧ
ТЕХНОЛОГИЯ ПОСТРОЕНИЯ УЧЕБНОГО ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА НА ОБЛАКЕ AMAZON
В авторской редакции
Сведения о программном обеспечении, которое использовано для создания электронного издания:
Microsoft Word - набор, вёрстка текста, генерация PDF https://www.microsoft.com/
Техническая обработка и подготовка материалов выполнены автором
Подписано к использованию: 05.06.2019; Объём издания: 1,53 Мб; Тираж: 50 экз.; Комплектация издания: 1 CD-ROM;
Запись на физический носитель: Белоусов А.В., belousov.a@gubkin.ru.
119991, Город Москва, проспект Ленинский, дом 65, корпус 1, РГУ нефти и газа (НИУ) имени И.М. Губкина, учебно-методическое управление (900)
37