Аднастрочнікі Shell — различия между версиями

Материал из Вікі Фаланстэра
Перейти к: навигация, поиск
(Некаторыя простыя каманды)
(Канвейеры)
Строка 81: Строка 81:
  
 
Мы вывелі вынікі каманды ls праз less.
 
Мы вывелі вынікі каманды ls праз less.
 +
 +
==Фільтры==
  
 
==Заданне==
 
==Заданне==

Версия 18:06, 19 февраля 2018

Мэта: Пазнаёміцца і папрактыкавацца з асноўнымі камандамі перанакіравання у shell.

Тэорыя

Адна з крыхут магчымасцяў каманднага радка: перанакіраванне ўвода/вывада. Дзякуючы ёй магчыма перанакіроўваць увод і вывад каманд з файлаў і ў файлы, а таксама складаць з камандаў цэлыя канвейеры. Для дэманстрацыі гэтай магчымасці увядзем наступныя каманды:

  • cat - аб'ядноўвае файлы.
  • sort - сарціруе радкі тэкста.
  • uniq - паведамляе пра паўторныя адкі ці выдаляе іх.
  • wc - выводзіць колькасць сімвалаў пераводу радка, слоў і байтаў у кожным пазначаным файле.
  • grep - знаходзіць і выводзіць радкі суадносна з шаблонам.
  • head - выводзіць першыя радкі файла.
  • tail - выводзіць апошнія радкі файла.
  • tee - чытае дадзеныя са стандартнага увода і запісвае у стандартны вывад і у файлы.

Стандартны увод, вывад і вывад памылак

Шматлікія прылады shell выводзяць што-небудзь на кансоль. Гэты вывад часта дзеліцца на два тыпа. Першы - вынікі працы прылады, значыць, дадзеныя, для атрымання якіх стваралася прылада. Другі - паведамленні пра станы ці памылкі, якія паведамляюць пра самаадчуванне прылады. Напрыклад, калі глянуць на вывад каманды ls, можна пабачыць, што яна выводзіць на экран вынікі сваёй працы і часам паведамленні пра памылкі.

Згодна з цэнтральнай ідэяй Unix, што "усё існае ёсць файл", такія прылады, як ls, насамрэч выводзяць свае вынікі ў спецыяльны файл, які называецца стандартным вывадам (standard output, часта вызначаецца як stdout), а паведамленні пра стан - у спецыяльны файл стандартны вывад памылак (standard error, stderr). Па змоўчанні оба файла, стандартны вывад і стандартны вывад памылак, звязаны з экранам і не захоўваюцца на дыске.

Акрамя таго, шматлікія прылады прымаюць увод са спецыяльнага файла з назвай стандартны увод (standard input, stdin), які па змоўчанні звязаны з клавіятурай.

Механізм перанакіравання увода/вывада дазваляе змяняць кірунак вывада і уводу. Звычайна вывад адбываецца на экран, а увод - з клавіятуры, але механізм перанакіраванні дазваляе змяніць гэты парадак рэчаў.

Перанакіраванне стандартнага вывада

Каб перанакіраваць стандартны вывад у іншы файл замест экрана, трэба дадаць у каманду аператар перанакіравання > і імя файла.

ls -l /usr/bin > ls-output.txt

Тут доўгі спіс зместу файла /usr/bin будзе накіраваны ў ls-output.txt

Праглядзім змест файла ls-output.txt

less ls-output.txt

Ачысціць файл можна наступным чынам:

> ls-output.txt

Каб дадаць вывад у канец існуючага файла:

ls -l /usr/bin >> ls-output.txt

Перанакіраванне стандартнага ўвода

cat - аб'ядноўвае файлы.

cat [файл...]

Каманда cat выкарыстоўваецца для вывада зместу файла без магчымасці пастаронкавага прагляду. Напрыклад,

cat ls-output.txt

пакажа змест файла ls-output.txt.

Cat здольна прымаць адразу некалькі файлаў. Яна выкарыстоўваецца, каб аб'яднаць іх.

Напрыклад, у нас есць файлы movie.mpeg.001 movie.mpeg.002 ... movie.mpeg.099

Іх можна аб'яднаць наступнай камандай:

cat movie.mpeg.0* > movie.mpeg

Проста вызаў каманды cat дазволіць увесці дадзеныя з клавіятуры

cat
Напішыце свой тэкст у кансолі
Увядзіце CTRL-D

Па-змоўчанні (без дадатковых аргулентаў) cat вывядзе у кансоль той жа тэкст, які вы набралі.

Каб перанакіравать тэкст у файл запішам:

cat > new_file.txt

І праглядзем файл, які атрымаўся:

cat new_file.txt

Канвейеры

"Уменне" каманд чытаць дадзеныя са стандартнага увода і выводзіць вынікі ў стандартны вывад выкарыстоўваецца механізмам каманднай абалонцы, які называецца канвейерам. З дапамогай аператара канвейера | (вертыкальная рыска) стандартны вывад адной каманды можна звязаць з стандартным уводам другой.

каманда1 | каманда2

Паспрабуем :

ls -l /usr/bin | less

Мы вывелі вынікі каманды ls праз less.

Фільтры

Заданне

Для выканання заданняў вам спатрэбіцца шукаць дадатковую інфармацыю пра каманды shell у інтэрнэце!

Удаленае падключэнне да сэврвера на Windows

  1. Зайсці у тэчку "Загрузки", запусціць прыладу putty.exe
  2. У поле Host Name (or IP Address) запісаць 10.194.0.220
  3. У акне кансолі ўвесці лагін: user і пароль: user.

Цяпер вы працуеце на ўдаленам Linux сэрверы.

Літаратура

  1. Уильям Шоттс, "Командная строка Linux", 2017, с.70.