下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >编程语言 >Linux Bash 提示符的一些骚操作

Linux Bash 提示符的一些骚操作

希尔瓦娜斯发布于 2017-08-07 09:58查看:1184回复:2

        当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符:

1502070826843995.jpg

        你知道命令行提示符其实是可以自己设置添加许多非常有用的信息的吗?在这篇文章中我就会教你如何自定义自己的 Bash 命令行提示符,想看的话就接着看吧~

      如何设置 Bash 提示符

        Bash 提示符是通过环境变量 PS1 (提示符字符串 1Prompt String 1) 来设置的,它用于交互式 shell 提示符。当然如果你需要更多的输入才能完成一个 Bash 命令时,PS2 环境变量就是用来设置多行提示符的:

1502070868120585.jpg

      在哪里设置 PS1 的值?

    PS1 就是一个普通的环境变量,系统默认值设置在 /etc/bashrc 中,在我的系统中,默认提示符通过以下命令来设置的:

1502070903729850.jpg


        它判断 PS1 是否是系统的默认值 \\s-\\v$ ,如果是的话则将值设置为 [\\u@\\h \\W]\\$。(LCTT 译注:注意命令中用 \\ 做了转义。)

        但如果你想要自定义提示符,不应该修改 /etc/bashrc ,而是应该在你的主目录下将自定义命令加到 .bashrc 文件中。

     上面提到的 \\u\\h\\W\\s 和 \\v 是什么意思?

        在 man bash 中的 PROMPTING 章节中,你能够找到所有 PS1 和 PS2 相关的特殊字符的描述,以下是一些比较常用的:

        \\u:用户名

        \\h:短主机名

        \\W:当前你所在的目录的名称(basename),~ 表示你的主目录

        \\s:Shell 名字(bash 或者 sh,取决于你的 Shell 的名字是什么)    

        \\v:Shell 的版本号

      还有哪些特殊的字符串可以用在提示符当中

        除了上面这些,还有很多有用的字符串可以用在提示符当中:

    \\d:将日期扩展成 “Tue Jun 27” 这种格式

    \\D{fmt}:允许自定义日期格式——可通过 man strftime 来获得更多信息

    \\D{%c}:获得本地化的日期和时间

    \\n:换行(参考下面的多行提示符)

    \\w:显示当前工作目录的完整路径

    \\H:当前工作机器的完整主机名

        除了以上这些,你还可以在 Bash 的 man 页面的 PROMPTING 部分找到更多的特殊字符和它的用处。

     多行提示符

        如果你的提示符过长(比如说你想包括 \\H 、\\w 或完整的日期时间时 ),想将提示符切成两行,可以使用 \\n 将提示符切断成两行显示,比如下面的多行的例子会在第一行显示日期、时间和当前工作目录,第二行显示用户名和主机名:

1502071011975485.jpg

      还能再好玩点吗?

        人们偶尔也想将提示符变成彩色的。虽然我觉得彩色提示符让人分心、易怒,但是也许你很喜欢。如果我们想将日期变成红色的,目录变成青蓝色,用户名搞一个黄色背景,你可以这样做:

1502071049777377.png

1502071069897258.png

        你可以在 Bash prompt HOWTO 这里找到更多的颜色代码,甚至可以让字符反相和闪烁!我不知道为什么地球人会有这种想法,但是你可以这么干!

        所以你最喜欢的自定义提示符是什么样子的呢?有没有让你抓狂的自定义提示符呢?请在评论里告诉我吧~


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

版主推荐

    共有2条评论

    • 课课家运营团队
    • 酸酸~甜甜
    • Mr ken
    • YUI
    • cappuccino
    • mr jack
    • IT宅男
    • Mright
    • 课课家技术团队1
    • 选择版块:

    • 标题:

    • 内容

    • 验证码:

    • 标题:

    • 内容

    • 选择版块:

    移动帖子x

    移动到: