日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux的使用(常见)

發布時間:2023/12/18 linux 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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命令的基本使用

序號命令對應英文作用
01lslist查看當前文件夾下的內容
02pwdprint work directory查看當前所在文件夾
03cd[目錄名]changge directory切換文件夾
04touch[文件名]touch如果文件不存在,新建文件
05mkdir[目錄名]make directory創建目錄
06rm[文件名]remove刪除指定文件
07clearclear清屏

小技巧:

  • ctrl + shift + =?放大終端窗口的字體顯示
  • ctrl + -?縮小終端窗口的字體顯示





自動補全

在敲出?文件?/?目錄?/?命令?的前幾個字母之后,按下 tab 鍵

  • 如果輸入的沒有歧義,系統會自動補全
  • 如果還存在其他?文件?/?目錄?/?命令?,再按一下 tab 鍵,系統會提示可能存在的命令
    小技巧
  • 按?上?/?下?光標鍵可以在曾經使用過的命令之間來回切換
  • 如果想要退出選擇,并且不想執行當前選中的命令,可以按?ctrl + c





其它命令





查找文件

find 命令功能非常強大,通常用來在 特定的目錄下 搜索 符合條件的文件

序號命令作用
01find [路徑] -name “*.py”查找指定路徑下擴展名是 .py 的文件,包括子目錄
  • 如果省略路徑,表示在當前文件夾下查找
  • 之前學習的通配符,在使用 find 命令時同時可用





演練目標

  • 1.搜索桌面目錄下,文件名包含 1 的文件
find -name "*1*"
  • 1
  • 2.搜索桌面目錄下,所有以 .txt 為擴展名的文件
find -name "*.txt"
  • 1
  • 3.搜索桌面目錄下,以數字 1 開頭的文件
find -name "1*"
  • 1





軟鏈接

序 號命令作用
01ln -s 被鏈接的源文件 鏈接文件建立文件的軟鏈接,用通俗的方式講類似于 Windows 下的快捷方式

