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