SHELL
pcntl一臺完整的計算機是由運算器、控制器、存儲器、輸入輸出等多種硬件設備共同組成的,而能讓各種硬件設備各司其職且又能協同運行的東西就是系統內核,Linux系統的內核負責完成對硬件資源的分配、調度等管理任務,對系統的正常運行起着十分重要的作用。
Shell就是終端程序的統稱,它擔當起了人與內核(硬件)之間的翻譯工作,用戶把一些命令“告訴”終端程序,它就會調用相應的程序服務去完成某些工作。現在許多主流Linux系統默認使用的終端是Bash(Bourne-Again SHell)解釋器,主要有以下4項優勢:
1:通過上下方向鍵來調取過往執行過的Linux命令;
2:命令或參數僅需輸入前幾位就可以用Tab鍵補全;
3:強大的批處理腳本;
4:實用的環境變量功能。
命令格式
命令名稱 [命令參數] [命令對象]
命令名稱:就是我們語法中的“動詞”,表達的是想要做的事情,例如創建用戶、查看文件、重啓系統等等的操作。
命令參數:用於對命令進行調整,讓“修改”過的命令能更好的貼合於工作需求,達到事半功倍的效果。參數可以用長格式(完整單詞),也可以用短格式(單個字母縮寫),兩者分別用“--”與“-”作爲前綴。
命令對象:一般指要處理的文件、目錄、用戶等資源名稱,也就是命令執行後的“承受方”,例如創建一名叫小明的用戶、查看一個叫工資表的文件、重啓一個IP爲192.168.10.10的系統等等。
注:命令名稱、命令參數與命令對象之間要用空格進行分隔,且嚴格區分大小寫字母。
Linux 命令
man:(單詞manual的縮寫,即使用手冊的意思)該命令會列出一份完整的說明。 其內容包括命令語法、各選項的意義及相關命令 。更爲強大的是,不僅可以查看Linux中命令的使用幫助,還可以查看軟件服務配置文件、系統調用、庫函數等幫助信息,man手冊頁文件存放在/usr/share/man目錄下,語法格式:man [命令]。
常用系統工作命令
echo:用於在終端設備上輸出字符串或變量提取後的值,這是在Linux系統中最常用的幾個命令之一,但操作卻非常簡單,語法格式:echo [參數] [字符串]。
date:用於顯示或設置系統的時間與日期,語法格式爲:“ date [+指定的格式]”。 "+%Y-%m-%d %H:%M:%S"
reboot:用於重啓系統,輸入後回車執行即可。
poweroff:於關閉系統,輸入後回車執行即可。(halt \ init \ init 0)
wget:用於在終端命令行裏下載網絡文件,英文全稱爲:“web get”,語法格式爲:“wget [參數] 網址”。 -c 斷點續傳
ps:用於查看系統中的進程狀態,英文全稱爲:“processes”,語法格式爲:“ps [參數]”。
R: 正在運行
S: 等待服務(休眠狀態)
D: 不可被中斷進程
Z: 僵死進程 \ 沒有服務狀態
T: stopped 被停止的服務
例:
ps aux all user 顯示沒有終端的進程,指系統所開啓的進程或後臺進程
ps aux | wc -l 查看行數
ps aux | grep ssh 過濾
top:用於動態地監視進程活動及系統負載等信息,輸入後回車執行即可,語法格式爲:“top [參數]”。
5,6,7版本中 1 user 爲終端數量, 8版本中代表登錄用戶數量
負載 1分鐘 5分鐘 15分鐘 # 核心數*5 有超負載需要注意cpu有可能不夠用了 cpu隊列
Tasks: 430 total, 2 running, 428 sleeping, 0 stopped, 0 zombie
總進程: 430 2 運行 428 休眠等待 0 被關閉 0 個僵死進程
cpu 0.0 us, 99.0 id
使用值 cpu空閒值
MiB Mem: 1966.1 total, 146.5 free, 1374.2 used, 445.5 buff/cache
物理內存 M 空閒內存 已使用 和硬盤交互的值 調優的時候用到
MiB Swap: 2048.0 total,
交換分區(將一部分的硬盤空間拿來充當內存使用)
pid user PR NI
唯一值 用戶 優先級越小越好
pidof:用於查詢某個指定服務進程的PID號碼值,語法格式爲:“pidof [參數] 服務名稱”。
kill:用於終止某個指定PID值的服務進程,語法格式爲:“kill [參數] 進程的PID”。
killall:用於終止某個指定名稱的服務所對應的全部進程,語法格式爲:“killall [參數] 服務名稱”。
系統狀態檢測命令
ifconfig:用於獲取網卡配置與網絡狀態等信息,英文全稱爲:“interface config”,語法格式爲:“ifconfig [參數] [網絡設備]”。
Rhel5\6版本 eth0 eth1 eth2
Rhel7 ens16777728 ens16777728
Rhe8 ens160
iftop是一款實時流量監控工具,監控TCP/IP連接等,缺點就是無報表功能。必須以root身份才能運行。
uname:用於查看系統內核版本與系統架構等信息,英文全稱爲:“Unix name”,語法格式爲:“uname [-a]”。
linux 主機系統 主機名稱 內核版本號 系統發現時間 系統架構硬件 內核 系統 系統名稱
uptime:用於獲取主機運行時間和查詢Linux系統負載等信息。,輸入後回車執行即可,語法格式:uptime [參數]。
free:用於顯示系統中物理上的空閒和已用內存,還有交換內存,同時,也能顯示被內核使用的緩衝和緩存。這些信息是通過解析文件 /proc/meminfo 而收集到的。語法格式爲:“free [-h]”。
who:用於查看當前登入主機的用戶終端信息,輸入後回車執行即可,語法格式: who [參數] [選項]。who命令的輸出信息默認來自文件“/var/log/utmp”和“/var/log/wtmp”。
last:用於調取主機的被訪記錄,輸入後回車執行即可,語法格式:last [選項]。執行last命令時,它會讀取/var/log目錄下名稱爲wtmp的文件,並把該文件記錄的登錄系統或終端的用戶名單全部顯示出來。默認顯示wtmp的記錄,btmp能顯示的更詳細,可以顯示遠程登錄。
history:用於顯示執行過的命令歷史,語法格式爲:“history [-c]”。 !編號 快速使用已使用的命令
sosreport:用於收集系統配置及架構信息並輸出診斷文檔,輸入後回車執行即可。
工作目錄切換命令
pwd:用於顯示用戶當前所處的工作目錄,英文全稱爲:“print working directory”,輸入後回車執行即可,語法格式: pwd [參數]。
cd:用於切換當前的工作路徑,英文全稱爲:“change directory”,語法格式爲:“cd [參數] [目錄]”。
cd ~ 跳轉到用戶家目錄
cd .. 跳轉到上一級目錄
cd - 跳轉到上一次目錄
ls:用於顯示目錄中的文件信息,英文全稱爲:“list”,語法格式爲:“ls [參數] [文件名稱]”。
文本文件編輯命令
cat:用於查看純文本文件(內容較少的),英文全稱爲:“concatenate”,語法格式爲:“cat [參數] 文件名稱”。
more:用於查看純文本文件(內容較多的),語法格式爲:“more [參數] 文件名稱”。
按 空格 下一屏
B鍵 上-屏
按 Enter 向下一行
head:用於查看純文本文件的前N行,語法格式爲:“head [參數] 文件名稱”。
tail:用於查看純文本文件的後N行或持續刷新文件的最新內容,語法格式爲:“tail [參數] 文件名稱”。 -f 實時刷新
tr:用於替換文本內容中的字符,英文全稱爲:“translate”,語法格式爲:“tr [原始字符] [目標字符]”。
例 小寫字轉大寫 cat 文件名 | tr [a-z] [A-Z]
wc:用於統計指定文本文件的行數、字數或字節數,英文全稱爲:“word counts”,語法格式爲:“wc [參數] 文件名稱”。
stat:用於查看文件的具體存儲細節和時間等信息,英文全稱爲:“status”,語法格式爲:“stat 文件名稱”。
Atime 最後一次訪問文件內容的時間 Access
Mtime 最後一次修改文件內容的時間 Modify
Ctime 最後一次修改文件屬性的時間 Change
cut:用於按列提取文本內容,語法格式爲:“cut [參數] 文件名稱”。
diff:用於比較多個文件之間內容的差異,英文全稱爲:“different”,語法格式爲:“diff [參數] 文件名稱A 文件名稱B”。
diff --brief a.txt b.txt 比較兩個文件是否有不同
diff -c a.txt b.txt 列出兩個文件不同的地方
查看10 - 30 的數據 head -n 30 文件名 | tail -n 20
文件目錄管理命令
touch:用於創建空白文件或設置文件的時間,語法格式爲:“touch [參數] 文件名稱”。
touch -d "00:00" 對象名稱 修改文件的最後訪問時間 和修改時間
mkdir:用於創建空白的目錄,英文全稱爲:“make directory”,語法格式爲:“mkdir [參數] 目錄名稱”。
創建遞歸目錄 -p
cp:用於複製文件或目錄,英文全稱爲:“copy”,語法格式爲:“cp [參數] 源文件名稱 目標文件名稱”。
複製目錄 -r
保留屬性權限 -a
mv:用於剪切或重命名文件,英文全稱爲:“move”,語法格式爲:“mv [參數] 源文件名稱 目標文件名稱”。
rename 重命名
rm:用於刪除文件或目錄,英文全稱爲:“remove”,語法格式爲:“rm [參數] 文件名稱”。
-f false 忽略提醒
-r Recursion 遞歸
dd:用於按照指定大小的數據塊個數來複制文件或轉換文件,語法格式爲:“dd if=參數值 of=參數值 count=參數值 bs=參數值”。
if input file
ofoutput file
count
bs
dd if=文件名 of=新文件名 bs=大小字節 count=份數數字
硬盤目錄 /dev/sda
前邊第一扇區裏面512字節保存的是
446 ibml 主電腦記錄
64 4份 每份16字節分區表的指針
2 結束符
備份分區表 dd if=/dev/sda of=backup count=1 bs=512
file:用於查看文件的類型,語法格式爲:“file 文件名稱”。
打包壓縮與搜索命令
tar:用於對文件進行打包壓縮或解壓,語法格式爲:“tar 參數 文件名稱”。
grep:用於按行提取文本內容,語法格式爲:“grep [參數] 文件名稱”。
grep 關鍵詞 文件
例:
grep /bin/bash /etc/passwd #提取可登錄系統的用戶
find:用於按照指定條件來查找文件所對應的位置,語法格式爲:“find [查找範圍] 尋找條件”。
find / -user 用戶名 #查找出系統中所有關於該用戶的文件
find / -mtime -1 1天內被修改的文件
passwd:用於設置用戶的認證信息,包括用戶密碼、賬戶鎖定、密碼失效等。直接運行passwd命令修改當前的用戶密碼,對其他用戶的密碼操作需要管理員權限,語法格式爲:“passwd 用戶名”。