shell基础——常用命令
| #管道
echo password | passwd --stdin root #修改root用户密码
cut
-d"分隔符"
-f列数
-c4-7 截取第4到7字符
grep
-v 取反
-e 执行转义字符
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
-w 完全匹配
-q 静默,不把结果输出
wc
-l 统计行数
-L 统计最长行的字符数
-m 统计总的字符数
sort
-r 反向排序
-n 以数字排序
-f 大小写不敏感
-t 分隔符
-k 接数字代表第几列
sort -n -t":" -k3 /etc/passwd #以uid排序
uniq
-c 计数统计
例:统计/etc/passwd里最后一列/bin/bash,/sbin/nologin等各有多少个
cut -d":" -f7 /etc/passwd | sort | uniq -c
重定向
ping -c 1 10.1.1.1 >/dev/null 2>&1 #把标准输出和错误输出扔到/dev/null设备 ping -c 1 10.1.1.1 &> /dev/null #同上 ping -c 1 10.1.1.1 >& /dev/null #同上
cat passwdfile 123 123 passwd user1 < passwdfile #把passwdfile文件的内容作为标准输入修改密码
EOF
cat >/tmp/file <<EOF 覆盖 EOF #把“覆盖”写入/tmp/file文件里 cat >>/tmp/file <<EOF 追加 EOF #把“追加”加入/tmp/file文件最后一行
#!/bin/bash mysql <<EOF show databases; quit EOF
注:ssh和scp不能用EOF
READ
read -p "终端上显示的字符" n #输入的字符赋值给变量n

浙公网安备 33010602011771号