感谢支持
我们一直在努力

Linux基础教程:Linux强大的查询字符匹配命令和Shell脚本

变量:

本地变量:只对当前有效

环境变量:对当前shell和子shell都有效

  export A=3  即将A定义为变量,并将3赋值于A

  A=3

  export A 引用不需要加&

export 也查看环境变量

[root@server56 ~]# export

declare -x CVS_RSH=”ssh”

declare -x G_BROKEN_FILENAMES=”1″

declare -x HISTSIZE=”1000″

declare -x HOME=”/root”

declare -x HOSTNAME=”server56.example.com”

declare -x INPUTRC=”/etc/inputrc”

declare -x LANG=”zh_CN.gbk”

declare -x LESSOPEN=”|/usr/bin/lesspipe.sh %s”

declare -x LOGNAME=”root”

declare -x LS_COLORS=”no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:”

declare -x MAIL=”/var/spool/mail/root”

declare -x OLDPWD

declare -x PATH=”/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin”

declare -x PWD=”/root”

declare -x SHELL=”/bin/bash”

declare -x SHLVL=”1″

declare -x SSH_ASKPASS=”/usr/libexec/openssh/gnome-ssh-askpass”

declare -x SSH_CLIENT=”192.168.0.211 49242 22″

declare -x SSH_CONNECTION=”192.168.0.211 49242 192.168.0.156 22″

declare -x SSH_TTY=”/dev/pts/0″

declare -x TERM=”xterm”

declare -x USER=”root”

DISPLAY:可以定义你在那个桌面

HISTSIZE:表示定义历史命令的数量

HOME:当前的家目录

PS1 基名

env:显示当前变量

主要用于特点环境

 

特殊变量:bash 

$? :上个命令是否执行成功,0表示成功,1-255表示不同的错误

位置变量:$1:直接向脚本传递一个变量

 $2, $3,超过10建议加{}

算数运算echo “$[$a+$b]”

              “$(($a+$b))”

             

BASH命令别名:

alias  只对当前有效

   当后面的命令有空格时要有引号引起来

   alias cdnet=’cd /etc/sysconfig/network-scripts’ 

   

   

   撤销 unalias

全局:/etc/profile,/etc/profile.d/*,/etc/bashrc

局部:~/.bash_profile,~/.bashrc,~/.bash_logout

profile类:

通常用于设置环境变量,运行用户登录时要执行的一些命令

bashrc类:

设置别名,设置本地变量,只对当前shell有效

shell

交互式登录式shell:需要用户登录<input type=”text” 

第一步:读取/etc/profile–>/etc/profile.d/>*–>~/.bash–>~/.bashrc –>/etc/bashrc

非交互式登录式shell:不需要用户登录就能运行的脚本shell

先登录~/.bashrc–>/etc/bashrc–>/etc/profile.d/*

定义别名  声明变量

source /etc/profile重读这个文件

. /etc/profile 重读这个文件    重读不建议

\避免本意

输入输出重定向

默认为标准输入输出

标准输出设备:/dev/stdout,1MONITOR,               >

    错误输出:/dev/stderr,2,MONITOR,               2>

标准输入设备:/dev/stdin,0表示标准输入,KEYBOARD <

合并输出流 &>

>覆盖输出重定向  >>追加输出重定向 2>>错误信息追加重定向 &>>不能追加

set -C强制使用追加禁止使用覆盖 

>|强制覆盖

ls /var >> /tmp/var.out 2>> /tmp/var.err

输出流

2>&1  =  &>

管道:|用于连接命令  把前一个命令的输出结果当做后一个命令的输入结果

COMMAND | COMMAND | COMMAND | COMMAND

tee将输入流分开

   ls /etc | tee /tmp/ls.out | less

多个命令的输出都需要保存到同一个文件

自定义  输出重定向

0,1,2

exec 3> /tmp/myout.out 定义一个固定的文件

ls >&3覆盖到固定的文件 

exec 3>&-  撤销

输入用法同上

&> /dev/null 将不要的文件定到数据黑洞

> /dev/null

程序执行流:

顺序执行

选择分支

循环执行:1+…+100

   for I in 1 2 3 4 5; do

       statement1

       statement2

   done

1 2 3 4 5 = `seq 1 10`

          = $seq 1 10 $

          = {1..10}

         

         

文本处理命令:

cut -d 指定分隔符 为:

      cut -d: -f1去第一段分割   

         

     IFS:内置内建换行符     

      IFS=$‘\n’   

         

grep:

grep,egrep,fgrep

grep [options]“PATTERN[模式]” file

正则表达式:基本正则表达式,扩展正则表达式

元字符 re 

grep -i不区分大小写

     -v跟默认的动作相反,匹配到得不显示

     -n匹配到的再文中显示行号

     -A[after]n显示匹配的后面n

     -B[before]n

     -C[]n上下文,显示上线n

     –color       把匹配到的高亮显示

     -E=egrep 

^:定位行首行首匹配铆定

$:行尾定位符

.匹配单个字符

*:匹配前面的字符出现0次或任意次

[]:匹配里面的任意一个

[x-y]匹配范围内的一个

\<

\>

\(..\)

$?:上一个命令执行状态结果

0:执行成功

1-255:失败

短路操作符:

&&

command && command:前面成功才执行后面

||:前面不成功才执行后面

赞(0) 打赏
转载请注明出处:服务器评测 » Linux基础教程:Linux强大的查询字符匹配命令和Shell脚本
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