以前文章链接
SHELL编程练习
文件的属性和权限
基本文件操作练习
高级文件操作练习
文件和目录管理

重定向

(1)用cat 以及输出重定向操作符在当前目录下创建文件abc,并输入文本

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cat>abc
This is the value of abc

(2)查看rm命令的帮助手册,并将查看结果保存到f1文件中,然后查看文件f1的内容

[tom@iZbp12r8eimkkdor4011j3Z ~]$ man rm>f1
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
abc  f1
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cat f1

(3) 查看主目录的内容,并将查看结果追加到ksd>f1文件中,然后查看f1文件的内容

cd #切换到主目录
ls>>f1
cat f1

(4) 将ls命令的手册保存到large文件中,利用cat命令和输入重定向操作符将large文件内容显示在当前终端窗口

[tom@iZbp12r8eimkkdor4011j3Z ~]$ man ls>large
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
abc  f1  large
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cat<large

(6) 用cat命令往lslarge文件添加一行内容:This is my file,please don’t delete it!

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cat>>myfile
This is my file,please dont delete it!
Ctrl + D

(7)列出当前目录下某个已存在文件和某个不存在的文件内容,将标准输出和标准错误同时定向到当前目录的file文件中

cat large large123 &>file  (假定当前目录不存在large123文件)

重定向的区别

  • 0表示标准输入
  • 1表示标准输出
  • 2表示标准错误输出

  • ‘>’ 默认为标准输出重定向,与 1> 相同
  • 2>&1 意思是把 标准错误输出 重定向到 标准输出.
  • &>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中

(8)将文件/etc/passwd的第一行和最后一行保存到当前目录下的user文件中

[tom@iZbp12r8eimkkdor4011j3Z ~]$ (head -1 /etc/passwd; tail -1 /etc/passwd)>user
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cat user
root:x:0:0:root:/root:/bin/bash
rngd:x:990:986:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin

管道操作

(1)统计当前工作目录下有几个文件

[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls |wc -w
6
#ls 查看了文件 根据管道符号移交给wc -w处理,最终显示个数

wc命令解释:

Linux wc命令用于统计指定文件中的字节数、字数、行数,并将统计结果显示输出。wc是word count的缩写,即统计单词数。
命令语法

wc [OPTION]...[FILE]...

-c 统计字节数
-l 统计行数
-m 统计字符数。该参数不能与-c一起使用
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-L 打印最长行的长度

(2)显示lslarge的第6-10行

[tom@iZbp12r8eimkkdor4011j3Z ~]$ head myfile | tail -5
fngn
hm
gjmgj
ghjm

#head命令不加选项默认输出前10行,通过管道符号移交给tail -5,最终输出的是前10行中的后5行,因此是6-10行

(3)统计/etc/httpd/conf/httpd.conf文件中注释的行数

grep  ^# /etc/httpd/conf/httpd.conf  | wc –l
#注释行前面是有'#'的,因此将所有最前面是'#'的行数打印就是注释行的行数

(4)统计/etc/httpd/conf/httpd.conf文件中非注释的行数

grep –v ^# /etc/httpd/conf/httpd.conf  | wc –l
#非注释行用 -v选项,将不是注释行的打印

(5)统计/etc/httpd/conf/httpd.conf文件非空的行数

grep –v ^$ /etc/httpd/conf/httpd.conf  | wc –l
# ^$连用就代表开头和末尾连在一起:本行是空的,没有内容

(6)统计/etc/httpd/conf/httpd.conf文件空行的行数

grep  ^$ /etc/httpd/conf/httpd.conf  | wc –l

(7)统计/etc/httpd/conf/httpd.conf文件非空行非注释行的行数

grep –v  ^$ /etc/httpd/conf/httpd.conf |grep –v ^#  | wc –l
注意,下面这种写法对吗?
grep –v  ^$ /etc/httpd/conf/httpd.conf |grep –v ^# /etc/httpd/conf/httpd.conf  | wc –l   (错)
一定要明白'|'就是将前面的结果传给下面的命令去执行,所以不能多次的打开文件/etc/.....

压缩

(1)在当前目录下创建若干子目录和文件,然后将当前目录下的所有文件打包成主目录下的存档文件tarfile

tar  -cvf    ~/tarfile    .

(2)查看tarfile文件中的内容

tar  -tvf  ~/tarfile

(3)将主目录下的文件打包并压缩为home.gz文件

tar   -czvf  home.gz ~

(4)将home.gz文件解压缩到/tmp目录

tar  -xzvf  home.gz  -C  /tmp

tar命令选项

  • -c 创建新的文档。

  • -v 显示详细的tar处理的文件信息

  • -f 要操作的文件名

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