[英]How to make FreeBSD show full path of current shell?
无论shell目前处于什么目录,控制台和SSH上的FreeBSD 10.1的默认用户提示始终$
。如何将其更改为user@machine /full/path/to/current/directory $
或类似的完整路径?
FreeBSD中的默认用户shell是Bourne shell /bin/sh
。 您可以通过设置PS1变量来更改提示。 在命令行上执行此操作:
export PS1="`whoami`@\H:\w\$ "
要在每次登录时自动完成,您应该更改主目录.shrc
的配置文件。
.shrc
文件已经有了你可以使用的替代提示 - 你只需要取消注释这些行:
# set prompt: ``username@hostname$ ''
PS1="`whoami`@`hostname | sed 's/\..*//'`"
case `id -u` in
0) PS1="${PS1}# ";;
*) PS1="${PS1}$ ";;
esac
如果你想拥有该目录,你也可以像我一样。 用以下内容替换上面的所有行:
PS1="`whoami`@\H:\w\$ "
由于"\\$"
设置$或#(用户/ root)的提示,因此不需要案例结构。
Bourne Shell非常强大,FreeBSD变体中提供了命令行编辑功能。 我建议你坚持下去,因为你写的任何脚本都是高度可移植的。 请注意,FreeBSD中的Bourne shell比Linux上更强大。 这部分是为什么bash在Linux上占主导地位的原因。 FreeBSD上的默认shell更易于使用。 如果你已经习惯了Linux,你可以改为使用bash来感受更多的感觉。 如果没有 - 那么我会花时间在FreeBSD上学习Bourne。 如果你长大了 - 那么我会看一下像“zsh”这样的东西。 但如果你的水平是在计算“PS1”,我强烈建议坚持默认值!
你的问题有几点评论,我觉得这是一个不好的建议:
export PS1='\\u@\\H: \\W $'
是一个bash-ism。 这仅适用于使用bash shell的情况。 FreeBSD Bourne没有"\\u\u0026quot;
。 更新:
有几个原因你不应该更改root用户的shell:
没必要! 最佳做法是永远不要以root用户身份以交互方式登录。 如果你这样做 - 你做错了。 如果您发现自己以普通用户身份登录并仍希望以交互方式使用root用户 - 您仍然可以使用sudo -s
或su root -c "/path/to/shell"
以多种方式轻松完成此操作。 养成使用root 权限而不是root 用户的好习惯。 大多数时候你应该使用sudo
而不是交互式root shell。
可预测性。 您可能不是唯一的管理员。 或者你可能会遭受痛苦 。
单用户模式。 如果您的系统出现问题,您最终只能安装/bin
。 在这些情况下,将shell静态链接并放置在/bin
非常重要。 第三方shell通常放在/usr/local/bin
(并且动态链接)中,这可能不会在您的紧急情况下安装。
出于这个原因,您有toor
用户。 它与root
具有相同的uid
和gid
。 您可以将shell设置为您对toor
用户的心愿,并拥有一个干净的root
帐户。 简单地使用su - toor
而不是su -
(或者仅为su
创建和别名)。
参考文献:
如何在不同的shell中设置PS1提示符: http : //www.understudy.net/custom.html
不使用C shell的十大理由: http : //www.grymoire.com/unix/CshTop10.txt
Csh编程被认为是有害的: http : //www.faqs.org/faqs/unix-faq/shell/csh-whynot/
Bourne Shell的PS1变量手册页https://www.freebsd.org/cgi/man.cgi?query=sh
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.