Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Arsenev-Obrazcov_S.S._i_dr._Osnovy_raboty_v_komandnoy_stroke_OS_Linux

.pdf
Скачиваний:
8
Добавлен:
12.11.2022
Размер:
1.66 Mб
Скачать

5. Обращение к справочной системе

Для команды ls существует 39 односимвольных опций (некоторые из них из верхнего регистра, поэтому их может быть больше 26). Также есть 39 опций формата, некоторые из них соответствуют коротким вариантам. Для поиска информации по этим опциям можно использовать команду help.

Некоторые команды, такие как ls, предлагают встроенные средства справки:

user:~$ ls --help

Usage: ls [OPTION]... [FILE]...

List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort.

Exit status is 0 if OK, 1 if minor problems, 2 if serious trouble.

Report bugs to <bug-coreutils@gnu.org>.

Обратите внимание, что информация может быть может быть многоуровневой. Позже мы разберем, как с помощью –help получить больше сведений о команде.

Для поиска информации по опциям вводим команду man ls.

user:~$ man ls

 

LS(1)

User Commands

LS(1)

 

NAME

 

ls - list directory contents

SYNOPSIS

ls [OPTION]... [FILE]...

DESCRIPTION

List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options

too.

-a, --all

do not ignore entries starting with .

AUTHOR

Written by Richard Stallman and David MacKenzie.

COPYRIGHT

Copyright © 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Упражнение

Вызовите help и man для команд, которые вы знаете.

21

6.Запуск графических приложений из командной строки

Вэтом разделе рассмотрим работу в графическом окне терминала (GUI).

Теперь, когда у нас есть командная строка, мы можем использовать ее не просто для вызова таких команд, как ls и pwd, а также запускать приложения, например, браузер

Firefox.

Для запуска браузера, напишите в командной строке firefox и нажмите клавишу [ ].

user:~$ firefox

Теперь, если закрыть наш терминал, то браузер также закроется.

Но самое главное, что, запустив приложение из консоли, мы не сможем пользоваться этой консолью. Поэтому запустим браузер в фоновом режиме. Для этого используем символ амперсант ( «&»):

user:~$ firefox &

[1] 7941

user:~$

В приведенном тексте «[1]» означает, что это - первая программа, которую мы используем в фоновом режиме для этого сеанса. Число 7941 - это числовой идентификатор («идентификатор процесса») для этой фоновой программы. Его знать совсем не обязательно.

Если мы закроем Firefox из меню (нажмем на «крестик»), то в консоли получим об этом сообщение:

user:~$

 

[1]+ Done

firefox

user:~$

 

 

 

Сообщение «Done» означает, что программа завершилась нормально. Вы можете получить другие сообщения, если программа выйдет из строя.

Упражнение

Запустите несколько приложений из консоли.

Контроль работы приложения

Что вы можете сделать, если уже запустили графическое приложение, но забыли добавить символ амперсант?

Есть возможность для перевода задания в фоновый режим. Это выполняется в два этапа: сначала мы останавливаем запущенную программу («останавливаем», как в «паузе», а не «завершаем»), а затем перезапускаем ее в фоновом режиме.

Запустим firefox и остановим его с помощью [Ctrl] + [Z]:

22

user:~$ firefox

 

^Z

 

[3]+ Stopped

firefox

user:~$

 

 

 

В приведенном сообщении «[3]» означает, что - это третье приложение, которое мы либо запустили, либо остановили (если две команды из выполненного вами упражнения все еще работают). «Stopped» говорит, что приложение остановлено.

Далее для запуска приложения в фоновом режиме нужно использовать команду “bg” (background):

user:~$ bg [3]+ firefox &

Мы опять видим сообщение о том, что приложение firefox запущено в фоновом режиме.

Если мы передумали запускать приложение в фоновом режиме, то воспользуемся командой “fg” (foreground). Когда нужно посмотреть, какие приложения запущены, мы вызываем команду jobs:

user:~$ jobs

 

[1]

Running

xeyes &

[2]-

Running

firefox &

user:~$

Завершение программ, выполняющихся в фоновом режиме

