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的自动化部署 | pstree | 像tree一样打印进程树 |
4. 说明:
1. basename
Usage: basename NAME [SUFFIX]
or: basename OPTION… NAME…
PATH | basename | dirname |
---|---|---|
“/usr/lib” | “/usr” | “lib” |
“/usr/“ | “/“ | “usr” |
“usr” | “.” | “usr” |
“/“ | “/“ | “/“ |
“.” | “.” | “.” |
“..” | “.” | “..” |
2. dirname:
Usage: dirname [OPTION] NAME…
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 | root@l:~$ pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/*} |
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.