<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF136%3AScreen</id>
		<title>LXF136:Screen - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF136%3AScreen"/>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF136:Screen&amp;action=history"/>
		<updated>2026-05-13T22:19:21Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF136:Screen&amp;diff=12966&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF136:Screen&amp;diff=12966&amp;oldid=prev"/>
				<updated>2011-11-11T05:57:35Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''''Screen''''' Словосочетание «терминал “все в одном”» приобретает новый смысл. [[Категория:Учебники]]&lt;br /&gt;
&lt;br /&gt;
==''Screen'': Кон­соль по-но­во­му==&lt;br /&gt;
&lt;br /&gt;
: Чем тер­ми­нал не ра­бо­чий стол? Раз­ме­ры те же, фон мож­но на­стро­ить, и да­же окон­ный ме­нед­жер есть, со­об­ща­ет '''Ти­хон Тар­нав­ский'''.&lt;br /&gt;
&lt;br /&gt;
Про­грам­ма, о ко­то­рой пой­дет речь, опи­са­на на ее до­машней странице как «окон­ный менед­жер для тер­ми­на­ла» – ви­ди­мо, из скром­но­сти: функ­цио­нал ''Screen'' ку­да ши­ре. На де­ле за этим бес­хит­ро­ст­ным на­званием (англ. screen – эк­ран) кро­ют­ся та­кие воз­мож­но­сти, что по­ка не оп­ро­бу­ешь, их труд­но да­же во­об­ра­зить. Конеч­но, все их ох­ва­тить од­ной стать­ей невоз­мож­но: пол­ная офи­ци­аль­ная до­ку­мен­та­ция про­грам­мы по объ­е­му пре­восхо­дит весь этот но­мер жур­на­ла. По­это­му по­сле опи­сания неко­то­рых ба­зо­вых ве­щей оста­но­вим­ся лишь на са­мых по­лез­ных и да­же в ка­ких-то слу­ча­ях спа­си­тель­ных спо­соб­но­стях ''Screen'' – а их то­же нема­ло.&lt;br /&gt;
&lt;br /&gt;
===На­ча­ли! Э… мы уже на­ча­ли?===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF136_76_1.jpg|300px|Рис. 1]] Рис. 1. Стар­то­вое при­вет­ст­вие ''Screen'', ес­ли оно не от­клю­че­но в на­строй­ках, вы­гля­дит так.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Од­на из основ­ных осо­бен­но­стей ''Screen'' в том, что он «не пу­та­ет­ся у вас под но­га­ми». С непри­выч­ки это мо­жет да­же немно­го обеску­ра­жить: ес­ли в на­строй­ках ''Screen'' не за­да­но ото­бра­жать ин­фор­ма­цию о про­грам­ме при за­пуске (рис. 1), вы мо­же­те это­го за­пуска и во­все не за­ме­тить. Скоман­до­вав ''screen'', вы уви­ди­те… при­гла­шение команд­ной стро­ки – точ­но та­кое же, как до вво­да этой коман­ды.&lt;br /&gt;
&lt;br /&gt;
Но на са­мом де­ле мы уже внут­ри: по умол­чанию ''Screen'' за­пуска­ет в сво­ем пер­вом окне ва­шу стан­дарт­ную команд­ную обо­лоч­ку. Мы мо­жем про­ве­рить это, дав ему ка­кую-нибудь коман­ду; но пре­ж­де, чем пе­ре­хо­дить к кон­кре­ти­ке, сто­ит по­зна­ко­мить­ся с кон­цеп­ци­ей, на ко­то­рой стро­ят­ся коман­ды ''Screen''. Она до­воль­но свое­об­раз­на и про­дик­то­ва­на в пер­вую оче­редь уже оз­ву­чен­ным прин­ци­пом «не пу­тай­ся под но­га­ми». Гру­бо го­во­ря, управ­ляю­щая кла­ви­ша у ''Screen'' все­го од­на. На­жа­тие на нее как бы пе­ре­клю­ча­ет ''Screen'' в команд­ный ре­жим (при­вет лю­би­те­лям ''Vi''!): соб­ствен­но коман­дой бу­дет уже сле­дую­щая кла­ви­ша.&lt;br /&gt;
&lt;br /&gt;
На прак­ти­ке та­кой под­ход ока­зы­ва­ет­ся очень удоб­ным. Дей­стви­тель­но, с од­ной сто­ро­ны ''Screen'' минималь­но вме­ши­ва­ет­ся в управ­ление лю­бой ра­бо­таю­щей внут­ри него про­грам­мы, а с дру­гой – пульт управ­ления са­мим ''Screen'' досту­пен бу­к­валь­но в од­но ка­сание.&lt;br /&gt;
&lt;br /&gt;
Те­перь да­вай­те про­дол­жим, а по хо­ду дей­ствия бу­дем с этим пуль­том зна­ко­мить­ся.&lt;br /&gt;
&lt;br /&gt;
===И прав­да на­ча­ли===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Ро­до­слов­ная|Содержание=''Screen'' раз­ра­ба­ты­ва­ет­ся в рам­ках про­ек­та GNU. По­это­му час­то его для од­но­знач­но­сти на­зы­ва­ют ''GNU Screen'' (осо­бен­но в анг­лоя­зыч­ной ли­те­ра­ту­ре). Стра­ни­ца про­грам­мы, как не­труд­но до­га­дать­ся, рас­по­ло­же­на на сай­те GNU: http://www.gnu.org/software/screen/.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Мы оста­но­ви­лись на же­лании убе­дить­ся, что ''Screen'' уже ра­бо­та­ет. Опи­сан­ная кла­ви­ша-пре­фикс по умол­чанию – это '''Ctrl+a''', а на вклю­чае­мом ею «пуль­те управ­ления ''Screen''» той же кла­ви­ше со­от­вет­ству­ет од­на из са­мых по­пу­ляр­ных команд – пе­ре­клю­чение на пре­ды­ду­щее ак­тив­ное ок­но. Сра­зу сде­ла­ем неболь­шое от­сту­п­ление на­счет запи­си со­че­таний кла­виш: в до­ку­мен­та­ции к ''Screen'' со­че­тания ви­да '''Ctrl+a''' обо­зна­че­ны как '''^A''' ли­бо '''C-a'''. Мы бу­дем при­дер­жи­вать­ся вто­ро­го ва­ри­ан­та.&lt;br /&gt;
&lt;br /&gt;
Тут сто­ит упо­мя­нуть еще од­ну осо­бен­ность: боль­шин­ство кла­виш оз­на­ча­ют од­но и то же как с '''Ctrl''', так и са­ми по се­бе. Это сде­ла­но для то­го, что­бы по­ве­дение про­грам­мы не ме­ня­лось от то­го, от­пусти­ли ли вы '''Ctrl''' по­сле на­жа­тия '''C-a'''.&lt;br /&gt;
&lt;br /&gt;
Итак, два­ж­ды на­жми­те '''C-a'''. В нижней стро­ке тер­ми­на­ла поя­вит­ся со­об­щение «''No other window''» [Нет дру­го­го ок­на], вы­де­лен­ное ин­верс­ным цве­том и фо­ном. Эта возникаю­щая внизу ин­верс­ная об­ласть – ста­тусная стро­ка ''Screen''; мы еще не раз коснем­ся ее в дальней­шем опи­сании про­грам­мы.&lt;br /&gt;
&lt;br /&gt;
Для соз­дания но­во­го ок­на есть два спо­со­ба. Пер­вый – кла­ви­ша на «пуль­те», а имен­но '''C-a c''' (или '''C-a C-c'''). Но в та­ком окне за­пустит­ся команд­ная обо­лоч­ка; а та­кое у нас уже есть. По­то­му пе­рей­дем сра­зу ко вто­ро­му спо­со­бу.&lt;br /&gt;
&lt;br /&gt;
Вы­зов ''screen'' в команд­ной стро­ке внут­ри сес­сии соз­даст в ней но­вое ок­но. По умол­чанию оно так­же бу­дет со­дер­жать команд­ную обо­лоч­ку; но коман­де, в от­ли­чие от со­че­тания кла­виш, мож­но пе­ре­дать па­ра­мет­ры. В про­стей­шем слу­чае – при вы­зо­ве с од­ним па­ра­мет­ром – он воспринима­ет­ся как имя коман­ды, ко­то­рую требуется за­пустить в но­вом окне вме­сто обо­лоч­ки. Да­вай­те для про­бы за­пустим там ''top'':&lt;br /&gt;
&lt;br /&gt;
 $ screen top&lt;br /&gt;