Когда нужно завершить приложение, работающее в фоновом режиме, используем команду kill с номером приложения:

user:~$ kill %1

 

user:~$

 

[1]-

Terminated

xeyes

user:~$ jobs

 

[2]-

Running

firefox &

[3]+

Running

xeyes &

 

 

 

Если задача не снимается, то можно воспользоваться командой kill -KILL:

user:~$ jobs

 

[2]-

Running

firefox &

[3]+

Running

xeyes &

user:~$ kill -KILL %3

 

user:~$

 

[3]+

Killed

xeyes

user:~$ jobs

 

[2]+

Running

firefox &

 

 

 

23

7. Редактирование текста в командной строке

Обращение к предшествующим командам

Мы уже видели, насколько полезно использование клавиши табуляции [ ]. Это не единственная помощь, которую может нам предложить оболочка bash.

Не менее важной помощью является история введенных ранее команд. При нажатии клавиш перехода ( стрелки «вверх» и «вниз») оболочка будет предлагать пользователю введенные им ранее команды.

Пусть вы вызывали четыре команды:

user:Desktop$ cd

user:~$ pwd /home/y250

user:~$ cd Unix\ Intro/

user:Unix Intro$ ls

Play Treasure Island Work

Теперь в памяти лежат эти четыре команды. Выглядит это примерно так:

cd

pwd

cd Unix\ Intro/

ls

← Вы находитесь здесь

Если мы нажмем клавишу перехода (стрелка вверх [↑]), то будет показана предыдущая команда. Если нажать эту клавишу три раза, то окажемся на команде pwd.

cd

 

pwd

← Вы находитесь здесь

cd Unix\ Intro/

 

ls

 

 

 

Очистка экрана

Для очистки экрана воспользуйтесь комбинацией клавиш [Ctrl] + [L].

24

8.Запуск приложений в CLI. Терминальная работа с текстом

После небольшого руководства по работе в GUI, вернемся к командной строке.

Чтение текстовых файлов

Наиболее удобная команда для чтения текстового файла - «more». Мы можем увидеть ее работу, если перейдем в каталог Work и применим ее к файлу lorem.txt:

user:Work$ pwd /home/y250/Unix Intro/Work

user:Work$ more lorem.txt

TOP OF FILE

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec at purus sed m agna aliquet dignissim. In rutrum libero non turpis. Fusce tempor, nulla sit a met pellentesque feugiat, nibh quam dapibus dui, sit amet ultrices enim odio n ec ipsum. Etiam luctus purus vehicula erat. Duis tortor lorem, commodo eu, sod ales a, semper id, diam. Praesent nisl justo, placerat id, rutrum et, vulputat e ut, metus. Pellentesque habitant morbi tristique senectus et netus et malesu ada fames ac turpis egestas. Etiam non neque. Curabitur dui. Praesent mi erat, aliquam eget, aliquet lobortis, pharetra quis, lacus. Nulla facilisis, purus

eget porttitor bibendum, nisi augue auctor lectus, et mollis odio nisi in urna . Nam felis tortor, porttitor in, ultrices vitae, bibendum non, purus. Cras lu ctus.

Sed lacus justo, sollicitudin eu, interdum sed, fermentum id, sapien. Class ap tent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymen aeos. Nunc purus. In in purus sit amet tellus scelerisque molestie. In in tort or. Pellentesque viverra, nibh quis feugiat condimentum, metus neque condiment um lectus, ac commodo turpis justo sit amet nisl. Donec mollis vestibulum feli s. Aliquam ornare, felis eu suscipit lacinia, neque lectus hendrerit sem, ac v ulputate est tortor et ligula. Suspendisse quis sapien a urna laoreet elementu m. Pellentesque nisl ante, tempus ac, porta vel, malesuada vel, sapien. In tor tor justo, sollicitudin vel, aliquet sed, consequat ac, enim. Proin elit odio,

--More--(40%)

Как мы видим, на экране появилась лишь часть текста (40%). После нажатия пробела получим больше информации:

25

convallis ac, mollis nec, iaculis et, lectus.

