test命令

摘要:
0[root@linuxetc]#llalsa;llbashrc总用量8-rw-r--r--.1rootroot2031月292014alsactl.conf-rw-r--r--.1rootroot546月1607:40state-daemon.conf-rw-r--r--.1rootroot283511月912:28bashrc实验[-d文件名]查看文件ntp是否为目录[root@linuxetc]#[-dntp][root@linuxetc]#echo$?0[root@linuxetc]#llntp总用量8-rw-------.1rootroot862月122014keys-rw-r--r--.1rootroot722月122014step-tickers实验[-s文件名]判断文件text文件是否有内容[root@linux桌面]#cattext!!!0实验[-g文件]查看ss.sh文件是否有GUID权限,没有则赋之[root@linuxDesktop]#llss.sh-rwxr-xr-x.1rootroot19111月717:24ss.sh[root@linuxDesktop]#[-gss.sh][root@linuxDesktop]#echo$?

test命令:判断文件类型,判断文件权限,判段表达式,判断字符串,判断整数大小/相等,判断两文件新旧,inode号是否一样


判断文件类型

命令功能
-b 文件判断是块设备文件
-c 文件判断是字符设备文件
-d 文件判断是目录文件
-f 文件判断是普通文件
-L 文件判断是符号链接文件
-p 文件判断是管道文件
-e 文件判断文件是否存在
-s 文件判断文件内容是否为空
-S 文件判断文件是否为套接字文件
注:该命令得配合 echo $?

注:test -参数 = [ -参数 文件名 ]


实验test -e 或者 [ -e 文件名 ]
查看alsa,bashrc是否存在
[root@linux etc]# test -e alsa
[root@linux etc]# echo $?
0

[root@linux etc]# test -e bashrc
[root@linux etc]# echo $?
0

[root@linux etc]#[ -e bashrc ]
[root@linux etc]# echo $?
0

[root@linux etc]# ll alsa; ll bashrc
总用量 8
-rw-r--r--. 1 root root 203 1月  29 2014 alsactl.conf
-rw-r--r--. 1 root root  54 6月  16 07:40 state-daemon.conf
-rw-r--r--. 1 root root 2835 11月  9 12:28 bashrc
实验[ -d 文件名 ]
查看文件ntp是否为目录
[root@linux etc]# [ -d ntp ]
[root@linux etc]# echo $?
0
[root@linux etc]# ll ntp
总用量 8
-rw-------. 1 root root 86 2月  12 2014 keys
-rw-r--r--. 1 root root 72 2月  12 2014 step-tickers
实验[ -s 文件名 ]
判断文件text文件是否有内容
[root@linux 桌面]#   cat text
!!!
hello word
[root@linux 桌面]#  [ -s text ]
[root@linux 桌面]# echo $?
0

判断文件权限

命令功能
-r 文件判断文件有读权限
-w 文件判断文件有写权限
-x 文件判断文件有执行权限
-u 文件判断文件有SUID权限
-g 文件判断文件有SGID权限
-k 文件判断文件有SBit权限
4代表SUID,2代表SGID,1代表SBIT

chmod 4755 1.text

实验[ -u 文件名 ]
查看ss.sh文件是否有SUID权限,没有则赋之
[root@linux Desktop]# ll ss.sh
-rwxr-xr-x. 1 root root 191 11月  7 17:24 ss.sh

[root@linux Desktop]# [ -u ss.sh ]
[root@linux Desktop]# echo $?
1

[root@linux Desktop]# chmod u+s ss.sh
[root@linux Desktop]# ll ss.sh
-rwsr-xr-x. 1 root root 191 11月  7 17:24 ss.sh

[root@linux Desktop]# [ -u ss.sh ]
[root@linux Desktop]# echo $?
0
实验[ -g 文件 ]

查看ss.sh文件是否有GUID权限,没有则赋之

[root@linux Desktop]# ll ss.sh
-rwxr-xr-x. 1 root root 191 11月  7 17:24 ss.sh

[root@linux Desktop]# [ -g ss.sh ]
[root@linux Desktop]# echo $?
1

[root@linux Desktop]# chmod g+s ss.sh
[root@linux Desktop]# ll ss.sh
-rwxr-sr-x. 1 root root 191 11月  7 17:24 ss.sh

