Почему мои клавиши со стрелками не работают в sh?

info wget говорит:

 `no_proxy'
     This variable should contain a comma-separated list of domain
     extensions proxy should _not_ be used for.  For instance, if the
     value of `no_proxy' is `.mit.edu', proxy will not be used to
     retrieve documents from MIT.

Таким образом, переменная должна содержать список доменов, не диапазоны IP. Необходимо будет настроить надлежащие локальные псевдонимы для локальных машин в /etc/hosts файл (файлы).

Кроме этого, примите во внимание, что установка переменной среды не гарантирует, что прокси будет или не использоваться. Это - просто информация, которая может использоваться программами, которые поддерживают его.

16
30.09.2011, 06:33
3 ответа

/bin/sh (тире) оболочка является POSIX совместимая, уменьшенная оболочка функциональности, чтобы быть более эффективен (меньший) для начальной загрузки системы. Как часть этого, не включены история и усовершенствованное редактирование командной строки. Это более подходит для строгих сценариев POSIX, чем как интерактивная оболочка. Идея состоит в том, что оболочка 'входа в систему' была бы ударом по умолчанию, но система начальной загрузки будет использовать тире. Страница справочника в Ubuntu 11.04 показывает, что тире имеет историю и редактирование командной строки, но программа не имеет этих функций. Смотрите на размер основных исполняемых файлов.

$ ls -l /bin/*ash /bin/sh
-rwxr-xr-x 1 root root 822420 Mar 31 15:26 /bin/bash
-rwxr-xr-x 1 root root  83848 Nov 15  2010 /bin/dash
lrwxrwxrwx 1 root root      4 May 17 21:15 /bin/rbash -> bash
lrwxrwxrwx 1 root root      4 May 17 21:15 /bin/sh -> dash
$ strings /bin/bash | egrep -ci 'fc|hist'
181
$ strings /bin/dash | egrep -ci 'fs|hist'
1

Попытайтесь привыкнуть к выполнению $SHELL или bash вместо просто sh.

15
27.01.2020, 19:48

sh не имеет никакой истории. По крайней мере, мой не делает:

server$ sh
\h$ history 
sh: history: not found
\h$ fc
sh: fc: not found
\h$ exit
server$ type sh
sh is hashed (/bin/sh)
server$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Jun  1 18:43 /bin/sh -> dash*
0
27.01.2020, 19:48
  • 1
    Действительно? Согласно спецификации IEEE это делает: pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html –  jasonwryan 30.09.2011, 09:24
  • 2
    @jasonwryan, Вы заметите, что что-либо связанное с историей или режимом редактирования строки отмечено с в той спецификации, что означает, что это является дополнительным (для соответствия POSIX, не соответствия Unix). –  Stéphane Chazelas 14.11.2012, 00:45
  • 3
    @StéphaneChazelas - возможно, верный, но jasonwryan определенно корректно так или иначе. Вот другая ссылка. И кроме того - Вы относящийся к $FCEDIT или $HISTFILE или даже просто fc? Я думал, что это, по крайней мере, было обязательно - и рендеринг $PS1 \!. Я мог быть неправ относительно спецификации POSIX - но они все работают в dash и имейте в течение многих лет. –  mikeserv 10.06.2014, 22:29
  • 4
    @mikeserv, не уверенный, что Вы имеете в виду, но повторить, весь из fc, $FCEDIT, $HISTFILE, $PS1 являются дополнительными в POSIX (отмеченный с для "Пользовательской Мобильности"). sh из Unix совместимые системы будут иметь их, поскольку требуется для соответствия Unix (среди прочего, Unix также требует этого echo -e выводы -e<LF>). Но если система/оболочка только требует соответствия POSIX, то это не должно реализовывать их. Для Debian ash, это может быть включено во время компиляции с - с - libedit, как уже упомянуто, но Debian, по крайней мере, не делает. –  Stéphane Chazelas 10.06.2014, 22:51
  • 5
    @StéphaneChazelas - большое спасибо. dash Я использую, как упаковано для Arch, поэтому решительно отличается, чем Debian, я беру его. Это - ценная информация. Странный это не находится в man. –  mikeserv 11.06.2014, 00:20

В случае, если /bin/sh Тире, он должен быть настроен --with-libedit перед компиляцией. Иначе можно все еще работать set -o vi в оболочке, но это не делает ничего полезного.

8
27.01.2020, 19:48

Теги

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