grep命令

alias命令

直接輸入 alias 命令會列出當前系統中所有已經定義的命令別名。
例一:列出當前系統中所有已經定義的命令別名。

[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

grep  命令

grepglobal search regular expression(RE) and print out the line,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。
-o 只輸出文件中匹配到的部分。
-v 反轉查找。
-i 忽略大小寫的差別
-q 不顯示任何信息。
-A<顯示列數> ,并顯示該#行之后的內容。
-B 顯示匹配到的行,并顯示#前行
-C<顯示列數>-<顯示列數> 并顯示該列之#前后的內容。
-E 意味著使用能使用擴展正則表達式。
例一:搜索root 字符

[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

例二:只顯示搜索內容

[root@localhost ~]# grep -o root /etc/passwd
root
root
root
root

例三:A<顯示列數> ,并顯示該2行之后的內容。

     -B 顯示匹配到的行,并顯示2前行
     -C 并顯示該列之2前后的內容。

[root@localhost ~]# grep -A 2 root /etc/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
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@localhost ~]# grep -B 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep -C 2 root /etc/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
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
 

基本正則表達式元字符
字符匹配:
     .:匹配任意單個字符
     []:匹配指定范圍內的任意單個字符
     [^]:匹配指定范圍外的任意單個字符
[:digit:]、[:lower:][:upper:]、[:alpha:]、[:alnum:][:punxt:][:space:]
匹配次數:用在要指定次數的字符后面,用于指定前面字符要出現的次數
        *:匹配前面的字符任意次:
              例如:grep “x*y”
                  abxy
                  xay
                  xxxxxxy
  貪婪模式
.*:任意長度的任意字符;
\?:匹配其前面的字符01次;即前面的可有可無
\+:匹配其前面的字符至少1次;
\{m\}:匹配前面的字符配前面的字符至少1次:
    \{0,n}:匹配前面的字符至少n
    \{m,\}:匹配前面的字符至少m次;
 
位置錯定
^:行首錨定用于模式的最左側
$:行尾錨定:用于模式的最右側
^PATTERN$:用于模式匹配整行
   ^$:穿行:
   ^[[:space:]]*$
 \<\b:詞首錨定;用于單詞模式的左側
\>\b:詞尾錨定;用于單詞模式的右側
\<PATTERN\>:匹配整個單詞
分組:
   \(\):將一個或多個字符捆綁在一起,當作一個整體進行處理
      \(xy\)*ab
Note :分組括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名方式為:\1,\2\3…..
\1:從左側起,第一個左括號以及與之匹配右括號之間的模式所匹配到的字符:
    \(ab\+\(xy)*\);
       \1:ab\+\(xy\)*
       \2:xy
例一:顯示/proc/meminfo文件中以大小寫開頭的行:

[root@localhost ~]# grep -i '^s' /proc/meminfo
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              6856 kB
Slab:              73728 kB
SReclaimable:      34992 kB
SUnreclaim:        38736 kB

第二種方法:

[root@localhost ~]# grep '^[Ss]' /proc/meminfo
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              6856 kB
Slab:              73728 kB
SReclaimable:      34992 kB
SUnreclaim:        38736 kB
 
例二:顯示、etc/passwd文件中不以/bin/bash結尾的行

root@localhost ~]# grep ‘/bin/bash$’ /etc/passwd

root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# grep -v '/bin/bash$' /etc/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
sync:x:5:0:sync:/sbin:/bin/sync
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
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin 

nano

nano是一個字符終端的文本編輯器,有點像DOS下的editor程序。它比vi/vim要簡單得多,比較適合Linux初學者使用。某些Linux發行版的默認編輯器就是nano

netstat

netstat命令網絡測試 netstat命令用來打印Linux中網絡系統的狀態信息,可讓你得知整個Linux系統的網絡情況。

-a–all:顯示所有連線中的Socket;

 -A<網絡類型>–<網絡類型>:列出該網絡類型連線中的相關地址;

-c–continuous:持續列出網絡狀態;
-C–cache:顯示路由器配置的快取信息;
 -e–extend:顯示網絡其他相關信息;
 -F–fib:顯示FIB
-g–groups:顯示多重廣播功能群組組員名單;
 -h–help:在線幫助;
 -i–interfaces:顯示網絡界面信息表單;
-l–listening:顯示監控中的服務器的Socket
-M–masquerade:顯示偽裝的網絡連線;
 -n–numeric:直接使用ip地址,而不通過域名服務器;
 -N–netlink–symbolic:顯示網絡硬件外圍設備的符號連接名稱;
-o–timers:顯示計時器;
 -p–programs:顯示正在使用Socket的程序識別碼和程序名稱;
 -r–route:顯示Routing Table
 -s–statistice:顯示網絡工作信息統計表;
-t–tcp:顯示TCP傳輸協議的連線狀況;
 -u–udp:顯示UDP傳輸協議的連線狀況;
-v–verbose:顯示指令執行過程;
 -V–version:顯示版本信息;
 -w–raw:顯示RAW傳輸協議的連線狀況;
 -x–unix:此參數的效果和指定“-A unix”參數相同; 
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口 
netstat -l #只顯示監聽端口
netstat -lt #只列出所有監聽 tcp 端口
netstat -lu #只列出所有監聽顯示每個協議的統計信息
udp 端口 netstat -lx #只列出所有監聽 UNIX 端口
顯示每個協議的統計信息
netstat -s 顯示所有端口的統計信息
netstat -st 顯示TCP端口的統計信息
netstat -su 顯示UDP端口的統計信息
顯示核心路由信息
 netstat -r
fgrep:
不支持正則表達式搜索:
 