[root@linux Desktop]# [ -g  ss.sh ]
[root@linux Desktop]# echo $?
0
实验[ -k 文件 ]

查看jjs目录文件是否有SBIT权限,没有则赋之

[root@linux Desktop]# ll
drwxr-xr-x. 2 root root     6 9月  22 21:02 jjs
[root@linux Desktop]# [ -k jjs ]
[root@linux Desktop]# echo $?
1

[root@linux Desktop]# chmod o+t jjs
[root@linux Desktop]# ll
drwxr-xr-t. 2 root root    17 11月 18 22:43 jjs

[root@linux Desktop]# [ -k jjs ]
[root@linux Desktop]# echo $?
0

对比文件的时间新旧及inode号

命令功能
文件1 -nt 文件2判断文件1修改时间比文件2新
文件1 -ot 文件2判断文件1修改时间比文件2旧
文件1 -ef 文件2判断文件1与文件2的inode号一致,从而判断硬链接
实验[ 文件1 -nt / -ot 文件2 ]
查看文件new.txt与文件old.txt修改时间哪个早/晚
[root@linux Desktop]# ll old.txt;ll new.txt
-rw-r--r--. 1 root root 0 11月 18 23:30 old.txt
-rw-r--r--. 1 root root 0 11月 18 23:31 new.txt

[root@linux Desktop]# [ new.txt  -nt  old.txt ] && echo $? || echo $?
0
[root@linux Desktop]# [ old.txt  -nt  new.txt ] && echo $? || echo $?
1

[root@linux Desktop]# [ new.txt  -ot  old.txt ] && echo $? || echo $?
1
[root@linux Desktop]# [ old.txt  -ot  new.txt ] && echo $? || echo $?
0

实验[ 文件1 -ef 文件2 ]
查看文件new.txt与文件old.txt的inode号相同吗
[root@linux Desktop]# stat new.txt;stat old.txt

  文件:"new.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:103155198   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-11-18 23:31:02.617077403 +0800
最近更改:2020-11-18 23:31:02.617077403 +0800
最近改动:2020-11-18 23:31:02.617077403 +0800
创建时间:-

  文件:"old.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:103491425   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-11-18 23:30:23.338078736 +0800
最近更改:2020-11-18 23:30:23.338078736 +0800
最近改动:2020-11-18 23:30:23.338078736 +0800
创建时间:-

[root@linux Desktop]# [ old.txt  -ef  new.txt ] && echo $? || echo $?
1

硬链接查看 sss.tar与 /root/sss.tr的inode号大小

[root@linux Desktop]# ln  /sss.tar   /root/sss.tr

 文件:"sss.tar"
  大小:10240     	块:24         IO 块:4096   普通文件
设备:fd00h/64768d	Inode:103491451   硬链接:2
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-09-22 23:14:37.636869869 +0800
最近更改:2020-09-22 23:13:52.964870487 +0800
最近改动:2020-11-19 00:05:54.731006425 +0800
创建时间:-

  文件:"/root/sss.tr"
  大小:10240     	块:24         IO 块:4096   普通文件
设备:fd00h/64768d	Inode:103491451   硬链接:2
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-09-22 23:14:37.636869869 +0800
最近更改:2020-09-22 23:13:52.964870487 +0800
最近改动:2020-11-19 00:05:54.731006425 +0800
创建时间:-

[root@linux Desktop]# [ ./sss.tar  -ef  /root/sss.tr  ] && echo $? || echo $?
0

判断两数大小

命令功能
数值1 -eq 数值2判断两数是否相等
数值1 -ne 数值2判断两数是否不相等
数值1 -gt 数值2判断数值1 > 数值2
数值1 -ge 数值2判断数值1 >= 数值2
数值1 -lt 数值2判断数值1 < 数值2
数值1 -le 数值2判断数值1 <= 数值2
实验 -eq、-ne、-gt、-lt、-ge、-le

比较34与67的大小,相等

