這個全新的工具和多樣化的開發環境井噴的大環境下,任何開發者和工程師都有必要學習一些基本的系統管理命令。特定的命令和工具包可幫助開發者組織、排查故障并優化他們的應用程">

操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    這個全新的工具和多樣化的開發環境井噴的大環境下,任何開發者和工程師都有必要學習一些基本的系統管理命令。特定的命令和工具包可幫助開發者組織、排查故障并優化他們的應用程序,而且當出現錯誤時,也可以為運維人員和系統管理員提供有價值的分類信息。


    無論你是新手開發者還是希望管理自己的應用程序,下面 20 條基本的系統管理命令都可以幫助您更好地了解您的應用程序。它們還可以幫助解決為什么應用程序可在本地正常工作但不能在遠程主機上工作這類的系統故障。這些命令適用于 Linux 開發環境、容器和虛擬機。

    1. curl

    curl 用于傳輸一個 URL。可以使用這條命令用于測試應用程序的端點或與上游服務端點的連接。curl 還可用于檢查你的應用程序是否能連接到其他服務,例如數據庫,或檢查您的服務是否處于健康的狀態。

    舉個例子,假如你的應用程序拋出一個 HTTP 500 錯誤,表示無法訪問 MongoDB 數據庫:

    $ curl -I -s myapplication:5000
    
    HTTP/1.0 500 INTERNAL SERVER ERROR
    

    -I 選項用于顯示頭信息,-s 選項表示使用靜默模式,不顯示錯誤和進度。檢查數據庫的端點是否正確:

    $ curl -I -s database:27017
    
    HTTP/1.0 200 OK
    

    那么可能是什么問題呢? 檢查您的應用程序是否可以訪問數據庫以外的其他位置:

    $ curl -I -s https://opensource.com
    
    HTTP/1.1 200 OK
    

    看起來這沒問題,現在嘗試訪問數據庫。您的應用程序正在使用數據庫的主機名,因此請先嘗試:

    $ curl database:27017
    
    curl: (6) Couldn't resolve host 'database'
    

    這表示您的應用程序無法解析數據庫,因為數據庫的 URL 不可用或主機(容器或VM)沒有可用于解析主機名的域名服務器。

    2. python -m json.tool / jq

    使用 curl 后,API 調用的輸出可讀性可能較差。有時候,你希望將生成的 JSON 數據格式化輸出以查找特定的條目。Python 有一個內置的庫可幫助您實現這個需求。可以使用 python -m json.tool 來縮進和組織 JSON。要使用 Python 的 JSON 模塊,需要使用管道機制,將 JSON 文件的輸出作為輸入,寫入到 python -m json.tool 命令行。

    $ cat test.json
    {"title":"Person","type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"age":{"description":"Age in years","type":"integer","minimum":0}},"required":["firstName","lastName"]}
    

    要使用 Python 庫,使用 -m (module) 選項將輸出內容和 Python 庫組合成管道。

    $ cat test.json | python -m json.tool
    {
        "properties": {
            "age": {
                "description": "Age in years",
                "minimum": 0,
                "type": "integer"
            },
            "firstName": {
                "type": "string"
            },
            "lastName": {
                "type": "string"
            }
        },
        "required": [
            "firstName",
            "lastName"
        ],
        "title": "Person",
        "type": "object"
    }
    

    對于更高級的 JSON 解析,可以安裝 jq。jq 提供了一些從 JSON 輸入中提取特定值的選項。要像上面的 Python 模塊一樣將 JSON 輸出格式化,只需將 jq 應用到輸出即可。

    $ cat test.json | jq
    {
      "title": "Person",
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "age": {
          "description": "Age in years",
          "type": "integer",
          "minimum": 0
        }
      },
      "required": [
        "firstName",
        "lastName"
      ]
    }

    3. ls

    ls 用于列出目錄中的文件,系統管理員和開發者會經常使用這個命令。在容器空間中,這條命令可以幫助確定容器鏡像中的目錄和文件。除了查找文件,ls 還可以用于檢查權限。下面的示例中,由于權限問題,你不能運行 myapp。當你使用 ls -l 檢查權限時,你會發現它的權限在 -rw-r–r– 中沒有”x”,只有讀寫的權限。

    $ ./myapp
    bash: ./myapp: Permission denied
    $ ls -l myapp
    -rw-r--r--. 1 root root 33 Jul 21 18:36 myapp
    

    4. tail

    tail 顯示文件的最后一部分內容。通常情況下,你不需要瀏覽每行日志以進行故障排除。而是需要檢查日志中對應用程序的最新請求的說明。例如,當你向 Apache HTTP 服務器發起請求時,可以使用 tail 來檢查日志中發生的情況。

    使用 tail -f 來跟蹤日志文件并在發起請求時查看它們。

    -f 選項表示跟隨的意思,它可在日志被寫入文件時輸出它們。下面的示例具有每隔幾秒訪問端點的后臺腳本,日志會記錄請求。除了實時跟蹤日志,還可以使用 tail 帶上 -n 選項來查看文件的最后 100 行。

    $ tail -n 100 /var/log/httpd/access_log
    

    5. cat

    cat 主要用于查看文件內容和合并文件。你可能會使用 cat 來檢查依賴項文件的內容,或確認已在本地構建的應用程序的版本。

    $ cat requirements.txt
    flask
    flask_pymongo
    

    上面的示例檢查您的 Python Flask 應用程序是否已將 Flask 列為依賴項。

    6. grep

    grep 能使用特定模式匹配(包括正則表達式)搜索文本。如果你在另一條命令的輸出中尋找特定的模式,grep 會高亮顯示相關的行。可使用這條命令來搜索日志文件以及特定的進程等。如果想查看 Apache Tomcat 是否啟動,你可能會命令行的數量給淹沒。但講輸出的內容和 grep 命令組合成管道,可以將表示服務器已啟動的行獨立出來。

    $ cat tomcat.log | grep org.apache.catalina.startup.Catalina.start
    01-Jul-2017 18:03:47.542 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 681 ms
    

    7. ps

    ps 用于查看進程的各種狀態信息。使用該命令可確定正在運行的應用程序或確認預期的進程。例如,如果要檢查正在運行的 Tomcat Web 服務器,可使用帶有選項的 ps 來獲取 Tomcat 的進程 ID。

    $ ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  2 18:55 ?        00:00:02 /docker-java-home/jre/bi
    root        59     0  0 18:55 pts/0    00:00:00 /bin/sh
    root        75    59  0 18:57 pts/0    00:00:00 ps -ef
    

    為了更好的易讀性,可使用 grep ps 組合成管道。

    $ ps -ef | grep tomcat
    root         1     0  1 18:55 ?        00:00:02 /docker-java-home/jre/bi
    

    8. env

    env 用于列出所有環境變量及為其賦值。在故障排除期間,你可能會發現需要檢查是否有錯誤的環境變量來阻止應用程序啟動。在下面的示例中,該命令用于檢查程序主機上設置的環境變量。

    $ env
    PYTHON_PIP_VERSION=9.0.1
    HOME=/root
    DB_NAME=test
    PATH=/usr/local/bin:/usr/local/sbin
    LANG=C.UTF-8
    PYTHON_VERSION=3.4.6
    PWD=/
    DB_URI=mongodb://database:27017/test
    

    請注意,該應用程序正在使用 Python 3,并具有連接到 MongoDB 數據庫的環境變量。

    9. top

    top 用于顯示系統中各個進程的信息和資源占用狀況,類似于 Windows 的任務管理器。使用該命令可確定哪些進程正在運行,以及它們消耗了多少的內存和 CPU。一種常見的情況是當你運行一個應用程序時,它在一分鐘后掛掉。這時,你首先檢查應用程序的返回錯誤,發現是一個內存錯誤。

    $ tail myapp.log
    Traceback (most recent call last):
    MemoryError
    

    你的應用是否真的內存不足?要確認這個問題,可使用 top 來查看應用程序消耗多少 CPU 和內存。當使用 top 命令后,您注意到一個 Python 應用程序使用了大部分的 CPU,其內存使用量也迅速攀升。當它運行時,如果進程是你的應用程序,則按”C”鍵來查看完整命令并進行逆向工程。發現原來是你的內存密集型應用程序(memeater.py)。當你的應用程序已經用盡內存,系統會殺掉它并返回一個內存不足(OOM)的錯誤。

    應用程序的內存和 CPU 使用量增加,最終因為內存不足而被殺掉。

    通過按下”C”鍵,可以看到啟動該應用程序的完整命令

    除了檢查應用程序,還可以使用 top 來調試其他使用 CPU 或內存的進程。

    10. netstat

    netstat 用于顯示網絡狀態信息。該命令可顯示正在使用的網絡端口及其傳入連接。但是,netstat 在 Linux 中不能開箱即用。如果需要安裝它,需要在 net-tools 包中找到它。作為在本地進行試驗或將應用程序推送到主機的開發者,可能會收到端口已被分配或地址已被使用的錯誤。使用 netstat 得到協議、進程和端口這些信息,下圖表明 Apache HTTP 服務器已經在下面的主機上使用了 80 端口。

    使用 netstat -tulpn 表明 Apache 已經在這臺機器上使用了 80 端口。

    11. ip address

    如果 ip address 在你的主機上不能使用,必須使用 iproute2 包進行安裝。ip address 用于顯示應用程序的主機接口和 IP 地址。可使用 ip address 來驗證你的容器或主機的 IP 地址。例如,當你的容器連接到兩個網絡時,ip address 可顯示哪個接口連接到了哪個網絡。對于簡單的檢查,可以隨時使用 ip address 命令獲取主機的 IP 地址。下面的示例展示了在接口 eth0 上的 Web 層容器的 IP 地址為 172.17.0.2

    使用 ip address 顯示 eth0 接口的 IP 地址為 172.17.0.2

    12. lsof

    lsof 用于列出當前系統打開的文件(list open files)。在某些 Linux 系統中,可能需要使用 lsof 包來安裝lsof。在 Linux 中,幾乎任何和系統的交互都被視為一個文件。因此,如果你的應用程序寫入文件或代開網絡連接,lsof 將會把這個交互映射為一個文件。與 netstat 類似,可使用 lsof 來檢查偵聽端口。例如,如果要檢查 80 端口是否正在被使用,可使用 lsof 來檢查哪個進程正在使用它。下面的示例中,可以看到 httpd (Apache) 在 80 端口上偵聽。還可以使用 lsof 來檢查 httpd 的進程ID,檢查 Web 服務器的二進制文件所在位置(/usr/sbin/httpd)。

    Lsof 表明了 httpd 在 80 端口上偵聽。檢查 httpd 的進程ID還可以顯示所有需要運行的文件httpd。

    打開文件列表中的打開文件的名稱有助于確定進程的來源,特別是 Apache。

    13. df

    可以使用 df 顯示空閑的磁盤空間(display free disk space)以排查磁盤空間問題。擋在容器管理器上運行應用程序時,可能會收到一條錯誤信息,提示容器主機上缺少可用空間。雖然磁盤空間應該由系統管理程序來管理和優化,你仍可以使用 df 找出目錄中的現有空間并確認是否沒有空間。

    Df 顯示每個文件系統的磁盤空間、絕對空間以及其可用性。

    -h 選項表示以可讀性較高的方式來顯示信息,上面的例子表示這個主機具有大量的磁盤空間。

    14. du

    du 命令也是用于查看使用空間的,但是與 df 命令不同的是 du 命令是對文件和目錄磁盤使用的空間的查看,要獲取有關哪些文件在目錄中使用磁盤空間的更多詳細信息,可以使用 du 命令,和 df 命令還是有一些區別的。例如,你想了解那個日志文件占用 /var/log 目錄最多的空間,可以使用 du 命令加上 -h 選項和用于獲取總大小的 -s 選項。

    $ du -sh /var/log/*
    1.8M  /var/log/anaconda
    384K  /var/log/audit
    4.0K  /var/log/boot.log
    0 /var/log/chrony
    4.0K  /var/log/cron
    4.0K  /var/log/maillog
    64K /var/log/messages
    

    上面的示例中顯示了 /var/log 下的的最大目錄為 /var/log/audit。可以將 dudf 搭配使用,以確定在應用程序的主機上使用的磁盤空間。

    15. id

    要檢查運行應用程序的用戶,可使用 id 命令來返回用戶身份。id 命令可以顯示真實有效的用戶ID(UID)和組ID(GID)。下面的示例使用 Vagrant 來測試應用程序并隔離其開發環境。登錄進 Vagrant 盒子后,如果嘗試安裝 Apache HTTP Server(依賴關系),系統會提示你需要以 root 身份執行該命令。要檢查你的用戶ID和組ID,使用 id 命令,會發現你正在”vagrant”組中以”vagrant”用戶身份運行。

    $ yum -y install httpd
    Loaded plugins: fastestmirror
    You need to be root to perform this command.
    $ id
    uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    

    要解決此問題,必須以超級用戶的身份運行該命令,這將提供提升的權限。

    16. chmod

    chmod 命令用來變更文件或目錄的權限。當你在主機上首次運行應用程序的二進制文件時,可能會收到錯誤提示信息“拒絕訪問”。如 ls 的示例所示,可以用于檢查應用程序二進制文件的權限。

    $ ls -l
    total 4
    -rw-rw-r--. 1 vagrant vagrant 34 Jul 11 02:17 test.sh
    

    這表明您沒有權限(沒有“x”)來運行二進制文件。chmod 可以修改權限,使的用戶能夠運行二進制文件。

    $ chmod +x test.sh
    [vagrant@localhost ~]$ ls -l
    total 4
    -rwxrwxr-x. 1 vagrant vagrant 34 Jul 11 02:17 test.sh
    

    如例子所示,這將更新權限,使其具有可執行的權限。現在當你嘗試執行二進制文件時,應用程序不會拋出拒絕訪問的錯誤。當將二進制文件加載到容器時,Chmod 可能很有用。它能保證容器具有合適的權限以執行二進制文件。

    17. dig / nslookup

    dig 命令是常用的域名查詢工具,可以用來測試域名系統工作是否正常。域名服務器(DNS)有助于將 URL 解析為一組應用程序服務器。然而,你會發現有些 URL 不能被解析,這會導致應用程序的連接問題。例如,假如你嘗試從應用程序的主機訪問你的數據庫。你收到一個”不能解析”的錯誤。要進行故障排查,你嘗試使用 dig(DNS 查詢工具)或 nslookup(查詢 Internet 域名服務器)來確定應用程序似乎無法解析數據的原因。

    $ nslookup mydatabase
    Server:   10.0.2.3
    Address:  10.0.2.3#53
    
    ** server can't find mydatabase: NXDOMAIN
    

    使用 nslookup 顯示無法解析 mydatabase。嘗試使用 dig 解決,但仍是相同的結果。

    $ dig mydatabase
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> mydatabase
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached
    

    這些錯誤可能是由許多不同的問題引起的。如果無法調試出根本原因,與系統管理員聯系以進行更多的調查。對于本地測試,這些問題可能表示你的主機的域名服務器未正確配置。要使用這些命令,需要安裝 BIND Utilities

    18. iptables

    iptables 用于阻止或允許 Linux 主機上的流量,用于 IP 包過濾器管理,類似于網絡防火墻。此工具可阻止某些應用程序接收或發送請求。更具體地說,如果您的應用程序難以訪問另一個端點,可能已被 iptables 拒絕流量訪問該端點。例如,假設您的應用程序的主機無法訪問 Opensource.com,您使用 curl 來測試連接。

    $ curl -vvv opensource.com
    * About to connect() to opensource.com port 80 (#0)
    *   Trying 54.204.39.132...
    * Connection timed out
    * Failed connect to opensource.com:80; Connection timed out
    * Closing connection 0
    curl: (7) Failed connect to opensource.com:80; Connection timed out
    

    連接超時。您懷疑某些東西可能會阻塞流量,因此您使用 -S 選項顯示 iptables 規則。

    $ iptables -S
    -P INPUT DROP
    -P FORWARD DROP
    -P OUTPUT DROP
    -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
    -A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
    -A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
    

    前三個規則顯示,默認情況下流量已被丟棄。剩下的規則表示允許 SSH 和 DNS 流量。在這種情況下,如果需要允許流量到外部端點的規則,請跟上 sysadmin。如果這是用于本地開發或測試的主機,可使用 iptables 命令來允許合適的流量。添加允許到主機的流量的規則時一定要謹慎。

    19. sestatus

    通常會在企業管理的應用程序主機上使用 SELinux(一個 Linux 安全模塊)。SELinux 對主機上運行的進程提供最低權限的訪問,防止潛在的惡意進程訪問系統上的重要文件。某些情況下,應用程序需要訪問特定文件,但可能會發生錯誤。要檢查 SELinux 是否阻止了應用程序,使用 tail 和 grep 在 /var/log/audit 日志記錄中查找”denied”(被拒絕)的信息。否則,使用 sestatus 來檢查是否啟動了 SELinux。

    $ sestatus
    SELinux status:                 enabled
    SELinuxfs mount:                /sys/fs/selinux
    SELinux root directory:         /etc/selinux
    Loaded policy name:             targeted
    Current mode:                   enforcing
    Mode from config file:          enforcing
    Policy MLS status:              enabled
    Policy deny_unknown status:     allowed
    Max kernel policy version:      28
    

    上面的輸出表示應用程序的主機已啟用 SELinux。在本地開發環境中,可以更新 SELinux 使得權限更寬松。

    20. history

    當你使用大量的命令進行測試和調試時,可能會忘記有用的命令。每個 shell 都有一個 history 命令的變體。它可顯示自會話開始以來使用的命令的歷史記錄。可以使用 history 來記錄用來排除應用程序故障的命令。history 命令用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。

    $ history
        1  clear
        2  df -h
        3  du
    

    如果希望執行之前歷史記錄中的命令,但又不想重新輸入,該怎么辦?使用符號 ! 即可,可以使用符號 ! 執行指定序號的歷史命令。例如,要執行第 2 個歷史命令,則輸入!2,

    在需要重新執行的命令的指定編號前添加 ! 即可重新執行

    這些基本命令能增強排查故障的專業技能,可檢查為什么應用程序可以在一個開發環境中工作,而在另一個開發環境中則不可以。許多系統管理員使用這些命令來調試系統問題。了解一些有用的故障排查命令可幫助解決應用程序的問題。

    原文來自:http://blog.jobbole.com/112085/

    本文地址:https://www.linuxprobe.com/20-sa-command.html編輯:逄增寶,審核員:王毅

    本文原創地址:https://www.linuxprobe.com/20-sa-command.html


    果你是一位系統管理員,那么你的日常工作應該包括管理服務器和數據中心的網絡。以下的 Linux 和Windows實用工具和命令 —— 從基礎的到高級的 —— 將幫你更輕松地管理你的網絡。

    在幾個命令中,你將會看到 <fqdn>,它是"完全合格域名"的全稱。當你看到它時,你應該用你的網站 URL 或你的服務器來代替它(比如,server-name.company.com),具體要視情況而定。

    ping(Packet Internet Groper/因特網包探索器)

    Ping是Windows、Unix和Linux系統下的一個命令。ping也屬于一個通信協議,是TCP/IP協議的一部分。利用"ping"命令可以檢查網絡是否連通,可以很好地幫助我們分析和判定網絡故障。應用格式:Ping空格IP地址。該命令還可以加許多參數使用,具體是鍵入Ping按回車即可看到詳細說明。

    ping就是對一個網址發送測試數據包,看對方網址是否有響應并統計響應時間,以此測試網絡。

    具體方式是,開始—運行—cmd,在調出的dos窗口下輸入 ping 空格 + 你要ping的網址,回車。

    比如 " pingXXX網址" 之后屏幕會顯示類似信息


    ping 命令參數

    在DOS窗口中,輸入ping /?(注意,ping后面有一個空格,不可省略),或者直接輸入ping加一個空格。敲擊回車鍵,會顯示出ping命令的幫助說明。

    ping命令參數

    (1)實例:測試目標并進行名字解析。

    C:>ping –a 目標IP地址

    ipconfig(IPConfig/顯示IP配置值)

    IPConfig實用程序和它的等價圖形用戶界面——Windows 95/98中的WinIPCfg可用于顯示當前的TCP/IP配置的設置值。這些信息一般用來檢驗人工配置的TCP/IP設置是否正確。但是,如果你的計算機和所在的局域網使用了動態主機配置協議(Dynamic Host Configuration Protocol,DHCP——Windows NT下的一種把較少的IP地址分配給較多主機使用的協議,類似于撥號上網的動態IP分配),這個程序所顯示的信息也許更加實用。

    簡單來說,ipconfig這個命令讓我們可以快速的獲得計算機當前的IP地址、子網掩碼和缺省網關等信息,這些信息都是進行測試和故障分析的必要項目。同時,此命令也可以清空DNS緩存(DNS cache)。

    ipconfig 命令參數

    ipconfig命令參數

    Traceroute

    ping 是用于檢查端到端的連通性,traceroute 實用工具將告訴你到達對端系統、網站,或服務器所經過的路徑上所有路由器的 IP 地址。traceroute 在網絡連接調試中經常用于在 ping 之后的第二步。

    這是一個跟蹤從你的系統到其它對端的全部網絡路徑的非常好的工具。在檢查端到端的連通性時,這個實用工具將告訴你到達對端系統、網站、或服務器上所經歷的路徑上的全部路由器的 IP 地址。通常用于網絡連通性調試的第二步。

    語法:

    · traceroute <ip address>/<fqdn>

    Telnet

    語法:

    · telnet <ip address>/<fqdn> 是用于 telnet[3] 進入任何支持該協議的服務器。

    nslookup(name server lookup/域名查詢)

    nslookup是一個程序的名字,這個程序讓因特網服務器管理員或任何的計算機用戶輸入一個主機名(舉例來說,"www.toutiao.com")并發現相應的IP地址。它也會相反的名字查找為一個你指定的 IP 住址找出主機名。

    nslookup參數用法:

    nslookup [-opt ...] # 使用默認服務器的交互模式

    nslookup [-opt ...] - server # 使用 "server" 的交互模式

    nslookup [-opt ...] host # 僅查找使用默認服務器的 "host"

    nslookup [-opt ...] host server # 僅查找使用 "server" 的 "host"

    用nslookup命令反向查找頭條地址

    Netstat

    這個網絡統計(netstat)實用工具是用于去分析解決網絡連接問題和檢查接口/端口統計數據、路由表、協議狀態等等的。它是任何管理員都應該必須掌握的工具。

    語法:

    · netstat -l 顯示所有處于監聽狀態的端口列表。

    · netstat -a 顯示所有端口;如果去指定僅顯示 TCP 端口,使用 -at(指定信顯示 UDP 端口,使用 -au)。

    · netstat -r 顯示路由表。

    ·

    · netstat -s 顯示每個協議的狀態總結。

    ·

    · netstat -i 顯示每個接口傳輸/接收(TX/RX)包的統計數據。

    ·

    Nmcli

    nmcli 是一個管理網絡連接、配置等工作的非常好的實用工具。它能夠去管理網絡管理程序和修改任何設備的網絡配置詳情。

    語法:

    · nmcli device 列出網絡上的所有設備。

    · nmcli device show <interface> 顯示指定接口的網絡相關的詳細情況。

    · nmcli connection 檢查設備的連接情況。

    · nmcli connection down <interface> 關閉指定接口。

    · nmcli connection up <interface> 打開指定接口。

    · nmcli con add type vlan con-name <connection-name> dev <interface> id <vlan-number> ipv4 <ip/cidr> gw4 <gateway-ip> 在特定的接口上使用指定的 VLAN 號添加一個虛擬局域網(VLAN)接口、IP 地址、和網關。

    ·

    路由

    檢查和配置路由的命令很多。下面是其中一些比較有用的:

    語法:

    · ip route 顯示各自接口上所有當前的路由配置。

    ·

    · route add default gw <gateway-ip> 在路由表中添加一個默認的網關。

    · route add -net <network ip/cidr> gw <gateway ip> <interface> 在路由表中添加一個新的網絡路由。還有許多其它的路由參數,比如,添加一個默認路由,默認網關等等。

    · route del -net <network ip/cidr> 從路由表中刪除一個指定的路由條目。

    ·

    · ip neighbor 顯示當前的鄰接表和用于去添加、改變、或刪除新的鄰居。

    ·

    ·

    · arp (它的全稱是 "地址解析協議")類似于 ip neighbor。arp 映射一個系統的 IP 地址到它相應的 MAC(介質訪問控制)地址。

    ·

    Tcpdump 和 Wireshark

    Linux 提供了許多包捕獲工具,比如 tcpdump、wireshark、tshark 等等。它們被用于去捕獲傳輸/接收的網絡流量中的數據包,因此它們對于系統管理員去診斷丟包或相關問題時非常有用。對于熱衷于命令行操作的人來說,tcpdump 是一個非常好的工具,而對于喜歡 GUI 操作的用戶來說,wireshark 是捕獲和分析數據包的不二選擇。tcpdump 是一個 Linux 內置的用于去捕獲網絡流量的實用工具。它能夠用于去捕獲/顯示特定端口、協議等上的流量。

    語法:

    · tcpdump -i <interface-name> 顯示指定接口上實時通過的數據包。通過在命令中添加一個 -w標志和輸出文件的名字,可以將數據包保存到一個文件中。例如:tcpdump -w <output-file.> -i <interface-name>。

    ·

    · tcpdump -i <interface> src <source-ip> 從指定的源 IP 地址上捕獲數據包。

    · tcpdump -i <interface> dst <destination-ip> 從指定的目標 IP 地址上捕獲數據包。

    · tcpdump -i <interface> port <port-number> 從一個指定的端口號(比如,53、80、8080 等等)上捕獲數據包。

    · tcpdump -i <interface> <protocol> 捕獲指定協議的數據包,比如:TCP、UDP、等等。

    Iptables

    iptables 是一個包過濾防火墻工具,它能夠允許或阻止某些流量。這個實用工具的應用范圍非常廣泛;下面是它的其中一些最常用的使用命令。

    語法:

    · iptables -L 列出所有已存在的 iptables 規則。

    · iptables -F 刪除所有已存在的規則。

    下列命令允許流量從指定端口到指定接口:

    · iptables -A INPUT -i <interface> -p tcp –dport <port-number> -m state –state NEW,ESTABLISHED -j ACCEPT

    · iptables -A OUTPUT -o <interface> -p tcp -sport <port-number> -m state – state ESTABLISHED -j ACCEPT

    下列命令允許環回

    loopback

    接口訪問系統:

    · iptables -A INPUT -i lo -j ACCEPT

    · iptables -A OUTPUT -o lo -j ACCEPT

    Nslookup

    nslookup 工具是用于去獲得一個網站或域名所映射的 IP 地址。它也能用于去獲得你的 DNS 服務器的信息,比如,一個網站的所有 DNS 記錄(具體看下面的示例)。與 nslookup 類似的一個工具是 dig(Domain Information Groper)實用工具。

    語法:

    · nslookup <website-name.com> 顯示你的服務器組中 DNS 服務器的 IP 地址,它后面就是你想去訪問網站的 IP 地址。

    · nslookup -type=any <website-name.com> 顯示指定網站/域中所有可用記錄。

    網絡/接口調試

    下面是用于接口連通性或相關網絡問題調試所需的命令和文件的匯總。

    語法:

    · ss 是一個轉儲套接字統計數據的實用工具。

    · nmap <ip-address>,它的全稱是 "Network Mapper",它用于掃描網絡端口、發現主機、檢測 MAC 地址,等等。

    · ip addr/ifconfig -a 提供一個系統上所有接口的 IP 地址和相關信息。

    · ssh -vvv user@<ip/domain> 允許你使用指定的 IP/域名和用戶名通過 SSH 協議登入到其它服務器。-vvv 標志提供 SSH 登入到服務器過程中的 "最詳細的" 信息。

    · ethtool -S <interface> 檢查指定接口上的統計數據。

    · ifup <interface> 啟動指定的接口。

    · ifdown <interface> 關閉指定的接口

    · systemctl restart network 重啟動系統上的一個網絡服務。

    · /etc/sysconfig/network-scripts/<interface-name> 是一個對指定的接口設置 IP 地址、網絡、網關等等的接口配置文件。DHCP 模式也可以在這里設置。

    · /etc/hosts 這個文件包含自定義的主機/域名到 IP 地址的映射。

    · /etc/resolv.conf 指定系統上的 DNS 服務器的 IP 地址。

    · /etc/ntp.conf 指定 NTP 服務器域名。

    indows操作系統提供了許多實用的命令行工具,通過命令行界面(Command Prompt)或Windows PowerShell,用戶可以執行各種任務,如文件管理、系統維護、網絡配置等。掌握這些命令不僅能提高工作效率,還能幫助用戶解決許多復雜的問題。本系列文章將詳細介紹Windows操作系統中的常用命令,幫助你成為Windows極客!

    基礎命令

    dir

    • 用途: 列出目錄中的文件和子目錄。
    • 用法: dir [drive:][path][filename] [/a[[:]attributes]] [/o[[:]sortorder]] [/t[[:]timefield]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]
    • 示例:
    dir C:\Users

    cd

    • 用途: 改變當前目錄。
    • 用法: cd [/d] [drive:][path]
    • 示例:
    cd C:\Windows

    copy

    • 用途: 復制文件到指定位置。
    • 用法: copy [/y | /-y] [source] [destination]
    • 示例:
    copy C:\file.txt D:\

    move

    • 用途: 移動文件或重命名文件/目錄。
    • 用法: move [/y | /-y] [source] [destination]
    • 示例:
    move C:\file.txt D:\

    del

    • 用途: 刪除一個或多個文件。
    • 用法: del [/p] [/f] [/s] [/q] [/a[[:]attributes]] names
    • 示例:
    del C:\file.txt

    md / mkdir

    • 用途: 創建新目錄。
    • 用法: md [drive:]path
    • 示例:
    md C:\NewFolder

    rd / rmdir

    • 用途: 刪除目錄。
    • 用法: rd [/s] [/q] [drive:]path
    • 示例:
    rd C:\OldFolder

    文件和目錄管理

    attrib

    • 用途: 顯示或更改文件屬性。
    • 用法: attrib [+r|-r] [+a|-a] [+s|-s] [+h|-h] [drive:][path][filename] [/s [/d]]
    • 示例:
    attrib +r C:\file.tx

    xcopy

    • 用途: 復制文件和目錄樹。
    • 用法: xcopy source [destination] [/a | /m] [/d[:date]] [/p] [/s] [/e] [/v] [/w] [/c] [/i] [/q] [/f] [/l] [/g] [/h] [/r] [/t] [/u] [/k] [/n] [/o] [/x] [/y] [/-y] [/z] [/exclude:file1[+file2][+file3]...]
    • 示例:
    xcopy C:\source D:\destination /s /e

    robocopy

    • 用途: 高級復制文件和目錄,具有更多選項。
    • 用法: robocopy source destination [file [file]...] [options]
    • 示例:
    robocopy C:\source D:\destination /mir

    tree

    • 用途: 圖形方式顯示目錄結構。
    • 用法: tree [drive:][path] [/f] [/a]
    • 示例:
    tree C:\ /f

    ren / rename

    • 用途: 重命名文件和目錄。
    • 用法: ren [drive:][path] filename1 filename2
    • 示例:
    ren C:\oldname.txt newname.txt

    系統管理

    tasklist

    • 用途: 顯示當前運行的所有進程。
    • 用法: tasklist [/s [computer] [/u [domain\]user [/p [password]]]] [/m [module] | /svc | /v] [/fi [filter]] [/fo {TABLE | LIST | CSV}] [/nh]
    • 示例:
    tasklist

    taskkill

    • 用途: 終止進程。
    • 用法: taskkill [/s [computer] [/u [domain\]user [/p [password]]]] { [/fi [filter]] [/pid [processid] | /im [imagename]]} [/f] [/t]
    • 示例:
    taskkill /pid 1234 /f

    chkdsk

    • 用途: 檢查磁盤并修復文件系統錯誤。
    • 用法: chkdsk [volume[[path]filename]] [/f] [/v] [/r] [/x] [/i] [/c] [/l[:size]]
    • 示例:
    chkdsk C: /f

    sfc

    • 用途: 掃描并修復系統文件。
    • 用法: sfc [/scannow] [/verifyonly] [/scanfile=file] [/verifyfile=file] [/offbootdir=offbootdir /offwindir=offwindir]-示例:
    sfc /scannow

    shutdown

    • 用途: 關機、重啟或注銷計算機。
    • 用法: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /m \computer [/t xxx] [/c "comment"] [/f] [/d [p|u:]xx:yy]]
    • 示例:
    shutdown /s /t 0

    systeminfo

    • 用途: 顯示計算機的詳細配置信息和操作系統屬性。
    • 用法: systeminfo [/s [computer] [/u [domain\]user [/p [password]]]] [/fo {TABLE | LIST | CSV}] [/nh]
    • 示例:
    systeminfo

    網絡相關命令

    ipconfig

    • 用途: 顯示所有當前TCP/IP網絡配置值。
    • 用法: ipconfig [/allcompartments] [/all] [/renew [adapter]] [/release [adapter]] [/renew6 [adapter]] [/release6 [adapter]] [/flushdns] [/registerdns] [/displaydns] [/showclassid adapter] [/setclassid adapter [classid]] [/showclassid6 adapter] [/setclassid6 adapter [classid]]
    • 示例:
    ipconfig /all

    ping

    • 用途: 通過發送ICMP回顯請求檢測網絡連接。
    • 用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_name
    • 示例:
    ping baidu.com
    ping 192.168.1.1 -t

    tracert

    • 用途: 跟蹤數據包到達目標主機的路徑。
    • 用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
    • 示例:
    tracert baidu.com

    netstat

    • 用途: 顯示網絡連接、路由表、接口統計等信息。
    • 用法: netstat [-a] [-e] [-n] [-o] [-p proto] [-r] [-s] [-t] [-x] [-y] [interval]
    • 示例:
    netstat -an

    nslookup

    • 用途: 查詢DNS信息。
    • 用法: nslookup [-option] [hostname] [server]
    • 示例:
    nslookup baidu.com

    net

    • 用途: 用于網絡命令的一個通用命令,可以執行許多網絡管理任務。
    • 用法: net [accounts | computer | config | continue | file | group | help | helpmsg | localgroup | name | pause | print | send | session | share | start | statistics | stop | time | use | user | view]
    • 示例:
    net user
    net share

    磁盤管理

    diskpart

    • 用途: 磁盤分區管理。
    • 用法: diskpart
    • 示例: 進入diskpart后,可以使用以下子命令:
    list disk
    select disk 0
    list partition
    create partition primary size=10000

    format

    • 用途: 格式化磁盤。
    • 用法: format volume [/fs:file-system] [/v:label] [/q] [/a:size] [/c] [/x] [/p:count] [/s:state] [/f:size]
    • 示例:
    format D: /fs:ntfs

    diskcopy

    • 用途: 復制整個磁盤的內容。
    • 用法: diskcopy [drive1:] [drive2:]
    • 示例:
    diskcopy A: B:

    vol

    • 用途: 顯示磁盤卷標和序列號。
    • 用法: vol [drive:]
    • 示例:
    vol C:

    label

    • 用途: 創建、改變或刪除磁盤卷標。
    • 用法: label [drive:][label]
    • 示例:
    label C: NewLabel

    用戶管理

    net user

    • 用途: 添加、刪除或更改用戶賬戶。
    • 用法: net user [username [password | *] [options]] [/domain]
    • 示例:
    net user newuser password /add

    net localgroup

    • 用途: 添加、顯示或修改本地組。
    • 用法: net localgroup [groupname [username [ ...]] [/add | /delete] [/domain]]
    • 示例:
    net localgroup administrators newuser /add

    runas

    • 用途: 以其他用戶身份運行程序。
    • 用法: runas [/profile] [/env] [/netonly] /user:UserAccountName program
    • 示例:
    runas /user:administrator cmd

    其他有用命令

    echo

    • 用途: 顯示消息,或打開/關閉命令回顯。
    • 用法: echo [on | off] [message]
    • 示例:
    echo Hello, World!

    type

    • 用途: 顯示文件內容。
    • 用法: type [drive:][path]filename
    • 示例:
    type C:\file.txt

    find

    • 用途: 搜索文本文件中的字符串。
    • 用法: find [/v] [/c] [/n] [/i] "string" [[drive:][path]filename[ ...]]
    • 示例:
    find "search text" C:\file.txt

    sort

    • 用途: 排序輸入。
    • 用法: sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec recordbytes]
    • 示例:
    type C:\file.txt | sort

    fc

    • 用途: 比較兩個文件或文件集,并顯示它們之間的差異。
    • 用法: fc [/a] [/b] [/c] [/l] [/lbn] [/n] [/t] [/u] [/w] [/nnnn] [drive1:][path1]filename1 [drive2:][path2]filename2
    • 示例:
    fc C:\file1.txt C:\file2.txt

    cls

    • 用途: 清除命令提示符窗口。
    • 用法: cls
    • 示例:
    cls

    prompt

    • 用途: 改變命令提示符。
    • 用法: prompt [text]
    • 示例:
    prompt $p$g

    批處理和腳本

    批處理文件(Batch file)是包含一系列命令的文本文件,通過執行批處理文件,可以自動化執行多個命令。這些文件的擴展名通常為.bat.cmd

    基本批處理命令

    • echo: 顯示消息或打開/關閉命令回顯。
    echo Hello, World!
    • @: 在批處理文件中抑制命令回顯。
    @echo off
    • rem: 注釋行。
    rem This is a comment
    • pause: 暫停批處理文件的執行并顯示提示信息。
    pause
    • if: 條件判斷。
    if exist C:\file.txt echo File exists
    • goto: 跳轉到標簽。
    goto label
    :label
    • call: 調用另一個批處理文件。
    call anotherbatchfile.bat
    • exit: 退出批處理文件。
    exit

    以下是一個簡單的批處理文件示例,展示了如何使用上述命令:

    @echo off
    echo Starting the batch file
    rem Check if a file exists
    if exist C:\file.txt (
        echo File exists
    ) else (
        echo File does not exist
    )
    pause
    echo End of batch file
    exit

    總結

    基礎命令

    命令

    解釋

    dir

    列出目錄中的文件和子目錄

    cd

    改變當前目錄

    copy

    復制文件到指定位置

    move

    移動文件或重命名文件/目錄

    del

    刪除一個或多個文件

    md/mkdir

    創建新目錄

    rd/rmdir

    刪除目錄

    文件和目錄管理

    命令

    解釋

    attrib

    顯示或更改文件屬性

    xcopy

    復制文件和目錄樹

    robocopy

    高級復制文件和目錄

    tree

    圖形方式顯示目錄結構

    ren/rename

    重命名文件和目錄

    系統管理

    命令

    解釋

    tasklist

    顯示當前運行的所有進程

    taskkill

    終止進程

    chkdsk

    檢查磁盤并修復文件系統錯誤

    sfc

    掃描并修復系統文件

    shutdown

    關機、重啟或注銷計算機

    systeminfo

    顯示計算機的詳細配置信息和操作系統屬性

    網絡相關命令

    命令

    解釋

    ipconfig

    顯示所有當前TCP/IP網絡配置值

    ping

    通過發送ICMP回顯請求檢測網絡連接

    tracert

    跟蹤數據包到達目標主機的路徑

    netstat

    顯示網絡連接、路由表、接口統計等信息

    nslookup

    查詢DNS信息

    net

    用于網絡命令的一個通用命令,可以執行許多網絡管理任務

    磁盤管理

    命令

    解釋

    diskpart

    磁盤分區管理

    format

    格式化磁盤

    diskcopy

    復制整個磁盤的內容

    vol

    顯示磁盤卷標和序列號

    label

    創建、改變或刪除磁盤卷標

    用戶管理

    命令

    解釋

    net user

    添加、刪除或更改用戶賬戶

    net localgroup

    添加、顯示或修改本地組

    runas

    以其他用戶身份運行程序


    關注 工 仲 好:IT運維大本營獲取60個G的《網工系統大禮包》

    來源:公眾號【網絡技術干貨圈】 作者:圈圈 ID:wljsghq

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有