1.cd指令 -進入文件夾
cd 文件夾路徑(路徑可以是絕對地址也可以說相對地址) - 進入到指定路徑對應(yīng)的文件夾
cd .. - 返回上層目錄
cd / - 進入操作系統(tǒng)根目錄
cd ~ - 進入電腦的文件系統(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
- cat指令 - 查看文件內(nèi)容(讀文件)
cat 文件路徑 - 讀取指定路徑對應(yīng)的文件的內(nèi)容
- vim指令
vim 文件路徑 - 使用vim打開文件
5.文件夾操作
- 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 文件夾路徑 - 刪除指定文件夾
- 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 - 對文件進行重命名(將文件名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.進程相關(guān)指令
1) ps指令
ps - 查看進程狀態(tài)
ps -aux - 查看當(dāng)前所有的進程的信息
ps grep 進程名/進程ID - 根據(jù)進程名/進程ID查看指定進程
2)top指令
top - 實時查看當(dāng)前所有的進程信息和系統(tǒng)信息
top -p PID1,PID2,…. - 實時監(jiā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 進程ID - 殺掉指定id對應(yīng)的進程
kill -1/-9/-15 進程ID - 以指定的方式(-1表示不間斷重啟; -9表示強制殺死進程;-15表示正常結(jié)束進程)殺掉指定 進程
pkill 進程名 - 殺死指定進程名對應(yīng)的進程(中間可以加-1/-9/-15)
killall 進程名 - 殺死和進程名相關(guā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)限二進制: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é)果進行處理
a. 管道 - |
如果需要對某一個指令的結(jié)果使用另外的指令進行二次處理的時候荧降,就需要用到管道(|)
b.sort - 排序
sort - 從小到大排序(將一行內(nèi)容作為一個字符串接箫,按字符串大小對應(yīng)內(nèi)容進行排序,默認(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 - 按正則表達式進行匹配
使用方法: grep -E '正則表達式' 文件
注意: Linux操作系統(tǒng)中正則表達式不支持:\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.壓縮和歸檔
壓縮可以讓文件變小导盅,一般在需要傳輸前都會先對文件進行壓縮僻澎。注意,壓縮指令只針對文件有效冶共,并且一次只能壓縮一個文件脱盲。
歸檔可以將一個文件夾變成一個文件(tar文件)
1)歸檔和解歸檔 - tar
tar -cvf 歸檔文件地址 需要歸檔的原文件地址 - 將文件進行歸檔操作(既可以對文件進行歸檔也可以對文件夾 歸檔)
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)建安裝
- wget 安裝包的路徑 -下載安裝包
- gunzip/tar 壓縮包 - 解壓级乐、解歸檔
- (設(shè)置安裝路徑)
- cd 安裝包目錄 執(zhí)行: make && make install -編譯安裝包程序
- 給可執(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 (進入安裝包)
[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