[toc]
一、变量
“”可替换原义,‘’为直义
``和()同为先计算的意思 uname -r
=$(uname -r)
查看:$echo xxx
赋值:$xxx=xxx
扩展变量使用:myname="$PATH":/home/bin
取消变量:unset xxx
删除变量部分内容: {varible# | % [*]xxx}
- # 从左向右删除最短的 ##从左向右删除最长的
- %从右向左
变量的替换: $var{str-expr}
- 若str没有设置,则var=expr,其他var=str
二、数据流重定向
2.1 输出
> 覆盖 >>累加 1正确 2错误
\#find /home -name .barshrc >list 2>&1
2.2 输入
<拷贝另一个文件 <<输入x即停
cat > catfile < ~/.bashrc | cat > catfile << "eof"
三、执行符与管道
3.1 连续执行符号
正确执行 ?=0 错误执行?!=0
遇到?=0执行,||则相反
ls /temp/abc || mkdir /temp/abc && touch /temp/abc/hehe
#创建abc并创建hehe
3.2 选取命令
cut 切分
cut -d 'x' -f field
分割x 取第field个
cut -c a-b
取一行数据中第a到第b的文字
grep [-acinv] '字符' filename
取出我们需要的一整行数据
-a 将二进制文本以文本文件形式查找
-c 计算找到目标字符的个数
-i 忽略大小写
-n 输出行号
-v 反向选择
sort
uniq [-ci]
将重复数据仅列出一个显示
last | cut -d ' ' -f1 | sort | uniq -c
-c 计数
-i 忽略大小写
wc
计算行、字数、字符数
3.3 双向重定向
tee [-a] file
同时输出到屏幕和文件
3.4 字符转换命令
tr [-ds]
-d 删除S1
-s 将S2替换为S1
join [-ti12] file1 file2
将两个文件比对,相同连接起来
-t ‘x’默认以空格为分割,可自定义为x
-i 忽略大小写
-1第一第二文件用第几栏位连接
-2
join -t ':' -1 4 /etc/pass -2 3 /etc/group
paste [-d] f1 f2
简易版join,不比对直接连接
col [-x]
-x 将tab换成对等空格
split [-bl] file
-b 接文件大小 xxkbm
-l 以行数划分
分割后的文件合并cat services* >> sevicesback
网友评论