Linux學習--3.命令及查看命令幫助

来源:https://www.cnblogs.com/masterb/archive/2020/03/04/12401649.html
-Advertisement-
Play Games

命令及查看命令的詳細使用 前言: 通過這篇圖文,讀者可以瞭解 Linux 里命令的外表和本質,及如何利用 linux 自帶的幫助說明來自學一個自己沒用過的命令。 自學要求:有點英語基礎最好,這個等下看幫助文檔的時候就知道了,能看懂大多數英語單詞自學就沒問題 正文: 首先,Linux 里的命令分為內置 ...


命令及查看命令的詳細使用

前言:

  通過這篇圖文,讀者可以瞭解 Linux 里命令的外表和本質,及如何利用 linux 自帶的幫助說明來自學一個自己沒用過的命令。

  自學要求:有點英語基礎最好,這個等下看幫助文檔的時候就知道了,能看懂大多數英語單詞自學就沒問題

正文:

  首先,Linux 里的命令分為內置的Shell命令外部命令,那這兩種命令有區別麽,本質是什麼?

  下麵是我的個人理解:其實你可以把他們簡單理解為系統預裝的工具軟體和自己後來裝的工具軟體,深入到本質講的話,一個具體的命令就是一段編程語言編寫的程式以二進位的方式保存的可執行文件,shell是c語言編寫的,外部命令那可能是各種編程語言寫的。所以說 shell 命令是肯定有的,是系統自帶的;而外部命令可能預設沒有,所以要用這個命令得先安裝,比如我的第一篇 linux 筆記里的 tree 命令預設就是沒有,得自己裝 tree 這個軟體。其實安裝系統的時候就有自定義安裝哪些軟體的界面,也就是在裝個人工具包。這都是我個人的奇怪理解,各位視個人理解程度看吧,有不對望提出。

基礎知識

  一步步來,上面講了我理解的 linux 里命令的本質,下麵說下他的外表,也就是我們常看到它的樣子

  一般命令的格式:command   【option】   arguments ...

  很簡單舉個例子像下麵這個命令

  rm -rf  test.txt

  rm:就是 command,命令

  -rf:就是 option,可選項

  test.txt:就是argument,參數

  這裡就簡單瞭解下就好,實際上後面看幫助文檔就明白一個命令的外表能有多花哨了,所以這個沒必要認真記,看看過好了,就是參數的話後面可以跟好多個,也就是 test.txt 後面還能跟其他文件,rm 可以一次性刪一堆文件,就這些

查看命令類型

  本質和外表都講完了,然後怎麼知道一個命令(內在)到底是那個類型呢,可以用 type 命令後面跟要查的命令,這個命令有三種返回結果。

  • 情況一如下所示

   上面的命令是查看 cd 命令的類型,執行結果看到 shell 就知道了,cd 是內部命令;那外部命令的執行結果呢,我就用 tree 命令舉個例子。

  • 情況二如下圖所示

  執行結果返回的是一個路徑,那就是 tree 命令的存放路徑,所以 /usr/bin 就是用戶的二進位命令存放的地方,usr 其實是 user 的縮寫,bin 其實是 binary(二進位)的縮寫,這樣方便記憶,現在也正好開始積累起 linux 目錄了,再可以用 ls -l /usr/bin/tree 命令看下文件類型,是可執行文件。所以當我們執行一個命令的時候其實是到他存放的路徑里打開了這個文件。

  但是用 type 命令有時候會有第三個執行結果,就比方說 mv 命令。

  • 情況三如下圖所示

  執行結果:mv 是 mv -i 的別名,這個什麼意思呢,其實有個 alias 的命令,可以把一段命令起個其他的名字,也就是說執行 mv 其實就是執行 mv -i 這個命令。至於 alias 命令和 mv 後面多了 -i 是怎麼回事我下麵講完查看幫助文檔你就會自學了,先理解下 type 命令吧。

  多想了一下,其實可能還有第四種情況,就是既是外部命令又取了別名,執行結果可能是既返迴路徑又顯示別名的情況,那實際上也是上面這三種情況的組合,這個個人自行嘗試下吧,也就當練習type命令的使用。

查看幫助:

