linux命令行提示符


1.命令行提示符

回到顶部

用户登录成功后,bash会显示命令行提示符,提示用户输入命令。
一般命令提示符的形式如下所示:

              [peter@initroot ~]$ 
              
peter就是登录用户名,如果登录用户为root,这里就会显示root;
initroot为主机名;
~所在的位置显示当前工作目录的路径,~符号表示用户家目录, 例如peter的家目录为/home/peter,~就表示/home/peter,如果登录用户是root,root的家目录为/root,那么~就表示/root。
总之这里的~就表示当前工作目录为家目录。
这个位置的内容是随着当前工作目录的变化而变化的。例如用cd命令将当前工作目录切换到/etc/目录下,那么~就会变成/etc:
                [peter@initroot ~]$ cd /etc
                [peter@initroot ~]$ cd
              
$为普通用户命令默认的命令提示符。
系统管理员root默认的命令提示符为#。
所以命令提示符号可以表示如下:
[用户名@计算机名 当前工作目录]$
或者:
[root@计算机名 当前工作目录]#
使用exit命令离开Linux:
              [peter@initroot ~]$ exit
              
注意离开系统并不是关机!

2.自定义命令行提示符

回到顶部
你可能会发现不同发型版的命令行提示符样式都不太一样,命令提示符的样式可以通过PS1变量进行设置。
所以不同发行版的默认的命令行提示符会有一些差异。
PS1为shell的变量,可以通过设置该变量值配置命令行提示符的显示方式。
可以使用man bash查看一下PS1的相关说明。我们使用echo命令查看该变量的值:
              [root@initroot ~]# echo $PS1
              [\u@\h \W]\$
            
可以看到PS1变量中有很多转义字符,这些转义字符的含义如下所示:
\d :可显示出星期、月、日的日期格式,如:"Mon Feb 2"
\H :完整的主机名。例如本站的主机名为initroot.com
\h :仅取主机名在第一个小数点之前的名字,如本站主机名www.initroot.com,只取initroot,后面省略
\t :显示时间,为24小时格式的HH:MM:SS
\T :显示时间,为12小时格式的HH:MM:SS
\A :显示时间,为24小时格式的HH:MM
\@ :显示时间,为12小时格式的am/pm样式
\u :目前使用者的账号名称,如peter;
\v :BASH的版本信息,如本站主机中bash版本为4.2.46(1)-release,仅取4.2显示
\w :完整的工作目录名称,由根目录写起的目录名称。家目录以~取代;
\W :利用basename函数取得工作目录名称,所以仅会列出最后一个目录名。
\# :下达的第几个命令。
\$ :提示字符,如果是root,提示字符为#,否则就是$
上面可以看到CentOS默认的PS1值为[\u@\h \W]\$,通过上面的对照就可以得到命令提示符为[root@initroot ~]$了
如果想要类似下面的命令行提示字符:
[root@initroot /root 16:50 +12]#
+12表示第12次下达命令,PS1可以如下设置:
[root@initroot ~]# cd /home
[root@initroot home]# PS1='[\u@\h \w \A +\#]\$ '
[root@initroot /home 19:02 +66]#
设置完PS1变量后,就会发现命令提示符的样式改变了。
如果退出bash后,命令提示符又恢复到之前的样子了。
如果希望设置永久生效,只需要将PS1变量的设置写入bash的配置文件~/.bashrc中即可。

initroot原创,转载请注明出处 www.initroot.com

100次点赞 100次阅读