【Linux文件相关指令 | 第六篇】

前言

在 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 [对应的软连接名称] 删除软连接

    如果我的内容对你有帮助,请 点赞 评论 收藏 。创作不易,大家的支持就是我坚持下去的动力!
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值