引用
双引号
[root@four ~]# name=zhangsan
[root@four ~]# echo "$name"
zhangsan
单引号
[root@four ~]# name=zhangsan
[root@four ~]# echo '$name'
$name
反引号
[root@four ~]# name=`ls -l`
[root@four ~]# echo "$name"
总用量 8
-rw-------. 1 root root 1534 10月 29 18:24 anaconda-ks.cfg
drwxr-xr-x 2 root root 77 11月 4 10:10 software
-rw-r--r-- 1 root root 93 11月 9 09:29 test.txt
命令替换
[root@four ~]# line=$(ls -l / | wc -l)
[root@four ~]# echo "$line"
23
[root@four ~]# name=`ls -l / | wc -l`
[root@four ~]# echo "$name"
23
选择结构
if
语法 :if 命令; then 命令; [ elif 命令; then 命令; ]… [ else 命令; ] fi 根据条件执行命令。
[root@four ~]# if ls / &> /dev/null; then echo "win";else echo "lose";fi
win
for
语法一 : for (( 表达式1; 表达式2; 表达式3 )); do 命令; done
[root@four ~]# for ((i=0;i<5;i++));do echo $i;done
0
1
2
3
4
语法二 : for 名称 [in 词语 … ] ; do 命令; done
[root@four ~]# for name in zhangsan lisi wangwu zhaoliu;do echo $name;done
zhangsan
lisi
wangwu
zhaoliu
[root@four ~]#
while
语法: while 命令; do 命令; done
[root@four ~]# mkdir path
[root@four ~]# while ls path &> /dev/null; do echo "ok"; rm -rf path; done
ok
sort 排序文件的行
-n 按数值排序
-r 倒序
-t 自定义分割符
-k 选择排序列
-u 合并相同行
-f 忽略大小写
创建一个文件写入以下内容
zhangsan 32
lisi 100
wangwu 89
zhaoli 94
默认按照字典排序
[root@four ~]# sort test.txt
lisi 100
wangwu 89
zhangsan 32
zhaoli 94
排序 按照空格分割 第二列 按数值排序 降序 文件
[root@four ~]# sort -t' ' -k2 -n -r test.txt
lisi 100
zhaoli 94
wangwu 89
zhangsan 32
cut 显示切换的数据
-f 选择显示的列 可选多列用逗号分割
-s 不显示没有分割符的列
-d 自定义分割符
按空格切割 选择第一列 文件
[root@four ~]# cut -d' ' -f1 test.txt
zhangsan
lisi
wangwu
zhaoli
sed 行编辑器
sed [options] Address Command file …
默认不修改文件内容
-n: 静默模式,不再显示默认显示模式空间中的内容
-i: 直接修改原文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f 添加“脚本文件”到程序的运行列表
-r: 表示使用扩展正则表达式
-d: 删除符合条件的行;
-p: 显示符合条件的行;
-a \string: 在指定的行后面追加新行,内容为string
-i \string: 在指定的行前面添加新行,内容为string
-r FILE: 将指定的文件的内容添加至符合条件的行处
-w FILE: 将地址指定的范围内的行另存至指定的文件中;
-s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
-g: 行内全局替换
-i: 忽略字符大小写
-s///:将输入文件视为各个独立的文件而不是一个长的连续输入