注意:

  • 沒有?-s?選項建立的是一個 硬鏈接文件兩個文件占用相同大小的硬盤空間,工作中幾乎不會建立文件的硬鏈接
  • 源文件要使用絕對路徑,不能使用相對路徑,這樣可以方便移動鏈接文件后,仍然能夠正常使用




  • 演練目標

  • 將桌面目錄下的 01.py 移動到 demo/b/c 目錄下
  • 在桌面目錄下新建 01.py 的 軟鏈接 FirstPython分別使用 相對路徑 和 絕對路徑 建立 FirstPython 的軟鏈接
  • 將 FirstPython 移動到 demo 目錄下,對比使用 相對路徑 和 絕對路徑 的區別




  • 硬鏈接簡介(知道)

    在使用 ln 創建鏈接時,如果沒有 -s 選項,會創建一個 硬鏈接,而不是軟鏈接





    硬鏈接演練

  • 在?~/Desktop/demo?目錄下建立?~/Desktop/demo/b/c/01.py?的硬鏈接?01_hard
  • 使用 ls -l 查看文件的硬鏈接數(硬鏈接——有多少種方式可以訪問文件或者目錄)
  • 刪除?~/Desktop/demo/b/c/01.py?,并且使用 tree 來確認 demo 目錄下的三個鏈接文件文件軟硬鏈接的示意圖




  • 文件軟硬鏈接示意圖


    在 Linux 中,文件名 和 文件的數據 是分開存儲的

    • 提示:
      在 Linux 中,只有文件的?硬鏈接數?== 0 才會被刪除
      使用?ls -l?可以查看一個文件的硬鏈接的數量
      在日常工作中,幾乎不會建立文件的硬鏈接,知道即可





    打包壓縮

    • 打包壓縮 是日常工作中備份文件的一種方式
    • 在不同操作系統中,常用的打包壓縮方式是不同的選項 含義
      Windows 常用 rar
      Mac 常用 zip
      Linux 常用 tar.gz





    打包 / 解包

    tar?是 Linux 中最常用的?備份工具,此命令可以?把一系列文件?打包到 一個大文件中,也可以把一個 打包的大文件恢復成一系列文件
    tar?的命令格式如下:

    # 打包文件 tar -cvf 打包文件.tar 被打包的文件/路徑... # 解包文件 tar -xvf 打包文件.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 ,從而可以方便的實現壓縮和解壓縮的
    • 功能命令格式如下:
    # 壓縮文件 tar -zcvf 打包文件.tar.gz 被壓縮的文件/路徑... # 解壓縮文件 tar -zxvf 打包文件.tar.gz # 解壓縮到指定路徑 tar -zxvf 打包文件.tar.gz -C 目標路徑
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    選項含義
    -C解壓縮到指定目錄,注意:要解壓縮的目錄必須存在





    2) bzip2(two)

    • tar 與 bzip2 命令結合可以使用實現文件 打包和壓縮(用法和 gzip 一樣)
      tar 只負責打包文件,但不壓縮
      用 bzip2 壓縮 tar 打包后的文件,其擴展名一般用 xxx.tar.bz2
    • 在 tar 命令中有一個選項 -j 可以調用 bzip2 ,從而可以方便的實現壓縮和解壓縮的功能
    • 命令格式如下:
    # 壓縮文件 tar -jcvf 打包文件.tar.bz2 被壓縮的文件/路徑... # 解壓縮文件 tar -jxvf 打包文件.tar.bz2
    • 1
    • 2
    • 3
    • 4





    軟件安裝





    通過 apt 安裝/卸載軟件

    • apt 是?Advanced Packaging Tool?,是 Linux 下的一款安裝包管理工具
    • 可以在終端中方便的?安裝/卸載/更新軟件包
    # 1. 安裝軟件 $ sudo apt install 軟件包 # 2. 卸載軟件 $ sudo apt remove 軟件名 # 3. 更新已安裝的包 $ sudo apt upgrade
    • 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遞歸地刪除目錄下的內容,刪除文件夾 時必須加此參數





    拷貝和移動文件

    序號命令對應英文作用
    01tree [目錄名]tree以樹狀圖列出文件目錄結構
    02cp 源文件目標文件copy復制文件或者目錄
    03mv 源文件 目標文件move移動文件或者目錄/文件或者目錄重命名





    tree

    • tree 命令可以以樹狀圖列出文件目錄結構
    選項含義
    -d只顯示目錄





    cp

    • cp 命令的功能是將給出的?文件 或 目錄?復制到另一個?文件 或 目錄?中,相當DOS 下的 copy命令
    選 項含義
    -i覆蓋文件前提示
    -r若給出的源文件是目錄文件,則 cp 將遞歸復制該目錄下的所有子目錄和文件,目標文件必

    須為一個目錄名





    mv

    • mv 命令可以用來 移動 文件 或 目錄,也可以給 文件或目錄重命名
    選項含義
    -i覆蓋文件前提示





    查看文件內容

    序 號命令對應英文作用
    01cat 文件名concatenate查看文件內容、創建文件、文件合并、追加文件內容等功能
    02more 文件名more分屏顯示文件內容
    03grep 搜索文本 文件名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 :在命令執行結果的基礎上查詢指定的文本





    系統信息相關命令





    時間和日期

    序號命令作用
    01date查看系統時間
    02calcalendar 查看日歷, -y 選項可以查看一年的日歷





    磁盤信息

    序號命令作用
    01df -hdisk free 顯示磁盤剩余空間
    02du -h [目錄名]disk usage 顯示目錄下的文件大小





    進程信息

    所謂進程,通俗地說就是?當前正在執行的一個程序

    序號命令作用
    01ps auxprocess status 查看進程的詳細狀況
    02top動態顯示運行中的進程并且排序
    03kill [-9] 進程代號終止指定代號的進程, -9 表示強行終止

    ps 默認只會顯示當前用戶通過終端啟動的應用程序
    ps 選項說明

    選項含義
    a顯示終端上的所有進程,包括其他用戶的進程
    u顯示進程的詳細狀態
    x顯示沒有控制終端的進程

    提示:使用 kill 命令時,最好只終止由當前用戶開啟的進程,而不要終止 root 身份開啟的進程,否則可能導致系統崩潰

    • 要退出 top 可以直接輸入 q





    用戶權限相關命令





    組管理

    提示:創建組 / 刪除組 的終端命令都需要通過 sudo 執行

    序號命令作用
    01groupadd 組名添加組
    02groupdel 組名刪除組
    03cat /etc/group確認組信息
    04chgrp -R 組名 文件/目錄名遞歸修改文件/目錄的所屬組

    提示:
    組信息保存在 /etc/group 文件中
    /etc 目錄是專門用來保存 系統配置信息 的目錄





    用戶管理

    提示:創建用戶 / 刪除用戶 / 修改其他用戶密碼 的終端命令都需要通過 sudo 執行





    創建用戶/設置密碼/刪除用戶


    提示:

    • 創建用戶時,如果忘記添加 -m 選項指定新用戶的家目錄 —— 最簡單的方法就是刪除用戶,重新創建
    • 創建用戶時,默認會創建一個和用戶名同名的組名
    • 用戶信息保存在 /etc/passwd 文件中





    查看用戶信息

    序號命令作用
    01id [用戶名]查看用戶 UID 和 GID 信息
    02who查看當前所有登錄的用戶列表
    03whoami查看當前登錄用戶的賬戶名



    which(重要)

    提示

    • /etc/passwd 是用于保存用戶信息的文件
    • /usr/bin/passwd 是用于修改用戶密碼的程序
      which 命令可以查看執行命令所在位置,例如:
    which ls # 輸出 # /bin/ls which useradd # 輸出 # /usr/sbin/useradd
    • 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命令的位置





    切換用戶

    序 號命令作用說明
    01su - 用戶名切換用戶,并且切換目錄- 可以切換到用戶家目錄,否則保持位置不變
    02exit退出當前登錄賬戶

    su 不接用戶名,可以切換到 root ,但是不推薦使用,因為不安全
    exit 示意圖如下:





    修改文件權限

    序號命令作用
    01chown修改擁有者
    02chgrp修改組
    03chmod修改權限

    命令格式如下:

    # 修改文件|目錄的擁有者 chown 用戶名 文件名|目錄名 # 遞歸修改文件|目錄的組 chgrp -R 組名 文件名|目錄名 # 遞歸修改文件權限 chmod -R 755 文件名|目錄名
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6





    遠程管理常用命令





    關機/重啟

    序號命令對應英文作用
    01shutdown選項 時間 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 分鐘之后 關閉電腦
    遠程維護服務器時,最好不要關閉系統,而應該重新啟動系統





    查看配置網卡信息

    序 號命令對應英文作用
    01ifconfigconfigure a network interface查看/配置計算機當前的網卡配置信息
    02ping 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的簡單使用:

    ssh [-p port] user@remote
    • 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?而不是小寫的

    # 把本地當前目錄下的 01.py 文件 復制到 遠程 家目錄下的 Desktop/01.py # 注意:`:` 后面的路徑如果不是絕對路徑,則以用戶的家目錄作為參照路徑 scp -P port 01.py user@remote:Desktop/01.py # 把遠程 家目錄下的 Desktop/01.py 文件 復制到 本地當前目錄下的 01.py scp -P port user@remote:Desktop/01.py 01.py # 加上 -r 選項可以傳送文件夾 # 把當前目錄下的 demo 文件夾 復制到 遠程 家目錄下的 Desktop scp -r demo user@remote:Desktop # 把遠程 家目錄下的 Desktop 復制到 當前目錄下的 demo 文件夾 scp -r user@remote:Desktop demo
    • 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的區別:

  • less可以按鍵盤上下方向鍵顯示上下內容,more不能通過上下方向鍵控制顯示
  • less不必讀整個文件,加載速度會比more更快
  • less退出后shell不會留下剛顯示的內容,而more退出后會在shell上留下剛顯示的內容.
  • 由于more不能后退.
  • 實時查看文件后幾行(實時查看日志)

    <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文件中(沒有則創建一個)

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">echo <span style="color:#669900">'Hello World'</span> <span style="color:#669900">></span> <span style="color:#669900">/</span>root<span style="color:#669900">/</span>test<span style="color:#999999">.</span>txt </code></span></span>
    • 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

    查看某文件下的用戶操作日志
    到達操作的目錄下,執行下面的程序:

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#999999">.</span>bash_history </code></span></span>
    • 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、刪除軟連接

    <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>data </code></span></span>
    • 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服務器下載安裝包鏡像命令

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">wget 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>elasticsearch<span style="color:#669900">/</span><span style="color:#98c379">7.8</span><span style="color:#98c379">.0</span><span style="color:#669900">/</span>elasticsearch<span style="color:#669900">-</span><span style="color:#98c379">7.8</span><span style="color:#98c379">.0</span><span style="color:#669900">-</span>windows<span style="color:#669900">-</span>x86_64<span style="color:#999999">.</span>zip </code></span></span>
    • 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、查看處于各種連接狀態數量(ESTABLISHEDCLOSE_WAITTIME_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狀態連接

    <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=="ESTABLISHED"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'</span> </code></span></span>
    • 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 包, 檢查與其是否聯通

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ping <span style="color:#669900">-</span>c <span style="color:#98c379">4</span> www<span style="color:#999999">.</span>lydms<span style="color:#999999">.</span>com </code></span></span>
    • 1

    4、netstat 命令
    netstat 命令用于顯示各種網絡相關信息,如網絡連接, 路由表, 接口狀態等等;
    列出所有處于監聽狀態的tcp端口:

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>lt </code></span></span>
    • 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.用于查看某一端口的占用情況

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">lsof <span style="color:#669900">-</span>i<span style="color:#669900">:</span><span style="color:#98c379">8080</span> </code></span></span>
    • 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 進程信息

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps aux <span style="color:#669900">|</span> grep <span style="color:#669900">'ssh'</span> </code></span></span>
    • 1

    7、管道命令
    簡單來說, Linux 中管道的作用是將上一個命令的輸出作為下一個命令的輸入, 像 pipe 一樣將各個命令串聯起來執行, 管道的操作符是 |
    管道命令查看當前運行的程序中,名稱為java的程序

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>ef<span style="color:#669900">|</span>grep java </code></span></span>
    • 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地址
    打開配置文件

    <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>hosts </code></span></span>
    • 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查看項目,以及項目路徑

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>ef 查看所有的進程 ps <span style="color:#669900">-</span>ef <span style="color:#669900">|</span> grep mysql 查看mysql相關的進程 </code></span></span>
    • 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用戶相同權限

    <span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">## Allow root <span style="color:#c678dd">to</span> run any commands anywhere root ALL<span style="color:#669900">=</span><span style="color:#999999">(</span>ALL<span style="color:#999999">)</span> ALL eses ALL<span style="color:#669900">=</span><span style="color:#999999">(</span>ALL<span style="color:#999999">)</span> ALL </code></span></span>
    • 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的使用(常见)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。