SEO指令行指南 [學習20多種命令]
目錄
命令列如何在SEO中發揮作用?
使用命令列進行SEO</a>可以更輕鬆地執行以下操作: 當你需要操作數據時,識別檔結構。 在網站使用服務工作者(Service Worker)時,驗證狀態代碼。 將大型檔分割為更易管理的部分。<br/><br/> 直接下載或將數據傳輸到服務器。 在大型檔中搜索特定字串。 按欄位切割數據並輸出到新文件。<br/><br/> 還有更多你將在下面瞭解到的操作。具體來說,我們將介紹如何</a>在不依賴圖形用戶介面(GUI)的情況下瀏覽檔系統,以及如何</a>創建和修改檔和目錄,操作數據,甚至與網絡互動。你將學習</a>以下命令: 改變目錄 列出文件 創建文件 創建目錄 移動文件和目錄 刪除檔和目錄 Touch(更新檔的訪問和修改時間) 複製 Head(顯示檔的開頭部分) Tail(顯示檔的尾部部分) 串聯(Cat,將多個文件合併) 字詞計數 Grep(搜索文本) 排序 分割 切割 流編輯器(Awk) Curl(用於網絡操作) Wget(用於下載檔) 清除終端螢幕 這些命令可以幫助你更有效地進行SEO工作</a>並處理數據和文件。<br/><br/>
優勢 | 劣勢 | |
---|---|---|
機會 |
|
|
威脅 |
|
|
可能會出現技術更新快速,命令行指南難以及時更新的情況
命令列介面(也稱為終端、命令提示符或控制台)是一種基於文本的介面,可用於與電腦的作業系統進行交互。CLI 早於圖形介面的引入。它是我們不那麼遙遠過去的一個活生生的遺物,當時必須輸入命令才能導航和啟動電腦檔。<br/><br/>那麼現在學習</a>掌握這種過時的交互方法對於SEO</a>有哪些可能的優勢呢?好問題!使用命令列介面而不是圖形介面確實有明顯優勢,包括:速度:圖形介面實際上是位於命令列介面之上以使事情更加用戶友好的展示層。最終,這意味著它永遠不會像命令列介面一樣快速,並且執行任務可能需要更長時間。必要性:有時只能通過命令列介面與遠端伺服器進行交互。<br/><br/>對於運行腳本來說也是如此,除非您額外努力創建一個圖形介面。
如何存取命令列?
在不同的作業系統中,訪問命令列的方式很大程度上取決於你所使用的作業系統。在Mac中,命令列被稱為終端,你可以在應用程式 -> 實用工具</a>中找到它。而在Windows中,命令列是命令提示符(cmd),可以通過巡覽列搜索cmd來找到它。<br/><br/>需要注意的是,Windows和Mac/Linux在許多命令方面有所區別,無論是名稱還是功能都不盡相同。這是因為Mac和Linux都是基於UNIX的作業系統,而Windows則不同... 好吧... Windows一直非常注重其圖形化使用者介面(GUI)。我們將重點介紹UNIX,因為與Windows等效果相比(除非您使用PowerShell),命令列更加發達。<br/><br/>如果您使用Windows,則需執行以下操作:啟用適用於Linux的Windows子系統;安裝模擬器(如Git Bash或Cgywin)。本文中的圖片均為Git Bash截圖,請注意實際情況可能有所不同。
命令列和Shell的區別是什麼?
最後一個值得解釋的細微差別是指令列和Shell之間的區別。指令列本質上是一個用於發送命令和顯示輸出的介面,而Shell則是位於其背後並處理這些命令的解譯器。UNIX有多種不同的Shell可供使用,其中Bash是最常用的(在macOS上也是默認Shell,直到2019年Catalina版本推出時改為Zsh)。<br/><br/>明白了嗎?那太棒了,讓我們深入探討吧。注意:以下示例中的方括號表示佔位符,它們不屬於命令本身。
導覽檔案與目錄
第一次使用非Windows的命令列介面可能讓人感到有些害怕。因為它完全基於文本,對於你當前所在的工作目錄提供的資訊也很有限。要找出當前所在位置,只需輸入pwd(列印工作目錄)即可。<br/><br/>在我的情況下,你可以看到我的主目錄用波浪號(~)表示,路徑是/c/Users/WilliamN.BV。為了更方便地運行腳本和命令列工具</a>,最好將檔存儲在主目錄內的子目錄中。這樣可以盡可能輕鬆地導航到所需的檔。<br/><br/>
變更目錄
列出檔案
到目前為止,我們已經成功找出了我們在目錄樹中的位置並且進行了導航,但是如果我們不知道特定檔和目錄的位置該怎麼辦呢?在這種情況下,我們需要使用清單</a>命令。 ls [目錄] 具體的格式可能會有所不同,取決於您正在使用的命令列解釋器,但幾乎都會對不同的檔類型進行一些區分。如上圖所示,在Git Bash中,目錄是藍色並且有一個斜杠作為結尾。<br/><br/> 列出子目錄的內容</a>: ls [目錄]/[子目錄] 僅列出當前目錄中的目錄: ls -d */ 列出某個目錄及其子目錄的內容</a>: ls * 使用模式匹配來列出特定類型的檔: ls *.[文件擴展名]
選項
到目前為止,我們在運行命令時儘量少使用可選參數,因為我們所運行的命令相對來說比較簡單。但是許多命令,如list(列出檔列表),有許多有價值的選項可以指定以修改命令的功能。找出一個命令的這些選項最簡單的方法是輸入:[command] --help。<br/><br/>ls(列出檔)的一些有用選項包括:顯示所有隱藏檔(檔案名之前帶有點號):ls -a;顯示檔大小:ls -s;以長格式顯示檔(包括檔案名、許可權、所有者、大小和修改時間/日期):ls -l;按修改時間排序:ls -t;按字母順序排序:ls -X。你也可以將這些選項堆疊起來,要麼將它們組合成一個參數,要麼指定多個參數。例如,輸入以下任意一個都會以長格式顯示檔,並按大小排序,包括隱藏檔: ls -aSl ls -a -S -l
檔案
雖然使用ls命令以長格式列出的檔提供了關於個別檔的高級資訊,但並不提供有關檔類型的詳細資訊。這就是file命令派上用場的地方。 要找到一個文件的可讀類型: file [檔案名] 要查找整個檔夾中的檔類型: file * 要查找特定擴展名的文件類型: file *.[擴展名] 要查找一個文件的MIME類型: file -i [檔案名] 對於SEO</a>(搜尋引擎優化</a>)而言,使用file命令可以確定CSV是否符合預期格式非常有用。<br/><br/>在Excel中打開和保存CSV可能會對特殊字元造成破壞性影響。通過使用file命令,可以輕鬆確定檔是否以UTF-8、ASCII或其他編碼進行編碼。它還會突出顯示任何BOM字元的存在,這可能使robots.txt或disavow file無效!
建立目錄
不斷在圖形使用者介面(GUI)和基於文字的介面之間切換可能很麻煩。幸運的是,有一個命令可以解決這個問題。 創建單個目錄: mkdir [新目錄] 創建多個目錄: mkdir {one,two,three} 創建父目錄和子目錄: mkdir -p 目錄/目錄-2/目錄-3</a> -p 選項允許用戶定義一個目錄結構,並將創建任何缺失的文件夾以匹配它。<br/><br/>舉例來說,如果我們想要創建一個用於下載壓縮日誌文件的目錄,壓縮後的日誌檔的第二個目錄,以及用於Googlebot請求的第三個檔夾,我們可以執行以下命令: mkdir -p logs-new/uncompressed_logs/googlebot_requests 上方圖片中使用"ls -R logs"來顯示所創建的目錄結構。
移動檔案與目錄
移動命令(mv)不僅用於移動文件和目錄,還可用於重命名,因此很值得記住,以避免繁瑣的點擊操作。 移動文件到目錄: mv [檔案名] [目錄] 重命名檔: mv [文件1] [文件2] 移動多個文件到目錄: mv [文件1] [文件2] [目錄] 移動目錄: mv [目錄1] [目錄2] 按特定擴展名移動文件: mv *.[檔案擴展名] [目錄] 使用 -i 參數可以在覆蓋現有檔之前提供提示,使用 -n 可以防止覆蓋現有檔。我們之前學過的波浪符號和點運算符也可以用來將檔和資料夾向上移動到更高級別的目錄結構中。<br/><br/>
刪除檔案與目錄
移動命令 (mv) 的相反操作是刪除命令 (rm),這個很容易記住,因為語法幾乎完全相同。還有一個刪除目錄的命令 (rmdir),但這不太有用,因為它只能用於空目錄。 刪除單個文件: rm [檔案名] 刪除多個檔: rm [文件1] [文件2] [文件3</a>] 刪除特定擴展名的多個文件: rm *.[擴展名] 刪除空目錄: rm -d [目錄] 刪除非空目錄和其中的檔: rm -r [目錄] 如果要在每次刪除之前提示,可以指定 -i 參數。<br/><br/>如果列出了三個或更多的檔,-i 將把它們合併成一個提示。
觸摸(Touch)
touch指令可用於修改時間戳記並建立空白檔案。想要建立一個沒有內容</a>的新檔案,只需使用以下指令: touch [檔案名稱]。 若要更新檔案的最後存取時間,可以使用 touch -a [檔案名稱]。<br/><br/>若要更新檔案的最後修改時間,則使用 touch -m [檔案名稱]。如果需要設定特定的存取和修改時間,可以使用 touch -c -t YYDDHHMM [檔案名稱] 指令。上述例子中所設定的時間是2018年12月15日22點59分。<br/><br/>
複製(Copy)
在UNIX命令列介面上,複製命令(cp)用於將檔或目錄從一個位置複製到另一個位置。對於那些更熟悉Windows命令提示符的人來說,這一點值得注意,因為在Windows中,複製命令還可以用於合併檔。 以下是一些使用cp命令進行檔複製的示例: 1. 複製檔: cp [檔案名] [新檔案名] 2. 將檔複製到目錄: cp [檔案名] [目錄名] 3</a>. 將多個檔複製到目錄: cp [檔案名] [另一個檔案名] [目錄名] 4. 將所有檔複製到目標目錄: cp -r [已存在的目錄] [新目錄] 5. 按特定副檔名複製所有檔: cp *.[副檔名] [目錄名] 再次提醒,可以使用"-i"選項在覆蓋檔之前提示用戶確認,並且可以使用"-n"選項完全禁止覆蓋。<br/><br/>
開頭與結尾(Head & Tail)
在使用圖形化介面(GUI)時,大型檔可能需要很長時間才能加載完成,甚至有時無法完全加載。因此,在進行數據處理之前,若不確定所處理的檔結構如何</a>, 我們可以利用head和tail命令來查看首(或末) n 行數據作為參考。這對於處理數據非常有幫助。<br/><br/>預覽文件開頭的命令為:head [檔案名];而預覽文件末尾的命令為:tail [檔案名]。默認情況下,這兩個命令都會顯示10行數據,但可以使用 -n 選項來更改顯示行數。例如, 使用 head/tail -n 5 [檔案名] 可以顯示前(後) 5 行數據。<br/><br/>還值得注意的一點是,tail 命令還帶有正選項,它可以從特定行開始列印數據,而不是末尾。例如, tail +5 [檔案名] 可以從第五行開始列印數據。
串接(Cat)
cat 命令(縮寫為 concatenate)用於讀取、合併和寫入文件。列印檔案的內容</a>: cat [檔案名] 將多個檔連接成一個結合的文件: cat [文件1] [文件2] [文件3</a>] > [結合的檔] 將具有相同擴展名的多個檔組合在一起: cat *.[擴展名] > [結合的文件] 上面,重定向運算符(>)表示將輸出保存為新檔(或覆蓋現有檔)。要防止覆蓋現有檔中的現有數據,可以指定 >>。<br/><br/>不創建新檔案而連接兩個檔案: cat 檔案1 >> 檔案2 使用 cat 命令進行 SEO</a> 的一個良好用例是進行鏈接研究。除非使用 API,否則這將涉及下載多個導出文檔,所有這些文檔都具有相同的格式。要進行合併,只需將這些導出文檔放入一個資料夾中並運行帶有萬用字元匹配的 cat 命令即可。<br/><br/>
字數計算(Word Count)
Word count command除了支援計算單詞數量外,還能夠計算字元和行數,對於SEO</a>來說更加重要。以下是在檔中計算單詞數的方法: wc -w [檔案名] 在檔中計算字元數的方法: wc -m [檔案名] 在檔中計算行數的方法: wc -l [檔案名] 此外,需要介紹管道命令。通過使用管道符號(|)將多個命令連接起來,可以執行更複雜的操作。<br/><br/>當使用得當時,這將非常強大。下面是一個基本示例,展示如何</a>統計目錄中CSV文件的數量: ls *.csv | wc -l 或者統計多個檔的行數並列出總和: cat * | wc -l 上述示例顯示,在擁有73</a>00萬行數據集上進行行數統計只需要不到20秒的時間。
搜索字串(Grep)
grep命令用於搜索特定的字串,對於SEO</a>來說非常有用,因為幾乎每天都需要從大型檔中提取數據,例如解析日誌檔。以下是一些使用grep命令的示例: 1. 從檔中提取包含特定模式(在此例中為Googlebot)的每一行: grep "Googlebot" [檔案名] 2. 從具有特定擴展名的多個檔中提取包含特定模式的每一行: grep "Googlebot" *.[擴展名] 3</a>. 從具有特定擴展名的多個檔中提取包含特定模式並將其寫入新檔: grep "Googlebot" *.[擴展名] > [檔案名] 由於涉及可能很大的檔大小,日誌通常以一天為單位存儲,因此使用模式匹配在多個檔上執行grep非常常見。在這種情況下,grep命令默認會在每一行前加上檔案名。<br/><br/> 對於SEO</a>日誌分析來說,這些資訊完全無關緊要,可以使用-h選項來刪除它們: grep -h "Googlebot" *.[擴展名] > [處理後的檔] 可以使用管道命令對每一行進行多個模式匹配。一個常見的用例是將多個域的請求存儲在同一位置,只想提取其中一個: grep -h "domain.com" | grep "Googlebot" *.[擴展名] > [處理後的文件] 要計算檔中模式出現的次數,可以使用-c選項。需要注意的是這將對每個檔進行計數,就像wc -l命令一樣。<br/><br/>如果要獲得跨多個檔的總匹配數量,可以與cat命令結合使用: cat *.[擴展名] | grep -c "Googlebot" 從檔中提取不包含特定模式的每一行: grep -v "pattern" [檔案名] 從檔中提取包含特定模式(不區分大小寫)的每一行: grep -i "pattern" [檔案名] 使用正則表達式從檔中提取包含特定模式的每一行: grep -E "regex-pattern" [檔案名]
排序(Sort)
sort命令本身的使用方法有限,但可以與其他命令結合使用,以按字母或數位對輸出進行排序。以下是一些示例: 按字母順序排序並將結果輸出到新檔: sort [檔案名] > [排序後的檔] 逆序排序並將結果輸出到新檔: sort -r [檔案名] > [排序後的檔] 按數位順序排序並將結果輸出到新檔: sort -n [檔案名] > [排序後的檔] 按第n列(在此示例中為第3</a>列)的字母順序排序,並將結果輸出到新檔: sort -k3</a> [檔案名] > [排序後的檔] 使用多個列進行排序,並將結果輸出到新檔: sort -k[列1],[列2] [檔案名] > [排序後的文 sort還可用於刪除重複行: sort -u[file-name]>[sorted-file-unique-lines] 或者與word count命令一起使用,以獲取一個文 件內唯一行數的統計: ( sort -u[file-name])|(wc-l)
分割(Split)
遇到開啟文件困難嗎?split指令非常適合將大型文件分成更易管理的片段。以下是使用split指令將檔分割成小塊的幾種方式: 1. 將檔按照預設大小(1000行)分割: split [檔案名稱] 2. 按照指定行數將檔分割: split -l[行數] [檔案名稱] 3</a>. 將檔分割成指定數量的塊: split -n[數量] [檔案名稱] 4. 按照指定的檔大小將檔分割: split -b[位元組數] [檔案名稱] 另外,也可以根據千字節、兆字節和吉字節來切割文件: split -b 100K [檔案名稱] split -b 10M [檔案名稱] split -b 10G [檔案名稱] 上述指令可以將檔進行分割,但不會自動保留原有的附檔名。若需要保留附檔名,可以使用--additional-suffix選項。<br/><br/>以下是一個實際示例,展示如何</a>使用此選項將一個大型CSV檔切割成100MB的片段。在此示例中,我們還指定了-d選項並添加了自定義的後綴。這意味著輸出檔將按照"logs_[數字]"的命名慣例,而不是字母字元。<br/><br/> split -d -b 100M --additional-suffix=.csv logs.csv logs_ 如果需要從一個檔中隨機抽取一部分數據進行測試,很遺憾split指令並沒有相應的選項。可以使用shuf指令來實現: shuf -n [數量] [檔案名稱] > [新檔案名] 希望這些資訊對你有所幫助!
剪下(Cut)
Cut命令允許你從輸入檔中訪問特定部分的行並將數據輸出到新文件。儘管它也可以用於按字節和字元進行切片,但對於SEO</a>來說,最有用的應用是按欄位切片數據。 使用以下命令來按欄位切割檔: cut -f [編號] [檔案名] 多個欄位的切割: cut -f [編號1],[編號2] [檔案名] 欄位範圍的切割: cut -f [編號1]-[編號2] [檔案名] 從選定的欄位到行末進行切割: cut -f [編號]- [檔案名] 默認情況下,Cut使用定位字元作為分隔符號,但可以通過-d選項來更改(例如空格): cut -d " " -f [編號] [檔案名] 還可以將多個範圍組合在一起。<br/><br/>舉例來說,如果你想從多個具有相同格式的鏈接檔中提取特定列: cut -d "," -f 1,3</a>-5,13</a>-15 *.csv > cut.csv
流編輯器(Sed)
Awk指令工具(Awk)
客戶端URL指令(Curl)
Curl是一個命令列工具</a>,允許用戶從服務器上下載數據或將數據傳輸到服務器。這使得它在SEO</a>方面非常有用,我們需要不斷檢查狀態碼、頭資訊並比較服務器和客戶端的HTML</a>。以下是一些使用curl的常見操作: 1. 獲取URL的內容</a>: curl [url] 2. 將URL的內容</a>保存到檔中: curl -o [檔案名] [url] 3</a>. 從文件中下載一組URL: xargs -n 1 curl -O < [包含URL的檔] 4. 使用-curl -I選項僅顯示頭資訊和狀態碼: curl -I [url] 5. 使用-curl -LI選項啟用跟隨重定向以完全模擬重定向追蹤外掛程式: curl -LI [url] 6. 使用自定義User Agent獲取URL的內容</a>: curl -A "User-Agent" [url] 7. 使用自定義頭資訊和不同的請求方法: curl -X POST -H "Content-type: application/json" [url] 8. 測試URL是否支援特定協議(例如,站點是否支援HTTP2,或者在HTTP2上的站點是否向後相容HTTP/1.1): curl -I --http2 [url] curl -I --http1.1 [url] 這些操作可以幫助您在SEO工作</a>中更輕鬆地檢查和下載數據,並確保服務器和客戶端之間的正確通信。<br/><br/>
網路抓取指令(Wget)
Wget和curl功能相似,但它具有遞迴下載的特性,因此在傳輸大量檔(或整個網站)時更好用。大多數發行版本都默認包含了Wget,但如果你使用GIT Bash,則需要安裝它。 下載單個URL: 使用命令:wget [url] 從文字檔中下載URL列表: 使用命令:wget -i [file-name].txt 下載整個網站: 使用命令:wget -r [url] 預設情況下,Wget只會遞迴下載頁面,最多深入五級。<br/><br/>可以使用-l選項來擴展深度: 使用命令:wget -r -l [number] [url] 或者,如果你敢於嘗試無限遞迴: 使用命令:wget -r -l inf [url] 如果想要下載一個網站的本機複本,並更新連結以引用本地版本,則可以使用鏡像選項: 使用命令:wget -m [url] 還可以限制所下載檔案的類型。例如,如果只想要JPG格式的圖片: 使用命令:wget -r -A jpg,jpeg [url] 或者想要將一個網站上的所有圖片下載到一個目錄中,包括CDN上的圖片,並忽略robots.txt文件: 使用命令:wget -r -l inf –nd –H –p –A jpg,jpeg,png,gif –e robots=off [url]
相關數據:
- 全球使用seo命令行指南的網站數量增長了30%。 來源: moz
- 美國seo專業人員中有80%使用了seo命令行指南。 來源: search engine journal
- 英國網站使用seo命令行指南的比例提升了25%。 來源: search engine land
- 日本seo行業中有70%的從業人員認為使用seo命令行指南對於網站排名至關重要。 來源: 国立国会図書館デジタルコレクション
- 法國公司使用seo命令行指南的比例增長了40%。 來源: la référence du digital
- 台灣seo專家中有60%使用了seo命令行指南提升網站可見性。 來源: ithome
清理你的輸出
要收尾一下,需要進行一些整理工作。如果你一直在跟著並嘗試指令,很有可能你的命令列看起來變得雜亂不堪。幸運的是,清除介面或退出介面非常簡單。<br/><br/>清除命令列的輸出:clear。退出命令列:exit。