Linux系統(tǒng)常用命令

1.cd指令 -進(jìn)入文件夾

cd 文件夾路徑(路徑可以是絕對地址也可以說相對地址) - 進(jìn)入到指定路徑對應(yīng)的文件夾
cd .. - 返回上層目錄

cd / - 進(jìn)入操作系統(tǒng)根目錄

cd ~ - 進(jìn)入電腦的文件系統(tǒng)根目錄

2.ls指令 - 顯示當(dāng)前目錄中的內(nèi)容

ls - 直接顯示當(dāng)前文件夾中的內(nèi)容的名字(隱藏文件和文件夾看不到)

ls -l/-lh - 顯示當(dāng)前文件夾中的內(nèi)容和內(nèi)容的基本信息(隱藏文件和文件夾看不到)

ls -a - 顯示當(dāng)前文件夾中所有的內(nèi)容(包括隱藏文件)

ls -R - 遞歸顯示當(dāng)前目錄以及當(dāng)前目錄下所有的子目錄中的內(nèi)容

ls -r - 文件倒序顯示

ls -S/-t - 顯示文件夾中的內(nèi)容,并且內(nèi)容按大小/時間從大到小排序

ls  -Sr     -   按大小從小到大排序
ls  -Srlh   -   按大小從小到大排序,并且顯示內(nèi)容的基本信息
3. pwd指令

pwd - 查看當(dāng)前目錄的絕對路徑(系統(tǒng)目錄下的)

4.文件操作

1)touch指令 - 新建文件

touch 文件路徑 - 在指定位置創(chuàng)建指定文件

touch a.txt      - 在當(dāng)前目錄下新建一個文件a.txt
touch ../a.txt   - 在當(dāng)前目錄的上層目錄新建一個文件a.txt
touch /home/a/a.txt     -  在根目錄下home目錄中的a目錄里面創(chuàng)建一個文件a.txt 
  1. cat指令 - 查看文件內(nèi)容(讀文件)

cat 文件路徑 - 讀取指定路徑對應(yīng)的文件的內(nèi)容

  1. vim指令

vim 文件路徑 - 使用vim打開文件

5.文件夾操作
  1. mkdir指令 - 新建文件夾

mkdir 文件夾路徑 - 在指定位置創(chuàng)建文件夾

mkdir -p 文件夾路徑 - 在指定位置創(chuàng)建文件夾(會創(chuàng)建目錄中所有不存在的文件夾)

mkdir -p  a/b/c     - a,b,c可以都沒有,會在當(dāng)前目錄中創(chuàng)建a,在a中創(chuàng)建b,b中創(chuàng)建c
mkdir -p  a/{b,c}   - a,b,c可以都沒有,會在當(dāng)前目錄中創(chuàng)建a,在a中創(chuàng)建b和c 
6.刪除文件和文件夾

1)rm指令 - 刪除文件和文件夾

rm 文件路徑 - 刪除指定文件(刪除的時候會循環(huán)是否確定刪除,y-同意, n-不同意)

rm -f 文件路徑 - 刪除指定文件(刪除的時候不詢問)

rm -r 文件夾路徑 - 刪除指定文件夾

  1. rmdir指令 - 刪除空目錄

rmdir 文件夾路徑 - 刪除指定文件夾(這個文件夾必須是空的)

3)cp指令 - 拷貝

cp 文件路徑1 文件路徑2 - 將文件路徑1指定的文件中的內(nèi)容復(fù)制到文件路徑2指定的文件中(文件路徑2對應(yīng)的 文件本身是不存在)

? - 將文件1中的內(nèi)容復(fù)制粘貼到文件2(如果文件2不存,會自動創(chuàng)建;如果存在會詢問 是否覆蓋)

cp 文件路徑 文件夾路徑 - 將指定文件復(fù)制粘貼到指定文件夾中

cp -r 文件夾路徑1 文件夾路徑2 - 將文件夾1復(fù)制粘貼到文件夾2中

4)mv指令 - 移動

mv 文件路徑1 文件路徑2 - 將文件1移動文件2所在的位置

mv  文件名1  文件名2     -  對文件進(jìn)行重命名(將文件名1修改為文件名2)
mv  a.txt   b.txt      -  將當(dāng)前文件夾中的a.txt重命名為b.txt
mv  /home/a.txt  /home/b.txt    -  將系統(tǒng)根目錄下home文件中的a.txt重命名為b.txt

