目录
rmdir与rm:清理迷宫的碎石与陷阱—— 扫除废弃路径的爆破术
cp:复制迷宫地图的影分身术—— 从一扇门到另一扇门的镜像魔法
cat与tac:正逆序阅读的魔法卷轴—— 从首行到末行的文字长河
more与less:分页窥探的透视水晶—— 逐层破解长文本的迷雾
head与tail:截取文件的首尾密钥—— 窥见巨兽的鳞片与尾鳍
find:地毯式搜索的寻宝罗盘—— 从亿万文件中定位目标坐标
完结散花:迷宫的宝藏已尽收囊中—— 下一站,破解终端的终极魔法
rmdir与rm:清理迷宫的碎石与陷阱
—— 扫除废弃路径的爆破术
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
> rmdir:只能删除空目录
无法删除非目录的文件且也无法删除非空目录
rmdir的使用非常有限,所以我们几乎不会使用 rmdir 来删除文件
我们删除文件使用最多的是下面这条指令:rm
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录常用选项:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
man:迷宫探险的古老指南书
—— 用咒语解锁指令的隐藏说明
man
命令常用选项
-k
:此选项用于根据关键字搜索联机帮助。当你只记得某个功能相关的关键字,却不明确具体命令时,可使用该选项进行搜索。num
:该选项可限定搜索范围,仅在第num
章节中查找指定命令的手册信息。-a
:使用此选项时,man
命令会显示所有章节中与指定命令相关的手册内容。例如,在不使用-a
选项执行man printf
时,命令会从第一章开始搜索,找到相关内容后即停止;而使用-a
选项时,当你按下q
退出当前显示的手册内容后,man
命令会继续在后续章节中搜索,直至所有章节搜索完毕。
Linux 手册章节划分
Linux 手册总共分为 8 个章节,每个章节涵盖不同类型的内容,具体如下:
- 普通命令(章节 1):该章节包含日常使用的普通命令,例如文件操作、进程管理等常见命令的详细说明。
- 系统调用(章节 2):此章节主要介绍系统调用相关内容,像
open
、write
这类系统调用函数都在此章节有详细说明。通过查阅该章节内容,你能方便地了解调用这些函数时所需包含的头文件。 - 库函数(章节 3):包含各种库函数的信息,例如
printf
、fread
等。这些库函数为开发者提供了丰富的编程接口。 - 特殊文件(章节 4):主要针对特殊文件进行说明,即
/dev
目录下的各种设备文件。该章节会介绍这些设备文件的用途和使用方法。 - 文件格式(章节 5):详细解释文件的格式,例如
/etc/passwd
文件。在此章节中,会对文件中各个字段的含义和作用进行说明。 - 游戏相关(章节 6):该章节是为游戏预留的,游戏开发者可根据自身需求自定义相关内容。
- 附件与变量(章节 7):包含一些附件信息以及变量的说明,例如全局变量
environ
就在此章节有详细解释。 - 系统管理命令(章节 8):此章节中的命令主要用于系统管理,且这些命令通常只有
root
用户才能使用,如ifconfig
命令,用于配置网络接口。
cp:复制迷宫地图的影分身术
—— 从一扇门到另一扇门的镜像魔法
cp [选项] 源文件或目录 目标文件或目录
功能概述
cp
指令主要用于复制文件或目录。当同时指定两个及以上的文件或目录,并且最后指定的目的地是一个已存在的目录时,cp
命令会将前面指定的所有文件或目录复制到该目录中。
若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,cp
命令将输出错误信息。
常用选项说明
强制复制选项
-f
或--force
:该选项用于强行复制文件或目录,无论目标位置的文件或目录是否已经存在。使用此选项时,若目标位置已存在同名文件或目录,将直接进行覆盖操作,不会有额外的提示。
交互确认选项
-i
或--interactive
:在执行覆盖文件操作之前,cp
命令会先向用户发起询问,请求用户确认是否要进行覆盖。这有助于避免误操作导致重要文件被意外覆盖。
递归复制选项
-r
:该选项会进行递归处理,将指定目录下的所有文件与子目录一并进行复制操作。如果源文件或目录的类型既不是目录也不是符号链接,那么会将其视为普通文件进行处理。-R
或--recursive
:与-r
选项功能相同,同样是递归处理指定目录下的文件及子目录,实现对整个目录结构的复制。
如果指定目录存在,则会把普通文件或目录直接拷贝到目录里面:
如果把普通文件拷贝到已有的目标普通文件当中,则原文件会把目标文件覆盖:
如果指定文件或目录不存在,则在当前路径自动创建一个目录或文件:
对已经存在的目录进行 cp 时需要注意指定文件目录是否为空:
mv:移动宝藏的隐形搬运工
—— 路径重写与命名的空间戏法
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法:
mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个(如果目录不存在则报错),mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
cat与tac:正逆序阅读的魔法卷轴
—— 从首行到末行的文字长河
语法:cat [选项][文件]
功能: 查看目标文件的内容
常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
tac则与cat相反,把目标文件当中的内容倒着打印出来!
重定向:数据河流的闸门控制器
—— 将信息洪流导入指定容器
在Linux中,一切皆文件!我们在C或C++中使用的printf、scanf和cin、cout其本质就是文件操作。只不过我们在启动程序时,系统自动帮我们打开了键盘文件和显示器文件!从语言的角度来说,我们用printf是在屏幕上打印内容,但其本质是:我们把内容写入到显示器文件当中!
输出重定向(>):
当我们重定向的文件不存在时,系统会自动帮我们生成一个文件!所以我们也可以直接用 > 来创建一个普通的文件!
当我们重定向的文件存在时,如果文件中原来有内容,重定向后,原来的内容就会被我们写入的内容覆盖!如果我们什么都不写入,则会清空文件!
追加重定向:(>>)
如果我们不期望原本的内容被覆盖,那我们可以使用追加重定向(>>)向指定文件中追加内容!
输入重定向(<):
当我们使用cat指令想要获取一个文件当中的内容时,如果我们不指定文件,则默认到键盘文件当中获取(读取)内容,如果我们使用(<)输入重定向,那我们则在指定文件当中获取(读取)内容!
more与less:分页窥探的透视水晶
—— 逐层破解长文本的迷雾
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
-n 对输出的所有行编号
q 退出more
当我们用more查看我们的日志时,会自动帮我们显示一屏的日志文件,我们可以按enter来下翻查看后面的内容!但more指令在有些系统上并不支持上翻,所以现在我们查看日志使用最多的还是接下来要讲的指令less!
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [参数] 文件
功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前 不会加载整个文件。
选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
head与tail:截取文件的首尾密钥
—— 窥见巨兽的鳞片与尾鳍
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [参数]... [文件]...
功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项: -n行数> 显示的行数
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail - f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f 循环读取
-n行数> 显示行数
时间指令:迷宫的时间沙漏
—— 用代码凝固流逝的瞬间
date显示
date 指定格式显示时间: date +%Y:%m:%d date
用法:date [OPTION]... [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S %d : 日 (01..31)
%m : 月份 (01..12) %Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
2.在设定时间方面
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
3.时间戳
时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的 午夜)开始所经过的秒数,不考虑闰秒
cal:解开时间的迷宫卷轴
—— 用数字编织月历的经纬网
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳 历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历
find:地毯式搜索的寻宝罗盘
—— 从亿万文件中定位目标坐标
在 Linux 系统中,find
命令用于在目录结构中搜索文件,并可对搜索到的文件执行指定操作。该命令提供了丰富多样的查找条件,功能极为强大。鉴于其强大的功能特性,find
命令具备众多选项,其中大部分选项都值得深入探究。即便系统中包含网络文件系统(NFS) ,只要拥有相应权限,find
命令在该文件系统中同样能够正常且有效地运行。当执行一个资源消耗较大的find
命令时,由于遍历大型文件系统(一般指 30GB 字节以上的文件系统)可能会耗费较长时间,因此很多人倾向于将其置于后台运行。
1. 语法格式
find pathname -options
其中,pathname
表示要查找的目录路径;-options
代表各种查找条件及操作选项。
2. 功能概述
find
命令主要用于在文件树结构中查找符合特定条件的文件,并能针对查找到的文件做出相应处理,这一过程可能涉及磁盘访问操作。
3. 常用选项:-name
-name
选项用于按照文件名查找文件。例如,如果要在当前目录及其子目录中查找名为 “example.txt” 的文件,可使用以下命令:
find. -name "example.txt"