Linux基础知识--文件内容操作命令

Posted bigbigtong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础知识--文件内容操作命令相关的知识,希望对你有一定的参考价值。

文件内容操作命令

  cat命令:

  用途:用途显示文件的全部内容,也可以同时显示多个文件的内容。

  语法:cat 文件名

 

  more命令和less命令

  用途:全屏方式分页显示内容

 

  head、tail命令

  用途与格式:

    head是查看文件开头的一部分(默认10行)。格式为head -n 文件名

    tail是查看文件末尾的一部分(默认10行),格式为:tail -n 文件名    tail -f 文件名

  

  wc命令:

    用途:统计文件中单词的数量(Word count)等信息

    格式:wc [选项]... 目标文件...

    -l 统计行数

    -w 统计单词个数

    -c 统计字节数

[[email protected] home]# cat file
i am bigbigtong
[root@localhost home]# wc file
 1  3 16 file
[root@localhost home]# wc -l file
1 file
[root@localhost home]# wc -w file
3 file
[root@localhost home]# wc -c file
16 file

  可以看到file文件中有1行,3个单词,占16个字节

 

  grep命令:

    用途:在文件中查找并显示包含某字符串的行

    格式:grep [选项]... 查找条件 目标文件

      -i 查找时忽略大小写

      -v 反转查找,输出与查找条件不符的行

    查找条件设置:

      要查找的字符串用双引号括起来

      “^……”表示以……开头,“……$”表示以……结尾

      “^$”表示空行

      

[[email protected] home]# cp /etc/audisp/audispd.conf /home
[[email protected] home]# ls
audispd.conf  file  file1  file2  test1  test2
[root@localhost home]# cat audispd.conf
#
# This file controls the configuration of the audit event
# dispatcher daemon, audispd.
#

q_depth = 64
overflow_action = SYSLOG
name_format = HOSTNAME
#name = mydomain

[root@localhost home]# grep "name" audispd.conf
name_format = HOSTNAME
#name = mydomain

  audispd.cof文件中查找包含"name"的行,结果就是这两行

[[email protected] home]# grep -v "name" audispd.conf
#
# This file controls the configuration of the audit event
# dispatcher daemon, audispd.
#

q_depth = 64
overflow_action = SYSLOG

  查找不包含“name”的行

  

[[email protected] home]# grep -i "this" audispd.conf
# This file controls the configuration of the audit event

  忽略大小写

 

  

[[email protected] home]# grep "^#" audispd.conf
#
# This file controls the configuration of the audit event
# dispatcher daemon, audispd.
#
#name = mydomain
[[email protected] home]# grep "main$" audispd.conf
#name = mydomain
[[email protected] home]# grep "^$" audispd.conf

  以#开头,以main结尾以及空行的信息

 

  

[[email protected] home]# grep -v "^$" audispd.conf
#
# This file controls the configuration of the audit event
# dispatcher daemon, audispd.
#
q_depth = 64
overflow_action = SYSLOG
name_format = HOSTNAME
#name = mydomain

  去除空行

 

  tar命令:

  用途:制作归档文件、释放归档文件

  格式:

    制作归档文件:tar [选项]... 归档文件名 源文件或目录

    释放归档文件:tar [选项]... 归档文件名 [-C 目标目录]

    -c 创建.tar格式的包文件

    -x 解开.tar格式的包文件

    -v 输出详细信息

    -f 表示使用归档文件

    -p 打包时保留源文件或目录的权限

    -t 列表查看包内文件

    -C 解包时指定释放的目标目录

    -z 调用gzip程序进行压缩或解压

    -j 调用bzip2程序进行压缩或解压

    

  创建归档文件时一般使用.tar文件名作为结尾

[[email protected] home]# ls
audispd.conf  file  file1  file2  test1  test2
[root@localhost home]# tar -cvf file1.tar file1
file1
[root@localhost home]# ls
audispd.conf  file  file1  file1.tar  file2  test1  test2
[root@localhost home]# ls -l file1
-rw-r--r-- 1 root root 98 Jan 27 04:11 file1
[root@localhost home]# ls -l file1.tar
-rw-r--r-- 1 root root 10240 Jan 27 06:08 file1.tar

  可以看到打包之后的文件比源文件还大,这是因为打包并没有进行压缩,而且打包还带有一些打包信息

  如果你是使用gzip程序进行压缩,后缀名就是.gz