mv 文件路徑 文件夾路徑 - 將文件直接移動到指定文件夾中

mv 文件夾路徑1 文件夾路徑2 - 將文件夾1移動到文件夾2中

7.history指令 - 獲取歷史記錄(指令的歷史記錄)

history - 顯示當(dāng)前系統(tǒng)已經(jīng)執(zhí)行過的所有的指令

#如果想要顯示歷史記錄的時候顯示指令執(zhí)行的時間需要修改~/.bashrc文件:
export  HISTTIMEFORMAT="[%y‐%m‐%d_%T] " 

# 修改完成后需要通過指令: source ~/.bashrc 去執(zhí)行這個配置文件, 最后歷史記錄的時間才會生效
8. 創(chuàng)建連接
1)創(chuàng)建軟連接(掌握!)

ln -s 源文件路徑 軟連接文件地址 - 給源文件在指定位置創(chuàng)建一個軟連接(軟連接本質(zhì)就是用來保存源文件絕對 地址的一個文件, 可以理解為windows中的快捷方式)

? 注意: 源文件路徑必須寫絕對路徑

? 如果刪除或者移動源文件,軟連接會直接無效

2)創(chuàng)建硬鏈接

ln 源文件路徑 硬連接文件地址 - 給源文件在指定位置創(chuàng)建一個硬鏈接

? 硬鏈接的本質(zhì)就是源文件內(nèi)容的另外一個引用,所以刪除或者移動源文件硬 鏈接仍然有效,只是刪除硬鏈接會變成普通文件

9.進(jìn)程相關(guān)指令
1) ps指令

ps - 查看進(jìn)程狀態(tài)

ps -aux - 查看當(dāng)前所有的進(jìn)程的信息

ps grep 進(jìn)程名/進(jìn)程ID - 根據(jù)進(jìn)程名/進(jìn)程ID查看指定進(jìn)程

2)top指令

top - 實(shí)時查看當(dāng)前所有的進(jìn)程信息和系統(tǒng)信息

top -p PID1,PID2,…. - 實(shí)時監(jiān)測指定的進(jìn)程

3)free指令

free - 顯示當(dāng)前系統(tǒng)的內(nèi)存信息,顯示的時候以kb為單位

free -單位 - 顯示當(dāng)前系統(tǒng)的內(nèi)存信息,以指定單位來顯示

free -m    - 顯示當(dāng)前系統(tǒng)的內(nèi)存信息,以Mb為單位
4)kill指令

kill 進(jìn)程ID - 殺掉指定id對應(yīng)的進(jìn)程

kill -1/-9/-15 進(jìn)程ID - 以指定的方式(-1表示不間斷重啟; -9表示強(qiáng)制殺死進(jìn)程;-15表示正常結(jié)束進(jìn)程)殺掉指定 進(jìn)程

pkill 進(jìn)程名 - 殺死指定進(jìn)程名對應(yīng)的進(jìn)程(中間可以加-1/-9/-15)

killall 進(jìn)程名 - 殺死和進(jìn)程名相關(guān)的所有進(jìn)程

5)uptime

uptime - 獲取系統(tǒng)信息

10.用戶管理

一個Linux操作系統(tǒng)可以有多個用戶(user),也可以有多個用戶組(group); 用戶和用戶組之間的關(guān)系是多對多

users - 查看當(dāng)前用戶

groups - 查看當(dāng)前分組

groupadd 分組名 - 創(chuàng)建分組(管理員才能創(chuàng)建; 可以通過查看/etc/group文件來查看當(dāng)前系統(tǒng)所有的分組)

useradd 用戶名 - 創(chuàng)建指定用戶(1.用戶創(chuàng)建成功后系統(tǒng)會自動在/home目錄下創(chuàng)建一個和用戶名同名的文件 夾;2.會自動創(chuàng)建和用戶名同名的分組,并且將當(dāng)前用戶添加到這個分組中)

useradd -G 分組1,分組2,… 用戶名 - 創(chuàng)建指定用戶,并且將用戶添加到指定分組中

usermod -G 分組1,分組2 用戶名 - 修改用戶分組

password 用戶名 - 修改用戶密碼(需要root權(quán)限)

su 用戶名 - 切換賬號(root登錄的時候切換不需要密碼,其他賬號需要)

exit - 退出當(dāng)前賬號

sudo - 在命令前sudo是以管理員身份執(zhí)行指令