&lt;br /&gt;
Ну как? Всё сно­ва вы­гля­дит так, буд­то нет у нас ника­ко­го «окон­но­го менед­же­ра», и это пра­виль­но: ''Screen'' сам не де­лит тер­ми­нал на об­ласти, а от­кры­ва­ет лю­бое свое ок­но в «пол­но­эк­ран­ном» ре­жи­ме. Что­бы убе­дить­ся в этом, сно­ва на­жми­те '''C-a C-a''': вы ока­же­тесь в пер­во­на­чаль­ном окне с обо­лоч­кой. И коман­да ''screen top'' там при­сут­ству­ет, на­по­ми­ная нам о по­следнем дей­ствии в этом окне. Мо­же­те вво­дить дру­гие коман­ды или соз­да­вать но­вые ок­на – ''top'' при этом бу­дет про­дол­жать ра­бо­тать, и вы смо­же­те пе­ре­клю­чить­ся на него в лю­бой мо­мент. Когда вы вый­де­те из ''top'', со­дер­жа­щее его ок­но ав­то­ма­ти­че­ски за­кро­ет­ся.&lt;br /&gt;
&lt;br /&gt;
У это­го вто­ро­го спо­со­ба за­пуска есть еще один ва­ри­ант: с по­мо­щью внут­ренней коман­ды ''Screen''. На­жми­те '''C-a''': – в ста­тусной стро­ке поя­вит­ся при­гла­шение в ви­де двое­то­чия. Это команд­ная стро­ка ''Screen'', здесь мож­но вво­дить его внут­ренние коман­ды.&lt;br /&gt;
&lt;br /&gt;
Коман­да соз­дания но­во­го ок­на на­зы­ва­ет­ся ''screen'' и принима­ет та­кие же па­ра­мет­ры. Дру­ги­ми сло­ва­ми, здесь мож­но бы­ло вве­сти «''screen top''» и по­лу­чить иден­тич­ный ре­зуль­тат. По­про­буй­те за­пустить та­ким об­ра­зом что-нибудь еще – на­при­мер, тек­сто­вый ре­дак­тор:&lt;br /&gt;
&lt;br /&gt;
 : screen emacs&lt;br /&gt;
