Linux常用指令總結(jié)

Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)
特點(diǎn):Linux里面的一切皆是文件,文件沒有后綴名這么一說
1、樹狀目錄結(jié)構(gòu)
/bin:是Binary的縮寫,這個(gè)目錄存放著系統(tǒng)必備執(zhí)行命令
/boot:這里存放的是啟動(dòng)Linux時(shí)使用的一些核心文件,包括一些連接文件以及鏡像文件,自己的安裝別放這里
/dev:Device(設(shè)備)的縮寫,該目錄下存放的是Linux的外部設(shè)備,在Linux中訪問設(shè)備的方式和訪問文件的方式是相同的。
/etc:所有的系統(tǒng)管理所需要的配置文件和子目錄。
/home:存放普通用戶的主目錄,在Linux中每個(gè)用戶都有一個(gè)自己的目錄,一般該目錄名是以用戶的賬號命名的。
/lib:系統(tǒng)開機(jī)所需要最基本的動(dòng)態(tài)連接共享庫,其作用類似于Windows里的DLL文件。幾乎所有的應(yīng)用程序都需要用到這些共享庫。
/lost+found:這個(gè)目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些文件。
/media:linux系統(tǒng)會(huì)自動(dòng)識別一些設(shè)備,例如U盤、光驅(qū)等等,當(dāng)識別后,linux會(huì)把識別的設(shè)備掛載到這個(gè)目錄下。
/misc: 該目錄可以用來存放雜項(xiàng)文件或目錄,即那些用途或含義不明確的文件或目錄可以存放在該目錄下。
/mnt:系統(tǒng)提供該目錄是為了讓用戶臨時(shí)掛載別的文件系統(tǒng)的,我們可以將光驅(qū)掛載在/mnt/上,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了。
/net 存放著和網(wǎng)絡(luò)相關(guān)的一些文件.
/opt:這是給主機(jī)額外安裝軟件所擺放的目錄。比如你安裝一個(gè)ORACLE數(shù)據(jù)庫則就可以放到這個(gè)目錄下。默認(rèn)是空的。
/proc:這個(gè)目錄是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,我們可以通過直接訪問這個(gè)目錄來獲取系統(tǒng)信息。
/root:該目錄為系統(tǒng)管理員,也稱作超級權(quán)限者的用戶主目錄。
/sbin:s就是Super User的意思,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序。
/selinux:這個(gè)目錄是Redhat/CentOS所特有的目錄,Selinux是一個(gè)安全機(jī)制,類似于windows的防火墻
/srv:service縮寫,該目錄存放一些服務(wù)啟動(dòng)之后需要提取的數(shù)據(jù)。
/sys:這是linux2.6內(nèi)核的一個(gè)很大的變化。該目錄下安裝了2.6內(nèi)核中新出現(xiàn)的一個(gè)文件系統(tǒng) sysfs 。
/tmp:這個(gè)目錄是用來存放一些臨時(shí)文件的。
/usr:這是一個(gè)非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下,類似于windows下的program files目錄。
/var:這個(gè)目錄中存放著在不斷擴(kuò)充著的東西,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個(gè)目錄下。包括各種日志文件。
2、VI/Vim編輯器
2.1一般模式
yy 復(fù)制當(dāng)前一行
2.2編輯模式
進(jìn)入編輯模式:vim 文件名 i 當(dāng)前光標(biāo)前 a 當(dāng)前光標(biāo)后 o 當(dāng)前光標(biāo)的下一行 退出編輯模式 ESC
2.3指令模式
:選項(xiàng) w 保存 q 退出 wq 保存退出 wq!強(qiáng)制保存退出 / 選項(xiàng) /被查找詞,n是查找下一個(gè)。shift+n是往上查找 ?被查找詞,n是查找上一個(gè),shift+n是往下查找
3、常用的基本命令
3.1目錄和文件的操作
pwd 顯示當(dāng)前工作目錄的絕對路徑 ls 列出目錄的內(nèi)容
-a :全部的文件,連同隱藏檔( 開頭為 . 的文件) 一起列出來(常用)
-l :長數(shù)據(jù)串列出,包含文件的屬性與權(quán)限等等數(shù)據(jù);(常用)
mkdir 創(chuàng)建一個(gè)新的目錄
mkdir 目錄
mkdir -p 創(chuàng)建多層目錄
rmdir 刪除一個(gè)空的目錄
rmdir 要?jiǎng)h除的空目錄
cd 切換目錄
(1)cd 絕對路徑
(2)cd 相對路徑
(3)cd ~或者cd (功能描述:回到自己的家目錄)
(4)cd - (功能描述:回到上一次所在目錄)
(5)cd .. (功能描述:回到當(dāng)前目錄的上一級目錄)
(6)cd -P (功能描述:跳轉(zhuǎn)到實(shí)際物理路徑,而非快捷方式路徑)
cp 復(fù)制文件或目錄
(1)cp source dest (功能描述:復(fù)制source文件到dest)
(2)cp -r sourceFolder targetFolder (功能描述:遞歸復(fù)制整個(gè)文件夾)
rm 移除文件或目錄
(1)rmdir deleteEmptyFolder (功能描述:刪除空目錄)
(2)rm -rf deleteFile (功能描述:遞歸刪除目錄中所有內(nèi)容)
mv 移動(dòng)文件與目錄或重命名
(1)mv oldNameFile newNameFile (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移動(dòng)文件)
cat 查看文件內(nèi)容: cat [選項(xiàng)] 要查看的文件,查看文件的命令還有tail(內(nèi)容從后向前顯示);more(一頁一頁的喜愛你是文件的內(nèi)容);less(與more類似);head(只看頭幾行)
-A :相當(dāng)于 -vET 的整合選項(xiàng),可列出一些特殊字符而不是空白而已;
-b :列出行號,僅針對非空白行做行號顯示,空白行不標(biāo)行號!
-E :將結(jié)尾的斷行字節(jié) $ 顯示出來;
-n :列出行號,連同空白行也會(huì)有行號,與 -b 的選項(xiàng)不同;
-T :將 [tab] 按鍵以 ^I 顯示出來;
-v :列出一些看不出來的特殊字符
touch 創(chuàng)建空文件
touch 文件名稱
重定向命令
(1)ls –l >文件 (功能描述:列表的內(nèi)容寫入文件a.txt中(覆蓋寫))
(2)ls –al >>文件 (功能描述:列表的內(nèi)容追加到文件aa.txt的末尾)
echo
(1)echo 要顯示的內(nèi)容 >> 存儲(chǔ)內(nèi)容的的文件 (功能描述:將要顯示的內(nèi)容,存儲(chǔ)到文件中)
(2)echo 變量 (功能描述:顯示變量的值)
ln軟鏈接
ln –s [原文件] [目標(biāo)文件] (功能描述:給原文件創(chuàng)建一個(gè)軟鏈接,軟鏈接存放在目標(biāo)文件目錄)
history 查看所敲命令歷史
3.2時(shí)間日期
date顯示當(dāng)前時(shí)間
(1)date (功能描述:顯示當(dāng)前時(shí)間)
(2)date +%Y (功能描述:顯示當(dāng)前年份)
(3)date +%m (功能描述:顯示當(dāng)前月份)
(4)date +%d (功能描述:顯示當(dāng)前是哪一天)
(5)date +%Y%m%d date +%Y/%m/%d … (功能描述:顯示當(dāng)前年月日各種格式 )
(6)date "+%Y-%m-%d %H:%M:%S" (功能描述:顯示年月日時(shí)分秒)
date顯示非當(dāng)前時(shí)間
(1)date -d '1 days ago' (功能描述:顯示前一天日期)
(2)date -d yesterday +%Y%m%d (同上)
(3)date -d next-day +%Y%m%d (功能描述:顯示明天日期)
(4)date -d 'next monday' (功能描述:顯示下周一時(shí)間)
date設(shè)置系統(tǒng)時(shí)間
date -s 字符串時(shí)間
如date -s "2017-06-19 20:52:18"
cal查看日歷
cal [選項(xiàng)] (功能描述:不加選項(xiàng),顯示本月日歷)
3.3用戶管理命令
useradd 添加新用戶
useradd 用戶名 (功能描述:添加新用戶)
passwd 設(shè)置用戶密碼
passwd 用戶名 (功能描述:設(shè)置用戶密碼)
id 判斷用戶是否存在
id 用戶名
su 切換用戶
su 用戶名稱 (功能描述:切換用戶)
userdel 刪除用戶
(1)userdel 用戶名 (功能描述:刪除用戶但保存用戶主目錄)
(2)userdel -r 用戶名 (功能描述:用戶和用戶主目錄,都刪除)
who 查看登錄用戶信息
(1)whoami (功能描述:顯示自身用戶名稱)
(2)who am i (功能描述:顯示登錄用戶的用戶名)
(3)who (功能描述:看當(dāng)前有哪些用戶登錄到了本臺(tái)機(jī)器上)
設(shè)置simon普通用戶具有root權(quán)限
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
Allow root to run any commands anywhere
root ALL=(ALL) ALL simon ALL=(ALL) ALL 修改完畢,現(xiàn)在可以用atguigu帳號登錄,然后用命令 su - ,即可獲得root權(quán)限進(jìn)行操作。
cat /etc/passwd 查看創(chuàng)建了哪些組
usermod修改用戶
usermod -g 用戶組 用戶名
例:將用戶simon加入dev用戶組
4、用戶組管理命令
groupadd 新增組
groupadd 組名
例子:添加一個(gè)simon組
groupdel刪除組
groupdel 組名
groupmod修改組
groupmod -n 新組名 老組名
cat /etc/group 查看創(chuàng)建了哪些組
5、文件權(quán)限
操作系統(tǒng)中每個(gè)文件都擁有特定的權(quán)限、所屬用戶和所屬組。權(quán)限是操作系統(tǒng)用來限制資源訪問的機(jī)制,在 Linux 中權(quán)限一般分為讀(readable)、寫(writable)和執(zhí)行(excutable),分為三組。分別對應(yīng)文件的屬主(owner),屬組(group)和其他用戶(other),通過這樣的機(jī)制來限制哪些用戶、哪些組可以對特定的文件進(jìn)行什么樣的操作。

