- sed
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作
sed 的 -i 选项可以直接修改文件内容。举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉,因为文件太大了。而通过 sed 来修改非常方便。
例 1: 正则表达式
/sbin/ifconfig eth0
//eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84
//inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
//UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
/sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'
//192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
^ 表示从头开始匹配,. 表示匹配除换行符 \n 之外的任何单字符, * 表示匹配前面的子表达式零次或多次。
例 2: sed s 替换脚本命令
格式: [address]s/pattern/replacement/flags。常用的 flags 标记如下所示:
关于 ConfigPoeCipher.sh 中 N 可能的解释:www.cnblogs.com/ultranms/p/…
-
$1
$0 就是编写的shell脚本本身的名字;
$1 是在运行shell脚本传的第一个参数;
$2 是在运行shell脚本传的第二个参数;
$? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。
严格来说,Shell 函数中的 return 关键字用来表示函数的退出状态,而不是函数的返回值;Shell 不像其它编程语言,没有专门处理返回值的关键字。
-
cat与grep
cat 文件名| grep XXXX 过滤只显示包含XXXX的行的内容
-
awk
placeholder
-
if [ -f 1]
1、if 条件判断关键字
2、[ ] 语法要求
3、-f 文件比较运算符,如果 filename为常规文件,则为真
4、home 看看是什么路径
5、1的值就是 111
-
unset
Linux unset命令用于删除变量或函数。
-
-ne
shell基本运算符,关系运算符。检测两个数是否不相等,不相等返回 true。
-
declare
声明变量,-r 为将变量设置为只读。声明的变量可以用 unset 来取消。
-
sys.argv
Python 中可以所用 sys 的 sys.argv 来获取命令行参数。例:
$ python3 test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
脚本名: test.py
用列表的方式即可访问参数,例如 sys.argv[1] 表示 arg1。
-
-nr
-n 不输出模式空间的内容到屏幕,即不自动打印 -r,-E 使用扩展正则表达式
-
getfacl
获取目录或文件访问控制列表。语法:
getfacl [-参数] 文件 -
setfacl
设定文件访问控制列表。常用setfacl -m 命令,例如:
setfacl -m u:admin:r,g::--- 文件名。注意和chmod的配合使用。 -
python -c
在shell环境下使用python -c, 可以在命令行中调用 python 代码,实际上 c 就是 command 的意思。
-
ps -ef | grep eds-f
ps命令将某个进程显示出来。-e 显示所有进程,-f 全格式。
-
zgrep -a
-
source、 sh、 bash、 ./ 执行shell基本的区别