[root@linux Desktop]# [ 34 -eq 67 ] && echo yes || echo no
no
[root@linux Desktop]# [ 34 -ne 67 ] && echo yes || echo no
yes
[root@linux Desktop]# [ 34 -gt 67 ] && echo yes || echo no
no
[root@linux Desktop]# [ 34 -lt 67 ] && echo yes || echo no
yes
[root@linux Desktop]# [ 34 -ge 67 ] && echo yes || echo no
no
[root@linux Desktop]# [ 34 -le 67 ] && echo yes || echo no
yes

判断字符串及连接符

命令功能
-z 字符串判断字符串是否为空
-n 字符串判断字符串是否为非空
字符串1 == 字符串2判断字符串1是否和字符串2相等
字符串1 != 字符串2判断字符串1是否和字符串2不相等
判断1 -a 判断2逻辑与,判断1和判断2都成立,才为真
判断1 -o 判断2逻辑或,判断有一个成立即可,就为真
!判断逻辑非,使原式判断取反

实验判断字符串
[root@linux Desktop]# user1=jake;user2=Tom
[root@linux Desktop]# [ -z user1 ] && echo yes || echo no
no
[root@linux Desktop]# [ -n user1 ] && echo yes || echo no
yes
[root@linux Desktop]# [ user1 == user2   ] && echo yes || echo no
no
[root@linux Desktop]# [ user1 != user2   ] && echo yes || echo no
yes  
提升
查看111文件是否是目录文件,是则打印yes,反之no
[root@linux 桌面]# ll 111
总用量 0
-rwxr-xr-x. 1 root root  0 7月   9 22:08 1.txt~
drwxrwxr-x. 2 user user 31 7月   9 22:57 45
[root@linux 桌面]# [ -d 111 ] && echo yes || echo no
[root@linux 桌面]# yes
  

  
[root@linux Desktop]# [ -z user1 -a -n user1 ]
[root@linux Desktop]# echo $?
1
[root@linux Desktop]# [ -z user1 -o -n user1 ]
[root@linux Desktop]# echo $?
0

每日语录:世界上最远的距离,不是爱,不是恨,而是熟悉的人,渐渐变得陌生。

免责声明:文章转载自《test命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jenkins 远程启动nodejs失败,使用pm2守护Nodejs@Data注解的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux图形界面开发—monodevelop初探

在ubutu10.04下,如果通过源码安装monodevelop有问题,建议用ubuntu自带的软件包管理器安装。 下面通过几个例子测试下monodevelop (1)控制台应用程序 u 强大的界面于windows下的vs差不多。输入项目的名称,保存位置,解决方案的名称,保存位置,与windows下一样的哦,其他设置都默认。 一切都是那么的熟悉,c#代码...

用scikit-learn和pandas学习线性回归

对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题 没有数据,当然没法研究机器学习啦。:) 这里我们用UCI大学公开的机器学习数据来跑线性回归。 数据的介绍在这:http://archive.ics.uci.edu/ml/datasets/...

[Linux环境编程] TCP通信与多线程编程实现“多人在线聊天室”

[linux环境编程] TCP通信与多线程编程实现“多人在线聊天室” 一、基本概念1、TCP通信   TCP(Transmission Control Protocol)就是传输控制通讯协议,是TCP/IP体系结构中最主要的传输协议。其“三次握手”提供了可靠的传送,高可靠性保证了数据传输不会出现丢失与乱序,再加之TCP连接两端设有缓存用来临时存放双向通信的...

@DataProvider ITestContext 参数

1 package roger.testng; 2 3 import java.util.Random; 4 5 import org.testng.ITestContext; 6 import org.testng.annotations.DataProvider; 7 import org.testng.annotations.Tes...

linux驱动编写之阻塞与非阻塞

一、概念       应用程序使用API接口,如open、read等来最终操作驱动,有两种结果--成功和失败。成功,很好处理,直接返回想要的结果;但是,失败,是继续等待,还是返回失败类型呢?  如果继续等待,将进程休眠,那么这类驱动设计就是阻塞式的;如果不等待,返回失败的类型(原因),那么这类驱动的设计就是非阻塞式的。       在应用程序打开驱动文件的...

Linux more命令详解

more功能类似cat,cat命令是整个文件的内容从上到下显示在屏幕上。more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件。 1.命令格式: more[-dlfpcsu][-num][+/p...