bash的基礎特性(4
     變量類型:
          數據存儲格式、存儲空間大小、參與運算種類
      字符型
      數值型:
           整型
           浮點型
       強類型:定義變量時必須指定類型、參與運算符合類型要求;調用未聲明變量會產生錯誤
         弱類型:無需指定類型,默認均為字符型,參與 運算會自動進行隱藏式類型轉換;變量無需事先定義可直接調用
 
  bash中的變量的種類:
        根據變量的生效范圍標準;
             本地變量;生效范圍為當前shell進程;對當前shell之外的其它shell進程,包括當前shell的子shell進程均無效;
             環境變量;生效范圍為當前要shell進程及其子進程
              局部變量;生效范圍為當前shell進程中某代碼片段(通常指函數)
              位置變量:$1,$2,..來表示,用于讓腳本在腳本代碼中要調用通過命令行傳遞給它的參數;
              特殊變量:$?,$0,$*,$@,$#
  本地變量
      變量賦值:name=`value`
          可以使用引用;
                value:
                    (1)可以是直接字串;name=”username”
                    (2)變量引用;name=”$username”          
                     (3)命令引用:name=`COMMAND`,name=$(COMMAND)
          變量引用:$(name),$name
               “” ,弱引用,其中的變量引用會被替換為變量值:
               ‘’強引用,其中的變量引用不會被替換為變量值,而保持原字符串;
           顯示已定義的所有變量
               set
           銷毀變量
               unset name   
  環境變量
      變量聲明,賦值:
           export   name-VALUE
           declare -x name-VALUE
      變量引用:$name,$(name)
      顯示所有環境變量
             export
             env
              printenv
        銷毀:
             unset  name
         bash有許多內建的環境變量:PATH,SHELL,UID,HISTSIZE,HOME,PWD,
 
變量命名法則:
       1·不能使程序中的保留字;例如if,for;
       2, 只能使用數字,字母及下劃線,且不能以數字開頭;
       3,見名知義;
  只讀變量;
        readonly name
         declare -r name
位置變量;
      在腳本代碼中調用通過命令行傳遞給腳本的參數
           $1,$2,…對應調用第1,第2等參數;
           $0; 命令本身;
 
       $*; 傳遞給腳本的所有參數
       $@:傳遞給腳本的所有參數
       $#;傳遞給腳本的參數的個數
 
 unset命令Shell內建命令 unset命令用于刪除已定義的shell變量(包括環境變量)和shell函數。unset命令不能夠刪除具有只讀屬性的shell變量和環境變量。
e declare命令Shell內建命令 declare命令用于聲明和顯示已存在的shell變量。當不提供變量名參數時顯示所有shell變量。declare命令若不帶任何參數選項,則會顯示所有shell變量及其值。declare的功能與typeset命令的功能是相同的。
 +/-“-“可用來指定變量的屬性,
“+”則是取消變量所設的屬性;
 -f:僅顯示函數;
 r:將變量設置為只讀;
 x:指定的變量會成為環境變量,可供shell以外的程序來使用;
 i[設置值]可以是數值,字符串或運算式。
 export export命令Shell內建命令 export命令用于將shell變量輸出為環境變量,或者將shell函數輸出為環境變量。 一個變量創建時,它不會自動地為在它之后創建的shell進程所知。而命令export可以向后面的shell傳遞變量的值。當一個shell腳本調用并執 行時,它不會自動得到原為腳本(調用者)里定義的變量的訪問權,除非這些變量已經被顯式地設置為可用。export命令可以用于傳遞一個或多個變量的值到任何后繼腳本。
-f:代表[變量名稱]中為函數名稱;
 -n:刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中;
 -p:列出所有的shell賦予程序的環境變量。

 nano

nano命令文件編輯 nano是一個字符終端的文本編輯器,有點像DOS下的editor程序。它比vi/vim要簡單得多,比較適合Linux初學者使用。某些Linux發行版的默認編輯器就是nanonano命令可以打開指定文件進行編輯,默認情況下它會自動斷行,即在一行中輸入過長的內容時自動拆分成幾行,但用這種方式來處理某些文件可能會帶來問題,比如Linux系統的配置文件,自動斷行就會使本來只能寫在一行上的內容折斷成多行了,有可能造成系統不靈了。因此,如果你想避免這種情況出現,就加上-w選項吧。

原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/75118

(1)
kangkang
上一篇 2016-01-08 13:29
下一篇 2016-01-11 05:20

相關推薦

  • N24 第三周 磁盤及文件系統管理

    Linux系統管理          磁盤分區及文件系統管理          RAID          LVM 動態磁盤設備管理          網絡屬性…

    Linux干貨 2016-11-22
  • 步入LINUX

    初次融入LINUX的環境。。。

    Linux干貨 2018-03-26
  • N24 第6周作業

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; 3、刪除/tmp/rc.sysinit文件…

    Linux干貨 2016-11-30
  • 馬哥教育網絡班第19期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之; 3、寫一個腳本  …

    Linux干貨 2016-08-08
  • 流式傳輸的兩大主流種類及流式傳輸特點

     流式傳輸定義很廣泛,現在主要指通過網絡傳送媒體(如視頻、音頻)的技術總稱。其特定含義為通過Internet 將影視節目傳送到PC機。實現流式傳輸有兩種方法:實時流式傳輸(Realtime streaming)和順序流式傳輸(progressive streaming)。(百度百科)     在網絡上傳輸音/視頻(英文…

    Linux干貨 2015-04-10
  • select應用詳解及rpm、yum使用說明

    一.select相關用法解析 1.select variable in list;do   變量不用加$,和for極為相似         循環體     done 2.    (1)sel…

    Linux干貨 2016-08-29
欧美性久久久久