shell变量总结回顾澳门金莎娱乐网站:,Linux正则

日期:2019-11-07编辑作者:服务器

shell脚本(风华正茂卡塔 尔(阿拉伯语:قطر‎功底知识,shell脚本根基知识

shell

一、简介

1.成效:与基本进行交互作用

2.语言类型:解释性语言,给底蕴解释用

3.脚本中率先行内容:

#!/bin/bash                       那是shell脚本的首先行内容,表示用bash那些解释器去解释上边包车型地铁源委

#!/bin/sh                            那也能够是shell脚本的率先行内容,表示用sh那几个解释器去解释上边包车型大巴内容

#!/usr/bin/env bash        env表示使用相对路线,自动找bash解释器所在地点。能够减轻区别版本的体系bash不一定在/usr/bin/bash那个路子下的题目

4.为了使脚本方便其余人阅读,平日会在上马加上笔者、成立时间、邮箱、版本、描述等剧情,能够选用以下设置连忙键的法子在本子中加进这几个音信

vim /etc/vimrc

map <F4> ms:call WESTOS()<cr>'s
function WESTOS()
        call append(0,"######################################")
        call append(1,"# Author     :vaon                   #")
        call append(2,"# Create Date:".strftime("%Y-%m-%d")."             #")
        call append(3,"# Email      :[email protected]         #")
        call append(4,"# Version    :1.0                    #")
        call append(5,"# Description:                       #")
        call append(6,"######################################")
        call append(7,"                          ")
        call append(8,"#!/usr/bin/env bash")
endfunction

#map表示影射-->按F4时调用(呼叫卡塔 尔(阿拉伯语:قطر‎WESTOS函数

#0代表第一行,1次之行...

#罗曼蒂克部分strftime是八个体系自带的函数,表示展现当前时刻   .是分隔符,表示这一个函数与此外两段内容互不影响

#上面是设定函数的艺术:

    Fucton 函数名()

    内容

    Endfunction

接下来成立一个本子使用F4键就能够在剧本最前头自动抬高以下内容:

二、功底知识

1.变量的扬言${a}b

设定a=1

echo $a 会出现1,

但echo $ab就不会产出1b,因为系统把ab当成八个变量了。

能够echo ${a}b,会产出1b,把作为一个已定义的1

2.转义、弱引用、强引用

1)代表转义

echo ###不会晤世结果,可是加上 echo ###就可以并发###

2卡塔尔国“”表示弱援用,也得以出口###

3卡塔尔‘’表示强援用,能够出口###

4卡塔 尔(英语:State of Qatar)强援用和弱引用的分别

例如 $  !    ``  那么些强援用会把她们作为普通内容打字与印刷到荧屏上

而弱引用会把她们正是系统变量,推行变量里的源委

还比如在弱引用中`hostname`代表实行hostname命令

而在强援引中象征输出`hostname`其风流倜傥剧情

3.diff、patch

1)diff

【1】.

[[email protected] mnt]# cat file1
abcd
1234
[[email protected] mnt]# cat file2
abcd
[[email protected] mnt]# diff file1 file2
2d1
< 1234
#表示file1删除1234就和file2一样了

【2】.比较目录

diff -r 目录一 目录二

2)打补丁

建立hello文件:

vim hello

westos

建立hello.new文件:

vim hello.new

westos

456

设置自动更新工具包:

yum install patch -y

将hello.new与hello文件相比,多出的内容做成hello.path补丁包:

diff -u hello hello.new > hello.path

用path补丁包去更新hello文件:

patch hello hello.path

翻看hello文件,已经被更新成和hello.new同样了:

cat hello

westos

456

注:如若patch后边加上-b参数表示在更新的还要备份原版的书文件为hello.orig

4.grep

先是创制三个文书:

[[email protected] mnt]# vim /mnt/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
hello
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
test:ROOT:test
test:test:root
test:root:test
test:roottest:test

1卡塔 尔(阿拉伯语:قطر‎查找满含root子段的行

[[email protected] mnt]# grep root /mnt/passwd
root:x:0:0:root:/root:/bin/bash
test:test:root
test:root:test
test:roottest:test

2卡塔尔查找包含root子段的行,不区分轻重缓急写

[[email protected] mnt]# grep -i root /mnt/passwd
root:x:0:0:root:/root:/bin/bash
test:ROOT:test
test:test:root
test:root:test
test:roottest:test

3)只要root开头的

[[email protected] mnt]# grep -i ^root /mnt/passwd
root:x:0:0:root:/root:/bin/bash

4)只要root结尾的

[[email protected] mnt]# grep -i root$ /mnt/passwd
test:test:root

5卡塔尔国以root开首和尾声的行都不要。-E表示前面八个规范化还要筛选,-v代表绝不筛选出的行

[[email protected] mnt]# grep -i root /mnt/passwd|grep -i -E "^root|root$" -v
test:ROOT:test
test:root:test
test:roottest:test

6卡塔尔表示大器晚成旦富含唯有root子段的行,root前后只要有字母都不用,如roottest那行就毫无

[[email protected] mnt]# grep -i "<root>" /mnt/passwd|grep -i -E "^root|root$" -v
test:ROOT:test
test:root:test
问题:

翻看全数能登录系统的顾客

解答:

[[email protected] mnt]# grep "<bash>" /etc/passwd
root:x:0:0:root:/root:/bin/bash
足见唯有root能登入
7卡塔尔grep -n 表示展现寻觅出的字符串所在行号

[[email protected] mnt]# grep -n hello /mnt/passwd
4:hello

