‘壹’ linux shell 指令 诸如-d, -f, -e之类的判断表达式
如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename
如果 filename为目录,则为真 [ -d /tmp/mydir ]-f filename
如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]-L filename
如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]-r filename
如果 filename可读,则为真 [ -r /var/log/syslog ]-w filename
如果 filename可写,则为真 [ -w /var/mytmp.txt ]-x filename
如果 filename可执行,则为真 [ -L /usr/bin/grep ]filename1-nt filename2
如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2
如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three"]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
num1-ne num2 不等于 [ 3 -ne $mynum ]num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]
Linux操作系统
是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
‘贰’ Linux判断当前机器是虚拟机还是物理机
可以从硬件型号上来判断,虚拟机的硬件型号是特定的,而且就那么几种,从硬件型号上甚至还能知道是哪种虚拟机;还有驱动,虚拟机中有特定的驱动,也可以辅助判断;另外还可以通过网关类型来判断,比如VMware Workstation虚拟机的网关就很有特点(类似于vmnet-8这样),物理机的网关绝对不会是VMware Workstation虚拟机那样。
‘叁’ linux 判断一个目录是不是为空的
while(dq = readdir(dir)){
if(strcmp(dq->d_name,".")==0||strcmp(dq->d_name,"..")==0)
continue;//这里可以忽略"."和".."
else if(dq->d_type == DT_DIR){
printf("目录:%s\n",dq->d_name);
char buf[256]={};
sprintf(buf,"%s/%s",path,dq->d_name);
rmdir(buf);
del_dir(buf);
}
else
printf("文件:%s\n",dq->d_name);
}这里是遍历整个目录的代码
给我13亿个赞,不要多
‘肆’ linux文件怎么判断属性
Linux中的文件属性可以通过ls -al指令来查看,下面的指令演示了如何在Linux系统中查看文件的属性:letuknowit@ubuntu:/$ cd /tmpletuknowit@ubuntu:/tmp$ touch testletuknowit@ubuntu:/tmp$ ls -al test-rw-rw-r-- 1 letuknowit letuknowit 0 2012-03-08 04:33 test第1行:通过cd指令进入 /tmp 目录第2行:通过touch指令新建一个文件,名为:test第3行:通过ls -al test指令查询文件test的属性,这里只列出了文件test的属性,如果想列出当前目录下所有文件的属性,去掉test即可(ls -al),也可以将test换成系统中的某个路径(ls -al /tmp),那么就会列出该路径下所有文件的属性第4行:test文件的属性,在Linux中,每个文件的属性由七个部分组成,为了看的更清楚,下面把这7项分开点显示:-rw-rw-r--???????? 1???????? letuknowit???????? letuknowit???????? 0???????? 2012-03-08 04:33???????? test 以上7项依次表示【文件的属性】、【连接数】、【文件的拥有者】、【文件所属的群组】、【文件大小】、【文件创建时间】和【文件名称】。 红色部分的 -rw-rw-r–?? 就是Linux系统下文件的属性了,其决定着文件的拥有者、群组以及其他用户对该文件的访问权限,蓝色的letuknowit为该文件的拥有者,绿色的letuknowit是文件所属的群组;由于是用touch指令创建的文件,所以文件的大小为0。
‘伍’ 关于linux中的判断符号[ ]
[ -z "$HOME" ] 其实就等于 test -z "$HOME" ,所以 [ ] 里面能用的选项和 test 语句能用的完全一样,所以你可以通过 man test 来查看详细信息。
‘陆’ linux中怎么查看文件是否存在
find命令
find是linux下用于查找文件的通用方法。
find语法: find [指定查找目录] [查找规则] [查找完后执行的action]
例如:find /tmp -name wa* -type l ,是在/tmp下查找名为wa开头且类型为符号链接的文件。找到就表示存在。
‘柒’ 如何判断LINUX还是UNIX
很简单。最根本的区别:linux不需要固定的硬件支持;unix需要特定的硬件支持。也就是说不是什么电脑都可以装unix,通俗点说就是想装unix就需要按它的标准定制电脑。而linux不同,几乎PC都可以装,常见的笔记本电脑、台式机等等。
‘捌’ linux shell编程中怎么判断时间相等
#!/bin/bash#格式化过期日期,格式化过期日期完整时间以当前时间作为参考!expday="2018-04-11 `date +%T`"echo "Expire day is $expday"#当前日期时间格式为stamp时间戳todays=`date +%s`echo "Today is $(date +"%F %T")"#以下2种方式做时间的四则运算,分别使用 let 或者 $(( ))#过期日期已格式化,规避整数运算的误差(去余数)#let dayDiff=($(date -d "$expday" +%s)-$todays)/86400dayDiff=$(( ($(date -d "$expday" +%s)-$todays)/86400 ))echo "Diff day is $dayDiff days!"
其余说明:
bash 不支持浮点运算,如果需要进行浮点运算,需要借助bc,awk 处理。Linux命令需求的话可如下图进行查询
‘玖’ linux中怎么查看文件是否存在
两个方式:find命令或者shell脚本。
1、find命令
find是linux下用于查找文件的通用方法。
find语法: find [指定查找目录] [查找规则] [查找完后执行的action]
例如:find /tmp -name wa* -type l ,是在/tmp下查找名为wa开头且类型为符号链接的文件。找到就表示存在。
2、shell脚本
在进行文件的自动处理中常常需要自动判别,下面的脚本判断test.log是否存在,存在则显示文件存在,否则显示文件不存在。
例子:编辑一个脚本判断文件是否存在
vi t.sh
#!/bin/bash
if [ -e /temp/test.log ];then //这里是判断语句,-e表示进行比较结果为真则存在
echo "文件存在"
else
echo "文件不存在"
fi
保存退出
执行:
sh t.sh