第一列的內(nèi)容的信息解釋如下:

文件的類型:
d:代表目錄 -:代表文件 l:代表軟鏈接(可以認(rèn)為是 window 中的快捷方式)
Linux 中權(quán)限分為以下幾種:
r:代表權(quán)限是可讀,r 也可以用數(shù)字 4 表示 w:代表權(quán)限是可寫,w 也可以用數(shù)字 2 表示 x:代表權(quán)限是可執(zhí)行,x 也可以用數(shù)字 1 表示
文件和目錄權(quán)限的區(qū)別:
對文件和目錄而言,讀寫執(zhí)行表示不同的意義。
對于文件:
| 權(quán)限名稱 | 可執(zhí)行操作 |
|---|---|
| r | 可以使用 cat 查看文件的內(nèi)容 |
| w | 可以修改文件的內(nèi)容 |
| x | 可以將其運(yùn)行為二進(jìn)制文件 |
對于目錄:
| 權(quán)限名稱 | 可執(zhí)行操作 |
|---|---|
| r | 可以查看目錄下列表 |
| w | 可以創(chuàng)建和刪除目錄下文件 |
| x | 可以使用 cd 進(jìn)入目錄 |
需要注意的是:超級用戶可以無視普通用戶的權(quán)限,即使文件目錄權(quán)限是 000,依舊可以訪問。
在 linux 中的每個(gè)用戶必須屬于一個(gè)組,不能獨(dú)立于組外。在 linux 中每個(gè)文件有所有者、所在組、其它組的概念。
所有者(u) :一般為文件的創(chuàng)建者,誰創(chuàng)建了該文件,就天然的成為該文件的所有者,用 ls ‐ahl命令可以看到文件的所有者 也可以使用 chown 用戶名 文件名來修改文件的所有者 。文件所在組(g) :當(dāng)某個(gè)用戶創(chuàng)建了一個(gè)文件后,這個(gè)文件的所在組就是該用戶所在的組用 ls ‐ahl命令可以看到文件的所有組也可以使用 chgrp 組名 文件名來修改文件所在的組。其它組(o) :除開文件的所有者和所在組的用戶外,系統(tǒng)的其它用戶都是文件的其它組。
我們再來看看如何修改文件/目錄的權(quán)限。
修改文件/目錄的權(quán)限的命令:chmod
示例:修改/test 下的 aaa.txt 的權(quán)限為文件所有者有全部權(quán)限,文件所有者所在的組有讀寫權(quán)限,其他用戶只有讀的權(quán)限。
chmod u=rwx,g=rw,o=r aaa.txt 或者 chmod 764 aaa.txt

