Linux篇(文件管理命令)
目录
一、Linux下文件命名规则
1. 可以使用哪些字符
2. 文件名的长度
3. 文件名的大小写
4. Linux文件扩展名
二、目录创建与删除
1. 目录创建
1.1. mkdir创建目录
1.2. mkdir -p 递归创建目录
1.3. 使用mkdir同时创建多个目录
2. 目录删除(必须是空目录)
2.1. rmdir移除空目录
2.2. rmdir -p递归删除空目录
2.3. 使用rmdir同时删除多个空目录
三、文件创建与删除
1. 文件创建
1.1. touch创建文件
1.2. 使用touch命令同时创建多个文件
1.3. {1..5}根据序号同时创建多个文件
2. 文件删除
2.1. rm 普通删除
2.2. rm -rf 删除根目录下所有文件
四、复制操作
1. cp复制操作
2. cp复制并重命名文件
3. cp复制文件夹到指定路径
五、剪切操作
六、重命名操作
七、打包压缩与解压缩
1. 打包
2. 压缩
3. 单独打包操作
4. 查看打包后的文件信息
5. 打包并压缩
6. 对压缩包进行解压
八、zip压缩与解压缩
1. zip压缩
2. unzip解压缩
3. 扩展
4. zip压缩与解压缩
九、VIM编辑器
1. vi 编辑器
2. vim 编辑器
3. vim编辑器的安装
3.1. 已安装
3.2. 未安装
十、vim编辑器的四种模式
1. VIM四种模式
2. VIM四种模式的关系
3. VIM编辑器的使用
3.1. 使用vim打开文件
3.2. vim编辑器保存文件
3.3. vim编辑器强制退出(不保存)
十一、四种模式下面的相关操作
1. 命令模式下的相关操作
1.1. 如何进入命令模式
1.2. 命令模式下我们能做什么
1.3. 移动光标到首行或末行
1.4. 翻屏
1.5. 快速定位光标到指定行
1.6. 复制/粘贴
1.6.1. 复制当前行(光标所在那一行)
1.6.2. 从当前行开始复制指定的行数,如复制5行,5yy
1.7. 剪切/删除
1.7.1. 剪切/删除当前光标所在行
1.7.2. 剪切/删除多行(从当前光标所在行开始计算)
1.8. 撤销/恢复
2. 末行模式下的相关操作
2.1. 如何进入末行模式
2.2. 2. 末行模式下我们能做什么
2.3. 3. 保存/退出
2.4. 4. 查找/搜索
2.5. 文件内容的替换
2.6. 显示行号
2.7. set paste模式
3. 编辑模式
3.1. 编辑模式的作用
3.2. 如何进入编辑模式
3.3. 退出编辑模式
4. 可视化模式
4.1. 如何进入到可视化模式
4.2. 可视化模式复制操作
7.3 为配置文件添加#多行注释
7.4 为配置文件去除#多行注释
十二、VIM编辑器实用功能
1. 代码着色
2. 异常退出解决方案
3. 退出vim编辑器
十三、文本处理命令
1. 查看文件内容
cat:查看及合并
more:分屏显示文件
less:分屏显示文件
head:显示文件开头
tail:显示文件结尾
2. 统计文件信息
wc:统计文件内容数量
du:统计文件大小
3. 文本处理
find:文件查找
grep:搜索文件内容
输出重定向
一、Linux下文件命名规则
1. 可以使用哪些字符
理论上除了字符“/”之外,所有的字符都可以使用,
在目录名或文件名中,不建议使用某些特殊字符,例如:<、>、?、* 等!
2. 文件名的长度
目录名或文件名的长度不能超过 255 个字符
3. 文件名的大小写
Linux目录名或文件名区分大小写,建议文件名一律使用小写字母
4. Linux文件扩展名
Linux文件的扩展名对 Linux 操作系统没有特殊的含义,
Linux 系统并不以文件的扩展名开分区文件类型
例如:zhengge.exe 只是一个文件,其扩展名 .exe 并不代表此文件就一定是可执行的。
在Linux系统中,文件扩展名的用途为了使运维人员更好的区分不同的文件类型
在Linux操作系统中,文件的类型是依靠权限位的标识符来进行区分,当然也可以通过颜色,如:黑色普通文件,天蓝色文件夹
二、目录创建与删除
1. 目录创建
1.1. mkdir创建目录
基本语法:
mkdir 目录名称
主要功能:根据目录的名称创建一个目录
mkdir = make directory
1.2. mkdir -p 递归创建目录
基本语法:
mkdir -p /usr/local/nginx/conf
# 选项说明:
-p:递归创建,从左边的路径开始一级一级创建目录,直到路径结束
1.3. 使用mkdir同时创建多个目录
mkdir 目录名称1 目录名称2 目录名称3 ...
案例:在当前目录下创建a、b、c三个目录
mkdir a
mkdir b
mkdir c
# 或
mkdir a b c
2. 目录删除(必须是空目录)
2.1. rmdir移除空目录
基本语法:
rmdir 目录名称
rmdir = remove directory,移除目录
案例:把家目录下的zhengge删除(空目录)
rmdir zhengge
2.2. rmdir -p递归删除空目录
基本语法:
rmdir -p 目录名称1/目录名称2/目录名称3/...
主要功能:从右向左一级一级删除空目录
案例:递归删除zhengge文件夹中的yunwei文件夹中的zhengge
rmdir -p zhengge/yunwei/zhengge
2.3. 使用rmdir同时删除多个空目录
rmdir 目录名称1 目录名称2 目录名称3 ...
案例:删除家目录中的a、b、c三个空目录
rmdir a b c
三、文件创建与删除
1. 文件创建
1.1. touch创建文件
基本语法:
touch 文件名称
主要功能:在Linux系统中的当前目录下创建一个文件
案例:在当前目录下创建一个readme.txt文件
touch readme.txt
1.2. 使用touch命令同时创建多个文件
基本语法:
touch 文件名称1 文件名称2 文件名称3 ...
案例:创建一个shop商城文件夹,然后在内部创建index.php/admin.php/config.php三个文件
mkdir shop
touch shop/index.php
touch shop/admin.php
touch shop/config.php
# 或
touch shop/index.php shop/admin.php shop/config.php
提出问题:观察以下命令,看看有何区别?
第一种写法:touch shop/index.php shop/admin.php shop/config.php
代表在shop目录下首先创建一个index.php,在创建一个admin.php,最后config.php
第二种写法:touch shop/index.php admin.php config.php
代表在shop目录下首先创建index.php,然后在当前目录下创建admin.php,最后在当前目录下创建
config.php
1.3. {1..5}根据序号同时创建多个文件
基本语法:
touch 文件名称{开始序号..结束序号}
# 含义:
# 根据提供的开始序号~结束序号,一个一个创建文件
案例:创建file1、file2、file3、file4、file5共5个文件
touch file1
touch file2
touch file3
touch file4
touch file5
或
touch file{1..5}
2. 文件删除
2.1. rm 普通删除
基本语法:
rm [选项] 文件或文件夹的名称
# 选项说明:
# -r :针对文件夹,代表递归删除,先把目录下的所有文件删除,然后在删除文件夹
# -f :强制删除,不提示,初学者一定要慎重!!!
2.2. rm -rf 删除根目录下所有文件
rm -rf /* => 代表删除根目录下的所有文件(如果没有备份,恢复的几率不高)
# 说明:
# rm 1:删除
# -r :递归删除(无论文件夹是否为空)
# # -f :强制删除不提示
# / :代表根分区
# * :所有
四、复制操作
1. cp复制操作
基本语法:
# cp [选项] 源文件或文件夹 目标路径
选项说明:
-r :递归复制,主要针对文件夹
cp = copy复制
案例:把readme.txt文件从当前目录复制一份放到/tmp文件夹中
# cp readme.txt /tmp/
2. cp复制并重命名文件
基本语法:
# cp [选项] 源文件或文件夹 目标路径/新文件或文件夹的名称
案例:把readme.txt文件从当前目录复制一份放到/tmp文件夹中并重命名为readme.txt.bak
# cp readme.txt /tmp/readme.txt.bak
3. cp复制文件夹到指定路径
# cp -r 源文件夹名称 目标路径/
案例:把shop目录连通其内部的文件统一复制到/tmp目录下
# mkdir shop
# touch shop/index.php shop/admin.php shop/config.php
# cp -r shop /tmp/
五、剪切操作
基本语法:
# mv 源文件或文件夹 目标路径/
mv = move,剪切、移动的含义
案例:把readme.txt文件剪切到/tmp目录下
# rm -rf /tmp/readme.txt
# mv readme.txt /tmp/
案例:把shop文件夹移动到/usr/local/nginx目录下
# mkdir /usr/local/nginx
# mv shop /usr/local/nginx/
六、重命名操作
什么是重命名?
简单来说,就是给一个文件或文件夹更改名称
基本语法:
# mv 源文件或文件夹名称 新文件或文件夹的名称
案例:把readme.txt文件更名为README.md文件
# mv readme.txt README.md
案例:把shop文件目录更名为wechat目录
# mkdir shop
# mv shop wechat
七、打包压缩与解压缩
1. 打包
默认情况下,Linux的只能压缩一个文件
针对多文件或文件夹无法进行直接压缩
所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作
1.txt 5MB
2.txt 10MB
3.txt 15MB
1.txt + 2.txt + 3.txt = 打包 = 123.tar = 30MB
打包只是把多个文件或文件夹打包放在一个文件中,
但是并没有进行压缩,所以其大小还是原来所有文件的总和
2. 压缩
也是一个文件和目录的集合,且这个集合也被存储在一个文件中,
但它们的不同之处在于,压缩文件所占用的磁盘空间比集合中所有文件大小的总和要小
1.txt 5MB
2.txt 10MB
3.txt 15MB
1.txt + 2.txt + 3.txt = 压缩 = 123.tar.gz = 20MB(体积变小了)
3. 单独打包操作
基本语法:
# tar [选项] 打包后的名称.tar 多个文件或文件夹
选项说明:
-c :打包
-f :filename,打包后的文件名称
-v :显示打包的进度
-u :update缩写,更新原打包文件中的文件
-t :查看打包的文件内容
案例:把a.txt、b.txt、c.txt文件打包到abc.tar文件中
# tar -cvf abc.tar a.txt b.txt c.txt
案例:把wechat文件夹进行打包wechat.tar
# tar -cvf wechat.tar wechat
4. 查看打包后的文件信息
命令模板:
# tar -tf 打包后的文件名称
主要功能:查看tar包中的文件信息
案例:查看abc.tar包中的文件信息
# tar -tf abc.tar
# tar -uf 打包后的文件名称
u = update,更新,如果还想往tar包中更新或追加内容都可以通过-u选项
案例:向abc.tar包中添加一个d.txt文件
# touch d.txt
# tar -uf abc.tar d.txt
查看是否添加成功
# tar -tf abc.tar
扩展:如何把tar包中的文件释放出来
打包
# tar -cf abc.tar a.txt b.txt c.txt
打包 => 释放(-c 变成 -x)
释放
# tar -xf abc.tar
5. 打包并压缩
基本语法:
# tar [选项] 压缩后的压缩包名称 要压缩的文件或文件夹
选项说明:
-cf :对文件或文件夹进行打包
-v :显示压缩进度
-z :使用gzip压缩工具把打包后的文件压缩为.gz
-j :使用bzip2压缩工具把打包后的文件压缩为.bz2
-J :使用xz压缩工具把打包后的文件压缩为.xz
压缩速度:gzip > bzip2 > xz
压缩率:gzip < bzip2 < xz
100M 90M 80M 70M
案例:把a.txt、b.txt、c.txt文件打包并压缩为abc.tar.gz
# tar -zcf abc.tar.gz a.txt b.txt c.txt
案例:把wechat文件夹压缩为wechat.tar.gz格式的压缩包
# tar -zcf wechat.tar.gz wechat
6. 对压缩包进行解压
解压过程非常简单,就是把压缩的参数中的c换成x就可以实现解压缩了
*.tar.gz格式的压缩包
# tar -zxf 名称.tar.gz
*.tar.bz2格式的压缩包
# tar -jxf 名称.tar.bz2
*.tar.xz格式的压缩包
# tar -Jxf 名称.tar.xz
案例:把abc.tar.gz格式的压缩包进行解压缩操作
# tar -zxf abc.tar.gz
案例:把wechat.tar.gz格式的压缩包进行解压缩操作
# tar -zxf wechat.tar.gz
八、zip压缩与解压缩
1. zip压缩
基本语法:
# zip [选项] 压缩后的文件名称.zip 文件或文件夹
选项说明:
-r :递归压缩,主要针对的是文件夹
Linux下已经有gzip、bzip2以及xz压缩命令了,为什么还需要使用zip压缩呢?
答:zip格式在Windows以及Linux中都是可以正常使用的。
案例:把a.txt、b.txt、c.txt进行压缩为abc.zip
# zip abc.zip a.txt b.txt c.txt
案例:把wechat文件夹压缩为wechat.zip
# zip -r wechat.zip wechat
2. unzip解压缩
基本语法:
# unzip 压缩包名称 => 解压到当前目录
# unzip 压缩包名称 -d 指定路径 => 解压到指定路径下
案例:对abc.zip文件进行解压缩
# unzip abc.zip
案例:把wechat.zip解压到/usr/local/nginx目录下
# unzip wechat.zip -d /usr/local/nginx/
3. 扩展
# tar -zxf 压缩包名称.tar.gz [参数] 指定路径
第一种解决思路:随用随查,百度、Google
# tar -zxf 压缩包名称.tar.gz -C 指定路径
第二种解决思路:可以使用man命令(manual缩写,手册)
# man tar命令
# tar -zxf 压缩包名称.tar.gz -C 指定路径
4. zip压缩与解压缩
给我们提供一种既可以在Windows中使用的,也可以提供一种在Linux中使用的通用的压缩格式。
# zip [-r] 压缩包名称.zip 要压缩的文件或文件夹
解压缩:
# unzip 压缩包名称.zip -d 指定路径
九、VIM编辑器
1. vi 编辑器
vi(visual editor)编辑器通常被简称为vi,
它是Linux和Unix系统上最基本的文本编辑器,类似于Windows 系统下的notepad(记事本)编辑器
2. vim 编辑器
Vim(Vi improved)是vi编辑器的加强版,比vi更容易使用,
类似于windows编辑系统的NotePad++文本编辑器
vi的命令几乎全部都可以在vim上使用。
3. vim编辑器的安装
3.1. 已安装
Centos通常都已经默认安装好了 vi 或 Vim 文本编辑器
我们只需要通过vim命令就可以直接打开vim编辑器了,如下图所示:
3.2. 未安装
有些精简版的Linux操作系统,默认并没有安装vim编辑器(可能自带的是vi编辑器)
当我们在终端中输入vim命令时,系统会提示"command not found"。
解决办法:有网的前提下,可以使用yum工具对vim编辑器进行安装
# yum install vim -y
十、vim编辑器的四种模式
1. VIM四种模式
1、命令模式
使用VIM编辑器时,默认处于命令模式
在该模式下可以移动光标位置,可以通过 快捷键 对文件内容 进行复制、粘贴、删除等操作
2、编辑模式或输入模式
在命令模式下输入小写字母a或小写字母i即可进入编辑模式,在该模式下可以对文件的内容进行编辑
3、末行模式
在命令模式下输入冒号 : 即可进入末行模式,可以在 末行输入命令 来对文件进行查找、替换、保存、退出等
操作
4、可视化模式
可以做一些列选操作(通过方向键选择某些列的内容)
VIM四种模式的关系
2. VIM四种模式的关系
3. VIM编辑器的使用
3.1. 使用vim打开文件
基本语法:
# vim 文件名称
① 如果文件已存在,则直接打开
② 如果文件不存在,则vim编辑器会自动在内存中创建一个新文件
**案例:**使用vim命令打开readme.txt文件
# vim readme.txt
3.2. vim编辑器保存文件
在任何模式下,连续按两次Esc键,即可返回到命令模式
然后按冒号:,进入到末行模式,输入wq,代表保存并退出。
3.3. vim编辑器强制退出(不保存)
在任何模式下,连续按两次Esc键,即可返回到命令模式。然后按冒号:,
进入到末行模式,输入q!,代表强制退出但是不保存文件
十一、四种模式下面的相关操作
1. 命令模式下的相关操作
1.1. 如何进入命令模式
在Linux操作系统中,当我们使用vim命令直接打开某个文件时,默认进入的就是命令模式
如果我们处于其他模式(编辑模式、可视化模式以及末行模式)可以连续按两次Esc键也可以返回命令模式
1.2. 命令模式下我们能做什么
①移动光标 ② 复制 粘贴 ③ 剪切 粘贴 删除 ④ 撤销与恢复
1.3. 移动光标到首行或末行
移动光标到首行 => gg
移动光标到末行 => G
1.4. 翻屏
向上 翻屏,按键:ctrl + b (before) 或 PgUp
向下 翻屏,按键:ctrl + f (after) 或 PgDn
向上翻半屏,按键:ctrl + u (up)
向下翻半屏,按键:ctrl + d (down)
1.5. 快速定位光标到指定行
行号 + G,如150G代表快速移动光标到第150行
1.6. 复制/粘贴
1.6.1. 复制当前行(光标所在那一行)
按键:yy
粘贴:
在想要粘贴的地方按下p 键【将粘贴在光标所在行的下一行】,如果想粘贴在光标所在行之前,则使用P键
1.6.2. 从当前行开始复制指定的行数,如复制5行,5yy
粘贴:
在想要粘贴的地方按下p 键【将粘贴在光标所在行的下一行】,如果想粘贴在光标所在行之前,则使用P键
1.7. 剪切/删除
在VIM编辑器中,剪切与删除都是dd
如果剪切了文件,但是没有使用p进行粘贴,就是删除操作
如果剪切了文件,然后使用p进行粘贴,这就是剪切操作
1.7.1. 剪切/删除当前光标所在行
按键:dd (删除之后下一行上移)
粘贴:p
注意:dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。
1.7.2. 剪切/删除多行(从当前光标所在行开始计算)
按键:数字dd
粘贴:p
特殊用法:剪切/删除光标所在的当前行(光标所在位置)之后的内容,但是删除之后下一行不上移
按键:D (删除之后当前行会变成空白行)
1.8. 撤销/恢复
撤销:u(undo)
恢复:ctrl + r 恢复(取消)之前的撤销操作 [重做,redo]
2. 末行模式下的相关操作
2.1. 如何进入末行模式
进入末行模式的方法只有一个,在命令模式下使用冒号:的方式进入
2.2. 2. 末行模式下我们能做什么
文件保存、退出、查找与替换、显示行号、paste模式等等
2.3. 3. 保存/退出
:w => 代表对当前文件进行保存操作,但是其保存完成后,并没有退出这个文件
:q => 代表退出当前正在编辑的文件,但是一定要注意,文件必须先保存,然后才能退出
:wq => 代表文件先保存后退出(保存并退出)
如果一个文件在编辑时没有名字,则可以使用:wq 文件名称,代表把当前正在编辑的文件保存到指定的名称中,然后退出
:q! => 代表强制退出但是文件未保存(不建议使用)
2.4. 4. 查找/搜索
切换到命令模式,然后输入斜杠/(也是进入末行模式的方式之一)
进入到末行模式后,输入要查找或搜索的关键词,然后回车
如果在一个文件中,存在多个满足条件的结果
在搜索结果中切换上/下一个结果:N/n (大写N代表上一个结果,小写n代表下一个结果)
如果需要取消高亮,则需要在末行模式中输入:noh【no highlight】
2.5. 文件内容的替换
第一步:首先要进入末行模式(在命令模式下输入冒号:)
第二步:根据需求替换内容
① 只替换光标所在这一行的第一个满足条件的结果(只能替换1次)
:s/要替换的关键词/替换后的关键词 + 回车
案例:把hello centos中的centos替换为centos7.6
切换光标到hello centos这一行
:s/centos/centos7.6
② 替换光标所在这一行中的所有满足条件的结果(替换多次,只能替换一行)
:s/要替换的关键词/替换后的关键词/g g=global全局替换
案例:把hello centos某一行中的所有centos都替换为centos7.6
切换光标到hello centos这一行
:s/centos/centos7.6/g
③ 针对整个文档中的所有行进行替换,只替换每一行中满足条件的第一个结果
:%s/要替换的关键词/替换后的关键词
案例:把每一行中的第一个hello关键词都替换为hi
:%s/hello/hi
④ 针对整个文档中的所有关键词进行替换(只要满足条件就进行替换操作)
:%s/要替换的关键词/替换后的关键词/g
案例:替换整个文档中的hello关键词为hi
:%s/hello/hi/g
2.6. 显示行号
基本语法:
:set nu
nu = number,行号
取消行号 => :set nonu
2.7. set paste模式
为什么要使用paste模式?
问题:
在终端Vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加
原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,Vim则把这些内容作为用户的键盘输入来处理
导致在遇到换行符的时候,如果Vim开启了自动缩进,就会默认的把上一行缩进插入到下一行的开头,最终使代码变乱
在粘贴数据之前,输入下面命令开启paste模式
:set paste
粘贴完毕后,输入下面命令关闭paste模式
:set nopaste
3. 编辑模式
3.1. 编辑模式的作用
编辑模式的作用比较简单,主要是实现对文件的内容进行编辑模式。
3.2. 如何进入编辑模式
首先你需要进入到命令模式,然后使用小写字母a或小写字母i,进入编辑模式。
命令模式 + i: insert缩写,代表在光标之前插入内容
**命令模式 + a: **append缩写,代表在光标之后插入内容
3.3. 退出编辑模式
在编辑模式中,直接按Esc,即可从编辑模式退出到命令模式。
4. 可视化模式
4.1. 如何进入到可视化模式
在命令模式中,直接按ctrl + v(可视块)或V(可视行)或v(可视),然后按下↑ ↓ ← →方向键来选中需要复制的区块,
按下y 键进行复制(不要按下yy),最后按下p 键粘贴
退出可视模式按下Esc
4.2. 可视化模式复制操作
第一步:在命令模式下,直接按小v,进入可视化模式
第二步:使用方向键↑ ↓ ← →选择要复制的内容,然后按y键
第三步:移动光标,停在需要粘贴的位置,按p键进行粘贴操作
7.3 为配置文件添加#多行注释
第一步:按Esc退出到命令模式,按gg切换到第1行
第二步:然后按Ctrl+v进入到可视化区块模式(列模式)
第三步:在行首使用上下键选择需要注释的多行
第四步:按下键盘(大写)“I”键,进入插入模式(Shift + i)
第五步:输入#号注释符
第六步:输入完成后,连续按两次Esc即可完成添加多行注释的过程
7.4 为配置文件去除#多行注释
第一步:按Esc退出到命令模式,按gg切换到第1行
第二步:然后按Ctrl+v进入可视化区块模式(列模式)
第三步:使用键盘上的方向键的上下选中需要移除的#号注释
第四步:直接按Delete键即可完成删除注释的操作
十二、VIM编辑器实用功能
1. 代码着色
之前说过vim 是vi 的升级版本,其中比较典型的区别就是vim 更加适合coding,
因为vim比vi 多一个代码着色的功能,这个功能主要是为程序员提供编程语言升的语法显示效果,
如下:
第一步:定义后缀名为网页文件的代码文件
# vim index.php
第二步:编写对应的PHP代码
<?php
echo 'hello world';
?>
在VIM编辑器中,我们可以通过:syntax on或:syntax off开启或关闭代码着色功能
2. 异常退出解决方案
什么是异常退出
在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的
效果,这个情况称之为异常退出:
温馨提示:每个文件的异常文件都会有所不同,其命名规则一般为.文件名称.swp
解决办法:将交换文件(在编程过程中产生的临时文件)删除掉即可
【在上述提示界面按下D 键或者使用rm 指令删除交换文件】
# rm .1.php.swp
3. 退出vim编辑器
在vim中,退出正在编辑的文件可以使用:q或者:wq
除了上面的这个语法之外,vim 还支持另外一个保存退出(针对内容)方法:x
① :x在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表示保存并退出(:wq)
② 如果文件没有被修改,但是使用wq 进行退出的话,则文件的修改时间会被更新;
但是如果文件没有被修改,使用x 进行退出的话,则文件修改时间不会被更新的;主要是会混淆用户对文件的修改时间的认定。
十三、文本处理命令
1. 查看文件内容
cat:查看及合并
命令:cat
作用:查看文件内容
语法:#cat 文件名称
#cat 文件1 文件2 > 文件3
用法一:cat 文件名
示例代码:
#cat 1.txt
含义:显示1.txt文件的内容
特别注意:cat 命令用于查看文件内容时,不论文件内容有多少,都会一次性显示。如果文件非常大,那么文件开头的内容就看不到了。cat 命令适合查看不太大的文件。
用法二:cat 文件1 文件2 > 文件3
示例代码:
#cat 1.txt 2.txt > 3.txt
含义:将1.txt和2.txt文件内容合并后,输出到3.txt
more:分屏显示文件
命令:more
作用:分屏查看文件
语法:#more 文件名
流程:more在读取文件时,默认已经加载文件的全部内容。==
另外:more不能通过上下方向键显示上下内容,退出时会在Shell中留下刚显示的内容
用法一:more 文件名
示例代码:
#more /var/log/boot.log
含义:分页显示/var/log/boot.log文件的内容
more 命令的执行会打开一个交互界面,下面是一些常用交互命令:
回车键 | 向下移动一行。 |
d | 向下移动半页 |
空格键 | 向下移动一页 |
b | 向上移动一页,后期引入功能,早期more只能前进不能后退 |
q | 退出 more |
less:分屏显示文件
命令:less (less is more,more的增强版)
作用:分屏查看文件
语法:# less 文件名
流程:不是加载整个文件,而是一点一点进行加载,相对而言,读取大文件时,效率比较高。
另外:less可以通过上下方向键显示上下内容,退出时不会在Shell中留下刚显示的内容
示例代码:使用less命令查看/var/log/boot.log的文件内容
用法一:less 文件名
示例代码:
#less /var/log/boot.log
含义:分页显示/var/log/boot.log文件的内容
less 命令的执行也会打开一个交互界面,下面是一些常用交互命令(和more类似):
回车键 | 向下移动一行。 |
d | 向下移动半页。 |
空格键 | 向下移动一页。 |
b | 向上移动一页。 |
上下方向键 | 向上与向下移动,less命令特有功能键 |
less -N 文件名称 | 显示行号 |
/ 字符串 | 搜索指定的字符串。 |
q | 退出less |
cat,more,less三者的对比
cat | more | less | |
作用 | 显示小文件(一屏以内) | 显示大文件(超过一屏) | 显示大文件(超过一屏) |
交互命令 | 无 | 有 | 有 |
上下键翻行 | 无 | 无 | 有 |
head:显示文件开头
命令:head
作用:查看一个文件的前n 行,如果不指定n,则默认显示前10 行
语法:#head [参数选项] 文件名
常见参数:
-n 表示显示前n行的内容,n等于行数
用法一:head 文件名
示例代码:
#head /var/log/boot.log
含义:显示/var/log/boot.log文件的内容,默认为前10行
用法二:head -n 文件名
示例代码:
#head -3 /var/log/boot.log
含义:显示/var/log/boot.log文件的前3行内容
tail:显示文件结尾
命令:tail
作用:查看一个文件的最后n 行,如果n 不指定默认显示最后10 行
语法:# tail -n 文件路径 【n 表示数字】
常见参数:
-n 显示最后n行的内容,n等于行数
-f 输出文件变化后新增加的数据
用法一:tail 文件名
示例代码:
#tail /var/log/boot.log
含义:显示/var/log/boot.log文件的内容,默认为最后10行
用法二:tail -n 文件名
示例代码:
#tail -5 /var/log/boot.log
含义:显示/var/log/boot.log文件的最后5行内容
用法二:tail -f 文件名
示例代码:
#tail -f /var/log/messages
含义:显示/var/log/messages文件中,执行tail -f 命令后,新增的数据
注意:作用相当于查看一个文件动态变化的内容,一般用于查看系统的日志的变化
按下ctrl+c可以退出查看状态
注意:
ctrl+c 键,在命令行中c 不再表示copy,而表示cancel(取消),
在程序执行过程中,通常都可以使用ctrl+c来终止程序运行或者退出程序
2. 统计文件信息
wc:统计文件内容数量
命令:wc,wc = word count
作用:用于统计文件内容信息(包含行数、单词数、字节数)
语法:# wc [参数选项] 文件名
常见参数:
-l:表示lines,行数(以回车/换行符为标准)
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes, 字节数(空格,回车,换行)
用法一:wc -lwc 文件名
示例代码:
#wc -lwc /var/log/boot.log
含义:统计/var/log/boot.log文件的行数,单词数,字节数
注意:wc命令选项可以混在一起搭配使用,但选项的顺序不影响输出结果,第一个是行数,第二个是单词数,第三个数字节数。
du:统计文件大小
命令:du
作用:查看文件或目录(会递归显示子目录)占用磁盘空间大小
语法:# du [参数选项] 文件名或目录名
常见参数:
-s :summaries,只显示汇总的大小,统计文件夹的大小
-h:表示以高可读性的形式进行显示,如果不写-h,默认以KB的形式显示文件大小
用法一:du 文件名
示例代码:
#du /var/log/boot.log
含义:统计/var/log/boot.log文件的大小
用法二:du -h 文件名
示例代码:
#du -h /var/log/boot.log
含义:统计/var/log/boot.log文件的大小,以高可读性显示
示例代码:统计 /var/log 目录大小
用法三:du 目录名
示例代码:
#du /var/log/
含义:统计/var/log/目录的大小,包含目录下每一个单独文件的大小
用法四:du -s 目录名
示例代码:
#du -s /var/log/
含义:统计/var/log/boot.log文件的大小,汇总只显示目录大小
用法五:du -sh 目录名
示例代码:
#du -sh /var/log/
含义:统计/var/log/boot.log文件的大小,汇总只显示目录大小,并采用高可读性
3. 文本处理
find:文件查找
命令:find
作用:用于查找文档(其选项有55 个之多)
语法:# find 路径范围 选项1 选项1的值 [选项2 选项2 的值…]
常用参数:
-name:按照文档名称进行搜索(支持模糊搜索)
* : 通配符,匹配任意个任意字符
-stype:按照文档的类型进行搜索,文档类型的值,f(file)表示文件,d(directory)表示文件夹
用法一:find 路径范围 选项1 选项1的值 选项2 选项2的值
示例代码:
#find /var/ -name boot.log -type f
含义:在/var/目录下,查找名称等于boot.log,类型是文件的文档
A var表示要查找的目录名字
B var表示,在var目录内查找
用法二:find 路径范围 选项1 选项1的值使用通配符 选项2 选项2的值
示例代码:
#find /var/log -name "*.log" -type f
含义:在/var/log目录下,查找所有.log结尾,类型是文件的文档,*.log需要用引号引起来。
用法一:find 路径范围 选项1 选项1的值
示例代码:
#find /var/log -type d
含义:在/var/log目录下,查找所有文件夹
grep:搜索文件内容
命令:grep
作用:在文件中直接找到包含指定信息的那些行,并把这些信息显示出来
语法:#grep 要查找的内容 文件名
用法一:grep 查找的内容 文件名
示例代码:
#grep network boot.log
含义:在boot.log文件中,查找包含network的行
用法二:grep 查找的内容 多个文件
示例代码:
#grep network /var/log/*
含义:在/var/log目录下的所有文件中,查找包含network的行
输出重定向
场景:
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,
则这时候需要使用到的输出重定向技术
>:标准输出重定向 :覆盖输出,会覆盖掉原先的文件内容
>>:追加重定向 :追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:#有输出的命令 重定向符号 文件名
用法一:使用 > 进行覆盖输出
示例代码:
#ll > llroot.txt
含义:将ll命令输出的内容,写入到llroot.txt文件中,如果llroot.txt文件中有其他内容,则先清空,在写入
注意:文件路径中的文件可以是不存在的文件,例如llroot.txt可以不存在,执行命令时会自动创建这个文件
用法二:使用 >> 进行追加输出
示例代码:
#ll >> llroot.txt
含义:将ll命令输出的内容,追加写入到llroot.txt文件中
注意:文件路径中的文件可以是不存在的文件,例如llroot.txt可以不存在,执行命令时会自动创建这个文件