命令名稱 [命名參數(shù)] [命令對象]
注意: 多個功能不沖突的參數(shù)可以同時使用
一、日常操作
1.cd指令 - 進入指定文件夾
cd 目錄 - 進入指定目錄(也可以是文件夾對應的路徑)
cd .. - 返回上層目錄
cd ~ - 回到根目錄
cd / - 進入系統(tǒng)根目錄
2.ls指令 - 查看當前目錄中的內(nèi)容
ls -l/-lh - 查看詳情
ls -a - 隱藏文件也一起顯示
ls -R - 遞歸顯示所有內(nèi)容
ls -S/-t - 按大小/時間排序
3.pwd指令 - 顯示當前完整目錄
4.文件操作指令
touch 文件名 - 新建文件
cat 文件名 - 查看文件內(nèi)容
vim/vi 文件名 - 打開文件
rm 文件名 - 刪除文件(詢問是否刪除)
rm -f 文件名 - 強制刪除文件(不詢問)
rm - r 目錄 - 刪除文件夾
rm -rf 目錄、 rm -r -f 目錄 - 刪除文件夾(不詢問)
cp 文件名1 文件名2 - 將文件1中的內(nèi)容拷貝到文件2中
cp 文件 目錄 - 將指定文件拷貝到指定目錄中
cp -r 文件名/目錄名 目錄2 - 將文件/目錄拷貝到目錄2中
mv 文件名1 文件名2 - 將文件1中的內(nèi)容移動到文件2中 ,并且刪除文件1(文件重命名)
mv 文件1路徑 文件2路徑
mv 文件名1 新文件名 - 重命名
mv 文件名1 文件目錄 - 將文件1移動到指定目錄中
注意: mv指令不能加-r來操作目錄
cp/mv/rm 后面可以跟: -i詢問 -f強制 -n不覆蓋
mkdir 目錄名 - 新建文件夾
mkdir -p a/b/c - 按層級創(chuàng)建a,b,c三個文件夾
mkdir -p a/{b,c}/{d,e,f} - 同一層級常見多個
rmdir 目錄名 - 刪除指定空目錄
5.history - 顯示歷史指令記錄
根目錄下bashrc 配置顯示時間: export HISTTIMEFORMAT="[%y‐%m‐%d_%T] "
修改bashrc 后使其生效: source ~/.bashrc 或 . .bashrc
6.鏈接
ln -s 源路徑 目標路徑 - 給源路徑對應的文件在目標路徑下創(chuàng)建一個軟鏈接(可以看成是快捷鍵)(源路徑是絕對路徑) (掌握!)
ln 源路徑 目標路徑 - 給源路徑對應的文件在目標路徑下創(chuàng)建一個硬鏈接(看成一個數(shù)據(jù)的多個引用)(了解)
注意: 源文件不存在的時候,軟鏈接直接無效,硬鏈接變成普通文件
7.快捷鍵
ctrl + f - 前進一個字符
ctrl + b - 后退一個字符
ctrl + a - 回到行首
ctrl + e - 回到行尾
ctrl + w - 向左刪除一個單詞
ctrl + u - 向左刪除全部
ctrl + k - 向右刪除全部
ctrl + y - 粘貼上次刪除的內(nèi)容
ctrl + l - 清屏
ctrl + d - 結(jié)束輸入
ctrl + z - 暫停命令放到后臺
ctrl + c - 退出任務
date - 查看當前時間
init 6~0 - 重啟6 關(guān)機0
shutdown - 關(guān)閉服務器
-c 取消關(guān)機
-r 重啟
-h 定小時關(guān)機
二、進程相關(guān)指令
1.ps指令
ps - 進程狀態(tài)
ps -aux 或者 ps ex - 查看進程
ps -aux|grep 進程名 - 查看指定進程
ps grep 進程ID
2.top指令
top - 動態(tài)監(jiān)控進程
top -p PID1,PID2,…. - 動態(tài)監(jiān)控指定進程
3.free指令
free -單位 - 以指定單位查看內(nèi)存, 例如 free -m (以Mb為單位顯示內(nèi)存狀況), -g, -k等!
4.kill指令
kill 進程號 - 殺死指定的進程
kill -1/-9/-15 進程號 - -1(HUP)不間斷重啟,-9(KILL)強制殺死進程, -15(TERM)正常終止進程
pkill 進程名 - 按名字處理進程
killall 進程名 - 處理名字匹配的進程
5.uptime - 查看系統(tǒng)狀態(tài)
三、權(quán)限管理
1.user和group : 一個系統(tǒng)可以有多個用戶和多個分組; 一個分組中可以有多個用戶,一個用戶在不同的分組中(多對多)
users - 查看當前用戶
groups - 查看當前分組
groupadd 分組名 - 添加分組 (能在/etc/group文件中查看到新的分組, root才有的權(quán)限)
useradd 用戶名 - 創(chuàng)建新的用戶(還是在home中自動創(chuàng)建這個用戶對應的文件夾, root才有的權(quán)限)
useradd ‐G 分組名 ‐m ‐s /bin/bash 用戶名 - 創(chuàng)建一個用戶添加到指定的分組中(在home創(chuàng)建相應的文件夾)
usermod -G 分組名 用戶名 - 修改分組(root才有的權(quán)限)
passwd 用戶名 - 修改密碼(root才有權(quán)限)
passwd - 修改當前賬號密碼
su 用戶名 - 切換用戶身份(root不需要密碼,其他用戶需要密碼)
sudo - 以管理員執(zhí)行其他程序
注意: a.在ubuntu需要將用戶添加到sudo分組中,才能使用sudo以管理員的身份執(zhí)行程序
? b.在centOS中需要先執(zhí)行vi 指令進入/etc/sudoers文件中在指定的位置添加內(nèi)容
# Allow root to run any commands anywhere
root ALL=(ALL) ALL
xiaoming ALL=(ALL) ALL # 自己添加的,xiaoming是用戶名
2.chmod
chmod 權(quán)限值 文件 - 修改指定文件的權(quán)限
chmod [a,u,g,o][+,-][r,w,x] 文件 - 指定文件,給所有用戶添加相應的權(quán)限
? (a:所有,u:自己,g:同組,o:其他;
? +:添加, - :取消; r:讀,w:寫,x:執(zhí)行)
chown 用戶名 文件 - 改變文件所有者
(權(quán)限制是三組二進制值)
self group other
rwx rwx rwx
111 101 001 - 自己讀寫可執(zhí)行,同一分組的只讀可執(zhí)行,其他的只可執(zhí)行
110 100 000
chmod 644 文件
chmod 777 文件
chmod 666 文件
四、日志管理
1.cat指令
cat 文件 - 查看文件內(nèi)容
cat -n 文件 - 查看文件內(nèi)容,并且顯示行號
2.查看部分
head N 文件 - 查看前N行內(nèi)容
tail N 文件 - 查看后N行內(nèi)容
3.less 文件
? - 按 j 向下
? - 按 k 向上
? - 按 f 向下翻屏
? - 按b 向上翻屏
? - 按 g 到全文開頭
? - 按 G 到全文結(jié)尾
? - 按 Q 退出
more [-N] 文件 - 和less差不多,這個是盡可能多,less是盡可能少的加載
4.處理(對通過其他指令獲取的結(jié)果進行處理)
sort - 排序 (cat 文件 |sort)
uniq - 去重 (cat 文件 |uniq) - 只會去重相鄰的重復是數(shù)據(jù),一般結(jié)合sort一起使用: |sort|uniq
awk '{print $N}' # 打印第N列的內(nèi)容 (例如:netstat -natp|awk '{print $4}')
awk '{print $N1,$N2,$N3,…}'
history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3 # 獲取歷史指令中,使用最頻繁的三個指令
uniq ‐c -去重的時候統(tǒng)計每一行內(nèi)容的重復出現(xiàn)的次數(shù)
sort -nk 1 - 數(shù)值大小從小到大排序
sort -nk 2 - 字符大小從小到大排序(默認)
sort -rnk 1 - 數(shù)值大小從大到小排序
sort -rnk 2 - 字符大小從大到小排序(默認)
5.重定向
執(zhí)行獲取數(shù)據(jù)的指令 > 文件 (將執(zhí)行指定的結(jié)果存儲到文件中 - 覆蓋原文件中內(nèi)容)
執(zhí)行獲取數(shù)據(jù)的指令 >> 文件 (將執(zhí)行指定的結(jié)果存儲到文件中 - 在原文件的最后追加)
6.統(tǒng)計
wc -c(字符)/-w(單詞)/-l(行) 文件
7.查找
grep 查看對象 目錄/文件 參數(shù)
?
? 參數(shù):
? -i 忽略大小寫: grep you bb.txt -i
? -n 顯示行標號: grep you bb.txt -n / grep you bb.txt -i -n
? -E 通過正則表達式匹配: grep -E ‘正則表達式’ 文件
? 注意: Linux中,正則不支持: \d, \s,\w,\b,\D,\S,\W,\B
? 支持:. +, *, ?, {N,M}, [], ^, $
? -v 忽略字段: grep you bb.txt -v (在bb.txt中找不包含you的所有行)
? grep -E '[0-9]+.[0-9]+' abb.txt -v
? -rn 遞歸查找目錄,并打印行號
? grep -r you ./ (在當前文件夾下中所有文件中去找包行’you’的行)
?
? // 對文件格式進行約束
? —include=‘.py’ 僅包含 py文件: grep -r you ./ --include=‘.txt'
? —exclude=‘.js’ 不包含 js 文件: grep -r you ./ --exclude='.c'
? 例如:
? grep you bb.txt
? grep you bb.txt -i
? grep you bb.txt -i -n
? grep -E '[0-9]+' bb.txt
在文件夾下找滿足條件的文件
find DIR -name ‘.xxx’ 找到目錄下所有名字匹配的文件: find a1 -name '.txt’(在文件夾a1中找所有txt文件)
find 路徑 -size +/-文件大小 例如: find ./ +20k (在當前目錄下找文件大小大于20k的文件)
? 例:find ./ -size +20k -size -100k -name '*.txt' (找當前目錄下大于20k并且小于100k的所有txt文件)
查指令
which 指令 - 精確查找當前可執(zhí)行的指令
whereis 指令 - 查找所有匹配的命令
man 指令 - 使用指令手冊
五、網(wǎng)絡管理
ifconfig - 查看網(wǎng)卡狀態(tài)
netstat -natp - 查看網(wǎng)絡連接狀態(tài)
netstat -natp|grep 端口號 - 查看指定端口的網(wǎng)絡連接狀態(tài)
ping 地址
ping -i 時間 地址
ping -c 次數(shù) 地址
route - 顯示路由表
telnet ip地址 端口 - 查看遠程主機網(wǎng)絡連接狀況(需要telnet環(huán)境)
dig 地址 - 查看DNS (需要環(huán)境支持)
六、使用包管理工具(掌握)
包管理工具
yum (CentOS)
yum search:搜索軟件包,例如yum search nginx。
yum list installed:列出已經(jīng)安裝的軟件包,例如yum list installed | grep zlib。
yum install:安裝軟件包,例如yum install nginx。
yum remove / yum erase:刪除軟件包,例如yum remove nginx。
yum update:更新軟件包,例如yum update可以更新所有軟件包,而yum update tar只會更新tar。
yum check-update:檢查有哪些可以更新的軟件包。
yum info :顯示軟件包的相關(guān)信息,例如yum info nginx。
rpm (Redhat)
rpm -ivh 安裝
rpm -e 卸載軟件包
rpm -qa 查詢所有已安裝的軟件包
參數(shù):
-i 安裝軟件包
-v 可視化,提供更多的詳細信息的輸出
-h 顯示安裝進度
-a 查詢所有已經(jīng)安裝的軟件包
-f 查詢文件所屬于的軟件包
-q 查詢軟件包(通常用來看下還未安裝的軟件包)
-l 顯示軟件包的文件列表
-d 顯示被標注為文檔的文件列表
-c 顯示被標注為配置文件的文件列表 最后這兩個用的很少了
apt (Ubuntu)
apt-cache search ——(package 搜索包)
apt-cache show ——(package 獲取包的相關(guān)信息,如說明、大小、版本等)
sudo apt-get install ——(package 安裝包)
sudo apt-get reinstall ——(package - - reinstall 重新安裝包)
sudo apt-get -f install ——(修復安裝)
sudo apt-get remove ——(package 刪除包)
sudo apt-get remove --purge ——(package 刪除包,包括刪除配置文件等)
sudo apt-get update ——更新源
sudo apt-get upgrade ——更新已安裝的包
源代碼構(gòu)建安裝
wget 安裝包的路徑 -下載安裝包
gunzip/tar 壓縮包 - 解壓、解歸檔
(設(shè)置安裝路徑)
cd 安裝包目錄 執(zhí)行: make && make install -編譯安裝包程序
給可執(zhí)行文件添加軟連接到usr/bin目錄下 -添加快捷方式
安裝Redis官方最新版:
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
gunzip redis-5.0.7.tar.gz
tar -xvf redis-5.0.7.tar
cd redis-5.0.7
make && make install
安裝Git官方最新版:
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.24.1.tar.xz
xz -d git-2.24.1.tar.xz
tar -xf git-2.24.1.tar
cd git-2.24.1
yum install -y curl libcurl-devel
./configure --prefix=/usr/local
make && make install
壓縮/解壓縮和歸檔/解歸檔 - gzip / gunzip / xz / 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 壓縮文件地址 - 解壓指定文件
七、遠程文件傳輸
- 通過網(wǎng)絡獲取資源:wget <獲取資源的url>
- 后臺下載模式:-b
- 下載到指定的目錄:-O
- 遞歸下載:-r
- 發(fā)送和接受郵件:email
- 安全文件傳輸:sftp
sftp root@118.31.103.87
root@118.31.103.87's passward:
stfp>
help:顯示幫助信息。
ls/lls:顯示遠端/本地目錄列表。
cd/lcd:切換遠端/本地路徑。
mkdir/lmkdir:創(chuàng)建遠端/本地目錄。
pwd/lpwd:顯示遠端/本地當前工作目錄。
get:下載文件。
put:上傳文件;put <文件名> <路徑>
rm:刪除遠端文件。
bye/exit/quit:退出sftp。
- 遠程安全文件拷貝 :scp
scp <文件名> root@<主機>:路徑 也能實現(xiàn)文件傳輸
例如:
scp hello.txt root@120.77.222.217:/root/abc.txt
拷貝多個
scp hellokitty@1.2.3.4:/home/hellokitty/index.html root@4.3.2.1:/usr/share/sohu.html