一、文件管理: 1.1、ls: 顯示文件/目錄屬性 常見參數: -l :列出長數據串,包含文件的屬性與許可權數據等 -a :列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用) -d :僅列出目錄本身,而不是列出目錄的文件數據 -h :將文件容量以較易讀的方式(GB,kB等)列出來 - ...
一、文件管理:
1.1、ls:
顯示文件/目錄屬性
常見參數:
-l :列出長數據串,包含文件的屬性與許可權數據等
-a :列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用)
-d :僅列出目錄本身,而不是列出目錄的文件數據
-h :將文件容量以較易讀的方式(GB,kB等)列出來
-R :連同子目錄的內容一起列出(遞歸列出),等於該目錄下的所有文件都會顯示出來
1.2、cd:
切換目錄
cd /
1.3、pwd:
顯示當前目錄
1.4、mv/cp:
mv:移動文件 cp:複製文件
cp/mv常見參數:
-r: 遞歸複製
-p: 保持屬性複製
將文件複製/移動到指定目錄: cp/mv filename dirname
將文件重命名複製/移動到指定目錄: cp/mv filename1 filename2 dirname
例:
將file1重命名為file2並存放在/etc: cp file1 file2 /etc
1.5、rm/rmdir:
rm:刪除文件 rmdir:刪除空文件夾(刪除有內容的文件夾使用rm rf)
rm常見參數:
-i: 互動式
-r: 遞歸
-f: 強制
1.6、mkdir/touch:
mkdir:創建文件夾 touch:創建文件,修改時間戳
mkdir常見參數:
-m: 創建目錄的同時設置許可權
-p: 遞歸創建多級目錄
mkdir -p /Dir1/Dir2
touch常見參數:
-a: 設置文件的讀取時間記錄
-c: 不創建新文件
-d: 設置時間與日期
-m: 設置文件的修改時間記錄
1.7、ln:
為文件創建鏈接,可創建軟鏈接與硬鏈接。
軟鏈接:相當於Windows的快捷方式,原始文件移動後軟連接無法使用
硬鏈接:將文件的屬性塊進行了複製,原始文件移動後依然能使用
語法格式:ln [參數] 源文件名 目標文件名
常見參數:
-s: 對源文件創建軟鏈接
例:
ln /etc/passwd passwd 創建硬鏈接
ln -s /etc/passwd passwd 創建軟鏈接
1.8、chown/chgrp/chmod:
chown:更改文件擁有者 chgrp:更改文件組 chmod:更改文件許可權
chown:
語法格式:chown [參數] 所屬主:所屬組 文件名
常見參數:
-c: 顯示所屬變更信息
-f: 若該文件擁有者無法被更改也不顯示錯誤
-h: 僅對鏈接文件進行更改,而非真正指向的文件
-P: 不遍歷任何符號鏈接
-R: 遞歸處理所有子文件
例:
改變指定目錄及其內所有子文件的所屬主與所屬組:
chown -R root /Dir
chown -R root:root /Dir
文件許可權:
文件基本屬性分為四類
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
第一個字元代表文件為目錄、文件或者鏈接文件等
d:目錄 -:文件 l:鏈接
接下來的字元中,以三個為一組,且均為 rwx 的三個參數的組合。其中, r 代表可讀(read)、 w 代表可寫(write)、 x 代表可執行(execute),總共分為三組,分別為:用戶、組以及其他。
r=4,w=2,x=1
chmod:
chmod xxx filename
二、系統管理:
2.1、uname:
顯示系統內核信息
常見參數:
-a: 顯示系統所有相關信息
-i: 顯示硬體平臺
-m: 顯示電腦硬體架構
-n: 顯示主機名稱
2.2、shutdown/halt/reboot/init:
shutdown/halt:關閉伺服器 reboot:重啟伺服器 init:切換系統運行級別
shutdown常見參數:
-r 關機重啟
-h 關機不重啟
now 立刻關機
例:
shutdown -r now/21:00
init常見參數:
0: 關機
1: 單用戶
2: 多用戶
3: 完全多用戶模式
4: 無功能
5: 圖形界面
6: 重啟
--help: 顯示幫助信息
2.3、useradd/adduser:
添加用戶:
用法: useradd [-u|-g|-m|-d|-s] username
常見參數:
-u: 指定用戶id
-g: 指定用戶組id
-d: 指定用戶家目錄
-m/M:目錄不存在時 m創建家目錄/M 不創建
-s: 指定用戶登陸的shell
-p: 設置用戶的密碼
-r: 建立系統帳號
2.4、userdel:
刪除用戶:
用法: userdel [-r] username
常見參數:
-f: 強制刪除用戶的賬號而不詢問
-h: 顯示幫助信息
-r: 刪除用戶的家目錄及其內全部子文件
-Z: 刪除用戶的SELinux映射用戶
2.5、usermod:
修改用戶許可權,參數同useradd。
2.6、passwd:
修改用戶密碼:
用法: passwd username 或者 echo password | passwd username --stdin
2.7、which/whereis/locate:
which:查找命名文件 whereis:顯示命令及相關文件的路徑信息 locate:查找文件或目錄
語法格式:which [參數] 文件名
whereis常見參數:
-b: 查找二進位程式或命令文件
-m: 查找man幫助手冊文件
-s: 僅查找源代碼文件
2.8、find:
根據給定路徑條件查找相關文件或目錄:
用法: find [PATH] [option] [action]
find支持正則匹配
-name 按照文件名查找文件。
-perm 按照文件許可權來查找文件。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件
-type 查找某一類型的文件
示例:
find / -name *.txt
find . -name *.pyc exec rm -rf {}\; 找出 pyc文件並刪除
find . -type d 查找目錄
2.9、uptime:
查看系統負載:
開機時間 運行時長 線上用戶 負載:
2.10、free:
顯示記憶體使用:
用法: free [-b|k|m|g]
第一行: 記憶體總計 已經使用 空閑 多個進程共用的記憶體總額 緩衝 緩存
第二行: swap空間使用情況
2.11、ps:
用法:
ps [option]
-a :所有的進程均顯示出來
-u :有效用戶的相關進程
-x :一般與a連用 可列出較完整的信息
-l :以長列表形式顯示
-o :自定義顯示
-e :顯示環境變數信息
-f :用ASCII字元顯示樹狀結構
常用:
ps -aux/-elf 顯示所有進程信息
ps -ax -o pid,%cpu,%mem --sort=-%cpu,-%mem | head -10 顯示cpu以及記憶體占用最高的10個進程
aux與-elf區別:
ps aux :最常用的 BSD 風格選項組合,其中的 a表示所有關聯到終端的進程,如果同時使用 x 則代表所有進程;u 表示列出進程的用戶。
ps -elf : unix標準風格組合,其中-e 代表列出所有進程,-l 代表長格式,-f 代表完整的格式
2.12、top:
格式:
top [option]
參數:
d 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。
p 通過指定監控進程ID來僅僅監控某個進程的狀態。
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程
常用命令:
h或者? 顯示幫助畫面,給出一些簡短的命令總結說明。
k 終止一個進程。
i 忽略閑置和僵死進程。
q 退出程式。
r 重新安排一個進程的優先順序別
s 改變兩次刷新之間的延遲時間
M 根據駐留記憶體大小進行排序。
P 根據CPU使用百分比大小進行排序。
T 根據時間/累計時間進行排序。
常用:
top //每隔5秒顯式所有進程的資源占用情況
top -d 2 //每隔2秒顯式所有進程的資源占用情況
top -c //每隔5秒顯式進程的資源占用情況
三、文本操作:
3.1、cat/tac:
全文查看,cat正序從第一行查看,tac倒敘從最後一行查看
3.2、less/more:
分頁查看。
區別:
1、less可以按上下方向鍵來顯示上下內容,而more不能通過上下方向鍵控制顯示;
2、less不必讀整個文件,載入速度比more更快;
3、less退出後shell不會留下剛顯示的內容,而more退出後會在shell上留下剛顯示的內容。
3.3、head/tail:
頭尾查看。head:查看頭,tail:查看尾。
語法: head filename
常見用法:
head -10 /etc/passwd 查看文件前10行
tail -5 /etc/passwd 查看文件後5行
3.4、wc:
統計文件內容。
語法:
wc [-lwm]
選項:
-l :僅列出行;
-w :僅列出多少字(英文單字);
-m :多少字元;
常見用法:
# wc /etc/passwd
50 94 2550 /etc/passwd
行數 單詞數 位元組數
# wc -l /etc/passwd #統計行數很常用
# wc -w /etc/passwd #統計單詞出現次數
# wc -m /etc/passwd #統計文件的位元組數
3.5、cut:
切分內容。
語法:
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
主要參數
-b :以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。
-c :以字元為單位進行分割。
-d :自定義分隔符,預設為製表符。
-f :與-d一起使用,指定顯示哪個區域。
常用:
$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5
root:0:0:root
bin:1:1:bin
daemon:2:2:daemon
adm:3:4:adm
lp:4:7:lp
$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7
root:0:0:root:/bin/bash
bin:1:1:bin:/sbin/nologin
daemon:2:2:daemon:/sbin/nologin
adm:3:4:adm:/sbin/nologin
lp:4:7:lp:/sbin/nologin
3.6、sort:
排序命令。
語法:
sort [-bcfMnrtk][源文件][-o 輸出文件]
參數:
-b 忽略每行前面開始出的空格字元。
-c 檢查文件是否已經按照順序排序。
-f 排序時,忽略大小寫字母。
-M 將前面3個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-o 將排序後的結果存入指定的文件。
-r 以相反的順序來排序。
-t <分隔符> 指定排序時所用的欄位分隔字元。
-k 選擇以哪個區間進行排序。
常用:
1 按文本排序
sort filename
2 按數字排序
sort -n
3 在輸出內容中去除重覆行
sort -u
4 反序
sort -r
5 指定列排序
sort -k 列號 -t 分隔符
3.7、uniq:
去重命令,可以去除排序過的文件中的重覆行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重覆行必須是相鄰的。
語法:
# uniq [-icu]
選項與參數:
-i :忽略大小寫字元的不同;
-c :進行計數
-u :只顯示唯一的行
常用:
1 去重
cat words | sort |uniq
2 排序之後刪除了重覆行,同時在行首位置輸出該行重覆的次數:
#sort testfile | uniq -c
3 僅顯示存在重覆的行,併在行首顯示該行重覆的次數:
#sort testfile | uniq -dc
3.8、grep:
正則查找命令。
用法:grep [options]
主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大 小寫(只適用於單字元)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字元的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字元的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字元,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字元。
* :有字元,長度可以為0。
常見使用:
1 grep root /etc/passwd 匹配文件中有root的行
2 grep ^root /etc/passwd 匹配文件中以root開頭的行
3 grep -v root /etc/passwd 匹配文件中無root的行
4 grep -v ^$ test 過濾文件中的空行
5 grep '[239].' data #輸出所有含有以2,3或9開頭的,並且是兩個數字的行
3.9、sed:
替換/查找/刪除命令
3.10、awk:
文本分析命令
3.11、vi/vim:
文本編輯器
四、任務操作:
4.1、at:
在一個指定時間執行指定任務,僅執行依次,且需要開啟atd進程
常用:
1 三天後的下午5點鐘執行date : at 5pm+3 days date
2 刪除定時任務:
通過atq查看任務號
atrm 任務號
3 顯示定時任務內容
at -c 任務號
4.2、crontab:
linux下周期性的執行某種任務或等待處理某些事件的一個守護進程
使用方式:
vim /etc/crontab
文件格式:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。
command:要執行的命令,可以是系統命令,腳本文件。
特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數之間的中杠表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率
命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
參數:
-u user : 指定迴圈定時任務的用戶
file : cronttab格式的文件
-e : 編輯某個用戶的crontab文件,預設當點用戶
-l : 顯示內容
-r : 從/var/spool/cron目錄中刪除某個用戶的crontab文件
常用:
1 每1分鐘執行一次command
命令:
* * * * * command
2 每小時的第3和第15分鐘執行
命令:
3,15 * * * * command
3 在上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 * * * command
4 每隔兩天的上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 */2 * * command
5 每個星期一的上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 * * 1 command
4.3、&/nuhup:
任務置於後臺。
常用:
python test.py&
nuhup python test.py&
五、網路操作:
5.1、ifconfig:
查看設置網卡參數。
命令格式: ifconfig [網路設備] [參數]
常用:
ifconfig eth0 up/down 啟用或關閉指定網卡
ifconfig eth0 顯示網卡信息
ifconfig 查看所有網卡信息
5.2、ping:
通過ICMP(Internet控制消息協議)發送消息來驗證是否能連通另一臺主機。
格式:
ping [參數] [主機名或IP地址]
參數:
-d 使用Socket的SO_DEBUG功能。
-f 極限檢測。大量且快速地送網路封包給一臺機器,看它的回應。
-n 只輸出數值。
-q 不顯示任何傳送封包的信息,只顯示最後的結果。
-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。通常是查看本機的網路介面是否有問題。
-R 記錄路由過程。
-v 詳細顯示指令的執行過程。
-s 設置數據包的大小
5.3、netstat:
查看網路狀態。
格式:
netstat [option]
參數:
-a: 顯示所有
-n: 以ip形式顯示
-p: 顯示進程
-r: 顯示路由表
-t: 只顯示tcp
-u: 只顯示udp
-i: 顯示網路介面
常用:
1 netstat
2 netstat -nu 只顯示udp / -t只顯示tcp
3 netstat -r 顯示路由表,作用同route
5.4、route:
查看路由以及增刪路由。
格式:
route [option] [action]
參數:
-n 不解析名字
-v 顯示詳細的處理信息
-f 清除所有網關入口的路由表。
-p 與 add 命令一起使用時使路由具有永久性。
add:添加一條新路由。
del:刪除一條路由。
-net:目標地址是一個網路。
-host:目標地址是一個主機。
常用:
route -n 顯示路由表
route add/del default gw 192.168.120.1 刪除和添加設置預設網關
route add -net 172.25.0.0 netmask 255.255.0.0 dev eth0 添加網關
5.5、traceroute:
查看路由軌跡。
格式:
traceroute[參數][主機]
參數:
-I 使用ICMP回應取代UDP資料信息。
-d 使用Socket層級的排錯功能。
-s 設置本地主機送出數據包的IP地址。
-n 只顯示IP
常用:
traceroute www.163.com
traceroute -n www.163.com 顯示IP地址,不查主機名
5.6、nslookup:
查詢DNS記錄,查看功能變數名稱解析是否正常,網路故障時用來診斷。
格式:
nslookup [-qt=type] domain [dns-server]
type為 dns的解析記錄,如mx為設置查詢功能變數名稱郵件交換記錄
常用:
nslookup baidu.com
nslookup -qt=mx 163.com 8.8.8.8
5.7、ssh:
安全遠程鏈接主機。
格式: ssh [參數] 功能變數名稱或IP地址
六、文件傳輸:
6.1、tftp:
tftp命令來自英文片語“Trivial File Transfer Protocol”的縮寫,中文譯為簡單文件傳輸協議,其功能是基於TFTP協議進行的文件傳輸工作。用戶可以通過文字模式將文件上傳至遠程伺服器,亦可以從伺服器下載文件到本地主機。
語法:tftp [參數] 功能變數名稱或IP地址
常見指令:
connect: 連接遠程TFTP伺服器
mode: 文件傳輸模式
put: 上傳指定文件
get: 下載指定文件
quit: 退出TFTP服務
verbose: 顯示執行過程詳細信息
trace: 顯示包路徑
status: 顯示當前狀態信息
binary: 二進位傳輸模式
ascii: ASCII傳送模式
rexmt: 設置包傳輸的最長超時時間
timeout: 設置重傳的最長超時時間
help: 顯示幫助信息
?: 顯示幫助信息
6.2、curl:
curl命令來自英文片語“CommandLine URL”的縮寫,其功能是用於在Shell終端界面中基於URL規則進行的文件傳輸工作。
語法格式:curl [參數] 網址URL [文件名]
常見指令:
-a: 追加寫入到指定文件
-A: 設置用戶代理標頭信息
-b: 設置用戶Cookie信息
-d: 以HTTP POST方式傳送數據
-o: 設置新的本地文件名
-O: 保留遠程文件的原始名
-T: 上傳指定文件
-u: 設置伺服器的用戶名和密碼
示例:
獲取指定網頁源碼: curl http://www.baidu.com
下載指定文件: curl -O http://www.baidu.com/robots.txt
列印指定網站的HTTP響應頭信息: curl -I http://www.baidu.com
6.3、wget:
下載網路文件,從指定網址下載網路文件。wget命令非常穩定,一般即便網路波動也不會導致下載失敗,而是不斷地嘗試重連,直至整個文件下載完畢。
語法:wget [參數] 網址URL [對象]
參考參數:同curl。
示例:
下載指定網路文件 wget http://www.baidu.com/robots.txt
下載並保存在本地 wget -O baidurts.txt http://www.baidu.com/robots.txt
下載指定文件,限速最高每秒300k wget --limit-rate=300k http://www.baidu.com/robots.txt
啟動斷點續傳下載文件 wget -c http://www.baidu.com/robots.txt
6.4、rsync:
rsync(remote sync):遠程同步工具,用於遠程數據同步。rsync命令能夠基於網路(含區域網和互聯網)快速地實現多台主機間的文件同步工作。
rsync預設伺服器埠為873。
語法格式:rsync [參數] 目錄名
常見參數:
-d: 不遞歸目錄文件,不傳輸子文件
-D: 保留設備文件信息
-n: 顯示將要傳輸的文件列表
-o: 保留文件原始所有者身份
-p: 保留文件原始許可權信息
-P: 顯示進度信息
-q: 使用精簡輸出模式
-r: 遞歸處理所有子文件
-R: 使用相對路徑
-t: 保留文件時間信息
-v: 顯示執行過程詳細信息
示例:
將本地目錄(/Dir)與遠程目錄(192.168.10.10:/Dir)相關聯,保持文件同步:
[root@linuxcool ~]# rsync -r /Dir 192.168.10.10:/Dir [email protected]'s password: 此處輸入遠程伺服器密碼
將遠程目錄(192.168.10.10:/Dir)與本地目錄(/Dir)相關聯,保持文件同步:
[root@linuxcool ~]# rsync -r 192.168.10.10:Dir /Dir [email protected]'s password: 此處輸入遠程伺服器密碼
關聯兩個本地的目錄,保持文件同步:
[root@linuxcool ~]# rsync -r /Dir1 /Dir2
列出遠程指定目錄內的文件列表:
[root@linuxcool ~]# rsync 192.168.10.10:/Dir/ [email protected]'s password: 此處輸入遠程伺服器密碼