<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式Linux入門(三、Linux Shell及常用命令說明)

矜辰所致 ? 來源:矜辰所致 ? 作者:矜辰所致 ? 2023-06-21 10:50 ? 次閱讀
嵌入式 Linux入 門第三課,熟悉掌握 Linux 常用 Shell 命令  ...... 矜辰所致

前言

認識了 Linux 文件系統,了解了文件結構和類型,那么就要學習對文件的操作了。學習 Linux ,必須要熟練的掌握 Linux 下的 Shell 命令。

本文我們就來學習說明一下 Linux 中的 Shell 及常用命令。

嵌入式 Linux 入門系列博文:

嵌入式 Linux 入門(一、Linux 基本介紹及文件結構)

嵌入式 Linux 入門(二、Linux 文件系統、文件類型及權限管理)

一、Shell 基本說明

1.1 Shell 是什么

在 Linux 中,Shell 是一個應用程序 ,他是用戶與 Linux 內核溝通的橋梁。

它負責接收用戶輸入的命令,根據用戶的輸入找到其他程序并運行,Shell負責將應用層或者用戶輸入的命令傳遞給系統內核,由操作系統內核來完成相應的工作,然后將結果反饋給應用層或者用戶。

比如我們輸入“ls” 并回車時,Shell 程序找到 “ls” 程序并運行,把結果打印出來。

Shell 有很多種實現,我們最常用為 bash ,在上一篇文章我們介紹用戶的時候,查看用戶的信息時候可以看到,他們的默認 Shell 都是 /bin/bash :

圖片.png

如何理解這個 Shell 有很多種實現方式呢?

就好比在 Windows 開發環境下面,我使用的 Vscode 中,不同的終端對應的其實是不同的 Shell 一樣,如下圖:

圖片.png

1.2 Shell 與 終端(terminal)

在 linux下我們使用組合鍵 ctrl+alt+T 終端 輸入命令,那么 Shell 是不是就是終端呢 ?

它們是兩個東西 ,終端的作用是提供一個命令的輸入輸出環境 。 Shell 是一個命令行解釋器。

只不過當我我們打開一個 terminal 的時候,通過用戶默認的 Shell 設置,系統會將 terminal 和 Shell關聯起來,當我們在 terminal 中輸入命令后,Shell 就負責解釋命令。

1.3 Shell 與 圖形化界面

在我們使用 Windows 的時候,基本上都是通過圖形化界面來進行操作運行,圖形話界面的特點是簡單,通俗易懂,用鼠標指哪打哪。 使用圖形化界面能讓用戶獲得很好的體驗。

在現在發型版本的 Linux 系統中,基本上圖形化界面也做得越來越好,程序也越來越豐富,我們虛擬機安裝的 Ubuntu 完全可以按照 Windows 的習慣進行圖形化鼠標操作,基本上不用額外的學習,就可以正常的使用把 Ubuntu 系統使用起來。

既然圖形化界面這么好了,為什么我們還要花費時間和力氣去記住各式各樣的命令?

為什么 Linux 一定要學命令行?

雖然 圖形化界面 很友好易學,但是作為開發者我們在以后學習工作中并不是永遠有圖形化界面。

比如現在很多服務器都是 Linux 操作系統,但是基本上都不會配置顯示器,維護人員都是通過遠程登錄進行維護操作。

比如我們做嵌入式,很多嵌入式產品并沒有帶顯示屏,那么在其上面運行的 Linux 我們調試也是需要命令行。

再者,在 Linux 中幾乎所有的程序都可以使用命令行執行,而且不是所有的應用程序都提供了圖形化界面。

1.4 Linux 命令的提示符

我們打開終端,可以看到如下的提示符:

qzh@ubuntu:~$

我們每行的命令前面都會有這樣的提示符,我們簡單說明一下這個提示符:

圖片.png

我們簡單來測試看一下:

圖片.png

1.5 絕對路徑與相對路徑

