例子 以打印一个蓝色斜体的”hello, world“为例: C printf(“\033[3;34mhello, world\033[0m\n”); python print “\033[3;34mhello, world\033[0m” Shell echo -e ‘\033[3;34mhello, world\033[0m’ 格式 \033[Para0{;Para1…}mYOUR_TEXT\033[0m \033[Para0{;Para1…}m 表示转义开始 *033[0m 作为转义结束 Para0(1,2…) 参数可以为多个,比如上述例子*,3表示为斜体,34表示蓝色 YOUR_TEXT 在例子中就是hello, world 参数 Linux中通过man console_codes命令可查看详细的参数描述*这里写一下常用的格式和颜色: 常用格式: 参数代码 描述 0 重置所有格式 1 粗体(高亮) 2 暗色 3 斜体 4 下划线 5 闪烁 常用颜色: (前景色为30+颜色代码;背景色为40+颜色代码。) 颜色 代码 前景 背景 黑 0 30 40 红 […]

写shell脚本处理文本的时候,经常用到awk来配合shell命令。但是awk的大括号中和shell貌似是两个世界。本文只介绍最容易理解的方法(作者水平有限,复杂的以后可能补充),来实现awk对shell变量的使用和更改。 如果我们将awk看成变成语言中的函数,或者一个封装,那么要使用或者修改外部的变量,其实就是输入参数和输出返回值的问题。对于使用shell变量,其实就是shell变量怎么作为参数传入awk的问题;而对于awk给shell变量赋值,可以看成awk输出返回值的问题。 awk中使用shell变量 awk传入参数的选项是-v [awk_var=$SHELL_VAR],应该加在’ ‘包围的awk主体程序之前。 示例脚本1: #!/bin/bash VAR1=”~~~!” echo hello, world|awk -v awk_var1=$VAR1 ‘{ print $1, “shell”, $2, awk_var1 }’ 输出: hello, shell world ~~~! awk给shell变量赋值

我发现。。shell脚本貌似不像C或者Python一样自带注释语法,不过拐弯抹角还是有一些方法的。。囧 方法1:利用逻辑语句 利用了逻辑语句的执行顺序,缺点是注释中不能出现括号,否则会报错! ###逻辑或前如果为真,后边的语句块自动不执行 #1 :||{ 注释内容… } #2 ((1))||{ 注释内容… } #3 true||{ 注释内容… } ###逻辑与前如果为假,后边的语句块自动不执行 #4 ((0))&&{ 注释内容… } <!–more–> #5 false&&{ 注释内容… } 方法2:利用Here Documents语法 利用了shell脚本的here documents的语法,注意<<后边是自己命名的,做到前后呼应即可,如下为两例,但是我测试的几种命名只有例1中的方法没有什么缺点,在例二或者其他命名中,如果出现反单引号`则可能会报错! #e.g. 1 :<<” 注释内容… ” #e.g. 2 :<< BLOCK 注释内容… BLOCK 方法3:利用sed命令 如果是使用vim编辑,利用sed语法,vim中的normal模式下: #全文注释: :0,$ s/^/#/ #m到n行注释: :m,n s/^/#/ #全文去注释: :0,$ s/^#// #m到n行去注释: :m,n s/^#// […]

这是我学习sed的一个总结,只限于自己和比我水平低(就是没接触过)的同学看。。。除了参考资料,讲解也包括很大成分的个人理解,如果发现错误,希望大家可以提醒我及时更正,谢谢~! sed概述 sed是一个流编辑器,更准确的说是一个行编辑器,就是sed处理文本处理命令用于逐行处理文本中的文字。 这是sed命令的格式: sed [options] [commands] [input-file] 就是说sed命令一般由“sed”、选项、命令和待处理文本文件组成。 举个例子: 对于文本test.txt: this is the first line. the 2nd line. hello, this is the 3rd line. 命令sed -n ‘/hello/p’ test 就会产生以下输出: hello, this is the 3rd line. 其中-n选项表示屏蔽sed默认输出。单引号中/hello/表示匹配带有”hello”的行p代表打印所匹配的行。 sed执行的流程 读取一行到模式空间缓冲区

常用git,做个记录,方便查询,利人利己,如有错误,欢迎指正~ 创建仓库 git init 创建仓库 git clone xxx.git(远程库的地址) 克隆一个远程仓库 git remote add origin xxx.git(远程库的地址) 指定一个远程仓库地址,命名为origin 提交更改 git rm file_name 删除文件 git add file_name 添加文件到仓库暂存区(index) git commit -m “xxx” 提交更改给仓库 git commit -am “xxx” 上两条的终极合体,添加所有已追踪文件的更改到暂存区,并提交 git log 显示提交日志 git status 显示当前仓库状态 git push [-f] [remote_name] [branch_name] 上传到远程仓库,加-f表示强制覆盖远程仓库的上传(要谨慎)