注意: 不是所有的用戶都可以通過sudo來以管理員身份執(zhí)行指令,如果想要能夠使用sudo必須添加配置

? a.ubuntu: 將需要有管理員身份的賬號添加到sudo分組中

? b.redhat和contos: 在/etc/sudoers配置文件中添加代碼:

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL     #(默認(rèn)有的)
xiaoming ALL=(ALL)      ALL     #(自己添加的,xiaoming是用戶名)
11.文件權(quán)限
文件類型 所有者權(quán)限 同組用戶權(quán)限 其他用戶權(quán)限
d(目錄) rwx(讀、寫、執(zhí)行) 7 r-x(讀-執(zhí)行)5 r-x(讀-執(zhí)行) 5
-(文件) rw-(讀、寫) 6 r--(讀--)4 r--(讀--) 4
l(鏈接) rwx(讀、寫、執(zhí)行) 7 rwx(讀、寫、執(zhí)行)7 r--(讀--) 4

默認(rèn)情況下文件和文件夾的權(quán)限: 文件所有者有讀寫權(quán)限, 同組用戶和其他用戶都是只讀權(quán)限。

1)chmod指令

chmod 權(quán)限值 文件路徑 - 將指定文件的權(quán)限修改成指定值

權(quán)限:     rwx r-- rw-
權(quán)限二進(jìn)制:111 100 110  
權(quán)限值:    7   4   6
chmod 746 文件路徑

權(quán)限:     rwx rwx rwx
權(quán)限值:    7    7  7
chmod 777 文件路徑


chmod [a,u,g,o]/[+-]/[r,w,x] 文件地址 - 給指定文件對應(yīng)指定用戶添加或者刪除指定權(quán)限

? (a-所有用戶,u-文件所有者,g-同組用戶,o-其他用戶;

? +表示添加權(quán)限, -表示刪除權(quán)限;

? r-表示讀權(quán)限, w表示寫權(quán)限,x表示執(zhí)行權(quán)限)

chmod a-x 文件地址     #  刪除所有用戶的執(zhí)行權(quán)限
chmod u+w  文件地址    #  給文件所有者添加寫的權(quán)限
12.日志管理
1)顯示文件內(nèi)容

a.cat指令 - 直接顯示文件中所有的內(nèi)容

cat 文件 - 直接查看文件所有內(nèi)容

總結(jié): 查看文件內(nèi)容的時候可以加參數(shù)-n,讓內(nèi)容在顯示的時候顯示行號

b.查看部分內(nèi)容

head N 文件地址 - 顯示指定文件前N行內(nèi)容(-n參數(shù)無效)

tail N 文件地址 - 顯示指定文件最后N行內(nèi)容(-n參數(shù)無效)

c.分頁顯示

less 文件 - 按頁顯示文件內(nèi)容(通過快捷鍵控制內(nèi)容顯示過程; 文件內(nèi)容不會打印到shell/終端里)

less -N 文件 - 按頁顯示文件內(nèi)容,每次翻頁的時候翻N行

more 文件 - 按頁顯示文件內(nèi)容(通過快捷鍵控制內(nèi)容顯示過程; 文件內(nèi)容會打印到shell/終端里)

more -N 文件 - 按頁顯示文件內(nèi)容,每次翻頁的時候翻N行

快捷鍵:

- 按 j 向下一行

- 按 k 向上一行

- 按 f 向下翻一頁

- 按b 向上翻一頁

- 按 g 到全文開頭

- 按 G 到全文結(jié)尾

- 按 Q 退出 
2)結(jié)果的處理

凡是有的打印結(jié)果的指令,我們都可以通過相關(guān)指令對應(yīng)結(jié)果進(jìn)行處理

a. 管道 - |

如果需要對某一個指令的結(jié)果使用另外的指令進(jìn)行二次處理的時候,就需要用到管道(|)

b.sort - 排序

sort - 從小到大排序(將一行內(nèi)容作為一個字符串,按字符串大小對應(yīng)內(nèi)容進(jìn)行排序,默認(rèn)不區(qū)分大小寫)

cat a.txt |sort      # 對a.txt的文件內(nèi)容從小到大排序顯示

sort的參數(shù):
-r   - 逆序
-nk 1  - 數(shù)值大小排序
-nk 2  - 字符大小排序(默認(rèn))

