<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<p></p><div class="toc"><h3><a name="t0"></a><a name="t0"></a>文章目录</h3><ul><ul><li><a href="#Linux_6" rel="nofollow" target="_self">一、Linux工作目录</a></li><li><a href="#_36" rel="nofollow" target="_self">二、文件操作</a></li><li><a href="#_182" rel="nofollow" target="_self">三、查看文件</a></li><li><a href="#_283" rel="nofollow" target="_self">四、文件搜索</a></li><li><a href="#_360" rel="nofollow" target="_self">五、打包压缩</a></li><li><a href="#_402" rel="nofollow" target="_self">六、写在最后</a></li></ul></ul></div><p></p>
Linux操作系统秉持 “一切皆是文件” 的思想,将其中的文件、目录、设备等全部当作文件来管理,因此,文件管理命令是Linux常用命令的基础。
下面我们来对Linux文件管理必须掌握的操作命令来一一进行阐述。
一、Linux工作目录
目录结构是磁盘等存储设备上文件的组织形式,主要体现在对文件和目录的组织方式上。
Linux文件系统采用了多级目录的树型层次结构
管理文件。树型结构的最上层是根目录
,用/
表示,是唯一的根节点。
Linux操作系统中目录树型结构如下图所示:
Linux目录结构固有的目录中按照规定存放功能相似的文件,其发行版本中常用的目录以及目录存放的文件分别如下:
目录名 | 说明 |
---|---|
/ | Linux系统根目录 |
/home | 普通用户的主目录,每个用户在该目录下都有一个与用户名相同的目录 |
/root | 该目录用于存放根用户(超级用户)的主目录 |
/etc | 存放系统配置文件和管理文件,这些文件都是文本文件 |
/boot | 存放内核和系统启动程序 |
/dev | 存放设备文件 |
/bin | 存放普通用户可执行文件,系统中的任何用户都可以执行该目录中的命令 |
/sbin | 存放系统的管理命令,普通用户不能执行该目录中的命令 |
/usr | 该目录最庞大,存放应用程序及相关文件 |
/media | 用于挂载可移动设备的临时目录 |
/mnt | 该目录主要用于存放系统引导后被挂载的文件系统的挂载点 |
/lib | 包含支持位于/bin和/sbin下的二进制文件的库文件 |
/srv | srv代表服务,包含服务器特定服务相关的数据 |
/proc | 包含系统进程的相关信息 |
/var | 用于存放系统中经常变化的文件,如日志文件、用户邮件文件等 |
/tmp | 公共的临时文件存储点 |
二、文件操作
Linux系统中常见的文件分为普通文件和目录文件,文件操作命令一般是指查看路径、切换目录、创建、删除、修改文件名等。下面对常用的文件操作命令进行阐述。
1、pwd
pwd
命令的原意为 print working directory, 用于 显示当前工作目录的绝对路径,pwd命令通常不添加参数,直接在命令行中使用。
命令格式
:“ pwd [选项] ”
[root@localhost ~]# pwd
- 1
2、cd
cd
命令的原意为 change directory, 用于 切换工作路径。
命令格式
: cd 参数
命令 | 说明 |
---|---|
" cd " | 该命令直回到用户主目录 |
" cd ~ " | 切换到当前用户的家目录 |
" cd - " | 返回到上一次所处的目录 |
" cd …" | 返回到上一级目录 |
3、ls
ls
命令的原意为 list ,用于列出参数的属性信息。
命令格式
:ls [选项] [参数]
ls 的 参数
通常为文件或目录,常用的 选项
列表如下表所示:
选项 | 说明 |
---|---|
-l | 以详细信息的形式展示出当前目录下的文件 |
-a | 显示当前目录下的全部文件(包括隐藏文件) |
-d | 查看目录属性 |
-t | 按创建的时间顺序列出文件 |
-i | 输出文件的inode编号 |
-R | 列出当前目录下的所有文件信息,并以递归的方式显示各个子目录中的文件和子目录信息 |
示例:
[root@localhost ~]# ls #显示当前目录下的全部文件
[root@localhost ~]# ls -a #显示当前目录下的全部文件(包含隐藏文件)
[root@localhost ~]# ls -l #显示当前目录下全部文件的属性、大小等详细信息
- 1
- 2
- 3
4、touch
touch
命令用于创建空白文件或设置文件的时间。
命令格式
:touch [选项] 文件或目录名
命令选项:" -d "
修改文件的修改 / 存储时间
示例:
[root@localhost ~]# touch test #创建一个空文件(原来不存在)
[root@localhost ~]# touch * #把当前目录下的所有文件的存储和修改时间改为当前系统的使时间
[root@localhost ~]# touch -d "20200326" test #把文件test的存取和修改时间改为2020年3月26日
- 1
- 2
- 3
5、mkdir
mkdir
命令的原意为 make directory, 即 创建目录。
命令格式
:mkdir [选项] 参数
选项 | 说明 |
---|---|
-p | 若路径中的目录不存在,则先创建目录,即循环建立目录 |
-v | 查看文件创建过程 |
示例:
[root@localhost ~]# mkdir -pv all/test #在当前路径下的all目录中创建test目录,并查看创建过程
- 1
6、rmdir
rmdir
原意为 remove directory,该命令与rm命令类似,但命令仅仅用于删除目录
。rmdir命令格式如下:
rmdir [选项] 目录
- 1
选项 | 说明 |
---|---|
-p | 循环删除目录 |
示例:
#删除当前路径下的a1目录
[root@localhost ~]# rmdir ./a1
#将d1,d2目录一并删除
[root@localhost ~]# rmdir -p /d1/d2
- 1
- 2
- 3
- 4
- 5
7、cp
cp
命令的原意为 copy,即 复制,该命令的功能为将一个或多个源文件复制到指定的目录,其 命令格式
如下:
cp [选项] [源文件或目录] [目标文件]
- 1
cp 命令常用的选项
如下:
选项 | 说明 |
---|---|
-r | 复制目录,如果目录存在,则提示 |
-f | 强制复制文件或目录,不论目的文件或目录是否已经存在 |
-i | 覆盖既有文件之前先询问用户 |
-p | 保留源文件或目录的属性 |
示例:
#将当前目录下的a文件复制到/home目录中
[root@localhost ~]# cp a /home
#将/root目录下的my文件夹拷贝到home目录中
[root@localhost ~]# cp -r /root/my /home
- 1
- 2
- 3
- 4
- 5
8、rm
rm
命令的原意为 remove,其功能为删除目录
中的文件
或目录
,该命令可同时删除多个对象,其命令格式
如下:
rm [选项] 文件或目录
- 1
若要使用 rm 命令删除目录
,需在参数前添加 -r
选项。此外,rm 常用的选项如下表:
选项 | 说明 |
---|---|
-f | 强制删除文件或目录,忽略不存在的文件,从不给出提示 |
-i | 删除既有文件或目录之前先询问用户。默认 |
-r 或 -R | 将参数中列出的全部目录或文件均递归地删除 |
示例:
#删除文件test
[root@localhost ~]# rm test
#删除当前目录中的文件夹item
[root@localhost ~]# rm -r item
- 1
- 2
- 3
- 4
- 5
9、mv
mv
命令的原意为move,该命令用于移动文件或目录。也可以理解用于剪切文件或将文件重命名。命令语法
如下:
mv [选项] 源文件 [目标路径] [目标文件名]
- 1
选项 | 说明 |
---|---|
-f | 不论目标文件或目录是否存在,均不提示是否覆盖目标文件或目录 |
示例:
[root@localhost ~]# mv a.txt b.txt
#这里移动文件是并不改变文件的目录,如果b.txt原来存在,则实际上是a.txt更名为b.txt
[root@localhost ~]# mv /root/test /home
#将/root目录下的test文件移动到/home目录下
- 1
- 2
- 3
- 4
- 5
三、查看文件
文件操作与管理命令用于操作文件本身,而查看文件的命令用于获取文件中存储的内容。下面将对文件的命令进行讲述。
1、cat
cat
命令的原意为 concatenate and display files,即连接和显示文件,cat的功能为将文件中的内容打印到输出设备,其命令格式
如下:
cat 文件名
- 1
示例:
#打印etc目录下passwd文件中的内容
[root@localhost ~]# cat /etc/passwd
- 1
- 2
2、more
more
命令用于分页显示文件内容,其命令格式
如下:
more [文件名]
- 1
在使用more命令用于分页显示文件内容时,可以使用快捷键
进行翻页等操作,其快捷键如下表:
快捷键 | 说明 |
---|---|
f / Space | 显示下一页 |
Enter | 显示下一行 |
q / Q | 退出 |
示例:
#使用 more 命令分页显示 etc 目录下 passwd 文件中的内容
[root@localhost ~]# more /etc/passwd
- 1
- 2
3、less
使用 more 命令只能向下翻页,若想实现向前翻页
的功能,则应使用 less 命令查看文件内容。用 less 命令显示文件时,快捷键如下:
快捷键 | 说明 |
---|---|
PackUp | 向上翻页 |
PackDown | 向下翻页 |
q / Q | 退出查看 |
示例;
#使用 less 命令分页显示 etc 目录下 passwd 文件中的内容
[root@localhost ~]# less /etc/passwd
- 1
- 2
4、head
head
命令的作用是显示文件的头部内容 (默认前10行)
命令格式
:head [选项] 文件
常用选项
如下:
选项 | 说明 |
---|---|
-n | 用数字来指定显示的行数 |
示例:
#查看 etc 目录下 passwd 文件的前10行内容(默认)
[root@localhost ~]# head /etc/passwd
#查看 etc 目录下 passwd 文件的前4行内容
[root@localhost ~]# head -4 /etc/passwd
- 1
- 2
- 3
- 4
5、tail
tail
命令的作用是显示文件的尾部内容 (默认后10行)
命令格式
:tail [选项] 文件
常用选项
如下:
选项 | 说明 |
---|---|
-n | 用数字来指定显示的行数 |
示例:
#查看 etc 目录下 passwd 文件的后10行内容(默认)
[root@localhost ~]# tail /etc/passwd
#查看 etc 目录下 passwd 文件的后4行内容
[root@localhost ~]# tail -4 /etc/passwd
- 1
- 2
- 3
- 4
6、wc
wc
命令用于统计指定文本的行数、字数、字节数,其命令格式
如下:
wc [选项] 参数
- 1
wc命令常用的选项
如下表:
选项 | 说明 |
---|---|
-l | 统计指定文件中文本的行数 |
-w | 统计指定文件中问本的字数 |
-c | 统计指定文件中文本的字节数 |
示例:
#统计 passwd 文件的行数
[root@localhost ~]# wc -l /etc/passwd
#统计 passwd 文件的字数
[root@localhost ~]# wc -w /etc/passwd
- 1
- 2
- 3
- 4
四、文件搜索
文件搜索命令可根据文件名或关键字,搜索文件所在路径,或搜索包含指定关键字的内容
1、which
which
命令可以获取指定命令的绝对路径,其命令格式
如下:
which 命令
- 1
示例:
#获取ls命令所在路径
[root@localhost ~]# which ls
- 1
- 2
2、find
find
命令可借助搜索关键字查找文件或目录,该命令格式
如下:
find [所搜路径] [选项] 搜索关键字
- 1
若不指定搜索路径,则find命令默认在当前路径下搜索。该命令的常用选项
如下:
选项 | 说明 |
---|---|
-name | 根据文件名查找 |
-size | 根据文件大小查找 |
-user | 根据文件所有者查找 |
示例:
#在 /etc 目录下查找名为 passwd 的文件
[root@localhost ~]# find /etc -name passwd
#从 /目录起查找 root用户 所拥有的文件
[root@localhost ~]# find / -user root
- 1
- 2
- 3
- 4
3、grep
grep
命令的基础功能是在文件中搜索与指定字符串匹配的行并打印到终端,该命令格式
如下:
grep [选项] 指定字符 源文件
- 1
grep
命令常用的选项
如下表:
选项 | 说明 |
---|---|
-c | 统计文本中与指定字符串匹配的行数 |
-E | 使用扩展正则表达式进行匹配 |
-i | 不分大小写 |
-v | 反向选择,仅列出没有 “关键词” 的行 |
-n | 每个匹配行只按照相对的行号显示 |
-b | 将可执行文件当作文本文件来搜索 |
示例:
#查找 /etc/passwd 文件中包含 root 的行
[root@localhost ~]# grep root /etc/passwd
#统计 /etc/passwd 文件中包含 root 的行数
[root@localhost ~]# grep -c root /etc/passwd
- 1
- 2
- 3
- 4
4、whereis
whereis
命令用来寻找命令的可执行文件所在位置。其命令格式
如下:
whereis [选项] 命令名称
- 1
whereis命令的常用选项
如下表:
选项 | 说明 |
---|---|
-b | 只查找二进制文件 |
-m | 只查找命令的联机帮助手册部分 |
-s | 只查找源代码文件 |
5、whatis
whatis
命令用于获取命令简介
命令格式
:whatis
五、打包压缩
与Windows系统类似,为了节约磁盘空间,提高文件传输速率,Linux系统也经常会压缩文件。Linux系统中压缩包的后缀有 .zip、.gz、.bz2、.xz等。Linux系统中提供了专门用于
打包
文件的命令——tar
tar
是Linux常见的一种归档文件、打包文件,不包括压缩的功能。它只消耗非常少的CPU、以及时间去打包文件
tar.gz
是Linux中使用得最多的压缩格式,这种格式一般是先归档然后再压缩,它在压缩时不会占用太多的cpu,而且压缩比较理想
tar.bz2
是Linux中压缩率最好得压缩格式,但是,压缩率好就意味着要消耗更多的cpu时间
tar 命令
tar
命令本是用于备份文件的命令,该命令可以打包多个文件或目录,也可以将被打包的文件与目录解开还原,该命令格式
如下:
tar 选项 档案文件 文件列表
- 1
tar
命令得常用选项
如下表:
选项 | 说明 |
---|---|
-c | 生成档案文件 |
-v | 显示命令执行的过程 |
-f | 指定档案文件名称 |
-t | 查看内容 |
-x | 解开压缩文件 |
-z | 以gzip格式压缩或解压文件 |
-j | 以bzip2格式压缩或解压文件 |
-p | 保留包中文件原来的属性 |
示例1:
#将整个 /etc 目录下的文件全部打包成 /tmp目录下的一个文件
[root@localhost ~]# tar -cvf /tmp/etc.tar /etc #仅打包,不压缩
[root@localhost ~]# tar -zcvf /tmp/etc.tar.gz /etc #打包后,以gzip压缩
[root@localhost ~]# tar -jcvf /tmp/etc.tar.bz2 /etc #打包后,以bzip2压缩
#注意,参数 f 之后的文件档名是自己取得,习惯上都用.tar作为标识,记录文件以何种类型打包或压缩
#如果加 z参数,则以.tar.gz或.tgz来代表gzip压缩的文件
#如果加 j参数,则以.tar.bz2来作为附档名
- 1
- 2
- 3
- 4
- 5
- 6
- 7
示例2:
#将 /tmp/etc.tar.gz文件解压到当前路径下
[root@localhost ~]# tar -zxvf /tmp/etc.tar.gz
- 1
- 2
六、写在最后
本文主要介绍了Linux文件管理的基本操作,但是并没有涵盖全部,毕竟Linux文件管理命令确实是太多了。不过都是初学Linux所必须掌握的命令哦!如果对你有所帮助,就是对博主最大的支持!如有不足,还请海涵。