Сравнение командных оболочек
Поделись знанием:
Он очнулся и долго испуганно оглядывался не в силах понять, где он находится.
– Графиня приказала спросить, дома ли ваше сиятельство? – спросил камердинер.
Но не успел еще Пьер решиться на ответ, который он сделает, как сама графиня в белом, атласном халате, шитом серебром, и в простых волосах (две огромные косы en diademe [в виде диадемы] огибали два раза ее прелестную голову) вошла в комнату спокойно и величественно; только на мраморном несколько выпуклом лбе ее была морщинка гнева. Она с своим всёвыдерживающим спокойствием не стала говорить при камердинере. Она знала о дуэли и пришла говорить о ней. Она дождалась, пока камердинер уставил кофей и вышел. Пьер робко чрез очки посмотрел на нее, и, как заяц, окруженный собаками, прижимая уши, продолжает лежать в виду своих врагов, так и он попробовал продолжать читать: но чувствовал, что это бессмысленно и невозможно и опять робко взглянул на нее. Она не села, и с презрительной улыбкой смотрела на него, ожидая пока выйдет камердинер.
– Это еще что? Что вы наделали, я вас спрашиваю, – сказала она строго.
– Я? что я? – сказал Пьер.
– Вот храбрец отыскался! Ну, отвечайте, что это за дуэль? Что вы хотели этим доказать! Что? Я вас спрашиваю. – Пьер тяжело повернулся на диване, открыл рот, но не мог ответить.
– Коли вы не отвечаете, то я вам скажу… – продолжала Элен. – Вы верите всему, что вам скажут, вам сказали… – Элен засмеялась, – что Долохов мой любовник, – сказала она по французски, с своей грубой точностью речи, выговаривая слово «любовник», как и всякое другое слово, – и вы поверили! Но что же вы этим доказали? Что вы доказали этой дуэлью! То, что вы дурак, que vous etes un sot, [что вы дурак,] так это все знали! К чему это поведет? К тому, чтобы я сделалась посмешищем всей Москвы; к тому, чтобы всякий сказал, что вы в пьяном виде, не помня себя, вызвали на дуэль человека, которого вы без основания ревнуете, – Элен всё более и более возвышала голос и одушевлялась, – который лучше вас во всех отношениях…
– Гм… гм… – мычал Пьер, морщась, не глядя на нее и не шевелясь ни одним членом.
– И почему вы могли поверить, что он мой любовник?… Почему? Потому что я люблю его общество? Ежели бы вы были умнее и приятнее, то я бы предпочитала ваше.
– Не говорите со мной… умоляю, – хрипло прошептал Пьер.
– Отчего мне не говорить! Я могу говорить и смело скажу, что редкая та жена, которая с таким мужем, как вы, не взяла бы себе любовников (des аmants), а я этого не сделала, – сказала она. Пьер хотел что то сказать, взглянул на нее странными глазами, которых выражения она не поняла, и опять лег. Он физически страдал в эту минуту: грудь его стесняло, и он не мог дышать. Он знал, что ему надо что то сделать, чтобы прекратить это страдание, но то, что он хотел сделать, было слишком страшно.
– Нам лучше расстаться, – проговорил он прерывисто.
– Расстаться, извольте, только ежели вы дадите мне состояние, – сказала Элен… Расстаться, вот чем испугали!
Пьер вскочил с дивана и шатаясь бросился к ней.
– Я тебя убью! – закричал он, и схватив со стола мраморную доску, с неизвестной еще ему силой, сделал шаг к ней и замахнулся на нее.
Лицо Элен сделалось страшно: она взвизгнула и отскочила от него. Порода отца сказалась в нем. Пьер почувствовал увлечение и прелесть бешенства. Он бросил доску, разбил ее и, с раскрытыми руками подступая к Элен, закричал: «Вон!!» таким страшным голосом, что во всем доме с ужасом услыхали этот крик. Бог знает, что бы сделал Пьер в эту минуту, ежели бы
Элен не выбежала из комнаты.
Через неделю Пьер выдал жене доверенность на управление всеми великорусскими имениями, что составляло большую половину его состояния, и один уехал в Петербург.
Прошло два месяца после получения известий в Лысых Горах об Аустерлицком сражении и о погибели князя Андрея, и несмотря на все письма через посольство и на все розыски, тело его не было найдено, и его не было в числе пленных. Хуже всего для его родных было то, что оставалась всё таки надежда на то, что он был поднят жителями на поле сражения, и может быть лежал выздоравливающий или умирающий где нибудь один, среди чужих, и не в силах дать о себе вести. В газетах, из которых впервые узнал старый князь об Аустерлицком поражении, было написано, как и всегда, весьма кратко и неопределенно, о том, что русские после блестящих баталий должны были отретироваться и ретираду произвели в совершенном порядке. Старый князь понял из этого официального известия, что наши были разбиты. Через неделю после газеты, принесшей известие об Аустерлицкой битве, пришло письмо Кутузова, который извещал князя об участи, постигшей его сына.
«Ваш сын, в моих глазах, писал Кутузов, с знаменем в руках, впереди полка, пал героем, достойным своего отца и своего отечества. К общему сожалению моему и всей армии, до сих пор неизвестно – жив ли он, или нет. Себя и вас надеждой льщу, что сын ваш жив, ибо в противном случае в числе найденных на поле сражения офицеров, о коих список мне подан через парламентеров, и он бы поименован был».
Получив это известие поздно вечером, когда он был один в. своем кабинете, старый князь, как и обыкновенно, на другой день пошел на свою утреннюю прогулку; но был молчалив с приказчиком, садовником и архитектором и, хотя и был гневен на вид, ничего никому не сказал.
Когда, в обычное время, княжна Марья вошла к нему, он стоял за станком и точил, но, как обыкновенно, не оглянулся на нее.
– А! Княжна Марья! – вдруг сказал он неестественно и бросил стамеску. (Колесо еще вертелось от размаха. Княжна Марья долго помнила этот замирающий скрип колеса, который слился для нее с тем,что последовало.)
Княжна Марья подвинулась к нему, увидала его лицо, и что то вдруг опустилось в ней. Глаза ее перестали видеть ясно. Она по лицу отца, не грустному, не убитому, но злому и неестественно над собой работающему лицу, увидала, что вот, вот над ней повисло и задавит ее страшное несчастие, худшее в жизни, несчастие, еще не испытанное ею, несчастие непоправимое, непостижимое, смерть того, кого любишь.
– Mon pere! Andre? [Отец! Андрей?] – Сказала неграциозная, неловкая княжна с такой невыразимой прелестью печали и самозабвения, что отец не выдержал ее взгляда, и всхлипнув отвернулся.
– Получил известие. В числе пленных нет, в числе убитых нет. Кутузов пишет, – крикнул он пронзительно, как будто желая прогнать княжну этим криком, – убит!
Княжна не упала, с ней не сделалось дурноты. Она была уже бледна, но когда она услыхала эти слова, лицо ее изменилось, и что то просияло в ее лучистых, прекрасных глазах. Как будто радость, высшая радость, независимая от печалей и радостей этого мира, разлилась сверх той сильной печали, которая была в ней. Она забыла весь страх к отцу, подошла к нему, взяла его за руку, потянула к себе и обняла за сухую, жилистую шею.
– Mon pere, – сказала она. – Не отвертывайтесь от меня, будемте плакать вместе.
– Мерзавцы, подлецы! – закричал старик, отстраняя от нее лицо. – Губить армию, губить людей! За что? Поди, поди, скажи Лизе. – Княжна бессильно опустилась в кресло подле отца и заплакала. Она видела теперь брата в ту минуту, как он прощался с ней и с Лизой, с своим нежным и вместе высокомерным видом. Она видела его в ту минуту, как он нежно и насмешливо надевал образок на себя. «Верил ли он? Раскаялся ли он в своем неверии? Там ли он теперь? Там ли, в обители вечного спокойствия и блаженства?» думала она.
– Mon pere, [Отец,] скажите мне, как это было? – спросила она сквозь слезы.
– Иди, иди, убит в сражении, в котором повели убивать русских лучших людей и русскую славу. Идите, княжна Марья. Иди и скажи Лизе. Я приду.
Когда княжна Марья вернулась от отца, маленькая княгиня сидела за работой, и с тем особенным выражением внутреннего и счастливо спокойного взгляда, свойственного только беременным женщинам, посмотрела на княжну Марью. Видно было, что глаза ее не видали княжну Марью, а смотрели вглубь – в себя – во что то счастливое и таинственное, совершающееся в ней.
– Marie, – сказала она, отстраняясь от пялец и переваливаясь назад, – дай сюда твою руку. – Она взяла руку княжны и наложила ее себе на живот.
Глаза ее улыбались ожидая, губка с усиками поднялась, и детски счастливо осталась поднятой.
Княжна Марья стала на колени перед ней, и спрятала лицо в складках платья невестки.
– Вот, вот – слышишь? Мне так странно. И знаешь, Мари, я очень буду любить его, – сказала Лиза, блестящими, счастливыми глазами глядя на золовку. Княжна Марья не могла поднять головы: она плакала.
– Что с тобой, Маша?
– Ничего… так мне грустно стало… грустно об Андрее, – сказала она, отирая слезы о колени невестки. Несколько раз, в продолжение утра, княжна Марья начинала приготавливать невестку, и всякий раз начинала плакать. Слезы эти, которых причину не понимала маленькая княгиня, встревожили ее, как ни мало она была наблюдательна. Она ничего не говорила, но беспокойно оглядывалась, отыскивая чего то. Перед обедом в ее комнату вошел старый князь, которого она всегда боялась, теперь с особенно неспокойным, злым лицом и, ни слова не сказав, вышел. Она посмотрела на княжну Марью, потом задумалась с тем выражением глаз устремленного внутрь себя внимания, которое бывает у беременных женщин, и вдруг заплакала.
– Получили от Андрея что нибудь? – сказала она.
– Нет, ты знаешь, что еще не могло притти известие, но mon реrе беспокоится, и мне страшно.
– Так ничего?
– Ничего, – сказала княжна Марья, лучистыми глазами твердо глядя на невестку. Она решилась не говорить ей и уговорила отца скрыть получение страшного известия от невестки до ее разрешения, которое должно было быть на днях. Княжна Марья и старый князь, каждый по своему, носили и скрывали свое горе. Старый князь не хотел надеяться: он решил, что князь Андрей убит, и не смотря на то, что он послал чиновника в Австрию розыскивать след сына, он заказал ему в Москве памятник, который намерен был поставить в своем саду, и всем говорил, что сын его убит. Он старался не изменяя вести прежний образ жизни, но силы изменяли ему: он меньше ходил, меньше ел, меньше спал, и с каждым днем делался слабее. Княжна Марья надеялась. Она молилась за брата, как за живого и каждую минуту ждала известия о его возвращении.
– Ma bonne amie, [Мой добрый друг,] – сказала маленькая княгиня утром 19 го марта после завтрака, и губка ее с усиками поднялась по старой привычке; но как и во всех не только улыбках, но звуках речей, даже походках в этом доме со дня получения страшного известия была печаль, то и теперь улыбка маленькой княгини, поддавшейся общему настроению, хотя и не знавшей его причины, – была такая, что она еще более напоминала об общей печали.
– Ma bonne amie, je crains que le fruschtique (comme dit Фока – повар) de ce matin ne m'aie pas fait du mal. [Дружочек, боюсь, чтоб от нынешнего фриштика (как называет его повар Фока) мне не было дурно.]
– А что с тобой, моя душа? Ты бледна. Ах, ты очень бледна, – испуганно сказала княжна Марья, своими тяжелыми, мягкими шагами подбегая к невестке.
– Ваше сиятельство, не послать ли за Марьей Богдановной? – сказала одна из бывших тут горничных. (Марья Богдановна была акушерка из уездного города, жившая в Лысых Горах уже другую неделю.)
– И в самом деле, – подхватила княжна Марья, – может быть, точно. Я пойду. Courage, mon ange! [Не бойся, мой ангел.] Она поцеловала Лизу и хотела выйти из комнаты.
– Ах, нет, нет! – И кроме бледности, на лице маленькой княгини выразился детский страх неотвратимого физического страдания.
– Non, c'est l'estomac… dites que c'est l'estomac, dites, Marie, dites…, [Нет это желудок… скажи, Маша, что это желудок…] – и княгиня заплакала детски страдальчески, капризно и даже несколько притворно, ломая свои маленькие ручки. Княжна выбежала из комнаты за Марьей Богдановной.
– Mon Dieu! Mon Dieu! [Боже мой! Боже мой!] Oh! – слышала она сзади себя.
Потирая полные, небольшие, белые руки, ей навстречу, с значительно спокойным лицом, уже шла акушерка.
– Марья Богдановна! Кажется началось, – сказала княжна Марья, испуганно раскрытыми глазами глядя на бабушку.
– Ну и слава Богу, княжна, – не прибавляя шага, сказала Марья Богдановна. – Вам девицам про это знать не следует.
– Но как же из Москвы доктор еще не приехал? – сказала княжна. (По желанию Лизы и князя Андрея к сроку было послано в Москву за акушером, и его ждали каждую минуту.)
– Ничего, княжна, не беспокойтесь, – сказала Марья Богдановна, – и без доктора всё хорошо будет.
Через пять минут княжна из своей комнаты услыхала, что несут что то тяжелое. Она выглянула – официанты несли для чего то в спальню кожаный диван, стоявший в кабинете князя Андрея. На лицах несших людей было что то торжественное и тихое.
Княжна Марья сидела одна в своей комнате, прислушиваясь к звукам дома, изредка отворяя дверь, когда проходили мимо, и приглядываясь к тому, что происходило в коридоре. Несколько женщин тихими шагами проходили туда и оттуда, оглядывались на княжну и отворачивались от нее. Она не смела спрашивать, затворяла дверь, возвращалась к себе, и то садилась в свое кресло, то бралась за молитвенник, то становилась на колена пред киотом. К несчастию и удивлению своему, она чувствовала, что молитва не утишала ее волнения. Вдруг дверь ее комнаты тихо отворилась и на пороге ее показалась повязанная платком ее старая няня Прасковья Савишна, почти никогда, вследствие запрещения князя,не входившая к ней в комнату.
– С тобой, Машенька, пришла посидеть, – сказала няня, – да вот княжовы свечи венчальные перед угодником зажечь принесла, мой ангел, – сказала она вздохнув.
– Ах как я рада, няня.
– Бог милостив, голубка. – Няня зажгла перед киотом обвитые золотом свечи и с чулком села у двери. Княжна Марья взяла книгу и стала читать. Только когда слышались шаги или голоса, княжна испуганно, вопросительно, а няня успокоительно смотрели друг на друга. Во всех концах дома было разлито и владело всеми то же чувство, которое испытывала княжна Марья, сидя в своей комнате. По поверью, что чем меньше людей знает о страданиях родильницы, тем меньше она страдает, все старались притвориться незнающими; никто не говорил об этом, но во всех людях, кроме обычной степенности и почтительности хороших манер, царствовавших в доме князя, видна была одна какая то общая забота, смягченность сердца и сознание чего то великого, непостижимого, совершающегося в эту минуту.
В большой девичьей не слышно было смеха. В официантской все люди сидели и молчали, на готове чего то. На дворне жгли лучины и свечи и не спали. Старый князь, ступая на пятку, ходил по кабинету и послал Тихона к Марье Богдановне спросить: что? – Только скажи: князь приказал спросить что? и приди скажи, что она скажет.
– Доложи князю, что роды начались, – сказала Марья Богдановна, значительно посмотрев на посланного. Тихон пошел и доложил князю.
– Хорошо, – сказал князь, затворяя за собою дверь, и Тихон не слыхал более ни малейшего звука в кабинете. Немного погодя, Тихон вошел в кабинет, как будто для того, чтобы поправить свечи. Увидав, что князь лежал на диване, Тихон посмотрел на князя, на его расстроенное лицо, покачал головой, молча приблизился к нему и, поцеловав его в плечо, вышел, не поправив свечей и не сказав, зачем он приходил. Таинство торжественнейшее в мире продолжало совершаться. Прошел вечер, наступила ночь. И чувство ожидания и смягчения сердечного перед непостижимым не падало, а возвышалось. Никто не спал.
Была одна из тех мартовских ночей, когда зима как будто хочет взять свое и высыпает с отчаянной злобой свои последние снега и бураны. Навстречу немца доктора из Москвы, которого ждали каждую минуту и за которым была выслана подстава на большую дорогу, к повороту на проселок, были высланы верховые с фонарями, чтобы проводить его по ухабам и зажорам.
Княжна Марья уже давно оставила книгу: она сидела молча, устремив лучистые глаза на сморщенное, до малейших подробностей знакомое, лицо няни: на прядку седых волос, выбившуюся из под платка, на висящий мешочек кожи под подбородком.
Няня Савишна, с чулком в руках, тихим голосом рассказывала, сама не слыша и не понимая своих слов, сотни раз рассказанное о том, как покойница княгиня в Кишиневе рожала княжну Марью, с крестьянской бабой молдаванкой, вместо бабушки.
– Бог помилует, никогда дохтура не нужны, – говорила она. Вдруг порыв ветра налег на одну из выставленных рам комнаты (по воле князя всегда с жаворонками выставлялось по одной раме в каждой комнате) и, отбив плохо задвинутую задвижку, затрепал штофной гардиной, и пахнув холодом, снегом, задул свечу. Княжна Марья вздрогнула; няня, положив чулок, подошла к окну и высунувшись стала ловить откинутую раму. Холодный ветер трепал концами ее платка и седыми, выбившимися прядями волос.
– Княжна, матушка, едут по прешпекту кто то! – сказала она, держа раму и не затворяя ее. – С фонарями, должно, дохтур…
Подробнее по этой теме см. Оболочка операционной системы.
Командная оболочка — это компьютерная программа с интерфейсом командной строки операционной системы.
Содержание
Общие характеристики
Обычное окружение (или среда) | Обычно вызывается | Появление | Платформо-независимое | Default login shell in | Default script shell in | Лицензия | Unicode | Перенаправление потоков | Встроенная поддержка CIM/WBEM | Блокирование неподписанных скриптов | доступно как статически связанный, один независимый исполняемый файл | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Bourne shell | 7th Ed. UNIX | sh | 1977 | Нет | 7th Ed. UNIX | 7h Ed. UNIX | AT&T prop.[1] | С SVr4[2] | Да (произвольные файловые дескрипторы) | Нет | Нет | Да |
POSIX shell[3] | POSIX | sh | 1992[4] | Да | N/A | POSIX | N/A | Да, если используется настроенной локалью | Да (произвольные файловые дескрипторы) | Нет | Нет | N/A |
bash (v4.0) | POSIX | bash, sh | 1989[5] | Да | GNU, Mac OS X 10.3+ | GNU, Haiku, Mac OS X |
GPL | Да | Да (произвольные файловые дескрипторы) | Нет | Нет | Да |
csh | POSIX | csh | 1978 | Да | SunOS | ? | BSD | Нет | Да (stdin, out, out+err) | Нет | Нет | Да |
tcsh | POSIX | tcsh, csh | 1983[6] | Да | FreeBSD, ранее Mac OS X | ? | BSD | Да | Да (stdin, out, out+err) | Нет | Нет | Да |
Scsh | POSIX | scsh | 1994 | Да | ? | ? | BSD-style | [[{{{1}}}|?]] | Да | Нет | Нет | Да |
ksh (ksh93t+) | POSIX | ksh | 1983[7][8] | Да | AIX, HP-UX | OpenSolaris | Common Public License | С SVr4[9] | Да (произвольные файловые дескрипторы) | Нет | Нет | Да |
pdksh | POSIX | ksh, sh | 1989 [[{{{1}}}|?]] | Да | OpenBSD[10] | OpenBSD[10] | Общественное достояние | Нет | Да (произвольные файловые дескрипторы) | Нет | Нет | Да |
zsh | POSIX | zsh | 1990 | Да | Grml, GoboLinux | Grml | BSD-подобная | Да | Да (произвольные файловые дескрипторы) | Нет | Нет | Да |
ash | POSIX | sh | 1989 | Да | Minix, BusyBox based systems | FreeBSD, NetBSD, Minix, BusyBox based systems | BSD-style | Да | Да (произвольные файловые дескрипторы | Нет | Нет | Да |
Windows cmd.exe[11] |
Win32, Win64 | cmd | 1993 | Нет | Windows NT, 2000, XP, Server 2003, Vista/Server 2008, Windows 7/Server 2008 R2, Windows 8/Server 2012, Windows 8.1/Server 2012 R2 | Windows NT, 2000, XP, Server 2003, Vista/Server 2008, Windows 7/Server 2008 R2, Windows 8/Server 2012, Windows 8.1/Server 2012 R2 | MS-EULA[12] | Да | Да | Нет | Нет | Да |
TCC (ранее 4NT) | Win32 | ? | 1993 | Нет | ? | ? | Shareware | Да | Да (stdin, out, err) | Нет | Нет | Нет |
Windows PowerShell | .NET | powershell | 2006 | No (3rd party in dev[13]) |
Windows Server 2008, 7, Vista, XP[14] | Windows Server 2008, 7 | MS-EULA[12] или BSD/GPL (PASH) |
Да | Да | Да | Да | Нет |
COMMAND.COM | DOS | command | 1980 | Нет (3rd party available[15]) |
DOS, Windows 95, 98, ME | DOS, Windows 95, 98, ME | MS-EULA[16] или BSD/GPL (свободные клоны) |
Нет | Да (только stdin, out, COMn/LPT) | Нет | Нет | Да |
4DOS | DOS | ? | 1989 | Нет | ? | ? | Лицензия MIT, с ограничениями | Нет | Да (stdin, out, err) | Нет | Нет | Нет |
OS/2 cmd.exe |
OS/2 | cmd | 1987 | Нет | OS/2 | OS/2 | IBM-EULA[17] | Нет | Да (stdin, out, err) | Нет | Нет | [[{{{1}}}|?]] |
rc | Plan 9, POSIX | rc | 1989 | Да | Plan 9, Version 10 Unix | Plan 9, Version 10 Unix | Lucent Public License | Да | Да | Нет | Нет | Да |
BeanShell | Java | bsh | 2005 | Да | ? | ? | LGPL | Да | Да | [[{{{1}}}|?]] | Нет | Да (bsh.jar) |
Python shell | Python | python, ipython | 1991 | Да | ? | ? | Python | Да | Да | [[{{{1}}}|?]] | Нет | Да, на Windows через py2exe |
Ruby shell | Ruby | irb | 1995 | Да | ? | ? | Ruby, BSD | 1.9: Да 1.8: ограниченно |
Да | [[{{{1}}}|?]] | Нет | Да с помощью rubyscript2exe.rb |
VMS DCL[18] | OpenVMS | ? | 1977 [[{{{1}}}|?]] | Нет | VMS | VMS | ? | Нет | Да (присваивание sys$input, sys$output) | Нет | Нет | Нет |
Обычное окружение (или среда) | Обычно вызывается | Introduced | Платформо-независимое | Default login shell in | Default script shell in | Лицензия | Unicode | Перенаправление потоков | Встроенная поддержка CIM/WBEM | Блокирование неподписанных скриптов | доступно как статически связанный, один независимый исполняемый файл |
Интерактивные возможности
Completion | Directory stack (pushd/popd) | Directory History Window (popup) | Implicit Directory Change — If command is dir name changes to it | История команд | History completion | Проверка правописания | Default user prompt[19] | Custom command prompt | Aliases | Binary prefix notation | Job control | Startup scripts | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bourne shell | Нет | Нет | Нет | Нет | Нет | Нет | Нет | $ | Да (переменная: $PS1) | Через функции | Нет | С SVr4 | Да |
POSIX shell | Нет | Нет | Нет | Нет | Да | Нет | Нет | $ | Да (переменная: $PS1) | Да | Нет | Да | Да |
bash (v4.0) | Да (расширяемое) | Да | Нет | Да (опциональное) |
Да | Да | Нет | bash-<version number>$ | Да (переменная: $PS1) | Да | Нет | Да | Да |
csh | Да (через клавишу ESC) | Да | Нет | Да (опциональное) |
Да | Да | Нет | % | Да (переменная: $prompt | Да | Нет | Да | Да |
tcsh | Да (расширяемое) | Да | Нет | Да (опциональное) |
Да | Да | экспериментальное | > | Да (переменная: $prompt | Да | Нет | Да | Да |
Scsh | Нет | Нет | Нет | Нет | Нет | Нет | Нет | > | Нет | Да (macro and procedure definitions) | Да | Да | Да |
ksh (ksh93t+) | Да (расширяемое) | Нет | Нет | Нет | Да | Да | Нет | $ | Да (переменная: $PS1, и больше) | Да | Нет | Да | Да |
pdksh | Да | Нет | Нет | Нет | Да | [[{{{1}}}|?]] | Нет | $ | Да (переменная: $PS1) | Да | Нет | Да | Да |
zsh | Да (расширяемое) | Да | Нет | Да (опционально) |
Да | Да | Да | <hostname>% | Да (переменная: $PS1, и больше) | Да | Нет | Да | Да |
ash | Нет | Да | Нет | Нет | Да | Да | Нет | $ | Да (переменная: $PS1) | Да | Нет | Да | Да |
Windows cmd.exe |
Да (частично) | Да | Нет | Нет | Да (F7) | Да (F8) | Нет | <path>> | Да (переменная окружения: %PROMPT%) | Да ("macros", через doskey) | Нет | Нет | Да |
TCC (ранее 4NT) | Да (частично) | Да | Да | Да | Да | Да | Нет | [<path>] | Да (переменная окружения: %PROMPT) | Да | [[{{{1}}}|?]] | Нет | Да (4start) |
Windows PowerShell | Да (extendable) | Да (all location types)[20] | Да | Нет | Да | Да (F8) | Нет | PS <path>> | Да (функция: prompt) | Да | Да | Да | Да |
COMMAND.COM | Нет | Нет | Нет | Нет | Нет[21][22] | Нет[21][22] | Нет | <path or drive name>> | Да (переменная окружения: %PROMPT%) | Да (используя SET или реестр) | Нет | Нет | Нет[23] |
4DOS | Да | Да | Да | Да | Да | Да | Нет | <path>> | Да (переменная окружения: %PROMPT) | Да | [[{{{1}}}|?]] | Нет | Да (4start) |
OS/2 cmd.exe |
Да | [[{{{1}}}|?]] | Нет | Нет | Да | [[{{{1}}}|?]] | Нет | [<path>] | Да (переменная окружения: %PROMPT%) | Нет | Нет | Нет | Нет |
rc | Да[24] | [[{{{1}}}|?]] | Нет | Нет | Да[24] | Да[24] | Нет | term%, ; | Да (функция: prompt, или переменная: $prompt) | Да (функции) | Нет | Handled by rio | Да |
BeanShell | Да | [[{{{1}}}|?]] | Нет | Нет | Да | [[{{{1}}}|?]] | Нет | bsh % | Да (переменная: bsh.prompt, или метод: getBshPrompt()) | [[{{{1}}}|?]] | [[{{{1}}}|?]] | [[{{{1}}}|?]] | Да (.bshrc) |
Python shell | Да (предоставляется модулем rlcompleter или IPython) | Да (предоставляется IPython) | Нет | Нет | Да | Да (предоставляется IPython) | Нет | >>> | Да (переменная: sys.ps1) | Да (функции) | [[{{{1}}}|?]] | Да | Да ($PYTHONSTARTUP или ipythonrc) |
Ruby shell | Да | Да (передать блок методу Dir.chdir()) | Нет | Нет | Да | Да (with UtilityBelt gem) | Нет | irb(main):001:0> | Да | Да | [[{{{1}}}|?]] | Да | Да (.irbrc) |
VMS DCL | Нет | Нет | Нет | Нет | Да | Нет | Нет | $ | Да (команда SET PROMPT) | Да | Да | Да | Да (login.com) |
Completion | Directory stack (pushd/popd) | Directory History Window (popup) | Implicit Directory Change — If command is dir name changes to it | История команд | History completion | Проверка правописания | Default user prompt[19] | Custom command prompt | Aliases | Binary prefix notation | Job control | Startup scripts |
Программные возможности
Функции | Обработка исключений | Поиск и замена по переменным | Параллельное присваивание | Variadic functions | Аргументы по умолчанию | Именованные параметры | Лямбда-функции | функция eval | Генератор псевдослучайных чисел | Байт-код | |
---|---|---|---|---|---|---|---|---|---|---|---|
Bourne shell | Да с SVr2 | Да (via trap) | Нет | Нет | С SVr2 | Нет | Нет | Нет | Да | Нет | Нет |
POSIX shell | Да | Да (via trap) | Нет | Нет | Да | Нет | Нет | Нет | Да | Нет | Нет |
bash (v4.0) | Да | Да (via trap) | Да (через ${//} синтаксис) | Нет | Да | Да | Нет | Нет | Да | Да ($RANDOM) | Нет |
csh | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет |
tcsh | Нет | Нет | Да (через ${:s//} синтаксис | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет |
Scsh | Да | [[{{{1}}}|?]] | Да (через строковые функции и регулярные выражения) | Нет | Да | Нет | Нет | Да | Да | Да (random-integer, random-real) | Да (компилятор представляет собой Scheme48 виртуальную машину, "scshvm") |
ksh (ksh93t+) | Да | Да (via trap) | Да (через ${//} синтаксис и встроенные команды) | [[{{{1}}}|?]] | Да | Да | Да (для определяемых пользователем "типов") | Нет | Да | Да ($RANDOM) | Да (компилятор называется "shcomp") |
pdksh | Да | Да (via trap) | Нет | [[{{{1}}}|?]] | Да | Да | Нет | Нет | Да | Да ($RANDOM) | Нет |
zsh | Да | Да | Да (через ${:s//} и ${//} синтаксис) | [[{{{1}}}|?]] | Да | Да | Нет | Нет | Да | Да ($RANDOM) | Да (встроенная команда "zcompile") |
ash | Да | Да (via trap) | Нет | Нет | Да | Да | Нет | Нет | Да | Нет | Нет |
Windows cmd.exe |
Да (через "call :label") | Нет | Да (via set %varname:expression syntax) | Нет | Нет | Нет | Нет | Нет | Нет | Да (%random%) | Нет |
TCC (ранее 4NT) | Да | Нет | Да (через функцию %@replace[ ]) | Нет | Нет | Нет | Нет | Нет | Да | Да (функция %@random[ ]) | Нет |
Windows PowerShell | Да | Да | Да (-replace operator) | Да | Да | Да | Да | Да | Да | Да | Да, автоматически |
COMMAND.COM | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
4DOS | Да | Нет | Да (через функцию %@replace[ ]) | Нет | [[{{{1}}}|?]] | Нет | [[{{{1}}}|?]] | Нет | Да | Да (функция %@random[ ]) | Нет |
OS/2 cmd.exe |
Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
rc | Да | Да | Нет | [[{{{1}}}|?]] | Да | Да | [[{{{1}}}|?]] | Нет | Да | Нет | Нет |
BeanShell | Да | Да | [[{{{1}}}|?]] | [[{{{1}}}|?]] | Нет | Нет | Нет | Нет | Да | Да | Да |
Python shell | Да | Да | Да (через строковые методы и регулярные выражения) | Да | Да | Да | Да | Да | Да | Да | Да (стандартный CPython, IronPython или Jython) |
Ruby shell | Да | Да | Да (через строковые функции и регулярные выражения) | Да | Да | Да | Да | Да | Да | Да | Да (NetRuby, JRuby, version 1.9/YARV) |
VMS DCL | Да | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Функции | Обработка исключений | Поиск и замена по переменным | Параллельное присваивание | Variadic functions | Аргументы по умолчаниюs | Именованные параметры | Лямбда-функции | функция eval | Генератор псевдослучайных чисел | Байт-код |
Поиск соответствий строк и имён файлов
Pattern Matching (regular expressions built-in) | Pattern Matching (globbing) | Globbing qualifiers (создание имён файлов по их атрибутам) | Recursive globbing (создание файлов с любого уровня подкаталогов) | |
---|---|---|---|---|
Bourne shell | Нет | Да (*, ?, [...]) | Нет | Нет |
POSIX shell | Нет | Да (*, ?, [...]) | Нет | Нет |
bash (v4.0) | Да | Да (*, ?, [...], {...}) | Нет | Да (**/…) |
csh | Нет | Да | Нет | Нет |
tcsh | Да | Да | Нет | Нет |
Scsh | Да | Да | Нет | Нет |
ksh (ksh93t+) | Да | Да (*, ?, [...]) | Нет | Да (with set -G, no following of symlinks) |
pdksh | Нет | Да | Нет | Нет |
zsh | Да | Да (*, ?, [...], ext'd globbing[25]) |
Да | Да (**/… or ***/… для следования по символическим ссылкам) |
ash | Нет | Да | Нет | Нет |
Windows cmd.exe |
Да (через команду findstr /r) | Да (*, ?) | [[{{{1}}}|?]] | Нет |
TCC (ранее 4NT) | Ограниченная поддержка | Да (*, ?, [...]) | [[{{{1}}}|?]] | Да (через FOR /R) |
Windows PowerShell | Да (полная поддержка регулярных выражений)[26] | Да (*, ?, [...]) | [[{{{1}}}|?]] | [[{{{1}}}|?]] |
COMMAND.COM | Нет | Да (*, ?) | [[{{{1}}}|?]] | Нет |
4DOS | Нет | Да (*, ?, [...]) | [[{{{1}}}|?]] | Да (через FOR /R) |
OS/2 cmd.exe |
Нет | Да (*, ?) | [[{{{1}}}|?]] | [[{{{1}}}|?]] |
rc | Нет | Да | Нет | Нет |
BeanShell | Да | [[{{{1}}}|?]] | [[{{{1}}}|?]] | [[{{{1}}}|?]] |
Python shell | Да | Да | Да (через модуль glob) | Да (через модуль glob) |
Ruby shell | Да | Да (через метод Dir.glob()) | [[{{{1}}}|?]] | Да (через метод Dir.glob()) |
VMS DCL | Нет | Да | Нет | Да (через [SUBDIR…]) |
Межпроцессное взаимодействие
Pipes | Подстановка команд | Подстановка процессов | Подоболочки | TCP/UDP соединения в виде потоков | |
---|---|---|---|---|---|
Bourne shell | байты concurrent |
Да | Нет | Да | Нет |
POSIX shell | байты concurrent |
Да | Нет | Да | Нет |
bash (v4.0) | байты concurrent |
Да | Да (если система поддерживает /dev/fd/<n> или именованные каналы | Да | Да (только клиент) |
csh | байты concurrent |
Да | Нет | Да | Нет |
tcsh | байты concurrent |
Да | Нет | Да | Нет |
Scsh | текст | [[{{{1}}}|?]] | [[{{{1}}}|?]] | [[{{{1}}}|?]] | Да |
ksh (ksh93t+) | байты (может содержать сериализованные объекты, если используется print -C) concurrent |
Да ($(...) and ${<space>...;}) | Да (если система поддерживает /dev/fd/<n> | Да | Да (и поддержка SCTP, client only) |
pdksh | байты concurrent |
Да | Нет | Да | Нет |
zsh | байты concurrent |
Да | Да | Да | Да (клиент и сервер, но только TCP) |
ash | байты concurrent |
Да | Нет | Да | Нет |
Windows cmd.exe |
текст concurrent |
Да (via FOR /F command) | Нет | Да (Backtick: ` in for /f usebackq) | Нет |
TCC (ранее 4NT) | текст | Да (через команду FOR /F) | [[{{{1}}}|?]] | Ограниченно, через %@execstr[ ] и %@exec[ ] | Нет |
Windows PowerShell | объекты concurrent |
Да | Нет | Да | Да |
COMMAND.COM | текст sequential временные файлы |
Нет | Нет | Нет | Нет |
4DOS | текст sequential временные файлы |
Да (через команду FOR /F) | [[{{{1}}}|?]] | Ограниченно, через %@execstr[ ] и %@exec[ ] | Нет |
OS/2 cmd.exe |
текст concurrent |
Нет | Нет | [[{{{1}}}|?]] | Нет |
rc | текст concurrent |
Да | Да (через: <{cmd} если система поддерживает /dev/fd/<n>) | Да | Нет |
BeanShell | не поддерживается | [[{{{1}}}|?]] | [[{{{1}}}|?]] | [[{{{1}}}|?]] | Да |
Python shell | объекты (при использовании IPython+IPipe) | Да | Да (через модуль subprocess) | Да | Да |
Ruby shell | не поддерживается | Да | Да | Да (Backtick: `) | Да |
VMS DCL | текст (через команду PIPE) |
Нет | Нет | Да (spawn) | Да (server TCP only) |
Pipes | Подстановка команд | Подстановка процессов | Подоболочки | TCP/UDP соединения в виде потоков |
Напишите отзыв о статье "Сравнение командных оболочек"
Примечания
- ↑ В настоящее время доступно в соответствии под [minnie.tuhs.org/Archive/Caldera-license.pdf BSD-подобной лицензией] через Unix Heritage Society и другие.
- ↑ SVr4 Bourne Shell включает в себя поддержку многобайтовых символов, позже в libc была добавлена поддержка UNICODE в качестве конкретной многобайтовой кодировки
- ↑ IEEE. 1003.1™ Standard for Information Technology — Portable Operating System Interface (POSIX®): Shell and Utilities, Issue 6.
- ↑ As part of IEEE Std.1003.2-1992 (POSIX.2); integrated into IEEE Std.1003.1 with the 2001 revision.
- ↑ Brian Fox (forwarded by Leonard H. Tower Jr.) (Jun 7 1989). "Bash is in beta release!". gnu.announce. [groups.google.com/group/gnu.announce/msg/a509f48ffb298c35?hl=en (Google Groups)]. Retrieved on Oct 28 2010.
- ↑ Ken Greer (Oct 3 1983). "C shell with command and filename recognition/completion". net.sources. [groups.google.com/group/net.sources/msg/7073bf41cc5da330?hl=en (Google Groups)]. Retrieved on Dec 29 2010.
- ↑ Ron Gomes (Jun 9 1983). "Toronto USENIX Conference Schedule (tentative)". net.usenix. [groups.google.com/group/net.usenix/msg/fa6e1f7de3b63bba?hl=en (Google Groups)]. Retrieved on Dec 29 2010.
- ↑ Guy Harris (Oct 10 1983). "csh question". net.flame. [groups.google.com/group/net.flame/msg/4f868085b65af530?hl=en (Google Groups)]. Retrieved on Dec 29 2010.
- ↑ SVr4 Korn Shell включает в себя поддержку многобайтовых символов, позже в libc была добавлена поддержка UNICODE в качестве конкретной многобайтовой кодировки
- ↑ 1 2 [www.openbsd.org/faq/faq10.html#rootshell Default shell in OpenBSD] is ksh (pdksh).
- ↑ Command extensions enabled, or «cmd /x».
- ↑ 1 2 Windows component — covered by a valid license or Microsoft Windows
- ↑ PASH, a third-party remake, is in development and [pash.sourceforge.net/ almost half-finished]. Activity seems to have [igorshare.wordpress.com/2008/04/06/pash-cross-platform-powershell-is-out-in-the-wild-announcement/#comment-456 stagnated] [launchpad.net/pash/+announcement/1912 early 2009].
- ↑ Windows PowerShell is installed with Windows 7, however, it is an optional download for users of Windows Vista or Windows XP.
- ↑ Доступны сторонние повторные реализации, такие как DosBox, Wine и FreeDOS.
- ↑ MS-DOS and Windows component — covered by a valid license for MS-DOS or Microsoft Windows
- ↑ OS/2 component — covered by a valid license for OS/2
- ↑ [h71000.www7.hp.com/doc/732final/9996/9996pro_contents.html HP OpenVMS DCL Dictionary]. Проверено 23 марта 2009. [www.webcitation.org/6Ak0OGUyG Архивировано из первоисточника 17 сентября 2012].
- ↑ 1 2 Many shells in *nix environments change the root user's prompt to '#'.
- ↑ PowerShell exposes more than just the file system as a navigable system: Windows Registry, functions, aliases, variables, certificate store, credential store etc. The location types are extensible through a provider architecture. Common commands will work with any compliant provider
- ↑ 1 2 Добавлено резидентными программами, такими как DOSKey
- ↑ 1 2 Доступно в DR-DOS через команду «history» в config.sys; см. [www.drdos.com/dosdoc/usergeng/09ugch9.htm#1309 эту ссылку]
- ↑ Ограниченная поддержка через AUTOEXEC.BAT.
- ↑ 1 2 3 Handled by rio, GNU readline, editline или vrl
- ↑ Zsh offers an almost overwhelming variety of [zsh.sourceforge.net/Guide/zshguide05.html#l135 globbing options].
- ↑ PowerShell leverages the full .NET regular expression engine which features named captures, zero-width lookahead/-behind, greedy/non-greedy, character classes, level counting etc.
Литература
- Нейл Ботвик [www.linuxformat.ru/download/93.pdf Сравнение: командные оболочки] (рус.) // Linux Format. — СПб., 2007. — Июнь (№ 6 (93)). — С. [wiki.linuxformat.ru/wiki/LXF93:Сравнение 18-23].
|
Отрывок, характеризующий Сравнение командных оболочек
Утром, когда камердинер, внося кофе, вошел в кабинет, Пьер лежал на отоманке и с раскрытой книгой в руке спал.Он очнулся и долго испуганно оглядывался не в силах понять, где он находится.
– Графиня приказала спросить, дома ли ваше сиятельство? – спросил камердинер.
Но не успел еще Пьер решиться на ответ, который он сделает, как сама графиня в белом, атласном халате, шитом серебром, и в простых волосах (две огромные косы en diademe [в виде диадемы] огибали два раза ее прелестную голову) вошла в комнату спокойно и величественно; только на мраморном несколько выпуклом лбе ее была морщинка гнева. Она с своим всёвыдерживающим спокойствием не стала говорить при камердинере. Она знала о дуэли и пришла говорить о ней. Она дождалась, пока камердинер уставил кофей и вышел. Пьер робко чрез очки посмотрел на нее, и, как заяц, окруженный собаками, прижимая уши, продолжает лежать в виду своих врагов, так и он попробовал продолжать читать: но чувствовал, что это бессмысленно и невозможно и опять робко взглянул на нее. Она не села, и с презрительной улыбкой смотрела на него, ожидая пока выйдет камердинер.
– Это еще что? Что вы наделали, я вас спрашиваю, – сказала она строго.
– Я? что я? – сказал Пьер.
– Вот храбрец отыскался! Ну, отвечайте, что это за дуэль? Что вы хотели этим доказать! Что? Я вас спрашиваю. – Пьер тяжело повернулся на диване, открыл рот, но не мог ответить.
– Коли вы не отвечаете, то я вам скажу… – продолжала Элен. – Вы верите всему, что вам скажут, вам сказали… – Элен засмеялась, – что Долохов мой любовник, – сказала она по французски, с своей грубой точностью речи, выговаривая слово «любовник», как и всякое другое слово, – и вы поверили! Но что же вы этим доказали? Что вы доказали этой дуэлью! То, что вы дурак, que vous etes un sot, [что вы дурак,] так это все знали! К чему это поведет? К тому, чтобы я сделалась посмешищем всей Москвы; к тому, чтобы всякий сказал, что вы в пьяном виде, не помня себя, вызвали на дуэль человека, которого вы без основания ревнуете, – Элен всё более и более возвышала голос и одушевлялась, – который лучше вас во всех отношениях…
– Гм… гм… – мычал Пьер, морщась, не глядя на нее и не шевелясь ни одним членом.
– И почему вы могли поверить, что он мой любовник?… Почему? Потому что я люблю его общество? Ежели бы вы были умнее и приятнее, то я бы предпочитала ваше.
– Не говорите со мной… умоляю, – хрипло прошептал Пьер.
– Отчего мне не говорить! Я могу говорить и смело скажу, что редкая та жена, которая с таким мужем, как вы, не взяла бы себе любовников (des аmants), а я этого не сделала, – сказала она. Пьер хотел что то сказать, взглянул на нее странными глазами, которых выражения она не поняла, и опять лег. Он физически страдал в эту минуту: грудь его стесняло, и он не мог дышать. Он знал, что ему надо что то сделать, чтобы прекратить это страдание, но то, что он хотел сделать, было слишком страшно.
– Нам лучше расстаться, – проговорил он прерывисто.
– Расстаться, извольте, только ежели вы дадите мне состояние, – сказала Элен… Расстаться, вот чем испугали!
Пьер вскочил с дивана и шатаясь бросился к ней.
– Я тебя убью! – закричал он, и схватив со стола мраморную доску, с неизвестной еще ему силой, сделал шаг к ней и замахнулся на нее.
Лицо Элен сделалось страшно: она взвизгнула и отскочила от него. Порода отца сказалась в нем. Пьер почувствовал увлечение и прелесть бешенства. Он бросил доску, разбил ее и, с раскрытыми руками подступая к Элен, закричал: «Вон!!» таким страшным голосом, что во всем доме с ужасом услыхали этот крик. Бог знает, что бы сделал Пьер в эту минуту, ежели бы
Элен не выбежала из комнаты.
Через неделю Пьер выдал жене доверенность на управление всеми великорусскими имениями, что составляло большую половину его состояния, и один уехал в Петербург.
Прошло два месяца после получения известий в Лысых Горах об Аустерлицком сражении и о погибели князя Андрея, и несмотря на все письма через посольство и на все розыски, тело его не было найдено, и его не было в числе пленных. Хуже всего для его родных было то, что оставалась всё таки надежда на то, что он был поднят жителями на поле сражения, и может быть лежал выздоравливающий или умирающий где нибудь один, среди чужих, и не в силах дать о себе вести. В газетах, из которых впервые узнал старый князь об Аустерлицком поражении, было написано, как и всегда, весьма кратко и неопределенно, о том, что русские после блестящих баталий должны были отретироваться и ретираду произвели в совершенном порядке. Старый князь понял из этого официального известия, что наши были разбиты. Через неделю после газеты, принесшей известие об Аустерлицкой битве, пришло письмо Кутузова, который извещал князя об участи, постигшей его сына.
«Ваш сын, в моих глазах, писал Кутузов, с знаменем в руках, впереди полка, пал героем, достойным своего отца и своего отечества. К общему сожалению моему и всей армии, до сих пор неизвестно – жив ли он, или нет. Себя и вас надеждой льщу, что сын ваш жив, ибо в противном случае в числе найденных на поле сражения офицеров, о коих список мне подан через парламентеров, и он бы поименован был».
Получив это известие поздно вечером, когда он был один в. своем кабинете, старый князь, как и обыкновенно, на другой день пошел на свою утреннюю прогулку; но был молчалив с приказчиком, садовником и архитектором и, хотя и был гневен на вид, ничего никому не сказал.
Когда, в обычное время, княжна Марья вошла к нему, он стоял за станком и точил, но, как обыкновенно, не оглянулся на нее.
– А! Княжна Марья! – вдруг сказал он неестественно и бросил стамеску. (Колесо еще вертелось от размаха. Княжна Марья долго помнила этот замирающий скрип колеса, который слился для нее с тем,что последовало.)
Княжна Марья подвинулась к нему, увидала его лицо, и что то вдруг опустилось в ней. Глаза ее перестали видеть ясно. Она по лицу отца, не грустному, не убитому, но злому и неестественно над собой работающему лицу, увидала, что вот, вот над ней повисло и задавит ее страшное несчастие, худшее в жизни, несчастие, еще не испытанное ею, несчастие непоправимое, непостижимое, смерть того, кого любишь.
– Mon pere! Andre? [Отец! Андрей?] – Сказала неграциозная, неловкая княжна с такой невыразимой прелестью печали и самозабвения, что отец не выдержал ее взгляда, и всхлипнув отвернулся.
– Получил известие. В числе пленных нет, в числе убитых нет. Кутузов пишет, – крикнул он пронзительно, как будто желая прогнать княжну этим криком, – убит!
Княжна не упала, с ней не сделалось дурноты. Она была уже бледна, но когда она услыхала эти слова, лицо ее изменилось, и что то просияло в ее лучистых, прекрасных глазах. Как будто радость, высшая радость, независимая от печалей и радостей этого мира, разлилась сверх той сильной печали, которая была в ней. Она забыла весь страх к отцу, подошла к нему, взяла его за руку, потянула к себе и обняла за сухую, жилистую шею.
– Mon pere, – сказала она. – Не отвертывайтесь от меня, будемте плакать вместе.
– Мерзавцы, подлецы! – закричал старик, отстраняя от нее лицо. – Губить армию, губить людей! За что? Поди, поди, скажи Лизе. – Княжна бессильно опустилась в кресло подле отца и заплакала. Она видела теперь брата в ту минуту, как он прощался с ней и с Лизой, с своим нежным и вместе высокомерным видом. Она видела его в ту минуту, как он нежно и насмешливо надевал образок на себя. «Верил ли он? Раскаялся ли он в своем неверии? Там ли он теперь? Там ли, в обители вечного спокойствия и блаженства?» думала она.
– Mon pere, [Отец,] скажите мне, как это было? – спросила она сквозь слезы.
– Иди, иди, убит в сражении, в котором повели убивать русских лучших людей и русскую славу. Идите, княжна Марья. Иди и скажи Лизе. Я приду.
Когда княжна Марья вернулась от отца, маленькая княгиня сидела за работой, и с тем особенным выражением внутреннего и счастливо спокойного взгляда, свойственного только беременным женщинам, посмотрела на княжну Марью. Видно было, что глаза ее не видали княжну Марью, а смотрели вглубь – в себя – во что то счастливое и таинственное, совершающееся в ней.
– Marie, – сказала она, отстраняясь от пялец и переваливаясь назад, – дай сюда твою руку. – Она взяла руку княжны и наложила ее себе на живот.
Глаза ее улыбались ожидая, губка с усиками поднялась, и детски счастливо осталась поднятой.
Княжна Марья стала на колени перед ней, и спрятала лицо в складках платья невестки.
– Вот, вот – слышишь? Мне так странно. И знаешь, Мари, я очень буду любить его, – сказала Лиза, блестящими, счастливыми глазами глядя на золовку. Княжна Марья не могла поднять головы: она плакала.
– Что с тобой, Маша?
– Ничего… так мне грустно стало… грустно об Андрее, – сказала она, отирая слезы о колени невестки. Несколько раз, в продолжение утра, княжна Марья начинала приготавливать невестку, и всякий раз начинала плакать. Слезы эти, которых причину не понимала маленькая княгиня, встревожили ее, как ни мало она была наблюдательна. Она ничего не говорила, но беспокойно оглядывалась, отыскивая чего то. Перед обедом в ее комнату вошел старый князь, которого она всегда боялась, теперь с особенно неспокойным, злым лицом и, ни слова не сказав, вышел. Она посмотрела на княжну Марью, потом задумалась с тем выражением глаз устремленного внутрь себя внимания, которое бывает у беременных женщин, и вдруг заплакала.
– Получили от Андрея что нибудь? – сказала она.
– Нет, ты знаешь, что еще не могло притти известие, но mon реrе беспокоится, и мне страшно.
– Так ничего?
– Ничего, – сказала княжна Марья, лучистыми глазами твердо глядя на невестку. Она решилась не говорить ей и уговорила отца скрыть получение страшного известия от невестки до ее разрешения, которое должно было быть на днях. Княжна Марья и старый князь, каждый по своему, носили и скрывали свое горе. Старый князь не хотел надеяться: он решил, что князь Андрей убит, и не смотря на то, что он послал чиновника в Австрию розыскивать след сына, он заказал ему в Москве памятник, который намерен был поставить в своем саду, и всем говорил, что сын его убит. Он старался не изменяя вести прежний образ жизни, но силы изменяли ему: он меньше ходил, меньше ел, меньше спал, и с каждым днем делался слабее. Княжна Марья надеялась. Она молилась за брата, как за живого и каждую минуту ждала известия о его возвращении.
– Ma bonne amie, [Мой добрый друг,] – сказала маленькая княгиня утром 19 го марта после завтрака, и губка ее с усиками поднялась по старой привычке; но как и во всех не только улыбках, но звуках речей, даже походках в этом доме со дня получения страшного известия была печаль, то и теперь улыбка маленькой княгини, поддавшейся общему настроению, хотя и не знавшей его причины, – была такая, что она еще более напоминала об общей печали.
– Ma bonne amie, je crains que le fruschtique (comme dit Фока – повар) de ce matin ne m'aie pas fait du mal. [Дружочек, боюсь, чтоб от нынешнего фриштика (как называет его повар Фока) мне не было дурно.]
– А что с тобой, моя душа? Ты бледна. Ах, ты очень бледна, – испуганно сказала княжна Марья, своими тяжелыми, мягкими шагами подбегая к невестке.
– Ваше сиятельство, не послать ли за Марьей Богдановной? – сказала одна из бывших тут горничных. (Марья Богдановна была акушерка из уездного города, жившая в Лысых Горах уже другую неделю.)
– И в самом деле, – подхватила княжна Марья, – может быть, точно. Я пойду. Courage, mon ange! [Не бойся, мой ангел.] Она поцеловала Лизу и хотела выйти из комнаты.
– Ах, нет, нет! – И кроме бледности, на лице маленькой княгини выразился детский страх неотвратимого физического страдания.
– Non, c'est l'estomac… dites que c'est l'estomac, dites, Marie, dites…, [Нет это желудок… скажи, Маша, что это желудок…] – и княгиня заплакала детски страдальчески, капризно и даже несколько притворно, ломая свои маленькие ручки. Княжна выбежала из комнаты за Марьей Богдановной.
– Mon Dieu! Mon Dieu! [Боже мой! Боже мой!] Oh! – слышала она сзади себя.
Потирая полные, небольшие, белые руки, ей навстречу, с значительно спокойным лицом, уже шла акушерка.
– Марья Богдановна! Кажется началось, – сказала княжна Марья, испуганно раскрытыми глазами глядя на бабушку.
– Ну и слава Богу, княжна, – не прибавляя шага, сказала Марья Богдановна. – Вам девицам про это знать не следует.
– Но как же из Москвы доктор еще не приехал? – сказала княжна. (По желанию Лизы и князя Андрея к сроку было послано в Москву за акушером, и его ждали каждую минуту.)
– Ничего, княжна, не беспокойтесь, – сказала Марья Богдановна, – и без доктора всё хорошо будет.
Через пять минут княжна из своей комнаты услыхала, что несут что то тяжелое. Она выглянула – официанты несли для чего то в спальню кожаный диван, стоявший в кабинете князя Андрея. На лицах несших людей было что то торжественное и тихое.
Княжна Марья сидела одна в своей комнате, прислушиваясь к звукам дома, изредка отворяя дверь, когда проходили мимо, и приглядываясь к тому, что происходило в коридоре. Несколько женщин тихими шагами проходили туда и оттуда, оглядывались на княжну и отворачивались от нее. Она не смела спрашивать, затворяла дверь, возвращалась к себе, и то садилась в свое кресло, то бралась за молитвенник, то становилась на колена пред киотом. К несчастию и удивлению своему, она чувствовала, что молитва не утишала ее волнения. Вдруг дверь ее комнаты тихо отворилась и на пороге ее показалась повязанная платком ее старая няня Прасковья Савишна, почти никогда, вследствие запрещения князя,не входившая к ней в комнату.
– С тобой, Машенька, пришла посидеть, – сказала няня, – да вот княжовы свечи венчальные перед угодником зажечь принесла, мой ангел, – сказала она вздохнув.
– Ах как я рада, няня.
– Бог милостив, голубка. – Няня зажгла перед киотом обвитые золотом свечи и с чулком села у двери. Княжна Марья взяла книгу и стала читать. Только когда слышались шаги или голоса, княжна испуганно, вопросительно, а няня успокоительно смотрели друг на друга. Во всех концах дома было разлито и владело всеми то же чувство, которое испытывала княжна Марья, сидя в своей комнате. По поверью, что чем меньше людей знает о страданиях родильницы, тем меньше она страдает, все старались притвориться незнающими; никто не говорил об этом, но во всех людях, кроме обычной степенности и почтительности хороших манер, царствовавших в доме князя, видна была одна какая то общая забота, смягченность сердца и сознание чего то великого, непостижимого, совершающегося в эту минуту.
В большой девичьей не слышно было смеха. В официантской все люди сидели и молчали, на готове чего то. На дворне жгли лучины и свечи и не спали. Старый князь, ступая на пятку, ходил по кабинету и послал Тихона к Марье Богдановне спросить: что? – Только скажи: князь приказал спросить что? и приди скажи, что она скажет.
– Доложи князю, что роды начались, – сказала Марья Богдановна, значительно посмотрев на посланного. Тихон пошел и доложил князю.
– Хорошо, – сказал князь, затворяя за собою дверь, и Тихон не слыхал более ни малейшего звука в кабинете. Немного погодя, Тихон вошел в кабинет, как будто для того, чтобы поправить свечи. Увидав, что князь лежал на диване, Тихон посмотрел на князя, на его расстроенное лицо, покачал головой, молча приблизился к нему и, поцеловав его в плечо, вышел, не поправив свечей и не сказав, зачем он приходил. Таинство торжественнейшее в мире продолжало совершаться. Прошел вечер, наступила ночь. И чувство ожидания и смягчения сердечного перед непостижимым не падало, а возвышалось. Никто не спал.
Была одна из тех мартовских ночей, когда зима как будто хочет взять свое и высыпает с отчаянной злобой свои последние снега и бураны. Навстречу немца доктора из Москвы, которого ждали каждую минуту и за которым была выслана подстава на большую дорогу, к повороту на проселок, были высланы верховые с фонарями, чтобы проводить его по ухабам и зажорам.
Княжна Марья уже давно оставила книгу: она сидела молча, устремив лучистые глаза на сморщенное, до малейших подробностей знакомое, лицо няни: на прядку седых волос, выбившуюся из под платка, на висящий мешочек кожи под подбородком.
Няня Савишна, с чулком в руках, тихим голосом рассказывала, сама не слыша и не понимая своих слов, сотни раз рассказанное о том, как покойница княгиня в Кишиневе рожала княжну Марью, с крестьянской бабой молдаванкой, вместо бабушки.
– Бог помилует, никогда дохтура не нужны, – говорила она. Вдруг порыв ветра налег на одну из выставленных рам комнаты (по воле князя всегда с жаворонками выставлялось по одной раме в каждой комнате) и, отбив плохо задвинутую задвижку, затрепал штофной гардиной, и пахнув холодом, снегом, задул свечу. Княжна Марья вздрогнула; няня, положив чулок, подошла к окну и высунувшись стала ловить откинутую раму. Холодный ветер трепал концами ее платка и седыми, выбившимися прядями волос.
– Княжна, матушка, едут по прешпекту кто то! – сказала она, держа раму и не затворяя ее. – С фонарями, должно, дохтур…