一.路徑與命令的的查找順序
1.以相對/絕對路徑執行命令,例如"/binls"或"./ls";
2.由alias重命名中內容來查找執行命令;
3.由bash內置的命令來執行;
4.通過$PATH變量中所定義的路徑順序找到第一個命令來執行。
二.自定義自己的bash登陸歡迎界面信息:
/etc/issue(登陸界面), /etc/issue.net(telnet的登陸界面) , /etc/motd/(登陸路成功后用戶取得的信息)
執行 cat /etc/issue命令顯示如當前的設置:
issue內的各代碼意義 | |
\d | 本地端時間的日期 |
\l | 顯示第幾個終端機借口 |
\m | 顯示硬件的等級(i386/i486/i686) |
\n | 顯示主機的網絡名稱 |
\o | 顯示domain name |
\r | 操作系統版本(相當於uname -r) |
\t | 本地端時間 |
\s | 操作系統名稱 |
\v | 操作系統版本 |
三.數據流重定向:
1.標准輸入輸出的重定向:<輸入方 >輸出方
cat命令 : cat filename表示讀取文件,也就是從文件輸出數據並輸出到屏幕上
cat從鍵盤讀取數據,並且輸出到屏幕
cat > filename從鍵盤輸入,並且輸出到文件中(會無條件的覆蓋已有的文件)
以 ctrl + d 來結束輸入
2.防止覆蓋已有的文件:
啟用該設置:set -o noclobber
禁用該設置:set +o noclobber
使用追加標准輸出:可以向某個文件的末尾添加新的內容
cat filename1 >> filename2
3.使數據消失,同時不改變文件的權限:
將數據重定向至 /dev/null
eg: cat /dev/null > filename 將該文件內容清空
4.代碼輸出:
標准輸入(stdin):代碼為0,使用<或者<<
標准輸出(stdout):代碼為1,使用>或者>>
標准錯誤輸出(stderr):代碼為2,使用2>或者2>>
5.tee:雙向重定向命令
-a 以累加的形式將數據輸入一個文件
6.命令執行的判斷依據: ; , && ||
;不考慮相關性連續執行命令
$?(命令回傳碼)與&&(邏輯與運算)或||(邏輯或運算)
四.管道(Pipe)
1.選取命令:
cut:常用參數
-d'分隔字符' -f fields
-c 字符范圍
eg: cut ' ; ' -f 5 顯示以;為分隔字符的第5個數據(分隔符必須是單個字符)
cut ' ; ' -f 3,5
cut -c 12- 若數據分行顯示,輸出第12個字符以后的數據
2.字符轉換命令:
tr: -d 刪除其中的某個字符串
eg: tr '[a-z]' '[A-Z]' 將小寫替換成大寫
tr -d ';' 刪除;符號
3.文件粘貼連接命令paste:
paste file1 file2
直接將2個文件相同的行粘貼在一起(以TAB分隔)
4.join: [-ti12] file1 file2
-t 如果相應行之前的文件內容相同以分隔符鏈接 Eg: join -t ':' file1 file2
-i 忽略大小寫
使用join前最好對文件進行sort
5. split:切割文件命令
-b 切割成的文件大小,可加單位b k m
-l 以行數來進行切割
eg: split -b 300k filename newfile前導名