В стандартной оболочке 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 >