Linux 基础操作和命令
2018-10-04 本文已影响0人
一杉风雨
定时任务
# 语法
<min> <hour> <day_in_month> <month> <day_in_week> <command>
# 例
0 */5 * * * command 每5个小时
30 8 * * * command 每天8:30
0 0 1,15 * * command 每月1号15号
15 * * * * command 每小时的第15分
路由
# 语法
## 显示路由信息
route -ne
## 增加/删除默认路由
route <add|del> default gw <gw>
## 增加/删除路由
route <add|del> <-net|-host> <ip> netmask <netmask> [gw <gw>|dev <dev>|reject]
# 例
route add default gw 192.168.1.11
route add -net 114.144.144.0 netmask 255.255.255.0 gw 192.168.1.11
route add -net 114.144.144.0 netmask 255.255.255.0 dev eth0
route add -net 114.144.144.0 netmask 255.255.255.0 reject
route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1 dev eth0
# Linux打开转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# Linux打开SNAT
iptables -t nat -I POSTROUTING [-s sourceIp] [-d destationIp] [-o interface] <-j MASQUERADE | -j SNAT >
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE # <--例
系统
- 查看进程启动时间点
ps -p <pid> -o lstart
- Echo
echo -n "...." # 输出不换行
echo -e "...." # 处理特殊字符, 如\a发出警告声
- 后台任务
# 置于后台
command & # 将任务放入后台并执行
control + z # 将当前任务放入后台并暂停
# 查看后台
jobs -l # 查看后台任务
jobs -r -l # 查看后台正在运行的任务
jobs -s -l # 查看后台正在暂停的任务
# 信号处理
fg %<jobNumber> # 将一个后台任务置于前台执行,%可省略
bg %<jobNumber> # 将一个后台任务置于后台执行,%可省略
kill -<signale> %<jobNumber> # 对一个后台任务发送信号
- 档案属性
umask # 查看默认档案权限掩码
umask -S # 查看默认档案
lsattr # 查看隐藏属性
chattr # 修改隐藏属性
chattr <+|-> <attr> <file> # <--例
a 档案只能增加数据,不能被删除和修改数据。(仅root用户可设定)
i 档案只能被读取,不可被删除,改名,设定链接和写入数据。(仅root用户可设定)
S 当修改档案时,该变更会同步写入磁盘,正常则为异步写入磁盘。
c 自动压缩档案,读取时自动解压,存储时自动压缩。
d 当dump程序执行时,避免被dump备份。
A 当存取档案时,访问时间(atime)将不会修改,可避免I/O较慢的机器过度存取磁盘。
字符处理
- sed: 常用于按行处理数据
sed -n '2,5p' <file> # 打印二到五行
sed -i '2d' <file> # 删除第二行
sed -i '2,5d' <file> # 删除第二到第五行
sed -i '2,$d' <file> # 删除第二到末行
sed -i '2 i\\value' <file> # 第二行前插入一行value
sed -i '2 a\\value' <file> # 第二行后插入一行value
sed -i '2,5 c\\value' <file> # 第二到五行替换为value
sed -i 's/oldValue/newValue/g' <file> # 替换oldValue为newValue
sed -i 's/#.*$//g' <file> # 删除#开头的行
sed -i '/^$/d' <file> # 删除空白行
- awk: 常用于对一行数据分段处理
# 语法 commands为shell脚本
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
# 内置变量
NF # 字段数
NR # 当前行数
FS # 当前分隔符
# 例
echo 'f1, f2, f3\n f4, f5, f6' | aws -F',' '{print $1}'
echo 'f1, f2, f3\n f4, f5, f6' | awk -F',' '{print NR, FS, NF, $1, $NF}'
- cut: 切分一行数据
cut -d 'e' -f 1, 2 # 按e为分隔符切分,取出第1,2字段
- 其它
sort # 排序
uniq # 去重
col # Tab转空格