重定向、ls指令、时间指令

本文详细介绍了Linux中的命令重定向,包括输入重定向和输出重定向,以及如何将正确输出和错误输出分别或同时重定向到文件。此外,还讲解了ls和date命令的使用,包括时间格式化和时间戳转换。通过这些知识,可以更好地管理和组织命令的输出信息。
摘要由CSDN通过智能技术生成

重定向

输入重定向

使用< 或者 <<来接收其他设备的内容作为输入,比如使用文件内容重定向输入到某个命令,

[root@centos7 ~]# cat < site.txt

#!/bin/sh

a= curl www.baidu.com

echo $a > site.txt

c= ls -l |grep site.txt | awk '{print $5}'

if [[ $c >100 ]]

then

        else

fi

输出重定向 使用>或者>>来将标准输入或者其他地方的输入输出到非终端窗口的设备,比如将一个命令的结果输出到文件中,我们可 以通过查看文件去看对应的内容,而屏幕或终端是看不到任何内容的。

 [root@centos7 ~]# ls > ls.txt

[root@centos7 ~]# cat ls.txt

1

123.txt

2000

29.txt

a

正确输出:

1> 和 1>> 跟 > 及 >>是等效的。

如:date 1> 1.txt date > 1.txt

注意:文件描述符跟重定向符号之间不能有空格,同时>代表输出重定向并且会覆盖上次的内容,>>代表输出重定向但是不会覆盖上次 内容,而是追加内容到上次文件末尾。

 错误输出:

2> 和 2>>

如:ddds 2> er.txt ddds 2>> er.txt

重定向符号跟正确输出功能一致。

1、将正确的输出和错误的输出分别重定向到不同文件中

 ls /home /dssssss 1> home.txt 2> dssss.txt

其中/home 目录是系统本身就存在的,而/dsssss 是不存在的目录,使用 ls 命令查看时会报错,我们通过使用不同的文件描述符和重定 向符号结合使用,让其分别输出到不同的文件中,这样可以区别查看我们的正确输出和错误输出。

2、将正确的输出和错误的输出同时重定向到一个文件中:

ls /home /dsssss 1> ls.txt 2>&1

此例子作用就是将正常的输出重定向到 ls.txt 中,然后同时使用&1 将错误的输出重定向到正确输出中。

[root@centos7 ~]# ls /home /dsss 1> ls.txt 2>&1

[root@centos7 ~]# cat ls.txt

ls: cannot access /dsss: No such file or directory

/home:

alice

bob

david

hello

john

上述第二个例子的命令可以将其简写为如下去实现,效果一致:

[root@centos7 ~]# ls /home /dsss &> ls.txt

有时候我们的命令结果并不想让其输出,而是只想让其执行,就可以将其重定向到/dev/null 设备中。 /dev/null 设备是我们的空设备或者叫做位桶,有时也称为黑洞,你可以向它输出任何东西,而不用担心会撑满它。

举例:

date > /dev/null

/dev/zero 设备是我们的 0 设备,也是我们的输入设备,无限制提供 0,用于向设备或文件中写入无限制个数的字符串 0。

举例:

dd if=/dev/zero of=/opt/test bs=10M count=10

[root@centos7 opt]# ls -lh

-rw-r--r-- 1 root root 100M Jul 14 15:47 tes

ls指令

ls   打开目录下的所有文件和目录

     -a   显示所有文件包括隐藏文件

     -A   显示所有文件包括隐藏文件,不包括目录.和上级目录..

     -d   列出目录本身不包含目录下的内容

     -h   以人类可读的方式显示文件的大小,通常结合-l 参数使用

     -l    是长格式化的列表显示,包含文件的相关属性,比如权限,时间,大小,所属用户用户组等

     -t    以时间顺序排序,通常最新的文件或目录排在最前面,这个参数通常跟-l 一起使用 -r 是反               向排序,通常跟-lt 结合可以实现按照时间顺序从旧到新的顺序排序,也就是说新文件在最               后面

    -S    按照文件大小排序,通常也是结合-l 参数使用,默认是从大到小排序

date 命令

打印系统日期和时间

-d, --date=STRING       display time described by STRING, not 'now'

显示时间根据你写的字符串

[root@centos7 opt]# date -d "2022-6-12 19:20:10"

Sun Jun 12 19:20:10 CST 2022

-s, --set=STRING          set time described by STRING

设置时间根据你写的字符串 

[root@centos7 opt]# date -s "2022-7-14 16:10:10"

Thu Jul 14 16:10:10 CST 2022

时间格式化

%H hour (00..23)

%Y year

 %F full date; same as %Y-%m-%d

%d day of month (e.g., 01)

 %I hour (01..12)

%m month (01..12)

%M minute (00..59)

%R 24-hour hour and minute; same as %H:%M

%S second (00..60)

%T time; same as %H:%M:%S

使用 date 命令实现中文习惯的时间表达如下

[root@centos7 opt]# date +"%Y-%m-%d %H:%M:%S"

2022-07-14 16:22:28

[root@centos7 opt]# date +"%F"

2022-07-14

[root@centos7 opt]# date +"%F %T"

2022-07-14 16:23:26

时间戳转换

时间戳记录的是 1970-1-1 以来到现在时间的总秒数,通常用在 linux 服务器中,如果需要将其转化成具体的年月日时间格式,可以使 用以下方法:

Convert seconds since the epoch (1970-01-01 UTC) to a date

[root@centos7 opt]# date --date='@2147483647'

Tue Jan 19 11:14:07 CST 2038

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@britney

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值