主頁 > 作業系統 > Linux學習--3.命令及查看命令幫助

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

2020-09-29 03:31:40 作業系統

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

前言:

  通過這篇圖文,讀者可以了解 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 就是我們要找的 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標準輸入,就是鍵盤敲東西進來給命令處理,cd 沒有,不過可以看 cat 命令是支持的,這個重要不過暫時可不管
      • INPUT FILES:就是把檔案內容輸入進來給命令處理,顯然 cd 不支持,這個重要不過暫時可不管
      • ENVIRONMENT VARIABLES環境變數,他們可以前面加 $ 查看,如 $HOME 設定的是家目錄的變數,這個可先忽略,不過確實重要
      • ASYNCHRONOUS EVENTS:這個我也不知道干嘛的,不重要,跳過
      • STDOUT STDERR OUTPUTFILES標準輸出標準錯誤輸出輸出到檔案,同上面標準輸入和檔案輸入對待,暫時不考慮使用
      • EXTENDED DESCRIPTION:擴展描述,適合擴展,不過先不考慮
      • EXIT STATUS執行結果回傳值,可以了解到命令執行成功和失敗時回傳的值,也有可能不回傳,這里就有介紹
      • 后面還有很多,就重要的我說下,EXAMPLESSEE ALSO 這兩個內容可以看下,EXAMPLES有不少例子,不過 cd 沒有例子,可能太簡單了,可以換其他命令試下,SEE ALSO 是相關的命令、變數等,多的不講了,我感覺自己都要把自己陷進去了,不過重要的都已經說了,第一種方法就講到這了,

 

  • 第二種方法:type 命令配合 help 命令查看幫助

  這個方法優點是幫助說明顯示簡潔明了,所以上手快,主要還是省事,缺點就是他只支持內部命令,所以需要 type 命令先判斷這個命令是不是內部命令,是才能用,還有命令幫助檔案太長的話就很麻煩,所以他比較適合查看簡單命令,

    • type 命令之前講過了,那 help 命令有什么用呢,那不妨直接用它查他自己怎么用的,看下下面的例子
      help help

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

      • 第一行是他的命令格式,help 后面跟命令(至于可選項,可不選,可選模式,可不選),然后下面是它的功能,顯示內置命令的幫助資訊,至于【pattern】是文字通配符的模式,學會它效率會提升不少,不過先不講,查一堆命令的時候才有用

      • 中間是 OPTION 可選項,有三個可選項,后面跟各自的功能介紹,下面是 Argument 可選引數

      • Exit Status:執行命令后的回傳結果

    簡單提下,本地查找的話還可以命令后面跟 -h 或 --help 也能查看幫助,可以自行試下效果,不過不支持所有命令,下面簡單說下網路查找

網路查找

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

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

   在查外部命令的時候那就還是 man 命令吧,如果沒看懂,可以找下 man 幫助檔案的底下說不定會有一個幫助網頁,對我就是這么發現 GNU 官網幫助的,

總結    

  命令的外表與本質-->用 type 判斷命令本質配合 help 命令查內部命令幫助--> whatis 配合 man 看命令外在形式-->實作自學

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

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

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

互動環節

  大家有沒有比較好的學習 Linux 的資源和網站可以分享下,我需要慢慢改進我的奇怪理解,還有幫助檔案里帶下劃線的單詞有什么特殊含義么,現在才發現這個我自己都不知道,

  

  

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/136597.html

標籤:Linux

上一篇:git上傳命令步驟

下一篇:svn報錯:無法加載或初始化請求的服務提供程式性

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more