Pellentesque ullamcorper leo eu est. Aliquam metus. Cras sem augue, mattis ege t, congue vitae, adipiscing in, dolor. Fusce elementum mollis urna. Pellentesq ue quam. Duis pede tortor, euismod non, varius vitae, consectetuer vel, dui. S uspendisse potenti. Nullam vehicula, justo euismod imperdiet vulputate, turpis lacus elementum nulla, ut posuere velit ipsum id elit. Maecenas at justo id r

isus tristique tristique. Vivamus auctor viverra felis. Fusce nonummy commodo

lacus. Morbi et nisi eget nulla iaculis semper. Ut sit amet eros. Quisque in r isus. Duis id tellus nec magna condimentum facilisis. Fusce feugiat. Curabitur eleifend tincidunt purus. Etiam ligula mi, mollis vitae, dapibus et, posuere

vel, lacus.

Duis erat. Mauris metus purus, scelerisque ac, pulvinar et, iaculis eu, mauris . Duis a lectus. Vivamus dolor nisl, aliquet a, venenatis id, consectetuer ut, lorem. Suspendisse nisi lectus, sollicitudin non, condimentum vel, nonummy ve

l, lacus. Cras nunc justo, tincidunt vel, vulputate non, aliquet euismod, turp is. Proin sagittis placerat lectus. Donec in lorem. In lacinia, leo ac luctus

tincidunt, nunc pede pulvinar tortor, in molestie tellus sem quis tellus. Maec enas vel enim. Mauris tincidunt nibh quis mauris ullamcorper pretium. Duis con sequat commodo risus. Vivamus rutrum. Vivamus dolor augue, imperdiet consectet uer, dictum at, eleifend et, sem. Suspendisse sed eros. Integer magna purus, e lementum eget, egestas id, porta id, nunc. Pellentesque habitant morbi tristiq

--More--(82%)

Если нужно вернуться к началу файла, следует нажать клавишу [B]. Для выхода – клавишу [Q].

Поиск текста в файле

Для поиска информации в файле существует команда “grep”:

user:Unix Intro$ grep Rum story.txt

"Rum," he repeated. "I must get away from here. Rum! Rum!"

but you're on'y a boy, all told. Now, Ben Gunn is fly. Rum wouldn't fathom and a half of water. We all pulled round again to Rum Cove,

user:Unix Intro$

Мы пытались найти все строки, содержащие слово “Rum”. В результате компьютер нашел три таких строки. Обратите внимание, что поиск чувствителен к регистру: “rum” и “Rum”

– это разные слова для поиска.

Обратите внимание, что если в файле строка “Ben Gunn” будет записана таким образом, что её часть находится на одной строке, а вторая - на другой. Тогда команда grep не найдет эту фразу. Это ограничение поиска из-за которого нельзя утверждать, что можно найти в тексте любую строку. (Файл - story.txt содержит текст из романа Стивенсона «Остров сокровищ» )

26

user:Unix Intro$ grep rum story.txt

Yo-ho-ho, and a bottle of rum!"

called roughly for a glass of rum. This, when it was brought to him, up my chest. I'll stay here a bit," he continued. "I'm a plain man; rum

knuckled under, put up his weapon, and resumed his seat, grumbling like

Yo-ho-ho, and a bottle of rum!"

"this won't do. Stand by to go about. This is a rum start, and I can't the rum, Darby!"

Если к команде grep дописать опцию -w (grumbling), то команда будет искать только изолированные слова. Например, grep rum найдет в тексте и rum и grum. Команда grep -w найдет в тексте лишь те строки, которые содержат rum:

user:Unix Intro$ grep -w rum story.txt

Yo-ho-ho, and a bottle of rum!"

called roughly for a glass of rum. This, when it was brought to him,

"this won't do. Stand by to go about. This is a rum start, and I the rum, Darby!"

user:Treasure Island$

Опция -i отключает зависимость от регистра:

user:Unix Intro$ grep -i rum story.txt

Yo-ho-ho, and a bottle of rum!"

called roughly for a glass of rum. This, when it was brought to him,

knuckled under, put up his weapon, and resumed his seat, grumbling

"Rum," he repeated. "I must get away from here. Rum! Rum!"

