这里采用bash进行shell编程。因为bash是免费的,并且方便使用。bash - bourne again shell
文件命名为 myshell.sh
执行文件前,先获得权限:
chomod 777 myshell.sh
1.显示文件内容
#!/bin/bash
cat myshell.sh
执行命令:
./myshell.sh
显示结果:
#!/bin/bash
cat myshell.sh
2.统计一个文件中的行数,单词数,字符数
现有一个文件vivi ,
文件内容如下:
Hello, world!
vivi
shell文件,内容如下:
#!/bin/bash
wc -l vivi
wc -w vivi
wc -c vivi
执行命令:
./myshell.sh
显示结果:
root@vivi-Ideapad-Z460:~# ./myshell.sh
3 vivi
3 vivi
20 vivi
【观察了一下,行数的统计包括空行,中间的空行也包括结尾的空行。 单词数的统计是根据 空格 or 空行 来判断的。 字符的统计,没有看懂。。。貌似总是比我数的多那么一个。。。。。】
wc vivi
显示的结果就是 3 3 20 vivi
-l 是 line 只统计行数
3. 文件拷贝
cp myshell.sh vivi
vivi 的内容已经改变了。。。。
4.文件移动
mv vivi cici
这样在你的工作目录下就生成了一个cici的文件,里面的内容和vivi 一样。。。。
5.对文件中的行进行排序
sort filename
终端上显示结果:
root@vivi-Ideapad-Z460:~# ./myshell.sh
hello,world!
leehom
This is a wonderful world!
vivi
6 得到文件类型
file vivi
root@vivi-Ideapad-Z460:~# ./myshell.sh
vivi: ASCII text
7
管道 (|)将一个命令的输出作为另外一个命令的输入。
grep "leehom" vivi | wc -l
在 vivi 中 中搜索 leehom并统计 leehom 出现的行数c
10 重定向
重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
> 写入文件并覆盖旧文件。
>> 加到文件的尾部,保留旧文件内容。
反短斜线,使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。