@
前言
由於項目需要用到一些Linux相關知識,故學習了一些Linux基本知識,如目錄結構與常用指令等;
資料來源:B站《2021韓順平 一周學會Linux》
1. Linux目錄結構:
Linux的目錄結構是核心內容之一,在Linux里,一切皆文件。

目錄 |
說明 |
/root |
【常用】超級管理員的主目錄; |
/bin |
【常用】Binary的縮寫,存放最經常使用的命令; |
/sbin |
s是Super User的縮寫,存放系統管理員使用的系統管理程序; |
/boot |
【常用】存放Linux啟動時的一些核心文件,包括連接文件與鏡像文件; |
/dev |
類似windows的設備管理器,把硬件用文件方式儲存; |
/etc |
【常用】所有的系統管理所需要的配置文件和子目錄,如安裝mysql數據庫的my.conf; |
/home |
【常用】存放普通用戶的主目錄,在Linux中每個用戶都有一個自己的目錄,一般目錄名為賬號名; |
/var |
【常用】存放不斷擴充的東西,習慣性將經常被修改的目錄放在這個目錄下,包括各種日志文件; |
/lib |
系統開機所需要最基本的動態連接共享庫,作用類似於Windows里的DLL文件。幾乎所有程序都要用到這些共享庫; |
/usr |
【常用】非常重要,用戶的應用程序與文件,類似於Windows下的program files目錄; |
/media |
【常用】Linux將識別的設備掛掛載在這個目錄下,如:U盤、光驅等; |
|
|
/mnt |
【常用】系統提供該目錄是為了讓用戶臨時掛載別的文件系統,可以將外部儲存掛載在/mnt/上; |
/usr/local |
【常用】另一個給主機額外安裝軟件所安裝的目錄。一般通過編譯源碼方式安裝的程序; |
|
|
/lost+found |
一般情況下是空的,當系統非法關機后,會存放一些文件; |
/tmp |
存放臨時文件; |
/opt |
給主機額外安裝軟件所存放的目錄,如安裝Oracle數據庫可以安裝在此。默認的為空; |
/selinux |
SELinux是一種安全子系統,能控制程序只能訪問特定文件,有三種工作模式,可自行設置。 |
|
|
/proc |
【不能動】虛擬目錄,系統內存的映射,訪問這個目錄來獲取系統信息; |
/srv |
【不能動】service的縮寫,存放一些服務啟動后需要提取的數據; |
/sys |
【不能動】Linux2.6內核變化,該目錄下安裝了2.6內核中新出現的文件系統sysfs; |
2. 運行級別:
-
0:關機;
-
1:單用戶【找回丟失密碼】
-
2:多用戶狀態沒有網絡服務(少用);
-
3:多用戶有網絡狀態服務(經常用);
-
4:系統未使用保留給用戶;
-
5:圖形界面(常用);
-
6:系統重啟;
init、systemctl
命令 |
說明 |
init 5 |
切換運行級別為5; |
|
|
systemctl get-default |
查看當前運行級別; |
systemctl set-default TARGET.target |
設置運行級別 |
TARGET:
在CentOS7后,在/etc/inittab文件中,進行了簡化:
multi-user.target
:類似於3;
graphical.target
:相當於5。
3. vim相關快捷鍵:
命令 |
說明 |
vim XXX |
進入XXX文件 -> “一般模式”; |
yy p |
復制黏貼; |
5yy p |
賦值黏貼以下5行; |
dd |
刪除當前行; |
u |
撤銷; |
gg |
到首行; |
G |
到末行; |
20 shift鍵+g |
快速定位到20行; |
i或a |
“一般模式”-> “編輯模式”; |
|
|
ESC鍵 |
“編輯模式” ->“一般模式”; |
|
|
: 或 / |
“一般模式”-> “命令行模式”; |
:set nu |
設置行號; |
:set nonu |
取消行號; |
/XXX |
查找XXX關鍵字,n查找下個; |
:w |
保存; |
:q |
退出; |
:wq |
保存並退出; |
:q! |
強制退出不保存; |
ESC鍵 |
“命令行模式”-> “一般模式”; |
4. 開關機相關命令:
shutdowm、halt、reboot、sync、logout
命令 |
說明 |
shutdowm -h now |
立刻關閉主機; |
shutdowm -h 1 "一分鍾后關機" |
一分鍾后關機,並顯示“一分鍾后關機”; |
shutdowm |
同上; |
shutdowm -r now |
立刻重啟主機; |
halt |
關機; |
reboot |
重啟; |
sync |
把內存數據同步到磁盤; |
|
|
su - root |
切換root用戶; |
logout |
注銷當前用戶/注銷; |
5. 查看系統信息相關命令:
命令 |
說明 |
uname -r |
查看Linux內核版本; |
cat /etc/os-release |
查看系統配置; |
cat /etc/redhat-release |
查看centOS版本; |
6. 用戶管理相關命令:
useradd、passwd、userdel、id、su、logout
命令 |
說明 |
useradd + 用戶名 |
添加用戶; |
useradd -d /home/test king |
添加King用戶,該用戶文件夾名為test; |
|
|
passwd |
給當前登錄用戶修改密碼; |
passwd + 用戶名 |
給指定用戶修改密碼; |
|
|
userdel + 用戶名 |
刪除用戶,保留家目錄(一般情況即建議保留); |
userdel -r + 用戶名 |
【慎重】刪除用戶與家目錄; |
|
|
id + 用戶名 |
查詢用戶信息; |
whoami |
查詢當前登錄的用戶,切換后還是之前的,下同; |
who am i |
查詢當前用戶信息,登錄ip等; |
|
|
su + 用戶名 |
切換用戶(權限高向低不用密碼) |
logout或exit |
注銷當前用戶/注銷,返回上一層; |
用戶組管理:
groupadd、usermod、groupdel
未指定組時默認新建跟用戶名相同的組名;
命令 |
說明 |
groupadd + 組名 |
添加組名; |
useradd -g + 組名 + 用戶名 |
增加用戶時直接加上組; |
|
|
usermod -g + 組名 + 用戶名 |
修改用戶的組; |
|
|
groupdel + 組名 |
刪除組; |
用戶和組相關文件
目錄 |
說明 |
/etc/password |
【用戶配置文件】每行含義:用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell |
/etc/shadow |
【口令配置文件】每行含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志 |
/etc/group |
【組配置文件】每行含義:組名:口令:組標識號:組內用戶列表 |
7. 幫助指令:
man、help
命令 |
說明 |
man ls |
獲取幫助信息(按空格鍵換頁),后續可以-a; |
ls -a |
列出所有文件,包括以“.”開頭的隱藏文件; |
ls -l |
單列輸出文件,每一行一個文件(詳細); |
ls -la /root |
列出指定目錄/root的所有、單列文件; |
|
|
help |
獲取shell內置命令的幫助信息; |
help cd |
獲取cd用法說明(英文),建議直接百度; |
8. 文件目錄指令:
ls、pwd
命令 |
說明 |
ls |
列出當前目錄下目錄或文件; |
ls -a |
列出所有文件,包括以“.”開頭的隱藏文件; |
ls -l |
單列輸出文件,每一行一個文件(詳細); |
ls -h |
按照人能看懂的單位顯示文件;(大小等) |
ls -la /root |
列出指定目錄/root的所有、單列文件; |
|
|
pwd |
顯示當前用戶在哪個目錄下(絕對路徑); |
cd
命令 |
說明 |
cd XXX |
進入XXX文件夾; |
cd ~ |
返回到家目錄; |
cd .. |
返回當前目錄是上一級目錄; |
cd /root |
回到root目錄; |
mkdir、touch
命令 |
說明 |
mkdir |
創建目錄(文件夾); |
mkdir /home/dog |
在home下創建dog目錄; |
mkdir -p /home/animal/dog |
創建多級目錄; |
|
|
touch hello.txt |
創建hello.txt空文件; |
rmdir 、rm
命令 |
說明 |
rmdir + 路徑 |
刪除空目錄; |
rm -rf + 路徑 |
【謹慎】遞歸強制刪除非空目錄(-r 遞歸)(-f 強制不提示); |
cp、\cp
命令 |
說明 |
cp hello.txt bbb/ |
將hello.txt復制到bbb文件夾下; |
cp -r /home/bbb /opt |
將/home/bbb整個目錄拷貝到/opt; |
\cp -r /home/bbb /opt |
【謹慎】強制覆蓋不提示; |
mv
命令 |
說明 |
mv cat.txt pig.txt |
兩個文件在同一級目錄下,重命名; |
mv pig.txt /root/ |
兩個文件在不同級目錄下,移動文件(剪切); |
mv pig.txt /root/pig.txt |
移動並重命名; |
mv bbb/ /home/ |
將/bbb整個目錄移動到/home下; |
cat、more
命令 |
說明 |
cat /etc/profile |
【推薦】查看/etc/profile文件內容; |
cat -n /etc/profile |
查看/etc/profile文件內容,顯示行號; |
cat -n /etc/profile | more |
管道命令 | more,將前面指令交給后面處理;(enter下一行,空格翻頁,q離開,=輸出當前行號,:f輸出文件名和當前行號,Ctrl+F向下滾動一屏,Ctrl+B返回上一屏) |
more /etc/bashrc |
用more指令操作/etc/bashrc; |
less
命令 |
說明 |
less |
類似more,動態加載; |
less 雜文.txt |
采用less查看大型文件/opt/ 雜文.txt;(空格鍵下一頁,pagedowm下翻一頁,pageup上翻一頁,q退出,/字符串 向下搜索字符串 n向下 N向上) |
echo
命令 |
說明 |
echo |
輸出內容到控制台; |
echo $PATH |
輸出環境變量; |
echo $HOSTNAME |
輸出主機名; |
echo "hello world" |
輸出hello world到控制台; |
head、tail
命令 |
說明 |
head + 文件 |
顯示文件開頭部分,默認顯示前10行; |
head -n 5 文件 |
查看文件前5行 |
|
|
tail+ 文件 |
查看文件尾10行; |
tail -n 5 文件 |
查看文件尾5行; |
tail -f 文件 |
實時追蹤該文檔的所有更新; |
>、>>
命令 |
說明 |
> |
輸出重定向(覆蓋); |
>> |
追加; |
echo “hello” > /home/mydate.txt |
將控制台輸出內容hello重定向輸入到mydate.txt文件; |
ls -a > a.txt |
列表的內容寫入a.txt中(覆蓋寫,文件不存在則自動創建); |
ls -al >> aa.txt |
列表的內容追加到aa.txt的末尾; |
cat 文件1 > 文件2 |
將文件1的內容覆蓋到文件2; |
cal >> /home/mycal |
將當前日歷信息追加到/home/mycal中; |
ln
命令 |
說明 |
ln -s /root/ /home/myroot |
在/home目錄下創建一個軟連接myroot,連接到/root目錄; |
rm /home/myroot |
刪除軟連接myroot; |
history
命令 |
說明 |
history |
查看已執行歷史命令,也可執行歷史命令; |
history 10 |
顯示最近10條歷史命令; |
!5 |
執行歷史編號為5的指令; |
9. 日期類指令:
date、cal
命令 |
說明 |
date |
顯示當前時間; |
date "+%Y" |
顯示當前年份; |
date "+%m" |
顯示當前月份; |
date "+%d" |
顯示當前是哪一天; |
date "+%Y-%m-%d %H:%M:%S" |
顯示年月日、時分秒; |
|
|
date -s "2021-07-09 14:33:10" |
設置日期為2021-07-09 14:33:10; |
|
|
cal |
顯示日歷; |
cal 2021 |
顯示2021年日歷; |
10. 搜索查找類指令:
find、locate(updatedb)、which、grep
命令 |
說明 |
find |
從指定目錄向下遞歸遍歷其各個子目錄,將滿足條件文件或目錄顯示在終端; |
find /home -name hellow.txt |
查找/home下的hello.txt文件; |
find /opt - user nobody |
查找/opt目錄下,用戶名為nobody的文件; |
find / -size +200M |
查找整個linux系統下大於200M的文件;(+n大於 -n小於 n等於,單位有k M G) |
|
|
updatedb |
將文件形成locate數據庫,使用locate查詢必須先updatedb; |
locate |
快速定位文件路徑(快速、需要定期updatedb); |
locate hello.txt |
快速定位hello.txt文件所在目錄; |
|
|
which |
可以查看某個指令在哪個目錄下; |
which ls |
查找ls指令在哪個目錄下; |
|
|
grep |
過濾查找,與管道符"|",一起用,表示將前一個命令的處理結果輸出傳遞給后面命令處理; |
cat /home/hello.txt | grep "yes" |
在hello.txt文件中,查找“yes”所在行; |
cat /home/hello.txt | grep -n "yes" |
在hello.txt文件中,查找“yes”所在行,並且顯示行號; |
grep -n "yes" /home/hello.txt |
同上; |
cat /home/hello.txt | grep -i "yes" |
在hello.txt文件中,查找“yes”所在行,並且不區分大小寫; |
11. 壓縮與解壓類指令:
gzip、gunzip、zip、unzip、tar
命令 |
說明 |
gzip |
壓縮文件(只能壓縮成 *.gz文件); |
gzip /home/hello.txt |
將/home下的hello.txt文件進行壓縮(只能壓縮成 *.gz文件); |
gunzip /home/hellow.txt.gz |
將/home下的hello.txt.gz文件進行解壓; |
|
|
zip |
用於壓縮文件或文件夾(-r遞歸壓縮 -d指定解壓后存放目錄); |
zip -r myhome.zip /home/ |
將/home下的所有文件進行壓縮成myhome.zip;(包括home文件夾本身) |
unzip -d /opt/tmp /home/myhome.zip |
將/home/myhome.zip解壓到/opt/tmp目錄下; |
|
|
tar |
打包,將文件打包成 .tar.gz;(-c產生.tar打包文件 -v顯示詳細信息 -f指定壓縮后的文件名 -z打包的同時壓縮 -x解包.tar文件) |
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt |
壓縮多個文件,將 /home/pig.txt 和 /home/cat.txt 壓縮成 pc.tar.gz; |
tar -zcvf myhome.tar.gz /home/ |
將 /home 的文件壓縮成 myhome.tar.gz; |
tar -zxvf pc.tar.gz |
將 pc.tar.gz 解壓到當前目錄,切換到 /opt/; |
tar -zxvf /home/myhome.tar.gz -c /opt/tmp2 |
將 myhome.tar.gz 解壓到 /opt/tmp2 目錄下; |
最后
新人制作,如有錯誤,歡迎指出,感激不盡!
歡迎關注公眾號,會分享一些更日常的東西!
如需轉載,請標注出處!