8卡塔 尔(阿拉伯语:قطر‎gep -n2 表示显示寻找出的行以致它的上边2行和底下2行,並且出示各自在文书中的行号

注:要是-n和2时期有空格则表示除了上边呈现的开始和结果还有大概会在每行起初展现出文件名

[[email protected] mnt]# grep -n2 hello /mnt/passwd
2-bin:x:1:1:bin:/bin:/sbin/nologin
3-daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:hello
5-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
6-games:x:12:100:games:/usr/games:/sbin/nologin

9卡塔 尔(英语:State of Qatar)grep -B2 表示展现寻觅出的行以至那行的上两行内容
[[email protected] mnt]# grep -B2 hello /mnt/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
hello
10卡塔 尔(阿拉伯语:قطر‎grep -A2 表示下两行

[[email protected] mnt]# grep -A2 hello /mnt/passwd
hello
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
11卡塔 尔(英语:State of Qatar)表示寻觅/mnt目录下包罗root字符的文件
[[email protected] mnt]# grep -r hello /mnt/
/mnt/passwd:hello

5.cut

用法:cut -d 分隔符 -f 第几列 文件

-c钦点字符

-d钦赐分隔符

-f钦命第几列

cut -d : -f 2 /mnt/psswd     #以:为分隔符,展现passwd文件第二列

cut -d : -f 2,7 /mnt/psswd   #,表示第二和第七列,假使是-表示2到第7列

cut -c 3 /mnt/passwd      #呈现第三列的字符,不采取分隔符

cut -c 1,3 /mnt/passwd     #来得风姿洒脱和三列的字符,不接纳分隔符

题目:

显示eth0网卡的ip

解答:

[[email protected] mnt]# ifconfig eth0|grep "<inet>"|cut -d " " -f 10
172.25.254.1

6.awk

-v代表给变量授予内容:

[[email protected] mnt]# name=hello
[[email protected] mnt]# awk -F : -v name=$name 'BEGIN {print name} {print $1}END {print "end"}' /mnt/passwd
hello
root
bin
daemon
hello
mail
games
test
test
test
test
end
7.sed

-i      #本条参数表示写入文件

sed ‘s/old/new/g’ passwd       #将passwd文件中的全数old字符替换为new

sed ‘s/old/new/g’ passwd       #将passwd文件中的全体old字符替换为new,并写入passwd文件

sed ‘2,5s/old/new/g’ passwd      #替换2到5行

sed ‘/adm/,/gdm/s/old/new/g’ passwd   #从adm字符一直到gdm字符的源委军长old替换为new

sed -e ‘s/old/new/g’ -e ‘s/old1/new1/g’ passwd   #将old替换为new同时将old1替换为new1

sed 5d passwd    #删除第5行

sed 5p passwd    #复制第5行

sed -n 5p passwd    #只呈现第5行

-p    #意味着平素将 sed 的动作写在三个档案内, -f filename 则足以试行filename 内的sed 动作

vim file

s/sbin/westos/g
s/nologin/linux/g

sed -f file passwd

题目:

将httpd服务端口改为8080

解答:

############################
# Author     :vaon                           #
# Create Date:2017-12-16             #
# Email      :[email protected]       #
############################

#!/bin/bash
PORT=`grep ^Listen /etc/httpd/conf/httpd.conf`
sed "s/$PORT/Listen $1/g" -i /etc/httpd/conf/httpd.conf
systemctl restart httpd

8.装置变量

1卡塔 尔(阿拉伯语:قطر‎不经常安装(情状级卡塔 尔(英语:State of Qatar)

在这个时候此刻蒙受生效,当前条件关闭,变量失效

先看三个事例:

[[email protected] mnt]# a=1
[[email protected] mnt]# echo $a
1
[[email protected] mnt]# vim test.sh
#!/bin/bash
echo $a
[[email protected] mnt]# sh test.sh 

[[email protected] mnt]#

#鉴于a=1是在当前使用的shell里面赋的值,当步向脚本试行时,脚本使用的是子shell,那几个子shell中并未设定a=1,所以结果为空

[[email protected] mnt]# export a=1
[[email protected] mnt]# sh test.sh
1

#能够一时半刻设定a=1给持有shell,后生可畏旦登出就能够失去那一个有的时候设定

2卡塔 尔(阿拉伯语:قطر‎永远设置

【1】.系统级

对富有客商生效

[[email protected] mnt]# vim /etc/profile

export a=1

[[email protected] mnt]# source /etc/profile

[[email protected] mnt]# logout
Connection to 172.25.254.1 closed.
[[email protected] Desktop]# ssh [email protected]
[email protected]'s password:
Last login: Sat Dec 16 09:12:16 2017 from 172.25.254.10
[[email protected] ~]# cd /mnt/
[[email protected] mnt]# sh test.sh
1

#诸有此类具备shell都得以利用a=1那一个变量,登出种类再登录如故存在a=1

【2】.用户级

只针对配置过的顾客生效,别的顾客不恐怕选择

vim /root/.bash_profile

export a=1

source /root/.bash_profile

今昔a=1只对root客商生效

9.将脚本加到系统命令中去
[[email protected] mnt]# vim /etc/profile

export PATH=$PATH:/mnt

注:这里同样存在系统级或客商级的安装,在那运用的是系统级设置。假设只同意root能够安装/root/.bash_profile文件

[[email protected] mnt]# source /etc/profile

[[email protected] mnt]# chmod +x test.sh 

接下来退出/mnt目录,直接把test.sh脚本当成系统命令去施行,发掘也能够:

[[email protected] mnt]# cd
[[email protected] ~]# test.sh
1
10.命令别称

1卡塔尔国使用小名

[[email protected] ~]# vim /etc/bashrc
alias kan='cat'             #表示实行'kan'的时候一定于实行'cat'命令

[[email protected] ~]# source /etc/bashrc

翻看小名列表:

[[email protected] ~]# alias

         ...

alias kan='cat'

         ...

实践kan这么些单词就也就是施行cat命令

[[email protected] ~]# kan /mnt/test.sh
######################################
# Author     :vaon                   #
# Create Date:2017-12-16             #
# Email      :[email protected]         #
######################################
                          
#!/bin/bash
echo $a
2卡塔 尔(阿拉伯语:قطر‎删除别称
删除/etc/bashrc中的alias kan='cat'

接下来在剔除kan新闻:

unalias kan

现今查看alias列表,里面早就远非kan的音信了

11.*和@区别

vim test.sh

#!/bin/bash
echo '$1 Is' $1
echo '$2 Is' $2
echo '$3 Is' $3
澳门金莎娱乐网站,echo '$* Is' $*
echo '$# Is' $#
echo '[email protected] Is' [email protected]
[[email protected] mnt]# sh test.sh 1 2 3
$1 Is 1                                                   #显示第1个字符
$2 Is 2                                                   #显示第1个字符
$3 Is 3                                                   #显示第1个字符
$* Is 1 2 3                                             #突显全体字符
$# Is 3                                                   #体现最后一个字符
[email protected] Is 1 2 3                                           #来得全部字符
*和@都表示具有内容,但实际二个是有所内容方到“”里面。而@是各种数据都加引号

$*   “1 2 3”

&@  “1” “2” “3”

12.shell脚本中等高校函授数的定义

READ()

{

        echo hello word

}

13.变量比照

1)test

2)[ ]

[[email protected] mnt]# a=1
[[email protected] mnt]# b=1
[[email protected] mnt]# test "$a" == "$b" && echo yes || echo no
yes
[[email protected] mnt]# [ "$a" == "$b" ] && echo yes || echo no
yes
3)[ 条件1 -a 条件2 ] 表示原则1和2都满意
4)[ 条件1 -o 条件2 ] 表示原则1和2任一个满足

5)[ 条件1 -eq 条件2 ]  等于

6)[ 条件1 -ne 条件2 ]  不等于

