Linux Bash
【bash與硬件關系】
用戶->shell->kernel->硬件
Bash shell的功能
【history】歷史命令
【history 10】最近使用的10條命令
【history -c】將目前的shell中的所有history內容全部刪掉
【執行完命令查詢後,執行!66】執行第六十六條命令
【tab】補全按鍵
【命令命名】 alias lm='ls -al'
【alias mv='mv -i'】
【unalias mv】
【type [-tpa] name】判斷一個指令是否是內建shell
【命令太長,可以使用\換行】
如:
ls \
-al
【變量】
echo $HOME = echo ${HOME}
myname=smallzhang
【echo $myname】打印變量
雙引號可以解析變量,單引號不可以,如:
var="lang is $LANG" 則ehco $var = lang is en_US
var='lang is $LANG' 則echo $var = lang is $LANG
$(uname-r) linux版本信息
【export myname】 使變量變成環境變量【export】可以查看所有的全局變量
這樣在別的子程序就能使用該變量了,如
【
bash
echo $myname
exit
】
【${變量}累加內容】
PATH="$PATH":/home/bin
PATH=${PATH}:/home/bin
【unset myname】取消變量設置
【version=$(uname -r)】 = 【version=`uname -r`】一般使用前者
【env】可以看見環境變量的值
【HOME】用戶目錄
【SHELL】當前使用的是哪個SHELL
【HISTSIZE】曾經使用過的命令
【MAIl】郵件地址
【PATH】環境變量地址【執行命令搜索地址】
【LANG】當前使用到的語言【locale】可列出當前語言環境【locale -a】可以看到支持的語言
【RANDOM】隨機數
【set】可查看環境變量和自定義變量的值
PS1變量可以設置命令顯示規則
PS1='[\u@\h \w \A #\#]'
PS1="[\u@\h \w \A]"
【$?】可以查看上一次指令執行結果,0位正常,其余為錯誤碼
ehco $?
【read [-pt] 變量名】
read -p "please input var in ten seconds" -t 10 myname
如果設置了倒計時,則時間超過了,光標不閃
【declare [-aixr] 變量名】
-a 將變量定義為數組類型
-i將變量定義為整數類型
-x將變量定義為環境變量
-r將變量定義為readonly不允許再改
【
declare -i sum=100+300+50
echo $sum
】
【ulimit -a】可查看系統文件描述符限制大小
【變量操作的一些命令】
【$變量#關鍵詞】從頭開始匹配,將符合的最短數據刪除
【$變量##關鍵詞】 從頭開始匹配,將符合的最長數據刪除
【$變量%關鍵詞】 從尾開始匹配,將符合的最短數據刪除
【$變量%%關鍵詞】從尾開始匹配,將符合的最長數據刪除
【$變量/舊字符串/新字符串】匹配第一個舊字符換,則用新字符串替換
【$變量//舊字符串/新字符串】匹配所有舊字符換,用新字符換替換
【變量設定方式】
var=${str-exp},當str為nil的時候,用exp代替
var=$(str:-exp),當前str為nil或""的時候,用exp代替
【str="oldvar";var=${str?novar}】
【修改/etc/issue內容可以自定義開機畫面的顯示】
【\d】本地端時間的日期
【\l】顯示第幾個終端接口
【\m】顯示硬件信息(i386...)
【\n】顯示主機的網絡名稱
【\o】顯示domain name
【\r】操作系統版本,相當於uname -r
【\t】顯示本地端時間
【\s】顯示操作系統名稱
【\v】顯示操作系統版本
【修改/ect/motd當用telnet登錄的時候,顯示畫面】
【ctrl + C】終止目前的命令
【ctrl + D】輸入結束【EOF】
【ctrl + M】相當於【Enter】
【ctrl + S】暫停屏幕的輸出
【ctrl + Q】恢復屏幕的輸出
【ctrl + U】在提示符下,將整行命令刪除
【ctrl + Z】暫停目前的命令
一下常用的通配符
【*】代表0個或多個字符
【?】代表一個任意字符
【[]】代表區間中有一個字符
【[-]】代表在區間中
【[^]】帶有一個字符,且不屬於區間的
使用的特殊字符
【#】注釋
【\】連接分開的兩行
【|】管線【ls -al | less】
【;】連續指令下達分隔符
【~】用戶家目錄
【$】變量取值
【&】將指令變成後台工作
【!】非
【/】目錄分隔符
【>,>>】輸出導向,取代累加
【<,<<】輸入導向
【''】不具有變量置換功能
【""】具有變量置換功能
【``】相當於【$()】
【{}】命令區域塊
【重導向】
1標准輸入 代碼0 使用<或<<
2標准輸出 代碼1 使用>或>>
3標准錯誤輸入 代碼2 使用2>或2>>
【執行命令邏輯判斷】
【cmd1 && cmd2】成功執行完cmd1後才執行cmd2
【cmd1 || cmd2】只有cmd1執行失敗才會執行cmd2
【cut】
【echo $PATH|cut -d ':' -f 5】 以:分割,找到第五個 -f 3,5找到第三與第五個
【echo $pATH|cut -c 12-】返回第12個字符之後的內容
【grep [-acinv]】
【-a】將binary文件以text文件的方式搜尋數據
【-c】計算找到“搜索字符”的次數
【-i】忽略大小寫
【-n】輸出行號
【-v】反向選擇
grep n “shunping” aaa.java
grep "man" abcd.txt n 查找指定文件中出現字符的行號
【last】登錄終端信息
【sort [-fbMnrtuk]】
【-f】忽略大小寫
【-b】忽略最前面的空格
【-M】以月份名字排序
【-n】純數字排序,默認是以文字形態來排序
【-r】反向排序
【-u】uniq,剔除掉相同的
【-t】分割符
【-k】以那個區間來排序【cat /etc/passwd|sort -t ':' -k 3】以:分割,以第三欄排序
【uniq [-ic]】
【-i】忽略大小寫
【-c】計數
【wc [-lwm]】
【-l】有多少行
【-w】一行有多少字符
【-m】總共有多少字符
【tee雙向重導向】
ls -al | tee abc.txt
【ln鏈接】
ln -s abc newLink 將newLink鏈接到abc
【find】
find / -name abcd從根目錄開始查找文件夾名為abcd的文件