Linux命令:traceroute

快速指南:traceroute命令,用於列出到達主機的所有節點。 當您嘗試在互聯網上訪問主機時,您通過家用路由器,然後通過您的ISP網絡,該網絡又通過自己的上游網絡路由器,依此類推,直到最終到達主機。 您曾經想過知道您的數據包穿越的步驟是什麼嗎? 這就是traceroute命令的用途。 您可以調用以下命令: traceroute <主機> 它將(緩慢地)收集所有信息,而數據包在旅行過程中。 在此示例中,我嘗試使用traceroute flaviocopes.com訪問我的博客: 並非每個經過的路由器都會返回信息。在這種情況下,traceroute打印* * *。否則,我們可以看到主機名稱、IP地址和一些性能指標。 對於每個路由器,我們可以看到3個樣本,這意味著traceroute默認嘗試3次,以便獲取到達所需的時間的良好指示。這就是為什麼執行traceroute需要比對該主機進行ping更長的時間。 您可以使用-q選項自定義此數字: traceroute -q 1 flaviocopes.com traceroute命令可以在Linux、macOS、WSL和任何具有UNIX環境的地方使用。

Linux命令:umask

快速指南介紹了umask命令,該命令用於設置文件的默認權限。 當你創建一個文件時,你不需要事先決定權限。權限有默認值。 可以使用umask命令來控制和修改這些默認值。 輸入umask而無參數將顯示當前的 umask,即 0022: 0022 是什麼意思?這是表示權限的八進制值。 另一個常見的值是 0002。 使用 umask -S 來查看可讀的表示法: 在這個案例中,文件的擁有者(u)具有對文件的讀、寫和執行權限。同一組(g)中的其他用戶具有讀和執行權限,與所有其他用戶(o)相同。 在數字表示法中,我們通常改變最後3位數字。 以下是一個給數字的意義的列表: 0 讀、寫、執行 1 讀和寫 2 讀和執行 3 只讀 4 寫和執行 5 只寫 6 只執行 7 無權限 注意,這種數字表示法與我們在 chmod 中使用的表示法不同。 我們可以通過以數字格式設置值來為掩碼設置新值: umask 002 或者你可以改變特定角色的權限: umask g+r umask 命令在 Linux、macOS、WSL 以及任何有 UNIX 環境的地方可用

Linux命令:uname

本文將介紹uname命令,該命令用於打印有關當前機器和運行在上面的操作系統的詳細信息。 在不使用任何選項的情況下調用uname將返回操作系統的代號: m選項顯示硬件名稱(本例中為x86_64),p選項打印處理器架構名稱(本例中為i386): s選項打印操作系統名稱,r打印發佈版號,v打印版本號: n選項打印節點網絡名稱: a選項打印所有可用的信息: 在macOS上,您還可以使用sw_vers命令打印有關macOS操作系統的更多信息。請注意,這與上面的Darwin(內核)版本不同,後者為19.6.0。 Darwin是macOS的內核名稱。內核是操作系統的"核心",而整個操作系統被稱為macOS。在Linux中,Linux是內核,GNU/Linux將是操作系統名稱,儘管我們都稱之為"Linux"。 uname命令在Linux、macOS、WSL和所有有UNIX環境的地方都可用。

Linux命令:uniq

快速指南,了解如何使用uniq命令處理文本中的重複記錄/行。 uniq是一個有用的命令,用於對文本行進行排序。 你可以從文件中獲取這些行,或者使用管道從另一個命令的輸出中獲取: uniq dogs.txt ls | uniq 需要注意的是:uniq只會檢測相鄰的重複行。這意味著你很可能會與sort命令一起使用: sort dogs.txt | uniq sort命令有自己的方法使用-u(唯一)選項來刪除重複項。但是uniq命令更強大。 默認情況下,uniq會刪除重複的行: 你可以通過-d選項告訴它只顯示重複的行,例如: sort dogs.txt | uniq -d 你可以使用-u選項只顯示非重複的行: 你可以使用-c選項計算每行的出現次數: 使用特殊組合: sort dogs.txt | uniq -c | sort -nr 然後通過最常出現的順序對這些行進行排序: uniq命令在Linux、macOS、WSL以及任何具有UNIX環境的地方都可以使用。

Linux命令:which

快速指南 which 命令,用於顯示命令所在的位置 假設您有一個可以執行的命令,因為它在 shell 路徑中,但是您想知道它位於哪裡。 您可以使用 which 來查找指定命令的路徑: which 只能用於存儲在磁盤上的可執行文件,不能用於別名或內建的shell功能。 which 命令適用於 Linux、macOS、WSL 和任何您擁有 UNIX 環境的地方

Linux命令:xargs

