shell

1.command >/dev/null 与 command >/dev/null 2>&1:

command >/dev/null的作用是将是command命令的标准输出丢弃,而标准错误输出还是在屏幕上。 一般来讲标准输出和标准错误输出都是屏幕,因此错误信息还是会在屏幕上输出。


command >/dev/null 2>&1 这样标准输出与标准错误输出都会被丢弃。1表示标准输出,2表示标准错误输出,2>&1表示将标准错误输出重定向到标准输出。
注意:>表示输出重定向,如果 command > /usr/log 那其会覆盖log中原来的记录。可以使用>>输出重定向来向文件尾部增加输出记录。

2.获取绝对路径:

$(cd "$(dirname "$0")";pwd)

注意:pwd获取的是执行shell命令的工作路径,不一定是绝对路径.


比如:shell目录:/home/xxx/test.sh,而test.sh中是pwd. home目录下执行./xxx/test.sh此时得到/home,/home/xxx目录下执行./test.sh得到/home/xxx

3.tailf 和tail - f :

tail -f : 根据文件描述符进行追踪,当文件改名或被删除,追踪停止.


tailf : 也是追踪文件,与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电.
总结: tail -f一直追踪,而tailf只在文件变化时追踪.

4.EOF(end of file) :

<<EOF        //开始
....
EOF          //结束

<<是重定向,EOF是终止符,是将EOF之间的内容输入到文件中


注意:第一个EOF必须以重定向字符<<开始,第二个EOF必须顶格写,否则会报错.

5.sed命令:

sed -i "s/url=tcp://127.0.0.1:8888/url=tcp://$xenvurl:8888/g"  /usr/local/xxx/conf/xxx.conf

-i :让操作在原文件执行。无论你执行了啥,原始文件都将会被覆盖。这是非常危险的。
s :substitute(代替)
url=tcp://127.0.0.1:8888 :要替换的内容
url=tcp://$ x e n v u r l : 8888 : 替 换 后 的 内 容 ( xenvurl:8888:替换后的内容( xenvurl:8888:(xenvurl为要替换的url)
g :全文替换
/usr/local/xxx/conf/xxx.conf :文件绝对路径


sed中常用的编辑命令:

a:追加 向匹配行后面插入内容
c:更改 更改匹配行的内容
i:插入 向匹配行前插入内容
d:删除 删除匹配的内容
s:替换 替换掉匹配的内容

比如:sed -i "17c…表示在17行更改


注意:一般对原始文件操作先不加- i,将文件操作完打印出来看符不符合你的要求,如果符合再加- i对原始做各种文件操作.

6.if中的参数 :

文件表达式:
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。


整数变量表达式:
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于


字符串变量表达式:
If [ $a = $b ] 如果string1等于string2,则为真
字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2,则为真
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空,则为真
if [ $sting ] 如果string 非空,返回0 (和-n类似)


逻辑非 ! : 条件表达式的相反
if [ ! 表达式 ]
if [ ! -d n u m ] 如 果 不 存 在 目 录 num ] 如果不存在目录 num]num


逻辑与 –a : 条件表达式的并列
if [ 表达式1 –a 表达式2 ]


逻辑或 -o 条件表达式的或
if [ 表达式1 –o 表达式2 ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值