Назад | Перейти на главную страницу

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

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

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

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

[staticsan@walcen files]$ _

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

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

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

[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 $] _

вам будет очень неудобно работать с

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

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

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

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

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

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

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

мне нравиться

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

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

myserver Пн 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 >