快速指南,介紹 xargs 命令的使用,它用於將一個命令的輸出作為另一個命令的參數。 xargs 命令在UNIX shell中用於將標準輸入轉換為命令的參數。 換句話說,通過使用 xargs,將一個命令的輸出用作另一個命令的輸入。 以下是使用的語法: command1 | xargs command2 我們使用管道(|)將輸出傳遞給 xargs。這將運行 command2 命令,並使用 command1 的輸出作為其參數。 讓我們舉個簡單的例子。您想從目錄中刪除一些特定的文件。這些文件在文本文件中列出。 我們有3個文件:file1、file2、file3。 在 todelete.txt 中,我們有一個要刪除的文件列表,例如 file1 和 file3: 我們將 cat todelete.txt 的輸出通過 xargs 傳遞給 rm 命令。 如下所示: cat todelete.txt | xargs rm 這就是結果,我們列出的文件現在已被刪除: xargs 的工作原理是根據 cat 返回的每一行分別運行 rm 2 次。 這是 xargs 最簡單的用法。我們還可以使用幾個選項。 其中我認為最有用的一個選項是 -p。使用此選項將使 xargs 打印帶有執行操作的確認提示: -n 選項讓您告訴 xargs 逐次執行一個迭代,因此您可以使用 -p 逐個確認它們。 在這裡,我們使用 -n1 告訴 xargs 逐次執行一次迭代: -I 選項是另一個廣泛使用的選項。它允許您將輸出放入佔位符中,然後您可以進行各種操作。 其中之一是運行多個命令:...

Linux指令: touch

一個關於touch指令的快速指南,該指令用於創建空文件 您可以使用touch指令來創建一個空文件: touch apple 如果該文件已經存在,則會以寫模式打開該文件並更新文件的時間戳。 該指令在Linux、macOS、WSL以及任何支援UNIX環境的地方都可以使用。

Linux指令:crontab

使用 crontab 命令來安排cron工作的快速指南 Cron工作是在特定的間隔安排運行的工作。您可以每小時、每天、每2週或週末執行某個命令。它們在伺服器上進行維護和自動化非常強大。 crontab 命令是處理cron工作的入口點。 首先,您可以探索您定義的cron工作有哪些: crontab -l 可能像我一樣沒有定義任何工作: 運行 crontab -e 來編輯cron工作並添加新工作。 默認情況下,這將使用默認的編輯器開啟,通常是 vim。我更喜歡 nano,您可以使用以下命令行使用不同的編輯器: EDITOR=nano crontab -e 現在,您可以為每個cron工作添加一行。 定義cron工作的語法可能有點令人生畏。這就是為什麼我通常使用一個網站來幫助我生成沒有錯誤的定義: https://crontab-generator.org/ 您選擇cron工作的時間間隔,然後輸入要執行的命令。 我選擇每12小時運行位於 /Users/flavio/test.sh 的腳本。這是我需要運行的crontab行: \* \*/12 \* \* \* /Users/flavio/test.sh >/dev/null 2>&1 我運行 crontab -e: EDITOR=nano crontab -e 然後我添加那行,然後按下 ctrl-X 並按下 y 保存。 如果一切順利,cron工作就設置完成了: 完成後,您可以運行以下命令來查看活動cron工作列表: crontab -l 您可以再次運行 crontab -e 來刪除一個cron工作,刪除相應的行並退出編輯器: crontab 命令在Linux、macOS、WSL和任何具有UNIX環境的地方均可使用。

Linux指令:du

快速指南,了解用於計算文件和目錄的空間使用情況的du指令。 du指令將計算整個目錄的大小: du 這裡的數字32表示以位元組為單位的值。 運行du *將計算每個文件的個別大小: 您可以使用du -m將du設置為以兆字節顯示值,使用du -g可以顯示吉字節。 -h選項將以人類可讀的方式顯示大小,並根據大小進行自動適應: 添加-a選項還會打印出目錄中每個文件的大小: 一個很方便的操作是按大小對目錄進行排序: du -h <directory> | sort -nr 然後將其傳輸到head中,只獲取前10個結果: du指令適用於Linux、macOS、WSL以及任何具有UNIX環境的地方

Linux指令:env

一個快速指南,介紹如何使用env指令運行指令並與環境變量進行互動。 env指令可用於傳遞環境變量,而無需在外部環境(即當前shell)中設置它們。 假設您想要運行一個Node.js應用程序並將USER變量設置給它。您可以運行以下命令: env USER=flavio node app.js 這樣,Node.js應用程序可以通過Node的process.env接口訪問USER環境變量。 您還可以運行清除所有已經設置的環境變量的命令,使用-i選項: env -i node app.js 在這種情況下,您將收到一個錯誤,顯示env: node: No such file or directory,這是因為命令node無法被訪問,因為外殼使用的PATH變量未設置,用於在常用路徑中查找命令。 因此,您需要傳遞到node程序的完整路徑: env -i /usr/local/bin/node app.js 嘗試使用一個擁有以下內容的簡單的app.js文件: console.log(process.env.NAME) console.log(process.env.PATH) 您將看到輸出結果為: undefined undefined 您可以傳遞一個環境變量: env -i NAME=flavio node app.js 輸出結果將是: flavio undefined 刪除-i選項將使PATH在程式內再次可用: 如果不帶任何選項運行env指令,則可以打印出所有環境變量: env 它將返回一個已設置的環境變量列表,例如: HOME=/Users/flavio LOGNAME=flavio PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin PWD=/Users/flavio SHELL=/usr/local/bin/fish 您還可以使用-u選項在運行的程式內讓某個變量無法訪問,例如以下代碼會從命令環境中刪除HOME變量: env -u HOME node app.js env指令可在Linux、macOS、WSL以及任何具有UNIX環境的地方使用。