Linux的使用(常见)
文章目錄
- Linux終端命令格式
-
- 終端命令格式
- 查閱命令幫助信息
-
- -help
- -man
- 常用Linux命令的基本實用
-
- 學習Linux終端命令的原因
- 常用Linux命令的基本使用
- 自動補全
- 其它命令
-
- 查找文件
-
- 演練目標
- 軟鏈接
-
- 演練目標
- 硬鏈接簡介(知道)
- 硬鏈接演練
- 文件軟硬鏈接示意圖
- 打包壓縮
-
- 打包 / 解包
- 壓縮/解壓縮
-
- 1)gzip
- 2) bzip2(two)
- 軟件安裝
-
- 通過 apt 安裝/卸載軟件
- 文件和目錄常用命令
-
- 查看目錄內容
-
- ls 命令說明
- Linux 下文件和目錄的特點
- ls 常用選項
- ls通配符的使用
- 切換目錄
-
- cd
- 相對路徑和絕對路徑
- 創建和刪除操作
-
- touch
- mkdir
- rm
- 拷貝和移動文件
-
- tree
- cp
- mv
- 查看文件內容
-
- cat
- more
- grep
- 其他
-
- echo 文字內容
- 重定向 > 和 >>
- 管道 |
- 系統信息相關命令
-
- 時間和日期
- 磁盤信息
- 進程信息
- 用戶權限相關命令
-
- 組管理
- 用戶管理
-
- 創建用戶/設置密碼/刪除用戶
- 查看用戶信息
-
- which(重要)
- 切換用戶
- 修改文件權限
- 遠程管理常用命令
-
- 關機/重啟
- 查看配置網卡信息
-
- ifconfig
- ping
- 遠程登錄和賦值文件
-
- ssh 基礎(重點)
- scp
Linux終端命令格式
終端命令格式
command [-options] [parameter]
- 1
說明:
- command :命令名,相應功能的英文單詞或單詞的縮寫
- [-options] :選項,可用來對命令進行控制,也可以省略
- parameter :傳給命令的參數,可以是?零個、一個 或者 多個
查閱命令幫助信息
-help
說明:
- 顯示 command 命令的幫助信息
-man
說明:
- 查閱 command 命令的使用手冊
man 是 manual 的縮寫,是 Linux 提供的一個 手冊,包含了絕大部分的命令、函數的詳細使用 - 說明
使用 man 時的操作鍵
常用Linux命令的基本實用
學習Linux終端命令的原因
- Linux 剛面世時并沒有圖形界面,所有的操作全靠命令完成,如磁盤操作、文件存取、目錄操作、進程管理、文件權限?設定等
- 在職場中,大量的?服務器維護工作 都是在?遠程?通過?SSH?客戶端 來完成的,并沒有圖形界面,所有的維護工作都需要通過命令來完成
- 在職場中,作為后端程序員,必須要或多或少的掌握一些 Linux 常用的終端命令
- Linux 發行版本的命令大概有 200 多個,但是常用的命令只有 10 多個而已
常用Linux命令的基本使用
| 01 | ls | list | 查看當前文件夾下的內容 |
| 02 | pwd | print work directory | 查看當前所在文件夾 |
| 03 | cd[目錄名] | changge directory | 切換文件夾 |
| 04 | touch[文件名] | touch | 如果文件不存在,新建文件 |
| 05 | mkdir[目錄名] | make directory | 創建目錄 |
| 06 | rm[文件名] | remove | 刪除指定文件 |
| 07 | clear | clear | 清屏 |
小技巧:
- ctrl + shift + =?放大終端窗口的字體顯示
- ctrl + -?縮小終端窗口的字體顯示
自動補全
在敲出?文件?/?目錄?/?命令?的前幾個字母之后,按下 tab 鍵
- 如果輸入的沒有歧義,系統會自動補全
- 如果還存在其他?文件?/?目錄?/?命令?,再按一下 tab 鍵,系統會提示可能存在的命令
小技巧 - 按?上?/?下?光標鍵可以在曾經使用過的命令之間來回切換
- 如果想要退出選擇,并且不想執行當前選中的命令,可以按?ctrl + c
其它命令
查找文件
find 命令功能非常強大,通常用來在 特定的目錄下 搜索 符合條件的文件
| 01 | find [路徑] -name “*.py” | 查找指定路徑下擴展名是 .py 的文件,包括子目錄 |
- 如果省略路徑,表示在當前文件夾下查找
- 之前學習的通配符,在使用 find 命令時同時可用
演練目標
- 1.搜索桌面目錄下,文件名包含 1 的文件
- 1
- 2.搜索桌面目錄下,所有以 .txt 為擴展名的文件
- 1
- 3.搜索桌面目錄下,以數字 1 開頭的文件
- 1
軟鏈接
| 01 | ln -s 被鏈接的源文件 鏈接文件 | 建立文件的軟鏈接,用通俗的方式講類似于 Windows 下的快捷方式 |
注意:
演練目標
硬鏈接簡介(知道)
在使用 ln 創建鏈接時,如果沒有 -s 選項,會創建一個 硬鏈接,而不是軟鏈接
硬鏈接演練
文件軟硬鏈接示意圖
在 Linux 中,文件名 和 文件的數據 是分開存儲的
- 提示:
在 Linux 中,只有文件的?硬鏈接數?== 0 才會被刪除
使用?ls -l?可以查看一個文件的硬鏈接的數量
在日常工作中,幾乎不會建立文件的硬鏈接,知道即可
打包壓縮
- 打包壓縮 是日常工作中備份文件的一種方式
- 在不同操作系統中,常用的打包壓縮方式是不同的選項 含義
Windows 常用 rar
Mac 常用 zip
Linux 常用 tar.gz
打包 / 解包
tar?是 Linux 中最常用的?備份工具,此命令可以?把一系列文件?打包到 一個大文件中,也可以把一個 打包的大文件恢復成一系列文件
tar?的命令格式如下:
- 1
- 2
- 3
- 4
tar選項說明:
| c | 生成檔案文件,創建打包文件 |
| x | 解開檔案文件 |
| v | 列出歸檔解檔的詳細過程,顯示進度 |
| f | 指定檔案文件名稱,f 后面一定是 .tar 文件,所以必須放選項最后 |
注意:?f 選項必須放在最后,其他選項順序可以隨意
壓縮/解壓縮
1)gzip
- tar 與 gzip 命令結合可以使用實現文件 打包和壓縮
tar 只負責打包文件,但不壓縮
用 gzip 壓縮 tar 打包后的文件,其擴展名一般用 xxx.tar.gz
在 Linux 中,最常見的壓縮文件格式就是 xxx.tar.gz
- 在 tar 命令中有一個選項 -z 可以調用 gzip ,從而可以方便的實現壓縮和解壓縮的
- 功能命令格式如下:
- 1
- 2
- 3
- 4
- 5
- 6
| -C | 解壓縮到指定目錄,注意:要解壓縮的目錄必須存在 |
2) bzip2(two)
- tar 與 bzip2 命令結合可以使用實現文件 打包和壓縮(用法和 gzip 一樣)
tar 只負責打包文件,但不壓縮
用 bzip2 壓縮 tar 打包后的文件,其擴展名一般用 xxx.tar.bz2 - 在 tar 命令中有一個選項 -j 可以調用 bzip2 ,從而可以方便的實現壓縮和解壓縮的功能
- 命令格式如下:
- 1
- 2
- 3
- 4
軟件安裝
通過 apt 安裝/卸載軟件
- apt 是?Advanced Packaging Tool?,是 Linux 下的一款安裝包管理工具
- 可以在終端中方便的?安裝/卸載/更新軟件包
- 1
- 2
- 3
- 4
- 5
- 6
文件和目錄常用命令
查看目錄內容
ls 命令說明
- ls 是英文單詞 list 的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,類似于 DOS下的 dir 命令
Linux 下文件和目錄的特點
- Linux 文件 或者 目錄 名稱最長可以有 256 個字符參數 含義
- 以 . 開頭的文件為隱藏文件,需要用 -a 參數才能顯示
- . 代表當前目錄
- … 代表上一級目錄
ls 常用選項
| -a | 顯示指定目錄下所有子目錄與文件,包括隱藏文件 |
| -l | 以列表方式顯示文件的詳細信息 |
| -h | 配合 -l 以人性化的方式顯示文件大小 |
ls通配符的使用
| * | 代表任意個數個字符 |
| ? | 代表任意一個字符,至少 1 個 |
| [] | 表示可以匹配字符組中的任一一個 |
| [abc] | 匹配 a、b、c 中的任意一個 |
| [a-f] | 匹配從 a 到 f 范圍內的的任意一個字符 |
注意:以 . 開頭的文件為隱藏文件,需要用 -a 參數才能顯示
切換目錄
cd
cd?是英文單詞 change directory 的簡寫,其功能為更改當前的工作目錄,也是用戶最常用的命令之一
注意:Linux 所有的 目錄 和 文件名 都是大小寫敏感的
| cd | 切換到當前用戶的主目錄(/home/用戶目錄) |
| cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
| cd . | 保持在當前目錄不變 |
| cd … | 切換到上級目錄 |
| cd - | 可以在最近兩次工作目錄之間來回切換 |
相對路徑和絕對路徑
相對路徑 在輸入路徑時,最前面不是 / 或者 ~,表示相對 當前目錄 所在的目錄位置
絕對路徑 在輸入路徑時,最前面是 / 或者 ~,表示從?根目錄/家目錄?開始的具體目錄位置
創建和刪除操作
touch
- 創建文件或修改文件時間
如果文件 不存在,可以創建一個空白文件
如果文件 已經存在,可以修改文件的末次修改日期
mkdir
- 創建一個新的目錄
| -p | 可以遞歸創建目錄 |
新建目錄的名稱 不能與當前目錄中 已有的目錄或文件 同名
rm
- 刪除文件或目錄
使用 rm 命令要小心,因為文件刪除后不能恢復
| -f | 強制刪除,忽略不存在的文件,無需提示 |
| -r | 遞歸地刪除目錄下的內容,刪除文件夾 時必須加此參數 |
拷貝和移動文件
| 01 | tree [目錄名] | tree | 以樹狀圖列出文件目錄結構 |
| 02 | cp 源文件目標文件 | copy | 復制文件或者目錄 |
| 03 | mv 源文件 目標文件 | move | 移動文件或者目錄/文件或者目錄重命名 |
tree
- tree 命令可以以樹狀圖列出文件目錄結構
| -d | 只顯示目錄 |
cp
- cp 命令的功能是將給出的?文件 或 目錄?復制到另一個?文件 或 目錄?中,相當DOS 下的 copy命令
| -i | 覆蓋文件前提示 |
| -r | 若給出的源文件是目錄文件,則 cp 將遞歸復制該目錄下的所有子目錄和文件,目標文件必 |
須為一個目錄名
mv
- mv 命令可以用來 移動 文件 或 目錄,也可以給 文件或目錄重命名
| -i | 覆蓋文件前提示 |
查看文件內容
| 01 | cat 文件名 | concatenate | 查看文件內容、創建文件、文件合并、追加文件內容等功能 |
| 02 | more 文件名 | more | 分屏顯示文件內容 |
| 03 | grep 搜索文本 文件名 | grep | 搜索文本文件內容 |
cat
cat 命令可以用來 查看文件內容、創建文件、文件合并、追加文件內容 等功能
cat 會一次顯示所有的內容,適合 查看內容較少 的文本文件
| -b | 對非空輸出行編號 |
| -n | 對輸出的所有行編號 |
Linux 中還有一個 nl 的命令和 cat -b 的效果等價
more
- more 命令可以用于分屏顯示文件內容,每次只顯示一頁內容
- 適合于 查看內容較多的文本文件
使用 more 的操作鍵:
| 空格鍵 | 顯示手冊頁的下一屏 |
| Enter | 鍵 一次滾動手冊頁的一行 |
| b | 回滾一屏 |
| f | 前滾一屏 |
| q | 退出 |
| /word | 搜索 word 字符串 |
grep
Linux 系統中 grep 命令是一種強大的文本搜索工具
grep 允許對文本文件進行 模式查找,所謂模式查找,又被稱為正則表達式。
| -n | 顯示匹配行及行號 |
| -v | 顯示不包含匹配文本的所有行(相當于求反) |
| -i | 忽略大小寫 |
常用的兩種模式查找
| ^a | 行首,搜尋以 a 開頭的行 |
| ke$ | 行尾,搜尋以 ke 結束的行 |
其他
echo 文字內容
echo 會在終端中顯示參數指定的文字,通常會和 重定向 聯合使用
重定向 > 和 >>
Linux 允許將命令執行結果 重定向到一個 文件
將本應顯示在終端上的內容 輸出/追加 到指定文件中
其中
> 表示輸出,會覆蓋文件原有的內容
>> 表示追加,會將內容追加到已有文件的末尾
管道 |
- Linux 允許將 一個命令的輸出 可以通過管道 做為 另一個命令的輸入
- 可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里 | 的左右分為兩端,
左端塞東西(寫),右端取東西(讀)
常用的管道命令有:
- more :分屏顯示內容
- grep :在命令執行結果的基礎上查詢指定的文本
系統信息相關命令
時間和日期
| 01 | date | 查看系統時間 |
| 02 | cal | calendar 查看日歷, -y 選項可以查看一年的日歷 |
磁盤信息
| 01 | df -h | disk free 顯示磁盤剩余空間 |
| 02 | du -h [目錄名] | disk usage 顯示目錄下的文件大小 |
進程信息
所謂進程,通俗地說就是?當前正在執行的一個程序
| 01 | ps aux | process status 查看進程的詳細狀況 |
| 02 | top | 動態顯示運行中的進程并且排序 |
| 03 | kill [-9] 進程代號 | 終止指定代號的進程, -9 表示強行終止 |
ps 默認只會顯示當前用戶通過終端啟動的應用程序
ps 選項說明
| a | 顯示終端上的所有進程,包括其他用戶的進程 |
| u | 顯示進程的詳細狀態 |
| x | 顯示沒有控制終端的進程 |
提示:使用 kill 命令時,最好只終止由當前用戶開啟的進程,而不要終止 root 身份開啟的進程,否則可能導致系統崩潰
- 要退出 top 可以直接輸入 q
用戶權限相關命令
組管理
提示:創建組 / 刪除組 的終端命令都需要通過 sudo 執行
| 01 | groupadd 組名 | 添加組 |
| 02 | groupdel 組名 | 刪除組 |
| 03 | cat /etc/group | 確認組信息 |
| 04 | chgrp -R 組名 文件/目錄名 | 遞歸修改文件/目錄的所屬組 |
提示:
組信息保存在 /etc/group 文件中
/etc 目錄是專門用來保存 系統配置信息 的目錄
用戶管理
提示:創建用戶 / 刪除用戶 / 修改其他用戶密碼 的終端命令都需要通過 sudo 執行
創建用戶/設置密碼/刪除用戶
提示:
- 創建用戶時,如果忘記添加 -m 選項指定新用戶的家目錄 —— 最簡單的方法就是刪除用戶,重新創建
- 創建用戶時,默認會創建一個和用戶名同名的組名
- 用戶信息保存在 /etc/passwd 文件中
查看用戶信息
| 01 | id [用戶名] | 查看用戶 UID 和 GID 信息 |
| 02 | who | 查看當前所有登錄的用戶列表 |
| 03 | whoami | 查看當前登錄用戶的賬戶名 |
which(重要)
提示
- /etc/passwd 是用于保存用戶信息的文件
- /usr/bin/passwd 是用于修改用戶密碼的程序
which 命令可以查看執行命令所在位置,例如:
- 1
- 2
- 3
- 4
- 5
- 6
bin 和 sbin
- 在 Linux 中,絕大多數可執行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin
- /bin ( binary )是二進制執行文件目錄,主要用于具體應用
- /sbin ( system binary )是系統管理員專用的二進制代碼存放目錄,主要用于系統管理
- /usr/bin ( user commands for applications )后期安裝的一些軟件
- /usr/sbin ( super user commands for applications )超級用戶的一些管理程序
提示:
cd 這個終端命令是內置在系統內核中的,沒有獨立的文件,因此用 which 無法找到 cd命令的位置
切換用戶
| 01 | su - 用戶名 | 切換用戶,并且切換目錄 | - 可以切換到用戶家目錄,否則保持位置不變 |
| 02 | exit | 退出當前登錄賬戶 |
su 不接用戶名,可以切換到 root ,但是不推薦使用,因為不安全
exit 示意圖如下:
修改文件權限
| 01 | chown | 修改擁有者 |
| 02 | chgrp | 修改組 |
| 03 | chmod | 修改權限 |
命令格式如下:
# 修改文件|目錄的擁有者 chown 用戶名 文件名|目錄名 # 遞歸修改文件|目錄的組 chgrp -R 組名 文件名|目錄名 # 遞歸修改文件權限 chmod -R 755 文件名|目錄名- 1
- 2
- 3
- 4
- 5
- 6
遠程管理常用命令
關機/重啟
| 01 | shutdown | 選項 時間 shutdown | 關機/重新啟動 |
常用命令示例
# 重新啟動操作系統,其中 now 表示現在 $ shutdown -r now # 立刻關機,其中 now 表示現在 $ shutdown now # 系統在今天的 20:25 會關機 $ shutdown 20:25 # 系統再過十分鐘后自動關機 $ shutdown +10 # 取消之前指定的關機計劃 $ shutdown -c- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
不指定選項和參數,默認表示 1 分鐘之后 關閉電腦
遠程維護服務器時,最好不要關閉系統,而應該重新啟動系統
查看配置網卡信息
| 01 | ifconfig | configure a network interface | 查看/配置計算機當前的網卡配置信息 |
| 02 | ping ip地址 | ping | 檢測到目標 ip地址 的連接是否正常 |
ifconfig
ifconfig 可以查看/配置計算機當前的網卡配置信息
# 查看網卡配置信息 $ ifconfig # 查看網卡對應的 IP 地址 $ ifconfig | grep inet- 1
- 2
- 3
- 4
提示:一臺計算機中有可能會有一個 物理網卡 和 多個虛擬網卡,在 Linux 中物理網卡的名字通常以 ensXX 表示
127.0.0.1 被稱為?本地回環/環回地址,一般用來測試本機網卡是否正常
ping
ping 一般用于檢測當前計算機到目標計算機之間的網絡?是否通暢,數值越大,速度越慢
# 檢測到目標主機是否連接正常 $ ping IP地址 # 檢測本地網卡工作正常 $ ping 127.0.0.1- 1
- 2
- 3
- 4
ping 的工作原理與潛水艇的聲納相似, ping 這個命令就是取自 聲納的聲音
網絡管理員之間也常將 ping 用作動詞 —— ping 一下計算機X,看他是否開著
遠程登錄和賦值文件
ssh 基礎(重點)
在 Linux 中 SSH 是?非常常用?的工具,通過?SSH 客戶端?我們可以連接到運行了?SSH 服務器?的遠程機器上
ssh的簡單使用:
- 1
- user 是在遠程機器上的用戶名,如果不指定的話默認為當前用戶
- remote 是遠程機器的地址,可以是 IP/域名,或者是 后面會提到的別名
- port 是 SSH Server 監聽的端口,如果不指定,就為默認值 22
提示:
- 使用 exit 退出當前用戶的登錄
- ssh 這個終端命令只能在 Linux 或者 UNIX 系統下使用
- 如果在 Windows 系統中,可以安裝 PuTTY 或者 XShell 客戶端軟件即可
- 在工作中,SSH 服務器的端口號很有可能不是 22,如果遇到這種情況就需要使用 -p 選項,指定正確的端口號,否則無法正常連接到服務器
scp
scp 就是 secure copy ,是一個在 Linux 下用來進行?遠程拷貝文件?的命令
它的地址格式與 ssh 基本相同,需要注意的是,在指定端口時用的是大寫的 -P?而不是小寫的
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
| -r | 若給出的源文件是目錄文件,則 scp 將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名 |
| -P | 若遠程 SSH 服務器的端口不是 22,需要使用大寫字母 -P 選項指定端口 |
注意:
scp 這個終端命令只能在?Linux?或者?UNIX?系統下使用
如果在 Windows 系統中,可以安裝 PuTTY ,使用 pscp 命令行工具或者安裝 FileZilla使用 FTP 進行文件傳輸
本文中:前移和前為 ←,后移和后為 →
移動類
| Ctrl + a | 移到命令行首 (a:ahead) |
| Ctrl + e | 移到命令行尾 (e:end) |
| Ctrl + f | 按字符前移 (f:forward) |
| Ctrl + b | 按字符后移 (b:backward) |
| Alt + f | 按單詞前移 |
| Alt + b | 按單詞后移 |
| Ctrl + x x | 將光標移動到行首,再按一次則光標跳回當前位置 |
編輯類
| Tab | 自動補齊 |
| Ctrl + i | 自動補齊 |
| Ctrl + d | 刪除光標后一個字符?delete |
| Ctrl + h | 刪除光標前一個字符?backspace |
| Ctrl + w | 從光標處剪切/刪除至字首 |
| Ctrl + u | 從光標處剪切/刪除至行首 |
| Ctrl + k | 從光標處剪切/刪除至行尾 |
| Ctrl + h | 從光標處向前刪除一個字符 |
| Ctrl + d | 從光標處向后刪除一個字符 |
| Ctrl + y | 粘貼使用?Ctrl + u?Ctrl + k?Ctrl + w?剪切/刪除的文本 |
| Alt + d | 從光標處刪除至字尾 |
| Ctrl + t | 交換光標處和之前的字符 |
| Alt + t | 交換光標處和之前的單詞 |
| Alt + c | 從光標處更改為首字母大寫的單詞 |
| Alt + u | 從光標處更改為全部大寫的單詞 |
| Alt + l | 從光標處更改為全部小寫的單詞 |
| Ctrl + o | 執行當前命令,并選擇上一條命令 |
| Ctrl + _ | 撤銷操作 |
| Ctrl + l | 清除屏幕?clear |
| ALT+Backspace | 刪除前一個詞 |
控制類
| Ctrl + s | 阻止屏幕輸出 |
| Ctrl + q | 允許屏幕輸出 |
| Ctrl + c | 終止命令 |
| Ctrl + z | 掛起命令 |
| Ctrl+d | 在命令行的為空的情況下可以退出終端 |
| Ctrl+[ | 相當于Esc鍵 |
| Esc×3 | 顯示所有的支持的終端命令。 |
歷史類
| Ctrl+p | 上一個使用的歷史命令(p:previous) |
| Ctrl+n | 下一個使用的歷史命令(n:next ) |
| Ctrl + r | 逆向搜索命令歷史(r:retrieve) |
| Ctrl + g | 從歷史搜索模式退出 |
| Ctrl+z | 將當前任務退到后臺 |
| fg | 回到最近退到后臺的任務 |
| Alt + . | 使用上一條命令的最后一個參數 |
?- 一、目錄操作
- 二、文件操作
- 三、文件內容操作(查看日志,更改配置文件)
- 四、系統日志位置
- 五、創建與刪除軟連接
- 六、壓縮和解壓縮
- 七、Linux下文件的詳細信息
- 八、常用的docker容器的命令:
- 九、運維常用命令
- 1、查看服務器端口號是否可用
- 十、yum常用命令
- 十一、其他命令
- 十二、Linux內核優化
- 十三、用戶權限操作
- 1、添加用戶
- 2、添加組
- 十四、TOP
- 1、統計信息區
- 2、進程信息區
一、目錄操作
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">pwd 查看當前工作目錄
clear 清除屏幕
cd <span style="color:#669900">~</span> 當前用戶目錄
cd <span style="color:#669900">/</span> 根目錄
cd <span style="color:#669900">-</span> 上一次訪問的目錄
cd <span style="color:#999999">.</span><span style="color:#999999">.</span> 上一級目錄
</code></span></span>
- 1
- 2
- 3
- 4
- 5
- 6
查看目錄內信息
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ll 查看當前目錄下內容(LL的小寫) </code></span></span>- 1
創建目錄
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">mkdir aaa 在當前目錄下創建aaa目錄,相對路徑; mkdir <span style="color:#999999">.</span>/bbb 在當前目錄下創建bbb目錄,相對路徑; mkdir <span style="color:#669900">/</span>ccc 在根目錄下創建ccc目錄,絕對路徑; </code></span></span>- 1
- 2
- 3
遞歸創建目錄(會創建里面沒有的目錄文件夾)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">mkdir -p temp/nginx </code></span></span>- 1
搜索命令
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">find / -name 'b' 查詢根目錄下(包括子目錄),名以b的目錄和文件; find / -name 'b*' 查詢根目錄下(包括子目錄),名以b開頭的目錄和文件; </code></span></span>- 1
- 2
重命名
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">mv 原先目錄 文件的名稱 mv tomcat001 tomcat </code></span></span>- 1
剪切命令(有目錄剪切到制定目錄下,沒有的話剪切為指定目錄)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">mv /aaa /bbb 將根目錄下的aaa目錄,移動到bbb目錄下,在bbb,麚也叫aaa目錄; mv bbb usr/bbb 將當前目錄下的bbbb目錄,移動到usr目錄下,并且修改名稱為bbb; </code></span></span>- 1
- 2
復制目錄
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">cp -r /aaa /bbb 將/目錄下的aaa目錄復制到/bbb目錄下,在/bbb目錄下的名稱為aaa cp -r /aaa /bbb/aaa 將/目錄下的aa目錄復制到/bbb目錄下,且修改名為aaa; </code></span></span>- 1
- 2
強制式刪除指定目錄
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">rm -rf /bbb 強制刪除/目錄下的bbb目錄。如果bbb目錄中還有子目錄,也會被強制刪除,不會提示; </code></span></span>- 1
刪除目錄
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">rm -r /bbb 普通刪除。會詢問你是否刪除每一個文件 </code></span></span>- 1
二、文件操作
刪除
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">rm -r a.java 刪除當前目錄下的a.java文件(每次回詢問是否刪除y:同意) </code></span></span>- 1
強制刪除
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">rm <span style="color:#669900">-</span>rf a<span style="color:#999999">.</span>java 強制刪除當前目錄下的a<span style="color:#999999">.</span>java文件 rm <span style="color:#669900">-</span>rf <span style="color:#999999">.</span>/a<span style="color:#669900">*</span> 強制刪除當前目錄下以a開頭的所有文件; rm <span style="color:#669900">-</span>rf <span style="color:#999999">.</span><span style="color:#5c6370">/* 強制刪除當前目錄下所有文件(慎用); </span></code></span></span>- 1
- 2
- 3
創建文件
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">touch testFile </code></span></span>- 1
遞歸刪除.pyc格式的文件
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">'*.pyc'</span> <span style="color:#669900">-</span>exec rm <span style="color:#669900">-</span>rf <span style="color:#999999">{</span><span style="color:#999999">}</span> \<span style="color:#999999">;</span> </code></span></span>- 1
打印當前文件夾下指定大小的文件
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*"</span> <span style="color:#669900">-</span>size <span style="color:#98c379">145800</span>c <span style="color:#669900">-</span>print </code></span></span>- 1
遞歸刪除指定大小的文件(145800)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*"</span> <span style="color:#669900">-</span>size <span style="color:#98c379">145800</span>c <span style="color:#669900">-</span>exec rm <span style="color:#669900">-</span>rf <span style="color:#999999">{</span><span style="color:#999999">}</span> \<span style="color:#999999">;</span> </code></span></span>- 1
遞歸刪除指定大小的文件,并打印出來
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*"</span> <span style="color:#669900">-</span>size <span style="color:#98c379">145800</span>c <span style="color:#669900">-</span>print <span style="color:#669900">-</span>exec rm <span style="color:#669900">-</span>rf <span style="color:#999999">{</span><span style="color:#999999">}</span> \<span style="color:#999999">;</span> </code></span></span>- 1
- "."?表示從當前目錄開始遞歸查找
- “ -name '*.exe' "根據名稱來查找,要查找所有以.exe結尾的文件夾或者文件
- " -type f "查找的類型為文件
- "-print"?輸出查找的文件目錄名
- -size 145800c?指定文件的大小
- -exec rm -rf {} \;?遞歸刪除(前面查詢出來的結果)
三、文件內容操作(查看日志,更改配置文件)
修改文件內容
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">vim a<span style="color:#999999">.</span>java 進入一般模式 <span style="color:#61aeee">i</span><span style="color:#999999">(</span>按鍵<span style="color:#999999">)</span> 進入插入模式<span style="color:#999999">(</span>編輯模式<span style="color:#999999">)</span> <span style="color:#61aeee">ESC</span><span style="color:#999999">(</span>按鍵<span style="color:#999999">)</span> 退出 <span style="color:#669900">:</span>wq 保存退出(shift<span style="color:#669900">+</span>:調起輸入框) <span style="color:#669900">:</span>q! 不保存退出(shift<span style="color:#669900">+</span>:調起輸入框)(內容更改) <span style="color:#669900">:</span>q 不保存退出(shift<span style="color:#669900">+</span>:調起輸入框)(沒有內容更改) </code></span></span>- 1
- 2
- 3
- 4
- 5
- 6
文件內容的查看
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat a<span style="color:#999999">.</span>java 查看a<span style="color:#999999">.</span>java文件的最后一頁內容; more a<span style="color:#999999">.</span>java 從第一頁開始查看a<span style="color:#999999">.</span>java文件內容,按回車鍵一行一行進行查看,按空格鍵一頁一頁進行查看,q退出; less a<span style="color:#999999">.</span>java 從第一頁開始查看a<span style="color:#999999">.</span>java文件內容,按回車鍵一行一行的看,按空格鍵一頁一頁的看,支持使用PageDown和PageUp翻頁,q退出; </code></span></span>- 1
- 2
- 3
- 4
- 5
總結下more 和 less的區別:
實時查看文件后幾行(實時查看日志)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">tail <span style="color:#669900">-</span>f a<span style="color:#999999">.</span>java 查看a<span style="color:#999999">.</span>java文件的后<span style="color:#98c379">10</span>行內容; </code></span></span>- 1
前后幾行查看
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">head a<span style="color:#999999">.</span>java 查看a<span style="color:#999999">.</span>java文件的前<span style="color:#98c379">10</span>行內容; tail <span style="color:#669900">-</span>f a<span style="color:#999999">.</span>java 查看a<span style="color:#999999">.</span>java文件的后<span style="color:#98c379">10</span>行內容; head <span style="color:#669900">-</span>n <span style="color:#98c379">7</span> a<span style="color:#999999">.</span>java 查看a<span style="color:#999999">.</span>java文件的前<span style="color:#98c379">7</span>行內容; tail <span style="color:#669900">-</span>n <span style="color:#98c379">7</span> a<span style="color:#999999">.</span>java 查看a<span style="color:#999999">.</span>java文件的后<span style="color:#98c379">7</span>行內容; </code></span></span>- 1
- 2
- 3
- 4
文件內部搜索指定的內容
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">grep under <span style="color:#98c379">123.</span>txt 在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小寫敏感,顯示行; grep <span style="color:#669900">-</span>n under <span style="color:#98c379">123.</span>txt 在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小寫敏感,顯示行及行號; grep <span style="color:#669900">-</span>v under <span style="color:#98c379">123.</span>txt 在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小寫敏感,顯示沒搜索到的行; grep <span style="color:#669900">-</span>i under <span style="color:#98c379">123.</span>txt 在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小寫敏感,顯示行; grep <span style="color:#669900">-</span>ni under <span style="color:#98c379">123.</span>txt 在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小寫敏感,顯示行及行號; </code></span></span>- 1
- 2
- 3
- 4
- 5
終止當前操作
Ctrl+c和Ctrl+z都是中斷命令,但是作用卻不一樣。
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ctrl<span style="color:#669900">+</span>z ctrl<span style="color:#669900">+</span>c </code></span></span>- 1
- 2
Ctrl+Z就扮演了類似的角色,將任務中斷,但是任務并沒有結束,在進程中只是維持掛起的狀態,用戶可以使用fg/bg操作前臺或后臺的任務,fg命令重新啟動前臺被中斷的任務,bg命令把被中斷的任務放在后臺執行。
Ctrl+C也扮演類似的角色,強制中斷程序的執行。
重定向功能
可以使用 > 或 < 將命令的輸出的命令重定向到test.txt文件中(沒有則創建一個)
- 1
四、系統日志位置
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>redhat<span style="color:#669900">-</span>release 查看操作系統版本
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>message 系統啟動后的信息和錯誤日志,是Red Hat Linux中最常用的日志之一
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>message 系統啟動后的信息和錯誤日志,是Red Hat Linux中最常用的日志之一
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>secure 與安全相關的日志信息
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>maillog 與郵件相關的日志信息
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>cron 與定時任務相關的日志信息
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>spooler 與UUCP和news設備相關的日志信息
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>boot<span style="color:#999999">.</span>log 守護進程啟動和停止相關的日志消息
</code></span></span>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
查看某文件下的用戶操作日志
到達操作的目錄下,執行下面的程序:
- 1
五、創建與刪除軟連接
1、創建軟連接
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ln <span style="color:#669900">-</span>s <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>local<span style="color:#669900">/</span>app <span style="color:#669900">/</span>data </code></span></span>- 1
注意:創建軟連接時,data目錄后不加 / (加上后是查找其下一級目錄);
2、刪除軟連接
- 1
注意:取消軟連接最后沒有/,rm -rf 軟連接。加上/是刪除文件夾;
六、壓縮和解壓縮
tar
tar
壓縮(-c)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-php">tar <span style="color:#669900">-</span>cvf start<span style="color:#669900">.</span>tar a<span style="color:#669900">.</span>java b<span style="color:#669900">.</span>java <span style="color:#5c6370">//將當前目錄下a.java、b.java打包</span> tar <span style="color:#669900">-</span>cvf start<span style="color:#669900">.</span>tar <span style="color:#669900">.</span><span style="color:#669900">/</span><span style="color:#669900">*</span> <span style="color:#5c6370">//將當前目錄下的所欲文件打包壓縮成haha.tar文件</span>tar <span style="color:#669900">-</span>zcvf start<span style="color:#669900">.</span>tar<span style="color:#669900">.</span>gz a<span style="color:#669900">.</span>java b<span style="color:#669900">.</span>java <span style="color:#5c6370">//將當前目錄下a.java、b.java打包</span> tar <span style="color:#669900">-</span>zcvf start<span style="color:#669900">.</span>tar<span style="color:#669900">.</span>gz <span style="color:#669900">.</span><span style="color:#669900">/</span><span style="color:#669900">*</span> <span style="color:#5c6370">//將當前目錄下的所欲文件打包壓縮成haha.tar.gz文件</span> </code></span></span>- 1
- 2
- 3
- 4
- 5
解壓縮(-x)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">tar <span style="color:#669900">-</span>xvf start<span style="color:#999999">.</span>tar <span style="color:#5c6370">//解壓start.tar壓縮包,到當前文件夾下;</span> tar <span style="color:#669900">-</span>xvf start<span style="color:#999999">.</span>tar <span style="color:#669900">-</span>C usr<span style="color:#669900">/</span>local <span style="color:#5c6370">//(C為大寫,中間無空格)</span><span style="color:#5c6370">//解壓start.tar壓縮包,到/usr/local目錄下;</span>tar <span style="color:#669900">-</span>zxvf start<span style="color:#999999">.</span>tar<span style="color:#999999">.</span>gz <span style="color:#5c6370">//解壓start.tar.gz壓縮包,到當前文件夾下;</span> tar <span style="color:#669900">-</span>zxvf start<span style="color:#999999">.</span>tar<span style="color:#999999">.</span>gz <span style="color:#669900">-</span>C usr<span style="color:#669900">/</span>local <span style="color:#5c6370">//(C為大寫,中間無空格)</span><span style="color:#5c6370">//解壓start.tar.gz壓縮包,到/usr/local目錄下;</span> </code></span></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
解壓縮tar.xz文件
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">tar xf node<span style="color:#669900">-</span>v12<span style="color:#999999">.</span><span style="color:#98c379">18.1</span><span style="color:#669900">-</span>linux<span style="color:#669900">-</span>x64<span style="color:#999999">.</span>tar<span style="color:#999999">.</span>xz </code></span></span>- 1
unzip/zip
壓縮(zip)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">zip lib<span style="color:#999999">.</span>zip tomcat<span style="color:#999999">.</span>jar <span style="color:#5c6370">//將單個文件壓縮(lib.zip)</span> zip <span style="color:#669900">-</span>r lib<span style="color:#999999">.</span>zip lib<span style="color:#669900">/</span> <span style="color:#5c6370">//將目錄進行壓縮(lib.zip)</span> zip <span style="color:#669900">-</span>r lib<span style="color:#999999">.</span>zip tomcat<span style="color:#669900">-</span>embed<span style="color:#999999">.</span>jar xml<span style="color:#669900">-</span>aps<span style="color:#999999">.</span>jar <span style="color:#5c6370">//將多個文件壓縮為zip文件(lib.zip) </span> </code></span></span>- 1
- 2
- 3
解壓縮(unzip)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">unzip file1<span style="color:#999999">.</span>zip <span style="color:#5c6370">//解壓一個zip格式壓縮包</span> unzip <span style="color:#669900">-</span>d <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>app<span style="color:#669900">/</span>com<span style="color:#999999">.</span>lydms<span style="color:#999999">.</span>english<span style="color:#999999">.</span>zip <span style="color:#5c6370">//將`english.zip`包,解壓到指定目錄下`/usr/app/`</span> </code></span></span>- 1
- 2
七、Linux下文件的詳細信息
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties"> R:Read w:write x: execute執行
-rw-r--r-- 1 root root 34942 Jan 19 2018 bootstrap.jar
前三位代表當前用戶對文件權限:可以讀/可以寫/不能執行
中間三位代表當前組的其他用戶對當前文件的操作權限:可以讀/不能寫/不能執行
后三位其他用戶對當前文件權限:可以讀/不能寫/不能執行
</code></span></span>
- 1
- 2
- 3
- 4
- 5
更改文件的權限
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">chmod u<span style="color:#669900">+</span>x web<span style="color:#999999">.</span>xml (<span style="color:#669900">--</span><span style="color:#669900">-</span>x<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">--</span>) 為文件擁有者(user)添加執行權限; chmod g<span style="color:#669900">+</span>x web<span style="color:#999999">.</span>xml (<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">--</span>x<span style="color:#669900">--</span><span style="color:#669900">-</span>) 為文件擁有者所在組(group)添加執行權限; chmod <span style="color:#98c379">111</span> web<span style="color:#999999">.</span>xml (<span style="color:#669900">--</span><span style="color:#669900">-</span>x<span style="color:#669900">--</span>x<span style="color:#669900">--</span>x) 為所有用戶分類,添加可執行權限; chmod <span style="color:#98c379">222</span> web<span style="color:#999999">.</span>xml (<span style="color:#669900">--</span>w<span style="color:#669900">--</span>w<span style="color:#669900">--</span>w<span style="color:#669900">-</span>) 為所有用戶分類,添加可寫入權限; chmod <span style="color:#98c379">444</span> web<span style="color:#999999">.</span>xml (<span style="color:#669900">-</span>r<span style="color:#669900">--</span>r<span style="color:#669900">--</span>r<span style="color:#669900">--</span>) 為所有用戶分類,添加可讀取權限; </code></span></span>- 1
- 2
- 3
- 4
- 5
八、常用的docker容器的命令:
1、下載鏡像
Linux服務器下載安裝包鏡像命令
- 1
華為開源鏡像站
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">https<span style="color:#669900">:</span><span style="color:#669900">/</span><span style="color:#669900">/</span>mirrors<span style="color:#999999">.</span>huaweicloud<span style="color:#999999">.</span>com<span style="color:#669900">/</span> </code></span></span>- 1
2、常用命令
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">#<span style="color:#98c379">1</span>、查看docker中下載好的鏡像: docker images#<span style="color:#98c379">2</span>、查詢需要的容器名稱: docker search mysql #<span style="color:#98c379">3</span>、將需要的docker容器下載運行到本地<span style="color:#999999">(</span>名稱、端口號、msyql密碼、ID<span style="color:#999999">)</span>: docker run <span style="color:#669900">-</span>di <span style="color:#669900">--</span>name<span style="color:#669900">=</span>first <span style="color:#669900">-</span>p <span style="color:#98c379">3306</span><span style="color:#669900">:</span><span style="color:#98c379">3306</span> <span style="color:#669900">-</span>e MYSQL_ROOT_PASSWORD<span style="color:#669900">=</span>root <span style="color:#98c379">26d</span><span style="color:#98c379">26d</span>sfsd31a #<span style="color:#98c379">4</span>、查看運行的docker容器: docker ps #<span style="color:#98c379">5</span>、查看所有的docker容器(包括未運行的): docker ps <span style="color:#669900">-</span>a #<span style="color:#98c379">6</span>、停止當前運行的docker容器: docker stop first #<span style="color:#98c379">7</span>、啟動docker容器: docker start first #<span style="color:#98c379">8</span>、重啟docker容器: docker restart first #<span style="color:#98c379">9</span>、刪除docker容器: docker rm first </code></span></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
九、運維常用命令
1、查看服務器端口號是否可用
查看服務器是否可用
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ping <span style="color:#98c379">49.32</span><span style="color:#98c379">.587</span><span style="color:#98c379">.164</span> </code></span></span>- 1
查看服務器指定端口是否可用
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">telnet <span style="color:#98c379">49.32</span><span style="color:#98c379">.587</span><span style="color:#98c379">.164</span> <span style="color:#98c379">8093</span> </code></span></span>- 1
Telnet安裝
這是我寫過的一個Linux安裝Telnet的文章。
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">https<span style="color:#669900">:</span><span style="color:#669900">/</span><span style="color:#669900">/</span>blog<span style="color:#999999">.</span>csdn<span style="color:#999999">.</span>net<span style="color:#669900">/</span>lydms<span style="color:#669900">/</span>article<span style="color:#669900">/</span>details<span style="color:#669900">/</span><span style="color:#98c379">113698856</span> </code></span></span>- 1
1、shutdown(關閉計算機)
shutdown是最常用也是最安全的關機和重啟命令,它會在關機之前調用fsck檢查磁盤,其中-h和-r是最常用的參數:
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java"><span style="color:#669900">-</span>h:停止系統服務并關機 <span style="color:#669900">-</span>r: 停止系統服務后重啟 </code></span></span>- 1
- 2
案例:
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">shutdown <span style="color:#669900">-</span>h now <span style="color:#669900">--</span>立即關機 shutdown <span style="color:#669900">-</span>h <span style="color:#98c379">10</span><span style="color:#669900">:</span><span style="color:#98c379">53</span> <span style="color:#669900">--</span>到<span style="color:#98c379">10</span><span style="color:#669900">:</span><span style="color:#98c379">53</span>關機,如果該時間小于當前時間,則到隔天 shutdown <span style="color:#669900">-</span>h <span style="color:#669900">+</span><span style="color:#98c379">10</span> <span style="color:#669900">--</span><span style="color:#98c379">10</span>分鐘后自動關機 shutdown <span style="color:#669900">-</span>r now <span style="color:#669900">--</span>立即重啟 shutdown <span style="color:#669900">-</span>r <span style="color:#669900">+</span><span style="color:#98c379">30</span> <span style="color:#669900">'The System Will Reboot in 30 Mins'</span> <span style="color:#669900">--</span><span style="color:#98c379">30</span>分鐘后重啟并并發送通知給其它在線用戶 </code></span></span>- 1
- 2
- 3
- 4
- 5
2、查看處于各種連接狀態數量(ESTABLISHED、CLOSE_WAIT、TIME_WAIT)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>n <span style="color:#669900">|</span> awk <span style="color:#669900">'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'</span> </code></span></span>- 1
查看處于ESTABLISHED狀態連接
- 1
查看處于CLOSE_WAIT狀態連接
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>nt <span style="color:#669900">|</span> awk <span style="color:#669900">'{if($NF=="CLOSE_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'</span> </code></span></span>- 1
查看處于TIME_WAIT狀態連接
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>nt <span style="color:#669900">|</span> awk <span style="color:#669900">'{if($NF=="TIME_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'</span> </code></span></span>- 1
3、ping命令
對 www.lydms.com 發送 4 個 ping 包, 檢查與其是否聯通
- 1
4、netstat 命令
netstat 命令用于顯示各種網絡相關信息,如網絡連接, 路由表, 接口狀態等等;
列出所有處于監聽狀態的tcp端口:
- 1
查看所有的端口信息, 包括 PID 和進程名稱
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>tulpn </code></span></span>- 1
5、查看當前端口號占用情況
1.用于查看某一端口的占用情況
- 1
2.顯示tcp,udp的端口和進程等相關情況
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>tunlp </code></span></span>- 1
3.指定端口號的進程情況
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>tunlp<span style="color:#669900">|</span>grep <span style="color:#98c379">8080</span> </code></span></span>- 1
4.查看PID進程信息
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>aux <span style="color:#669900">|</span>grep <span style="color:#98c379">28990</span> </code></span></span>- 1
根據PID,查看JVM中各線程信息('0x9eb’為nid值)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">jstack <span style="color:#98c379">2246</span><span style="color:#669900">|</span>grep <span style="color:#669900">'0x9eb'</span> <span style="color:#669900">-</span>A <span style="color:#98c379">50</span> </code></span></span>- 1
6、ps 命令
過濾得到當前系統中的 ssh 進程信息
- 1
7、管道命令
簡單來說, Linux 中管道的作用是將上一個命令的輸出作為下一個命令的輸入, 像 pipe 一樣將各個命令串聯起來執行, 管道的操作符是 |
管道命令查看當前運行的程序中,名稱為java的程序
- 1
查看/etc/passwd文件中的root內容
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>passwd <span style="color:#669900">|</span> grep <span style="color:#669900">'root'</span> </code></span></span>- 1
查看當前系統的ip連接(Windows和Linux通用)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>an </code></span></span>- 1
將sh test.sh任務放到后臺,并將打印的日志輸出到nohup.out文件中,終端不再能夠接收任何輸入(標準輸入)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">nohup sh test<span style="color:#999999">.</span>sh <span style="color:#669900">&</span> </code></span></span>- 1
將sh test.sh任務放到后臺,并將打印的日志輸出到nohup.out文件中,終端能夠接收任何輸入
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">nohup sh test<span style="color:#999999">.</span>sh <span style="color:#669900">&</span> </code></span></span>- 1
8、添加Host地址
打開配置文件
- 1
在打開的文件中添加
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java"><span style="color:#98c379">49.235</span><span style="color:#98c379">.32</span><span style="color:#98c379">.164</span> www<span style="color:#999999">.</span>lydms<span style="color:#999999">.</span>com </code></span></span>- 1
保存文件后,重啟網絡
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java"><span style="color:#669900">/</span>etc<span style="color:#669900">/</span>init<span style="color:#999999">.</span>d<span style="color:#669900">/</span>network restart </code></span></span>- 1
重新加載成功:
十、yum常用命令
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">yum install iptables<span style="color:#669900">-</span>services 下載并安裝iptables
yum list 列出當前系統中安裝的所有包
yum search package_name 在rpm倉庫中搜尋軟件包
yum update package_name<span style="color:#999999">.</span>rpm 更新當前系統中所有安裝的rpm包
yum update package_name 更新一個rpm包
yum remove package_name 刪除一個rpm包
yum clean all 刪除所有緩存的包和頭文件
</code></span></span>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
十一、其他命令
查看歷史使用命令
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-yml">history </code></span></span>- 1
過濾與es相關命令
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-yml">history <span style="color:#999999">|</span> grep es </code></span></span>- 1
查看占用資源
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>au 占用的資源是從進程啟動開始,計算的平均占用資源,比如cpu等 top 實時占用的資源; </code></span></span>- 1
- 2
查看當前目錄所占存儲
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">du <span style="color:#669900">-</span>lh 查看當前文件下各文件夾占用存儲空間 du <span style="color:#669900">-</span>sh 查看當前文件夾所占存儲空間 du <span style="color:#669900">--</span>max<span style="color:#669900">-</span>depth<span style="color:#669900">=</span><span style="color:#669900"><</span>目錄層數<span style="color:#669900">></span> 超過指定層數的目錄后,予以忽略。 du <span style="color:#669900">--</span>max<span style="color:#669900">-</span>depth<span style="color:#669900">=</span><span style="color:#98c379">1</span> 只查看當前目錄下文件占用的存儲空間 </code></span></span>- 1
- 2
- 3
- 4
管道命令:
根據項目查看進程,更加PID查看項目,以及項目路徑
- 1
- 2
通過進程PID查看所占用的端口號
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>nap <span style="color:#669900">|</span>grep 進程<span style="color:#61aeee">ID</span><span style="color:#999999">(</span>PID<span style="color:#999999">)</span> </code></span></span>- 1
查看Linux下系統存儲使用率
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">df <span style="color:#669900">-</span>h 查看系統硬盤使用情況 </code></span></span>- 1
殺死進程(根據PID)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">kill <span style="color:#669900">-</span><span style="color:#98c379">9</span> <span style="color:#98c379">2630</span> 進程pid </code></span></span>- 1
關閉防火墻
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">service iptables stop 臨時關閉防火墻 chkconfig iptables off 防火墻開啟不啟動 service iptables status 查看防火墻狀態 </code></span></span>- 1
- 2
- 3
開機啟動選項
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">msconfig 查看開機啟動選項 chkconfig 查看開機啟動服務列表 </code></span></span>- 1
- 2
查看MySQL服務的程序的狀態
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">service mysql start 開啟MySQL service mysql status 查看MySQL的狀態 service mysql stop 關閉MySQL </code></span></span>- 1
- 2
- 3
十二、Linux內核優化
打開配置文件
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">vim <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>sysctl<span style="color:#999999">.</span>conf </code></span></span>- 1
加載新的配置(需開啟防火墻iptables,否則會報錯)
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">sysctl <span style="color:#669900">-</span>p </code></span></span>- 1
收藏的詳情地址
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-javav">https://www.cnblogs.com/lldsn/p/10489593.html </code></span></span>- 1
十三、用戶權限操作
1、添加用戶
添加用戶sum:
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">useradd –d <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>sum <span style="color:#669900">-</span>m sum </code></span></span>- 1
關于useradd的某些參數:
-u:?指定 UID,這個 UID 必須是大于等于500,并沒有其他用戶占用的 UID
-g:?指定默認組,可以是 GID 或者 GROUPNAME,同樣也必須真實存在
-G:?指定額外組
-c:?指定用戶的注釋信息
-d:?指定用戶的家目錄
已創建的用戶sum設置密碼
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">passwd sum </code></span></span>- 1
用戶添加root權限
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">visudo </code></span></span>- 1
找到root用戶權限位置
添加與root用戶相同權限
- 1
- 2
- 3
新建的用戶在面顯示
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>passwd </code></span></span>- 1
刪除用戶sum
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">userdel sum </code></span></span>- 1
刪除用戶文件夾
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">rm <span style="color:#669900">-</span>rf <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>sum </code></span></span>- 1
切換下剛才添加的用戶
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">su sum </code></span></span>- 1
回到root用戶
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">exit </code></span></span>- 1
2、添加組
添加用戶組
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">groupadd groupname </code></span></span>- 1
刪除用戶組
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">groupdel groupname </code></span></span>- 1
可以看到自己的分組和分組id
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>group </code></span></span>- 1
sum: x:1000:1000:: /usr/sum :/bin/bash
sum: x:0:1000:: /usr/sum :/bin/bash
十四、TOP
實時占用的資源:
<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">top </code></span></span>- 1
top命令執行結果分為兩個區域:統計信息區和進程信息區
1、統計信息區
TOP:任務隊列信息,與uptime命令執行結果相同.
- 15:33:39:系統時間
- up 5:40:主機已運行時間
- 2 users:用戶連接數(不是用戶數,who命令)
- load average: 1.09, 1.04, 0.98:系統平均負載,統計最近1,5,15分鐘的系統平均負載
Tasks:進程信息
- 123 total:進程總數
- 3 running:正在運行的進程數
- 120 sleeping:睡眠的進程數
- 0 stopped:停止的進程數
- 0 zombie:僵尸進程數
%CPU(s):CPU信息(當有多個CPU時,這些內容可能會超過兩行)
- 42.1 us:用戶空間所占CPU百分比
- 2.0 sy:內核空間占用CPU百分比
- 0.0 ni:用戶進程空間內改變過優先級的進程占用CPU百分比
- 49.2 id:空閑CPU百分比
- 0.0 wa:等待輸入輸出的CPU時間百分比
- 6.0 hi:硬件CPU終端占用百分比
- 0.7 si:軟中斷占用百分比
- 0.0 st:虛擬機占用百分比
KiB Mem:內存信息(與第五行的信息類似與free命令類似)
- 3780.9 total:物理內存總量
- 727.4 free:已使用的內存總量
- 668.8 used:空閑的內存總量(free + userd = total)
- 2384.7 buff/cache:用作內核緩存的內存量
KiB:swap信息
- 2048.0 total:交換分區總量
- 2046.0 free:已使用的交換分區總量
- 2.0 used:空閑交換分區總量
- 859.6 avail:緩沖的交換區總量,內存中的內容被換出到交換區,然后又被換入到內存,但是使用過的交換區沒有被覆蓋,交換區的這些內容已存在于內存中的交換區的大小,相應的內存再次被換出時可不必再對交換區寫入。
2、進程信息區
-
PID:進程id
-
USER:進程所有者的用戶名
-
PR:優先級
-
NI:nice值。負值表示高優先級,正值表示低優先級
-
RES:進程使用的、未被換出的物理內存的大小
-
%CPU:上次更新到現在的CPU時間占用百分比
-
%MEM:進程使用的物理內存百分比
-
TIME+:進程所使用的CPU時間總計,單位1/100秒
-
COMMAND:命令名/行
-
PPID:父進程id
-
RUSER:Real user name(看了好多,都是這樣寫,也不知道和user有什么區別,歡迎補充此處)
-
UID:進程所有者的id
-
VIRT:進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
-
GROUP:進程所有者的組名
-
TTY:啟動進程的終端名。不是從終端啟動的進程則顯示為?
-
NI:nice值。負值表示高優先級,正值表示低優先級
-
P:最后使用的CPU,僅在多CPU環境下有意義
-
TIME:進程使用的CPU時間總計,單位秒
-
SWAP:進程使用的虛擬內存中被被換出的大小
-
CODE:可執行代碼占用的物理內存大小
-
DATA:可執行代碼以外的部分(數據段+棧)占用的物理內存大小
-
SHR:共享內存大小
-
nFLT:頁面錯誤次數
-
nDRT:最后一次寫入到現在,被修改過的頁面數
-
S:進程狀態(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/停止,Z=僵尸進程)
-
WCHAN:若該進程在睡眠,則顯示睡眠中的系統函數名
-
Flags:任務標志
總結
以上是生活随笔為你收集整理的Linux的使用(常见)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查WiFi密码的三种方法
- 下一篇: kali Linux 源更新