7)[ 条件1 -gt 条件2 ]  大于

8)[ 条件1 -ge 条件2 ]  大于等于

9)[ 条件1 -lt 条件2 ]  小于

10)[ 条件1 -le 条件2 ]  小于等于

[[email protected] mnt]# [ "$a" -eq "$b" ] && echo yes || echo no
yes

11)[ -n ]   变量内容不为空

12)[ -z ]    变量内容为空

[[email protected] mnt]# a=8
[[email protected] mnt]# [ -n "$a" ] && echo yes || echo no
yes
[[email protected] mnt]# [ -z "$a" ] && echo yes || echo no
no

13)[ -b ]  是不是为块设备文件

14)[ -c ]  是不是为字符设备文件

[[email protected] mnt]# [ -b /dev/sda ] && echo yes || echo no
yes
[[email protected] mnt]# [ -c /dev/vfio/vfio ] && echo yes || echo no
yes

15)[ -f ]  是不是为平常文件

16)[ -S ]  是不是为套接字文件

17)[ -L  ]  是不是为链接文件

18)[ -d ]  是或不是为目录

19)[ -e ] 文件是或不是存在

20)[ -r ]  是还是不是可读

21)[ -w ]  是不是可写

22)[ -x ]  是不是可进行

18)[ filename1 -nt filename2 ]  如果 filename1 比 filename2 新,则为真

19)[ filename1 -ot filename2 ]  如果 filename1 比 filename2 旧,则为真

[[email protected] mnt]# touch file
[[email protected] mnt]# [ /mnt/check_ip -ot file ] && echo yes || echo no
yes

题目:

显示输入的文件类型

解答:

#!/bin/bash
[ -e $1 ] && (
        [ -f $1 ] && echo "$1 Is File"
        [ -d $1 ] && echo "$1 Is Directory"
        [ -b $1 ] && echo "$1 Is Block File"
        [ -L $1 ] && echo "$1 Is Link"
        [ -S $1 ] && echo "$1 Is Socket"
)
14.四则运算

15.语句

case语句:
现身的去相配全体准则,全体条件同有的时候候去安插,功用比if语句高

if语句是逐行去相称,第少年老成行不包容再去相称下风流浪漫行,作用十分的低

exit 退出脚本。前边加数字1|0则表示退出后$?的值为1|0

break 退出循环

小说版权:

Linux正则表明式sed 详述

sed、awk工具得以兑现公文替换并且把替换的文本输出到荧屏上
sed和awk都以流式编辑器,是对准文档的行来操作的。sed平时用来替换操作。

亲自过问的文书内容,以下操作依照此文件。
[[email protected] ~]# cat test.txt 
rot:x:0:0:rot:/rot:/bin/bash
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
rooooot:x:0:0/roooooot:/bin/bash
11111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

1、打字与印刷某生龙活虎行
sed -n 'n'p filename 单引号内的n是贰个数字,表示第几行;p也能够写到引号内;

示例,打印passwd第3-5行;

[[email protected] ~]# sed -n '3,5'p /etc/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

打字与印刷全部行

[[email protected] ~]# sed -n '1,$'p /etc/passwd

打字与印刷某大器晚成行,並且要展示行号,须求和grep一同利用;

[[email protected] ~]# grep -n '.*' test.txt | sed -n '1'p
1:rrt

2、打印带有有些字符串的行

字符串要求用/ /括起来;grep中的特殊符号^ $ . * 同样适用于sed中。
[[email protected] ~]# sed -n '/root/'p /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

打字与印刷带有/sbin/nologin的行,/要求进行脱意;
[[email protected] ~]# sed -n '//sbin/nologin/'p passwd 
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

打字与印刷以d起初的行;打字与印刷以in结尾的;打印r与o字母中间有2个随机字符的;打字与印刷带有2个o及五个o的行;
[[email protected] ~]# sed -n '/^d/'p test.txt 
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[[email protected] ~]# sed -n '/in$/'p test.txt 
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[[email protected] ~]# sed -n '/r..o/'p test.txt
rooooot:x:0:0/roooooot:/bin/bash
[[email protected] ~]# sed -n '/ooo*/'p test.txt
root:x:0:0:root:/root:/bin/bash
rooooot:x:0:0/roooooot:/bin/bash

