f.alias别名:
取外号--为了方便命令的调用,取一些易记的名字
alias cls='clear'
alias cdnet='cd /etc/sysconfig/network-scripts'
alias cls ='clear' //等号前后没有空格
/etc/profile //全局生效
/etc/rcbash
~/.profile //当前目录用户下生效
~/.rcbash
g.文件通配符--globbing
ls /var/*.log 查看任意长度的以log结尾的文件
文件通配符和正则表达式
“ * ”不能匹配空白文件,匹配任意长度的任意字符
“ ? ”匹配任意单个字符
符号集合
[ ] [0--9] [a-z] [A-Z] [a-zA-Z] [0-9a--zA-Z] [^] [^0-9]
[:digit:],[:graph:],[:lower:],[:print:],[:punct:],[:punct:],[:space:],[:upper:],[:xdigit:]
[:alpha:],[:alunm:]
h.重定向和管道符
1、重定向:修改程序中指令或数据的输入输出方式。
程序=指令+数据
#!/bin/bash
#
echo "hello world"
#! /bin/bash
#
cut -d ":" -fi /etc/passwd |grep user1 & > /dev/null id user1 &> /dev/null
if[$? -eq 0]:then
echo"user alwardy exists"
exit 10
else
useradd user 1
echo"123456" | passwd --stain "user1" &> /dev/null
echo"useradd successful"
exit 0
fi
数据变量: 可以在脚本中自己定义
可以在外面通过$1,$2,...${10}
环境变量在shell中可以直接调用
标准输入:键盘
标准输出:打印机
文件标识符:fd 0~9 0,1,2
0----代表正常输入
1----代表正常输出
2----错误输入输出
输出: > >>
>覆盖输出重定向,不允许用户进行覆盖重定向
>>追加重定向
输入: < <<
< 将后面的文件交给前面的命令执行
<<同时输入多行数据
注默认情况下,输入输出的文件标识符会被省略,在做错误输入输出的时候文件标识符不能被省略:
*在shell脚本中,我们往往不需要命令本身的输入输出结果,仅仅只需要命令的执行状态,所以需要将命令的所有输出内容重定向到/dev/null
i.管道 - tee
将前一条命令的运行结果,交给另一条命令执行
cut -d ":" -f1 /etc/passwd | grep user 1
【Linux思想:结合小功能,实现大功能】
free -m |grep "^Mem" | cut-d " " -f4
free -m |grep "^Mem" | awk ‘{print$4}’
i.文本处理工具 – wc,cut,sort,uniq
-d 指定分割符
-fn
-fn1,n2,n3
-fn1-n3
--output-delimiter="xxx" //指定输出分割符
示例:cut -d":" -f1,3 --output-delimiter="=" /etc/passwd
【注意:-h --help 短选项和长选项,短选项可以合并,而长选项不能合并】
-l 行
-c 字节大小
-w 单词个数(默认是以空格为分隔符)
示例:ps aux | grep httpd | wc -l
useradd user1 &/dev/null
useradd user1 > /dev/null2 >/dev/null &
useradd user1 1&>2 /dev/null
同上,添加一个user2用户方便测试。
grep "user" /etc/passwd //查看用户user1是否存在
此时,可以查看到添加的user1和user2.
1、过滤user1 和user2以及信息
grep --color=auto"^user" /etc/passwd //过滤用户
2、切割出以user开头的用户名
cut -d":" -f1 /etc/passwd | grep user1 //过滤用户名
删除文件:
1、rm
2、mv 将文件移动到/etc/tmp目录下 30天不被访问自动删除
3、find[范围] -name ab* type f -perm 600-mtime+7/xavgs
-s 套接字/ b块级文件/ d目录文件/ c字符文件/ p管道文件/ l字符链接文件/
motify :最后修改的文件内容,最后修改的属性
过滤所有user用户,并将运行结果交给a.txt执行
j.head的用法
例1:将/etc/passwd 文件前五行内容转为大写后存入f.txt文件
head -5 /etc/passwd | tr [[:lower:]] [[:upper:]] | tee a.txt
例2:将登录至当前系统上的用户信息汇总后的后3位信息转为大写后存到 /tmp/who.out
who | tail -3 |cut -d '' -f1 | tr [[:lower:]] [[:upper:]] | tee a.txt
k.指定输出分隔符
cut -d/ -fn/ -fn1\2\3
例:输出etc/passwd目录中的内容以“=”分割
cut -d ":" -f1,3 --output-delimiter = "=" /etc/passwd