1.将公网数据拷贝到本地电脑
rsync '-e ssh -p ssh端口' -vzrtopg --progress 公网账号@公网IP:目标文件 本地存储路径
2.文件拷贝时保持目录结构
cp --parents source destination
3.字符串进行base64编码
$ echo -n "hello" |base64 aGVsbG8=
4.字符串进行base64解码
$ echo -n "aGVsbG8=" |base64 -d hello
5.修改文件内容
sed –i 's#想替换的内容#替换后的内容#g' 文件名
注意:sed not working due tomissing new line character at last line of file
或是使用
perl -pi –e 's#想替换的内容#替换后的内容#g' 文件名
6.直接获取文件大小
$ stat -c "%s" test 442
7.测试udp端口是否正常
a服务端:
nc-ul 161
b服务端:
nc -u a.a.a.a 161
在b端随便输入字符,看是否能够传到a端。
8. ps命令显示完整的command值
$ ps -eo pid|grep 26372|xargs pargs -l
其中26372是你想查找的进程号。
9.xargs cp命令结合
find . -name "test*"|xargs -i cp {} destdir/
10.debug 调试日志
DEBUG=1 function debug() { if [[ $DEBUG ]] then echo ">>> $*" fi } # For any debug message debug "Trying to find config file"
设置DEBUG=1时,才会输出日志
11.用户设置 vs. 默认配置
我们有时会希望在用户没有提供设置参数时能够使用默认值。
1 | URL=${URL:-http: //localhost :8080} |
这一语句检查环境变量 URL ,如果不存在,就将其设置为 localhost
。
12.匹配关键字的前N行/后N行
使用grep 匹配含关键字在内的后1行 After
$ grep -A 1 103 1.txt 103 104
使用grep 匹配含关键字在内的前1行 Before
$ grep -B 1 103 1.txt 102 103
使用grep 匹配含关键字在内的前后1行
$ grep -C 1 103 1.txt 102 103 104
使用sed打印出关键字之后的后1行,但不显示关键字行
$ sed -n ' /103/{n;p;}' 1.txt 104
使用sed打印出关键字之前的前1行,但不显示关键字行
$ sed -n ' /103/{x;p;};h' 1.txt 102
使用awk打印出关键字之后的后1行,但不显示关键字行
$ awk '{if(A)print;A=0}/103/{A=1}' 1.txt 104
使用awk打印出关键字之前的前1行,但不显示关键字行
$ awk '/103/{print A}{A=$0}' 1.txt 102