在介紹命令之前,介紹一下 Linux 中的絕對路徑 和相對路徑,一個文件所處的位置可以用路徑表示,在 Windows 下,我們可以通過屬性來看到文件的路徑,如下圖:

在這里插入圖片描述

絕對路徑

在 Linux 中,從根目錄下出發可以找到任意目錄、任意文件,Linux下的根目錄為“/”。

從根目錄開始表示目錄或文件的方法稱為“絕對路徑”。

比如:

/home/qzh
/bin/pwd

相對路徑

相對路徑需要理解,是相對而言來說的,路徑的寫法不是由根目錄 / 寫起,需要有一個參考路徑,怎么理解呢?

就是比如,當前正在某個目錄下面,我們可以直接進入該目錄下的某個文件夾:

在這里插入圖片描述

在 Linux 中,使用 "." 表示當前路徑," .." 表示上一級路徑, "../.." 表示上上級目錄:

在這里插入圖片描述

二、Linux 常用命令

☆ 對于初學者,命令能記住最好,記不住也沒關系,關鍵在于多用多體驗,多得多了自然就記住了。 命令行不是背出來的而是用出來的!☆

我們只需掌握常用的命令,剩下的不知道的我們在遇到的時候可以查看 系統幫助,或者前輩們的文章筆記之類。

本文也不是把全部常用命令列出來,現在只是把常用的列舉,在后期應該會對本文進行維護更新。

在這里插入圖片描述

2.1 目錄與文件操作命令

2.1.1 pwd

pwd

pwd 命令,顯打印當前工作目錄的絕對路徑,不需要任何參數

在這里插入圖片描述

2.1.2 ls

ls 命令,顯示指定目錄下的內容,可帶參數可不帶參數。

ls    [選項]    [路徑]

它的主要參數有:

-a 顯示所有的文件以及子目錄,包括以“.”開頭的隱藏文件。

-l 顯示文件的詳細信息,比如文件的形態、權限、所有者、大小等信息。

-t 將文件按照創建時間排序列出。

-A 和-a一樣,但是不列出“.”(當前目錄)和“..”(父目錄)。

-R 遞歸列出所有文件,包括子目錄中的文件。

Shell命令里面的參數是可以組合在一起用的,比如組合“-al”就是顯示所有文件的詳細信息,包括以“.”開頭的隱藏文件。

在這里插入圖片描述

2.1.3 cd

cd 命令,切換路徑。

cd    [路徑]

我們最常用的一個命令,在文章前面“ 1.5 絕對路徑與相對路徑” 中我們已經有過示例,我們可以使用絕對路徑或者相對路徑進行操作。

要記錄的幾個路徑:

" / " 根目錄

" ~ " 當前用戶主目錄

" . " 表示當前路徑

" .. " 表示上一級路徑

" ../.. " 表示上上級目錄

在這里插入圖片描述

2.1.4 mkdir

mkdir 命令,創建目錄。

mkdie [-p]  [目錄]

主要參數如下:

-p 如所要創建的目錄其上層目錄目前還未創建,那么會一起創建上層目錄。

在這里插入圖片描述

2.1.5 touch

touch 命令,修改文件時間,如果文件不存在則創建空文件。

touch  [參數]  [文件名]

使用touch創建文件的時候,如果[文件名]的文件不存在,那就直接創建一個以[文件名]命名的文件,如果[文件名]文件存在的話就僅僅修改一下此文件的最后修改日期。

它的主要參數有:

-a 只更改存取時間。

-c 不建立任何文件。

-d<日期> 使用指定的日期,而并非現在日期。

-t<時間> 使用指定的時間,而并非現在時間。

一般使用來說,我們用它基本都是是用來創建一個新文件。

在這里插入圖片描述

2.1.6 rmdir

rmdir 命令,刪除目錄。

rmdir [參數] [文件夾(目錄)]

它的主要參數有:

-p 刪除指定的文件夾(目錄)以后,若上層文件夾(目錄)為空文件夾(目錄)的話就將其一起刪除。

