登录
首页 >  文章 >  linux

Linux指令大全第三篇:进阶技巧揭秘

时间:2025-04-21 22:55:16 428浏览 收藏

本文是Linux指令大全的第三篇,详细讲解了Linux系统中常用的文件操作指令。文章首先复习了`rm`指令的用法,并介绍了使用通配符查找文件的技巧。随后,分别对`man`指令(查看帮助文档)、`echo`指令(屏幕输出及文件写入)、`cp`指令(文件复制)、`mv`指令(文件移动和重命名)进行了深入讲解,并阐述了Linux系统中“一切皆文件”的理念。最后,文章重点讲解了输出重定向、追加重定向以及`cat`、`more`、`less`指令的用法,并通过实例演示了这些指令的具体操作方法和应用场景,帮助读者更全面地掌握Linux文件操作技巧。

  1. 上节复习

(1)我们上次学习了与文件和文件夹删除相关的指令,rm -rf 加上文件或文件夹的名字后,通常不会显示错误信息,直接删除;

我们之前学习了 rmdir 指令,用于删除空文件夹,但发现使用 rm 指令更加方便,无论是文件夹还是文件,有内容或无内容,rm 都可以删除;

需要补充的是 运算符,这个运算符能帮助我们找到相关文件。例如,使用 ls .c 会显示所有后缀为 .c 的文件, 表示可以是任何内容;使用 ls test. 会显示所有名字为 test 的文件,不同文件类型。我们在删除时,输入 rm * -rf 会删除当前目录下所有文件,因为没有指定具体文件;

Linux指令(3)

  1. man 指令

(1)这个指令相当于一个字典,因为 Linux 有很多指令,我们无法完全记住,这时可以使用 man 指令帮助我们理解,使用 man + 指令名,会出现英文版的帮助文档,供我们学习了解,特别是对于不熟悉的指令;

(2)每个指令都对应一个操作手册,例如 1 号手册,2 号手册,这些是指令的分类,用于显示指令的不同用途。当我们不指定手册号时,系统会按顺序给出,但指定后只显示该部分。通常我们不指定,后期熟悉后可能会指定;

  1. echo 指令

(1)这个指令后续会用到,操作很简单,就是在指令后面的语句会显示在屏幕上;

Linux指令(3)

(2)通过上面的实例可以看出,这个指令会把内容显示在屏幕上,不仅如此,还可以将内容写入文件中,但不会显示。效果如下:

Linux指令(3)

我们使用 echo 指令加上写入的内容,再加上向右的箭头和文件名,就可以将内容写入文件中,但如果将文件夹作为写入对象,系统会提示这是一个文件夹(可能无法写入);

(3)使用上述语法写入内容后,不会显示,我们可以使用 cat 指令查看文件内容,以检查内容是否真正写入文件;

具体用法是在 cat 指令后添加文件名,这样就可以查看文件内容,检查内容是否真正被写入文件中。这种现象称为输出重定向,即内容应该显示在显示器上,但没有显示,而是直接写入文件中;

  1. cp 指令

(1)这个指令用于拷贝,可以将一个文件的内容拷贝到另一个文件中,我们可以使用前面介绍的 cat 指令查看是否成功拷贝到新文件中;

Linux指令(3)

不需要提前创建文件,拷贝后文件会自动创建,拷贝完成后可以查看文件内容和当前目录结构,发现新文件已被创建;

(2)默认拷贝到同一级目录下,也可以拷贝到不同级目录中,记得之前使用 cd .. 指令可以跳转到上一级目录,同理,这里只需稍作修改即可拷贝到上一级目录,系统在拷贝时也会自动生成文件;

Linux指令(3)

同一级目录下文件名不允许重复,但在不同级目录下文件内容可以重复,使用上述方式可以在不同级目录下创建相同文件名的文件,也可以使用 ls ../ 查看上一级目录文件信息,通常 ls 只显示当前路径下的文件信息,添加 ../ 后可以查看上一级目录文件信息,发现文件已被创建,使用 cat ../test.txt 查看文件内容,确认拷贝成功;

(3)之前介绍的 -p 选项可以创建连续路径,如果要拷贝一连串路径文件到新文件中,仅使用 cp 指令不行,需要在原基础上添加 -r 选项,表示要拷贝的是递归形式的文件,使用“cp -r 源头文件 目标文件”即可实现拷贝;

  1. mv 指令

(1)学习 Linux 时,应将学习内容与 Windows 内容一一对应,有助于理解。例如,要实现文件重命名,即修改文件名,Linux 也有指令可以修改文件名:

Linux指令(3)

我们将原文件名 test2.txt 修改为 test3.txt,使用的是 mv 指令,修改后发现效果确实达到了;

(2)mv 指令功能不止于此,还有剪切功能,即将文件剪切到上一级目录中,类似于拷贝的区别在于,拷贝后新旧文件都存在,而剪切后原文件不存在,但新文件被创建。示例如下:

Linux指令(3)

test.txt 是当前目录下的文件,我们想剪切到上一级目录中,两个点表示上一级目录,一个点表示当前目录,使用 ls .. 查看上一级目录文件,发现已被剪切进去(当前目录下文件已不存在,但未演示);

(3)剪切后可以剪切回来,方法基本相同,可以使用 ls 指令验证当前目录和上一级目录的文件;

Linux指令(3)

(4)概括来说,mv 指令用于文件重命名和剪切,但会产生歧义,如 mv test.txt ../ 明显是剪切到上一级路径,而 mv test.txt test3.txt 是典型的重命名,但 mv test.txt ../test3.txt 是剪切并重命名。在同一级目录下也是剪切并重命名,只是剪切过程未体现,因为文件本来就存在。下面是剪切并重命名的过程:

Linux指令(3)

  1. 重新认识

(1)Linux 下,一切都是文件,这是我们对文件的重新认知,也是对 Linux 指令等的重新认知。为什么说都是文件呢?

显示器打印信息,可以把显示器理解为具有写方法的文件,键盘是输入的,即读取的,可以把键盘理解为仅具有读方法的文件,而普通文件是读写方法都具有的文件。与之相比,显示器仅具有写方法,键盘仅具有读方法,仅此而已;

Linux指令(3)

(2)结合文件重新理解输出重定向

echo 指令显示内容到显示器上,但加上箭头和新文件后,不会写入显示器,而是写入指定文件中;

Linux指令(3)

我们可以这样理解输出重定向:将原本应写入显示器文件的内容写入指定文件中,这个过程定义为输出重定向;

  1. 和文件相关的指令的辨析

(1)我们前面介绍的 echo 指令直接将指令后内容显示在屏幕上

Linux指令(3)

echo 后加上文件名会将文件名作为字符串显示在屏幕上,cat 后加上文件名会将文件内容显示在屏幕上,因此尽管后面的内容相同,打印结果有区别,echo 就是无脑地打印任何内容;

(2)之前学习了 ll 指令,打印文件相关内容,但打印的是文件属性,文件包括文件内容和文件属性,文件内容使用 cat 指令打印,文件属性使用 ll 指令打印;

(3)输出重定向中的 >test.txt,即大于号加上文件名,会删除文件内容,即清空文件内容;

Linux指令(3)

(4)文件中已有内容的情况下,多次使用 echo ***** > 文件名 写入内容时,每次输入都会覆盖原内容;

(5)如果不想每次输入内容时覆盖原内容怎么办?之前使用单个大于号向文件写入内容会覆盖原文件内容,使用两个大于号可以不覆盖原文件内容进行写入;

Linux指令(3)

这种方式称为追加重定向,即在原内容基础上追加新内容,echo 每次追加时都在不同行(通过上述实例可以观察到),可以将 echo 换成 printf,这样内容会在同一行显示,而非自动换行;

  1. 三大重定向

(1)我们已经展示了输入重定向和追加重定向,第一个是简单地向文件输入数据,但每次输入都会覆盖之前数据,为此我们学习了追加重定向指令,可以在不覆盖原内容的基础上输入新内容;

(2)除了输入重定向和追加重定向,还有输出重定向,与 cat 指令有关,简单介绍如下:

我们可以自己尝试,仅使用 cat 指令,不添加任何内容,输入什么,显示器上就会打印什么,而且不会停止,可以使用 Ctrl+D 组合键停止输入过程;

Linux指令(3)

(3)我们可以使用 cat

(4)新的理解

使用 echo "hello world" >> test.txt 向文件写入内容时,如果文件不存在,系统会自动创建文件,我们可以不使用 touch 指令创建文件,而是选择这种方式创建文件;

  1. cat 指令

(1)这个指令就是我们上面介绍的,将文件内容显示出来,如果文件不存在会创建文件,但 cat 指令还有其他选项,我们来认识一下;

cat -b 文件名----------------这个就是输出非空行的编号;

Linux指令(3)

cat -n 文件名----------------这个就是输出所有行的编号,包括空行;

Linux指令(3)

cat -s 文件名----------------这个就是对于连续的空行,只会输出一个空行;

Linux指令(3)

  1. more 命令和 less 命令

(1)我们上面介绍的 cat 命令适合查看小型文件,如果要查看大型文件,通常使用 more 指令,可以帮助我们翻阅,但只能向下翻,后面加上选项:more -n 文件(大型),指明想要查看的文件行数,输入 500,屏幕上会显示第 500 行上下的内容,可以使用 Enter 键向下翻,但缺点是不能向上翻;

(2)less 指令和 more 指令用法基本相同,但可以向上翻阅,使用键盘上的向上键和向下键,比 more 好那么一点点。

以上就是《Linux指令大全第三篇:进阶技巧揭秘》的详细内容,更多关于Echo,MV,cp,rm,man的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>