查看幫助有兩種手段,一種網路上查看相關幫助文檔,另一種也是最常用的,linux 上直接查看幫助文檔。先講最常用的本地查看方法

  • 本地查看,有兩種主流查看方式(當然我也就只知道這兩種,不過這兩種方法幾乎解決一切問題)
    • 第一種方法: whatis 命令配合 man 命令查看幫助文檔,這種查看方法的優點是全,支持查詢的命令全,關於幫助文檔的內容全,所以缺點也明顯,查看幫助文檔操作略麻煩,但是他能解決幾乎所有命令使用的問題,他絕對是我們學習 linux 的主力。就以查看最基礎的 cd 命令為例
      • whatis 命令的作用查看幫助手冊頁和命令描述,什麼意思呢既然能查看命令描述,那就先看下它怎麼用唄,鍵入下麵的命令
        whatis whatis

        看下他執行的結果,怎麼說的,顯示手冊頁碼描述,手冊頁碼呢就是(1),描述呢就是 - display ... 這段,至於頁碼等下馬上在 man 命令里用到了         

      • 好了 whatis 命令知道啥意思了可以查 cd 命令了
        whatis cd

        看下他的執行結果,怎麼有兩個?一樣麽?誒看下描述,第一個 cd 說的是 bash 內置的命令,詳見 bash(1),那下麵這個 cd 呢,說的是切換工作路徑,好了就是我們要找的 cd 幫助     

      • 那下麵可以用 man 命令了,它的作用是查看幫助文檔,用法是 man + 手冊頁碼 + 要查看的命令,如下所示,所以頁碼作用就是區分相同命令名,但是是不同命令的手冊位置
        man 1p cd

        看下執行結果,跳出來一個新的視窗界面,底下有提示按 h 獲取幫助按 q 退出,其實這就是幫助文檔了,怎麼看文檔 pageup 和 pagedn 可以上下翻頁,按 e 和 y 可以下上逐行翻看,按 d 和 u 可以半頁的翻看,不多說了這些會一個就行,具體操作按 h 可以看到。比較常用的我說下如查找某個關鍵字可以鍵入 / 要找的內容 ,按回車關鍵字就都會標記出來,還有上下左右鍵可以看文檔這兩個操作就夠了。感覺這看文檔操作都能寫篇長文了,就先講這些。先關註現在要看的 cd 幫助文檔

      下麵是我的分析:

      • PROLOG:這個不重要,可忽略 
      • NAME命令的名字 cd —— 它的功能描述,切換工作路徑
      • SYNOPSIS用法,也即命令格式,cd 有兩種用法,第一種是 cd +【可選項】 +【目錄】,第二種是 cd -
      • DESCRIPTION:對 cd 命令詳細用法描述,這裡有細節,看這個對 cd 的使用有很大的提升,當然它的內容不少,所以視情況一般關鍵字搜索找自己需要看的細節效率高點,全看沒必要
      • OPTIONS:對 cd 命令後面跟的可選項的作用描述,如 cd -L 是後面跟 .. 和鏈接文件的話先處理 .. 再處理鏈接文件, -P 選項相反,這什麼意思我也不太清楚,但是上面DESCRIPTION描述里應該有解釋,這個我就不多說了,因為這也不常用(當然這是對於我來說,我還沒怎麼碰到這個選項用法)
      • OPERANDS:這個是講 cd 後面跟的操作數(參數)可以有哪些,看內容 cd 後面可以有目錄和 - 兩個選項,目錄這個我們早會用了,就是要切到的路徑,那 cd - 又有什麼作用呢,看內容說的是跟 cd "$OLDPWD" && pwd ,其實就是上次的路徑跟當前路徑可以來回切換,這個還挺常用,長得也很特殊挺好記的,記下吧
      • 後面還有很多,就重要的我說下,STDIN,STDOUT,EXAMPLES,這三個內容可以看下,分別是標準輸入輸出和 cd 用法的舉例使用,不過輸入輸出跟管道重定向有關,現在沒必要,EXAMPLES可以先看起來,不過 cd 沒有例子,可能太簡單了,可以換其他命令試下,多的不講了。我感覺自己都要把自己陷進去了,不過重要的都已經說了,第一種方法就講到這了。
    • 第二種方法:在查看幫助的命令後面加 --help 或 -h 選項,這個方法優點是幫助說明顯示簡潔明瞭(就是 man 文檔里跟命令不搭嘎還有太過於細緻的內容刪減了),所以上手快,也不需要掌握瀏覽文檔要會的按鍵(當然這個不是關鍵)主要還是省事,缺點就是支持的命令沒有 man 多,還有命令幫助文檔一個屏幕沒顯示出來的話就很麻煩。所以他比較適合可選項不多的簡單命令。

      • 那下麵來舉個例子看下,cd 不能舉了,剛看了說明沒有 -h 或 --help選項,所以看下 cat 命令
        cat --help

        下麵是執行結果,大多數內容跟上面的文檔差不多,所以我簡單分析下:

      • Usage :用法,可以看到一般命令的格式,cat 後面加選項再加要查看的文件名(或者是跟標準輸入輸出)

      •  中間是OPTION可選的參數,-A 是短選項,--show-all 是長選項,這兩個是等價的,然後後面是它的功能,等價 -vET,這是組合選項相當於 -v -E -T 的功能之和,所以又要看這三個參數了,不過我就不細講了,後面是英語問題了

      • Examples:例子,cat 命令就有兩個例子了,分別是輸出文件內容和鍵盤列印什麼就輸出什麼

    本地查找的話就這些,下麵簡單說下網路查找

  • 網路查找

   網上的相關資料我沒有特別整理過,不過在找內置 Shell 命令的幫助文檔上,我首推 GNU 的 coreultils 官方文檔,Shell 命令就是 coreutils 這個軟體包里的,這是他的使用手冊http://www.gnu.org/software/coreutils/manual/ ,能解決99%的問題。GNU 是個倡導開源軟體的組織,就是提供免費軟體的團隊。

   對了在查看網頁版文檔的時候,如果是谷歌瀏覽器的話,可以用 CTRL + F 鍵找關鍵字,這樣會省事很多,畢竟命令一堆滾動條拉到什麼時候,別的沒了。

   在查外部命令的時候那就還是 man 命令吧,如果沒看懂,可以找下 man 幫助文檔的底下說不定會有一個幫助網頁,你可以看我上面那張圖最底下是不是寫著 GNU coreutils online help 後面跟著一個網址。對我就是這麼發現 GNU 官網幫助的。