&lt;br /&gt;
(ес­ли вы предпочитаете не ''Emacs'', за­мените по сво­ему вку­су: ''vim, nano, mcedit''…)&lt;br /&gt;
&lt;br /&gt;
По­лу­чи­лось? От­лич­но. Но как те­перь по­пасть в пер­во­на­чаль­ное ок­но с команд­ной обо­лоч­кой? На­жа­тие '''C-a C-a''' пе­ре­клю­ча­ет нас ме­ж­ду ''top'' и ре­дак­то­ром. По­ра изу­чить дру­гие спо­со­бы пе­ре­клю­чения окон.&lt;br /&gt;
&lt;br /&gt;
===Ещё боль­ше окон===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF136_77_1.jpg|300px|Рис. 2]] Рис. 2. Под­сказ­ка ''Screen'' по но­ме­рам и име­нам окон.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Для пе­ре­клю­чения ме­ж­ду бо­лее чем дву­мя ок­на­ми в ''Screen'' то­же есть несколь­ко раз­лич­ных спо­со­бов. Са­мый ла­конич­ный из них – по но­ме­ру ок­на. Стро­го го­во­ря, это де­сять от­дель­ных команд, ко­то­рым по умол­чанию со­от­вет­ству­ют кла­ви­ши от ну­ля до де­вя­ти. Ноль – это то ок­но, ко­то­рое возник­ло при пер­во­на­чаль­ном за­пуске ''Screen''; даль­ше – на­чи­ная с единицы, в по­ряд­ке соз­дания. Конеч­но, эту умол­ча­тель­ную ну­ме­ра­цию при же­лании мож­но лег­ко из­менить, но об этом чуть поз­же. По­ка нам важ­но, что мы мо­жем пе­ре­клю­чать­ся ме­ж­ду тре­мя уже су­ще­ствую­щи­ми ок­на­ми: '''C-a 0''' – команд­ная обо­лоч­ка; '''C-a 1''' – ''top''; '''C-a 2''' – тек­сто­вый ре­дак­тор.&lt;br /&gt;
&lt;br /&gt;
Но что де­лать, ес­ли вы за­бы­ли но­ме­ра окон или во­об­ще не хо­ти­те дер­жать их в го­ло­ве? Опять-та­ки вы­бор есть. Мож­но пе­ред пе­ре­клю­чением по но­ме­ру вы­вести в ста­тусную стро­ку ра­зо­вую под­сказ­ку с но­ме­ра­ми окон и их за­го­лов­ка­ми (рис. 2) на­жа­ти­ем '''C-a w''' (от сло­ва window – ок­но); звез­доч­кой в этом спи­ске обо­зна­че­но ак­тив­ное ок­но. А мож­но пе­рей­ти к дру­гим спо­со­бам вы­бо­ра ок­на. Сде­ла­ем толь­ко неболь­шое от­сту­п­ление о за­го­лов­ках окон, тем бо­лее, что и при рас­смот­рении осталь­ных спо­со­бов пе­ре­клю­чения они нам по­на­до­бят­ся.&lt;br /&gt;
&lt;br /&gt;
Ка­ж­дое ок­но в ''Screen'' име­ет за­го­ло­вок. По умол­чанию, как мы уже ви­де­ли в при­ме­ре вы­ше, та­ким за­го­лов­ком ста­но­вит­ся имя коман­ды, ра­бо­таю­щей в этом окне. Но его лег­ко мож­но за­менить сво­им, как, впро­чем, и лю­бое дру­гое умол­чание в ''Screen''; при­чем то­же не одним спо­со­бом. Пер­вый спо­соб по­зво­ля­ет за­дать дру­гой за­го­ло­вок пря­мо при за­пуске – с по­мо­щью клю­ча '''-t''' к коман­де ''screen'' (он досту­пен как из обо­лоч­ки, так и из внут­ренней команд­ной стро­ки ''Screen''):&lt;br /&gt;
&lt;br /&gt;
 screen -t за­го­ло­вок_ок­на ко­ман­да&lt;br /&gt;