3、-e能够实现多个表现
[[email protected] ~]# sed -e '1'p -e '/111/'p -n test.txt 
rot:x:0:0:rot:/rot:/bin/bash
11111111111111111111111111111111

能够用-e写八个;-e也正是传送带,先相称最前边的打字与印刷,再合作前边的打印,所以率先行会打字与印刷2次;

[[email protected] ~]# sed -e '/root/p' -e '/bash/p' -n 1.txt
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash

-e前面也能够用;分号;-n不能够写到-e的末尾,能够写在-e的前边或最后边;
[[email protected] ~]# sed -e '/root/p;/bash/p' -n 1.txt
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash

4、删除某行大概多行

‘d’ 那几个字符正是去除的动作了,不仅能够去除钦命的单行以至多行,何况还足以去除相称有些字符的行,此外还是可以去除从某生机勃勃行一向到文书档案末行。

以身作则,删除第少年老成行;删除1-3行;删除包涵root关键词的行;删除第3行到终极风度翩翩行全数行;
[[email protected] ~]# sed '1'd test.txt 
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
rooooot:x:0:0/roooooot:/bin/bash
11111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[[email protected] ~]# sed '1,3'd test.txt 
rooooot:x:0:0/roooooot:/bin/bash
11111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[[email protected] ~]# sed '/root/'d test.txt
rot:x:0:0:rot:/rot:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
rooooot:x:0:0/roooooot:/bin/bash
11111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[[email protected] ~]# sed '3,$'d test.txt 
rot:x:0:0:rot:/rot:/bin/bash
root:x:0:0:root:/root:/bin/bash

5、替换字符或沟通字符串

示范,替换第生龙活虎行字母r为福睿斯;替换1-2行中ot为to;替换全部行中ot为to;
[[email protected] ~]# sed '1s/r/R/g' test.txt 
RRt
[[email protected]ia ~]# sed '1,2s/ot/to/g' test.txt 
rto:x:0:0:rto:/rto:/bin/bash
roto:x:0:0:roto:/roto:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
rooooot:x:0:0/roooooot:/bin/bash
11111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[[email protected] ~]# sed 's#ot#to#g' test.txt 
rto:x:0:0:rto:/rto:/bin/bash
roto:x:0:0:roto:/roto:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
rooooto:x:0:0/roooooto:/bin/bash
11111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

与vim编辑器里面替换同样的一声令下格式,s代表替换,g代表全局,不加g的话只替换行的首先个;能够使用# @作为分隔符。

1s意味着只替换第风流洒脱行;1,3s意味首先行到第三行;不加行数的话默认为满门行。

演示,删除文书档案中享有的数字's/[0-9]//g'  如删减文书档案中持有的字母's/[a-zA-Z]//g'删除全体的数字和字母's/[0-9a-zA-Z]//g'
[[email protected] ~]# sed 's/[0-9]//g' test.txt 
rot:x:::rot:/rot:/bin/bash
root:x:::root:/root:/bin/bash
daemon:x:::daemon:/sbin:/sbin/nologin
rooooot:x::/roooooot:/bin/bash
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

演示,删除文书档案中兼有的字母
[[email protected] ~]# sed 's/[a-z]//g' 1.txt 
::0:0:/://
::11:0::/://
::11:0::/://
::0:0:/://
1111111111111111111111111111111

