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 命令
grep(global 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
貪婪模式
.*:任意長度的任意字符;
\?:匹配其前面的字符0或1次;即前面的可有可無
\+:匹配其前面的字符至少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發行版的默認編輯器就是nano。 nano命令可以打開指定文件進行編輯,默認情況下它會自動斷行,即在一行中輸入過長的內容時自動拆分成幾行,但用這種方式來處理某些文件可能會帶來問題,比如Linux系統的配置文件,自動斷行就會使本來只能寫在一行上的內容折斷成多行了,有可能造成系統不靈了。因此,如果你想避免這種情況出現,就加上-w選項吧。
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/75118