Кто решил, что стандартные подсказки оболочки в Linux?

В стандартной оболочке Linux есть пара настроек по умолчанию, bash, которые, я думаю, нуждаются в некоторой истории. Этот вопрос о скорейшем.

Приглашение по умолчанию в bash во многих дистрибутивах Linux: [\u@\h \W]\$

Для тех, кто не может разобрать это, для обычного пользователя это выглядит так:

[staticsan@walcen files]$ _

Самая большая проблема с этим заключается в том, что он сообщает только имя текущего каталога. "файлы" могут быть так же легко /var/www/files/ как /home/staticsan/files (и это простой пример). Полный путь имеет больше смысла, поэтому мне приходится менять его каждый раз, когда я устанавливаю новый ящик или создаю нового пользователя.

Так почему же по умолчанию установлено то, что есть?

5 ответов

Решение

Ответ прост - это пережиток времен, когда терминалы были шириной 80 символов. Посмотрите на собственный пример - имя пользователя и хост занимает уже 16 символов. С дополнительными скобками и пробелами уже есть 20 символов, и мы еще не посчитали имя каталога.

И у каталогов тоже могут быть довольно длинные имена. Ваш примерный путь насчитывает 21 символ и имеет только три директории. В этом случае на 80-символьном терминале эта подсказка будет занимать половину ширины экрана.

Конечно, сегодня терминалы шире, и поэтому многие пользователи и дистрибутивы переключаются на более длинные запросы. Но есть и такие, которые используют более узкое приглашение, чтобы оставить пользователю больше места для ввода.

Возможный ответ:

[my_name@my_machine /var/www/html/my_site/my_subdir/another_subdir/yet_another_subdir/and_more_subdirs_yet/see_here/another_subdir/etc $] _

было бы очень неудобно для вас работать с

Я не буду отвечать на вопрос "почему".

Но я дам вам подсказку о том, как изменить поведение по умолчанию для всех ваших будущих учетных записей:

Вы можете изменить файлы по умолчанию (и расположение файлов тоже), используемые при создании пользователей, изменив файлы в /etc/skel/

Поэтому измените переменную PS1 в /etc/skel/.bashrc, и она будет использоваться по умолчанию для новых пользователей.

Мне нравится

PS1="\h \d \t \w\n\u > "

что приводит к:

MyServer Mon Sep 07 07:43:11 /u08
корень>

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

Я вошел в мой /etc/skel и отредактировал приглашение по умолчанию для следующего:

\[\033[33m\][\u@\[\033[1;31m\]\h]\]\033[0m {\W}\n\033[1;34m\]\w\]\033[0m >

это выглядит так:

[user@hosts] {currentdir}
/path/to/current/dir >

плюс цвет - потому что я люблю цвет:)

Но да - "почему" связано с небольшими терминалами, и в настоящее время отсутствует желание изменить статус-кво.

обновить без цвета

[\u@\h] {\W}\n\w >
Другие вопросы по тегам