&lt;br /&gt;
А вто­рой пред­на­зна­чен для из­менения за­го­лов­ков уже су­ще­ствую­щих окон и по­то­му «при­вя­зан» к функ­цио­наль­ной кла­ви­ше. Пе­ре­клю­чи­тесь на нуж­ное ок­но и на­жми­те '''C-a A''' ('''Ctrl-a Shift-a'''); в ста­тусной стро­ке поя­вит­ся по­яснение «''Set window's title to:''» («уста­но­вить за­го­ло­вок ок­на в:») и за­тем те­ку­щий за­го­ло­вок, ко­то­рый мож­но от­ре­дак­ти­ро­вать или за­менить но­вым.&lt;br /&gt;
&lt;br /&gt;
Вернем­ся к пе­ре­клю­чению окон. Вто­рой спо­соб – вы­бор из спи­ска. По на­жа­тию '''C-a “''' поя­вит­ся таб­лич­ка из трех ко­ло­нок (рис. 3): но­мер ок­на (Num), его за­го­ло­вок (Name) и некие «фла­ги» (Flags; сей­час они для нас ин­те­ре­са не пред­став­ля­ют). Те­перь мож­но пе­ре­местить кур­сор ли­бо стрел­ка­ми вверх/вниз, ли­бо вве­дя но­мер нуж­но­го ок­на; а за­тем пе­рей­ти к вы­бран­но­му ок­ну на­жа­ти­ем '''Enter'''.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF136_78_1.jpg|300px|Рис. 3]] Рис. 3. Пол­ный спи­сок окон с кур­со­ром для вы­бо­ра.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
И, на­конец, мож­но на­жать '''C-a '''' и по­сле поя­вив­ше­го­ся при­гла­шения вве­сти но­мер или за­го­ло­вок нуж­но­го ок­на – при­чем за­го­ло­вок не обя­за­тель­но вво­дить пол­но­стью: доста­точ­но од­ной или несколь­ких пер­вых букв, ко­то­рые по­зво­лят од­но­знач­но от­ли­чить его от имен дру­гих от­кры­тых окон. На­при­мер, для пе­ре­клю­чения ме­ж­ду упо­мя­ну­ты­ми вы­ше тре­мя ок­на­ми с ''bash, top'' и ''emacs'' мож­но по­сле '''C-a '''' вве­сти '''b, t''' или '''e'''.&lt;br /&gt;
&lt;br /&gt;
Кро­ме рас­смот­рен­ных трёх ва­ри­ан­тов пе­ре­клю­чения к лю­бо­му ок­ну, мож­но так­же пе­рей­ти к сле­дую­ще­му или пре­ды­ду­ще­му (в по­ряд­ке но­ме­ров) кла­ви­ша­ми '''C-a про­бел''' (или '''C-a n''') и '''C-a BackSpace''' (или '''C-a p''').&lt;br /&gt;
&lt;br /&gt;
Ес­ли наи­бо­лее удоб­ным для се­бя вы най­дё­те пе­ре­клю­чение по но­ме­рам окон, осталь­ные спо­со­бы то­же мо­гут при­го­дить­ся; на­при­мер, ес­ли вы соз­да­ди­те боль­ше де­ся­ти окон.&lt;br /&gt;
&lt;br /&gt;
===А те­перь да­вай­те хо­ром===&lt;br /&gt;
&lt;br /&gt;
Зная, как соз­да­вать ок­на и пе­ре­клю­чать­ся ме­ж­ду ними, вы мо­же­те за­хо­теть ото­бра­зить на эк­ране од­но­вре­мен­но боль­ше од­но­го ок­на.&lt;br /&gt;
&lt;br /&gt;
В ''Screen'' ис­поль­зу­ет­ся кон­цеп­ция непе­ре­кры­ваю­щих­ся окон: эк­ран раз­би­ва­ет­ся на пря­мо­уголь­ные об­ласти [англ. regions], в ка­ж­дой из ко­то­рых ото­бра­жа­ет­ся ров­но од­но ок­но. Этот прин­цип мо­жет быть вам уже зна­ком, ес­ли вы ис­поль­зо­ва­ли один из так на­зы­вае­мых «тай­ло­вых» или «фрей­мо­вых» окон­ных менед­же­ров.&lt;br /&gt;
&lt;br /&gt;
По­сле за­пуска ''Screen'' есть од­на та­кая об­ласть раз­ме­ром во весь эк­ран (или ок­но тер­ми­на­ла). Что­бы раз­де­лить эк­ран на две го­ри­зон­таль­ные об­ласти, на­жми­те '''C-a S'''. Ак­тив­ная об­ласть умень­шит­ся по вы­со­те вдвое, а на осво­бо­див­шем­ся месте возникнет но­вая, со­дер­жа­щая пустое ок­но. Те­перь вы мо­же­те пе­ре­клю­чить­ся на неё на­жа­ти­ем '''C-a Tab''', а за­тем вы­брать од­но из су­ще­ствую­щих окон лю­бым рас­смот­рен­ным вы­ше спо­со­бом. По­втор­ные на­жа­тия '''C-a S''' бу­дут соз­да­вать но­вые го­ри­зон­таль­ные об­ласти, умень­шая вы­со­ту уже су­ще­ствую­щих.&lt;br /&gt;
&lt;br /&gt;
Вер­тикаль­ное раз­де­ление на дан­ный мо­мент доступ­но в вер­сии из ''Git'', а го­то­вые па­ке­ты до­бав­ле­ны, на­сколь­ко мне из­вест­но, толь­ко в Debian, и от­ту­да по­па­ли в Ubuntu, а воз­мож­но, и дру­гие про­из­вод­ные ди­ст­ри­бу­ти­вы. По крайней ме­ре, в Mandriva, SUSE, Fedora, Arch, Slackware и Gentoo этот функ­цио­нал от­сут­ству­ет (бла­го­да­рю уча­стников фо­ру­ма unixforum.org за про­вер­ку этой ин­фор­ма­ции). Ес­ли у вас Debian или Ubuntu с вер­си­ей ''Screen'' не мень­ше 4.0.3‑10 или вы со­бе­рё­те ''Screen'' са­мо­стоя­тель­но, взяв ис­ход­ный код из ''Git'' или из Debian, то вы смо­же­те раз­де­лять об­ласти и по вер­тика­ли с по­мо­щью '''C-a |'''. Ком­бинируя вер­тикаль­ное и го­ри­зон­таль­ное раз­де­ление, мож­но до­бить­ся лю­бо­го рас­по­ло­жения окон, ка­кое вам бу­дет удоб­но.&lt;br /&gt;
&lt;br /&gt;
Что­бы уб­рать ка­кую-то из су­ще­ствую­щих об­ластей, пе­ре­клю­чи­тесь на неё и на­жми­те '''C-a X'''. Кро­ме то­го, мож­но, на­обо­рот, оста­вить толь­ко ак­тив­ную об­ласть, рас­пах­нув её на весь эк­ран, с по­мо­щью '''C-a Q'''. За­ме­чу здесь ещё раз, что об­ласти эк­ра­на и ок­на с про­грам­ма­ми – это две от­дель­ные сущ­но­сти: при уда­лении об­ласти со­дер­жа­щее­ся в ней ок­но не за­кро­ет­ся, а бу­дет по-прежнему доступ­но для вы­бо­ра в лю­бой из остав­ших­ся или но­вых об­ластей.&lt;br /&gt;
&lt;br /&gt;
Оста­лось толь­ко нау­чить­ся из­ме­нять раз­мер соз­дан­ных об­ластей. Для это­го пред­на­зна­че­на коман­да '''resize''' [англ. «из­менить раз­мер»]. По умол­чанию ника­кая кла­ви­ша на «пуль­те» для неё не на­зна­че­на, но это мож­но лег­ко сде­лать са­мо­стоя­тель­но – ниже бу­дет опи­са­но, как. Коман­да из­ме­ня­ет раз­мер те­ку­ще­го ок­на (растя­ги­вая со­седние при его умень­шении и сжи­мая при уве­ли­чении) и принима­ет один из шести ви­дов ар­гу­мен­тов, смысл ко­то­рых та­ков (бу­к­вой '''N''' обо­зна­че­но про­из­воль­ное на­ту­раль­ное чис­ло):&lt;br /&gt;
* '''resize +N''' – Уве­ли­чить на N по­зи­ций.&lt;br /&gt;
* '''resize -N''' – Умень­шить на N по­зи­ций.&lt;br /&gt;
* '''resize N''' – За­дать раз­мер рав­ным N.&lt;br /&gt;
* '''resize min''' – Умень­шить раз­мер до минималь­но воз­мож­но­го.&lt;br /&gt;
* '''resize max''' – Уве­ли­чить раз­мер до мак­си­маль­но воз­мож­но­го.&lt;br /&gt;
* '''resize =''' – Сде­лать все ок­на в ря­ду оди­на­ко­вы­ми по раз­ме­ру.&lt;br /&gt;
&lt;br /&gt;
Ес­ли за­дать коман­ду без ар­гу­мен­та, то од­но из этих зна­чений бу­дет пред­ло­же­но вве­сти с кла­виа­ту­ры. Как мы уви­дим поз­же, на кла­ви­шу мож­но на­зна­чить коман­ду в том чис­ле и с ар­гу­мен­том.&lt;br /&gt;
&lt;br /&gt;
===Как за ка­мен­ной сте­ной===&lt;br /&gt;
&lt;br /&gt;
С мно­го­окон­ной ра­бо­той мы уже доста­точ­но по­зна­ко­ми­лись; да­вай­те те­перь пе­рей­дём к то­му, что я на­звал спа­си­тель­ны­ми воз­мож­но­стя­ми ''Screen'' и что де­ла­ет его чем-то боль­шим, чем окон­ный менед­жер.&lt;br /&gt;
&lt;br /&gt;
Как непри­ят­но бы­ва­ет, когда ра­бо­та пре­ры­ва­ет­ся в са­мый непод­хо­дя­щий мо­мент! Слу­чай­но за­кры­тое ок­но тер­ми­на­ла, сбой ''X'' или об­рыв ''SSH''-со­единения мо­гут сто­ить вам несколь­ких ча­сов ра­бо­ты – но толь­ко не в том слу­чае, ес­ли вы ис­поль­зуе­те ''Screen''. Ему не страш­на по­те­ря той обо­лоч­ки, из ко­то­рой его за­пусти­ли: ''Screen'' про­дол­жа­ет ра­бо­тать, а вме­сте с ним и все от­кры­тые внут­ри него про­грам­мы. Доста­точ­но лишь под­клю­чить­ся к на­ча­той сес­сии с дру­го­го тер­ми­на­ла.&lt;br /&gt;
&lt;br /&gt;
Мо­же­те сра­зу про­ве­рить это. За­крой­те ок­но тер­ми­на­ла с тре­мя ок­на­ми ''Screen'', опи­сан­ны­ми в на­ча­ле ста­тьи (или от­со­едините сам ''Screen'' от тер­ми­на­ла, на­жав '''C-a C-d'''). А за­тем от­крой­те но­вое ок­но (или пе­ре­клю­чи­тесь на од­ну из вир­ту­аль­ных кон­со­лей; или зай­ди­те на эту ма­ши­ну по ''SSH'') и вве­ди­те&lt;br /&gt;
&lt;br /&gt;
 screen -r&lt;br /&gt;
&lt;br /&gt;
Бу­к­ва '''r''' здесь от сло­ва reattach – под­клю­чить­ся за­но­во. Ес­ли у вас на этой ма­шине от­кры­та толь­ко од­на сес­сия ''Screen'', тут же про­изой­дёт под­клю­чение к ней, и вы уви­ди­те всё точ­но в том же ви­де, как и до за­кры­тия ок­на. Ес­ли сес­сий несколь­ко, ука­жите по­сле '''-r''' иден­ти­фи­ка­тор нуж­ной вам. При ис­поль­зо­вании ''Bash'' и уста­нов­лен­ном па­ке­те ''bash-completion'' бу­дет ра­бо­тать ав­то­до­полнение. Иден­ти­фи­ка­тор сес­сии со­сто­ит из но­ме­ра про­цес­са, имени сес­сии (по умол­чанию ту­да под­став­ля­ет­ся имя уст­рой­ства тер­ми­на­ла, с ко­то­ро­го вы за­пусти­ли ''Screen'') и имени хоста. Ес­ли имя сес­сии уникаль­но, мож­но ука­зать толь­ко его, вме­сто пол­но­го иден­ти­фи­ка­то­ра.&lt;br /&gt;
&lt;br /&gt;
Те­перь пред­ста­вим дру­гую си­туа­цию: вы уш­ли, не за­кон­чив ра­бо­ту, а по­том ре­ши­ли про­дол­жить, на­хо­дясь в дру­гом месте. У вас есть доступ по ''SSH'' к ма­шине, на ко­то­рой от­кры­ты все ва­ши про­грам­мы, но сес­сия ''Screen'' оста­лась под­клю­чен­ной к тер­ми­на­лу. Про­сто до­бавь­те ещё од­ну оп­цию (пред­ва­ри­тель­но не за­быв зай­ти на нуж­ную ма­ши­ну по ''SSH''):&lt;br /&gt;
&lt;br /&gt;
 screen -d -r&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF136_79_1.jpg|300px|Рис. 4]] Рис. 4. Од­на го­ри­зон­таль­ная и две вер­ти­каль­ных об­лас­ти: elinks, emacs и bash.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Сес­сия ав­то­ма­ти­че­ски от­клю­чит­ся [англ. detach] от уда­лён­но­го тер­ми­на­ла и под­клю­чит­ся к то­му, с ко­то­ро­го вве­де­на коман­да.&lt;br /&gt;
&lt;br /&gt;
У клю­чей '''-d''' и '''-r''' есть «уси­лен­ные» ва­ри­ан­ты, обо­зна­чен­ные за­глав­ны­ми бу­к­ва­ми. Оп­ция '''-R''' под­клю­чит ''Screen'' к пер­вой доступ­ной сес­сии, да­же ес­ли их несколь­ко, а при от­сут­ствии доступ­ных сес­сий соз­даст но­вую, вы­ве­дя об этом со­об­щение в ста­тусную стро­ку. Оп­ция '''-D''' не толь­ко от­клю­чит ука­зан­ную (или пер­вую доступ­ную для '''-R''') сес­сию, но и по­шлёт сиг­нал «от­боя» (SIGHUP) ро­ди­тель­ско­му тер­ми­на­лу. Это мо­жет быть по­лез­но как раз при от­клю­чении сес­сии от уда­лён­ной ма­ши­ны, что­бы не остав­лять там доступ­ную под ва­шей учёт­ной запи­сью кон­соль (са­ма сес­сия ''Screen'' мо­жет быть за­щи­ще­на па­ро­лем).&lt;br /&gt;
&lt;br /&gt;
А eсли вы вдруг ре­ши­те за­вер­шить се­анс ''Screen'' вме­сте со все­ми ра­бо­таю­щи­ми внут­ри него про­грам­ма­ми, на­жми­те '''C-a C-\'''.&lt;br /&gt;
&lt;br /&gt;
===Один в по­ле не во­ин===&lt;br /&gt;
&lt;br /&gt;
По­ми­мо соб­ствен­ных до­воль­но бо­га­тых воз­мож­но­стей, ''Screen'' так­же уме­ет весь­ма успеш­но взаи­мо­дей­ство­вать с дру­ги­ми про­грам­ма­ми, ра­бо­таю­щи­ми внут­ри него.&lt;br /&gt;
&lt;br /&gt;
На­при­мер, мож­но ко­пи­ро­вать текст из од­но­го ок­на в дру­гое. На­жми­те '''C-a [''' или '''C-a Esc''', что­бы на­чать вы­де­лять текст для ко­пи­ро­вания. Та­кое, ка­за­лось бы, неоче­вид­ное со­вме­щение кла­виш для этой коман­ды объ­яс­ня­ет­ся весь­ма про­сто: кла­ви­ша '''Esc''' генери­ру­ет тот же код, что и '''C-['''.&lt;br /&gt;
&lt;br /&gt;
За­тем пе­ре­мести­те кур­сор к од­ной из границ нуж­но­го уча­ст­ка, на­жми­те '''про­бел''', пе­рей­ди­те к дру­гой границе и по­вто­ри­те на­жа­тие '''про­бе­ла'''. Текст ско­пи­ро­ван. Воз­мож­но, вы за­ме­ти­ли, что в про­цес­се вы­де­ления кур­сор мож­но пе­ре­дви­нуть за верх­нюю границу эк­ра­на. Текст при этом бу­дет про­кру­чи­вать­ся: у ''Screen'' есть соб­ствен­ный бу­фер, неза­ви­си­мый от ис­поль­зуе­мо­го тер­ми­на­ла. По­это­му коман­ду ко­пи­ро­вания мож­но ис­поль­зо­вать не толь­ко соб­ствен­но для ко­пи­ро­вания, но и для про­смот­ра. Уви­дев нуж­ное, мож­но от­менить про­цесс вы­де­ления на­жа­ти­ем '''Esc''' или '''q'''.&lt;br /&gt;
&lt;br /&gt;
Для встав­ки ско­пи­ро­ван­но­го тек­ста вы­бе­ри­те нуж­ное ок­но и на­жми­те '''C-a ]'''. Эту па­ру кла­виш весь­ма про­сто за­помнить: мы как бы бе­рём текст в квад­рат­ные скоб­ки (от­кры­ваю­щая скоб­ка – на­ча­ло дей­ствия, за­кры­ваю­щая – окон­чание). Встав­ляе­мый текст бу­дет на­пря­мую пе­ре­дан внут­ренней про­грам­ме – точ­но так же, как ес­ли бы вы его вво­ди­ли с кла­виа­ту­ры.&lt;br /&gt;
&lt;br /&gt;
Кро­ме ко­пи­ро­вания тек­ста из ок­на и встав­ки в ок­но, мож­но об­менивать­ся со­дер­жи­мым ме­ж­ду бу­фе­ром об­ме­на (не пу­тать с бу­фе­ром про­крут­ки ка­ж­до­го ок­на, упо­мя­ну­тым вы­ше) и фай­лом. Кла­ви­ша '''C-a &amp;gt;''' со­хранит бу­фер в файл (по умол­чанию это '''/tmp/screen-exchange'''; как имя, так и рас­по­ло­жение мож­но из­менить); '''C-a &amp;lt;''' счи­та­ет из то­го же фай­ла; а '''C-a =''' уда­лит файл об­ме­на. За­помнить так­же нетруд­но – по ана­ло­гии с пе­ре­на­прав­лением вы­во­да и вво­да в ''Bash''.&lt;br /&gt;
&lt;br /&gt;
Ес­ли вам нуж­но сле­дить за ка­кой-то про­грам­мой, не обя­за­тель­но соз­да­вать под её ок­но от­дель­ную об­ласть и всё вре­мя ту­да по­гля­ды­вать: ''Screen'' и это мо­жет сде­лать за вас. Ес­ли про­грам­ма вы­да­ёт зву­ко­вой сиг­нал (или же рав­но­знач­ное ему «мер­цание эк­ра­ном» при от­клю­чен­ных сиг­на­лах ди­на­ми­ка) при ожи­дае­мом со­бы­тии, ниче­го до­полнитель­но не нуж­но де­лать: ''Screen'' сам со­об­щит об этом сиг­на­ле надпи­сью ви­да «''Bell in window 2''» («зво­нок в окне 2»). Ес­ли вы не успе­ли про­честь это (да и лю­бое дру­гое) со­об­щение, доста­точ­но на­жать '''C-a m'' (от «message» – со­об­щение) для его по­вто­ра.&lt;br /&gt;
&lt;br /&gt;
Кро­ме то­го, мож­но вклю­чить сле­жение за кон­крет­ным ок­ном [monitoring] на­жа­ти­ем '''C-a m'''. Тогда, как толь­ко коман­да в этом окне что-то вы­ве­дет, поя­вит­ся со­об­щение «''Activity in window 1''». И, на­конец, ес­ли коман­да, на­обо­рот, по­сто­ян­но что-то вы­во­дит в про­цес­се ра­бо­ты (на­при­мер, про­ис­хо­дит ком­пи­ля­ция), мож­но точ­но так же от­сле­жи­вать ок­но на пре­кра­щение ак­тив­но­сти, на­жав '''C-a _'''. По умол­чанию со­об­щение бу­дет вы­да­но по­сле три­дца­ти се­кунд непре­рыв­но­го мол­чания.&lt;br /&gt;
&lt;br /&gt;
===Так и за­пи­шем===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Род­ст­вен­ничек|Содержание=Дру­гая про­грам­ма с ана­ло­гич­ным функ­цио­на­лом на­зы­ва­ет­ся ''tmux'' и раз­ра­ба­ты­ва­ет­ся в рам­ках про­ек­та OpenBSD. Во­пре­ки дос­туп­ным в се­ти опи­са­ни­ям, раз­ли­чия ме­ж­ду ни­ми не так ве­ли­ки. Сайт про­ек­та: http://tmux.sourceforge.net.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Ес­ли в про­цес­се ра­бо­ты со ''Screen'' вы за­ме­ти­те, что ка­кие-то кон­крет­ные коман­ды при­хо­дит­ся вво­дить в его команд­ной стро­ке слиш­ком часто, са­мое вре­мя за­нять­ся на­строй­ка­ми.&lt;br /&gt;
&lt;br /&gt;
Поль­зо­ва­тель­ские на­строй­ки ''Screen'' за­да­ют­ся в фай­ле '''.screenrc''' в до­машнем ка­та­ло­ге. Ис­поль­зу­ет­ся он точ­но так же, как, ска­жем, '''.bashrc''' для команд­ной обо­лоч­ки ''Bash'': в него мож­но запи­сы­вать коман­ды, ко­то­рые по умол­чанию (то есть ес­ли вы не от­ка­же­тесь от это­го с по­мо­щью спе­ци­аль­ных оп­ций) вы­полняются при ка­ж­дом стар­те но­вой сес­сии ''Screen''. Здесь применимы лю­бые внут­ренние коман­ды, вклю­чая уже рас­смот­рен­ную ''screen'', соз­даю­­щую но­вые ок­на: с её по­мо­щью вы мо­же­те за­дать ав­то­ма­ти­че­ский за­пуск в от­дель­ных ок­нах про­грамм, ис­поль­зуемых по­сто­ян­но.&lt;br /&gt;
&lt;br /&gt;
Для на­ча­ла мо­же­те ско­пи­ро­вать при­мер фай­ла на­стро­ек, иду­щий в ком­плек­те с про­грам­мой, и от­ре­дак­ти­ро­вать его на свой вкус. Обыч­но он на­зы­ва­ет­ся screenrc и ле­жит в ка­та­ло­ге '''/usr/share/doc/screen/examples'''. Так­же мо­же­те про­смот­реть ва­ри­ант об­ще­систем­но­го фай­ла '''etcscreenrc''' из то­го же ка­та­ло­га.&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рим па­ру по­лез­ных при­ме­ров. Во-пер­вых, это уже упо­мя­ну­тая ко­ман­да ''screen''. Для соз­да­ния при стар­те тех же окон, что мы соз­да­ли вруч­ную в са­мом на­ча­ле, до­бавь­те в файл ко­ман­ды&lt;br /&gt;
&lt;br /&gt;
 screen&lt;br /&gt;
 screen top&lt;br /&gt;
 screen emacs&lt;br /&gt;
&lt;br /&gt;
Впро­чем, ''top'' в ок­не под циф­рой 1 мо­жет не­мно­го ме­шать: удоб­нее иметь в пер­вых ок­нах про­грам­мы, с ко­то­ры­ми вы дей­ст­ви­тель­но ра­бо­тае­те, а не по­гля­ды­вае­те на них вре­мя от вре­ме­ни. По­то­му ото­дви­нем его по­даль­ше, за­дав но­мер ок­на при стар­те:&lt;br /&gt;
&lt;br /&gt;
 screen 9 top&lt;br /&gt;
&lt;br /&gt;
И в за­вер­ше­ние на­зна­чим кла­ви­ши для ко­ман­ды '''resize''':&lt;br /&gt;
&lt;br /&gt;
 bind ( resize -1&lt;br /&gt;
 bind ) resize +1&lt;br /&gt;
&lt;br /&gt;
Те­перь по на­жа­тию '''C-a (''' ак­тив­ная об­ласть бу­дет умень­шать­ся на од­ну по­зи­цию, а по '''C-a )''' – уве­ли­чи­вать­ся.&lt;br /&gt;
&lt;br /&gt;
На этом наш крат­кий экс­курс за­вер­шен. На­де­юсь, вам бу­дет его дос­та­точ­но, что­бы на­чать ра­бо­тать с этим за­ме­ча­тель­ным ин­ст­ру­мен­том и изу­чать его бо­лее де­таль­но уже в про­цес­се, на прак­ти­ке.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>