linux shell - msforest/notebook GitHub Wiki
# 替换
sed '2s/dog/cat/' data.txt # 只替换第二行的dog
sed '2,3s/dog/cat/' data.txt # 只替换第二、三行的dog
sed '2,$s/dog/cat/' data.txt # 替换第二行到最后一行的dog
sed '/word/s/dog/cat/' data.txt # 替换包含word单词的行中的dog
# 命令组合
sed '3,${s/dog/cat/ s/firfox/chrome/}' data.txt
# 删除
sed '1d' data.txt # 删除第一行;前面没有数字时,表示删除所有行;
sed '1,2d' data.txt # 删除第一、二行;
sed '2,$d' data.txt # 删除第二行到最后一行;
sed '/num/d' data.txt # 删除包含num的行
# 插入
sed 'i\insert word' data.txt # 在第一行前插入'insert word'字符
sed 'a\insert word' data.txt # 在第一行后插入'insert word'字符
# 修改
sed '3c\this is change line' data.txt # 替换第三行字符
sed '/word/c\this is change line'* * * * * *
min hour day month week cmd
0-59 0-23 1-31 1-12 0-6一次性调度
[root@localhost ~]# at 5pm+3 days # 三天后的下午 5 点锺执行
at> /bin/ls
at> <EOT>
job 7 at 2013-01-08 17:00可通过 atq 查看列表,atrm 删除调度
batch 命令用于在指定时间,当系统不繁忙时执行任务,用法与 at 相似。
ssh-copy-id root@ip # 发送本地ssh文件到服务器,第一次需要输入密码,以后就可以不用输密码
ssh root@ip "ls ~" # 在服务器上执行命令- 本地端口转发
# 本地主机103执行命令,本地主机9906端口转发到101服务器的3306端口
ssh -fN -L 9906:192.168.58.101:3306 user@192.168.58.101
# -f指定ssh在执行命令前转入后台运行,-L指定远程主机的登录名,-N告诉ssh无需执行命令,只进行端口转发- 远端端口转发
# 远端主机103执行命令,103服务器的9906端口的所有数据都会被转发到101服务器的3306端口上
ssh -fN -R 9906:192.168.58.101:3306 192.168.58.103