"this won't do. Stand by to go about. This is a rum start, and I the rum, Darby!"

user:Unix Intro$

Опции -w, -I, -iw, -wi – эквиваленты между собой.

Определение количества символов в текстовом файле

С помощью команды wc (word count) можно найти количество строк, слов и символов в текстовом файле:

user:Unix Intro$ wc story.txt 7857 71516 390927 story.txt

user:Unix Intro$

Можно догадаться, что файл содержит 7857 строк, 71512 слов и 390927 символов. Мы можем потребовать лишь одну или несколько частей этой информации, используя опции wc: «-l» для счетчика строк, «-w» - слов и «-c» - символов:

user:Unix Intro$ wc -l story.txt 7857 story.txt

user:Unix Intro$

27

Упражнение

Откройте какой-нибудь текстовый файл на компьютере.

Узнайте, сколько в нем содержится слов. Используйте для этого команду, выводящую только количество слов.

Редактирование текстовых файлов

Если вы хотите отредактировать текстовый файл, то, конечно, лучше всего воспользоваться текстовым редактором, например, gedit.

При редактировании текста из консоли можно использовать два текстовых редактора: “emacs” и “vi”. В данном пособии не рассматриваются возможности использования данных редакторов. Стоит отметить, что работа в этих редакторах является непростой, поэтому требует особого изучения. Лучше использовать GUI - редакторы графических сред: gedit для Gnome или kate для KDE

Текущая дата и время

С помощью команды date пользователь может вывести на экран дату, установленную на компьютере:

user:~$ date

Tue Apr 28 20:37:12 BST 2009

user:~$

Здесь BST - British Summer Time (Британское летнее время)

Мы можем поменять формат вывода, например:

user:~$ date +"%d %m %Y"

28 04 2009

user:~$

Вывод текста на экран

Команда “echo”, рассмотренная в данном примере, кажется довольно бессмысленной. Она просто выводит на экран то, что вы напишете:

user:~$ echo one two three one two three

user:~$

Ее польза станет понятна далее. С помощью этой команды можно понять, как команда работает с символами: кавычка и «косая черта»:

28

user:~$ echo "one two three" one two three

user:~$ echo 'one two three' one two three

user:~$ echo one\ two\ three one two three

user:~$

Калькулятор в командной строке

Существует множество графических приложений карманных калькуляторов. Вы можете запустить его в графическом режиме с помощью выбора меню Приложения → Утилиты и аксессуары → Калькулятор Gnome.

Однако в командной строке работа с калькулятором происходит быстрее. Можно использовать приложение командной строки, называемое «bc» («базовый калькулятор»).

Чтобы начать им пользоваться, вы просто вызываете команду bc и производите простейшие операции. При окончании работы с калькулятором, нужно нажать клавиши [Ctrl] + [D], либо выполнить команду «quit»:

user:~$ bc

56-65

-9

[Ctrl]+[D]

user:~$

Выполняем операции деления и умножения:

user:~$ bc

4*2

8

4/2

2

[Ctrl]+[D]

user:~$

По умолчанию команда bc работает с целыми числами, поэтому результатом операции деления 1/2 будет 0:

user:~$ bc

1/2

0

2/3

0

[Ctrl]+[D]

user:~$

29

Чтобы перейти к числам с плавающей точкой, следует задать точность, с которой компьютер будет проводить вычисления. Для этого нужно использовать параметр scale:

user:~$ bc

scale=5

1/2

.50000

2/3

.66666

[Ctrl]+[D]

user:~$

Параметр scale устанавливает количество знаков после запятой, а не число значащих цифр:

user:~$ bc

scale=5

2/3

.66666

20/3

6.66666

2/300000

0

[Ctrl]+[D]

user:~$

Пользователь может установить любую точность для проведения вычислений. Ограничением является лишь объем оперативной памяти:

user:~$ bc

scale=1000000000000

Runtime warning (func=(main), adr=15): scale too large, set to 2147483647

Упражнение

Используя калькулятор, вычислите:

1.11 × 11111111

2.111 × 1111111

3.1111 × 111111

4.11111 × 11111

5.355113

6.227 22371

30