文章目录
前言
在 Linux 系统中,文件操作是日常使用和系统管理的基础。无论是开发人员部署项目、运维人员管理服务器,还是普通用户整理个人文件,都离不开各种文件操作指令。掌握这些指令,能让我们在 Linux 环境下的工作更加高效、便捷。接下来,就为大家介绍 Linux 中较为常用的文件操作指令。
Linux文件基础
引入:在深入学习文件操作指令之前,我们需要先了解一下 Linux 文件系统的特点。与 Windows 不同,Linux 采用树形目录结构,整个文件系统从根目录 “/” 开始,所有的文件和目录都挂载在这个根目录下。在 Linux 中,一切皆文件,不仅普通的文本文档、图片、视频是文件,硬件设备、网络接口等也都以文件的形式呈现。例如,硬盘设备通常表示为 “/dev/sda”,U 盘插入后可能会挂载到 “/media/usb” 目录下。理解这一特性,对于后续正确使用文件操作指令至关重要。
两种文件路径
在linux操作系统里面,获取文件的方式有两种,一种是通过绝对路径的方式获取文件,一种是相对路径获取文件。
假设我们在当前指定的目录下面,想要获取指定的文件,我们可以通过相对路径和绝对路径的方式来获
取。
文件路径查看指令
pwd 指令 (显示当前目录的绝对路径)
[root@xq100 home]# pwd (获取当前目录所在的绝对路径)
/home
[root@xq100 home]# cd kobe
[root@xq100 kobe]# pwd
/home/kobe
文件目录查看指令
ls [选项] [目录] 指令 (显示当前目录下面的所有文件(目录) )
-a: 显示当前目录下面的所有文件和目录 包括隐藏的。
-l: 以列表的方式显示文件(目录)信息。
tree 指令 (tree指令可以以树形结构展示目录下的文件和子目录层次结构,方便我们直观地查看目录内容。)
文件目录切换指令
cd [目录路径] 指令 (切换到指定目录)
常用选项:
~: cd ~ 回到当前用户的home目录(如果是root用户,那么回到的就是root目录下面,如果是非root用户,那么就回到home/用户目录 下面)
[root@xq100 kobe]# cd ~
[root@xq100 ~]# pwd
/root
/ : cd / 回到系统根目录
[root@xq100 ~]# cd / # 回到系统根目录
[root@xq100 /]# pwd
/
. . : cd . . 【注意两个点之间没有空格】回到当前目录的上一级目录
[root@xq100 /]# cd /home/kobe # 直接切换到kobe目录
[root@xq100 kobe]# cd .. # 回到上一级目录
[root@xq100 home]# pwd
/home
文件目录的创建和删除指令
文件的创建
mkdir 指令 (用于创建目录)
需求:在kobe目录下面创建dog目录
[root@xq100 ~]# cd /home/kobe
[root@xq100 kobe]# mkdir dog # 创建dog目录
[root@xq100 kobe]# ll
total 4
drwxr-xr-x. 2 root root 6 Aug 28 14:06 dog
-rw-r--r--. 1 root root 6 Aug 28 13:50 Hello.txt
我们也可以一次性创建多级目录。 比如在kobe目录下面创建/animal/cat目录
[root@xq100 kobe]# mkdir animal/cat
mkdir: cannot create directory ‘animal/cat’: No such file or directory
[root@xq100 kobe]#
此时报错,因为我们创建多级目录的时候,需要携带一个-p参数。
-p 创建多级目录。我们可以这样创建多级目录
[root@xq100 kobe]# mkdir -p animal/cat # 创建多级目录
[root@xq100 kobe]# ll
total 4
drwxr-xr-x. 3 root root 17 Aug 28 14:09 animal
drwxr-xr-x. 2 root root 6 Aug 28 14:06 dog
-rw-r--r--. 1 root root 6 Aug 28 13:50 Hello.txt
touch 创建空文件
需求:在kobe目录下面,创建一个空文件Demo1.txt
[root@xq100 kobe]# touch Demo1.txt # 创建一个空文件Demo1.txt
[root@xq100 kobe]# ll
total 4
-rw-r--r--. 1 root root 0 Aug 28 14:14 Demo1.txt
-rw-r--r--. 1 root root 6 Aug 28 13:50 Hello.txt
文件的删除
mkdir [选项] [目录名] 指令 删除空目录
需求:我们删除dog目录
[root@xq100 kobe]# rmdir dog
[root@xq100 kobe]# ll
total 4
drwxr-xr-x. 3 root root 17 Aug 28 14:09 animal
-rw-r--r--. 1 root root 6 Aug 28 13:50 Hello.txt
rm [选项] [文件或目录] 指令 ( 如果我们要删除非空目录或者文件,我们可以使用rm命令实现 )
-r 递归删除
-f 不询问删除
例如:rm -rf 两个选项复合,递归不询问的方式删除目录
文件目录复制与移动指令
文件目录的复制
cp [选项] [源文件或目录] [目标文件或目录] 指令 拷贝文件到指定目录
注意 : cp 指令默认只能复制单个文件或单层目录,无法直接递归复制嵌套目录(即包含子目录和文件的目录)
需求1:将/home/kobe下面的Hello.txt拷贝至/home/guojing目录下面。
[root@xq100 kobe]# cp Hello.txt /home/guojing/ # 拷贝文件到home/guojing目录下面
[root@xq100 kobe]# cd /home/guojing/
[root@xq100 guojing]# ll
total 4
-rw-r--r--. 1 root root 6 Aug 28 14:18 Hello.txt
-r 递归复制整个文件【可复制嵌套文件】
需求:在kobe目录下面,创建test文件夹,再在test文件夹里面创建test.txt。最后将整个test文件目录拷贝至home/guojing目录。
[root@xq100 kobe]# ll
total 4
-rw-r--r--. 1 root root 0 Aug 28 14:14 Demo1.txt
-rw-r--r--. 1 root root 6 Aug 28 13:50 Hello.txt
drwxr-xr-x. 2 root root 22 Aug 28 14:19 test
[root@xq100 kobe]# cp -r test /home/guojing # 递归拷贝整个文件目录
[root@xq100 kobe]# cd /home/guojing
[root@xq100 guojing]# ll
total 4
-rw-r--r--. 1 root root 6 Aug 28 14:18 Hello.txt
drwxr-xr-x. 2 root root 22 Aug 28 14:21 test
文件目录的移动
mv [源文件或目录] [目标文件或目录] 指令 用于移动文件或目录,也可以用于重命名文件或目录
文件内容查看指令
cat [文件] 指令 用于查看文件内容,它会将文件内容一次性全部输出到终端
-n 显示行号
需求:查看/etc/profile文件,并显示行号
[root@xq100 guojing]# cat -n /etc/profile #浏览文件 并显示行号
cat只能浏览文件,并不能修改文件,为了浏览方便,一般会用上管道命令 | more
[root@xq100 guojing]# cat -n /etc/profile | more
#浏览文件 并显示行号 分屏幕显示 使用空格键可以翻页显示
more [文件名称] 指令
是一个基于vim编辑器的文本过滤器,他以去全屏的方式显示文本文件的内容,且more指令内置了若干快捷键
操作 | 功能说明 |
---|---|
空格键 | 向下翻页 |
Enter | 向下翻一行 |
q | 代表立刻退出,不再显示文件的内容 |
Ctrl + F | 向下滚动一屏幕 |
Ctrl | 返回上一屏幕 |
= | 输出当前的行号 |
:f | 输出文件名和当前行号 |
less [文件名称] 指令
用于来分屏查看文件内容,他的功能与more类似,但是比more更加强大,支持各种显示终端。
less指令在显示文件内容时,并不是一次将整个文件加载后才显示的,而是根据要加载的内容,对显示大型文件具有高效率。
操作 | 功能说明 |
---|---|
空格键 | 向下翻页一页 |
上箭头键 | 向上翻一行 |
下箭头键 | 向下翻一行 |
/字符串 | 搜索字符串 n:向下搜索 / N:向上搜索 |
q | 代表立刻退出,不再显示文件的内容 |
head [文件] 用于显示文件开头部分的内容,默认情况下head下你是的是文件前10行的内容
head -n 5 [文件] 显示前面5行内容(5也可以换成其他数字)
[root@xq100 guojing]# head /etc/profile # 默认显示前10条内容
[root@xq100 guojing]# head -n 5 /etc/profile # 默认显示前5行内容
tail [文件] 用于输出文件中尾部的内容,默认情况下显示文件末尾10行的内容
tail -n 5 [文件] 显示前面5行内容(5也可以换成其他数字)
[root@xq100 guojing]# tail /etc/profile # 显示最后10行的数据
[root@xq100 guojing]# tail -n 5 /etc/profile #显示最后5行的数据
history指令 查看用户已经执行过的历史指令
[root@xq100 linkToRoot]# history # 查看当前用户的历史指令
[root@xq100 linkToRoot]# history 10 # 查看当前用户的最近10条历史指令
文件编辑指令
head -f [文件] 实时监控这个文件的变化
echo “内容” 将输入内容到控制台
需求:创建一个空文件test.txt。实时监控这个文件的变化
[root@xq100 guojing]# touch test.txt
[root@xq100 guojing]# tail -f test.txt
在另一个终端,我们向test.txt文档追加内容:
[root@xq100 ~]# echo "world" > /home/guojing/test.txt
我们再观察控制台的变化情况:
[root@xq100 guojing]# touch test.txt
[root@xq100 guojing]# tail -f test.txt
world #发生变化的数据被监控到了,并输出到控制台中
- > 指令和 >> 指令: >输出重定向 ,>>追加
echo ‘hello’ > /home/guojing/test.txt (将hello输入到guojing文件夹下的test.txt中 之前内容覆盖)。
echo ‘hello’ >> /home/guojing/test.txt (将hello追加到guojing文件夹下的test.txt文件的末尾处之前内容不会覆盖)。
cat /etc/profile > /home/guojing/myprofile (系统首先检查/home/guojing/myprofile文件是否存在。如果不存在,系统会自动创建该文件;如果文件已存在,那么该文件原有的内容会被清空,然后/etc/profile文件的内容会被写入其中。)
cal > /home/guojing/test.txt (将日历信息重定向输出到opt下的test文件)覆盖
cal >> /home/guojing/test.txt(将日历信息追加到opt目录下的test文件)追加
软连接
介绍:在 Linux 系统中,软连接(Symbolic Link,也称为符号链接) 是一种特殊的文件,它指向另一个文件或目录,类似于 Windows 系统中的 “快捷方式”。软连接提供了一种灵活的方式来引用文件或目录,而无需复制实际内容。
ln -s [源文件或目录] [软连接名称]
需求:在kobe目录下面创建软连接linkToRoot,这个软连接指向root目录
[root@xq100 guojing]# ln -s /root /home/kobe/linkToRoot #创建一个软连接 [root@xq100 guojing]# cd /home/kobe [root@xq100 kobe]# ll total 4 -rw-r--r--. 1 root root 6 Aug 28 13:50 Hello.java lrwxrwxrwx. 1 root root 5 Aug 28 15:34 linkToRoot -> /root drwxr-xr-x. 2 root root 22 Aug 28 14:19 test [root@xq100 kobe]# cd linkToRoot/ # 实际上是切换到了linkRoot目录 [root@xq100 linkToRoot]# ll total 12 -rw-------. 1 root root 1877 Aug 18 14:57 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Aug 18 15:05 Desktop drwxr-xr-x. 2 root root 6 Aug 18 15:05 Documents drwxr-xr-x. 2 root root 6 Aug 18 15:05 Downloads -rw-r--r--. 1 root root 242 Aug 27 15:58 Hello.java -rw-r--r--. 1 root root 1908 Aug 18 15:04 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 Aug 18 15:05 Music drwxr-xr-x. 2 root root 6 Aug 18 15:05 Pictures drwxr-xr-x. 2 root root 6 Aug 18 15:05 Public drwxr-xr-x. 2 root root 6 Aug 18 15:05 Templates drwxr-xr-x. 2 root root 6 Aug 18 15:05 Videos
rm -f [对应的软连接名称] 删除软连接
如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!