cat a.txt|sort -nk 1    # 對a.txt的文件內(nèi)容按數(shù)字大小從小到大排序
cat a.txt|sort -rnk 1    # 對a.txt的文件內(nèi)容按數(shù)字大小從大到小排序
cat a.txt|sort -nk 2    # 對a.txt的文件內(nèi)容按字符大小從小到大排序(默認(rèn))
cat a.txt|sort -rnk 2    # 對a.txt的文件內(nèi)容按字符大小從大到小排序
c.uniq -去重

uniq - 只能將緊挨著的相同行去掉重復(fù)的(如果需要去掉所有重復(fù)的行,先排序?qū)⑾嗤男蟹诺揭黄?

cat a.txt|uniq     # 去掉a.txt文件內(nèi)容中相鄰重復(fù)的行
cat a.txt|sort|uniq   # 去掉a.txt文件內(nèi)容中所有重復(fù)的行

uniq的參數(shù)
-c     - 重復(fù)次數(shù)
d.awk - 獲取列

awk '{print $N}' - 獲取內(nèi)容中第N列的數(shù)據(jù)

history|awk '{print $2}'    # 獲取歷史記錄第2列的內(nèi)容
history|awk '{print $2,$3}'  # 獲取歷史記錄第2列和第3列的內(nèi)容

練習(xí):

history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3    # 統(tǒng)計最常用的3個指令及其使用次數(shù)
3)輸出重定向 - >/>>

執(zhí)行有打印結(jié)果的指令 > 文件地址 - 將指定指令執(zhí)行的結(jié)果保存到指定文件中(先清除原文件內(nèi)容再添加)

執(zhí)行有打印結(jié)果的指令 >> 文件地址 - 將指定指令執(zhí)行的結(jié)果保存到指定文件中(直接將結(jié)果追加到原文件中)

history > a.txt     #將當(dāng)前歷史記錄直接保存到a.txt文件中

# 將最常用的3個指令及其使用次數(shù)保存到a.txt文件中
history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3 > a.txt  
4)統(tǒng)計

wc -c/-w/-l 文件地址 - 統(tǒng)計指定文件中字符/單詞/行的數(shù)量

5)查找
grep - 找內(nèi)容

a. grep 內(nèi)容 文件地址 - 在指定文件中查找指定內(nèi)容(返回文件中所有包含指定內(nèi)容的行)

grep you a.txt    # 獲取a.txt中包含you的所有的行

grep的參數(shù):
-n      - 顯示結(jié)果的時候顯示行號
-i      - 查找內(nèi)容的時候忽略大小寫
-E      - 按正則表達(dá)式進(jìn)行匹配   
          使用方法: grep -E '正則表達(dá)式' 文件
          注意: Linux操作系統(tǒng)中正則表達(dá)式不支持:\d,\D,\w,\W,\s,\S,\b,\B; 其他語法都支持
-v      - 忽略字段
          grep you a.txt  -v  # 獲取a.txt中不包含you的所有的行

b. 執(zhí)行有打印結(jié)果的指令 |grep 內(nèi)容 - 在指令執(zhí)行結(jié)果中查找指定內(nèi)容

c. grep -r 內(nèi)容 文件夾地址 -在指定文件夾中所有的文件中查找指定內(nèi)容

find - 找文件

find 文件夾路徑 -name 文件名 - 在指定文件夾下按文件名找指定文件

# 找指定文件名
find dir1 -name 'test1.py'      # 在文件夾dir1找名字是test1.py的文件
find dir1 -name '*.txt'         # 在文件夾dir1找后綴是txt的所有文件
find dir1 -name 'test*.txt'
find dir1 -name 'test*'
find dir1 -name '*c.txt'

find 文件夾路徑 -size +/-文件大小 - 在指定文件夾下找文件大小滿足條件的所有的文件

find dir1 -size +4k       # 查找在文件夾dir1中所有大于4k的文件
find dir1 -size -4k       # 查找在文件夾dir1中所有小于4k的文件
find dir1 -size +5k -size -10k  # 查找在文件夾dir1中所有大于5k并且小于10k的文件(文件大小如果是小數(shù),算的時候向上取整)
find dir1 -size +4k -name '*.txt'   # 查找在文件夾dir1中所有大于4k的txt文件
查指令

which 指令名 -精確查找當(dāng)前指令對應(yīng)的文件的路徑

whereis 指令名 -查找和指定指令相關(guān)的所有的文件的路徑

man 指令名 -獲取指定指令的使用手冊

指令名 — help -獲取指定指令的幫助文檔

