Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产精品第1页,中文字幕在线不卡,嫩草在线视频www免费观看

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          你知道這些Linux命令嗎?165條技術(shù)人需要了解的Linux系統(tǒng)命令

          源:banana 童

          www.cnblogs.com/bananaaa/p/7774467.html

          linux 命令是對(duì) Linux 系統(tǒng)進(jìn)行管理的命令。對(duì)于 Linux 系統(tǒng)來(lái)說(shuō),無(wú)論是中央處理器、內(nèi)存、磁盤驅(qū)動(dòng)器、鍵盤、鼠標(biāo),還是用戶等都是文件, Linux 系統(tǒng)管理的命令是它正常運(yùn)行的核心,與之前的 DOS 命令類似。linux 命令在系統(tǒng)中有兩種類型:內(nèi)置 Shell 命令和 Linux 命令。

          1.線上查詢及幫助命令(2個(gè))

          man

          查看命令幫助,命令的詞典,更復(fù)雜的還有 info,但不常用。

          help

          查看 Linux 內(nèi)置命令的幫助,比如 cd 命令

          2.文件和目錄操作命令 (18 個(gè))

          ls

          全拼 list,功能是列出目錄的內(nèi)容及其內(nèi)容屬性信息。

          cd

          全拼 change directory,功能是從當(dāng)前工作目錄切換到指定的工作目錄。

          cp

          全拼 copy,其功能為復(fù)制文件或目錄。

          find

          查找的意思,用于查找目錄及目錄下的文件。

          mkdir

          全拼 make directories,其功能是創(chuàng)建目錄。

          mv

          全拼 move,其功能是移動(dòng)或重命名文件。

          pwd

          全拼 print working directory,其功能是顯示當(dāng)前工作目錄的絕對(duì)路徑。

          rename

          用于重命名文件。

          rm

          全拼 remove,其功能是刪除一個(gè)或多個(gè)文件或目錄。

          rmdir

          全拼 remove empty directories,功能是刪除空目錄。

          touch

          創(chuàng)建新的空文件,改變已有文件的時(shí)間戳屬性。

          tree

          功能是以樹形結(jié)構(gòu)顯示目錄下的內(nèi)容。



          dirname

          顯示文件或目錄路徑。

          chattr

          改變文件的擴(kuò)展屬性。

          lsattr

          查看文件擴(kuò)展屬性。

          file

          顯示文件的類型。

          md5sum

          計(jì)算和校驗(yàn)文件的 MD5 值。

          3.查看文件及內(nèi)容處理命令(21 個(gè))

          cat

          全拼 concatenate,功能是用于連接多個(gè)文件并且打印到屏幕輸出或重定向到指定文件中。

          tac

          tac 是 cat 的反向拼寫,因此命令的功能為反向顯示文件內(nèi)容。

          more

          分頁(yè)顯示文件內(nèi)容。

          less

          分頁(yè)顯示文件內(nèi)容,more 命令的相反用法。

          head

          顯示文件內(nèi)容的頭部。

          tail

          顯示文件內(nèi)容的尾部。

          cut

          將文件的每一行按指定分隔符分割并輸出。

          split

          分割文件為不同的小片段。

          paste

          按行合并文件內(nèi)容。

          sort

          對(duì)文件的文本內(nèi)容排序。

          uniq

          去除重復(fù)行。oldboy

          wc

          統(tǒng)計(jì)文件的行數(shù)、單詞數(shù)或字節(jié)數(shù)。

          iconv

          轉(zhuǎn)換文件的編碼格式。

          dos2unix

          將 DOS 格式文件轉(zhuǎn)換成 UNIX 格式。

          diff

          全拼 difference,比較文件的差異,常用于文本文件。

          vimdiff

          命令行可視化文件比較工具,常用于文本文件。

          rev

          反向輸出文件內(nèi)容。

          grep/egrep

          過(guò)濾字符串,三劍客老三。

          join

          按兩個(gè)文件的相同字段合并。

          tr

          替換或刪除字符。

          vi/vim

          命令行文本編輯器。

          4.文件壓縮及解壓縮命令(4 個(gè))

          tar

          打包壓縮。oldboy

          unzip

          解壓文件。

          gzip

          gzip 壓縮工具。

          zip

          壓縮工具。

          5.信息顯示命令(11 個(gè))

          uname

          顯示操作系統(tǒng)相關(guān)信息的命令。

          hostname

          顯示或者設(shè)置當(dāng)前系統(tǒng)的主機(jī)名。

          dmesg

          顯示開機(jī)信息,用于診斷系統(tǒng)故障。

          uptime

          顯示系統(tǒng)運(yùn)行時(shí)間及負(fù)載。

          stat

          顯示文件或文件系統(tǒng)的狀態(tài)。

          du

          計(jì)算磁盤空間使用情況。

          df

          報(bào)告文件系統(tǒng)磁盤空間的使用情況。

          top

          實(shí)時(shí)顯示系統(tǒng)資源使用情況。

          free

          查看系統(tǒng)內(nèi)存。

          date

          顯示與設(shè)置系統(tǒng)時(shí)間。

          cal

          查看日歷等時(shí)間信息。

          6.搜索文件命令(4 個(gè))

          which

          查找二進(jìn)制命令,按環(huán)境變量 PATH 路徑查找。

          find

          從磁盤遍歷查找文件或目錄。

          whereis

          查找二進(jìn)制命令,按環(huán)境變量 PATH 路徑查找。

          locate

          從數(shù)據(jù)庫(kù) (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新庫(kù)。

          7.用戶管理命令(10 個(gè))

          useradd

          添加用戶。

          usermod

          修改系統(tǒng)已經(jīng)存在的用戶屬性。

          userdel

          刪除用戶。

          groupadd

          添加用戶組。

          passwd

          修改用戶密碼。

          chage

          修改用戶密碼有效期限。

          id

          查看用戶的 uid,gid 及歸屬的用戶組。

          su

          切換用戶身份。

          visudo

          編輯 / etc/sudoers 文件的專屬命令。

          sudo

          以另外一個(gè)用戶身份(默認(rèn) root 用戶)執(zhí)行事先在 sudoers 文件允許的命令。

          8.基礎(chǔ)網(wǎng)絡(luò)操作命令(11 個(gè))

          telnet

          使用 TELNET 協(xié)議遠(yuǎn)程登錄。

          ssh

          使用 SSH 加密協(xié)議遠(yuǎn)程登錄。

          scp

          全拼 secure copy,用于不同主機(jī)之間復(fù)制文件。

          wget

          命令行下載文件。

          ping

          測(cè)試主機(jī)之間網(wǎng)絡(luò)的連通性。

          route

          顯示和設(shè)置 linux 系統(tǒng)的路由表。

          ifconfig

          查看、配置、啟用或禁用網(wǎng)絡(luò)接口的命令。

          ifup

          啟動(dòng)網(wǎng)卡。

          ifdown

          關(guān)閉網(wǎng)卡。

          netstat

          查看網(wǎng)絡(luò)狀態(tài)。

          ss

          查看網(wǎng)絡(luò)狀態(tài)。

          9.深入網(wǎng)絡(luò)操作命令(9 個(gè))

          nmap

          網(wǎng)絡(luò)掃描命令。

          lsof

          全名 list open files,也就是列舉系統(tǒng)中已經(jīng)被打開的文件。

          mail

          發(fā)送和接收郵件。

          mutt

          郵件管理命令。

          nslookup

          交互式查詢互聯(lián)網(wǎng) DNS 服務(wù)器的命令。

          dig

          查找 DNS 解析過(guò)程。

          host

          查詢 DNS 的命令。

          traceroute

          追蹤數(shù)據(jù)傳輸路由狀況。

          tcpdump

          命令行的抓包工具。

          10.有關(guān)磁盤與文件系統(tǒng)的命令(16 個(gè))

          mount

          掛載文件系統(tǒng)。

          umount

          卸載文件系統(tǒng)。

          fsck

          檢查并修復(fù) Linux 文件系統(tǒng)。

          dd

          轉(zhuǎn)換或復(fù)制文件。

          dumpe2fs

          導(dǎo)出 ext2/ext3/ext4 文件系統(tǒng)信息。

          dump

          ext2/3/4 文件系統(tǒng)備份工具。

          fdisk

          磁盤分區(qū)命令,適用于 2TB 以下磁盤分區(qū)。

          parted

          磁盤分區(qū)命令,沒(méi)有磁盤大小限制,常用于 2TB 以下磁盤分區(qū)。

          mkfs

          格式化創(chuàng)建 Linux 文件系統(tǒng)。

          partprobe

          更新內(nèi)核的硬盤分區(qū)表信息。

          e2fsck

          檢查 ext2/ext3/ext4 類型文件系統(tǒng)。

          mkswap

          創(chuàng)建 Linux 交換分區(qū)。

          swapon

          啟用交換分區(qū)。

          swapoff

          關(guān)閉交換分區(qū)。

          sync

          將內(nèi)存緩沖區(qū)內(nèi)的數(shù)據(jù)寫入磁盤。

          resize2fs

          調(diào)整 ext2/ext3/ext4 文件系統(tǒng)大小。

          11.系統(tǒng)權(quán)限及用戶授權(quán)相關(guān)命令(4 個(gè))

          chmod

          改變文件或目錄權(quán)限。

          chown

          改變文件或目錄的屬主和屬組。

          chgrp

          更改文件用戶組。

          umask

          顯示或設(shè)置權(quán)限掩碼。

          12.查看系統(tǒng)用戶登陸信息的命令(7 個(gè))

          whoami

          顯示當(dāng)前有效的用戶名稱,相當(dāng)于執(zhí)行 id -un 命令。

          who

          顯示目前登錄系統(tǒng)的用戶信息。

          w

          顯示已經(jīng)登陸系統(tǒng)的用戶列表,并顯示用戶正在執(zhí)行的指令。

          last

          顯示登入系統(tǒng)的用戶。

          lastlog

          顯示系統(tǒng)中所有用戶最近一次登錄信息。

          users

          顯示當(dāng)前登錄系統(tǒng)的所有用戶的用戶列表。

          finger

          查找并顯示用戶信息。

          13.內(nèi)置命令及其它(19 個(gè))

          echo

          打印變量,或直接輸出指定的字符串

          printf

          將結(jié)果格式化輸出到標(biāo)準(zhǔn)輸出。

          rpm

          管理 rpm 包的命令。

          yum

          自動(dòng)化簡(jiǎn)單化地管理 rpm 包的命令。

          watch

          周期性的執(zhí)行給定的命令,并將命令的輸出以全屏方式顯示。

          alias

          設(shè)置系統(tǒng)別名。

          unalias

          取消系統(tǒng)別名。

          date

          查看或設(shè)置系統(tǒng)時(shí)間。

          clear

          清除屏幕,簡(jiǎn)稱清屏。

          history

          查看命令執(zhí)行的歷史紀(jì)錄。

          eject

          彈出光驅(qū)。

          time

          計(jì)算命令執(zhí)行時(shí)間。

          nc

          功能強(qiáng)大的網(wǎng)絡(luò)工具。

          xargs

          將標(biāo)準(zhǔn)輸入轉(zhuǎn)換成命令行參數(shù)。

          exec

          調(diào)用并執(zhí)行指令的命令。

          export

          設(shè)置或者顯示環(huán)境變量。

          unset

          刪除變量或函數(shù)。

          type

          用于判斷另外一個(gè)命令是否是內(nèi)置命令。

          bc

          命令行科學(xué)計(jì)算器

          14.系統(tǒng)管理與性能監(jiān)視命令 (9 個(gè))

          chkconfig

          管理 Linux 系統(tǒng)開機(jī)啟動(dòng)項(xiàng)。

          vmstat

          虛擬內(nèi)存統(tǒng)計(jì)。

          mpstat

          顯示各個(gè)可用 CPU 的狀態(tài)統(tǒng)計(jì)。

          iostat

          統(tǒng)計(jì)系統(tǒng) IO。

          sar

          全面地獲取系統(tǒng)的 CPU、運(yùn)行隊(duì)列、磁盤 I/O、分頁(yè)(交換區(qū))、內(nèi)存、 CPU 中斷和網(wǎng)絡(luò)等性能數(shù)據(jù)。

          ipcs

          用于報(bào)告 Linux 中進(jìn)程間通信設(shè)施的狀態(tài),顯示的信息包括消息列表、共享內(nèi)存和信號(hào)量的信息。

          ipcrm

          用來(lái)刪除一個(gè)或更多的消息隊(duì)列、信號(hào)量集或者共享內(nèi)存標(biāo)識(shí)。

          strace

          用于診斷、調(diào)試 Linux 用戶空間跟蹤器。我們用它來(lái)監(jiān)控用戶空間進(jìn)程和內(nèi)核的交互,比如系統(tǒng)調(diào)用、信號(hào)傳遞、進(jìn)程狀態(tài)變更等。

          ltrace

          命令會(huì)跟蹤進(jìn)程的庫(kù)函數(shù)調(diào)用, 它會(huì)顯現(xiàn)出哪個(gè)庫(kù)函數(shù)被調(diào)用。

          15.關(guān)機(jī) / 重啟 / 注銷和查看系統(tǒng)信息的命令(6 個(gè))

          shutdown

          關(guān)機(jī)。

          halt

          關(guān)機(jī)。

          poweroff

          關(guān)閉電源。

          logout

          退出當(dāng)前登錄的 Shell。

          exit

          退出當(dāng)前登錄的 Shell。

          Ctrl+d

          退出當(dāng)前登錄的 Shell 的快捷鍵。

          16.進(jìn)程管理相關(guān)命令(15 個(gè))

          bg

          將一個(gè)在后臺(tái)暫停的命令,變成繼續(xù)執(zhí)行 (在后臺(tái)執(zhí)行)。

          fg

          將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行。

          jobs

          查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令。

          kill

          終止進(jìn)程。

          killall

          通過(guò)進(jìn)程名終止進(jìn)程。

          pkill

          通過(guò)進(jìn)程名終止進(jìn)程。

          crontab

          定時(shí)任務(wù)命令。

          ps

          顯示進(jìn)程的快照。

          pstree

          樹形顯示進(jìn)程。

          nice/renice

          調(diào)整程序運(yùn)行的優(yōu)先級(jí)。

          nohup

          忽略掛起信號(hào)運(yùn)行指定的命令。

          pgrep

          查找匹配條件的進(jìn)程。

          runlevel

          查看系統(tǒng)當(dāng)前運(yùn)行級(jí)別。

          init

          切換運(yùn)行級(jí)別。

          service

          啟動(dòng)、停止、重新啟動(dòng)和關(guān)閉系統(tǒng)服務(wù),還可以顯示所有系統(tǒng)服務(wù)的當(dāng)前狀態(tài)。

          Linux常用命令速查手冊(cè)】關(guān)注【入門小站】,后臺(tái)回復(fù) 「1001」 自取。

          route命令用來(lái)顯示并設(shè)置Linux內(nèi)核中的網(wǎng)絡(luò)路由表,route命令設(shè)置的路由主要是靜態(tài)路由。要實(shí)現(xiàn)兩個(gè)不同的子網(wǎng)之間的通信,需要一臺(tái)連接兩個(gè)網(wǎng)絡(luò)的路由器,或者同時(shí)位于兩個(gè)網(wǎng)絡(luò)的網(wǎng)關(guān)來(lái)實(shí)現(xiàn)。

          在Linux系統(tǒng)中設(shè)置路由通常是為了解決以下問(wèn)題:該Linux系統(tǒng)在一個(gè)局域網(wǎng)中,局域網(wǎng)中有一個(gè)網(wǎng)關(guān),能夠讓機(jī)器訪問(wèn)Internet,那么就需要將這臺(tái)機(jī)器的ip地址設(shè)置為L(zhǎng)inux機(jī)器的默認(rèn)路由。要注意的是,直接在命令行下執(zhí)行route命令來(lái)添加路由,不會(huì)永久保存,當(dāng)網(wǎng)卡重啟或者機(jī)器重啟之后,該路由就失效了;可以在/etc/rc.local中添加route命令來(lái)保證該路由設(shè)置永久有效。

          命令語(yǔ)法

          route(選項(xiàng))(參數(shù))

          命令選項(xiàng)

          • -A:設(shè)置地址類型;
          • -C:打印將Linux核心的路由緩存;
          • -v:詳細(xì)信息模式;
          • -n:不執(zhí)行DNS反向查找,直接顯示數(shù)字形式的IP地址;
          • -e:netstat格式顯示路由表;
          • -net:到一個(gè)網(wǎng)絡(luò)的路由表;
          • -host:到一個(gè)主機(jī)的路由表。

          命令參數(shù)

          • add:增加指定的路由記錄;
          • del:刪除指定的路由記錄;
          • target:目的網(wǎng)絡(luò)或目的主機(jī);
          • gw:設(shè)置默認(rèn)網(wǎng)關(guān);
          • mss:設(shè)置TCP的最大區(qū)塊長(zhǎng)度(MSS),單位MB;
          • window:指定通過(guò)路由表的TCP連接的TCP窗口大小;
          • dev:路由記錄所表示的網(wǎng)絡(luò)接口。

          顯示當(dāng)前路由

          > route
          

          顯示當(dāng)前路由表(顯示ip地址)

          > route -n
          

          route -n不執(zhí)行DNS反向查找,直接顯示數(shù)字形式的IP地址,列出速度會(huì)比route快

          字段說(shuō)明

          含義

          Destination

          目標(biāo)網(wǎng)絡(luò)或目標(biāo)主機(jī)。Destination 為 default(0.0.0.0)時(shí),表示這個(gè)是默認(rèn)網(wǎng)關(guān),所有數(shù)據(jù)都發(fā)到這個(gè)網(wǎng)關(guān)(這里是 10.139.128.1)

          Gateway

          網(wǎng)關(guān)地址,0.0.0.0 表示當(dāng)前記錄對(duì)應(yīng)的 Destination 跟本機(jī)在同一個(gè)網(wǎng)段,通信時(shí)不需要經(jīng)過(guò)網(wǎng)關(guān)

          Genmask

          Destination 字段的網(wǎng)絡(luò)掩碼,Destination 是主機(jī)時(shí)需要設(shè)置為 255.255.255.255,是默認(rèn)路由時(shí)會(huì)設(shè)置為 0.0.0.0

          Flags

          標(biāo)記,含義參考表格后面的解釋

          Metric

          路由距離,到達(dá)指定網(wǎng)絡(luò)所需的中轉(zhuǎn)數(shù),是大型局域網(wǎng)和廣域網(wǎng)設(shè)置所必需的 (不在Linux內(nèi)核中使用。)

          Ref

          路由項(xiàng)引用次數(shù) (不在Linux內(nèi)核中使用。)

          Use

          此路由項(xiàng)被路由軟件查找的次數(shù)

          Iface

          網(wǎng)卡名字,例如 eth0

          Flags 含義

          • U 路由是活動(dòng)的
          • H 目標(biāo)是個(gè)主機(jī)
          • G 需要經(jīng)過(guò)網(wǎng)關(guān)
          • R 恢復(fù)動(dòng)態(tài)路由產(chǎn)生的表項(xiàng)
          • D 由路由的后臺(tái)程序動(dòng)態(tài)地安裝
          • M 由路由的后臺(tái)程序修改
          • ! 拒絕路由

          主機(jī)路由

          路由表中指向單個(gè) IP 地址或主機(jī)名的路由記錄,其 Flags 字段為 H。下面示例中,對(duì)于 10.0.0.8 這個(gè)主機(jī),通過(guò)網(wǎng)關(guān) 192.168.0.1 網(wǎng)關(guān)路由:

          > route add -net 10.0.0.8 gateway 192.168.0.1 netmask 255.255.255.255 dev eth0
          > route -n 
          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          10.0.0.8        192.168.0.1     255.255.255.255 UGH   0      0        0 eth0
          

          網(wǎng)絡(luò)路由

          主機(jī)可以到達(dá)的網(wǎng)絡(luò)。下面示例中,對(duì)于10.0.0.0/24這個(gè)網(wǎng)絡(luò),通過(guò)網(wǎng)關(guān)192.168.0.1網(wǎng)關(guān)路由:

          > route add -net 10.0.0.0/24 gateway 192.168.0.1   dev eth0
          > route -n
          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          10.0.0.0        192.168.0.1     255.255.255.0   UG    0      0        0 eth0
          
          //或者
          
          > route add -net 10.0.0.0 gateway 192.168.0.1  dev eth0
          

          默認(rèn)路由

          當(dāng)目標(biāo)主機(jī)的 IP 地址或網(wǎng)絡(luò)不在路由表中時(shí),數(shù)據(jù)包就被發(fā)送到默認(rèn)路由(默認(rèn)網(wǎng)關(guān))上。默認(rèn)路由的 Destination 是 default 或 0.0.0.0。

          > route
          default         gateway         0.0.0.0         UG    100    0        0 eth0
          

          添加同一個(gè)局域網(wǎng)的主機(jī)

          不指定 gw 選項(xiàng)時(shí),添加的路由記錄不使用網(wǎng)關(guān):

          > route add -net 10.10.1.0 netmask 255.255.255.0 dev eth0
          > route
          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          10.10.1.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
          

          屏蔽路由

          > route add -net 10.10.1.0 netmask 255.255.255.0 reject
          > route
          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          10.10.1.0       -               255.255.255.0   !     0      -        0 -
          

          刪除可用路由

          > route del -net 10.0.0.0 netmask 255.255.255.0
          

          同時(shí)匹配多個(gè)路由表時(shí),執(zhí)行一次刪除一條

          刪除和添加設(shè)置默認(rèn)網(wǎng)關(guān)

          添加或刪除默認(rèn)網(wǎng)關(guān)時(shí),Linux 會(huì)自動(dòng)檢查網(wǎng)關(guān)的可用性:

          > route add default gw 192.168.1.1
          SIOCADDRT: Network is unreachable
          > route del default gw 192.168.1.1
          SIOCDELRT: No such process
          

          原文鏈接:https://rumenz.com/rumenbiji/linux-route.html
          微信公眾號(hào):入門小站

          【Linux常用命令速查手冊(cè)】關(guān)注【入門小站】,后臺(tái)回復(fù) 「1001」 自取。

          信大家對(duì) Linux 肯定是不陌生的,很多同學(xué)在學(xué)習(xí) Linux 的時(shí)候比較頭疼,覺(jué)得比較難學(xué),命令多記不住,其實(shí)我們?cè)趯W(xué)習(xí) Linux 的時(shí)候,要把我們的大腦當(dāng)成內(nèi)存來(lái)用,而不是硬盤。

          本文用的是 Ubuntu 操作系統(tǒng),版本為 ubuntu-21.04-desktop-amd64.iso。下載地址:

          http://mirrors.aliyun.com/ubuntu-releases/

          用的遠(yuǎn)程連接工具為 FinalShell,下載地址:

          http://www.hostbuf.com/t/988.html

          幫助命令

          Linux 中有很多命令,命令也有很多參數(shù),那我們要怎么去學(xué)習(xí)呢?我們可以借助幫助文檔,這里給大家介紹 3 個(gè)幫助命令:

          • man
          • help
          • info

          man

          man 是 manual 的縮寫,有問(wèn)題找男人,當(dāng)時(shí)這是一句開玩笑的話。

          man 命令的使用也非常簡(jiǎn)單,示例如下:

          man ls
          

          man 也是一條命令,分為 9 章,可以使用 man 命令獲得 man 的幫助:

          man man 
          

          有的同學(xué)一定會(huì)好奇,為什么 man 命令給我們 9 章,這是因?yàn)槊詈拖到y(tǒng)文件有的時(shí)候會(huì)出現(xiàn)重名的情況,比如:

          passwd        # 這是命令
          /etc/passwd    # 這是配置文件
          

          如果不知道是命令還是配置文件,加上 -a 參數(shù):

          man -a passwd
          

          這個(gè)時(shí)候會(huì)先查看 passwd 命令,退出后會(huì)顯示:

          可以根據(jù)提示繼續(xù)查看,還是跳過(guò)當(dāng)前的命令查看下一個(gè)命令:

          help 幫助

          這里我先要說(shuō)一個(gè)內(nèi)部命令和外部命令的概念,shell 自帶的命令稱為內(nèi)部命令,其他的是外部命令。

          那要怎么區(qū)分到底是內(nèi)部還是外部呢?通過(guò) type,后面跟上命令。

          juran@juran-virtual-machine:~$ type cd
          cd 是 shell 內(nèi)建
          

          如果是內(nèi)部命令使用 help:

          help cd
          

          如果是外部命令使用 --help:

          ls --help
          

          info 幫助

          info 幫助比 help 更詳細(xì),作為 help 的補(bǔ)充,大多數(shù)的情況下,我們使用 man 和 help 就足夠了。

          命令格式

          終端的命令組成:

          command [-options] [parameter]
          
          • command:命令名,
          • [-options]:選項(xiàng),可以有零個(gè)、一個(gè)或者多個(gè)選項(xiàng),多個(gè)選項(xiàng)可以合并,命令的選項(xiàng)用于調(diào)整命令功能
          • [parameter]:參數(shù),可以有零個(gè)、一個(gè) 或者 多個(gè)參數(shù),參數(shù)是命令的操作對(duì)象,一般文件、目錄、用戶和進(jìn)程等可以作為參數(shù)被命令操作
          • []:代表可選

          查看目錄命令

          在 Linux 中一切皆文件,而且 Linux 中是沒(méi)有盤符的概念的,所有的文件都在根目錄下,接下來(lái)我們就來(lái)看下查看目錄的命令有哪些。

          ls 命令:列出文件夾中的內(nèi)容,ls 只能查看一層目錄信息:

          ls     # 查看當(dāng)前文件夾的內(nèi)容
          
          ls /bin    # 查看 bin 目錄下的文件
          

          ls 命令還有一些比較常用的選項(xiàng):

          命令選項(xiàng)

          說(shuō)明

          -l

          以列表方式顯示

          -h

          件大小單位顯示,默認(rèn)是字節(jié)

          -a

          顯示隱藏文件和隱藏目錄

          tree 命令:以樹狀方式顯示目錄信息,tree 可以查看多層目錄信息。

          tree        # 以樹狀方式顯示當(dāng)前目錄信息
          
          tree /bin    # 如果提示沒(méi)有 tree 命令,可以通過(guò) apt install tree 進(jìn)行安裝
          

          查看當(dāng)前目錄路徑

          pwd 命令:查看當(dāng)前目錄路徑,是 print work directory 的縮寫。

          切換目錄命令

          cd 命令:切換目錄,是 change directory 的縮寫。

          cd 命令有幾個(gè)常用的寫法:

          命令

          說(shuō)明

          cd 目錄

          切換到指定目錄

          cd ~

          切換到當(dāng)前用戶的主目錄

          cd ..

          切換到上一級(jí)目錄

          cd .

          切換到當(dāng)前目錄

          cd -

          切換到上一次目錄

          注意:cd 命令切換目錄時(shí),這個(gè)目錄必須存在。cd 后面不寫目錄等價(jià)于 cd ~。

          創(chuàng)建、刪除文件及目錄命令

          touch 命令:創(chuàng)建指定文件

          touch abc.txt        # Linux 里面文件可以沒(méi)有后綴的
          
          touch a b c            # 可以一次創(chuàng)建多個(gè)文件
          

          mkdir 命令:創(chuàng)建目錄(文件夾)

          mkdir movie        # 創(chuàng)建 movie 目錄
          
          mkdir a b c        # 創(chuàng)建 a b c 目錄
          

          如果我想創(chuàng)建雙層的目錄,來(lái)試試:

          mkdir movie/active        # 想要?jiǎng)?chuàng)建 movie 下面的 active 目錄,而且 movie 目錄是沒(méi)有被創(chuàng)建過(guò)的
          
          mkdir: 無(wú)法創(chuàng)建目錄 “movie/active”: 沒(méi)有那個(gè)文件或目錄
          

          這是我們可以通過(guò)選項(xiàng) -p:

          mkdir movie/active -p         # 選項(xiàng)和參數(shù)之間是沒(méi)有順序的,先寫那個(gè)都可以
          

          我們也可以通過(guò)查看幫助文檔,man mkdir:

          rm 命令:刪除指定文件或者目錄

          rm 命令刪除文件:

          rm abc.txt    
          

          rm 命令刪除目錄:

          mkdir juran
          rm juran
          rm: 無(wú)法刪除 'juran': 是一個(gè)目錄
          

          rm 命令是無(wú)法直接刪除目錄的,需要加上選項(xiàng) -r:

          rm -r juran 
          

          可以通過(guò) man rm 查看選項(xiàng),下面來(lái)自幫助文檔:

          -r, -R, --recursive
              remove directories and their contents recursively
          

          rmdir 命令:刪除空目錄

          rmdir juran    # juran 目錄是空目錄
          

          如果刪除非空目錄:

          mkdir -p a/b
          rmdir a
          rmdir: 刪除 'a' 失敗: 目錄非空
          

          小結(jié)

          • touch 表示創(chuàng)建文件
          • mkdir 表示創(chuàng)建目錄
          • rm 表示刪除文件或者目錄,如果刪除目錄需要使用 -r 選項(xiàng),-r 表示遞歸刪除目錄及其內(nèi)容
          • rmdir 表示刪除空目錄

          復(fù)制、移動(dòng)文件及目錄命令

          cp 命令:拷貝文件、拷貝目錄

          cp 命令復(fù)制文件:

          cp abc.txt juran    # 復(fù)制 abc.txt 到 juran 目錄下
          

          cp命令復(fù)制目錄

          mkdir a b        # 創(chuàng)建 a 和 b 目錄
          cp a b            # 復(fù)制 a 目錄到 b 目錄
          cp: 未指定 -r;略過(guò)目錄'a'
          

          如果想要復(fù)制目錄的話,需要加上選項(xiàng) -r:

          cp -r a b
          

          mv 命令:移動(dòng)文件、移動(dòng)目錄、重命名

          mv 命令移動(dòng)文件:

          mkdir abc        # 創(chuàng)建 abc 目錄
          touch abc.txt    # 創(chuàng)建 abc.txt 文件
          
          mv abc.txt abc
          

          mv 命令移動(dòng)目錄:

          mkdir a b
          mv a b
          

          查看文件內(nèi)容命令

          cat 命令:文本內(nèi)容顯示到終端

          查看文件內(nèi)容:

          touch a.txt
          ls /bin > a.txt
          cat a.txt
          

          查看文件內(nèi)容,并顯示行號(hào):

          cat -n a.txt
          

          查看多個(gè)文件:

          cat a.txt b.txt
          

          多個(gè)文件合并:

          cat a.txt b.txt > c.txt
          

          還有一個(gè)跟 cat 非常像的命令,tac 命令倒敘輸出文本內(nèi)容。

          head 命令:查看文件開頭

          查看文件:

          head a.txt        # 默認(rèn)顯示文件前 10 行內(nèi)容
          

          指定查看文件行數(shù):

          head -5 a.txt    # 顯示文件前 5 行內(nèi)容
          

          tail 命令:查看文件結(jié)尾

          tail a.txt        # 默認(rèn)顯示文件后 10 行內(nèi)容
          

          指定查看文件行數(shù):

          tail -5 a.txt        # 顯示文件后 5 行內(nèi)容
          

          查看文件更新:

          tail -f a.txt        
          

          在另外一個(gè)終端,對(duì)文件進(jìn)行更新:

          echo "juran" > a.txt
          

          wc 命令:統(tǒng)計(jì)文件內(nèi)容信息

          wc -l a.txt  # 統(tǒng)計(jì)文件行數(shù)
          

          壓縮和解壓命令

          tar 命令:壓縮和解壓縮命令

          tar 命令可以打包,也可以打包壓縮:

          touch 1.txt 2.txt 3.txt
          
          ls /bin > 1.txt
          ls /etc > 2.txt
          ls /lib > 3.txt
          
          tar -cvf 3.tar ./*.txt
          

          壓縮成 .gz 文件:

          tar -zcvf backup.tar.gz  *.txt
          

          解壓 .gz 文件:

          tar -zxvf backup.tar.gz 
          

          解壓到指定的目錄:

          tar -zxvf backup.tar.gz -C bb/ 
          

          壓縮成 .bz2 文件:

          tar -jcvf backup.bz2 *.txt
          

          解壓 .bz2 文件:

          tar -jxvf backup.bz2
          

          解壓到指定目錄:

          tar -jxvf backup.bz2  -C bb/
          

          壓縮 zip 文件:

          zip backup  *.txt   # 默認(rèn)后綴是.zip
          

          解壓縮 zip 文件:

          zip backup.zip -d /bb        # -d 指定文件夾
          

          vim 的使用

          我們?cè)?Windows 中有記事本,也有像 pycharm 這樣的代碼編輯器。

          那在 Linux 中我們用什么來(lái)寫代碼呢(如何優(yōu)雅的裝 X)?

          用的就是 vim,大家可以把 vim 想象成 Windows 中的 pycharm,或者你熟悉的編輯器。

          vim 安裝

          sudo apt-get install vim     # 這是 Ubuntu 的安裝
          
          sudo yum install vim     # 這是 centos 的安裝
          

          vim 的工作模式

          • 命令模式
          • 編輯模式
          • 末行模式

          工作模式效果圖:

          編輯模式和末行模式之間不能直接進(jìn)行切換,都需要通過(guò)命令模式來(lái)完成。

          vim 的末行模式命令

          • :w 保存
          • :wq 保存退出
          • :x 保存退出
          • :q! 強(qiáng)制退出

          vim 的常用命令

          命令

          說(shuō)明

          yy

          復(fù)制光標(biāo)所在行

          p

          粘貼

          dd

          刪除/剪切當(dāng)前行

          V

          按行選中

          u

          撤銷

          ctr+r

          反撤銷

          >>

          往右縮進(jìn)

          <<

          往左縮進(jìn)

          :/搜索的內(nèi)容

          搜索指定內(nèi)容

          :%s/要替換的內(nèi)容/替換后的內(nèi)容/g

          全局替換

          :開始行數(shù),結(jié)束行數(shù) s/要替換的內(nèi)容/替換后的內(nèi)容

          局部替換

          .

          重復(fù)上一次命令操作

          G

          回到最后一行

          gg

          回到第一行

          數(shù)字+G

          回到指定行

          shift+6

          回到當(dāng)前行的行首

          shift+4

          回到當(dāng)前行的行末

          ctr+f

          下一屏

          ctr+b

          上一屏

          vim 交換文件解決辦法

          當(dāng)我們用 vim 編輯一個(gè)文件,并寫入一些數(shù)據(jù),發(fā)生意外 vim 沒(méi)有正常退出,這時(shí)再去編輯這個(gè)文件就會(huì)有如下提示:

          這時(shí)我們可以直接選擇編輯,但是下次打開的時(shí)候仍然會(huì)有這個(gè)提示。如果我們執(zhí)行命令 ls -a 會(huì)看到一個(gè)隱藏文件 .a.txt.swp。

          這個(gè)隱藏文件大家可以理解為 Linux 中的緩存文件,為了幫助我們恢復(fù)數(shù)據(jù)的。如果我們不需要的話,可以直接刪除,刪除掉這個(gè)文件后,再次編輯就不會(huì)有這個(gè)提示了。

          用戶和用戶組管理

          用戶管理

          Linux 支持多任務(wù)多用戶,用戶登錄 Linux 之后可以做很多事件,這點(diǎn)和 Windows 很像,但是 Windows 不支持多用戶。

          useradd 命令:創(chuàng)建(添加)用戶

          useradd -m juran        # 如果是普通用戶執(zhí)行這個(gè)命令會(huì)報(bào)錯(cuò)
          

          創(chuàng)建用戶是需要管理員的權(quán)限才可以的。我們想要執(zhí)行這個(gè)命令有兩種方法

          • 切換到 root 用戶下去執(zhí)行
          • 在普通用戶下,命令前面加上 sudo,這個(gè)命令在執(zhí)行的時(shí)候就可以獲得管理員的權(quán)限
          sudo useradd -m juran
          

          創(chuàng)建好的用戶,還需要設(shè)置密碼:

          sudo passwd juran
          

          設(shè)置好密碼后,我們可以切換到 juran 用戶下:

          su juran
          

          在 Ubuntu 中,默認(rèn)切換到用戶的 bash 是 /bash/sh,這樣我們?cè)谇妹畹臅r(shí)候特別不方便,我們可以在創(chuàng)建用戶的指定解釋器:

          sudo useradd -m juran -s /bin/bash
          

          查看用戶是否創(chuàng)建成功,可以查看 /etc/passwd 這個(gè)文件:

          tail /etc/passwd
          

          passwd 文件中的每項(xiàng)信息說(shuō)明,以 root:x:0:0:root:/root:/bin/bash 為例:

          第一個(gè):用戶名
          第二個(gè):密碼占位符
          第三個(gè):uid, 用戶 id
          第四個(gè):gid, 用戶所在組 id
          第五個(gè):用戶描述, 可選,
          第六個(gè):用戶的主目錄所在位置
          第七個(gè):用戶所用 shell 的類型,一般由 bash 或者 sh,默認(rèn)不設(shè)置是 sh 類型
          

          創(chuàng)建用戶,默認(rèn)會(huì)自動(dòng)創(chuàng)建一個(gè)同名的用戶組,查看用戶組是否創(chuàng)建成功,可以查看 /etc/group 這個(gè)文件。

          group 文件中的每項(xiàng)信息說(shuō)明,以 laowang:x:1001: 為例:

          第一個(gè):用戶組名
          第二個(gè):用戶組密碼占位符,一般 Linux 系統(tǒng)的用戶組都沒(méi)有密碼的
          第三個(gè):組 id
          

          我們也可以通過(guò) id 命令查看用戶信息:

          id laowang
          
          uid=1001(laowang) gid=1001(laowang) 組=1001(laowang)
          第一個(gè): uid 表示用戶 id
          第二個(gè): gid 表示用戶組 id
          第三個(gè): 組 表示用戶所在的用戶組
          

          創(chuàng)建用戶流程

          1. useradd juran
          2. 系統(tǒng)讀取 /etc/login.defs 和 /etc/default/useradd 兩個(gè)文件中定義的規(guī)則創(chuàng)建新用戶
          3. 向 /etc/passwd 和 /etc/group 文件中添加用戶和組信息,想 /etc/shadow 和 /etc/gshadow 中添加密碼信息
          4. 根據(jù) /etc/default/useradd 文件中配置的信息創(chuàng)建用戶家目錄
          5. 把 /etc/skel 中所有的文件復(fù)制到新用戶家目錄中

          在 Linux 系統(tǒng)中,UID 為 0,就是超級(jí)用戶,如果設(shè)置管理員用戶,可以改為 UID 為 0,系統(tǒng)用戶 UID 為 1~999,Linux 安裝的服務(wù)程序都會(huì)創(chuàng)建獨(dú)有的用戶負(fù)責(zé)運(yùn)行,普通用戶 UID 從 1000 開始,最大值 1000~60000 范圍。

          修改用戶信息

          創(chuàng)建的用戶沒(méi)有執(zhí)行 sudo 命令的權(quán)限,那我們想要?jiǎng)?chuàng)建的用戶也可以執(zhí)行這個(gè)命令,怎么辦呢?

          我們可以修改用戶的附加組,每個(gè)用戶都有自己的主組,相當(dāng)于親爹,那附加組就相當(dāng)于干爹,可以有很多個(gè):

          sudo usermod -g sudo jr
          

          這時(shí)我們創(chuàng)建的用戶,就可以執(zhí)行 sudo 命令了。

          用戶組相關(guān)操作

          為了方便管理屬于同一組的用戶,Linux 系統(tǒng)中還引入了用戶組的概念。

          一個(gè)公司中有多個(gè)部門,每個(gè)部門中又有很多員工,如果只想讓員工訪問(wèn)本部的資源,則可以針對(duì)部門而非具體的員工來(lái)設(shè)置。開發(fā)部的小哥哥想要前臺(tái)小姐姐的信息,肯定不能讓他直接訪問(wèn)的。

          groupadd 命令:創(chuàng)建(添加)用戶組

          創(chuàng)建用戶前,我們可以先創(chuàng)建好用戶組:

          sudo groupadd dev        # 創(chuàng)建開發(fā)組
          

          創(chuàng)建用戶指定組:

          sudo useradd -m laowang -g dev        
          

          修改用戶組:

          sudo usermod -g dev laowang
          

          刪除用戶組:

          sudo groupdel dev        # 這時(shí)會(huì)報(bào)錯(cuò)
          

          如果用戶組下面有用戶先刪除用戶在刪除用戶組。

          文件權(quán)限命令

          執(zhí)行命令 ls -al 查看文件:

          這里以文件 abc 來(lái)解釋。

          第一位:文件類型

          • - 表示文件
          • d 表示目錄
          • l 表示鏈接

          后面 9 位表示權(quán)限:

          命令

          解釋

          字母表示

          rw-

          所有者擁有讀寫權(quán)限

          用 u 表示,代表 user

          r--

          所屬組擁有讀權(quán)限

          用 g 表示,代表 group

          r--

          其他人擁有讀權(quán)限

          用 o 表示,代表 other

          減少權(quán)限:

          chmod u-r abc.txt        # 不能讀取數(shù)據(jù)
          
          chmod u-w abc.txt        # 不能寫入數(shù)據(jù)
          

          添加只讀權(quán)限,減少寫權(quán)限:

          chmod u+r,u-w pwd.txt
          

          chmod 數(shù)字法的使用,數(shù)字法就是 rwx 這些權(quán)限也可以用數(shù)字來(lái)代替。

          權(quán)限

          說(shuō)明

          r

          可讀,權(quán)限值是 4

          w

          可寫,權(quán)限值是 2

          x

          可執(zhí)行,權(quán)限值是 1

          -

          無(wú)任何權(quán)限,權(quán)限值是 0

          數(shù)字法授予權(quán)限,所有者可讀可寫可執(zhí)行,所屬組可讀可寫,其他人可讀:

          chmod 764 abc.txt
          

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

          網(wǎng)絡(luò)配置

          網(wǎng)絡(luò)配置最重要的兩個(gè)工具就是 ifconfig 和 ip,這兩個(gè)工具分別來(lái)自兩個(gè)工具包 net-tools 和 iproute2。

          ifconfig 命令:配置和顯示 Linux 系統(tǒng)網(wǎng)卡的網(wǎng)絡(luò)參數(shù)

          ifconfig 通常是用來(lái)查看網(wǎng)卡的信息(比如 IP 地址、收發(fā)包及丟包情況等),以及配置網(wǎng)卡(如啟停網(wǎng)卡,修改網(wǎng)卡 MTU,修改 IP、MAC 地址等)。

          這個(gè)命令需要安裝:

          sudo apt-get install net-tools
          

          若 ifconfig 提示找不到命令,安裝 net-tools 也未果,可能是因?yàn)?ifconfig 已不被推薦使用,可用 ip addr show 命令代替,一樣可以顯示出 IP 地址。

          ip 命令:網(wǎng)絡(luò)配置工具

          ip 是非常強(qiáng)大的工具,可以替換 net-tools 包的所有工具,如常見的 ifconfig、netstat、route、arp 等。

          查看網(wǎng)卡信息:

          ip addr show
          

          顯示系統(tǒng)路由:

          ip route show
          

          開啟網(wǎng)卡或關(guān)閉網(wǎng)卡:

          ip link set eth0 up             # 開啟網(wǎng)卡
          ip link set eth0 down       # 關(guān)閉網(wǎng)卡
          

          網(wǎng)絡(luò)故障排除

          當(dāng)我們遇到服務(wù)器的網(wǎng)絡(luò)出現(xiàn)問(wèn)題的時(shí)候,我們改怎么去排查呢?大家可以通過(guò)下面的命令來(lái)逐一排查。

          ping 命令:測(cè)試主機(jī)之間網(wǎng)絡(luò)的連通性

          這個(gè)命令通常用來(lái)判斷網(wǎng)絡(luò)的連通性和網(wǎng)速情況,偶爾用來(lái)查看域名的 IP:

          ping www.baidu.com
          

          ping 命令并不會(huì)自動(dòng)結(jié)束,需要我們 ctrl+c 強(qiáng)制停止,大家可以通過(guò) -c 選項(xiàng)來(lái)指定 ping 的次數(shù):

          ping www.baidu.com -c 3        # 設(shè)置完成要求回應(yīng)的次數(shù)
          

          ping 只能使用 ipv4,要使用 ipv6,可以用 ping6 命令。

          telnet 命令:登錄遠(yuǎn)程主機(jī)和管理(測(cè)試 IP 端口是否連通)

          telnet 通常用作遠(yuǎn)程登錄,用來(lái)確定遠(yuǎn)程服務(wù)的狀態(tài),探測(cè)遠(yuǎn)程服務(wù)器的某個(gè)端口是否能訪問(wèn),也可以探測(cè)本地的:

          telnet localhost 22
          

          telnet localhost 3306
          

          處理這種情況方法:

          • 確認(rèn) IP 地址是否正確?
          • 確認(rèn) IP 地址對(duì)應(yīng)的主機(jī)是否已經(jīng)開機(jī)?
          • 如果主機(jī)已經(jīng)啟動(dòng),確認(rèn)路由設(shè)置是否設(shè)置正確?(使用 route 命令查看)
          • 如果主機(jī)已經(jīng)啟動(dòng),確認(rèn)主機(jī)上是否開啟了 telnet 服務(wù)?(使用 netstat 命令查看,TCP 的 23 端口是否有 LISTEN 狀態(tài)的行)
          • 如果主機(jī)已經(jīng)啟動(dòng) telnet 服務(wù),確認(rèn)防火墻是否放開了 3306 端口的訪問(wèn)?(使用 iptables-save 查看)

          traceroute 命令:顯示數(shù)據(jù)包到主機(jī)間的路徑

          traceroute 主要用來(lái)探測(cè)從源主機(jī)到目標(biāo)主機(jī)之間的每一跳路由節(jié)點(diǎn),通常和 ping 結(jié)合起來(lái)排查網(wǎng)絡(luò)故障, ping 測(cè)連通性和網(wǎng)速,如果網(wǎng)絡(luò)不通,可以借由 traceroute 進(jìn)一步排查是哪個(gè)路由節(jié)點(diǎn)出問(wèn)題了。

          traceroute www.58.com
          

          我們 traceroute 一臺(tái)主機(jī)時(shí),會(huì)看到有一些行是以星號(hào)表示的。出現(xiàn)這樣的情況,可能是防火墻封掉了 ICMP 的返回信息,所以我們得不到什么相關(guān)的數(shù)據(jù)包返回?cái)?shù)據(jù)。

          有時(shí)我們?cè)谀骋痪W(wǎng)關(guān)處延時(shí)比較長(zhǎng),有可能是某臺(tái)網(wǎng)關(guān)比較阻塞,也可能是物理設(shè)備本身的原因。當(dāng)然如果某臺(tái) DNS 出現(xiàn)問(wèn)題時(shí),不能解析主機(jī)名、域名時(shí),也會(huì)有延時(shí)長(zhǎng)的現(xiàn)象;您可以加 -n 參數(shù)來(lái)避免 DNS 解析,以 IP 格式輸出數(shù)據(jù)。

          如果在局域網(wǎng)中的不同網(wǎng)段之間,我們可以通過(guò) traceroute 來(lái)排查問(wèn)題所在,是主機(jī)的問(wèn)題還是網(wǎng)關(guān)的問(wèn)題。如果我們通過(guò)遠(yuǎn)程來(lái)訪問(wèn)某臺(tái)服務(wù)器遇到問(wèn)題時(shí),我們用到 traceroute 追蹤數(shù)據(jù)包所經(jīng)過(guò)的網(wǎng)關(guān),提交 IDC 服務(wù)商,也有助于解決問(wèn)題;但目前看來(lái)在國(guó)內(nèi)解決這樣的問(wèn)題是比較困難的,就是我們發(fā)現(xiàn)問(wèn)題所在,IDC 服務(wù)商也不可能幫助我們解決。

          網(wǎng)絡(luò)連接

          netstat 命令:查看 Linux 中網(wǎng)絡(luò)系統(tǒng)狀態(tài)信息

          netstat 用于查看當(dāng)前網(wǎng)絡(luò)的連接情況,能夠查看所有的網(wǎng)絡(luò)連接,包括 Unix Socket 等,也是集多種工具于一身的組合工具。

          列出所有端口:

          netstat -a     # 列出所有端口
          netstat -at    # 列出所有 tcp 端口
          netstat -au    # 列出所有 udp 端口   
          

          列出所有處于監(jiān)聽狀態(tài)的 Sockets:

          netstat -l        # 只顯示監(jiān)聽端口
          netstat -lt       # 只列出所有監(jiān)聽 tcp 端口
          netstat -lu       # 只列出所有監(jiān)聽 udp 端口
          

          ss 命令:iproute2 包附帶的另一個(gè)工具,允許你查詢 socket 的有關(guān)統(tǒng)計(jì)信息。

          ss 和 netstat 類似,也是用來(lái)查看網(wǎng)絡(luò)連接統(tǒng)計(jì)的工具,它的輸出也和 netstat 類似,甚至顯示更多連接狀態(tài)信息,它最大的優(yōu)勢(shì)在于比 netstat 快,在服務(wù)器維持上萬(wàn)個(gè)連接的情況下,這種優(yōu)勢(shì)就體現(xiàn)得比較明顯。

          顯示 TCP 連接:

          ss -t -a
          

          列出所有打開的網(wǎng)絡(luò)連接端口:

          ss -l
          

          查看進(jìn)程使用的 socket:

          ss -pl
          

          nc 命令:用于設(shè)置路由器

          nc 被稱為瑞士軍刀,非常輕巧但功能強(qiáng)大,能夠創(chuàng)建各種不同類型的網(wǎng)絡(luò)連接、能夠?qū)崿F(xiàn)簡(jiǎn)單的聊天工具、遠(yuǎn)程傳輸文件、debug 分析、掃描端口等。

          TCP 端口掃描:

          nc -v -z -w2 localhost 1-100 
          

          選項(xiàng)解釋:

          • -v 顯示指令執(zhí)行過(guò)程
          • -z 使用 0 輸入/輸出模式,只在掃描通信端口時(shí)使用
          • -w<超時(shí)秒數(shù)> 設(shè)置等待連線的時(shí)間
          • 1-100 掃描 TCP 端口

          UDP 端口掃描:

          nc -u -z -w2 192.168.0.1 1-1000        # 掃描 192.168.0.1 的端口 范圍是 1-1000
          

          選項(xiàng)解釋:

          • -u 使用 UDP 傳輸協(xié)議

          域名

          host 命令:常用的分析域名查詢工具

          host 命令是域名分析查詢工具,用來(lái)測(cè)試域名系統(tǒng)工作是否正常。

          查看百度域名信息:

          host www.baidu.com
          

          nslookup 命令:查詢域名 DNS 信息的工具

          nslookup 有兩種工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用戶可以向域名服務(wù)器查詢各類主機(jī)、域名的信息,或者輸出域名中的主機(jī)列表。而在“非交互模式”下,用戶可以針對(duì)一個(gè)主機(jī)或域名僅僅獲取特定的名稱或所需信息。

          進(jìn)入交互模式,直接輸入 nslookup 命令,不加任何參數(shù),則直接進(jìn)入交互模式,此時(shí) nslookup 會(huì)連接到默認(rèn)的域名服務(wù)器?;蛘咻斎?nslookup -nameserver/ip。進(jìn)入非交互模式,就直接輸入 nslookup 域名就可以了。

          非交互模式:

          nslookup www.baidu.com
          

          交互模式:

          nslookup
          

          軟件包管理器

          Ubuntu 軟件安裝有兩種方式:

          • 離線安裝(deb 文件格式安裝)
          • 在線安裝(apt-get 方式安裝)
          • 源碼安裝

          我們絕大多數(shù)的時(shí)候,都是通過(guò)在線安裝的方式來(lái)進(jìn)行安裝軟件。

          apt-get 方式安裝

          在線安裝 deb 軟件包的命令,主要用于在線從互聯(lián)網(wǎng)的軟件倉(cāng)庫(kù)中搜索、安裝、升級(jí)、卸載軟件。

          在線安裝軟件命令格式:

          sudo apt–get install 安裝包         # 表示在線安裝 deb 安裝包
          

          源碼安裝

          開源軟件都會(huì)提供源碼下載的方式,對(duì)于源代碼安裝方式的好處即可以定制軟件功能,安裝需要的模塊,不需要的模塊可以屏蔽,方便管理,卸載等。

          我們以 Redis 為例:

          https://redis.io/download        # 這是官網(wǎng) redis 的下載地址
          

          官網(wǎng)中給出了源碼安裝的方式:

          $ wget https://download.redis.io/releases/redis-6.2.5.tar.gz
          $ tar xzf redis-6.2.5.tar.gz
          $ cd redis-6.2.5
          $ make
          

          這里會(huì)使用 make 工具,make 工具就會(huì)通過(guò) makefile 文件來(lái)實(shí)現(xiàn)。makefile 文件是一種按照某種語(yǔ)法來(lái)編寫且定義了各個(gè)文件的依賴關(guān)系。

          使用 make 命令,一般都需要 gcc 的環(huán)境:

          sudo apt-get install gcc
          

          更改鏡像源

          因?yàn)槭褂?apt-get 命令默認(rèn)是從國(guó)外的服務(wù)器下載安裝軟件的,會(huì)導(dǎo)致下載安裝速度很慢,所以需要更改成國(guó)內(nèi)的鏡像源服務(wù)器。

          鏡像源說(shuō)明:鏡像源就是下載軟件來(lái)源的服務(wù)器。

          更改鏡像源的方式:

          • 可視化方式更改鏡像源
          • 手動(dòng)方式更改鏡像源

          可視化的方式適合 Ubuntu 這種有圖形化界面的。

          第一步:

          第二步:

          第三步:

          第四步:

          第五步:

          最后執(zhí)行命令:

          sudo apt-get update
          

          手動(dòng)修改就容易很多:

          vim  /etc/apt/sources.list        # 編輯這個(gè)文件,將找好的國(guó)內(nèi)鏡像源直接復(fù)制到這個(gè)文件里面就行
          

          這里是清華大學(xué)的鏡像源,大家可以找其他的鏡像源:

          查看進(jìn)程

          ps 命令:用于報(bào)告當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)的命令

          ps 命令可以搭配 kill 指令隨時(shí)中斷、刪除不必要的程序。ps 命令是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令,使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒(méi)有僵死、哪些進(jìn)程占用了過(guò)多的資源等等,總之大部分信息都是可以通過(guò)執(zhí)行該命令得到的。

          當(dāng)我們?cè)诮K端敲下 ps 命令,會(huì)顯示如下界面:

          字段解釋:

          PID         代表這個(gè)進(jìn)程對(duì)應(yīng)的 ID 號(hào)碼
          TTY         進(jìn)程所屬的控制臺(tái)號(hào)碼
          TIME        進(jìn)程所使用 CPUC 的總時(shí)間
          CMD         就是正在執(zhí)行的系統(tǒng)命令行是什么
          

          ps 常用選項(xiàng),顯示 Linux 機(jī)器所有詳細(xì)的進(jìn)程信息:

          ps -ef
          
          • -e:列出系統(tǒng)所有運(yùn)行的進(jìn)程
          • -f:顯示 ID PID PPID C 等信息

          字段解釋:

          UID     這個(gè)進(jìn)程是那個(gè)用戶執(zhí)行的命令
          PID     進(jìn)程的標(biāo)識(shí)號(hào)碼 用于啟停進(jìn)程
          PPID    進(jìn)程的父進(jìn)程標(biāo)識(shí)號(hào)
          C       表示 CPU 使用的資源百分比
          STIME   表示進(jìn)程開始執(zhí)行的時(shí)間
          TTY     進(jìn)程在那個(gè)終端執(zhí)行的
          TIME    該進(jìn)程使用的 CPU 總時(shí)間
          CMD     用戶執(zhí)行某條命令 產(chǎn)生的進(jìn)程信息
          

          過(guò)濾出系統(tǒng)指定的信息:

          ps -ef | grep vim 
          

          查看 named 進(jìn)程詳細(xì)信息:

          ps -aux | grep named
          

          顯示指定用戶信息:

          ps -u root 
          

          把所有進(jìn)程顯示出來(lái),并輸出到 ps1.txt 文件:

          ps -aux > ps1.txt
          

          ps 命令的參數(shù),分為兩種系統(tǒng)形式:

          • ps ef,不帶減號(hào)的參數(shù)
          • ps -ef,帶減號(hào)的參數(shù)

          大家一定要注意帶減號(hào)和不帶減號(hào),表示的含義是不同的。

          • e:列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量
          • -e :列出系統(tǒng)所有運(yùn)行的進(jìn)程

          大家可以看出來(lái)效果是不一樣的。

          pstree 命令:以樹狀圖的方式展現(xiàn)進(jìn)程之間的派生關(guān)系

          pstree 命令需要安裝:

          sudo apt-get install psmisc
          

          執(zhí)行 pstree 效果如下:

          kill 命令:發(fā)送相關(guān)信號(hào),給進(jìn)程達(dá)到不同的停止效果

          我們通常用的都是 kill -9 進(jìn)程號(hào),除了 -9 這一個(gè)信號(hào),kill 也有很多其他的信號(hào)。

          kill -l
          

          下面是常用的信號(hào):

          HUP     1    終端掛斷
          INT     2    中斷(同 Ctrl + C)
          QUIT    3    退出(同 Ctrl + \)
          KILL    9    強(qiáng)制終止
          TERM   15    終止,這是 kill 命令默認(rèn)的
          CONT   18    繼續(xù)(與 STOP 相反,fg/bg 命令)
          STOP   19    暫停(同 Ctrl + Z)
          

          示例:

          ping www.baidu.com
          

          找到 ping 命令的進(jìn)程號(hào):

          ps -ef | grep ping
          

          通過(guò)剛才找到的進(jìn)程號(hào)結(jié)束掉 ping 命令:

          kill -9 進(jìn)程號(hào)
          

          top 命令:顯示或管理執(zhí)行中的程序

          可以實(shí)時(shí)動(dòng)態(tài)地查看系統(tǒng)的整體運(yùn)行情況,是一個(gè)綜合了多方信息監(jiān)測(cè)系統(tǒng)性能和運(yùn)行信息的實(shí)用工具。

          當(dāng)我們敲下 top 命令,可以看到如下界面:

          top 交互命令

          在 top 命令執(zhí)行過(guò)程中可以使用的一些交互命令,這些命令都是單字母的。

          h:顯示幫助畫面,給出一些簡(jiǎn)短的命令總結(jié)說(shuō)明;
          k:終止一個(gè)進(jìn)程;
          i:忽略閑置和僵死進(jìn)程,這是一個(gè)開關(guān)式命令;
          q:退出程序;
          r:重新安排一個(gè)進(jìn)程的優(yōu)先級(jí)別;
          S:切換到累計(jì)模式;
          s:改變兩次刷新之間的延遲時(shí)間(單位為 s),如果有小數(shù),就換算成 ms。輸入 0 值則系統(tǒng)將不斷刷新,默認(rèn)值是 5s;
          f 或者 F:從當(dāng)前顯示中添加或者刪除項(xiàng)目;
          o 或者 O:改變顯示項(xiàng)目的順序;
          l:切換顯示平均負(fù)載和啟動(dòng)時(shí)間信息;
          m:切換顯示內(nèi)存信息;
          t:切換顯示進(jìn)程和 CPU 狀態(tài)信息;
          c:切換顯示命令名稱和完整命令行;
          M:根據(jù)駐留內(nèi)存大小進(jìn)行排序;
          P:根據(jù) CPU 使用百分比大小進(jìn)行排序;
          T:根據(jù)時(shí)間/累計(jì)時(shí)間進(jìn)行排序;
          w:將當(dāng)前設(shè)置寫入~/.toprc 文件中。
          

          top 命令上面字段:

          top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
          Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
          Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
          Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
          Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached
          

          解釋:

          top - 09:44:56[當(dāng)前系統(tǒng)時(shí)間],
          16 days[系統(tǒng)已經(jīng)運(yùn)行了 16 天],
          1 user[個(gè)用戶當(dāng)前登錄](méi),
          load average: 9.59, 4.75, 1.92[系統(tǒng)負(fù)載,即任務(wù)隊(duì)列的平均長(zhǎng)度]
          Tasks: 145 total[總進(jìn)程數(shù)],
          2 running[正在運(yùn)行的進(jìn)程數(shù)],
          143 sleeping[睡眠的進(jìn)程數(shù)],
          0 stopped[停止的進(jìn)程數(shù)],
          0 zombie[凍結(jié)進(jìn)程數(shù)],
          Cpu(s): 99.8%us[用戶空間占用 CPU 百分比],
          0.1%sy[內(nèi)核空間占用 CPU 百分比],
          0.0%ni[用戶進(jìn)程空間內(nèi)改變過(guò)優(yōu)先級(jí)的進(jìn)程占用 CPU 百分比],
          0.2%id[空閑 CPU 百分比], 0.0%wa[等待輸入輸出的 CPU 時(shí)間百分比],
          0.0%hi[],
          0.0%st[],
          Mem: 4147888k total[物理內(nèi)存總量],
          2493092k used[使用的物理內(nèi)存總量],
          1654796k free[空閑內(nèi)存總量],
          158188k buffers[用作內(nèi)核緩存的內(nèi)存量]
          Swap:  5144568k total[交換區(qū)總量],
          56k used[使用的交換區(qū)總量],
          5144512k free[空閑交換區(qū)總量],
          2013180k cached[緩沖的交換區(qū)總量],
          

          內(nèi)存查看命令

          free 命令:顯示內(nèi)存的使用情況

          可以顯示當(dāng)前系統(tǒng)未使用的和已使用的內(nèi)存數(shù)目,還可以顯示被內(nèi)核使用的內(nèi)存緩沖區(qū)。

          以總和的形式顯示內(nèi)存的使用信息:

          free -t 
          

          周期性的查詢內(nèi)存使用信息,每 3s 執(zhí)行一次命令:

          free -s 3
          

          顯示內(nèi)存使用情況:

          free -m
          

          服務(wù)管理工具 systemctl

          systemctl 命令:系統(tǒng)服務(wù)管理器指令

          systemctl 命令是系統(tǒng)服務(wù)管理器指令,它實(shí)際上將 service 和 chkconfig 這兩個(gè)命令組合到一起。

          啟動(dòng)服務(wù):

          service httpd start
          systemctl start httpd.service
          

          停止服務(wù):

          service httpd stop    
          systemctl stop httpd.service
          

          重啟服務(wù):

          service httpd restart    
          systemctl restart httpd.service
          

          重載服務(wù):

          service httpd reload    
          systemctl reload httpd.service
          

          檢查服務(wù)狀態(tài):

          service httpd status
          systemctl status httpd.service
          

          設(shè)置開機(jī)自啟動(dòng) MySQL 服務(wù):

          systemctl enable mysqld.service 
          

          停止開機(jī)自啟動(dòng):

          systemctl disable mysqld.service 

          主站蜘蛛池模板: 精品国产一区二区三区AV| 国产伦精品一区二区三区四区 | 亚洲国产一区二区视频网站| 国产一区二区三区在线看| 在线日韩麻豆一区| 亚洲国产AV一区二区三区四区 | 久久久久久免费一区二区三区| 精品国产免费一区二区| 精品欧洲av无码一区二区三区| 无码人妻精品一区二| 国产成人高清亚洲一区久久| 国产主播在线一区| 亚洲制服丝袜一区二区三区 | 国产精品一区二区久久国产| 国产成人精品一区二区三在线观看 | 一区二区在线视频观看| 狠狠做深爱婷婷久久综合一区 | 高清一区二区三区日本久| 亚洲AV永久无码精品一区二区国产| 日本国产一区二区三区在线观看 | 国产萌白酱在线一区二区| 国产精品无码一区二区在线| 2021国产精品视频一区| 亚洲国产一区在线观看| 无码乱码av天堂一区二区 | 大帝AV在线一区二区三区| 一区二区和激情视频| 亚洲熟妇AV一区二区三区浪潮| 精品少妇ay一区二区三区| 国产乱人伦精品一区二区| 亚洲熟妇无码一区二区三区| 精品人妻少妇一区二区三区不卡 | 国产麻豆精品一区二区三区v视界 国产美女精品一区二区三区 | 一区二区亚洲精品精华液| 日本免费一区二区三区最新| 日韩av片无码一区二区三区不卡| 美女福利视频一区二区| 久久久久久一区国产精品| 奇米精品一区二区三区在| 3d动漫精品成人一区二区三| 欧美日韩国产免费一区二区三区|