演示,删除文书档案中不是俄文字母的(数字和特殊符号卡塔尔
[[email protected] ~]# sed 's/[^a-z]//g' 1.txt 
rotxrotbinbash
operatorxoperatorrootsbinnologin
operatorxoperatorroootsbinnologin
rooootxroooootbinbash
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

演示,删除文书档案中不是数字的(斯洛伐克共和国(The Slovak Republic卡塔 尔(阿拉伯语:قطر‎语字母和特殊符号卡塔尔

[[email protected] ~]# sed 's/[^0-9]//g' 1.txt 
00
110
110
00
1111111111111111111111111111111

示范,把文书档案中的小写字母全体替换为大写字母 's/[a-z]/u&/g'
[[email protected] ~]# sed 's/[a-z]/u&/g' 1.txt 
ROT:X:0:0:/ROT:/BIN/BASH
OPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGIN
OPERATOR:X:11:0:OPERATOR:/ROOOT:/SBIN/NOLOGIN
ROOOOT:X:0:0:/ROOOOOT:/BIN/BASH
1111111111111111111111111111111
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

示范,把文书档案中的大写字母全体替换为小写字母 's/[A-Z]/l&/g'

[[email protected] ~]# sed 's/[A-Z]/l&/g' 1.txt 
rot:x:0:0:/rot:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

退换的同一时候加-n p 打字与印刷特定的行;

[[email protected] ~]# sed -n '1s/[a-z]/u&/g'p 1.txt 
ROT:X:0:0:/ROT:/BIN/BASH

6、调换三个字符串的职责
sed -r 's/([^:]+)(:.*:)([^:]+$)/321/'
[^:]非冒号,不是冒号的装有字符
-r, --regexp-extended  在剧本中央银行使扩大正则表达式; 加r选项的情趣为后边不用再加脱意 
( )括号括起来是分段的意思,
321    是表示3交流1,前边的源委交换成前方

演示,aa与ff调换;加-r选项不用加脱意符号;不加-r ( )括号左右都亟待加脱意;交换多行用最终三个;
[[email protected] ~]# cat 1.txt 
aa:bb:cc:dd:ee:ff
[[email protected] ~]# sed -r 's/(aa)(.*)(ff)/321/' 1.txt
ff:bb:cc:dd:ee:aa
[[email protected] ~]# sed 's/(aa)(.*)(ff)/321/' 1.txt 
ff:bb:cc:dd:ee:aa
[[email protected] ~]# sed -r 's/([^:]+)(:.*:)([^:]+$)/321/' 1.txt 
ff:bb:cc:dd:ee:aa

亲自去做,rot与/bin/bash进行交换
[[email protected] ~]# grep 'rot' test.txt
rot:x:0:0:rot:/rot:/bin/bash
[[email protected] ~]# grep 'rot' test.txt |sed 's/(rot)(.*)(/bin/bash)/321/'
/bin/bash:x:0:0:rot:/rot:rot
[[email protected] ~]# grep 'rot' test.txt |sed -r 's/(rot)(.*)(/bin/bash)/321/'
sed:-e 表达式 #1,字符 18:“s”的未知选项
[[email protected] ~]# grep 'rot' test.txt |sed -r 's/(rot)(.*)(/bin/bash)/321/'
/bin/bash:x:0:0:rot:/rot:rot

加-r  后(卡塔尔内的/bin/bash 也还索要脱意才足以;

-i 选项    间接沟通字符,何况保留原著件里面。使用i选项前,记得备份原版的书文件。

[[email protected] ~]# sed -r -i 's/([^:]+)(:.*:)([^:]+$)/321/' 1.txt 
[[email protected] ~]# cat 1.txt 
ff:bb:cc:dd:ee:aa

在sed命令中引进shell变量

Linux下Shell编制程序——sed命令基本用法

Unix文本管理工科具之sed 

sed 高档用法

sed命令安详严整与示范

正文恒久更新链接地址:

详述 sed、awk工具得以兑现公文替换而且把替换的文件输出到荧屏上 sed和awk都以流式编辑器,是针对性文书档案的行来操作的。...

--------------------------------------分割线

AWK简要介绍及应用实例

AWK 简单介绍和例子

Shell脚本之AWK文本编辑器语法

正则表明式中AWK的上学和使用

文件数据管理之AWK 图解

如何在Linux中使用awk命令

文件解析工具-awk 

常用的操作测验符

Linux正则表明式awk讲明

awk和sed同样是流式编辑器,它也是照准文书档案中的行来操作的,生机勃勃行意气风发行的去实施。awk比sed更抓牢劲,它能成就sed能打铁趁热的,相符也能一鼓作气sed不能够到位的。awk常用来分段;

awk不用加任何参数就能够达成 + ? * .  | 这一个特殊符号;

1、截取文书档案中的某些段
[[email protected] ~]# head -n2 passwd |awk -F: '{print $1}'
root
bin
[[email protected] ~]# head -n2 passwd |awk -F: '{print $0}'
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[[email protected] ~]# head -n2 passwd |awk -F: '{print $1,$3,$7}'
root 0 /bin/bash
bin 1 /sbin/nologin

-F 选项的功效是钦点分隔符,假设不加-F钦赐,则以空格大概tab为分隔符。 Print为打字与印刷的动作,用来打字与印刷出有些字段。$1为率先个字段,$2为第叁个字段,依次类推,有一个破例的那正是$0,它代表整行。

{ }内足以打字与印刷多少个字段$1,$3,$7 打字与印刷第1、3、7段,中间用逗号隔绝;

打字与印刷分段暗中认可分隔符为空格,可以自定义分隔符,分隔符需求用冒号括起来;也能够OFS定义输出分隔符;
[[email protected] ~]# awk -F: '{print $3,$4}' 1.txt |head -5
0 0
1 1
2 2
3 4
4 7
[[email protected] ~]# awk -F: '{print $3":"$4}' 1.txt |head -5
0:0
1:1
2:2
3:4
4:7
[[email protected] ~]# awk -F: 'OFS="#"{print $3,$4}' 1.txt |head -5
0#0
1#1
2#2
3#4
4#7

[[email protected] ~]# head -n2 passwd |awk -F: '{print $1"#""@"$3"#"$7}'
root#@0#/bin/bash
bin#@1#/sbin/nologin

留意awk的格式,-F后紧跟单引号,然后里面为分隔符,print的动作要用 { } 括起来,不然会报错。print还是能打字与印刷自定义的从头到尾的经过,可是自定义的内容要用“”双引号括起来。

2、相配字符或字符串
[[email protected] ~]# awk -F: '$1~/me/' passwd 
games:x:12:100:games:/usr/games:/sbin/nologin
[[email protected] ~]# awk -F: '$1~/user/' passwd 
user1:x:600:501::/home/user1:/bin/bash

能够让有个别段去相配,~ 表示极其的乐趣,以冒号分隔第一字段然后相称//里的最首要字;

[[email protected] ~]# awk -F: '/root/ {print $1,$3} /user/ {print $1,$3}' passwd 
root 0
operator 11
ftp 14
saslauth 499
user1 600

awk还是能屡次神工鬼斧,如上例全文相称包含root关键词的行,再合营富含user的行,打字与印刷所匹配的第1、3段。

3、条件操作符
决断第二个字段为0的
[[email protected] ~]# awk -F: '$3=="0"' passwd 
root:x:0:0:root:/root:/bin/bash
[[email protected] ~]# awk -F: '$3==10' passwd 
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

剖断首个字段为10的同期打字与印刷该行的第7字段;

[[email protected] ~]# awk -F: '$3==10 {print $7}' passwd 
/sbin/nologin
[[email protected] ~]# awk -F: '$3=="600"' passwd 
user1:x:600:501::/home/user1:/bin/bash

 

awk中是足以用逻辑符号剖断的,例如 ‘==’ 便是相等,也足以知晓为 ‘正确相称’ 别的也会有 >, ‘>=, ‘<, ‘<=, ‘!= 等等,值得注意的是,在和数字比较时,若把比较的数字用双引号引起来后,那么awk不会感到是数字,而感觉是字符,不加双引号则以为是数字。

 

身体力行,双引号括起来感觉是字符;加单引号和不加则以为是数字;
[[email protected] ~]# awk -F: '$3>"500"' passwd | sort -t: -k 3 -n 
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
sshd:x:74:74:privilege-separated ssh:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:system message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:nobody:/:/sbin/nologin
user1:x:600:501::/home/user1:/bin/bash

[[email protected] ~]# awk -F: '$3>500' passwd | sort -t: -k 3 -n 
user1:x:600:501::/home/user1:/bin/bash
[[email protected] ~]# awk -F: '$3>'500'' passwd | sort -t: -k 3 -n 
user1:x:600:501::/home/user1:/bin/bash

 

!= 为不相称,第7字段不等于/sbin/nologin的行,须要用双引号括起来。
[[email protected] ~]# awk -F: '$7!="/sbin/nologin"' passwd 
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
user1:x:600:501::/home/user1:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

 

除了针对某二个段的字符实行逻辑相比外,还足以八个段之间展开逻辑相比较。

[[email protected] ~]# awk -F: '$3>"5" && $3<"7"' passwd 
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
user1:x:600:501::/home/user1:/bin/bash

除此以外还足以采用 && “何况”和  || “或然” 的意味。
示范,打字与印刷第3段大于第4段,何况第7段为/bin/bash的行;
[[email protected] ~]# awk -F: '$3>$4 && $7=="/bin/bash"' passwd 
user1:x:600:501::/home/user1:/bin/bash

以身作则,打字与印刷第3段小于第4段,或然第7段为/bin/bash的行;
[[email protected] ~]# awk -F: '$3<$4 || $7=="/bin/bash"' passwd 
root:x:0:0:root:/root:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:ftp user:/var/ftp:/sbin/nologin
user1:x:600:501::/home/user1:/bin/bash
mysql:x:27:27:mysql server:/var/lib/mysql:/bin/bash

4、awk的放到变量

awk常用的变量有:
NF :用分隔符分隔后一同有个别许段
NR :行数
{print N福特Explorer":"NF}    列骑行号,以冒号分隔,列出共有多少段;

[[email protected] ~]# head -5 passwd |awk -F: '{print NR":"NF}'
1:7
2:7
3:7
4:7
5:7
[[email protected] ~]# head -5 passwd |awk -F: '{print NF}'
7
7
7
7
7
[[email protected] ~]# head -5 passwd |awk -F: '{print NR}'

[[email protected] ~]# head -5 passwd |awk -F: '{print $NF}'
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin

NF 表示是有一点段,而$NF是最后大器晚成段的值, 而NRAV4则是行号。5、awk中的数学生运动算awk还是能对风度翩翩生龙活虎段的值进行数学生运动算:12 [[email protected] ~]# awk -F: '{(tot=tot+$3)};END {print tot};' passwd 
1720

这里的END要注意一下,表示全部的行都已实行,这是awk特有的语法,其实awk连同sed都得以写成叁个本子文件,而且有他们有意的语法,在awk中采纳if决断、for循环都以足以的。

亲自过问,if推断,如首先段的值为root,打字与印刷整行;
[[email protected] ~]# awk -F: '{if ($1=="root") print $0}' passwd 
root:x:0:0:root:/root:/bin/bash

示例,for循环,定义sum变量,i值为第3段的值;求第3段的和;

[[email protected] ~]# sum=0;for i in `awk -F: '{print $3}' passwd`;do sum=$[($sum+$i)];done;echo $sum
1720

$0  :  现阶段实施的历程/进程名

--------------------------------------分割线

正文永远更新链接地址:

awk和sed相近是流式编辑器,它也是指向文书档案中的行来操作的,意气风发行后生可畏行的去实践。awk比sed更压实硬,它能不负众望sed能做...

剧本的正经八百书写:

 

hello.sh  ipadd.sh  logmess_clean.sh 

                 if条件语句--双分段

echo $3

[[email protected] ~]#

 

[[email protected] ~]# bianliang.sh  //大家定义的变量,不过透过脚本却不可能出口

-e:测测量试验目录或文件是不是存在【exist】

#echo `ls`  反引号中的命令时方可独自施行的,然后再由echo输出

[[email protected] /]# [ -w /etc/shadow ]

done                    done

           fi             

&& 标准化相符供给才会推行前面包车型客车动作

      ;;

1000

[[email protected] /]# [ -e /etc/passwd ]

2

stop)

#Mail :~~                                   //邮件地址

小说版权:

`` 将指令推行的结果输出给变量

[[email protected] /]# [ -x /etc/shadow ]

 

case $1 in

[[email protected] ~]# ./a.sh

.........

      ;;

[[email protected] /]# echo $?

去编辑贰个剧本:

}

Result=0

1000 + 1000

[[email protected] ~]# a=1000

[[email protected] Packages]#

 格式 [ 字符串1 = 字符串2 ]

 

$!  :  后台运转的最终二个进度号

1000000

input:2

-w:测量检验当前的客商是不是有写的权能【write】

do

  then

sh script    //这种方法script无需可实行权限

 if [$RATE -gt 80]

#V1.1                  //脚本的本子

[[email protected] ~]# expr $a+$a                //$a + $a 要有空格不然也是大谬不然的

3

随笔版权: ...

  if

 

zhangsan

#a.sh

当“条件建立“时实行相应的操作

[[email protected] ~]# cat c.sh

使用案例:

      echo "........."

#c.sh

 

“”和‘’与 ` ` 在shell变量中的分歧       

      ;;

      echo "stop......"

echo "hello,world!"            //前面包车型大巴才是本子的内容

#[ $name != "root"] && echo "name is erro"

#!/bin/bash

[[email protected] shellscripts]# hello.sh

援用案例:

hello world!   

awk的额外扩大

 

[[email protected] ~]#

#a.sh

 

 

常用的测量试验操作符

 

      ;;

#!/bin/bash

  平淡无奇的测量检验操作符

[[email protected] shellscripts]#

[[email protected] Packages]# [ -f /etc/passwd ]

 

[[email protected] ~]# source .bash_profile  

      do

[[email protected] ~]#

 !=:字符串内容不相通,!号表示相反的情趣

1

# unset str  肃清全局变量

[[email protected] shellscripts]# a.sh 1 2

当“条件建设构造”、“条件不成立”时实行差别的操作

翻看/shellscripts/hello.sh是不是可举办,可实行则输入yes,不然就赋予它可推行权限

  =:字符串内容相似

[[email protected] /]# echo $?

[[email protected] ~]# bianliang.sh   //再度使用完全ok

2

##read -p "input your name: "  name

      done

 用处:测验表明式是不是组建,创设重回值为0,否重临值为别的值。

echo `expr $1 + $2`

      echo "it is shuzi"

if

1

 

变量的加法运算:

2000

done

[[email protected] ~]# expr 2 / 1      //除法

 

作品版权:

#!/bin/bash

 echo "vsftp service is running"

if 条件测量试验命令                if 3306端口是或不是在监听状态

     一声令下列表      获得可用内部存款和储蓄器数

[[email protected] ~]#

 echo "Warning,DISK is full!"

 

[[email protected] ~]# expr 2 – 1        //减法

 

$$  : 近年来所在经过的进度号

0

#!/bin/bash

   #操作符两侧起码一个为真时,结果为真,不然结果为假

0-9           常用的为1-9

 

 

46

 

[[email protected] /]# echo $?

[[email protected] ~]#

[[email protected] ~]# echo $a + $a              //那是第22中学漏洞非常多的操作,运算必得使用expr

 

[[email protected] ~]# echo $a

#read -p "input your name: "  name

 else

  #!/bin/bash

esac

root

 

  如若登陆客商数小于或等于10则输出YES

 格式:[ 整数1 操作符整数2 ]

逻辑测验

  -gt:大于(Greater Than)

用来跳出当前的循环体,实行循环体后的言语。

[[email protected] ~]# export $PATH  //也足以使用export查看碰到变量路线

||    条件不符合须求时才会施行前边的动作

[[email protected] ~]# ls –a    能够查阅到那2个公文

echo `expr $1 + $2`             //$1和$2代表了2个职分变量

 

[[email protected] ~]# ./a.sh 10 20

 

要想重启主机后还生效将在编写制定情形布署文件root/.bashec或/root/.bash_profile与/etc/profile文件,想要马上见到效果能够利用命令:

.........

do             ==》do

it is english

函数的施用

start....

      字符的串相比

#echo $name

      echo "start...."

[[email protected] ~]# env  //查看系统的大局意况变量

看清vsftp是还是不是在运转。若已运营则输出提醒新闻,不然重新启航vsftp服务

 ≡ 不以为奇的测量检验项目

./ script          //必需怀有可进行权限

要想全盘的破除有些全局变量:

$#  : 命令行中地方参数的个数

      echo "restart........"

小说版权:

#!/bin/bash

break语句

[[email protected] ~]# ./a.sh stop

[[email protected] ~]# echo $a

then

      测量试验文件的动静

[[email protected] ~]# echo ${a}aaaaaa   //把变量用{}括起来,系统才会去输出变量

#!/bin/bash

      shift迁移语句

[0-9])

双重测验钦点的法规,只要条件创建则往往施行相应的一声令下操作

 

      ;;

it is shuzi

变量的加减法运算:

a

if

[[email protected] ~]# ./a.sh @

1000

[[email protected] ~]# echo '$PWD is lujing'

字符串比较

[[email protected] ~]# ./c.sh

 

 if [ $? -eq 0 ]

[[email protected] /]# echo $?

1

Yes        

55

----------. 1 root root 1086 2月  26 22:38 /etc/shadow

 

1000aaaaaa

#[ $name != "root"] && echo "name is erro"

#Date : 2014-5-28

[[email protected] ~]# cat /etc/passwd | grep bash | awk -F: '{print ($1)}'

[[email protected] /]# [ -L /etc/shadow ]

[[email protected] ~]# expr 2 % 1                //取余

      [ -z 字符串 ]

[[email protected] /]# echo $?

echo $1

扩展:” “反斜杠,成效屏蔽字符的奇异含义

[[email protected] ~]# ./a.sh

[[email protected] /]# echo $?

b

0

 

expr: syntax error

[[email protected] ~]# echo $str

#a.sh

 

[[email protected] ~]# echo $aaaaaaaa  //系统把$aaaaa视为三个变量

境况变量路线:

[[email protected] 桌面]# [ `who|wc -l` -le 10 ] && echo "YES"

扬言:以上文化全来自与自学shell编制程序计算回想

岗位变量:

 

 else 命令类别2                    else 启动mysqld服务

      echo "start....."

[ $NUM -gt 80 ]

     echo "laod......."

for TM in a b c d e

 

echo $str

-f:测量试验是或不是为文件【file】

[[email protected] shellscripts]# [ -x /shellscripts/hello.sh ] && echo yes || chmod +x /shellscripts/hello.sh

read -p "input:" NUM

[[email protected] /]# ll /etc/shadow

 

作品版权:

input:#

fi                   

鉴于上篇作品总括的不是很详细,有超多上面并未有涉嫌到shell种种方面,所以发表此随笔对shell做了更周密的总括:

  假使/boot分区的长空利用超过十分七,输出报告警察方消息

多种分支语句

 

 

[[email protected] ~]# echo "$PWD is lujing"

 

[[email protected] ~]# ./a.sh start

echo $2

[a-z]|[A-Z])

 

----------. 1 root root 1086 2月  26 22:38 /etc/shadow

$?  : 上一条命令实践后回去的事态,当状态为0时期表符合规律,非0表示实施非常或出错。

[[email protected] ~]# [ -f /etc/grub.conf ] && echo yes  || echo no 

“ ” 同意通过$符引用其余变量

  常用的测量检验操作符

 

1000+1000

   格式:[操作符   文件或目录]

0

[[email protected] ~]# cat a.sh

用以迁移地方变量,将$1~$9依次向左传递

     if条件语句   --单分支

do                                        done

done

 

 

如果/boot分区的长空应用超越70%,输出警告新闻。大家来写个本子

-d :测量检验是或不是为目录【directory】

  -eq:等于(Equal)

#a.sh

 

剧本的进行:

echo $TM

 

变量的乘法运算:

 then 一声令下种类1         ==》      then mysqld 劳务已运行

c

      ;;

#echo $name

[[email protected] /]#

  echo "warning,DISK is full!"

//查看/ect目录下是或不是有/grub.conf文件,有则输出yes,无则输出no。

#Author : Create by meng       //脚本的元老

   -a 或&&:逻辑与,“而且”的意思

input:a

 

      [ 字符串1 != 字符串2 ]

                       

      逻辑测量检验

 

  -le:小于或等于(Lessser or Equal卡塔 尔(英语:State of Qatar)

[[email protected] shellscripts]# ls

[[email protected] ~]# ^C

 

&& || 的用法:(参数的比对卡塔 尔(阿拉伯语:قطر‎

adder(){

YES

#!/bin/bash

    (前边假则实行前边卡塔尔国

[[email protected] shellscripts]# cat a.sh

-r:测验当前的客户是不是有读取的权力【read】

[[email protected] shellscripts]# cat a.sh

[[email protected] /]# ll /etc/shadow

0

#env   能够查见到具有全局变量

case "$NUM" in

案例

 

[email protected] ~]# cat a.sh

#!/bin/bash

1000

      echo "it is english"

 fi

for循环语句                            for  收件人  in 邮件地址列表

      echo "stop......"

[[email protected] ~]# ./a.sh

 

-L:测量试验是不是为标志链接文件【link】

[[email protected] Packages]# echo $?

   -o或||:逻辑或,或然的情趣

[[email protected] ~]# export str   //增添到全局变量中

一声令下类别

 

#!/bin/bash

sleep 1

      整数值相比较

start)

then

 

root

 

   格式:[表达式1]   操作符  [表达式2]

/shellscripts/a.sh           //$0打字与印刷的是脚本笨的名字

[[email protected] ~]# expr $a * $a

整数值相比

test命令

         if  准绳测量试验命令               if 磁盘已用空间>百分之八十

46

laod)

adder 12 34

55

 格式:test  条件表明式  [标准表明式]

$*  : 不无职位参数的从头到尾的经过

The sum is: 30

-x:测量试验当前的客户是或不是可举行和该文件【excute】

                 then 一声令下连串   ==》      then 报警

 

  #当钦点条件不树马上,再次来到结果为真

[[email protected] /]# [ -d /var/spool/ ]

while 指令或表明式          while 可用内部存款和储蓄器<100mb

 

 

restart)

echo $0

  /etc/init.d/vsftp restart

‘’禁止引用其余变量符,视为平日字符

 

[[email protected] ~]# expr $a * $a              //* 在操作系统中正是特殊字符,屏蔽字符的特种意义

  #前后七个表明式都创设是一切测验结果才为真,否则为假

# vim bianliang.sh

*)

[[email protected] ~]# expr $a + $a

esac

测量试验文件的状态

注:.bash_profile文件支队系统当下客商生效

      shift

[[email protected] ~]# ./c.sh

0

service vsftp status &>/dev/null

[[email protected] ~]# export PATH=$PATH:/date/  //有时增多/date目录到意况变量路径下

  -ge:大于或等于(Greater or Equal卡塔 尔(阿拉伯语:قطر‎

[[email protected] shellscripts]# a.sh a b c d e

[[email protected] ~]# set   //查看见的是局地变量和全局变量2种

#!/bin/bash

凭借变量的不通值,重复实行业作风度翩翩组命令操作   ==》                do

  -z:字符内容为空

lenovo

. script           //这种方法script也没有须要可施行权限

  -lt:小于(Lesser Than)

[[email protected] ~]# echo $PATH  //查看系统情形变量路线

adder 22 33

分别局地变量和全局变量

 RATE=`df |awk'NR==4{print int($5)}'`

 

$PWD is lujing

 

   !:逻辑否

通过脚本来看些地方变量:

预约义变量

~                                                                                                                                                                 

Result=`expr $Result + $1`

1000

stop......

0

[[email protected] 桌面]# who|wc -l

 

[[email protected] ~]# cat a.sh

[[email protected] /]# [ -r /etc/shadow ]

input:@

 

   (前面真则实践后边卡塔尔

#!/bin/bash

[[email protected] /]#

           ;;

  -ne:不等于(Not Equal)

      echo "The sum is: $Result"

[[email protected] ~]# str=1000   //局地变量

/root is lujing

for 变量名  in 取值列表                       发邮件    

5

#vi a.sh

 

[[email protected] shellscripts]# a.sh 2 3

NUM=`df | awk 'NR==5{print int($5)}'`

while [ $# -gt 0 ]

status)

      ;;

#Func (do):this is useradd user script.            //脚本的功能

本文由澳门金莎娱乐网站发布于服务器,转载请注明出处:shell变量总结回顾澳门金莎娱乐网站:,Linux正则

关键词:

CentOS7网络配置澳门金莎娱乐网站,解决win下无法

查看 ifcfg-eno16777736 网卡配置文件(centos7改动了很多!!!跟书本教材的老版本有很多不一样的) 解决win下无法ping通V...

详细>>

应用发布前保障性能的十八种方式,SaaS云运维高

应用发布前保障性能的十八种方式(一) 被文艺青年奉为“爱情圣经”的《爱在三部曲》第一部为我们描述了这样一个...

详细>>

澳门金莎娱乐网站释放云的无限潜能,从网站监

【干货】解密监控宝Docker监控实现原理 分享人高驰涛(Neeke),云智慧高级架构师,PHP 开发组成员,同时也是PECL/SeasL...

详细>>

Linux内存查看工具,Linux监控工具介绍系列澳门金

Linux内存查看工具---Smem,linux查看---smem 物理内存不足对Linux桌面系统和服务器系统的性能影响都很大。当你的计算机...

详细>>