1-5 文件管理

1 − 5 文 件 管 理 1-5 文件管理 15

01-文件管理-touch

touch命令

touch 创建的文件如果存在,就会修改时间属性

在Windows系统中,我们如果想创建一个文本文档或者word文件的时候,通常的做法是
鼠标右键---新建---文本文档,这样的话,我们就成功的创建了一个文件,而在Linux中,我们可以通过字符命令的形式进行创建

touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

ls -l 可以显示档案的时间记录

使用者权限:所有权限用户

语法

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
  • 参数说明
  • a 改变档案的读取时间记录。
  • m 改变档案的修改时间记录。
  • c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
  • f 不使用,是为了与其他 unix 系统的相容性而保留。
  • r 使用参考档的时间记录,与 --file 的效果一样。
  • d 设定时间与日期,可以使用各种不同的格式。
  • t 设定档案的时间记录,格式与 date 指令相同。
  • –no-create 不会建立新档案。
  • –help 列出指令格式。
  • –version 列出版本讯息。

使用 touch 创建一个空文件

在 Linux 系统上使用 touch 命令创建空文件,键入 touch,然后输入文件名。如下所示

touch test.txt

查看

ls -l czbk-devops.txt

使用 touch 创建批量空文件

在实际的开发过程中可能会出现一些情况,我们必须为某些测试创建大量空文件,这可以使用 touch 命令轻松实现

touch test{1..10}.txt

在这里插入图片描述