總結    

  命令的外表與本質-->用 type 判斷命令本質--> whatis 配合 man 看命令外在形式-->實現自學

  本質三種:shell 命令,外部命令,其他命令的別名

  外表多樣,一般樣子長這樣:命令+可選項+一個參數或多個

  重點掌握了 type,whatis,man三個命令的用法,瞭解 -h 和 --help 可選項的用法。哦對了 -h 選項有時候不一定是列出幫助文檔,如 poweroff -h 里的 -h 是 halt(掛起的意思),電腦就掛機了,所以能用 --help 長選項別用 -h 短選項,指不定發生奇怪的事情,然後還不知道發生了什麼。網頁幫助文檔的話是最後一種手段,而且儘量選擇看官方的幫助。

互動環節

  大家有沒有比較好的學習 Linux 的資源和網站可以分享下,我現在苦學中,需要慢慢改進我的奇怪理解。

  

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在.NET4.0之前,如果我們需要在多線程環境下使用Dictionary類,除了自己實現線程同步來保證線程安全外,我們沒有其他選擇。很多開發人員肯定都實現過類似的線程安全方案,可能是通過創建全新的線程安全字典,或者僅是簡單的用一個類封裝一個Dictionary對象,併在所有方法中加上鎖機制,我們稱這 ...
  • 前言 最近一直奔波於面試,面了幾家公司的研發。有讓我受益頗多的面試經驗,也有讓我感覺浪費時間的面試經歷~因為疫情原因,最近宅在家裡也沒事,就想著使用Redis配合事件匯流排去實現下具體的業務。 需求 一個簡單的電商,有幾個重要的需求點 商品下單後TODO 存儲訂單信息 鎖定商品庫存 消息推送商家端 訂 ...
  • 一、簡介 ABP vNext 原生支持多租戶體系,可以讓開發人員快速地基於框架開發 SaaS 系統。ABP vNext 實現多租戶的思路也非常簡單,通過一個 來分割各個租戶的數據,並且在查詢的時候使用統一的全局過濾器( 類似於軟刪除 )來篩選數據。 關於多租戶體系的東西,基本定義與核心邏輯存放在 V ...
  • Class 哈哈哈fdfdv //他是變數 作為一種不確定類型的變數 class 哈哈哈fdfdv //他是類 作為自定義結構體 public class 變數 //他是類 作為自定義結構體 鹹蛋超級借法 filename //他是變數 作為一種不確定類型的變數 string filename // ...
  • 無論上層語言類型多麼複雜,在.NET平臺上,都逃不過CTS的約束,今天,我想說的不是CTS,而是上層語言C#類型的一點研究。 請看一下下麵的這個代碼段: 1 public struct test 2 { 3 public override bool Equals(object obj) 4 { 5 ...
  • 4.1實戰案例——構建讀寫分離的資料庫集群 使用Mycat作為資料庫中間件服務構建讀寫分離的資料庫集群 使用一臺虛擬機部署Mycat資料庫中間件服務,將用戶提交的讀寫操作識別分發給相應的資料庫 節點。這樣將用戶的訪問操作、資料庫的讀與寫操作分給3台主機,只有資料庫集群的主節點接 收增、刪、改SQL語 ...
  • ubuntu配置redis 安裝的有些過程會比較慢,我即使有梯子,最長的過程也要一分鐘左右,所以一定要有耐心。 安裝 下載安裝包: "點擊這裡進行最新版安裝包下載" 用 進行解壓 執行 ,將解壓過後的文件夾移動,你也可以放置其他目錄,但推薦這個目錄, 註意要root許可權 進入redis目錄 ,並執行 ...
  • 預設情況下,putty連接ubuntu server以後,哪怕設置的Utf-8的連接,也是無法顯示中文的。 應該是ubuntu伺服器端,沒有字型檔的問題。 如果在putty顯示和輸入中文呢,因為配置信息,經常需要輸入中文註釋,以防後面看不懂呀。 第一步,putty登錄系統, $sudo apt ins ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...