查詢目錄中的內容:ls
ls -a :顯示所有文件,包括隱藏文件
ls -l :顯示詳細信息,也可寫作 ll
ls -d :查看目錄屬性
ls -h :人性化顯示文件大小
ls -i :顯示inode
這些命令不加文件默認會操作當前文件夾下所有文件
文件處理命令
目錄處理命令:
mkdir -p [目錄名]:創建目錄
-p:創建多級目錄
mkdir -p father/son
會創建 father/son 兩級目錄cd :切換目錄 control+l 是清屏
cd ~ :進入用戶的home目錄
cd - :進入上次目錄
cd .. :進入上一級目錄
cd . :進入當前目錄
- pwd :輸出當前工作目錄
rm -rf [文件或目錄]:強制刪除目錄
-
cp [選項] [原文件或目錄] [目標目錄] :復制
cp -r [原文件或目錄] [目標目錄] : 復制目錄
cp -p [原文件或目錄] [目標目錄] : 連帶文件屬性復制
cp -d [原文件或目錄] [目標目錄] :若源文件是鏈接文件,則復制鏈接屬性
cp -a [原文件或目錄] [目標目錄] :相當于 -pdr
mv [ 原文件或目錄] [目標目錄] :剪切
常用目錄
/ :根目錄
/lib :存放一些linux的庫函數
/mnt : 系統掛載目錄
/home : 普通用戶家目錄
/root : 超級用戶家目錄
/tmp :存放一些臨時文件
/dev :設備文件保存目錄,硬件信息
/ect :配置文件保存目錄
/boot : 啟動目錄,啟動相關目錄
/media : 掛載光盤目錄
/proc : 直接寫入內存
/usr : 系統資源保存目錄
/var和/sys :用來保存內存的掛載點,不可進操作
/bin 和/sbin :用來保存系統目錄的 bin只有普通用戶可以用 sbin只有超級用戶可以用
鏈接命令
ln -s [原文件] [目標文件] : 軟連接
ln [原文件] [目標文件] : 硬鏈接
文件搜索命令
locate [文件名] :文件搜索命令
updatedb :后臺數據庫更新
1.在后臺數據庫中按文件名搜索,搜索速度更快
2.后臺數據庫是/var/lib/mlocate
3.這個數據庫不是實時更新的,每天更新一次或者執行數據庫更新命令。
whereis [命令]: 搜索命令的命令
whereis -b [命令] : 只查找可執行文件
whereis -m [命令]: 只查找幫助文件
which [文件名] :搜索命令所在路徑及別名
-
find [搜索范圍] [搜索條件]:文件搜索命令
1.按照文件時間搜索:
find [搜索范圍] [時間條件] n
時間條件:
atime:文件訪問時間
ctime :改變文件屬性
mtime:修改文件內容
-n n天內修改文件
n n天當天修改的文件
+n n天前修改的文件
eg:
find [搜索范圍] -mtime +10
代表的意思是:在搜索范圍內查找10天前修改的文件
2.按照文件大小搜索:
find [搜索范圍] -size nk
-nk :小于nKB的文件
nk : 等于nKB的文件
+nk :大于nKB的文件
需要注意的是:千字節是小寫k,兆字節是大寫M
eg:
find [搜索范圍] -size -25k
代表的意思是:在搜索氛圍內查找小于25KB的文件
3.按照結點搜索:
eg:
find [搜索范圍] -inum 9527
意思是:在搜索范圍內查找i節點是9527的文件
4.按照文件大小范圍搜索:
-a :邏輯與,兩個條件都滿足
-o:邏輯或,兩個條件滿足一個即可
eg:
find [搜索范圍] -size +20k -a -size -50k
意思是:在搜索范圍內查找大于20kb并且小于50kb的文件
- grep [選項] 字符串 文件名:搜索字符串命令
選項:
-i 忽略大小寫
-v 排除指定字符串
幫助命令
幫助命令man
man [命令] :獲取指定命令的幫助
man 的命令級別
1.查看命令的幫助
2.查看內核可調用的函數的幫助
3.查看函數和函數庫的幫助
4.查看特殊文件的幫助
5.查看配置文件的幫助
6.查看游戲的幫助
7.查看其它雜項的幫助
8.查看系統管理員可用的命令幫助
9.查看和內核文件相關文件的幫助man -f [命令]:查看命令有幾個等級幫助
man -k [命令]:查看和命令相關的所有幫助
按q退出man界面
其它幫助命令
[命令] --help :獲取命令選項的幫助
help [shell內部命令]:獲取shell內部命令的幫助
eg:
whreris cd(確定是否是shell內部命令)
cd 是
help cd(獲取內部命令幫助)
- info [命令]:詳細命令幫助,會進入一個巨大的幫助文檔
壓縮和解壓縮命令
.zip格式壓縮
zip [壓縮文件名] [源文件] :壓縮文件
zip -r [壓縮目錄名] [源目錄] : 壓縮目錄
unzip [壓縮文件] :解壓縮.zip文件
.gz格式壓縮
gzip [源文件] :壓縮為.gz格式的壓縮文件,源文件會消失
gzip -c [源文件] > [壓縮文件]:壓縮為.gz格式,源文件保留
gzip -r [目錄]:壓縮目錄下所有的子文件,但是不能壓縮目錄
gzip -d [壓縮文件]:解壓縮文件
gunzip [壓縮文件]:解壓縮文件
.bz2格式壓縮
bzip2 [源文件]:壓縮為.bz2格式,不保留源文件
bzip2 -k [源文件]:壓縮之后保留源文件
bzip2 -d [壓縮文件]:解壓縮,-k保留壓縮文件
bunzip2 [壓縮文件]:解壓縮,-k保留壓縮文件
.tar.gz格式壓縮(常見)
tar -cvf [打包/目錄文件名] [源文件/目錄]:打包命令
-c:打包
-v:顯示過程
-f:指定打包后的文件名其實.tar.gz格式和.tar.zb2格式是先打包為.tar格式,再壓縮為.gz格式
tar -zcvf [壓縮包名.tar.gz] [源文件]:壓縮為.tar.gz格式
tar -zxvf [壓縮包名.tar.gz]:解壓縮.tar.gz格式
.tar.bz2壓縮格式(常見)
tar -jcvf [壓縮包名.tar.bz2] [源文件]:壓縮為.tar.zb2格式
tar -jxvf [壓縮包名.tar.bz2]:解壓縮.tar.zb2格式
[解壓命令] -C [目標目錄]:將解壓文件/目錄存到目標目錄下
tar -ztvf [壓縮包名]:查看壓縮包
關機和重啟命令
shutdown -h [時間] : 關機
shutdown -r [時間] :重啟
shutdown -c [時間]:取消前一個關機命令
[時間]可以寫now 或者具體時間
reboot:重啟
init [選項] :進入系統運行級別
選項:
0 : 關機
1 :單用戶
2 :不完全多用戶,不含NFS服務
3 : 完全多用戶
4 :未分配
5 :圖形界面
6 :重啟runlevel:查詢當前系統運行級別
logout:退出登錄命令
其它常用命令
more:它以全屏幕的方式按頁顯示文本文件的內容
ifconfig :查看當前網卡
table鍵:系統命令補全
clear:清屏命令
cat [文件名]:查看文件
touch [文件名]:創建文件
data:顯示時間
cal:顯示日歷
sudo :超級用戶
su :更改用戶為root
chmod +x+r+w:添加執行/讀/寫權限
ps:查看進程
kill pid :結束某個進程
掛載命令
mount : 查詢系統中已經掛載的設備
mount -a :依據配置文件/etc/fstab的內容,自動掛載
mount [-t文件系統] [設備文件名] [掛載點] :加入文件系統類型來指定掛載的類型,可以是ext3 ext4 iso9660等文件系統
mount [-o 特殊選項] [設備文件名] [掛載點]:可以指定掛載的額外選項
mount /dev/sr0 /mnt :把光盤掛載到mnt目錄下
- umount [設備文件名或掛載點]:卸載命令
umount /mnt :把mnt目錄下的光盤卸載
fdisk -l:查看U盤設備文件名
mount -t vfat /dev/sdb [掛載點]:掛載U盤
mount -t vfat /dev/sdb /mnt :將U盤掛載到mnt目錄下
查看登錄用戶信息
w:查看登錄用戶的信息
who:查看登錄用戶名,終端和時間
last:查詢當前登錄和過去登錄的用戶信息
lastlog:查看所有用戶的最后一次登錄時間
Shell相關命令
echo "[輸出內容]" :輸出命令 有空格需要打引號
echo -e [選項] "[輸出內容]":改變輸出格式樣式等等
選項:
\a:輸出警告音
\b:退格鍵,也就是向左刪除鍵
\n:換行符
\r:回車鍵
\t:制表符號,就是tab鍵
\v:垂直制表符
\0nnn:按照八進制ASCLL碼表輸出字符,其中0為數字零,nnn是三位八進制數
\xhh:按照十六進制ASCLL碼表輸出字符,其中hh是兩位十六進制數
\e[1;31m...\e[0m:顯示顏色vi hello.sh :寫一個腳本
sh [腳本名稱]:執行該腳本
bash相關命令
alias:查看系統中所有命令的別名
alias [別名] = [原命令]:設定命令別名
unalias [別名]:刪除別名
history -c:清空歷史命令
history -w:把緩存中的歷史命令寫入歷史命令保存文件
!!:執行上一條命令
! [字符串]:重復執行最后一條以該字符串開頭的命令
輸出重定向
類型 | 符號 | 作用 |
---|---|---|
標準輸出重定向 | [命令] > [文件] | 以覆蓋的方式,把命令的正確輸出到指定的文件或設備當中 |
標準輸出重定向 | [命令] >[文件] | 以追加的方式,把命令的正確輸出到指定的文件或設備當中 |
標準錯誤輸出重定向 | 錯誤命令 2>文件 | 以覆蓋的方式,把命令的錯誤輸出到指定的文件或設備中 |
標準錯誤輸出重定向 | 錯誤命令 2>>文件 | 以追加的方式,把命令的錯誤輸出到指定的文件或設備中 |
正確輸出和錯誤輸出同時保存 | 命令&>>文件 | 以追加的方式,把正確和錯誤輸出都保存到同一個文件當中 |
輸入重定向
- wc [選項] [文件名]:統計文件中的字節,單詞,行數
選項:
-c:統計字節數
-w:統計單詞數
-l :統計行數
管道符
多命令順序執行
多命令執行符 | 格式 | 作用 |
---|---|---|
; | 命令1;命令2 | 多個命令順序執行,命令之間沒有任何邏輯聯系 |
&& | 命令1&&命令2 | 邏輯于,當命令1正確執行,則才執行命令2。當命令1不正確執行,則不執行命令2 |
ll | 命令1ll命令2 | 邏輯或,當命令1執行不正確,則命令2才會執行。當命令1正確執行,則命令2不會執行 |
* && 應該在 | 前書寫 |
- 命令1|命令2:命令1的正確輸出作為命令2的操作對象
eg:
netstat -an | grep ESTABLISHED
-a/etc/ | more
通配符
通配符 | 作用 |
---|---|
? | 匹配任意一個 |
* | 匹配0個或任意字符,也就是可以匹配任何內容 |
[ ] | 匹配中括號中任意一個字符。例如:[abc]代表一定匹配一個字符,或者是a,或者是b,或者是c |
[-] | 匹配中括號中任意一個字符,-代表一個范圍 例如:[a-z]代表匹配一個小寫字母 |
[^]: | 邏輯非,表示匹配不是中括號內的一個字符 例如:[^0-9]代表匹配一個不是數字的字符 |
Bash中其他特殊符號
符號 | 作用 |
---|---|
’ ’ | 單引號。在單引號中所有的特殊符號,如“$”和“`”都沒有特殊含義 |
\ | 轉義符。跟在\之后的特殊符號將失去特殊含義,變為普通字符 |
# | 注釋 |
$ | 用語調用變量的值,如需要調用變量name的值時,需要用$name的方式得到變量的值 |
$() | 括號里的內容是系統命令,在Bash中會先執行它。 |
vim編輯器常用指令
底行模式常用指令
w:保存
q:退出
! :強制執行
ls:列出編輯器當前執行的所有文件
n:切換到下一個文件
15:將光標切換到第15行
/xxx:從光標位置向后搜索,直到xxx第一次出現的位置
?xxx:從光標位置向前搜索,直到xxx第一次出現的位置
命令模式常用指令
h:光標左移
j :光標下移
k:光標上移
k:光標右移
ctrl + f :向下翻頁
ctrl + b :向上翻頁
ctrl + d :向下翻半頁
ctrl + u :向上翻半頁
dd :刪除光標所在行
o:在光標所在行的下方插入一行并切換到輸入模式
yy:復制光標所在的這一行
磁盤管理
df -l :查看磁盤分區使用狀況,僅顯示本地磁盤
df -a :查看磁盤分區使用狀況,顯示所有文件系統的磁盤使用情況,包含比如/proc/
df -h :查看磁盤分區使用狀況,以1024進制計算最合適的單位顯示磁盤容量
df -H:查看磁盤分區使用狀況,以1000進制計算最合適的單位顯示磁盤容量
df -T :查看磁盤分區使用狀況,顯示磁盤分區類型
df -t :查看磁盤分區使用狀況,顯示指定類型文件系統的磁盤分區
df -x:查看磁盤分區使用狀況,不顯示指定類型文件系統的磁盤分區
du -b:以byte為單位統計文件大小
du -k:以KB為單位統計文件大小
du -m:以MB為單位統計文件大小
du -h:按照1024進制以最合適的單位統計文件大小
du -H:按照1000進制以最適合的單位統計文件大小
du -s:指定統計目標
磁盤的分區
MBR分區:
主分區和擴展分區總數不能超過4個
擴展分區最多只能有一個
擴展分區不能直接存取數據,必須在擴展分區內部建立邏輯分區
fdisk :查看磁盤
fdisk [ 磁盤路徑]:進入分區模式
m :分區命令詳解
GTP分區(常用,不能用于32位,X86)
parted:啟動分區工具
help:parted幫助命令
select [磁盤名]:切換分區磁盤
mklabel:指定分區表
print:查看當前磁盤分區類型
交互模式分區:
- mkpart :創建一個分區,接下來跟著步驟走,注意4K對齊
命令分區:
- mkpart [名稱] [位置]
mkpart test 2000 3000
- rm [分區編號]:刪除分區
磁盤的格式化
格式化(format)是指對磁盤或磁盤中的分區(partition)進行初始化的一種操作,這種操作通常會導致現有的磁盤或分區中所有的文件被清除。格式化通常分為低級格式化和高級格式化。如果沒有特別指明,對硬盤的格式化通常是指高級格式化,而對軟盤的格式化則通常同時包括這兩者。
- mkfs :磁盤格式化工具
- mkfs.[格式化后文件系統] [區名]:格式化
mkfs.test3 /dev/sdb1
swap交換分區
Swap分區在系統的物理內存不夠用的時候,把硬盤空間中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap分區中,等到那些程序要運行時,再從Swap分區中恢復保存的數據到內存中。
- 步驟
1.建立一個普通的Linux分區
用之前建立的sdb6分區
2.修改分區類型的16進制編碼
- t 輸入編碼6
- L:查看編碼的列表
- 可以看出swap分區是82 輸入82
- w 保存
3.格式化交換分區
- mkswap /dev/sdb6
4.啟用交換分區
- swapon /dev/sdb6:啟用
- swapoff /dev/sdb6:停止
分區的掛載
通過mount命令掛載的分區不具有永久性,重啟掛載就會失效,可以通過編輯etc目錄下的fstab配置文件,實現自動掛載
vim + /etc/fstab
配置文件:
[設備名稱] [掛載點] [文件系統類型] defaults 0 0
/dev/sdb1 /mnt/abc ext3 defaults 0 0
用戶管理
用戶和用戶組
用戶:使用操作系統的人
用戶組:具有相同系統權限的一組用戶
/etc/group:存儲當前系統中所有用戶組信息
/etc/gshadow:存儲當前系統中用戶組的密碼信息
/etc/passwd:存儲當前系統中所有用戶的信息
/etc/shadow:存儲當前系統中所有用戶的密碼信息
groupadd [用戶組名稱]:創建一個新的用戶組并命名
groupmod -n [信用戶組名稱] [舊用戶組名稱]:更改此用戶組名稱
groupmod -g [主編號] [組名稱]:修改組的主編號
grouped -g [主編號xxx] [組名稱n]:創建一個主編號為xxx,組名稱為n的用戶組
groupdel [組名稱]:刪除此用戶組,刪除之前要先刪用戶信息!
useradd -g [用戶組名n] [用戶名m]:在n用戶組里創一個m用戶
usermod -c [備注信息] [用戶名]:給用戶添加一個備注
usermod -l [新用戶名] [舊用戶名]:更改用戶名
usermod -d /home/[文件夾名] [用戶名]:為用戶創建一個文件夾
usermod -g [用戶組n] [用戶m(原本m沒在用戶組n中)]:將用戶m切換到n用戶組中
userdel [用戶名]:刪除用戶名
*userdel -r [用戶名]:刪除用戶名和它的相關文件
touch /etc/nologin:禁止用戶登錄服務器(除了root)
passwd -l [用戶名]:鎖定用戶
passwd -u [用戶名]:解鎖用戶
passed -d [用戶名]:清楚用戶密碼
主要組與附屬組
用戶可以同時屬于多個組
一個主要組
多個附屬組gpasswd -a [用戶名m] [附屬組名s]:將用戶m添加到附屬組s
gpasswd -d [用戶名m] [附屬組名s]:將用戶m從附屬組s刪除
newgrp [目標附屬組] :切換目標附屬組,加組密碼
useradd -g [主要組名稱] -G [附屬組名稱,可以寫多個,逗號鏈接]:創建一個用戶,為其分配主要組和附屬組
gpasswd [用戶組名稱]:設置組密碼
su [其他用戶名]:切換用戶名
id [用戶名]:顯示用戶名的信息
groups [用戶名]:顯示用戶所在的所有組
chin [用戶名]:設置用戶資料,依次輸入用戶資料
finger [用戶名]:顯示用戶詳細資料