博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux bash技巧_Bash提示技巧和窍门
阅读量:2525 次
发布时间:2019-05-11

本文共 2028 字,大约阅读时间需要 6 分钟。

linux bash技巧

在Linux中启动终端的任何人都熟悉默认的Bash提示符:

[ user @ $host ~ ] $

但是您知道这是完全可定制的并且可以包含一些非常有用的信息吗? 这里有一些隐藏的宝藏,可用于自定义Bash提示。

Bash提示设置如何?

Bash提示由环境变量PS1 (提示字符串1)设置,该变量用于交互式shell提示。 还有一个PS2变量,当需要更多输入来完成Bash命令时使用该变量。

[ dneary      
@ dhcp-
41 -
137 ~
] $
export
PS1 =
"[Linux Rulez]$ "
[ Linux Rulez
]
export
PS2 =
"... "
[ Linux Rulez
]
if
true ;
then
...
echo
"Success!"
...
fi
Success
!

PS1的值在哪里设置?

PS1是常规环境变量。

系统默认值在/ etc / bashrc中设置 。 在我的系统上,默认提示设置为此行:

[ " $PS1 " = "\\s-\ \v \\ \$ " ] && PS1 = "[\u@\h \W]\ \$ "

这将测试PS1的值是否为\ s- \ v $ (系统默认值),如果是,则将PS1的值设置为[\ u @ \ h \ W] \\ $

但是,如果要查看自定义提示,则不应编辑/ etc / bashrc 。 您应该将其添加到目录中的.bashrc

\ u,\ h,\ W,\ s和\ v是什么意思?

man bashPROMPTING部分中,您可以找到PS1PS2中所有特殊字符的描述。 以下是默认选项:

  • \ u :用户名
  • \ h :简短的主机名
  • \ W :当前工作目录的基本名称( 表示主目录,当前目录的末尾在其他位置)
  • \ s :Shell名称( bashsh ,取决于shell的调用方式)
  • \ v :shell的版本

提示中还可以使用其他哪些特殊字符串?

有许多有用的特殊字符串。

  • \ d :扩展为“ Tue Jun 27”格式的日期
  • \ D {fmt} :允许自定义日期格式-有关可用选项,请参见man strftime
  • \ D {%c} :给出当前语言环境的日期和时间
  • \ n :包括新行(请参见下面的多行提示)
  • \ w :当前工作目录的完整路径
  • \ H :当前计算机的完整主机名
  • \! :历史编号-您可以通过使用shell历史事件指示符以其历史编号运行任何先前的命令 然后是您感兴趣的特定命令的编号。(使用Linux历史记录是另一篇教程...)

还有许多其他特殊字符-您可以在Bash手册页PROMPTING部分中看到完整列表。

多行提示

如果使用更长的提示(例如,如果包含\ H\ w或完整的日期时间 ),则可能需要将内容分成两行。 这是多行提示符的示例,其中日期,时间和当前工作目录位于一行, 用户名@hostname位于第二行:

PS1 = "\D{%c} \w \n [\u@\H]$ "

我还能做其他有趣的事情吗?

人们偶尔要做的一件事就是创建丰富多彩的提示。 当我发现它们令人讨厌和分散注意力时,您可能会喜欢它们。 例如,要将上面的日期时间更改为以红色文本显示,以青色显示目录,并在黄色背景上显示您的用户名,您可以尝试以下操作:

PS1 =      
"\[\e[31m\]\D{%c}\[\e[0m\]     \[\e[36m\]\w\[\e[0m\] \n [\[\e[1;43m\]\u\[\e[0m\]@\H]$ "

要对此进行剖析:

  • \ [.. \]声明一些非打印字符
  • \ e [..是转义字符。 接下来是特殊的转义序列,用于更改终端中的颜色(或其他特征)
  • 31m为红色文字( 41m为红色背景)
  • 36m为青色文字
  • 1; 43m声明黄色背景( 1; 33m将为黄色文本)
  • \ [\ e [0m \]最后将颜色重置为终端默认值

您可以在找到更多颜色和提示。 您甚至可以使文本反转或闪烁! 我不知道为什么地球上会有人想要这样做。 但是你可以!

您最喜欢的Bash提示自定义项是什么? 您看到哪些让您发疯的? 在评论中让我知道。

翻译自:

linux bash技巧

转载地址:http://hyjzd.baihongyu.com/

你可能感兴趣的文章
BZOJ 3231: [Sdoi2008]递归数列
查看>>
java之Calendar类
查看>>
bzoj 1019: [SHOI2008]汉诺塔
查看>>
赛码网算法: 格子游戏
查看>>
【深度学习系列】PaddlePaddle可视化之VisualDL
查看>>
基于公网smtp协议实现邮件服务器
查看>>
【共读Primer】8.[2.1] 基本内置类型(2) Page32
查看>>
springboot缓存注解——@Cacheable和@CacheConfig
查看>>
MySQL 处理重复数据
查看>>
关于typedef的用法总结(转)
查看>>
hibernate could not resolve property
查看>>
【strtok()】——分割字符串
查看>>
RabbitMQ安装
查看>>
[试题]Python大赛部分答案
查看>>
浅谈单调队列优化dp
查看>>
关于springMVC的日志管理
查看>>
第一次react-native项目实践要点总结
查看>>
python字符串及基本运算
查看>>
汉诺塔算法
查看>>
html 替换元素
查看>>