在這里插入圖片描述

2.1.7 rm

rm命令,刪除文件或目錄。

rm    [參數]  [目的文件或文件夾目錄名]

此命令可以完成刪除一個文件或者多個文件及文件夾,它可以實現遞歸刪除。對于鏈接文件,只刪除鏈接,原文件保持不變。鏈接文件其實就類似 Windows 下的快捷方式文件。

它的主要參數有:

-d 直接把要刪除的目錄的硬連接數據刪成 0,刪除該目錄。

-f 強制刪除文件和文件夾(目錄)。

-i 刪除文件或者文件夾(目錄)之前先詢問用戶。

-r 遞歸刪除,指定文件夾(目錄)下的所有文件和子文件夾全部刪除掉。

-v 顯示刪除過程。

在這里插入圖片描述

2.1.8 cp

cp 命令,復制文件或目錄。

cp    [參數]  [源地址]    [目的地址]

它的主要參數有:

-a 此參數和同時指定“-dpR”參數相同

-d 在復制有符號連接的文件時,保留原始的連接。

-f 強行復制文件,不管要復制的文件是否已經存在于目標目錄。

-I 覆蓋現有文件之前詢問用戶。

-p 保留源文件或者目錄的屬性。

-r或-R 遞歸處理,將指定目錄下的文件及子目錄一并處理

要想用好這個命令需要多測試測試。

在這里插入圖片描述

2.1.9 mv

mv 命令,文件移動命令。

mv  [參數]  [源地址]    [目的地址]

它的主要參數有:

-b 如果要覆蓋文件的話覆蓋前先進行備份。

-f 若目標文件或目錄與現在的文件重復,直接覆蓋目的文件或目錄。

-I 在覆蓋之前詢問用戶。

在這里插入圖片描述

2.1.10 cat

cat 命令,串聯文件的內容并打印出來。

cat   [選項]  [文件]

**雖然 cat 也有選項可加,但是我們一般使用都不加選型,直接使用 cat 文件名,

而且我們一般使用就把他當成文本查看器就行了。**

在這里插入圖片描述

2.1.11 find

find 命令,用于在目錄結構中查找文件。

find    [路徑]  [參數]  [查找條件]

它的主要參數有:

-name "filename" 按照文件名稱查找,查找與 filename匹配的文件,可使用通配符。

-depth 從指定目錄下的最深層的子目錄開始查找。

-gid<群組識別碼> 查找符合指定的群組識別碼的文件或目錄。

-group<群組名稱> 查找符合指定的群組名稱的文件或目錄。

-size<文件大小> 查找符合指定文件大小的文件。

-type<文件類型> 查找符合指定文件類型的文件。

-user<擁有者名稱> 查找符合指定的擁有者名稱的文件或目錄。

如果沒有指定查找目錄,則為當前目錄。

在這里插入圖片描述

2.1.12 grep

grep 命令,是查找文件中符合條件的字符串。

grep [選項] [查找模式] [文件名]

它的主要參數有:

-b 在顯示符合關鍵字的那一列前,標記處該列第 1個字符的位編號。

-c 計算符合關鍵字的列數。

-d<進行動作> 當指定要查找的是目錄而非文件時,必須使用此參數!否則 grep指令

將回報信息并停止搜索。

-i 忽略字符大小寫。

-v 反轉查找,只顯示不匹配的行。

-r 在指定目錄中遞歸查找。

-n 顯示所在的行號。

grep命令一次只能查一個關鍵字, 這個查找字符串的命名得自己多多嘗試。

在這里插入圖片描述

2.2 文件權限和屬性

文件權限和屬性,我們在上一篇文章

嵌入式 Linux 入門(二、Linux 文件系統、文件類型及權限管理)

我們已經講過了 chmod 改變文件權限 和 chown 改變文件所有者,具體可以查看上一篇文章,我們這里再次簡單做個記錄。

2.2.1 chmod

chmod 命令,改變文件權限。

chmod  [參數]  [文件名/目錄名]

