002_bash操作技巧 - llj2kh/studynote GitHub Wiki

bash命令操作技巧

1 bash中的快捷键

  • ctrl+ a 光标移动到行首

  • ctrl+ e 光标移动到行尾

  • ctrl+ u 光标所在位置删除到行首

  • ctrl+ k 光标所在位置删除到行尾

  • ctrl+ r 调出最近一条含有关键字的命令

  • ctrl+ 左|右 光标移动以单词为单位

  • ctrl+ c 撤销以输入的命令

  • ctrl+ d 关闭当前环境

  • ctrl+ s 锁定当前的终端

  • ctrl+ q 解除对终端的锁定

2 "$"的使用,好像在终端不常使用

  • $?: 上一条命令的执行结果,0表示成功。

  • $_ 上一条命令的最后一个变量/命令

3 "!" 的使用

  • !n 执行history里第n条命令

  • !! 执行上一个命令,等同于!-1

  • !cp:n1-n2 使用cp命令的第n1-n2个参数

  • !cp:$ 使用cp命令的最后一个参数

  • !:2 使用上一个命令的第二个参数

4 magic-space

  • 编辑 /etc/bash.bashrc 文件,末尾添加 bind Space:magic-space 即可将带有 ! 号的命令进行替换。

5 色彩使用

Ctrl键:\033

[ 控制字符和颜色代码之间的分隔符;

所有的颜色代码都应该使用m结尾

颜色代码:

0:表示关闭颜色显示属性,恢复为黑白色;

1:加粗显示文本字符;

4:为文本字符添加下划线标识;

5:使文本字符闪烁;

7:将文本字符的背景颜色和前景颜色交换;

8:将文本字符的背景颜色设置为与前景色相同;



30-39:设置文本字符的前景色,38,39为保留暂时未被使用;

   30为灰色;31为红色;32为绿色;33是黄色;34为蓝色;35为紫色;36为靛蓝色;37为白色;38,39保留但是默认为黑色;

40-49:设置文本字符的背景色,48,49为保留暂时未被使用;

   40为黑色背景;41为红色背景;42为绿色背景;43为黄色背景;44为蓝色背景;45为紫色背景;46为靛蓝色背景;47为灰色背景;

注意:此类控制字符和颜色代码必须放置在echo -e模式中,否则Ctrl不生效,颜色后面必须加m;

例子:

#字体色30-37
echo -e "\033[30m黑色字\033[0m"
echo -e "\033[31m红色字\033[0m"
echo -e "\033[32m绿色字\033[0m"
echo -e "\033[33m黄色字\033[0m"
echo -e "\033[34m蓝色字\033[0m"
echo -e "\033[35m紫色字\033[0m"
echo -e "\033[36m天蓝字\033[0m"
echo -e "\033[37m白色字\033[0m"

#字背景颜色范围:40-47
echo -e "\033[40;37m黑底白字\033[0m"
echo -e "\033[41;30m红底黑字\033[0m"
echo -e "\033[42;34m绿底蓝字\033[0m"
echo -e "\033[43;34m黄底蓝字\033[0m"
echo -e "\033[44;30m蓝底黑字\033[0m"
echo -e "\033[45;30m紫底黑字\033[0m"
echo -e "\033[46;30m天蓝底黑字\033[0m"
echo -e "\033[47;34m白底蓝字\033[0m"
#.....


#控制选项说明
#\033[0m关闭所有属性
#\033[1m设置高亮度
#\033[4m下划线
echo -e "\033[4;31m下划线红字\033[0m"
#闪烁
echo -e "\033[5;34m红字在闪烁\033[0m"
#反影
echo -e "\033[8m消隐\033[0m "

5.1 PS1 设置

在PS1中设置字符颜色的格式为:[\e[F;Bm],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。

PS1="[\e[37;40m][[\e[36;40m]\u@\h [\e[36;40m]\w[\e[0m]]\$ " PS1的常用参数以及含义:   \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"   \H :完整的主机名称   \h :仅取主机名中的第一个名字   \t :显示时间为24小时格式,如:HH:MM:SS   \T :显示时间为12小时格式   \A :显示时间为24小时格式:HH:MM   \u :当前用户的账号名称   \v :BASH的版本信息   \w :完整的工作目录名称   \W :利用basename取得工作目录名称,只显示最后一个目录名   # :下达的第几个命令   $ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $