Linux中普通文件的管理(史上最详细版本!!!!)

目录

1.创建文件--------touch

2.查看文件

2.1浏览文件的内容

2.1.1 cat命令

2.1.2 head命令

2.1.3 tail 命令

2.1.4 more和less命令

2.2 过滤文件的内容------grep

2.3 文件内容的统计-------wc

2.4 切割显示--------cut

2.5 排序显示---------sort

2.6 去重显示---------uniq

3.编辑文件

3.1 数据流

3.2 重定向

3.3 echo

4.删除文件--------rm


1.创建文件--------touch

在Linux中如果要创建文件可以使用 touch 命令来创建

例如:touch /root/file1 表示在/root下创建一个文件file1

           touch /root/file{2..5} 创建多个文件 file2 file3 file4 file5

           touch /root/file{6,7} 创建文件file6和file7

           touch file8 file9 创建文件file8和file9

           touch /root/file[6-9]  创建文件 “file[6-9]” ,注意!!这种创建的会将[ ]里面的内容当作文件的名称去创建

我们可以用 stat 命令去查看创建好的文件的信息,比如我们去查看file1

如果我们重复创建了文件file1(即已经有某个文件时) 的话,不会报错。只会修改文件的访问时间和改时间。但是创建时间不会改变。如下图所示:

如上图所示对比,只有创建时间未发生改变

2.查看文件

2.1浏览文件的内容

2.1.1 cat命令

使用 cat 命令查看文件的所有内容,一般用这个命令来查看文件内容较少的文件

常用选项与用法:

-b 显示没有空行的行号

-n 显示行号

例如: cat /etc/passwd 查看 /etc 下 passwd 文件的内容

            cat -A /etc/passwd 加上 -A 选项会在每一行的行末显示 $ 符号

            cat -n /etc/passwd 加上 -n 选项显示行号,可以清晰看到内容一共有多少行

            cat -b file1 加上 -b 选项只显示没有空行的行号,有空行不会显示行号

2.1.2 head命令

使用 head 命令用于显示一个文件前面10行的数据

常用的选项与用法:

-c 输出每行的指定个数的字符

-n 输出指定的行数,默认是10行

例如:head /etc/passwd 表示显示/etc/passwd这个文件前面10行的数据

           head -c 5 /etc/passwd 表示查看前5个字符

[root@localhost ~]# head -c 5 /etc/passwd  #查看前5个字符
root:
 

           head -c -5 /etc/passwd 如果 -c 选项后面跟的是负数,那么会从后往前去截取剩下的部分

           head -n 2 /etc/passwd 当 -n 选项后跟数字2表示显示前2行内容

           head -n -2 /etc/passwd 如果是负数2就会从后往前截取掉 -2 行及以上的内容

-2行的最后一行
#dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/usr/sbin/nologin

#完成的倒数3行
#dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/usr/sbin/nologin
#tcpdump:x:72:72::/:/sbin/nologin
#redhat:x:1000:1000:redhat:/home/redhat:/bin/bash

2.1.3 tail 命令

使用 tail 命令用于显示文件的最后10行的内容

常用选项与用法:

-c 显示指定字符

-n 显示指定行数

-f 显示追加的内容

例如:tail /etc/passwd 显示的是/etc/passwd这个文件最后10行的内容

           tail -n 3 /etc/passwd 显示最后3行的内容

           tail 3 /etc/passwd  可以省略负数前面的-n选项, 也表示显示最后3行的内容

           tail -n -3 /etc/passwd 在tail命令中指定负数的行数是无效的,仍然显示的最后3行的内容

           -f 选项显示追加的内容 ,用于获取文件中最新的数据,当使用了这个选项的时候文件会处               于一种堵塞的状态,如果要结束这种状态使用ctrl+c

2.1.4 more和less命令

使用 more 或者 less 命令用于分页显示文件中的内容

例如:more passwd 或者 less passwd 则分页显示 passwd 文件中的内容

           使用more命令时按空格键是向下翻页 ,按q是退出,这个命令不能向前翻页 ,如果想向前去翻页,需要使用less命令

          使用less命令时按g回到第一页,G回到最后一页,按空格键向下翻页 ,按向下或向上箭头可以往下或往上翻一行,按q是退出

2.2 过滤文件的内容------grep

使用grep命令过滤文件内容

常用的选项与用法:

-c            仅显示找到的行数

-i             忽略大小写

-n            显示行号

-v            反向选择(它只会列出没有关键字的行)

-A            -A 2 表示的是搜索的时候显示匹配到的哪一行及以下的2行

-B            -B 2 表示的是搜索的时候显示匹配到的哪一行及以上的2行

-C            -C 2 表示的是搜索的时候显示匹配到哪一行及以上和以下的2行

例如: grep root /etc/passwd 表示在 /etc/passwd 这个文件中查找含有root这个关键字的行

           grep -v /sbin/nologin /etc/passwd 在 /etc/passwd 这个文件中查找不包含 /sbin/nologin 这个关键字的行

           grep -v -c /sbin/nologin /etc/passwd 在 /etc/passwd 这个文件中查找不包含 /sbin/nologin 这个关键字的行的行数

           grep -A 2 /sbin/nologin /etc/passwd 在/etc/passwd这个文件中查找 /sbin/nologin 这个关键字的行以及后2行

          grep -C 2 /sbin/nologin /etc/passwd 在/etc/passwd这个文件中查找 /sbin/nologin 这个关键字的行以及前后2行,注意!! -A和-B不能一起连用

          grep -i Root /etc/passwd 在etc/passwd这个文件中,不区分大小写的查找 Root 这个关键字的所有行

          grep -i -n Root /etc/passwd 在etc/passwd这个文件中不区分大小写的查找Root这个关键字的所有行的行号

是特殊字符的时候:

grep h 文件名称查找(匹配)文件中含有h这个字符的所有行
grep ^[q] 文件名称查找(匹配)文件中以q开头的行
grep ^[qf] 文件名称查找(匹配)文件中以q或者f开头的行
grep ^[ ^qf] 文件名称查找(匹配)文件中以q或者f开头以外的行
grep ^[ 0-9] 文件名称查找(匹配)以数字开头的行
grep h$ 文件名称查找(匹配)以h结尾的行
grep ^h$ 文件名称查找(匹配只有h结尾的行

例如:grep h /etc/passwd 表示在 /etc/passwd 文件中查找包含 h 字符的行

          grep ^[h] /etc/passwd 在/etc/passwd文件中查找以 h 开头的行

          grep h$ /etc/passwd 在/etc/passwd文件中查找以 h 结尾的行

          grep ^[^h] /etc/passwd 在/etc/passwd文件中查找以 h 开头以外的行

          grep [0-9] /etc/passwd 在/etc/passwd文件中查找包含数字的所有行

2.3 文件内容的统计-------wc

使用wc命令主要用于统计文件中的字节数,字数,行数等信息

常用的选项与用法:

-l 统计行数

-c 统计文件的大小

-m 统计字符的个数

-w 统计单词(字段)的个数

例如:wc -l file1 表示统计 file1 文件中的行数

           wc -w file1 表示统计 file1文件中的文件字数(按空格分割计数)

           wc -c file1 表示统计 file1 文件中的文件字节数

           wc -l access.log 快速查看日志行数

2.4 切割显示--------cut

使用cut命令用于提取文本行中指定字段的工具,常常用来处理结构化数据

常用的选项与用法:

-d 指定分隔符,如果分隔符是空格的话需要用引号引起来

-f 指定的是第几个字段

-c 指定的是第几个字符

例如:cat /etc/passwd 查看文件里的内容,可以看到 /etc/passwd 这个的内容的分隔符是 :通过             冒号把内容进行了分割,分割成了7个部分

          

          cut -d : -f 1 /etc/passwd 查看 /etc/passwd 这个文件中的第1列内容 

          cut -d : -f 1-3 /etc/passwd 查看/etc/passwd这个文件中的第1列到第3列的内容

          cut -d : -f 1,3 /etc/passwd 查看/etc/passwd这个文件中的第1列和第3列的内容

          cut -c 4 /etc/passwd 查看/etc/passwd这个文件中的第四个字符,这时不需要加-d选项

2.5 排序显示---------sort

常用选项与用法:

-b 忽略缩进和空格

-f 忽略大小写

-n 以数值型进行排序

-r 反向排序

-k 指定的字段范围

-t 指定间隔符

-u 去除重复行

例如:cut -d : -f 3 /etc/passwd | sort -n 查看/etc/passwd文件的第3列并以数值型进行排序

           sort -t : -k 3 /etc/passwd 对/etc/passwd这个文件中第三个字段进行排序

           sort -t : -k 3 -n /etc/passwd 对/etc/passwd这个文件中第三个字段进行数值型排序

           sort -t : -k 3 -r /etc/passwd 对/etc/passwd这个文件中第三个字段进行反向排序

2.6 去重显示---------uniq

使用 uniq 命令对文本的内容中连续的重复行进行去重或统计重复行数量,常常配合 sort 命令使用

常用选项与用法:

-c 统计重复行出现的次数

-f 忽略前多少个字段

-s 忽略前多少个字符

-d 仅显示重复行

例如:uniq file1 表示去掉 file1 文件中重复行的内容

           uniq -c file1 显示文件 file1 中重复行的行数

           uniq -f 1 file1 忽略第一个字段,按后续字段判断重复

           uniq -s 3 file1 忽略前三个字符,按后续内容判断重复

           uniq -d file1 只输出文件 file1 中重复过的行

3.编辑文件

3.1 数据流

在Linux中,对于数据流来说可以分为:标准输入、标准输出、标准的错误输出

标准输入(Standard Input)简写stdin,文件描述符 0 ,默认对应键盘输入,进程从stdin读取数据

标准输出(Standard Output)简写stdout,文件描述符 1 ,默认对应终端屏幕显示,进程将正常结果输出到stdout

标准错误输出(Standard Error) 简写stderr,文件描述符 2 ,默认也对应终端屏幕,进程将错误信息输出到stderr

3.2 重定向

输出重定向操作符:>   >>

> :覆盖式重定向,将命令输出写入文件,若文件存在则清空原有内容后写入;若不存在则创建新文件

例如:

首次执行:echo english > file1 将english输入到文件file1中

再次执行:echo world > file1 这时文件file1中的english内容会被情况,文件内容变为world

>>:追加式重定向,将命令输出追加到文件末尾,不影响原有内容;若文件不存在则创建新文件

例如:

首次执行:echo hello >> file2 将hello输入到文件file2中

再次执行:echo world >> file2

这时文件内容为   hello

                            world

输入重定向操作符:<   <<

<:从文件读取输入,将文件内容作为命令的标准输入(stdin)

例如:cate < file1 表示读取文件 file1,等价于 cat file1

           sort < file1 表示对文件file1内容排序

本质:相当于将文件内容 “喂” 给命令

 <<:从标准输入读取多行文本(Here Document),允许直接在命令行中输入多行文本作为输入

3.3 echo

使用echo命令主要用于输出文本或变量内容

输出普通字符串

-n 不自动换行

-e 解析转义字符

 例如:echo -n  helloworld  输出后不换行,下一个命令输出会接在后面

            echo -e "hello\nworld" 其中 \n 表示换行,输出两行文本。如果使用单引号 \n 不解析,                如果没有引号,空格会截断参数

            echo -e "hello\tworld" 其中 \t 表示制表符

4.删除文件--------rm

使用 rm 命令对文件进行删除

常用的选项与用法:

-f 表示强制删除

-r 表示递归删除,一般在删除目录的时候需要指定这个选项

-d 表示删除空目录

-v 表示删除的时候会显示详细的过程

例如:rm -d dir1 删除空目录dir1,删除一个空目录的时候需要使用 -d 选项来删除,否则会报错

          rm -r dir2 删除非空目录dir2

          rm -df dir* 批量删除,使用 * 符号表示删除所有能匹配上的目录 

          rm -rf dir3 直接删除dir3及其所有内容,不会提示确认操作,直接强制删除

rm -d 安全系数较高,避免删除非空目录,但是功能有限

rm -r 用于删除非空目录及其所有内容(包括子目录,文件),但会提示确认每个操作

rm -rf 直接删除目录及其所有内容,无提示,需谨慎使用!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值