[[email protected] home]# tar -zcvf file1.tar.gz file1
file1
[[email protected] home]# ls -l file1.tar.gz
-rw-r--r-- 1 root root 148 Jan 27 06:13 file1.tar.gz

  会发现一个有趣的现象,压缩之后的文件比源文件还大 

[[email protected] home]# du -h file1
4.0K    file1
[root@localhost home]# du -h file1.tar.gz
4.0K    file1.tar.gz

  使用du命令查看两个文件的磁盘空间,均为4k,这是因为Linux给文件划分磁盘空间的时候,最小单位为4k。

  在压缩的时候,会写入一些打包信息,如果你源文件太小,那么压缩之后的文件就会比源文件更大。

  新建一个文件,往里面添加多一点的内容

  

[[email protected] home]# tar -zcvf file3.tar.gz file3
file3
[root@localhost home]# ls -l
total 52
-rw-r----- 1 root root   173 Jan 27 04:26 audispd.conf
-rw-r--r-- 1 root root    16 Jan 27 04:18 file
-rw-r--r-- 1 root root    98 Jan 27 04:11 file1
-rw-r--r-- 1 root root 10240 Jan 27 06:08 file1.tar
-rw-r--r-- 1 root root   148 Jan 27 06:13 file1.tar.gz
-rw-r--r-- 1 root root   117 Jan 27 04:11 file2
-rw-r--r-- 1 root root   160 Jan 27 06:17 file2.tar.gz
-rw-r--r-- 1 root root  1415 Jan 27 06:31 file3
-rw-r--r-- 1 root root   213 Jan 27 06:32 file3.tar.gz
drwxr-xr-x 3 root root  4096 Jan 27 00:27 test1
drwxr-xr-x 2 root root  4096 Jan 27 00:23 test2

  可以看到这次压缩file3,压缩后的文件比源文件小很多了

  把源文件都删除,然后进行解压缩

[[email protected] home]# tar -zxvf file3.tar.gz
file3
[root@localhost home]# ls
audispd.conf  file1.tar.gz  file3         test1
file1.tar     file2.tar.gz  file3.tar.gz  test2

  可以看到file3被解压出来了,不写目标目录,默认解压到当前目录

  还可以解压到指定的目录,-C 指定的目录名

[[email protected] home]# mkdir test
[[email protected] home]# tar -zxvf file3.tar.gz -C test
file3
[root@localhost home]# ls test
file3

  可以看到压缩文件被解压到test目录下了

  

  如果你用-j调用bzip2程序压缩文件,那么后缀名就是bz2

  

[[email protected] home]# ls -l test
total 4
-rw-r--r-- 1 root root 1415 Jan 27 06:31 file3
[root@localhost home]# tar -jcvf test.tar.bz2 test
test/
test/file3
[root@localhost home]# ls
audispd.conf  file1.tar.gz  file3         test   test2
file1.tar     file2.tar.gz  file3.tar.gz  test1  test.tar.bz2
[root@localhost home]# ls -l test.tar.bz2
-rw-r--r-- 1 root root 278 Jan 27 06:42 test.tar.bz2
[root@localhost home]# tar -jxvf test.tar.bz2 -C test1
test/
test/file3
[root@localhost home]# ls -l test1
total 4
lrwxrwxrwx 1 root root   11 Jan 27 00:16 file1 -> /home/file1
drwxr-xr-x 2 root root 4096 Jan 27 06:38 test

  可以看到压缩文件解压到了指定的目录下

 

  vim命令:

  用途:编辑文件

  格式: vim 文件名

  i 进入编辑模式

  wq 保存并退出,如果vim 文件名(文件不存在),wq保存之后,该文件也就生成并且编辑保存了

  q! 强制退出,不保存,如果vim 文件名(文件不存在),q!之后,该文件也不会生成

 

  小结:

  tar 命令制作或释放归档文件,-cvf 是打包但并没有压缩,-zcvf 以gzip程序压缩文件,-jcvf以bzip2程序压缩文件,-x是解压缩,-C 跟指定目录是解压到指定目录

  vim创建新文件时,只有保存并退出,文件才会被创建编辑

  cat、wc、head、tail、grep

  

  

以上是关于Linux基础知识--文件内容操作命令的主要内容,如果未能解决你的问题,请参考以下文章

linux怎么在代码里将每次的操作结果写入到文件中?

Linux实战常见基础操作之查看文件内容

Linux常用基础命令操作

Linux实战常见基础操作之vim编辑文件内容

Linux基础命令与操作

Linux系统基础-Linux系统文件操作常用命令