在這里插入圖片描述

2.2.2 chown

chown 命令,改變文件所有者。

chown  [參數]  [用戶名.< 組名 >]  [文件名/目錄]

在這里插入圖片描述

2.2.3 chgrp

chgrp 命令,改變文件所屬用戶組。

chgrp [參數] [所屬群組] [文件名/目錄]

在這里插入圖片描述

☆ 改變文件所有者和用戶組的這兩個命令的應用場景:復制文件,由于復制行為會復制執行者的屬性和權限,因此復制后需要改變文件所屬用戶、用戶組等。

2.2.4 sudo

sudo 命令,以系統管理者的身份執行指令。

這個我們在前面文章多多少少也遇到過,就是在進行某些操作權限不夠的時候,在命令前面加上sudo ,以管理員身份運行。

系統會提示你輸入密碼,你輸入密碼是不會顯示的。

在這里插入圖片描述

2.3 壓縮與解壓縮

2.3.1 zip

zip 命令,用于將一個或者多個文件壓縮成一個.zip 結尾的文件,命令格式如下:

zip   [參數]    [壓縮文件名.zip]    [被壓縮的文件]

它的主要參數有:

-b<工作目錄> 指定暫時存放文件的目錄。

-d 從 zip 文件中刪除一個文件。

-F 嘗試修復已經損毀的壓縮文件。

-g 將文件壓縮入現有的壓縮文件中,不需要新建壓縮文件。

-h 幫助。

-j 只保存文件的名,不保存目錄。

-m 壓縮完成以后刪除源文件。

-n<字尾符號> 不壓縮特定擴展名的文件。

-q 不顯示壓縮命令執行過程。

-r 遞歸壓縮,將指定目錄下的所有文件和子目錄一起壓縮。

-v 顯示指令執行過程。

-num 壓縮率,為 1~9 的數值。

在這里插入圖片描述

2.3.2 unzip

unzip 命令用于對 .zip壓縮文件進行解壓。

unzip  [參數]  [壓縮文件名.zip]

在這里插入圖片描述

2.3.3 gzip

gzip 命令,也是將壓縮和解壓縮集合在一起。

gzip [參數] [文件或者目錄]

它的主要參數有:

-l(list) 列出壓縮文件的內容。

-k(keep) 在壓縮或解壓時,保留輸入文件。

-d(decompress) 將壓縮文件進行解壓縮。

如果gzip不加任何選項,此時為壓縮,壓縮完該文件會生成后綴為.gz的壓縮文件,并刪除原來的文件,推薦使用gzip -k來壓縮源文件,這樣會保留原來的文件。

相同的文件內容,如果文件名不同,壓縮后的大小也不同。

gzip只能壓縮單個文件,不能壓縮目錄。

在這里插入圖片描述

2.3.4 tar

tar 命令,將壓縮和解壓縮集合在一起。

Linux下最常用的.bz2和.gz這兩種壓縮格式,可以使用 tar 命令壓縮與解壓。

tar  [參數]  [壓縮文件名]    [被壓縮文件名]

它的主要參數有:

-c(create):表示創建用來生成文件包 。

-x:表示提取,從文件包中提取文件。

-t:可以查看壓縮的文件。

-z:使用gzip方式進行處理,它與”c“結合就表示壓縮,與”x“結合就表示解壓縮。

-Z 用 tar生成壓縮文件,用 compress壓縮。

-j:使用bzip2方式進行處理,它與”c“結合就表示壓縮,與”x“結合就表示解壓縮。

-v(verbose):詳細報告tar處理的信息。

-f(file):表示文件,后面接著一個文件名。 -C <指定目錄> 解壓到指定目錄。

-w 遭遇問題時先詢問用戶。

-k 解開備份文件時,不覆蓋已有的文件。

-m 還原文件時,不變更文件的更改時間。

-r 新增文件到已存在的備份文件的結尾部分。

在使用 tar 的時候,要記住兩條指令:

