前言
由于項目需要用到一些Linux相關(guān)知識石咬,故學(xué)習(xí)了一些Linux基本知識烦绳,如目錄結(jié)構(gòu)與常用指令等彪腔;
資料來源:B站《2021韓順平 一周學(xué)會Linux》
1. Linux目錄結(jié)構(gòu):
Linux的目錄結(jié)構(gòu)是核心內(nèi)容之一镀钓,在Linux里,一切皆文件濒翻。
目錄 | 說明 |
---|---|
/root | 【常用】超級管理員的主目錄; |
/bin | 【常用】Binary的縮寫剪验,存放最經(jīng)常使用的命令肴焊; |
/sbin | s是Super User的縮寫,存放系統(tǒng)管理員使用的系統(tǒng)管理程序功戚; |
/boot | 【常用】存放Linux啟動時的一些核心文件娶眷,包括連接文件與鏡像文件; |
/dev | 類似windows的設(shè)備管理器啸臀,把硬件用文件方式儲存届宠; |
/etc | 【常用】所有的系統(tǒng)管理所需要的配置文件和子目錄烁落,如安裝mysql數(shù)據(jù)庫的my.conf; |
/home | 【常用】存放普通用戶的主目錄豌注,在Linux中每個用戶都有一個自己的目錄伤塌,一般目錄名為賬號名; |
/var | 【常用】存放不斷擴(kuò)充的東西轧铁,習(xí)慣性將經(jīng)常被修改的目錄放在這個目錄下每聪,包括各種日志文件; |
/lib | 系統(tǒng)開機(jī)所需要最基本的動態(tài)連接共享庫齿风,作用類似于Windows里的DLL文件药薯。幾乎所有程序都要用到這些共享庫; |
/usr | 【常用】非常重要救斑,用戶的應(yīng)用程序與文件童本,類似于Windows下的program files目錄; |
/media | 【常用】Linux將識別的設(shè)備掛掛載在這個目錄下脸候,如:U盤穷娱、光驅(qū)等; |
/mnt | 【常用】系統(tǒng)提供該目錄是為了讓用戶臨時掛載別的文件系統(tǒng)运沦,可以將外部儲存掛載在/mnt/上泵额; |
/usr/local | 【常用】另一個給主機(jī)額外安裝軟件所安裝的目錄。一般通過編譯源碼方式安裝的程序茶袒; |
/lost+found | 一般情況下是空的梯刚,當(dāng)系統(tǒng)非法關(guān)機(jī)后,會存放一些文件薪寓; |
/tmp | 存放臨時文件亡资; |
/opt | 給主機(jī)額外安裝軟件所存放的目錄,如安裝Oracle數(shù)據(jù)庫可以安裝在此向叉。默認(rèn)的為空锥腻; |
/selinux | SELinux是一種安全子系統(tǒng),能控制程序只能訪問特定文件母谎,有三種工作模式瘦黑,可自行設(shè)置。 |
/proc | 【不能動】虛擬目錄奇唤,系統(tǒng)內(nèi)存的映射幸斥,訪問這個目錄來獲取系統(tǒng)信息; |
/srv | 【不能動】service的縮寫咬扇,存放一些服務(wù)啟動后需要提取的數(shù)據(jù)甲葬; |
/sys | 【不能動】Linux2.6內(nèi)核變化,該目錄下安裝了2.6內(nèi)核中新出現(xiàn)的文件系統(tǒng)sysfs懈贺; |
2. 運(yùn)行級別:
0:關(guān)機(jī)经窖;
1:單用戶【找回丟失密碼】
2:多用戶狀態(tài)沒有網(wǎng)絡(luò)服務(wù)(少用)坡垫;
3:多用戶有網(wǎng)絡(luò)狀態(tài)服務(wù)(經(jīng)常用);
4:系統(tǒng)未使用保留給用戶画侣;
5:圖形界面(常用)冰悠;
6:系統(tǒng)重啟;
init配乱、systemctl
命令 | 說明 |
---|---|
init 5 | 切換運(yùn)行級別為5溉卓; |
systemctl get-default | 查看當(dāng)前運(yùn)行級別; |
systemctl set-default TARGET.target | 設(shè)置運(yùn)行級別 |
TARGET:
在CentOS7后宪卿,在/etc/inittab文件中的诵,進(jìn)行了簡化:
multi-user.target
:類似于3万栅;
graphical.target
:相當(dāng)于5佑钾。
3. vim相關(guān)快捷鍵:
命令 | 說明 |
---|---|
vim XXX | 進(jìn)入XXX文件 -> “一般模式”; |
yy p | 復(fù)制黏貼烦粒; |
5yy p | 賦值黏貼以下5行休溶; |
dd | 刪除當(dāng)前行; |
u | 撤銷扰她; |
gg | 到首行兽掰; |
G | 到末行; |
20 shift鍵+g | 快速定位到20行徒役; |
i或a | “一般模式”-> “編輯模式”孽尽; |
ESC鍵 | “編輯模式” ->“一般模式”; |
: 或 / | “一般模式”-> “命令行模式”忧勿; |
:set nu | 設(shè)置行號杉女; |
:set nonu | 取消行號; |
/XXX | 查找XXX關(guān)鍵字鸳吸,n查找下個熏挎; |
:w | 保存; |
:q | 退出晌砾; |
:wq | 保存并退出坎拐; |
:q! | 強(qiáng)制退出不保存; |
ESC鍵 | “命令行模式”-> “一般模式”养匈; |
4. 開關(guān)機(jī)相關(guān)命令:
shutdowm哼勇、halt、reboot呕乎、sync积担、logout
命令 | 說明 |
---|---|
shutdowm -h now | 立刻關(guān)閉主機(jī); |
shutdowm -h 1 "一分鐘后關(guān)機(jī)" | 一分鐘后關(guān)機(jī)楣嘁,并顯示“一分鐘后關(guān)機(jī)”磅轻; |
shutdowm | 同上珍逸; |
shutdowm -r now | 立刻重啟主機(jī); |
halt | 關(guān)機(jī); |
reboot | 重啟钙蒙; |
sync | 把內(nèi)存數(shù)據(jù)同步到磁盤华坦; |
su - root | 切換root用戶; |
logout | 注銷當(dāng)前用戶/注銷漱病; |
5. 查看系統(tǒng)信息相關(guān)命令:
命令 | 說明 |
---|---|
uname -r | 查看Linux內(nèi)核版本; |
cat /etc/os-release | 查看系統(tǒng)配置把曼; |
cat /etc/redhat-release | 查看centOS版本杨帽; |
6. 用戶管理相關(guān)命令:
useradd、passwd嗤军、userdel注盈、id、su叙赚、logout
命令 | 說明 |
---|---|
useradd + 用戶名 | 添加用戶老客; |
useradd -d /home/test king | 添加King用戶,該用戶文件夾名為test震叮; |
passwd | 給當(dāng)前登錄用戶修改密碼胧砰; |
passwd + 用戶名 | 給指定用戶修改密碼; |
userdel + 用戶名 | 刪除用戶苇瓣,保留家目錄(一般情況即建議保留)尉间; |
userdel -r + 用戶名 | 【慎重】刪除用戶與家目錄; |
id + 用戶名 | 查詢用戶信息击罪; |
whoami | 查詢當(dāng)前登錄的用戶哲嘲,切換后還是之前的,下同外邓; |
who am i | 查詢當(dāng)前用戶信息撤蚊,登錄ip等; |
su + 用戶名 | 切換用戶(權(quán)限高向低不用密碼) |
logout或exit | 注銷當(dāng)前用戶/注銷损话,返回上一層侦啸; |
用戶組管理:
groupadd、usermod丧枪、groupdel
未指定組時默認(rèn)新建跟用戶名相同的組名光涂;
命令 | 說明 |
---|---|
groupadd + 組名 | 添加組名; |
useradd -g + 組名 + 用戶名 | 增加用戶時直接加上組拧烦; |
usermod -g + 組名 + 用戶名 | 修改用戶的組忘闻; |
groupdel + 組名 | 刪除組; |
用戶和組相關(guān)文件
目錄 | 說明 |
---|---|
/etc/password | 【用戶配置文件】每行含義:用戶名:口令:用戶標(biāo)識號:組標(biāo)識號:注釋性描述:主目錄:登錄Shell |
/etc/shadow | 【口令配置文件】每行含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標(biāo)志 |
/etc/group | 【組配置文件】每行含義:組名:口令:組標(biāo)識號:組內(nèi)用戶列表 |
7. 幫助指令:
man恋博、help
命令 | 說明 |
---|---|
man ls | 獲取幫助信息(按空格鍵換頁)齐佳,后續(xù)可以-a私恬; |
ls -a | 列出所有文件,包括以“.”開頭的隱藏文件炼吴; |
ls -l | 單列輸出文件本鸣,每一行一個文件(詳細(xì)); |
ls -la /root | 列出指定目錄/root的所有硅蹦、單列文件荣德; |
help | 獲取shell內(nèi)置命令的幫助信息; |
help cd | 獲取cd用法說明(英文)童芹,建議直接百度涮瞻; |
8. 文件目錄指令:
ls、pwd
命令 | 說明 |
---|---|
ls | 列出當(dāng)前目錄下目錄或文件假褪; |
ls -a | 列出所有文件署咽,包括以“.”開頭的隱藏文件; |
ls -l | 單列輸出文件嗜价,每一行一個文件(詳細(xì))艇抠; |
ls -h | 按照人能看懂的單位顯示文件;(大小等) |
ls -la /root | 列出指定目錄/root的所有久锥、單列文件; |
pwd | 顯示當(dāng)前用戶在哪個目錄下(絕對路徑)异剥; |
cd
命令 | 說明 |
---|---|
cd XXX | 進(jìn)入XXX文件夾瑟由; |
cd ~ | 返回到家目錄; |
cd .. | 返回當(dāng)前目錄是上一級目錄冤寿; |
cd /root | 回到root目錄歹苦; |
mkdir、touch
命令 | 說明 |
---|---|
mkdir | 創(chuàng)建目錄(文件夾)督怜; |
mkdir /home/dog | 在home下創(chuàng)建dog目錄殴瘦; |
mkdir -p /home/animal/dog | 創(chuàng)建多級目錄; |
touch hello.txt | 創(chuàng)建hello.txt空文件号杠; |
rmdir 蚪腋、rm
命令 | 說明 |
---|---|
rmdir + 路徑 | 刪除空目錄; |
rm -rf + 路徑 | 【謹(jǐn)慎】遞歸強(qiáng)制刪除非空目錄(-r 遞歸)(-f 強(qiáng)制不提示)姨蟋; |
cp屉凯、\cp
命令 | 說明 |
---|---|
cp hello.txt bbb/ | 將hello.txt復(fù)制到bbb文件夾下; |
cp -r /home/bbb /opt | 將/home/bbb整個目錄拷貝到/opt眼溶; |
\cp -r /home/bbb /opt | 【謹(jǐn)慎】強(qiáng)制覆蓋不提示悠砚; |
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文件內(nèi)容; |
cat -n /etc/profile | 查看/etc/profile文件內(nèi)容宗苍,顯示行號稼稿; |
cat -n /etc/profile | more | 管道命令 | more,將前面指令交給后面處理讳窟;(enter下一行让歼,空格翻頁,q離開丽啡,=輸出當(dāng)前行號谋右,:f輸出文件名和當(dāng)前行號,Ctrl+F向下滾動一屏补箍,Ctrl+B返回上一屏) |
more /etc/bashrc | 用more指令操作/etc/bashrc改执; |
less
命令 | 說明 |
---|---|
less | 類似more,動態(tài)加載坑雅; |
less 雜文.txt | 采用less查看大型文件/opt/ 雜文.txt辈挂;(空格鍵下一頁,pagedowm下翻一頁裹粤,pageup上翻一頁终蒂,q退出,/字符串 向下搜索字符串 n向下 N向上) |
echo
命令 | 說明 |
---|---|
echo | 輸出內(nèi)容到控制臺遥诉; |
echo $PATH | 輸出環(huán)境變量拇泣; |
echo $HOSTNAME | 輸出主機(jī)名; |
echo "hello world" | 輸出hello world到控制臺矮锈; |
head霉翔、tail
命令 | 說明 |
---|---|
head + 文件 | 顯示文件開頭部分,默認(rèn)顯示前10行苞笨; |
head -n 5 文件 | 查看文件前5行 |
tail+ 文件 | 查看文件尾10行债朵; |
tail -n 5 文件 | 查看文件尾5行; |
tail -f 文件 | 實時追蹤該文檔的所有更新猫缭; |
>葱弟、>>
命令 | 說明 |
---|---|
> | 輸出重定向(覆蓋); |
>> | 追加猜丹; |
echo “hello” > /home/mydate.txt | 將控制臺輸出內(nèi)容hello重定向輸入到mydate.txt文件芝加; |
ls -a > a.txt | 列表的內(nèi)容寫入a.txt中(覆蓋寫,文件不存在則自動創(chuàng)建); |
ls -al >> aa.txt | 列表的內(nèi)容追加到aa.txt的末尾藏杖; |
cat 文件1 > 文件2 | 將文件1的內(nèi)容覆蓋到文件2将塑; |
cal >> /home/mycal | 將當(dāng)前日歷信息追加到/home/mycal中; |
ln
命令 | 說明 |
---|---|
ln -s /root/ /home/myroot | 在/home目錄下創(chuàng)建一個軟連接myroot蝌麸,連接到/root目錄点寥; |
rm /home/myroot | 刪除軟連接myroot; |
history
命令 | 說明 |
---|---|
history | 查看已執(zhí)行歷史命令来吩,也可執(zhí)行歷史命令敢辩; |
history 10 | 顯示最近10條歷史命令; |
!5 | 執(zhí)行歷史編號為5的指令弟疆; |
9. 日期類指令:
date戚长、cal
命令 | 說明 |
---|---|
date | 顯示當(dāng)前時間; |
date "+%Y" | 顯示當(dāng)前年份怠苔; |
date "+%m" | 顯示當(dāng)前月份同廉; |
date "+%d" | 顯示當(dāng)前是哪一天; |
date "+%Y-%m-%d %H:%M:%S" | 顯示年月日柑司、時分秒迫肖; |
date -s "2021-07-09 14:33:10" | 設(shè)置日期為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系統(tǒng)下大于200M的文件;(+n大于 -n小于 n等于晦鞋,單位有k M G) |
updatedb | 將文件形成locate數(shù)據(jù)庫蹲缠,使用locate查詢必須先updatedb; |
locate | 快速定位文件路徑(快速悠垛、需要定期updatedb)线定; |
locate hello.txt | 快速定位hello.txt文件所在目錄; |
which | 可以查看某個指令在哪個目錄下确买; |
which ls | 查找ls指令在哪個目錄下斤讥; |
grep | 過濾查找,與管道符"|"湾趾,一起用芭商,表示將前一個命令的處理結(jié)果輸出傳遞給后面命令處理派草; |
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”所在行岸浑,并且不區(qū)分大小寫搏存; |
11. 壓縮與解壓類指令:
gzip、gunzip助琐、zip祭埂、unzip、tar
命令 | 說明 |
---|---|
gzip | 壓縮文件(只能壓縮成 *.gz文件)兵钮; |
gzip /home/hello.txt | 將/home下的hello.txt文件進(jìn)行壓縮(只能壓縮成 *.gz文件)蛆橡; |
gunzip /home/hellow.txt.gz | 將/home下的hello.txt.gz文件進(jìn)行解壓; |
zip | 用于壓縮文件或文件夾(-r遞歸壓縮 -d指定解壓后存放目錄)掘譬; |
zip -r myhome.zip /home/ | 將/home下的所有文件進(jìn)行壓縮成myhome.zip泰演;(包括home文件夾本身) |
unzip -d /opt/tmp /home/myhome.zip | 將/home/myhome.zip解壓到/opt/tmp目錄下; |
tar | 打包葱轩,將文件打包成 .tar.gz睦焕;(-c產(chǎn)生.tar打包文件 -v顯示詳細(xì)信息 -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 解壓到當(dāng)前目錄,切換到 /opt/袜炕; |
tar -zxvf /home/myhome.tar.gz -c /opt/tmp2 | 將 myhome.tar.gz 解壓到 /opt/tmp2 目錄下本谜; |