Linux 常用命令总结
一.命令基礎
1.關于[tesla@localhost ~]$和[root@localhost ~]#的說明
格式為:[用戶名@主機名 當前目錄名] #或$
其中:
①#表示當前為root用戶,$表示當前為普通用戶;
②~表示家目錄,root用戶的家目錄為/root,普通用戶的家目錄為/home/用戶名;
2.命令的基本格式
命令 [選項] [參數]
注意:
個別命令不遵守此格式;
有多個選項時,可以寫在一起;
選項分完整選項(-- 完整選項名)和簡化選項(-簡化選項名),eg: --all與-a;
3.命令分類
(1)幫助命令
(2)文件處理和搜索命令
(3)打包壓縮命令
(4)關機重啟命令
(5)其他常用命令
4.常用目錄的基本作用
(1)/ 根目錄
(2)/bin 命令保存目錄(所有用戶就可以執行的命令)
(3)/sbin 命令保存目錄(超級用戶才能執行的命令)
(4)/boot 啟動目錄,含有啟動相關的文件
(5)/dev 設備文件保存目錄
(6)/etc 配置文件保存目錄
(7)/home 普通用戶家目錄的上級目錄
(8)/root 超級用戶的家目錄
(9)/lib 系統函數庫保存目錄
(10)/mnt 空目錄,用來掛載u盤等,linux常用空目錄來掛載設備
(11)/media 空目錄,用來掛載光盤
(12)/misc 空目錄,用來掛載雜項設備
(13)/proc 內存的掛載目錄
(14)/sys 內存的掛載目錄
(15)/usr 系統軟件資源目錄
/usr/bin 系統命令(普通用戶)
/usr/sbin 系統命令(超級用戶)
(16)/tmp 臨時目錄
(17)/var 系統相關文檔內容
說明:
①/ 和 /usr目錄下的bin和sbin目錄,都是用來保存系統命令的;
②/proc和/sys保存的是內存的掛載點,不能直接操作;
③可以在家目錄(/root和/home/xxx)和/tmp任意存放內容;
二.具體命令
1.幫助命令
(1)
man [選項] 命令:獲取指定命令的幫助
man -k 字符串:查看所有包含字符串的命令的所有級別的幫助,相當于"apropos 命令";
man -f 命令:查看命令擁有哪些級別的幫助,相當于"whatis 命令";
然后用類似man 8 ifconfig的格式進一步查看特定級別的幫助。
(2)
命令 --help:獲取命令的幫助選項
eg:ls --help
(3)
help shell內部命令:獲取shell內部命令的幫助
eg:help cd
(4)
info 命令 :可以利用該命令獲取幫助
·回車 進入子幫助頁面(帶有*標記)
·u 進入上層頁面
·n 進入下一個幫助小節
·p 進入上一個幫助小節
·q 退出
2.文件處理和搜索命令
·文件處理
(1)
ls [選項] [文件或目錄] :查詢目錄內容
選項:
-a 顯示所有文件,包括隱藏文件
-d 查看目錄屬性
-h 人性化顯示文件大小
-i 顯示inode
-l 查看詳細信息
(2)
cd [目錄] :change directory,切換目錄
簡化操作:
cd/cd - 進入上一次的目錄
cd . 進入當前目錄
cd .. 進入上一級目錄
cd ~進入當前用戶的家目錄
(3)
mkdir [選項] [目錄]:make directories,創建目錄
·選項:
-p 遞歸創建
(4)
pwd :print working directory,顯示當前所在目錄
(5)
rmdir [目錄名] :remove empty directories,刪除空目錄
(6)
rm [選項] [目錄或文件名] :remove
· [選項]
-r 刪除目錄
-f 強制
(7)
cp [選項] [源文件或目錄] [目標目錄] :copy,復制文件或目錄
·[選項]
-p 連帶文件屬性復制
-d 若源文件是鏈接文件,則復制鏈接屬性
-r 復制目錄
-a 相當于-pdr
(8)
mv [選項] [源文件或目錄] [目標目錄名或文件名] :move,移動文件或目錄,若在同一個目錄,可用來改名
(9)
ln [選項] [源文件] [目標文件] :link,生成鏈接文件,默認(不加-s)創建硬連接,文件的引用計數加一
·[選項]
-s 創建軟鏈接
·說明:
-軟鏈接特征
①類似windows快捷方式;
②軟鏈接擁有自己的inode和block,但數據塊中只保存原文件的文件名和inode,并沒有實際的文件數據;
③lrwxrwxrwx,l表示軟鏈接,其文件權限都為rwxrwxrwx;
④修改任一文件,另一個都會改變;
⑤刪除原文件,軟鏈接不能使用;
-硬鏈接特征
①擁有相同的inode和存儲block,可以看作是同一個文件;(類似一個教室的前后門)
②可以通過inode識別;
③不能跨分區(同一教室的前后門無法存在于兩個教學樓上);
④不能針對目錄使用。
·文件搜索
(1)
locate 文件名:用于查找文件,它比find命令的搜索速度快,它需要一個數據庫,這個數據庫由每天的例行工作(crontab)程序來建立。
(2)
whereis [選項] 命令名:搜索命令或幫助文檔的路徑
·[選項]
-b 只查找可執行文件
-m 只查找可幫助文件
·相關命令
whoami
whatis
(3)
which 命令名:搜索命令的路徑和別名
·$PATH:定義系統搜索命令的路徑,可用echo $PATH輸出
(4)
find [搜索范圍] [搜索條件]:搜索文件
①find /root -name install.log
在/root下搜索符合文件名的文件;
如果文件名不區分大小寫用-iname
如果要進行匹配搜索,可以用通配符;
linux的常用通配符:
*匹配任意內容,?匹配任意一個字符,[]匹配其中任意一個字符
②find /root -user root
按所有者搜索
③find /root -nouser
查找沒有所有者的文件
④find /var/log -mtime +10
查找10天前修改的文件,-10(10天內),10(10天當天);
atime文件訪問時間,ctime改變文件屬性,mtime修改文件內容
⑤find . -size 25k
查找文件大小是25KB的文件
-25k 小于25KB
+25k 大于25KB
⑥find . -inum 262422
查找i節點是262422的文件
⑦find /etc -size +20k a -mtime +10 -exec ls -lh {}\;
查找/etc目錄下大于20KB且在10天之前最后修改的文件,并顯示詳細信息;
find是我們很常用的一個Linux命令,但是我們一般查找出來的并不僅僅是看看而已,還會有進一步的操作,這個時候exec的作用就顯現出來了。-exec 參數后面跟的是command命令,它的終止是以;為結束標志的,所以這句命令后面的分號是不可缺少的,考慮到各個系統中分號會有不同的意義,所以前面加反斜杠。{}代表前面find查找出來的文件名。
(5)
grep [選項] 字符串 文件名:在文件當中匹配符合條件的字符串
·[選項]
-i 忽略大小寫
-v 排除指定字符串
·find與grep的區別
find是在系統當中搜索復合條件的文件名,需要匹配時使用通配符進行完全匹配;grep在文件中搜索復合條件的字符串,需要匹配時使用正則表達式進行包含匹配。
3.打包壓縮命令
常見壓縮格式1:.tar.gz,.tar.bz2
常見壓縮格式2:gz,.bz2,.zip
(1)
·zip 壓縮后文件名 原文件名:壓縮文件
·zip -r 壓縮后文件名 原目錄名:壓縮目錄
·unzip 壓縮文件:解壓縮文件
(2)
·gzip 源文件:壓縮為.gz格式的文件,源文件會消失
·gzip -c 源文件 > 壓縮文件:壓縮為.gz格式的文件,保留源文件
·gzip -r 目錄:壓縮目錄下的所有文件,但不能壓縮目錄(用tar先打包)
·gzip -d .gz格式壓縮文件:解壓縮.gz格式的文件
·gunzip .gz格式壓縮文件:解壓縮.gz格式的文件
(3)
·bzip2 源文件:壓縮為.bz2格式的文件,源文件會消失,加-k保留源文件,不能壓縮目錄
·bzip2 -d .bz2格式壓縮文件:解壓縮.bz2格式的文件,加-k保留源文件
·bunzip2 .bz2格式壓縮文件:解壓縮.bz2格式的文件,加-k保留源文件
(4)
·tar -cvf 打包后文件名.tar 源文件:打包文件
-c打包
-t測試,顯示打包后文件名,并不真正打包
-v顯示過程
-f指定打包后的文件名
eg:tar -cvf mytar.tar mytar
·tar -xvf 打包文件名.tar [-C 解壓縮位置]:解打包文件
-x解打包
·tar -zcvf 打包后文件名.tar.gz 源文件:打包壓縮文件為.tar.gz格式
·tar -zxvf 打包文件名.tar.gz :解打包解壓縮.tar.gz格式文件
·tar -jcvf 打包后文件名.tar.bz2 源文件:打包壓縮文件為.tar.bz2格式
·tar -jxvf 打包文件名.tar.bz2:解打包解壓縮.tar.bz2格式文件
4.關機重啟命令
(1)
shutdown [選項] 時間
·[選項]:
-c取消前一個關機命令
-h關機
-r重啟
eg:shutdown -r now
shutdown -h 05:30 &
(2)其他關機命令:
halt
power off
init 0
(3)其他重啟命令:
reboot
init 6
(4)系統運行級別
·0關機
·1單用戶
·2不完全多用戶,不含NFS服務
·3完全多用戶
·4未分配
·5圖形界面
·6重啟
·runlevel 顯示上一個運行級別和當前運行級別
(5)
logout:退出登錄
5.其他常用命令
(1)掛載命令
①mount:查看系統中已經掛載好的設備
②mount -a:依據配置文件/etc/fstab的內容,自動掛載
③mount [-t 文件系統] [-o 特殊選項] 設備文件名 掛載點
·選項:
-t 文件系統:指定掛載的文件系統(ext3/ext4/iso9660等)
-o 特殊選項:指定掛載的額外選項(如exex/noexec,是否允許該處執行可執行文件,默認可以)
④掛載光盤
·mkdir mnt/cdrom/ 建立掛載點
·mount [-t iso9660] /dev/sr0 /mnt/cdrom/ 掛載光盤
/dev/cdrom是/dev/sr0的軟鏈接,依賴系統,推薦使用/dev/sr0;
系統能自動識別光盤的文件系統,所以-t iso9660可以省略。
⑤掛載U盤(忽略)
(2)卸載命令
umount 設備文件名或掛載點
eg:umount /dev/sr0或umount /mnt/cdrom
(3)用戶登錄查看命令
①
w:查看當前用戶登錄的信息(詳細)
命令輸出:
·USER:登錄的用戶名
·TTY:登錄終端
·FROM:登錄IP
·LOGIN@:登錄時間
·IDLE:用戶閑置時間
·WHAT:當前正在運行的命令
②
who:查看當前用戶登錄的信息(簡單)
命令輸出:
·用戶名
·登錄終端
·登錄時間(登錄IP)
③
last:查看當前和過去用戶登錄的信息
默認讀取的是/var/log/wtmp文件數據
命令輸出:
·用戶名
·登錄終端
·登錄IP
·登錄時間
·退出時間(在線時間)
④
lastlog:查看所有用戶的最后一次登錄時間
默認讀取的是/var/log/lastlog文件數據
命令輸出:
·用戶名
·登錄終端
·登錄IP
·最后一次登錄時間
(4)命令別名
①alias :查看系統中的所有命令別名
②alias 別名 = '原命令':設定命令別名(注銷或重啟則失效)
③unalias 別名 :刪除別名(注銷或重啟則失效)
要讓別名永久生效或失效可以寫入環境變量配置文件,如~/.bashrc
·命令生效順序
①用相對或絕對路徑執行的命令
②別名
③Bash的內部命令
④按照$PATH環境變量定義的目錄的順序查找到的第一個命令
·bash常用快捷鍵
①ctrl+c 強制終止當前命令
②ctrl+l 清屏
③ctrl+a 移動光標到命令行首
④ctrl+e 移動光標到命令行尾
⑤ctrl+u 從光標所在位置一直刪除到行首
⑥ctrl+z 將命令放入后臺
⑦ctrl+r 在歷史命令中搜索
(5)歷史命令
history [選項]
·[選項]
-c 清空歷史命令
-w 把緩存中的歷史命令寫入~/.bash_history中
·歷史命令默認保存1000條,可在/etc/profile中的HISTSIZE進行修改
·歷史命令的調用:
①上下箭頭
②"!!"重復執行上一條命令,
"!n"重復執行第n條命令,
"!字符串"重復執行最近一條以該字符串開頭的命令
(6)輸出重定向
①標準輸入輸出
| 鍵盤 | /dev/stdin | 0 | 標準輸入 |
| 顯示器 | /dev/stdout | 1 | 標準輸出 |
| 顯示器 | /dev/stderr | 2 | 標準錯誤輸出 |
②輸出重定向:改變輸出方向,從顯示器轉移到別的地方。
| 標準輸出重定向 | 命令 > 文件 | 覆蓋 | ? |
| 命令 >> 文件 | 追加 | ? | |
| 標準錯誤輸出重定向 | 錯誤命令 2>文件 | 覆蓋 | 沒有空格 |
| 錯誤命令 2>>文件 | 追加 | ||
| 正確輸出錯誤輸出同時保存 | 命令 > ?文件 2>&1 | 覆蓋 | ? |
| 命令 >> 文件 2>&1 | 追加(重要) | ? | |
| 命令 &>文件 | 覆蓋 | ls &>null將執行命令結果丟到黑洞中 | |
| 命令 &>>文件 | 追加(重要) | ? | |
| 命令 >>文件Right ?2>>文件Error | 追加(重要) | 正確命令的結果寫入文件1,錯誤的寫入文件2 |
(7)輸入重定向(了解,很少用)
wc [選項] [文件名]
直接輸入wc,然后隨便輸入內容,ctrl+d統計行數+單詞數+字符數
·[選項]
-l 統計行數
-w 統計單詞數
-c 統計字符數
①wc < access.log ,其實可以直接用wc access.log;
②wc <<deli
.............
deli
統計兩個分隔符deli之間的內容的行數+單詞數+字符數
(8)多命令順序執行
①命令1;命令2 命令之間無邏輯關系
②命令1||命令2 邏輯或
③命令1&&命令2 邏輯與
(9)管道符
命令1|命令2
命令2把命令1的正確輸出當作操作對象,只有命令1正確,命令2才會執行;
(10)特殊符號
·通配符
①? :任意一個字符
②* :任意內容
③[] [-] [^] :范圍
·Bash中其他特殊符號
①'' 單引號,其中所有的特殊符號都沒有特殊含義,如 $和`(反引號);
②"" 雙引號,除$ ` \外,其中所有的特殊符號都沒有特殊含義,這三個符號的作用依次分別是"調用變量的值"、"引用命令"、"轉義符";
③$()和反引號 用來引用系統命令,在bash中會先執行,推薦使用$(),反引號容易看錯
④# 在shell中代表注釋
⑤$ 用于調用變量的值,如$var
⑥\ 轉義符,之后的特殊符號將失去特殊意義
6.vi常用指令
(1)底行模式常用指令
①:w
②:q
③:!
④:ls
⑤:n
⑥:15
⑦/xxx
⑧?xxx
(2)命令模式常用指令
①h光標向左移
②j光標向下移
③k光標向上移
④l光標向右移
⑤ctrl + f 向下翻頁(front)
⑥ctrl + b 向上翻頁(back)
⑦ctrl + d 向下翻半頁(down)
⑧ctrl + u 向上翻半頁(up)
⑨o 在光標所在行的下方插入一行,并切換到輸入模式
⑩p 在光標所在行的下方粘貼,P在光標所在行的上方粘貼
①dd刪除光標所在行
②yy復制光標所在行
7.磁盤管理
(1)
df :查看磁盤分區使用情況
[選項]
-l 僅顯示本地磁盤(默認)
-a 顯示所有文件系統的磁盤使用情況,包含/proc/等
-h 以1024為進制,按最合適單位顯示磁盤容量(-H 1000)
-t 顯示指定文件系統的磁盤分區(-x 不顯示)
-T 顯示磁盤分區類型
(2)
du :統計磁盤上文件的大小
[選項]
-b 以byte為單位統計文件大小(-k Kb,-m Mb)
-h 以1024為進制,按最合適單位統計大小(-H 1000)
-s 指定統計目標
8.分區模式
(1)MBR
①主分區不超過4個
②單個分區容量不超過2TB
(2)GPT
①主分區個數"幾乎"沒有限制(GPT的分區表最多可以支持128個主分區)
②單個分區容量"幾乎"沒有限制
總結
以上是生活随笔為你收集整理的Linux 常用命令总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建故障转移群集,LiveMigrati
- 下一篇: How to install Toad