Почему мы не видим единственный дефис от 0$ на оболочке входа в систему, вызванной с '-вход в систему' опция?

Когда люди спрашивают это, я всегда говорю им:

Позвольте кому-то еще разместить Ваш DNS

Серьезно. У Вас нет сетевой стабильности, которую имеют профессионалы, и для DNS устойчивость является ключевой для счастливой жизни. Это не слабость, чтобы признать, что кто-то еще лучше в нем, чем можно быть. У них есть что-то, что Вы не делаете: эпическое дублирование.

Большинство регистраторов предлагает бесплатную сбалансированную с загрузки и избыточную услугу сервера имен, разделяет по нескольким серверам в нескольких местоположениях. То же идет для веб-хостов и существуют даже бесплатные сервисы там, которые довольно достойны.

3
11.05.2014, 20:11
2 ответа
[1120411]Ведущая тире в имени процесса (в [1121020]argv[0][1121021], если быть точным) помещается туда процессом, который вызывает оболочку - [1121022]login[1121023] или какой-нибудь эквивалент. Он сообщает программе-оболочке, что она должна действовать как оболочка для входа в систему (читайте [1121024].profile[1121025], и т.д.). Программа оболочки может действовать в качестве оболочки для входа в систему при других обстоятельствах (например, bash и zsh действуют в качестве оболочки для входа в систему, если они прошли опцию командной строки [1121026]-l[1121027]).[12197]Чтобы ответить на ваши вопросы:[12198]Роль [1121294]-[112121295] заключается в том, чтобы сказать оболочке, чтобы она вела себя как оболочка для входа в систему. Для bash передача [1121296]--login[1121297] в командной строке эквивалентна.[12199] Вы можете увидеть [1121298] роль [1121412]-[12200] на bash вызывается с опцией [1121300] --login[1121301] - он читает [1121302]~/.profile[1121303] и так далее. Вы не увидите [1121304]-bash[1121305], если bash был вызван как [1121306]bash --login[1121307], а не как [1121308]-bash[1121309], потому что bash не был вызван как [1121310]-bash[1121311].[12201]Типичные оболочки не позволяют выбирать аргумент нуля, это должно быть имя команды. С помощью zsh можно сделать [1121312]ARGV0=-bash bash[1121313], а с помощью [1121314]ksh93[1121315], [1121316]bash[1121317] или [1121318]zsh[1121319] можно сделать [1121320](exec -a -bash bash)[1121321]. В [1121322]мкш[1121323] или [1121324]zsh[1121325] можно сделать [1121326]хэш -- -bash=/bin/bash; -bash[1121327]. Нельзя делать что-то вроде [1121328]ln -s /bin/bash ./-bash; ./-bash[1121329], т.к. весь [1121330]argv[0][1121331] должен начинаться с [1121332]-[1121333]. Можно сделать [1121334]PATH=:$PATH; -bash[1121335], но тогда это имеет тот неприятный побочный эффект добавления [1121336]"[1121337] перед [1121338]$PATH[1121339].[12202]Да.[12203]Смотрите также [1121036]Разница между Логин Шеллом и Не Логин Шеллом? [12204]
5
27.01.2020, 21:12
Question 1 and 2

cd /var/folders
sudo rm -rf *
As part from [1120759]man bash[1120760] that you give in your question, the man page said [1120761]or[1120762]. Таким образом, у вас есть два способа запуска оболочки входа в систему:

первый символ нулевого аргумента - [1121246]-[1121247].

начинается с опции --login.

и два способа не зависят друг от друга. Оболочка, первый символ нулевого аргумента которой равен [1120767]-

  • должна[1120770] быть оболочкой логина. Но оболочка, первый символ нулевого аргумента которой не является [1120771]-[1120772], все равно может быть оболочкой логина или нет. Это оболочка логина при вызове с помощью [1120773]--login[1120774].
  • Другой способ проверки оболочки логина:
  • Вопрос 3
  • Простой способ:

Вопрос 4

AFAIK, [1120779]zsh[1120780] и [1120781]csh[1120782] в данном случае тот же самый, что и [1120783]bash[1120784].[1120217].

2
27.01.2020, 21:12

Теги

Похожие вопросы