Linux常用指令(二)

目录

一、 删除空目录(rmdir)

二、ln 硬链接与软链接

三、新建空文件或更新文件的时间戳(touch)

四、比较文件内容的差异(diff)

五、显示当前时间或设置系统时间(date)

六、显示日历(cal)


一、 删除空目录(rmdir)

1.命令格式:

---rmdir [选项]... 目录...

2.命令功能: 该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。

3.命令参数

参数 功能
-p 递归删除目录及其子目录,同时删除空的父目录
-v/--verbose 显示详细的执行过程

命令案例

实例一:rmdir 不能删除非空目录

命令: rmdir doc

说明: rmdir 目录名 命令不能直接删除非空目录

实例 2:rmdir -p 当子目录被删除后使它也成为空目录的话,则顺便一并删除

命令: rmdir -p logs 

Linux常用指令(二)_第1张图片


二、ln 硬链接与软链接

命令描述:

ln 是 linux 中一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个 同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目 录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的 目录下用 ln 命令链接(link)它就可以,不必重复的占用磁盘空间

Linux常用指令(二)_第2张图片

 

1.命令格式:

---ln [参数][源文件或目录][目标文件或目录]

2.命令功能: Linux 文件系统中,有所谓的链接(link),我们可以将其视为文件的别名,而链接又 可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个文件可以 有多个名称(真正的别名),而软链接的方式则是产生一个特殊的文件(多了一个文件), 该文件的内容是指向另一个文件的地址(其实就是超链接)。硬链接是存在同一个文件 系统中,而软链接却可以跨越不同的文件系统

使用实例:

实例 1:给文件创建软链接

Cal 是输出日历,> 符号是重定向,就是把 cal 的输出重新给个输出地方,这 里重定向到了文件 2023.log 中,所以可以看到该文件内容是日历,如下截图

Linux常用指令(二)_第3张图片

查看软连接和文件内容

Linux常用指令(二)_第4张图片

实例 2:给文件创建硬链接

命令: ln 2023.log hardlink2023.log

Linux常用指令(二)_第5张图片

实例 3:接上面两实例,链接完毕后,删除和重建链接原文件

Linux常用指令(二)_第6张图片

 说明: 1.源文件被删除后,并没有影响硬链接文件 2.重建源文件后,找到了链接文件系统;重建后,硬链接文件并没有受到源文件影 响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效

实例 4:将文件链接为另一个目录中的相同名字

Linux常用指令(二)_第7张图片

说明: 在 test 目录中创建了 2023.log 的硬链接,修改 test 目录中的 2023.log 文件,同 时也会同步到源文件

一个文件可以有多个名字,一个目录能不能?

说明

1.目录只能创建软链接

2.目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层 数过多 这样的错误

3.在链接目标目录中修改文件都会在源文件目录中同步变化 。


三、新建空文件或更新文件的时间戳(touch)

1.命令格式:

---touch [选项]... 文件...

2.命令参数:

参数 功能
-a/--time=atime/--time=access/--time=use 只更改文件的访问时间
-c/--no-create 不创建任何文件
-d 使用指定的日期时间,而非当前时间
-f 解决BSD版本兼容性问题,忽略不处理
-m/--time=mtime/--time=modify 只更改文件的修改时间
-r 以参考文件的日期时间来更新指定文件的日期时间
-t 使用指定的日期时间,而不是当前时间

3.命令功能: touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。

4.使用范例:

实例一:创建不存在的文件

命令: touch log2012.log log2013.log

Linux常用指令(二)_第8张图片

实例二:更新 log.log 的时间和 log2012.log 时间戳相同

命令: touch -r log.log log2012.log

Linux常用指令(二)_第9张图片

实例三:设定文件的时间戳

命令: touch -t 201214112234.50 log.log

Linux常用指令(二)_第10张图片

说明: -t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值. 此处的 time 规定为如下形式的十进制数: [[CC]YY]MMDDhhmm[.SS] 这里,CC 为年数中的前两位,即”世纪数”;

