现在的位置: 首页 > 综合 > 正文

shell的一些命令测试(第五章 shell编程初步)

2014年09月15日 ⁄ 综合 ⁄ 共 2244字 ⁄ 字号 评论关闭

                   shell 命令的测试示例!

    没什么特别的目的性,就熟悉一下这些简单的命令。或许有用或许没用,权当玩玩!
p3   连接管道
[root@biao LinuxTest]# who |wc -l           //wc -l 是统计行数。
2
p4   chmod //修改文件的属性
[root@biao LinuxTest]# vi nu    创建文件并输入:who |wc -l
[root@biao LinuxTest]# cat nu
who |wc -l
[root@biao LinuxTest]# chmod +x nu
[root@biao LinuxTest]# ./nu
2

p6
[root@biao LinuxTest]# command=wc   //定义变量。
[root@biao LinuxTest]# option=-l
[root@biao LinuxTest]# file=grade
[root@biao LinuxTest]# $command $option $file  #等同于wc -l grade 即统计grade的行数
5 grade

p7   空值
[root@biao LinuxTest]# echo :$nothing:
::
[root@biao LinuxTest]# wc $nothing -l $nothing grade
5 grade
[root@biao LinuxTest]#

p8 文件名替换和变量
[root@biao LinuxTest]# x=*
[root@biao LinuxTest]# echo $x
1.txt~ 4-awk.ppt awkfile awkfile~ ep ep~ grade grade~ nu resultAWK.txt resultShell resultShell~ sub tot tot~
[root@biao LinuxTest]#

p9  
[root@biao LinuxTest]# filename=ep    //ep为当前文件夹下的一个文件
[root@biao LinuxTest]# mv $filename $filenameX    //报错是因为变量filenameX为空。 故语法上的错误。
mv: 在"ep" 后缺少了要操作的目标文件
请尝试执行"mv --help"来获取更多信息。

[root@biao LinuxTest]# mv $filename ${filename}X   //执行成功。
[root@biao LinuxTest]# ls
1.txt~     awkfile   ep~  grade   nu             resultShell   sub  tot~
4-awk.ppt  awkfile~  epX  grade~  resultAWK.txt  resultShell~  tot    //ep文件被替换成了epX
[root@biao LinuxTest]#

[root@biao LinuxTest]# mv epX ep                     //先把epX的文件名替换回来。否则找不到文件ep
[root@biao LinuxTest]# mv $filename "$filename"X
[root@biao LinuxTest]# ls
1.txt~     awkfile   ep~  grade   nu             resultShell   sub  tot~
4-awk.ppt  awkfile~  epX  grade~  resultAWK.txt  resultShell~  tot
[root@biao LinuxTest]#

p10
$((expression))  expression由变量和运算符构成。
$ echo $ ((i+1))   i 前面不用$符号。
i=$((i*5))
[root@biao LinuxTest]# echo $((i+1))  //i一直都为空。
1
[root@biao LinuxTest]# i=$((i*5))
[root@biao LinuxTest]# echo $((i+1))
1

p11  
编写一个名为nf的程序,显示当前目录中的文件数。键入程序并测试。 ls -l | awk '/[^~]$/ {tot+=1} END {print (tot-1)}'
[root@biao LinuxTest]# vi nf
[root@biao LinuxTest]# cat nf
ls -l |awk '/[~]/ {tot+=1} END {print (NR-tot-1)}'
[root@biao LinuxTest]# ./nf
10
编写一个名为whos的程序,显示排好序的已登录用户清单。只显示用户名,不要有其他信息。键入程序并测试。
              who  获得当前登录系统的所有用户的信息
[root@biao LinuxTest]# vi whos
[root@biao LinuxTest]# cat whos
who | awk '{print $1}'
[root@biao LinuxTest]# ./whos
bash: ./whos: 权限不够
[root@biao LinuxTest]# chmod +x whos
[root@biao LinuxTest]# who
root     tty1         2010-04-03 10:42 (:0)
root     pts/0        2010-04-03 10:45 (:0.0)
abiao    tty7         2010-04-03 15:07 (:1)
[root@biao LinuxTest]# ./whos
root
root
abiao

抱歉!评论已关闭.