linux密码中逗号怎么输入,linux中特殊符号用法

本文详细介绍了Linux shell脚本中的各种命令和符号,包括#用于注释、~表示家目录、;作为命令分隔符、.表示当前目录、$用于变量替换、|进行管道连接、&&和||表示逻辑操作、重定向><>等,还涉及到文件描述符和输入/输出重定向的概念。
摘要由CSDN通过智能技术生成

1 #

#  管理员账户

$  普通账户

在脚本中 #也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后边是注解文字,不会被执行

例如

#!/bin/bash

#this line is comments

由于这个特性,当临时不想执行某行指令时,可以在行首加上#就你可以了

如果被用在指令中,或者引号双引号扩住的话,或者在反斜线的后面,那他就变成一般的符号了,不具备上述的功能了

——————————————————————————————————-

2 ~  账户的home目录

代表用户的home目录, cd ~ 也可以在后面加上某个用户的名称:cd ~ USERNAME,或者当成路径的一部分:~/bin

~+  表示当前的工作目录,这个符号代表当前的工作目录,这和内嵌的指令pwd的作用是相同的

~-  表示上一次的工作目录

—————————————————————————————————–

3  ; 分号,command separator

在shell中,担任连续指令功能的符号

—————————————————————————————————–

4  ;; 连续的分号(terminator)

专用在case条件语句选项中,担任Terminator的角色

—————————————————————————————————–

5  . 点 dot

在shell中一个.代表当前目录,两个..代表上层目录

—————————————————————————————————–

6   'string' 单引号(single quote)

被单引号括住的内容,将被视为单一字符串。在引号内的代表变数$符号,没有作用,也就是说,将被视作一般符号处理,放置任何变量替换

"string"双引号(double quote)

被双引号括住的内容,将被视为单一字符串,防止通配符的扩展,但允许变量扩展 ,这点与单引号的处理方式不同

`command` 倒引号(backticks)

在前面的单引号,括住的字符串如果是命令,那么命令是不会执行的,会被当作平通字符串处理,如果要执行命令,就要使用倒引号

—————————————————————————————————–

7  , 逗号(comma)

逗号常运用在运算当中当作"区隔"用途

—————————————————————————————————–

8  / 斜线 (forward slash)

在路径表示时,代表目录

通常单一的/代表root根目录的意思,在四则运算中,代表除法符号

—————————————————————————————————–

9  \反斜线

在交互模式下的反斜线有以下几个作用。

(1)放在指令前面,有取消别名的作用

(2)放在特殊符号前面,则该特殊符号作用消失

(3)放在指令的最末端,表示指令连接下一行。

—————————————————————————————————–

10  |  管道(pipeline)

连接上个指令的标准输出,作为下个指令的标准输入。

—————————————————————————————————–

11   ! 惊叹号(negate or reverse)

通常表示反逻辑的作用,譬如,用!=表示不等于

—————————————————————————————————–

12  : 冒号

在bash中,冒号是一个内建命令:“什么事都不干”,但是返回对状态值为0。

例1

:${HOSTNAME?}${USER?}${MAIL?}

这一行的作用是,检查这些环境变量参数是否已经设置,没有设置的将会以标准错误显示错误信息。

例2

写法一

repeat()

{

while true

do

$@ && return

done

}

写法二

repeat()

{

while :

do $@ && return

done

}

第一种写法中的true是作为/bin下的一个二进制文件来实现的,这就意味这每执行一次while循环,shell就不得不生成一个进程。使用shell内建的:命令,它总是返回为0的退出码,速度比第一种块很多

除了上述之外,还有一个地方必须使用冒号,在用户自己的HOME目录下的.bash_profilehuo或者任何功能相似的档案中,设定关于PATH的场合中,我们使用冒号来作分隔

—————————————————————————————————–

13  ? 问号(wild card)

在文件名扩展上表示匹配任意一个字符,但不包含null

*星号

在文件名扩展中表示任意字符,包含null

在运算时表示乘法

—————————————————————————————————–

14  $ 钱号 (dollar sign)

变量替换的代表符号

在正则表达式中被定义为"行"的最末端

—————————————————————————————————–

15 ${}  位置变量的表达式

$*

$*引用script的执行引用变量,引用参数的算法与一般指令相同,指令本身为0,其后为1,以此类推,引用变量的代表方式如下 $0,$1,$2,$3,$4,$5,$6,$7,$8,$9,${10},${11},${12}…..

各位数的可以直接使用数字,但是两位数以上的,则必须使用{}符号括住.

$*则是代表引用变量的符号,使用时,要依据情况加上双引号,例如 echo "$*"

还有一个与$*具有相同作用的符号,但效果和处理方式有些不同  $@

$@

$@与$*具有相同作用的符号,不过两者有一个不同点。$*将所有的变量视为一个整体,但是$@则仍保留每个引用变量的区段概念

$#

$#表示引用变量的总数量是多少

$?状态值(status ariable)

一般来说,Unix like系统的进程以执行系统调用exit()来结束。这个回传值就是status值。回传给父进程,来检查子进程的执行状态。一般指令执行成功,其回传值为0;失败为1