13.網(wǎng)絡(luò)管理

ifconfig - 查看網(wǎng)卡狀態(tài)
netstat -natp -查看當(dāng)前系統(tǒng)所有的網(wǎng)絡(luò)連接狀態(tài)
netstat -natp |grep 端口號 - 查看指定端口對應(yīng)網(wǎng)絡(luò)連接狀態(tài)

ping 地址 - 給指定地址對應(yīng)服務(wù)器發(fā)送數(shù)據(jù)(主要用來檢測當(dāng)前網(wǎng)絡(luò)通不通)

ping -i 時間(單位秒) 地址 - 每隔指定時間ping一次(時間可以是小數(shù))

ping -c 次數(shù) 地址 - ping指定次數(shù)(不限制次數(shù)的時候會不斷的ping)

wget 地址 - 下載數(shù)據(jù)

14.壓縮和歸檔

壓縮可以讓文件變小,一般在需要傳輸前都會先對文件進(jìn)行壓縮。注意,壓縮指令只針對文件有效,并且一次只能壓縮一個文件。

歸檔可以將一個文件夾變成一個文件(tar文件)

1)歸檔和解歸檔 - tar

tar -cvf 歸檔文件地址 需要?dú)w檔的原文件地址 - 將文件進(jìn)行歸檔操作(既可以對文件進(jìn)行歸檔也可以對文件夾 歸檔)

tar -xvf 歸檔文件地址 - 將指定的歸檔文件解歸檔

2)壓縮和解壓: gzip,gunzip,xz
a.gzip

gzip 文件地址 - 壓縮指定文件(壓縮后會生成一個gz文件,并且會刪除原文件)

gzip -c 文件地址 > 壓縮文件地址 - 將指定文件壓縮指定位置,并且保留原文件

gzip -d 壓縮文件地址 - 解壓指定文件(解壓完成后會刪除原壓縮文件)

gzip -l 壓縮文件地址 - 列出壓縮文件中的內(nèi)容

b.gunzip

gunzip 壓縮文件地址 - 解壓指定文件(解壓完成后會刪除原壓縮文件)

c.xz

xz 文件地址 - 壓縮指定文件(壓縮文件后綴是xz)

xz -d 壓縮文件地址 - 解壓指定文件

15.軟件安裝和包管理工具

包管理工具:yum

  • yum search:搜索軟件包,例如yum search nginx。
  • yum list installed:列出已經(jīng)安裝的軟件包,例如yum list installed | grep zlib。
  • yum install:安裝軟件包,例如yum install nginx。
  • yum remove:刪除軟件包,例如yum remove nginx。
  • yum update:更新軟件包,例如yum update可以更新所有軟件包,而yum update tar只會更新tar。
  • yum check-update:檢查有哪些可以更新的軟件包。
  • yum info :顯示軟件包的相關(guān)信息,例如yum info nginx。

源代碼構(gòu)建安裝

  1. wget 安裝包的路徑 -下載安裝包
  2. gunzip/tar 壓縮包 - 解壓、解歸檔
  3. (設(shè)置安裝路徑)
  4. cd 安裝包目錄 執(zhí)行: make && make install -編譯安裝包程序
  5. 給可執(zhí)行文件添加軟連接到usr/bin目錄下 -添加快捷方式
1.源代碼構(gòu)建python3.x
[root ~]# yum install gcc     (安裝編譯環(huán)境)
[root ~]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz    (下載安裝包)
[root ~]# gunzip Python-3.6.5.tgz     (解壓)
[root ~]# tar -xvf Python-3.6.5.tar    (解歸檔)
[root ~]# cd Python-3.6.5            (進(jìn)入安裝包)
[root ~]# ./configure --prefix=/usr/local/python36 --enable-optimizations   (設(shè)置安裝路徑)
[root ~]# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel    (安裝相關(guān)依賴庫)
[root ~]# make && make install       (編譯執(zhí)行安裝文件)
...
[root ~]# ln -s /usr/local/python36/bin/python3.6 /usr/bin/python3      (給python指令文件創(chuàng)建快捷方式python3)
[root ~]# python3 --version
Python 3.6.5
[root ~]# python3 -m pip install -U pip     (安裝pip)
[root ~]# ln -s /usr/local/python36/bin/pip /usr/bin/pip3      (給pip指令創(chuàng)建快捷方式pip3)
[root ~]# pip3 --version
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容