YY 为年数的后两位,即某 世纪中的年数.如果不给出 CC 的值,则 touch 将把年数 CCYY 限定在 1969--2068 之内.

MM 为月数,

DD 为天将把年数 CCYY 限定在 1969--2068 之内.MM 为月数,

DD 为天数,hh 为小时数(几点),mm 为分钟数,

SS 为秒数.此处秒的设 定范围是 0--61,这样可以处理闰秒.这些数字组成的时间是环境变量 TZ 指定的 时区中的一个时 间.由于系统的限制,早于 1970 年 1 月 1 日的时间是错误的。


四、比较文件内容的差异(diff)

命令描述:
diff 命令是 linux 上非常重要的工具,用于比较文件的内容,特别是比较两个版本 不同的文件以找到改动的地方。diff 在命令行中打印每一个行的改动。最新版本的 diff 还 支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch 程序,可以根据 diff 的输出将 a.c 的文件内容更新为 b.c。diff 是 svn、cvs、git 等版本 控制工具不可或缺的一部分。

使用实例:

实例 1:比较两个文件

Linux常用指令(二)_第11张图片

(1c1)说明:

  • 第一个数字1表示在第一个文件中出现了差异的行号。
  • 字母c表示这是一个更改(change)操作。
  • 第二个数字1表示在第二个文件中出现了差异的行号。

实例 2:并排格式输出

命令: diff log2013.log log2014.log -y -W 50

Linux常用指令(二)_第12张图片

说明: “|”表示前后 2 个文件内容有不同

            “<”表示后面文件比前面文件少了 1 行内容

            “>”表示后面文件比前面文件多了 1 行内容

 实例 3:上下文输出格式

命令: diff log2013.log log2014.log -c

Linux常用指令(二)_第13张图片

说明: 这种方式在开头两行作了比较文件的说明,这里有三中特殊字符:

“+” 比较的文件的后者比前着多一行

“-” 比较的文件的后者比前着少一行

“!” 比较的文件两者有差别的行

 实例 4:统一格式输出

命令: diff log2014.log log2013.log -u

Linux常用指令(二)_第14张图片

说明:

  • --- file1.txt: 表示下面的行来自file1.txt文件。
  • +++ file2.txt: 表示下面的行来自file2.txt文件。
  • @@ -1 +1 @@: 表示下面的行是修改之后的行(+开头)和修改之前的行(-开头)所在的位置信息。
    • -1表示修改之前的行号为1。
    • +1表示修改之后的行号也为1。
  • -content1: 表示修改之前的第1行内容为content1
  • +content2: 表示修改之后的第1行内容为content2

实例 5:比较文件夹不同

命令: diff test3 test6


五、显示当前时间或设置系统时间(date)

描述:

在 linux 环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的 运算,熟练运用 date 命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。

1.命令格式:

---date [参数]... [+格式]

2.命令功能: date 可以用来显示或设定系统的日期与时间

3.使用实例:

实例 1:显示当前时间

命令: date date '+%c' date '+%D' date '+%x' date '+%T' date '+%X'

Linux常用指令(二)_第15张图片

实例 2:显示日期和设定时间

命令: date --date 08:42:00

Linux常用指令(二)_第16张图片

 

实例 3:显示月份和日数

命令: date '+%B %d'

实例 4:显示时间后跳行,再显示目前日期

命令: date '+%T%n%D' 

Linux常用指令(二)_第17张图片


六、显示日历(cal)

描述:

cal 命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历, 通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又 名“西历”

使用实例:

实例 1:显示当前月份日历

Linux常用指令(二)_第18张图片

实例 2:显示指定月份的日历

命令: cal 9 2023

Linux常用指令(二)_第19张图片

实例 3:显示 2023 年日历

命令: cal -y 2013

Linux常用指令(二)_第20张图片

实例 4:显示自 1 月 1 日的天数

命令: cal -j

Linux常用指令(二)_第21张图片

实例 5:星期一显示在第一列

命令: cal -m

Linux常用指令(二)_第22张图片


你可能感兴趣的:(Linux常用命令,linux,运维,服务器)