linux shell 指令 诸如-d, -f, -e之类的判断表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell 指令 诸如-d, -f, -e之类的判断表达式相关的知识,希望对你有一定的参考价值。

麻烦大侠们把所有这类的指令列出个表来,就是这些单个字母的。鄙人分数有限,故而待有了答案后,再奉上本次答疑分数。谢谢。

文件比较运算符-e filename      

    如果 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

/boot/bzImage ]字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

    -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-eq num2 等于 [ 3 -eq $mynum ]

    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 类操作系统,并且使用人数还在迅猛增长。

参考技术A 文件比较运算符
-e filename 如果 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/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-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-eq num2 等于 [ 3 -eq $mynum ]
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 ]本回答被提问者采纳
参考技术B num1-eq num2 等于 [ 3 -eq $mynum ]
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 ]。
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-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" ]
算术比较运算符。
参考技术C 文件比较运算符
-e filename 如果 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/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-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-eq num2 等于 [ 3 -eq $mynum ]
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,《Linux就该这么学》这本书能提供更全面的学习路线。
参考技术D \:,事厂

Linux shell 指令

Linux shell指令运行的原理:

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过 kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

ls指令

技术分享

-a 列出目录下的所有文件,包括以.开头的隐含文件。

技术分享

cd命令

1.名称:cd

2.使用对象:所有使用者

3.命令格式:cd [dirName](cd和目录之间使用空格隔开)

4.作用:切换当前目录至dirName。

cd ~:进入用户目录

技术分享

cd -:返回最近访问目录(类比pushd 和 popd)

cd .. : 返回上级目录

cd !$: 把上个命令的参数作为cd命令的目标参数使用(不常用)

技术分享


date显示:

date 指定格式显示时间:date +%Y_%m_%d,date +%Y:%m:%d

技术分享

date命令本身提供了日期的加减运算非常方便。

例如:得到昨天的时间

date +%Y%m%d --date="-1 day"

技术分享

时间戳

时间->时间戳:date +%s

技术分享

时间戳->时间: date +%Y:%m:%d -d @1425384141

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

Cal指令

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

命令格式:

cal [参数][月份][年份]

命令功能:

用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则示月份和年份

命令参数:

-1 显示一个月的月历

技术分享

-3 显示系统前一个月,当前月,下一个月的月历

技术分享

-s  显示星期天为一个星期的第一天,默认的格式

-m 显示星期一为一个星期的第一天

touch指令:

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。

技术分享

mkdir指令(重要):

linux mkdir命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。


1.命令格式:

mkdir [选项] 目录...

2.命令功能:

通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。


技术分享

rmdir指令 && rm 指令(重要)

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。rm命令可以同时删除文件或目录

1.名称:rmdir

2.适用对象:具有当前目录操作权限的所有使用者

3.命令格式:rmdir [-p -v] [dirName]

4.作用:删除空目录

5.参数详解:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

技术分享

1.名称:rm

2.适用对象:所有使用者

3.命令格式:rm [-f-i-r-v] [dirName/dir]

4.作用:删除文件或目录

5.参数详解:

-f 即使文件属性为只读(即写保护),亦直接删除

-i 删除前逐一询问确认

-r 删除目录及其下所有文件

技术分享

cp指令(重要):

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录而最后的目的地并非一个已存在的目录,则会出现错误信息

技术分享

mv指令(重要):

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。


basename指令:(重要)

返回一个字符串参数的基本文件名称。

语法

basename String [ Suffix(后缀) ]

描述

basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的Suffix参数,并将剩余的基本文件名称写至标准输出。basename 命令应用以下创建基本文件名称的规则:如果 String 参数是 //(双斜杠) 或如果 String 参数包含的都是斜杠字符,则将字符串更改为单个/(斜杠)。(basename 

从指定字符串除去任何拖尾的 / 字符。如果在 String 参数中剩余任何 / 字符,则除去字符串的前缀直到(包含)最后一个/字符。

技术分享

dirname指令:(重要)

dirname命令的作用是处理路径,以获取路径的父目录,而且dirname不会检查路径是否合法。

用法:dirname [path |options]

作用:输出已经去除了尾部的"/"字符部分的名称;如果名称中不包含"/",则显示"."(表示当前目录)。


more指令:(重要)

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

命令参数:

+n 从笫n行开始显示

-n 定义屏幕大小为n行

less指令:(重要)

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向

前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,

更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

head指令:(重要)

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。

1.命令格式:

head [参数]... [文件]...

2.命令功能:

head 用来显示档案的开头至标准输出中,默认head命令打

印其相应文件的开头10行。

3.命令参数:

-q 隐藏文件名

-v 显示文件名

-c<字节> 显示字节数

-n<行数> 显示的行数

技术分享

tail指令:(重要)

tail 命令从指定点开始将文件写到标准输出.使用tail命令

的-f选项可以方便的查阅正在改变的日志文件,tail -

f filename会把filename里最尾部的内容显示在屏幕上,并且不

但刷新,使你看到最新的文件内容.

1.命令格式;

tail[必要参数][选择参数][文件]  

2.命令功能:

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

gzip指令:

命令: gzip

语法:gzip [选项] 压缩(解压缩)的文件名

技术分享

gunzip

技术分享

tar指令(重要):

tar [-cxtzjvfpPN] 文件与目录 ....

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看tarfile 里面的文件!

特别注意,在参数的下达中,c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

技术分享

pwd指令:

Linux中用 pwd 命令来查看”当前工作目录“的完整路径。简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

1.命令格式:

pwd [选项]

2.命令功能:

查看”当前工作目录“的完整路径

技术分享

who指令:

who 命令

  功能说明:显示目前登入系统的用户信息。 

  语法:who [-Himqsw][--help][--version][am

i][记录文件] 

  补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的 终端机,登入时间以及从何处登入或正在使用哪个X显示器。

技术分享

diff

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



Linux下的命令十分丰富,只有在学习中不断使用才能掌握。

本文出自 “qin-wang” 博客,请务必保留此出处http://10810196.blog.51cto.com/10800196/1786141

以上是关于linux shell 指令 诸如-d, -f, -e之类的判断表达式的主要内容,如果未能解决你的问题,请参考以下文章

Linux指令中之cut

linux 中用 sed 指令 删除/添加 指定行首内容

Linux shell 指令

如何在Windows实现远程调用Linux下的shell指令

shell基础

Linux指令入门目录结构和文件管理指令