本篇文章接上篇文章(【Linux从入门到精通】Linux常用基础指令(上))进行详解。本章的指令相对较为重要,使用频率较高,难度相对上篇文章较难,也较为复杂。希望能对你的理解有所帮助。
文章目录
🙋♂️ 作者:@Ggggggtm 🙋♂️
👀 专栏:Linux从入门到精通 👀
💥 标题:Linux常用基础指令💥
❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️
一、mv 指令
mv 命令是 move 的缩写,可以用来移动文件或者将文件改名( move (rename) fifiles ),是 Linux 系统下常用的命令,经常用来备份文件或者目录。语法 : mv [ 选项 ] 源文件或目录 目标文件或目录。功能 :
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项 :
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖。
1、1 剪切和重命名普通文件
通过对上面内容的了解,这里给大家总结一下:mv 指令有重命名和剪切两个功能。
当第二个参数类型是文件时,我们可视为重命名。具体实例如下:
当第二个参数是已存在的目录名称时,我们将文件移至其他目录下,我们可视为剪切。具体实例如下:
我们也可以在剪切的同时,对该文件进行重命名 。具体实例如下:
1、2 剪切和重命名目录
当然,目录也是可以剪切的。具体我们可看如下实例:
但是,我们需要注意的一点是,普通文件能在剪切的同时对其进行重命名,目录也是可以的。但目录是有所区别的。当我们第二个参数跟上已存在的目录时,是将此目录剪切到已存在的目录下。具体如下:
当我们第二个参数跟不存在的目录时,我们是将此目录剪切并且重命名为不存在的目录。具体示例如下:
二、cp 指令
我们先来了解一下cp指令的使用方法和细节。语法 : cp [ 选项 ] 源文件或目录 目标文件或目录。功能 : 复制文件或目录。说明 : cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。常用选项 :
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在;
- -i 或 --interactive 覆盖文件之前先询问用户;
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链 接,则一律视为普通文件处理;
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。
2、1复制 普通文件
复制一个普通的文件给还是比较简单的。我们看如下实例:
2、2 复制 目录
当时我们要复制目录时,我们必须加上 -r 选项。也就是递归处理。
注意,复制文件和目录时,内容也会被完全复制的。有同学说这与剪切 mv 指令很像。确实很像,但是又有所区别。剪切相当于把原文件移至另一目录,但是复制就是拷贝了一份,原目录下的原文件仍然存在。
三、more 和 less 指令
3、1 more 指令
我们在学上篇文章时,了解到了 cat 指令是去查看一个文件的内容。细心的同学就会发现,cat 指令查看大文件时,就很不方便。cat 指令只适合查看小文件。我们现在有一个文件,内容有1000行。我们只想查看第500行,用cat 指令似乎不太方便。这是我们引入more 指令的学习。我们先了解一下 more 指令。
语法 : more [ 选项 ][ 文件 ]。功能 : more 命令,功能类似 cat。常用选项 :
- -n 对输出的所有行编号;
- q 退出more。
具体我们结合下面是里一起理解一下。
3、1、1 more 直接查看
当我们直接 more + 文件名 查看内容时,我们可通过回车键进行下移查看,此时的上下键是不能够操作的。默认是输出的行数为整个屏幕。具体图下:
3、1、2 -n 选项
我们也可加上 -n 选项进行指定行查看,指令: more -n 文件名。具体实例如下:
![]()
当我们输入完指令时,直接打印慢屏幕到第500行,具体如上图。当然,我们也可输入 ‘/+n’ 跳转到指定的第n行,但是系统会直接加载了(打印出)文件第n行后的所有内容。具体如下图:
![]()
当我们想退出more命令时,按下 q键 即可。
3、2 less 指令
我们发现 more 指令也并没有那么好用。这里还有一个 less 指令。我们先了解一下less指令。
语法: less [ 参数 ] 文件。功能 : less与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前 不会加载整个文件。选项 :
- -i 忽略搜索时的大小写;
- -N 显示每行的行号;
- /字符串:向下搜索“字符串”的功能;
- ?字符串:向上搜索“字符串”的功能;
- n:重复前一个搜索(与 / 或 ? 有关);
- N:反向重复前一个搜索(与 / 或 ? 有关);
- q:quit。
less指令与more指令相似。但功能强于more指令。强在哪里呢?
- less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
- less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看;
- 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!
- 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
我们结合如下实例理解。
less的直接查看可使用上下键进行翻阅。 我们也可输入 ‘/+n’ 跳转到指定的第n行,直接打印满屏目。less 想查看第 n 行的话,就可以输入 ‘/+n’ 跳转到指定的第n行。
四、head 和 tail 指令
4、1 head 指令
我们只想查看文件开头的内容,我们就可以使用 head 命令。
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾。语法: head [ 参数 ]... [ 文件 ]...功能 : head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。选项 : -n<行数> 显示的行数。我们可结合下面实例理解。
head 指令默认打出前10行内容,如下:
我们也可通过加上 -n 选项,进行选择打印出的行数。如下:
4、2 tail 指令
tail 命令从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail - f fifilename会把fifilename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail[ 必要参数 ][ 选择参数 ][ 文件 ]功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。选项:
- -f 循环读取。
- -n<行数> 显示行数。
tail指令也很简单。我们看如下实例。
tail 指令默认打出后10行内容,如下:
当然,也可通过加上-n选项进行选择打印多少行。如下:
4、3 head 与 tail 综合训练
上述我们都是查看开头和结尾。那我们想要是查看其中的一段呢?例如查看其中的666-688行呢?当然,我们第一时间会想到利用head和tail综合来解决。
head 将文件前688行输出到一个新的文件中,再去用tail查看新的文件的后29行。具体实例如下:
但是这种方法还需要另外开一个文件来存储数据,是有所消耗的。有没有更好的方法呢?这里我们引出一个新的概念:管道文件。
我们先看下图:
上面的符号 ‘ | ’就是管道,充当着我们第一种方法所建的tmp.txt文件。