【Linux学习笔记1】- 目录处理与文件处理

    科技2026-02-20  8

    文章内容转载于此文章,有删改。

    文章目录

    1 Linux命令的一般格式2 目录处理2.1 显示当前目录下文件以及文件夹:ls2.2 创建目录:mkdir2.3 切换目录:cd2.4 shell内置命令和外部命令的区别2.5 显示当前目录:pwd2.6 删除空目录:rmdir2.7 复制文件:cp2.8 剪切文件:mv2.9 删除文件:rm 3 文件处理3.1 创建空文件:touch3.2 显示文件内容:cat3.3 反向显示文件内容:tac3.4 分页显示文件内容(不能向前翻页):more3.5 分页显示文件内容(可以前后翻页):less3.6 显示文件内容(指定行数):head3.7 反向输出文件内容:tail 操作系统是 用户和 计算机的 接口,同时也是计算机硬件和应用程序的接口,也就是说我们和计算机打交道以及计算机底层硬件和应用程序打交道都是通过操作系统。如下所示:


    【学完之后我们只需要知道某个命令能干什么】

    1 Linux命令的一般格式

    命令格式:命令 [-选项] [参数] 比如:ls -la /etc 注意:1、有些命令不遵循这种格式;[]符号内的命令可以省略。2、当有多个选项时,可以写在一起。3、简化选项(一般用一个-)与完整选项(一般用两个–),如ls -a与ls -all

    2 目录处理

    2.1 显示当前目录下文件以及文件夹:ls

    命令名称:ls 英文原意:list 功能描述:显示目录文件 语法:ls 选项【-ald】【文件或目录】      -a 显示所有文件,包括隐藏文件      -l 详细信息显示      -d 仅显示目录名,而不显示目录下的内容列表      -h 人性化显示(hommization)      -i 查看任意一个文件的i节点(类似于身份证唯一信息)      -t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件

    注意:. 开头的文件就是隐藏文件。

    上面列出了ls -lh的显示效果。我们以-rw-r--r-- 1 xw xw 284 Oct 3 17:18 a.txt为例解析每个字段:   ①、-rw-r--r-- 第一位表示文件类型,- 表示是二进制文件,d 表示目录, l 表示软连接文件。后面的每三个为一组:-rw-r--r-- u g o u(user)所有者 g(group)所属组 o(other) 其他人 r 读 w写 x执行 -无权限

    ②、1  引用计数,表示文件被引用过多少次 ③、xw  这第一个xw表示所有者,一般创建一个文件,所有者默认是创建者(这里是我设置的xw用户)。 ④、xw  这第二个xw表示所属组(这里是我设置的xw用户)。 ⑤、284  表示文件字节大小,不带单位表示字节 ⑥、Oct 3 17:18 表示文件的最后修改时间。注意:Linux没有明确的创建时间,只有最后一次访问时间、文件的状态修改时间、文件的数据修改时间 ⑦、a.txt 表示文件名

    2.2 创建目录:mkdir

    命令名称:mkdir 英文原意:make directories 功能描述:创建新目录 语法: mkdir 【-p】【目录名】。-p是递归创建

    例子:创建单个目录:mkdir sakura sasuke 创建多个目录:mkdir sakura sasuke

    注意:1、创建的目录如果已存在, 那么 Linux 会提示我们 Linux 无法创建它。 2、不带任何参数运行 mkdir 命令会在当前目录下创建目录。 3、-p 确保目录名称存在,不存在的就建一个。mkdir -p xx/yy的好处就是一次可以创建多级文件夹,若xx文件夹不存在,则先创建xx文件夹,然后在xx文件夹下创建yy文件夹。 4、创建目录的首要条件是,在想要创建目录的目标路径下你必须具有访问权限。

    2.3 切换目录:cd

    命令名称:cd 英文原意:change directory 功能描述:切换目录 语法: cd【目录名】 切换到指定目录:cd /tmp/vae

    例子: 回到上一级目录:cd … 返回上两级目录:cd …/… 返回进入此目录之前所在的目录:cd -

    2.4 shell内置命令和外部命令的区别

    内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,echo等。

    外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin…等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。

    内部命令和外部命令最大的区别之处就是性能。内部命令由于构建在shell中而不必创建多余的进程,要比外部命令执行快得多。

    2.5 显示当前目录:pwd

    命令名称:pwd 英文原意:print working directory 功能描述:显示当前目录 语法: pwd

    2.6 删除空目录:rmdir

    命令名称:rmdir 英文原意:remove empty directories 功能描述:删除空目录(如果目录下存在文件则不能删除) 语法: rmdir 【空目录名】

    $ mkdir naruto # 创建目录naruto $ rmdir naruto # 删除目录naruto $ mkdir -p naruto/sasuke # 创建多层目录naruto/sasuke $ rmdir naruto # 删除目录naruto时提示目录naruto非空,不能删除 rmdir: failed to remove 'naruto': Directory not empty

    由于此命令只能删除空目录,在实际操作中应用的不多,后面我们讲解 rm 命令可以替代。

    2.7 复制文件:cp

    命令名称:cp 英文原意:copy 功能描述:复制文件或目录

    语法: cp -rp 【原文件或目录】【目标目录】 -r 复制目录 -p 保留文件属性

    $ ls # 当前目录下有一个文件夹naruto和一个文件a.txt a.txt naruto $ cp a.txt naruto # 将文件a.txt复制到文件夹naruto下 $ cd naruto # 进入文件夹naruto下 $ ls # 能看到a.txt成功拷贝到了naruto目录下 a.txt

    cp命令可以用于复制后文件改名,如下:

    $ ls a.txt metadata.txt $ cp a.txt bbb.txt # 将a.txt复制到当前目录,并改名为bbb.txt $ ls a.txt bbb.txt metadata.txt

    还可同时复制多个文件,如下:

    $ ls a.txt bbb.txt metadata.txt $ mkdir naruto $ cp a.txt bbb.txt metadata.txt naruto # 复制三个文件到目录naruto中 $ ls a.txt bbb.txt metadata.txt naruto $ cd naruto $ ls # 目录下的确有刚刚复制的三个文件 a.txt bbb.txt metadata.txt

    注意复制目录的时候要加 -r选项,如下:

    $ ls a.txt metadata.txt naruto sasuke $ cp naruto sasuke # 复制目录naruto到目录sasuke下,出现错误,因为复制目录要加-r选项 cp: -r not specified; omitting directory 'naruto' $ cp -r naruto sasuke $ ls a.txt metadata.txt naruto sasuke $ cd sasuke # 成功复制目录naruto到目录sasuke下 $ ls naruto

    加-p属性之后会将原文件的一些属性比如修改时间等也原封不动的复制过去。如果不加-p属性,那么复制后的文件修改时间为当前系统时间,如下:

    $ ls -lh total 4.0K -rw-r--r-- 1 xw xw 33 Oct 30 13:17 a.txt -rw-r--r-- 1 xw xw 2.4K Oct 23 15:28 metadata.txt drwxr-xr-x 1 xw xw 4.0K Oct 30 13:37 naruto $ cp a.txt naruto # 不加-p选项 $ cd naruto $ ls -lh # 对比上下两个a.txt文件可以看到属性(修改时间)变了 total 0 -rw-r--r-- 1 xw xw 33 Oct 30 13:39 a.txt $ cd .. $ cp -p a.txt naruto # 加了-p选项 $ cd naruto $ ls -lh # 可以看到复制前后的文件属性相同 total 0 -rw-r--r-- 1 xw xw 33 Oct 30 13:17 a.txt

    2.8 剪切文件:mv

    命令名称:mv 英文原意:move 功能描述:剪切文件、改名 语法: mv【原文件或目录】【目标目录】

    示例如下:

    $ ls a a.txt metadata.txt $ mv a.txt a # 将a.txt剪切到目录a中 $ ls # a.txt不见了 a metadata.txt $ ls a # 列出目录a下的文件,有a.txt a.txt $ cd a $ ls # 目录a中确实有a.txt a.txt

    2.9 删除文件:rm

    命令名称:rm 英文原意:remove 功能描述:剪切文件、改名

    语法: rm -rf 【文件或目录】 -r 删除目录 -f 强制执行

    注意:rm -rf是强制删除,不需要输入 y 来确认,这种做法很简单,但是容易误删文件,没有反悔的机会。

    3 文件处理

    3.1 创建空文件:touch

    命令名称:touch 功能描述:创建空文件 语法: touch 【文件名】

    示例如下:

    $ ls # 当前目录下无任何文件 $ touch a.txt # 创建文件a.txt $ ls # 确实存在刚刚创建的a.txt a.txt

    注意:创建文件时,文件名不要有空格,不然就是创建了【两个文件】。

    $ touch b c # 文件名有了空格 $ ls # 创建的是两个文件 a.txt b c

    3.2 显示文件内容:cat

    命令名称:cat 功能描述:显示文件内容(只能显示内容较少的文件)

    语法: cat【文件名】    -n 显示文件行号

    示例如下:

    $ ls a.txt $ cat a.txt # 显示文件a.txt的内容 naruto sasuke sakura $ cat -n a.txt # 选项-n使输出显示行号 1 naruto 2 sasuke 3 sakura

    3.3 反向显示文件内容:tac

    命令名称:tac 功能描述:显示文件内容(只能显示内容较少的文件) 语法: tac【文件名】

    示例如下:

    $ ls a.txt $ tac a.txt # 从最后一行倒着输出到第一行 sakura sasuke naruto

    3.4 分页显示文件内容(不能向前翻页):more

    命令名称:more 功能描述:分页显示文件内容

    语法: more【文件名】   (空格)或f 翻页(一页一页的往后显示)   (Enter) 换行(一行一行的往后显示)    q 或 Q 退出

    注意:此命令不能向前翻页,只能向后翻。

    3.5 分页显示文件内容(可以前后翻页):less

    命令名称:less 功能描述:分页显示文件内容

    语法: less【文件名】  (空格)或f或PgDn向后翻页   PgUp向前翻页  (Enter)换行或向下的箭头(一行一行的往后显示)   向上的箭头(一行一行的往前显示)   q 或 Q 退出   输入【/想搜索的字符】,如/naruto,然后回车键

    3.6 显示文件内容(指定行数):head

    命令名称:head 功能描述:显示文件的前面几行

    语法: head【文件名】    -n 指定显示的行数    不加 -n 就默认显示前10行数据

    示例如下:

    $ head -n 20 a.txt # 输出a.txt内容的前20行,这里省略了输出,不然太占文章篇幅了

    3.7 反向输出文件内容:tail

    命令名称:tail 功能描述:显示文件的后面几行

    语法: tail【文件名】    -n 指定显示的行数,不加-n就默认显示最后10行数据    -f 动态显示文件末尾内容(即文件实时变化,那么显示内容也会随之变化),想结束加上-f显示的tail命令,通过ctrl+c。

    示例如下:

    $ tail -n 30 a.txt # 显示文件最后30行内容,这里省略了输出,不然太占文章篇幅了

    END

    文章内容转载于此文章,有删改。

    Processed: 0.029, SQL: 12