tar -vcjf  1file.tar.bz2  1file.c  
tar -vczf  1file.tar.gz   1file.c

-vcjf 表示創建 bz2 格式的壓縮文件,-vczf 表示創建.gz 格式的壓縮文件。

壓縮:

在這里插入圖片描述

解壓:

在這里插入圖片描述

2.4 網絡命令

2.4.1 ifconfig

ifconfig 命令,查看網絡、設置IP。

它的主要參數有:

-a :顯示所有網卡接口

up:激活網卡接口

down:關閉網卡接口

address:xxx.xxx.xxx.xxx,IP地址

查看 IP 地址:

在這里插入圖片描述

關閉打開網卡:

使用 ifconfig 網卡名字 down 關閉網卡,使用 ifconfig 網卡名字 up 打開網卡。

在這里插入圖片描述

修改網卡 IP 地址:

在這里插入圖片描述

2.4.2 ping

ping 命令,檢測主機聯網狀態。

這個命令我們比較熟悉,在 Windows 系統中我們也用這個 ping 命令。

在這里插入圖片描述

2.5 其他一些命令

2.5.1 echo

echo 命令,用于字符串的輸出,在終端上打印一段文字,也可以把終端的變量內容打印出來。

echo string

echo " 字符串" 
echo 字符串
echo $ 變量名

使用 echo 命令時,帶雙引號和不帶雙引號的效果是一樣的,使用引號時,要注意用英文符號。

在這里插入圖片描述

2.5.2 clear

清除屏幕。

2.5.3 reboot

重啟系統。

2.5.4 poweroff

切斷電源,關機。

2.5.5 uname

顯示操作系統類型:

在這里插入圖片描述

2.6 磁盤管理

磁盤管理的命令,會單獨使用一篇文章來說明,到時候完成磁盤管理講解的文章再來這里更新指令。

三、命令使用小技巧

上面記錄了一些 Shell 常用的命令,我們在使用命令行的過程中,其實還有幾個小技巧,學會這幾個小技巧可以使得我們在使用命令行的過程中更加方便快捷。

3.1 自動補全功能

自動補全功能就是,只需要輸入命令的前面一部分字母,然后按下 Tab 鍵,如果只有一個命令匹配的話就會自動補全這個命令剩下的字母。

如果按一下 Tab 鍵沒有反應,說明有多個命令匹配,需要再按一下 Tab 鍵,系統會把所有匹配的命令列舉出來。

當然,一個命令輸入的字母越多,越容易自動補全,比如 ifconfig ,只輸入 i 就按下 Tab 鍵,這想都不用想,i 開頭的指令肯定很多,肯定不能自動補全到 ifconfig ,如果輸入到 if 按 一下 Tab 鍵,也無法自動補全,因為以 if 開頭的指令也有多種,直到我們輸入 ifc ,然后再按一下 Tab 鍵,它就完全的會自動補全到 ifconfig。

示例如圖:

在這里插入圖片描述

在這里插入圖片描述

自動補全功能不僅對命令適用,對文件目錄也是一樣,其實想想也能明白,Linux 一切皆文件,命令也是文件,所以可以理解為自動補全對 Linux 所有文件都適用。

舉個例子如圖:

在這里插入圖片描述

3.2 重復輸入功能

我們在終端輸入指令的時候,有時候需要重復輸入 或者 輸入前面幾條輸入過的命令,可以使用鍵盤方向鍵,向上找到最近的輸入的指令:

在這里插入圖片描述

我們在有些開發的時候,需要重復的輸入某些指令長指令,如果使用此技巧可以大大的節約時間。

當然,除了鍵盤上的方向鍵,還有一種方式,可以重復上一次的指令,但是也只能重復上一次的指令,就是用兩個感嘆號命令 “!!”,示例如圖:

在這里插入圖片描述

使用感嘆號,只能重復上一次指令,這樣看起來還不如我們使用方向鍵 快捷,那么它在什么時候比較合適呢?