chown改變所有者
chown [最終用戶] [文件或目錄] (功能描述:改變文件或者目錄的所有者)
chgrp改變所屬組
chgrp [最終用戶組] [文件或目錄] (功能描述:改變文件或者目錄的所屬組)
6、磁盤分區(qū)
fdisk查看分區(qū)
fdisk –l (功能描述:查看磁盤分區(qū)詳情)
df查看硬盤
df 參數(shù) (功能描述:查看磁盤使用情況)
-a :列出所有的文件系統(tǒng),包括系統(tǒng)特有的 /proc 等文件系統(tǒng);
-k :以 KBytes 的容量顯示各文件系統(tǒng);
-m :以 MBytes 的容量顯示各文件系統(tǒng);
-h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
-H :以 M=1000K 取代 M=1024K 的進(jìn)位方式;
mount/umount掛載/卸載
7、搜索查找
find 查找文件或者目錄
find [搜索范圍] [匹配條件]
grep 在文件內(nèi)搜索字符串匹配的行并輸出
grep+參數(shù)+查找內(nèi)容+源文件
-n:顯示匹配行及行號。
案例:ls | grep -n test
which 文件搜索命令
which 命令 (功能描述:搜索命令所在目錄及別名信息)
which ls /bin/ls
8、進(jìn)程和線程
進(jìn)程是正在執(zhí)行的一個(gè)程序或命令,每一個(gè)進(jìn)程都是一個(gè)運(yùn)行的實(shí)體,都有自己的地址空間,并占用一定的系統(tǒng)資源。
ps查看系統(tǒng)中所有進(jìn)程 top查看系統(tǒng)健康狀態(tài) pstree查看進(jìn)程樹
pstree [選項(xiàng)]
-p: 顯示進(jìn)程的PID
-u: 顯示進(jìn)程的所屬用戶
kill終止進(jìn)程
kill -9 pid進(jìn)程號
-9 表示強(qiáng)迫進(jìn)程立即停止
netstat顯示網(wǎng)絡(luò)統(tǒng)計(jì)信息
netstat –anp (功能描述:此命令用來顯示整個(gè)系統(tǒng)目前的網(wǎng)絡(luò)情況。例如目前的連接、數(shù)據(jù)包傳遞數(shù)據(jù)、或是路由表內(nèi)容)
9、壓縮和解壓
gzip/gunzip壓縮
gzip+文件 (功能描述:壓縮文件,只能將文件壓縮為*.gz文件)
gunzip+文件.gz (功能描述:解壓縮文件命令)
zip/unzip壓縮
zip + 參數(shù) + XXX.zip + 將要壓縮的內(nèi)容 (功能描述:壓縮文件和目錄的命令,window/linux通用且可以壓縮目錄且保留源文件)
例子:zip test.zip test1.java test.java
tar打包
tar + 參數(shù) + XXX.tar.gz + 將要打包進(jìn)去的內(nèi)容 (功能描述:打包目錄,壓縮后的文件格式.tar.gz)
-c 產(chǎn)生.tar打包文件
-v 顯示詳細(xì)信息
-f 指定壓縮后的文件名
-z 打包同時(shí)壓縮
-x 解包.tar文件
案例:
(1)壓縮:tar -zcvf XXX.tar.gz n1.txt n2.txt
(2)解壓:tar -zxvf XXX.tar.gz -C 解壓目的地
10、后臺(tái)服務(wù)管理
service后臺(tái)服務(wù)管理
1)查看指定服務(wù)的狀態(tài)service network status
2)停止指定服務(wù)service network stop
3) 啟動(dòng)指定服務(wù)service network start
4)重啟指定服務(wù)service network restart
5)查看系統(tǒng)中所有的后臺(tái)服務(wù)service --status-all
chkconfig設(shè)置后臺(tái)服務(wù)的自啟配置
1)查看所有服務(wù)器自啟配置chkconfig
2) 關(guān)掉指定服務(wù)的自動(dòng)啟動(dòng)chkconfig iptables off
3)開啟指定服務(wù)的自動(dòng)啟動(dòng)chkconfig iptables on
11、rpm
RPM(RedHat Package Manager),Rethat軟件包管理工具,類似windows里面的setup.exe 是Linux這系列操作系統(tǒng)里面的打包安裝工具,它雖然是RedHat的標(biāo)志,但理念是通用的。
查詢
rpm –qa (功能描述:查詢所安裝的所有rpm軟件包)
卸載
(1)rpm -e RPM軟件包
rpm -e firefox
安裝
rpm –ivh RPM包全名
-i=install,安裝
-v=verbose,顯示詳細(xì)信息
-h=hash,進(jìn)度條
--nodeps,不檢測依賴進(jìn)度
公眾號回復(fù):Java全套、Java架構(gòu)、大數(shù)據(jù)、電子書、算法和刷題筆記、面經(jīng),即可獲得對應(yīng)的學(xué)習(xí)資源。
