linux強大的查詢字元匹配命令和shell指令碼

來源:互聯網
上載者:User

變數:

本地變數:只對當前有效

環境變數:對當前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

Regex:基本Regex,擴充Regex

元字元 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:前面成功才執行後面

||:前面不成功才執行後面

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.