就是在有些時候沒有權限的時候,需要加上 sudo 指令的情況下,使用:

sudo !!

舉個例子,如下圖:

在這里插入圖片描述

使用此種方法,以后再系統中安裝軟件的時候,會很方便,因為安裝軟件大多需要獲取管理員權限。

結語

本文我們開始學習了很多的 Shell 指令,對于入門者來說,一下子記住這么多感覺會很不友好,正如我文中說過的,記不住沒有關系,linux 的學習一定要自己多動手,Shell 命令自己多敲一敲,自然而然的就記住了。

文中也沒有把所有嵌入式開發需要的命令全部列舉,對于一些某些部分專用的命令,比如磁盤管理相關,我們會在后面的對應部分文章進行說明講解。

☆ 最后還是再次強調,命令行不是背出來的而是用出來的?!?/strong>

本文就到這里,謝謝大家!
審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5001

    文章

    18414

    瀏覽量

    291508
  • Linux
    +關注

    關注

    87

    文章

    11022

    瀏覽量

    207047
  • 命令
    +關注

    關注

    5

    文章

    638

    瀏覽量

    21861
  • Shell
    +關注

    關注

    1

    文章

    358

    瀏覽量

    22947
收藏 人收藏

    評論

    相關推薦

    Linux常用命令總結

    不少Linux運維初級同學,一到面試環節,就會在基礎上掉鏈子,比如一些簡單的命令都會不知道,今天浩道跟大家分享這篇硬核干貨,可以幫助大家幾分鐘回顧掌握Linux常用命令?。?!
    發表于 09-04 17:14 ?370次閱讀

    linux常用命令

    linux常用命令
    發表于 08-20 22:53

    Linux常用命令

    Linux常用命令
    發表于 05-08 14:39

    請問嵌入式Linux GCC常用命令有哪些?

    嵌入式Linux GCC常用命令有哪些?
    發表于 04-19 09:39

    嵌入式Linux開發學習的步驟是什么

    嵌入式Linux開發學習如何入門、如何深入?學習步驟如下:1、Linux 基礎安裝Linux操作系統Li
    發表于 10-28 06:46

    掌握Linux常用命令

    一、實驗目的和要求1掌握Linux常用命令2學會如何獲取命令幫助信息3熟練掌握Linux常用命令4掌握GCC
    發表于 12-16 06:08

    了解嵌入式系統的應用以及Linux系統的結構和常用命令

    #嵌入式系統開發概述及Linux基礎本人進度計劃及任務:了解嵌入式系統的應用以及Linux系統的結構和常用命令本日任務完成情況:一、
    發表于 12-22 08:24

    Linux常用命令全集

    Linux常用命令全集.rar  date 功能說明:顯示或設置系統時間與日期。 語  法:date [-d ][-u][+%H%I%K%l%M%P%r%s%S%T%X%Z%a%A%b%B%c%d%
    發表于 03-10 13:42 ?45次下載

    linux常用命令

    linux常用命令集 名稱:cal使用權限:所有使用者使用方式:cal [-mjy] [month [year]]說明:顯示日歷。若只有一個參數,則代表年份(1-9999),顯
    發表于 01-18 12:45 ?822次閱讀

    嵌入式Linux常用命令

    嵌入式Linux常用命令,比較基礎,非常實用,適合新手學習。
    發表于 11-24 15:22 ?2次下載

    Linux教程之Linux常用命令大全

    Linux教程之Linux常用命令大全
    的頭像 發表于 03-30 10:34 ?5445次閱讀

    linux常用命令手冊

    linux常用命令手冊免費下載。
    發表于 06-01 14:59 ?62次下載

    linux常用命令大全

    linux常用命令大全,一些常用命令都可以找到
    發表于 03-03 09:20 ?0次下載

    Linux常用命令

    Linux常用命令
    的頭像 發表于 01-12 11:19 ?917次閱讀

    Linux常用命令手冊分享

    linux常用命令合集
    發表于 04-26 11:46 ?1次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>