由于进程的ID是唯一的,所以在同一时间,不可能有重复的PID。有时script会需要产生临时文件,用来存放必要的材料。而此script有可能在同一时间被使用者们使用。在这种情况下,固定文件名的写法就显得不可靠。唯有产生动态文件名,才能符合要求。符号$$或许可以符合这种要求。他代表当前shell的PID,使用它来作为文件名的一部分,可以避免在同一时间,产生相同文件名的覆盖现象

—————————————————————————————————–

16  ( )指令群组(command group)

用括号将一串指令括起来,这种用法对shell来说,成为指令群组。指令群组有一个特性,shell会以产生subshell来执行这组指令。因此,在其中所定义的变量,仅作用于指令群组本身。除了指令群组,括号也用在array变量的定义上,另外也应用在其他可能需要加上escape字符才能使用的场合,例如运算式

((  ))

这组括号的作用于了let指令类似,用在算术运算上,是bash的内建功能。所以,在执行效率上会比使用let指令块许多

{  } 大括号(Block of code)

有时候script当中会出现,大括号中间夹着一段或几段以分号作结尾的指令或变量设定。这种用法与上面介绍的指令群组非常相似,但是大括号不会在当前的shell中产生subshell

大括号也被用在"函数"功能上。广义上说,单纯只适用大括号时,作用就像是个没有指定名称的函数一般。因此,这样写script也是相当好的一件事,尤其对输入输出的重定向上,这个做法可以精简script的复杂的。

此外,大括号还有另一种用法,如下

{xx,yy,zz,…}

这种大括号的组合,常用在子串的组合上,例如

mkdir {userA,userB}-{home,bin,data}

我们得到userA-home,userA-bin,userA-data,userB-home,userB-bin,userB-data这几个目录。这组符号在适用性上相当广泛。再来看个例子

chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

如果不是因为这种用法,我们得写几行重复几次呢?

[  ]中括号

常出现在流程控制中,扮演括住判断式的作用。if [ "$?" != 0 ];then  echo "execute error";exit 1;fi

这个符号在正则表达式中担任类似范围的或集合的角色rm -f 200[1234]

[[  ]]

这组符号与先前的[]符号,基本上作用相同,但它允许在其中直接使用||和&&逻辑等符号

—————————————————————————————————–

17  ||  逻辑符号

这个代表 or 逻辑的符号

&&  逻辑符号

这个代表 and 逻辑的符号

&  后台工作

单一个&符号,且放在完整指令列的最末端,即表示将该指令列放入后台中工作

\  单词边界

这组符号在正则表达式中,被定义为"边界"的意思。当匹配时匹配整个单词

+  加号plus

在运算式中,用来表示加法

在正则表达式中,用来表示匹配前面字元至少一次的意思

–  减号

在运算式中,用来表示"减法",expr 10 – 2

此外也是系统指令的选项符号,ls -la /etc/

在GNU指令中,如果单独使用 – 符号,不加任何该文件名称时,代表"标准输入"的意思。譬如,tar xpvf-   这里的 – 符号代表从标准输入读取资料

不过在 cd 指令中比较特别   cd –   这代表变更工作目录到"上一次"工作目录。

————————————————————————————

18   %  除法(Modulo)

在运算式中,用来表示除法

此外,也被用在关于变量的正则表达式当中,例如

${parameter%word}${parameter%%word}

一个%表示最短的word匹配,两个表示最长的word匹配

————————————————————————————

19   = 等号equals

常在设定变量时看到的符号

或者是PATH的设定,设置应用在运算或判断式等此类用途上

==  等号 equals

常在条件判断式中看到,代表"等于"的意思

!=  不等于

常在条件判断式中看到,代表"不等于"

^

这个符号在正则表达式中,代表行的"开头"位置,在[]中也与"!"一样表示"非"的意思

————————————————————————————

20   输入/输出重定向

>  >> <  <<  :>   &>   2&>   2<>>&  >&2

文件描述符(file descriptor),用一个数字(通常为0-9)来表示一个文件。常用的文件描述符如下

文件描述符    名称    常用缩写    默认值

0      标准输入    stdin      键盘

1      标准输出    stdout      屏幕

2     标准错误输出    stderr      屏幕

我们在简单的使用 < 或 > 时,相当于使用 0< 或 1>

cmd > file

把cmd命令的输出重定向到文件file中。如果file已经存在,则清空原有文件

cmd >> file

把cmd命令的输出重定向到文件file中,如果file文件已经存在,则把信息追加到file中

cmd < file

使cmd命令从file中读入

cmd << text

从命令行读取输入,直到一个与text相同的行结束。除非使用引号把输入括起来,此模式将对输入内容进行shell变量替换。如果使用<

cmd <<< word

把word(而不是文件word)和后面的换行行为输入提供给cmd

cmd <> file

以读写模式把文件file重定向到输入,文件file不会被破坏。仅当应用程序利用了这一特性时,它才是有意义的

:>filename

把文件"filename"截断为0长度,如果文件不存在,就创建一个0长度文件(与'touch'的效果相同)

cmd >& n    把输出送到文件描述符n

cmd m>&n     把输出到文件描述符m的信息重定向到文件描述符n

cmd >&-     关闭标注输出

cmd

cmd m

cmd

cmd

cmd >&n-    移动输出文件描述符n而非复制它

部分摘自http://web.itivy.com/article-821-1.html

原创文章,作者:black_fish,如若转载,请注明出处:http://www.178linux.com/35067

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值