目录
❀My学习Linux命令小记录(4)❀
16.>>指令
17.date指令
18.du指令
19.df指令
20.xargs指令
功能说明:将前一个查看指令中的结果追加写入到目标文件中,如果目标文件不存在,则新建。
基本语法:查看指令 >> 目标文件
实例:
#cat 1.txt >> 2.txt #查看1.txt的内容追加到2.txt文件(也就是说把1.txt的内容放到2.txt内容的后面)
功能说明:显示或设置系统时间与日期。
(ps.很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。)
基本语法:date(选项)(参数)
选项:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
日期格式字符串列表:
%H # 小时,24小时制(00~23)
%I # 小时,12小时制(01~12)
%k # 小时,24小时制(0~23)
%l # 小时,12小时制(1~12)
%M # 分(00~59)
%p # 显示出上午或下午
%r # 时间,12小时制
%s # 从1970年1月1日0点到目前经历的秒数
%S # 秒(00~59)
%T # 时间(24小时制)(hh:mm:ss)
%X # 显示时间的格式(%H时%M分%S秒)
%Z # 按字母表排序的时区缩写
%a # 星期名缩写
%A # 星期名全称
%b # 月名缩写
%B # 月名全称
%c # 日期和时间
%d # 按月计的日期(01~31)
%D # 日期(mm/dd/yy)
%h # 和%b选项相同
%j # 一年的第几天(001~366)
%m # 月份(01~12)
%w # 一个星期的第几天(0代表星期天)
%W # 一年的第几个星期(00~53,星期一为第一天)
%x # 显示日期的格式(mm/dd/yy)
%y # 年份的最后两个数字(1999则是99)
%Y # 年份(比如1970、1996等)
%C # 世纪,通常为省略当前年份的后两位数字
%U # 一年中的第几周,以周日为每星期第一天
%e # 按月计的日期,添加空格,等于%_d
实例:
#date +"%Y-%m-%d" #格式化输出:2023-11-27
#date -d "1 day ago" +"%Y-%m-%d" #输出昨天日期:2023-11-26
加减操作:
#date +%Y%m%d # 显示前天年月日
#date -d "+1 day" +%Y%m%d # 显示前一天的日期
#date -d "-1 day" +%Y%m%d # 显示后一天的日期
#date -d "-1 month" +%Y%m%d # 显示上一月的日期
#date -d "+1 month" +%Y%m%d # 显示下一月的日期
#date -d "-1 year" +%Y%m%d # 显示前一年的日期
#date -d "+1 year" +%Y%m%d # 显示下一年的日期
功能说明:显示每个文件和目录的磁盘使用空间。
基本语法:du [选项][文件]
选项:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
实例:
#du #显示目录或者文件所占空间
#du -sh */ #显示目录的大小
功能说明:显示磁盘的相关信息。
(ps.df命令 用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。)
基本语法:df(选项)(参数)
选项:
-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。
大小格式:
显示值以 --block-size 和 DF_BLOCK_SIZE,BLOCK_SIZE 和 BLOCKSIZE 环境变量中的第一个可用 SIZE 为单位。 否则,单位默认为 1024 个字节(如果设置 POSIXLY_CORRECT,则为512)。
SIZE是一个整数和可选单位(例如:10M是10 * 1024 * 1024)。 单位是K,M,G,T,P,E,Z,Y(1024的幂)或KB,MB,...(1000的幂)。
实例:
#df #查看系统磁盘设备,默认是KB为单位:
(输出说明:
Filesystem: 第一列指定文件系统的名称,设备名称。
1K-blocks:默认单位是1KB,第二列指定一个特定的文件系统1K-块1K是1024字节为单位的总内存。用和可用列正在使用中,分别指定的内存量。
Used:已使用的磁盘空间大小,使用列指定使用的内存的百分比。
Available:剩余的磁盘空间大小。
Use%:磁盘使用率。
Mounted on:磁盘挂载的目录,而最后一栏"安装在"指定的文件系统的挂载点。)
#df -h #可读的格式
我们可以看到输出显示的数字形式的'G'(千兆字节),"M"(兆字节)和"K"(千字节)。
这使输出容易阅读和理解,从而使显示可读的。请注意,第二列的名称也发生了变化,为了使显示可读的"大小"。
#df -i #显示inode信息而非块使用量
#df --total #显示所有的信息
功能说明:给其他命令传递参数的一个过滤器。
(ps.xargs 命令 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs 能够处理管道或者 stdin 并将其转换成特定命令的命令参数。xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs 的默认命令是 echo,空格是默认定界符。这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。xargs 是构建单行命令的重要组件之一。)
实例:
xargs 用作替换工具,读取输入数据重新格式化后输出。
定义一个测试文件,内有多行文本数据
# cat test.txt
a b c d e f g
h i j k l m n
o p q
r s t
u v w x y z
# cat test.txt | xargs #多行输入单行输出
a b c d e f g h i j k l m n o p q r s t u v w x y z
#cat test.txt | xargs -n3
a b c
d e f
g h i
j k l
m n o
p q r
s t u
v w x
y z
# echo “nameXnameXnameXname” | xargs -d X #使用-d自定义一个定界符
name name name name
#echo "nameXnameXnameXname" | xargs -dX -n2 #结合 -n 选项 使用
name name
name name
#find . -type f -name "*.log" -print0 | xargs -0 rm -f #用 rm删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long 用 xargs 去避免这个问题
❀My学习Linux命令小记录(4)❀over~