首先编辑一个文件:
vim sed.txt
添加如下内容:
dong shen
guan zhen
wo wo
lai lai
le le
一:使用Linux命令查询file1中空行所在的行
使用如下命令:
awk '/^$/{print NR}' sed.txt
输出:5
其中,/^ 代表是开头,$代表的是结尾,开头和结尾都是空,也就是空行.
NR代表行号
有文件chengji.txt:
张三 40
李四 50
王五 60
二:使用Linux命令计算第二列的和并且输出:
cat chengji.txt | awk -F " " '{sum=sum+$2} END{print sum}'
这里面,-F " " 代表的是以" "进行切割,$2代表的是取第二行.
输出:150
三:写一个脚本,判断文件是否存在:
vim fileExist.sh:
#!/bin/bash
if [ -e test.txt ]
then
echo "文件存在"
else
echo "文件不存在!"
fi
执行:
bash fileExist.sh
bash编译器呢,在执行的时候权限足够,不需要去切换.
输出:文件存在
这个再提几个知识点,以后也常会用到.
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
$#:代表输入的参数个数
$?:查看上一个命令是否执行成功,成功返回0,不成功返回一个数字
$*:代表命令行中所有参数,把所有的参数看做是一个整体
$@:代表命令行中所有参数,把每个参数区别对待
四:请用shell脚本写出查找当前文件夹下(/home)下所有的文件内容中包含有"shen"的文件名称:
grep -r "shen" /home | cut -d ":" -f 1
五:查看某个文件,并显示最后2行:
cat test.txt | tail -n 2
六:查看进程的命令(重要!):
ps aux|sort -k4 -nr| head -3
这里需要解释一下这几个命令参数:
ps aux是查看进程的命令,输出的结果如下:
有user,PID, %cpu和内存%MEM等等.
sort -k4指的是按照第四列进行排序,这里第四列指的就是内存%MEM.-nr里可以拆分成-n和-r: -n指的是按照数字, -r指的是反转,从大到小进行排序.
head -3 选取头3行结果进行展示
除了以上这个方法之外,还可以:
按下top命令:
之后再按下P(注意是大写的P),就可以按照所占用的内存大小进行排序.
七:shell脚本中给出输入框:
read -t 7 -p " input your name " NAME
echo $NAME
-t 7 :在7s之内.