在上面的例子中,我们创建了 10 个名为 czbk-1.txtczbk-10.txt` 的空文件,你可以根据需要更改名称和数字

执行查看命令

ls -l

在这里插入图片描述

由上图我们发现,我们通过批量命令创建了10个txt文件

改变/更新文件访问时间

假设我们想要改变名为 czbk-devops.txt 文件的访问时间,在 touch 命令中使用 -a 选项,然后输入文件名。如下所示:

1、我们先 查看下czbk-devops.txt的时间属性

ls -l test.txt 

我们发现,最后的访问时间是12月 18 11:34

更新时间属性,如下

touch test.txt 

执行ls命令查看,如下

ls -l test.txt 

我们发现,访问时间变成了 12月 18 13:50

我们也可以使用stat命令进行查看,如下:

stat test.txt 

执行效果如下图
在这里插入图片描述

由上图可知:czbk-devops.txt的文件属性、包含访问时间、更改时间、最近改动时间都显示出来了。

关于stat命令:

stat命令用于显示inode内容。

stat以文字的格式来显示inode的内容。

语法

stat [文件或目录]

02-文件管理-vi和vim的介绍

1.2.1 vi/vim介绍

使用vi/vim其实就相当于我们在Windows系统中创建文件、打开文件、编辑文件、保存文件操作

1、vi介绍

vi是 visual interface的简称, 是linux中最经典的文本编辑器。

  • vi的特点
    • 只能是编辑 文本内容, 不能对 字体 段落进行排版
    • 不支持鼠标操作
    • 没有菜单
    • 只有命令
  • vi编辑器在 系统管理 服务器管理 编辑文件时, 其功能永远不是图形界面的编辑器能比拟的

2、vim介绍

vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

vim 则可以说是程序开发者的一项很好用的工具。

03-文件管理-vim三种模式切换

1.2.2 vi/vim模式

vi/vim模式主要分为以下三种:

命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。
编辑模式: 在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。
末行模式: 在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。

下面是三种模式的简单分析图:

三种模式简单总结下就是:

1、vim 开始进入时是命令模式

2、按下I的时候会进入编辑模式

3、按下ESC然后在按下:的时候是末行模式

1.2.3 打开和新建文件

使用vim不但可以打开一个现存的文件;也可以生成(vim后的文件不存在的情况下)一个文件;有点类似于我们在Windows中输入notepad命令一样,我们输入notepad后就会打开一个文本文档,然后进行编辑--另存为。

使用者权限:当前文件的权限用户

  • 在终端中输入vim在后面跟上 文件名 即可
vim txtfile.txt
  • 如果文件已经存在, 会直接打开该文件
  • 如果文件不存在, 保存且退出时 就会新建一个文件

注意

我们通过下面的三种模式切换详细阐述vim的用法

1.2.4 三种模式切换

1、进入命令模式

上接上面的例子,我们执行下面的命令其实就是进入了命令模式

vim txtfile.txt

2、进入编辑模式

上接上面的例子,按i进入插入模式

  • 在 vi 中除了常用 i 进入编辑模式 外, 还提供了一下命令同样可以进入编辑模式
命令英文功能常用
iinsert在当前字符前插入文本常用
Iinsert在行首插入文本较常用
aappend在当前字符后添加文本
Aappend在行末添加文本较常用
o在当前行后面插入一空行常用
O在当前行前面插入一空行常用

由上图左下角我们看到【插入】(英文版为INSERT),说明我们进入了编辑模式

我们在里面插入数据,如下图

因为我们是一个空文件,所以使用【I】或者【i】都可以

如果里面的文本很多,要使用【A】进入编辑模式,即在行末添加文本

3、进入末行模式

编辑模式不能保存文件
必须先推到命令模式
先按Esc键退出到命令模式
然后按小写的 :wq 正常保存退出

进入末行模式—》按符号: 鼠标跑到屏幕的最后一行

然后按小写的 :wq 正常保存退出

退出后显示【已写入】

以下为其他的退出模式:

:q 当vim进入文件没有对文件内容做任何操作可以按"q"退出

:q! 当vim进入文件对文件内容有操作但不想保存退出

:wq 正常保存退出

:wq! 强行保存退出,只针对与root用户或文件所有人生

总结

三种模式的切换,其实就完成了文件创建、编辑、保存、退出四个步骤

那么接下来,我们学习下一个命令

查看刚才新创建的文件

04-文件查看-cat,less

比如查看一个txt文档,在windows中,我们通常是打开一个文件,通过鼠标滚动查看文件不同节选的内容,
而在Linux中,通过下面的命令,可以减少在Windows中手工查找的步骤,在Linux中通过命令+参数的形式进行定位查看、搜索查看

以下5个为文件查看命令,我们只讲4个常用的命令,head不在赘述

序号命令对应英文作用
01cat 文件名concatenate查看小文件内容
02less -N 文件名less分频 显示大文件内容
03head -n 文件名查看文件的前一部分
04tail -n 文件名查看文件的最后部分
05grep 关键字 文件名grep根据关键词, 搜索文本文件内容

总结:

以上5个命令都可以查询文件的内容,他们的功能如下

通过 cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件

less 命令适合查看 内容较多 的文本文件

通过 head 命令查看文档的前几行内容

通过 tail -10f 文件 命令 查看文档(日志)的后几行内容

通过 grep 命令 搜索存在 关键字 的行

cat命令
使用cat命令类似于我们在Windows中查看小型(太大的时候打开会卡死)的文件,cat常用的功能其实就等价于Windows中的
txt---打开--查看

cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat txtFiles.txt

使用者权限:当前文件的权限用户

语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

查看文件名为txtfile.txt的内容

cat txtfile.txt

在这里插入图片描述

查看文件名为txtfile.txt的内容(加入行号)

cat -n txtfile.txt

在这里插入图片描述

less命令
less命令也是查看文件的,只不过它适合查看 内容较多的文本文件,它也可以用于分屏显示文件内容,  每次只显示一页内容,有点类似我们做分页查询

less用于查看文件,但是less 在查看之前不会加载整个文件。

使用者权限:当前文件的权限用户

语法

less [参数] 文件 

1、查看txtfile.txt文件

less txtfile.txt

2、查看命令历史使用记录并通过less分页显示

[itcast@localhost ~]$  history | less
    1  ifconfig
    2  reboot
    3  ifconfig
    4  reboot
    5  ifconfig
    6  su root
    7  ifconfig
    8  ping  www.baidu.com
    9  \
   10  ifconfig
   11  date
   12  hwclock --systohc
   13  su root
   
   ......

我们输入【j】可以前进行

​ 输入【k】可以后退行

​ 输入【G】可以 移动到最后一行

​ 输入【g】可以移动到第一行

​ 输入【ctrl + F】 向前移动一屏(类似于我们在浏览器中的数据分页的下一页)

​ 输入【ctrl + B】 向后移动一屏(类似于我们在浏览器中的数据分页的上一页)

其他命令

1.全屏导航

  • ctrl + F - 向前移动一屏
  • ctrl + B - 向后移动一屏
  • ctrl + D - 向前移动半屏
  • ctrl + U - 向后移动半屏

2.单行导航

  • j - 向前移动一行
  • k - 向后移动一行

3.其它导航

  • G - 移动到最后一行
  • g - 移动到第一行
  • q / ZZ - 退出 less 命令

05-文件查看-tail,head

3) tail命令
tail命令类似于我们在windows中通过鼠标手工查找,比如查看文件最后10行,从第2行一直查看到文件末尾,或者只查看文件末尾的一些信息,这些windows中都是通过人为干预的方式进行查找,在Linux中我们可以通过tail命令实现

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

使用者权限:当前文件的权限用户

命令格式:

tail [参数] [文件]  

1、要显示 txtfile.txt 文件的最后 3 行,请输入以下命令:

tail -3 txtfile.txt 

2、动态显示文档的最后内容,一般用来查看日志,请输入以下命令:

tail -f txtfile.txt

此命令显示 txtfile.txt 文件的最后 10 行。当将某些行添加至 txtfile.txt 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

如果要显示最后4行,命令如下:

tail -4f txtfile.txt

3、显示文件txtfile.txt 的内容,从第 2 行至文件末尾

tail  -n +2  txtfile.txt

4、显示文件 txtfile.txt的最后 10 个字符:

tail -c 45 txtfile.txt

总结

在tail使用的过程中,我们使用最多的就是查看文件末尾多多少行

使用tail -nf txtfile.txt

通常都是在查看日志信息(报错调试时使用)

06-文件查看-grep

2) grep命令
grep命令在使用的时候类似于我们的程序中的查询,或者在txt文档中通过ctr+f查找
grep除了能对文件操作为还可以查看我们的进程信息,类似于我们在Windows系统的任务管理器(任务栏--右键---启动任务管理器--进程)下的进程

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

grep 命令用于查找文件里符合条件的字符串,语法如下:

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

使用者权限:当前文件的权限用户

我们还是使用上面的txtfile.txt文件

为了测试效果,我们新增了其他数据

增加过程不在赘述

1、搜索 存在关键字【eeee】 的行的文件

grep eeee txtfile.txt 

2、搜索 存在关键字【eeee】 的行 且 显示行号

grep -n eeee txtfile.txt 

3、忽略大小写 搜索 存在关键字 的行

grep -i EEEE txtfile.txt 

4、搜索 不存在关键字 的行

grep -v 中国 txtfile.txt 

5、查找指定的进程信息(包含grep进程)

ps -ef | grep  sshd

说明

除最后一条记录外,其他的都是查找出的进程;最后一条记录结果是grep进程本身,并非真正要找的进程

6、查找指定的进程信息(不包含grep进程)

ps aux | grep sshd | grep -v "grep"

7、查找进程个数

 ps -ef|grep -c sshd

由上图可知sshd的进程个数为4(包含grep进程本身)

。0

07-vim定位行

在日常工作中,有可能会遇到打开一个文件,并定位到指定行的情况
例如: 在开发时, 知道某一行代码有错误,可以快速定位到出错误代码的位置
这个时候,可以使用以下命令打开文件

由于我们这里还没有学到上传文件的命令,所以我们这里还是使用上面的txtfile.txt例子,我们打开文件定位到第6行,如下:

vim txtfile.txt +6

08-vim异常处理

  • 如果 vim异常退出, 在磁盘上可能会保存有 交换文件
  • 下次再使用 vim 编辑文件时, 会看到以下屏幕信息,

解决方案:

将后缀名为.swp的文件删除即可恢复

再次编辑文件不在出现提示警告!

09-文件管理-echo命令

1.3 echo 命令

echo命令有点类似于我们在java se阶段学习的 System.out.print("hello")
但是,echo还有一个功能就是追加文件内容到文件,类似于我们在java se阶段学习的append文件流写入一样

使用者权限:所有用户

  • echo string 将字符串输出到控制台 , 通常和 重定向 联合使用
echo hello world

# 如果字符串有空格, 为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"

6.3 重定向 >(覆盖) 和 >> (追加)

  • 默认情况下 命令的结果 输出到 控制台
  • 通过 重定向 可以将结果 输出到文件

6.2.3 实现

  • 第一步: 将命令的成功结果 覆盖 指定文件内容
 echo  "major">czbk-txt.txt
命令作用
结果 > 文件名> 表示输出, 会覆盖文件的原有内容
  • 第二步: 将命令的成功结果 追加 指定文件的后面
echo  "程序员" >> czbk-txt.txt
命令作用
命令 >> 文件名>> 表示追加, 会将内容追加到已有文件的末尾
  • 第三步: 将命令的失败结果 追加 指定文件的后面 ,写报错信息
cat 不存在的目录  &>>  error.log
命令作用
命令 &>> 文件&>> 表示不区分错误类型 都放到 日志中

总结

  • 通过 命令 > 文件命令的成功结果 覆盖 指定文件内容
  • 通过 命令 >> 文件命令的成功结果 追加 指定文件的后面
  • 通过 命令 &>> 文件命令的失败结果 追加 指定文件的后面

10-awk语法-过滤和切割

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

具体语法如下

awk [选项参数] 'script' var=value file(s)awk [选项参数] -f scriptfile var=value file(s)

1、数据准备:czbk-txt.txt文本内容如下:

zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46

2、搜索含有 zhang 和 li 的学生成绩:

cat czbk-txt.txt | awk '/zhang|li/'

11-awk语法-切割后按照指定方式展示

指定分割符, 根据下标显示内容

命令含义
awk -F ‘,’ ‘{print $1, $2, $3}’ 文件操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

选项

选项英文含义
-F ','field-separator使用 指定字符 分割
$ + 数字获取第几段内容
$0获取 当前行 内容
NFfield表示当前行共有多少个字段
$NF代表 最后一个字段
$(NF-1)代表 倒数第二个字段
NR代表 处理的是第几行
# 查看文档内容
cat czbk-txt.txt 
#直接输出
cat score.txt | awk -F ' ' '{print $1,$2,$3}'

指定分割符, 根据下标显示内容

命令含义
awk -F ’ ’ ‘{OFS="==="}{print $1, $2, $3}’ 1.txt操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

选项

选项英文含义
OFS="字符"output field separator向外输出时的段分割字符串
转义序列含义
\b退格
\f换页
\n换行
\r回车
\t制表符
# 按照 === 进行分割, 打印 第一段 第二段 第三段
cat  czbk-txt.txt | awk -F ' ' '{OFS="==="}{print $1,$2,$3}'
# 按照 制表符tab 进行分割, 打印 第一段 第二段 第三段
cat czbk-txt.txt| awk -F ' ' '{OFS="\t"}{print $1,$2,$3}'

12-awk语法-toupper,tolower,length

调用 awk 提供的函数

命令含义
awk -F ‘,’ ‘{print toupper($2)}’ 1.txt操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

常用函数如下:

函数名含义作用
toupper()upper字符 转成 大写
tolower()lower字符 转成小写
length()length返回 字符长度
# 打印第一段内容
 cat czbk-txt.txt | awk -F ' ' '{print $1}'
# 将第一段内容转成大写 且 显示 
 cat czbk-txt.txt | awk -F ' ' '{print toupper($1)}'

13-awk语法-计算

求指定学科平均分

命令含义
awk ‘BEGIN{初始化操作}{每行都执行} END{结束时操作}’ 文件名BEGIN{ 这里面放的是执行前的语句 }
{这里面放的是处理每一行时要执行的语句}
END {这里面放的是处理完所有的行后要执行的语句 }

查看czbk-txt.txt 文件内容

cat czbk-txt.txt 

查看总分

注意:这里计算的是第4列的总分

cat czbk-txt.txt| awk -F ' ' 'BEGIN{}{total=total+$4} END{print total}'

查看总分, 总人数

注意:这里计算的是第4列的

cat czbk-txt.txt| awk -F ' ' 'BEGIN{}{total=total+$4} END{print total, NR}'

查看总分, 总人数, 平均分

注意:这里计算的是第4列的

 cat czbk-txt.txt | awk -F ' ' 'BEGIN{}{total=total+$4} END{print total, NR, (total/NR)}'

总结

awk在使用过程中主要用作分析

简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理

14-软连接

软连接其实就类似于我们在Windows中的【快捷方式】
  • 在Linux文件名内容 是两个文件, 分开的!

  • 创建软链接的原理,

    为什么有软连接?

    因为 某些文件和目录 的 路径很深, 所以 需要增加 软链接(快捷方式)

使用者权限:所有用户

语法如下:

命令英文作用
ln -s 目标文件绝对路径 快捷方式路径link给目标文件增加一个软链接, 通俗讲就是快捷方式

给home/itcast/txtfile.txt文件增加软连接

 ln  -s /home/itcast/txtfile.txt    czbk-txt

上面;我们将/home/itcast/路径下的txtfile.txt文件增加软连接到

czbk-txt,然后通过cat 访问czbk-txt也是可以正常访问的

总结

通过 `ln -s 源文件的绝对路径 其实就是给目标文件 增加 快捷方式

15-查找命令-find

引子
find命令类似与在Windows中全局查找

find概念

find命令用来在指定目录下查找文件。

任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法

find <指定目录> <指定条件> <指定内容>

1、将目前目录及其子目录下所有延伸档名是 gz 的文件查询出来

find . -name "*.gz"

2、将目前目录及其子目录下所有最近 1天内更新过的文件查询出来

find . -ctime -1

3、全局搜索czbk

/代表是全盘搜索,也可以指定目录搜索

 find / -name  'czbk'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值