0%

Linux终端字体上色与常用命令

1. Linux终端字体加上颜色

  • echo -e "\033[32;49;1m [DONE] \033[39;49;0m"

  • 输出结果:[DONE]


文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例:

  • echo -e "\033[44;37;5m ME \033[0m COOL"

以上命令设置背景成为蓝色,前景白色,闪烁光标,输出字符“ME”,然后重新设置屏幕到> 缺省设置,输出字符 “COOL”。“e”是命令 echo 的一个可选项,它用于激活特殊字符的> 解析器。“\033”引导非常规字符序列。“m”意味着设置属性然后结束非常规字符序列,这> 个例子里真正有效的字符是 “44;37;5” 和“0”。
修改“44;37;5”可以生成不同颜色的组合,数值和编码的前后顺序没有关系。可以选择的编码如下所示:

编码颜色/动作编码颜色/动作
0重新设置属性到缺省设置34设置蓝色前景
1设置粗体35设置紫色前景
2设置一半亮度(模拟彩色显示器的颜色)36设置青色前景
4设置下划线(模拟彩色显示器的颜色)37设置白色前景
5设置闪烁38在缺省的前景颜色上设置下划线
7设置反向图象39在缺省的前景颜色上关闭下划线
22设置一般密度40设置黑色背景
24关闭下划线41设置红色背景
25关闭闪烁42设置绿色背景
27关闭反向图象43设置棕色背景
30设置黑色前景44设置蓝色背景
31设置红色前景45设置紫色背景
32设置绿色前景46设置青色背景
33设置棕色前景47设置白色背景
49设置缺省黑色背景\033[2J清除屏幕
\033[0q关闭所有的键盘指示灯\033[1q设置“滚动锁定”指示灯 (Scroll Lock)
\033[2q设置“数值锁定”指示灯 (Num Lock)\033[3q设置“大写锁定”指示灯 (Caps Lock)
\033[15:40H把关闭移动到第15行,40列\007发蜂鸣生beep

2. RedHat的字体和背景颜色的改变方法:

  • 命令:PS1="[\e[32;1m\u@\h \W]\\$"

    export PS1="[\e[32;1m\u@\h \W]\\$" 两者的区别请查看环境变量的相关资料
    解释:
    \e[32;1m:这就是控制字体和背景颜色的转义字符,30~37是字体颜色、40~47是背景颜色
    例子中的32;1m数字的位置是可以对调的如\e[1;32m,如果是在X环境下可以更换一下1的范围0~10,可能有的没用处:0或者不写(\e [0;32m或\e[;32m)显示浅颜色,1:显示高亮 4:加下划线…..如果改后的效果不好,但是又还原不了,那就不写m前面的数字,如\e[32;m,或者直接注销再登陆

    \u \h \W:这是一些转义字符,下面详细解释:

    \d :代表日期,格式为weekday month date,例如:”Mon Aug 1”

    \H :完整的主机名称。例如:我的机器名称为:l,则这个名称就是 l

    \h :仅取主机的第一个名字,如上例,则为 l 则被省略

    \t :显示时间为24小时格式,如:HH:MM:SS

    \T :显示时间为12小时格式

    \A :显示时间为24小时格式:HH:MM

    \u :当前用户的账号名称

    \v :BASH的版本信息

    \w :完整的工作目录名称。家目录会以 ~代替

    \W :利用basename取得工作目录名称,所以只会列出最后一个目录

    \# :下达的第几个命令

    \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

    \n :新建一行

    字体并不局限于一个颜色,可以有多个颜色:

    PS1=”[\e[32;1m\u@\e[35;1m\h \e[31;1m\W]\$”

    以上两个命令在注销后再登陆就失效了,用下面方法使其永久生效:

    vim /etc/profile

    在“export PATH …..”下面添加一行:export PS1="[\e[32;1m\u@\h \W]\\\$"

    注销再登陆,就成功了,如果没生效,使用source /etc/profile 命令试试,或者直接重启机器。

3. 常见Command

Command主要用途Command主要用途
basename去掉文件名的目录和后缀dirname截取给定路径的目录部分
swap on开启交换分区swap off关闭交换分区
ezfsck检查ext分区系统resizezfs调整ext分区大小
fsck检查、修复 linux 文件系统dmesg显示开机信息
partprobe更新内核分区表信息mpstat各个CPU的状态统计
chkconfig管理Linux开机启动项vmstat虚拟内存统计
iostat系统IO信息sar全面获取cpu、内存等历史活动信息(安装出错?)
ipcs用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息ipcrm删除消息队列、共享内存、信号灯
ltrace跟踪进程的库函数调用,显现出哪个库函数被程序调用strace跟踪程序的每个系统调用
ansible基于ssh的自动化部署pstreetree一样打印进程树

4. 说明:

1. basename

Usage: basename NAME [SUFFIX]
or: basename OPTION… NAME…

PATHbasenamedirname
“/usr/lib”“/usr”“lib”
“/usr/““/““usr”
“usr”“.”“usr”
“/““/““/“
“.”“.”“.”
“..”“.”“..”

2. dirname:

Usage: dirname [OPTION] NAME…

1
2
3
4
5
#!/bin/sh  
# 跳转到脚本所在目录
cd $(dirname "$0") || exit 1
# 剩下的部分
# 可以跳转到脚本所在目录

root@l:~$ dirname /usr/bin/sort

/usr/bin

root@l:~$ dirname stdio.h

.

root@l:~$ dirname /usr/bin

/usr

root@l:~$ dirname /usr/bin/

/usr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root@l:~$ pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/*} 
/usr/bin /usr/bin
root@l:~$ pathname=/usr/bin/; echo $(dirname $pathname) ${pathname%/*}
/usr /usr/bin
#与上一个路径名相比少了一个斜杠
root@l:~$ pathname=/usr/bin; echo $(dirname $pathname) ${pathname%/*}
/usr /usr
root@l:~$ pathname=/usr/; echo $(dirname $pathname) ${pathname%/*}
/ /usr
root@l:~$ pathname=/usr; echo $(dirname $pathname) ${pathname%/*}
/
root@l:~$ pathname=/; echo $(dirname $pathname) ${pathname%/*}
/
root@l:~$ pathname=stdio.h; echo $(dirname $pathname) ${pathname%/*}
. stdio.h

3. ipcs

Usage: ipcs [ -m] [ -q] [ -s] [ -S] [ -P] [ -1] [ -a | -b -c -o -p -r -t] [ -T] [ -C CoreFile] [ -N Kernel ] [ -X ] [ -@ [ WparName ] ]

ipcs 命令往标准输出写入一些关于活动进程间通信工具的信息。如果没有指定标志,ipcs 命令用简短格式写入一些关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。

File描述
/usr/lib/boot/unix指定系统内核映像
/dev/mem指定内存
/etc/passwd指定用户名
/etc/group指定组名
/usr/include/sys/ipc.h包含头文件

4. ipcrm

Usage: ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] …

参数:

-M 以shmkey删除共享内存

-m 以shmid删除共享内存

-Q 以msgkey删除消息队列

-q 以msgid删除消息队列

-S 以semkey删除信号灯

-s 以semid删除信号灯

5. ltrace & strace

相同点:

  • ltrace与strace都可以指定PID,即对运行中的程序进行跟踪. ltrace -p PID与strace -p PID
  • ltrace与strace都可以跟踪程序fork或clone子进程.ltrace是用-f参数,而strace是用-f(fork/clone)和-F(vfork).

不同点:

  • strace在跟踪系统调用的时候不需要动态库,而ltrace是根据动态库来分析程序运行的。所以ltrace也只能跟踪动态库,不能跟踪静态库。事实上我们用ltrace和strace都可以发现程序在哪个系统调用时发生了性能瓶径。ltrace用-T,而strace也用-T.
-------------本文结束再接再厉-------------

本文标题:Linux终端字体上色与常用命令

文章作者:IITII

发布时间:2018年12月16日 - 21:12

最后更新:2019年02月15日 - 10:02

原始链接:https://iitii.github.io/2018/12/16/Linux%E7%BB%88%E7%AB%AF%E5%AD%97%E4%BD%93%E4%B8%8A%E8%89%B2%E4%B8%8E%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。