国内精品久久久久_亚洲区手机在线中文无码播放_国内精品久久久久影院一蜜桃_日韩内射激情视频在线播放免费

      嵌入式linux?

      時間:2024-09-19 12:20 人氣:0 編輯:招聘街

      一、嵌入式linux?

      BSP(Board Support Package),板級支持包,也稱為硬件抽象層HAL或者中間層。

      它將系統(tǒng)上層軟件和底層硬件分離開來,使系統(tǒng)上層軟件開發(fā)人員無需關(guān)系底層硬件的具體情況,根據(jù)BSP層提供的接口開發(fā)即可。

      BSP是相對于操作系統(tǒng)而言的,不同的操作系統(tǒng)有不同定義形式的BSP,要求BSP所實現(xiàn)的功能也有所不同。

      在嵌入式Linux系統(tǒng)中,主要是初始化底層硬件并引導(dǎo)操作系統(tǒng);同時,BSP又是和硬件相關(guān)的,還要考慮對硬件的初始化操作。這些初始化操作主要是對CPU、內(nèi)存、中斷等相關(guān)的寄存器及協(xié)處理器進行正確的配置。

      在不同的開發(fā)階段,因為核心和文件系統(tǒng)所處的位置不同,BSP所要完成的工 作也有所不同;在開發(fā)調(diào)試階段,BSP要能夠與主機通信并從主機下載核心;在目標(biāo)產(chǎn)品中,BSP要能夠從非易失存儲設(shè)備中加載核心。

      擴展資料

      BSP有兩個特點:硬件相關(guān)性和操作系統(tǒng)相關(guān)性。

      設(shè)計一個完整的BSP需要完成兩部分工作:

      A、 嵌入式系統(tǒng)的硬件初始化和BSP功能。

      片級初始化:純硬件的初始化過程,把嵌入式微處理器從上電的默認(rèn)狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。

      板級初始化:包含軟硬件兩部分在內(nèi)的初始化過程,為隨后的系統(tǒng)初始化和應(yīng)用程序建立硬件和軟件的運行環(huán)境。

      系統(tǒng)級初始化:以軟件為主的初始化過程,進行操作系統(tǒng)的初始化。

      B、 設(shè)計硬件相關(guān)的設(shè)備驅(qū)動。

      二、linux嵌入式開發(fā)環(huán)境用什么linux?

      學(xué)習(xí)嵌入式開發(fā),一般會面臨3個階段:

      1:學(xué)習(xí)基本的編程語言C/C++,此時linux版本不重要,重要的是符合C99標(biāo)準(zhǔn)的編譯器,建議使用ubuntu或者centos,免費并且都默認(rèn)安裝了標(biāo)準(zhǔn)g++編譯器。

      2:學(xué)習(xí)linux的基本環(huán)境,包括libc庫等基本C庫和一些標(biāo)準(zhǔn)的內(nèi)核函數(shù),建議使用ubuntu,不要使用centos,centos里面擴展了不少redhat的庫,在實際嵌入式開發(fā)無法使用。

      3:學(xué)習(xí)嵌入式的特定編譯環(huán)境,交叉編譯技巧等等,此時必須在實際的嵌入式開發(fā)板上學(xué)習(xí),不能在發(fā)行版linux下學(xué)習(xí),因為嵌入式開發(fā)板都是用裁剪和優(yōu)化過的linux內(nèi)核,編譯環(huán)境也是嵌入式處理器自帶的,和發(fā)行版linux有較大的不同。 總的來說,學(xué)習(xí)嵌入式開發(fā),建議使用ubuntu

      三、有哪些經(jīng)典的 Linux 面試題?

      軟件測試被問到的Linux命令知識點,90%都在這里了!

      一、文件和目錄

      查看路徑

      pwd

      顯示當(dāng)前目錄的路徑

      which

      查看命令的可執(zhí)行文件所在路徑, Linux 下,每一條命令其實都對應(yīng)一個可執(zhí)行程序,在終端中輸入命令,按回車的時候,就是執(zhí)行了對應(yīng)的那個程序, which 命令本身對應(yīng)的程序也存在于 Linux 中。

      總的來說一個命令就是一個可執(zhí)行程序。

      瀏覽和切換目錄

      ls

      列出文件和目錄,它是 Linux 最常用的命令之一。

      【常用參數(shù)】

      • -a 顯示所有文件和目錄包括隱藏的
      • -l 顯示詳細(xì)列表
      • -h 適合人類閱讀的
      • -t 按文件最近一次修改時間排序
      • -i 顯示文件的 inode ( inode 是文件內(nèi)容的標(biāo)識)

      cd

      cd 是英語 change directory 的縮寫,表示切換目錄。

      cd / --> 跳轉(zhuǎn)到根目錄
      cd ~ --> 跳轉(zhuǎn)到家目錄
      cd .. --> 跳轉(zhuǎn)到上級目錄
      cd ./home --> 跳轉(zhuǎn)到當(dāng)前目錄的home目錄下
      cd /home/lion --> 跳轉(zhuǎn)到根目錄下的home目錄下的lion目錄
      cd --> 不添加任何參數(shù),也是回到家目錄
      

      [注意] 輸入cd /ho + 單次 tab 鍵會自動補全路徑 + 兩次 tab 鍵會列出所有可能的目錄列表。

      du

      列舉目錄大小信息。

      【常用參數(shù)】

      • -h 適合人類閱讀的;
      • -a 同時列舉出目錄下文件的大小信息;
      • -s 只顯示總計大小,不顯示具體信息。

      瀏覽和創(chuàng)建文件

      cat

      一次性顯示文件所有內(nèi)容,更適合查看小的文件。

      cat cloud-init.log
      
      

      【常用參數(shù)】

      • -n 顯示行號。

      less

      分頁顯示文件內(nèi)容,更適合查看大的文件。

      less cloud-init.log
      
      

      【快捷操作】

      • 空格鍵:前進一頁(一個屏幕);
      • b 鍵:后退一頁;
      • 回車鍵:前進一行;
      • y 鍵:后退一行;
      • 上下鍵:回退或前進一行;
      • d 鍵:前進半頁;
      • u 鍵:后退半頁;
      • q 鍵:停止讀取文件,中止 less 命令;
      • = 鍵:顯示當(dāng)前頁面的內(nèi)容是文件中的第幾行到第幾行以及一些其它關(guān)于本頁內(nèi)容的詳細(xì)信息;
      • h 鍵:顯示幫助文檔;
      • / 鍵:進入搜索模式后,按 n 鍵跳到一個符合項目,按 N 鍵跳到上一個符合項目,同時也可以輸入正則表達(dá)式匹配。

      head

      顯示文件的開頭幾行(默認(rèn)是10行)

      head cloud-init.log
      

      【參數(shù)】

      • -n 指定行數(shù) head cloud-init.log -n 2

      tail

      顯示文件的結(jié)尾幾行(默認(rèn)是10行)

      tail cloud-init.log復(fù)制代碼

      【參數(shù)】

      • -n 指定行數(shù) tail cloud-init.log -n 2
      • -f 會每過1秒檢查下文件是否有更新內(nèi)容,也可以用 -s 參數(shù)指定間隔時間 tail -f -s 4 xxx.log

      touch

      創(chuàng)建一個文件

      touch new_file復(fù)制代碼

      mkdir

      創(chuàng)建一個目錄

      mkdir new_folder復(fù)制代碼

      【常用參數(shù)】

      • -p 遞歸的創(chuàng)建目錄結(jié)構(gòu) mkdir -p one/two/three
      文件的復(fù)制和移動

      cp

      拷貝文件和目錄

      cp file file_copy --> file 是目標(biāo)文件,file_copy 是拷貝出來的文件cp file one --> 把 file 文件拷貝到 one 目錄下,并且文件名依然為 file

      cp file one/file_copy --> 把 file 文件拷貝到 one 目錄下,文件名為file_copy

      cp *.txt folder --> 把當(dāng)前目錄下所有 txt 文件拷貝到 folder 目錄下

      【常用參數(shù)】

      • -r 遞歸的拷貝,常用來拷貝一整個目錄

      mv

      移動(重命名)文件或目錄,與cp命令用法相似。

      mv file one --> 將 file 文件移動到 one 目錄下

      mv new_folder one --> 將 new_folder 文件夾移動到one目錄下mv *.txt folder --> 把當(dāng)前目錄下所有 txt 文件移動到 folder 目錄下mv file new_file --> file 文件重命名為 new_file

      文件的刪除和鏈接

      rm

      刪除文件和目錄,由于 Linux 下沒有回收站,一旦刪除非常難恢復(fù),因此需要謹(jǐn)慎操作

      rm new_file --> 刪除 new_file 文件

      rm f1 f2 f3 --> 同時刪除 f1 f2 f3 3個文件

      【常用參數(shù)】

      • -i 向用戶確認(rèn)是否刪除;
      • -f 文件強制刪除;
      • -r 遞歸刪除文件夾,著名的刪除操作 rm -rf 。

      ln

      英文 Link 的縮寫,表示創(chuàng)建鏈接。

      學(xué)習(xí)創(chuàng)建鏈接之前,首先要理解鏈接是什么,我們先來看看 Linux 的文件是如何存儲的:

      Linux 文件的存儲方式分為3個部分,文件名、文件內(nèi)容以及權(quán)限,其中文件名的列表是存儲在硬盤的其它地方和文件內(nèi)容是分開存放的,每個文件名通過 inode 標(biāo)識綁定到文件內(nèi)容。

      Linux 下有兩種鏈接類型:硬鏈接和軟鏈接。

      硬鏈接

      使鏈接的兩個文件共享同樣文件內(nèi)容,就是同樣的 inode ,一旦文件1和文件2之間有了硬鏈接,那么修改任何一個文件,修改的都是同一塊內(nèi)容,它的缺點是,只能創(chuàng)建指向文件的硬鏈接,不能創(chuàng)建指向目錄的(其實也可以,但比較復(fù)雜)而軟鏈接都可以,因此軟鏈接使用更加廣泛

      這個部分暫時不展開。

      二、用戶與權(quán)限

      用戶

      Linux 是一個多用戶的操作系統(tǒng)。在 Linux 中,理論上來說,我們可以創(chuàng)建無數(shù)個用戶,但是這些用戶是被劃分到不同的群組里面的,有一個用戶,名叫 root ,是一個很特殊的用戶,它是超級用戶,擁有最高權(quán)限。

      sudo

      以 root 身份運行命令

      useradd + passwd

      • useradd 添加新用戶
      • passwd 修改用戶密碼

      這兩個命令需要 root 用戶權(quán)限

      userdel

      刪除用戶,需要 root 用戶權(quán)限

      su

      切換用戶,需要 root 用戶權(quán)限

      群組的管理

      Linux 中每個用戶都屬于一個特定的群組,如果你不設(shè)置用戶的群組,默認(rèn)會創(chuàng)建一個和它的用戶名一樣的群組,并且把用戶劃歸到這個群組。

      groupadd

      創(chuàng)建群組,用法和 useradd 類似

      groupdel

      刪除一個已存在的群組

      groups

      查看用戶所在群組

      usermod

      用于修改用戶的賬戶。

      【常用參數(shù)】

      • -l 對用戶重命名。需要注意的是 /home 中的用戶家目錄的名字不會改變,需要手動修改。
      • -g 修改用戶所在的群組,例如 usermod -g friends lion修改 lion 用戶的群組為 friends 。
      • -G 一次性讓用戶添加多個群組,例如 usermod -G friends,foo,bar lion 。
      • -a -G 會讓你離開原先的群組,如果你不想這樣做的話,就得再添加 -a 參數(shù),意味著append 追加的意思。

      chgrp

      用于修改文件的群組。

      chown

      改變文件的所有者,需要 root 身份才能運行。

      【常用參數(shù)】

      • -R 遞歸設(shè)置子目錄和子文件, chown -R lion:lion /home/frank 把 frank 文件夾的用戶和群組都改為 lion 。
      文件權(quán)限管理

      chmod

      修改訪問權(quán)限。

      【常用參數(shù)】

      • -R 可以遞歸地修改文件訪問權(quán)限,例如 chmod -R 777 /home/lion

      其中 drwxr-xr-x 表示文件或目錄的權(quán)限。讓我們一起來解讀它具體代表什么?

      • d :表示目錄,就是說這是一個目錄,普通文件是 - ,鏈接是 l 。
      • r :read 表示文件可讀。
      • w :write 表示文件可寫,一般有寫的權(quán)限,就有刪除的權(quán)限。
      • x :execute 表示文件可執(zhí)行。
      • - :表示沒有相應(yīng)權(quán)限。

      現(xiàn)在再來理解這句權(quán)限 drwxr-xr-x 的意思:

      • 它是一個文件夾;
      • 它的所有者具有:讀、寫、執(zhí)行權(quán)限;
      • 它的群組用戶具有:讀、執(zhí)行的權(quán)限,沒有寫的權(quán)限;
      • 它的其它用戶具有:讀、執(zhí)行的權(quán)限,沒有寫的權(quán)限。

      現(xiàn)在理解了權(quán)限,我們使用 chmod 來嘗試修改權(quán)限。chmod 它不需要是 root 用戶才能運行的,只要你是此文件所有者,就可以用 chmod 來修改文件的訪問權(quán)限。

      chmod 640 hello.c

      # 分析

      6 = 4 + 2 + 0 表示所有者具有 rw 權(quán)限

      4 = 4 + 0 + 0 表示群組用戶具有 r 權(quán)限

      0 = 0 + 0 + 0 表示其它用戶沒有權(quán)限

      對應(yīng)文字權(quán)限為:-rw-r-----

      用字母來分配權(quán)限

      • u :user 的縮寫,用戶的意思,表示所有者。
      • g :group 的縮寫,群組的意思,表示群組用戶。
      • o :other 的縮寫,其它的意思,表示其它用戶。
      • a :all 的縮寫,所有的意思,表示所有用戶。
      • + :加號,表示添加權(quán)限。
      • - :減號,表示去除權(quán)限。
      • = :等于號,表示分配權(quán)限。

      chmod u+rx file --> 文件file的所有者增加讀和運行的權(quán)限

      chmod g+r file --> 文件file的群組用戶增加讀的權(quán)限

      chmod o-r file--> 文件file的其它用戶移除讀的權(quán)限

      chmod g+r file --> 文件file的群組用戶增加讀的權(quán)限,其它用戶移除讀的權(quán)限

      chmod go-r file --> 文件file的群組和其他用戶移除讀的權(quán)限

      chmod +x file --> 文件file的所有用戶增加運行的權(quán)限

      chmod u=rwx,g=r,o=- file --> 文件file的所有者分配讀寫和執(zhí)行的權(quán)限,群組其它用戶分配讀的權(quán)限,其他用戶沒有任何權(quán)限

      三、查找文件

      locate

      搜索包含關(guān)鍵字的所有文件和目錄。后接需要查找的文件名,也可以用正則表達(dá)式。

      安裝 locate

      yum -y install mlocate --> 安裝包updatedb --> 更新數(shù)據(jù)庫復(fù)制代碼locate file.txtlocate fil*.txt

      [注意] locate 命令會去文件數(shù)據(jù)庫中查找命令,而不是全磁盤查找,因此剛創(chuàng)建的文件并不會更新到數(shù)據(jù)庫中,所以無法被查找到,可以執(zhí)行 updatedb 命令去更新數(shù)據(jù)庫。

      find

      用于查找文件,它會去遍歷你的實際硬盤進行查找,而且它允許我們對每個找到的文件進行后續(xù)操作,功能非常強大。

      find <何處> <何物> <做什么>
      • 何處:指定在哪個目錄查找,此目錄的所有子目錄也會被查找。
      • 何物:查找什么,可以根據(jù)文件的名字來查找,也可以根據(jù)其大小來查找,還可以根據(jù)其最近訪問時間來查找。
      • 做什么:找到文件后,可以進行后續(xù)處理,如果不指定這個參數(shù), find 命令只會顯示找到的文件。

      根據(jù)文件名查找

      find -name "file.txt" --> 當(dāng)前目錄以及子目錄下通過名稱查找文件

      find . -name "syslog" --> 當(dāng)前目錄以及子目錄下通過名稱查找文件

      find / -name "syslog" --> 整個硬盤下查找syslog

      find /var/log -name "syslog" --> 在指定的目錄/var/log下查找syslog文件find /var/log -name "syslog*" --> 查找syslog1、syslog2 ... 等文件,通配符表示所有

      find /var/log -name "*syslog*" --> 查找包含syslog的文件

      [注意] find 命令只會查找完全符合 "何物" 字符串的文件,而 locate 會查找所有包含關(guān)鍵字的文件。

      根據(jù)文件大小查找

      find /var -size +10M --> /var 目錄下查找文件大小超過 10M 的文件

      find /var -size -50k --> /var 目錄下查找文件大小小于 50k 的文件

      find /var -size +1G --> /var 目錄下查找文件大小查過 1G 的文件

      find /var -size 1M --> /var 目錄下查找文件大小等于 1M 的文件

      根據(jù)文件最近訪問時間查找

      find -name "*.txt" -atime -7

      --> 近 7天內(nèi)訪問過的.txt結(jié)尾的文件

      僅查找目錄或文件,根據(jù)類型查找

      find . -name "file" -type f

      --> 只查找當(dāng)前目錄下的file文件

      find . -name "file" -type d

      --> 只查找當(dāng)前目錄下的file目錄

      軟件倉庫

      Linux 下軟件是以包的形式存在,一個軟件包其實就是軟件的所有文件的壓縮包,是二進制的形式,包含了安裝軟件的所有指令。Red Hat 家族的軟件包后綴名一般為 .rpm ,Debian 家族的軟件包后綴是 .deb 。

      Linux 的包都存在一個倉庫,叫做軟件倉庫,它可以使用 yum 來管理軟件包, yum 是 CentOS 中默認(rèn)的包管理工具,適用于 Red Hat 一族。可以理解成 Node.js 的 npm 。

      yum 常用命令
      • yum update | yum upgrade 更新軟件包
      • yum search xxx 搜索相應(yīng)的軟件包
      • yum install xxx 安裝軟件包
      • yum remove xxx 刪除軟件包

      四、文本操作

      grep

      全局搜索一個正則表達(dá)式,并且打印到屏幕。簡單來說就是,在文件中查找關(guān)鍵字,并顯示關(guān)鍵字所在行。

      基礎(chǔ)語法

      grep text file # text代表要搜索的文本,file代表供搜索的文件

      常用參數(shù)

      • -i 忽略大小寫, grep -i path /etc/profile
      • -n 顯示行號,grep -n path /etc/profile
      • -v 只顯示搜索文本不在的那些行,grep -v path /etc/profile
      • -r 遞歸查找, grep -r hello /etc ,Linux 中還有一個 rgrep 命令,作用相當(dāng)于 grep -r

      sort

      對文件的行進行排序。

      基礎(chǔ)語法

      sort name.txt # 對name.txt文件進行排序

      實例用法

      為了演示方便,我們首先創(chuàng)建一個文件 name.txt ,放入以下內(nèi)容:

      ChristopherShawnTedRockNoahZacharyBella

      執(zhí)行 sort name.txt 命令,會對文本內(nèi)容進行排序。

      常用參數(shù)

      • -o 將排序后的文件寫入新文件, sort -o name_sorted.txt name.txt ;
      • -r 倒序排序, sort -r name.txt ;
      • -R 隨機排序, sort -R name.txt ;
      • -n 對數(shù)字進行排序,默認(rèn)是把數(shù)字識別成字符串的,因此 138 會排在 25 前面,如果添加了 -n 數(shù)字排序的話,則 25 會在 138 前面。

      wc

      word count 的縮寫,用于文件的統(tǒng)計。它可以統(tǒng)計單詞數(shù)目、行數(shù)、字符數(shù),字節(jié)數(shù)等。

      基礎(chǔ)語法

      wc name.txt # 統(tǒng)計name.txt

      實例用法

      [root@lion ~]# wc name.txt 13 13 91 name.txt
      • 第一個13,表示行數(shù);
      • 第二個13,表示單詞數(shù);
      • 第三個91,表示字節(jié)數(shù)。

      常用參數(shù)

      • -l 只統(tǒng)計行數(shù), wc -l name.txt ;
      • -w 只統(tǒng)計單詞數(shù), wc -w name.txt ;
      • -c 只統(tǒng)計字節(jié)數(shù), wc -c name.txt ;
      • -m 只統(tǒng)計字符數(shù), wc -m name.txt 。

      uniq

      刪除文件中的重復(fù)內(nèi)容。

      基礎(chǔ)語法

      uniq name.txt # 去除name.txt重復(fù)的行數(shù),并打印到屏幕上

      【注意】它只能去除連續(xù)重復(fù)的行數(shù)。

      常用參數(shù)

      • -c 統(tǒng)計重復(fù)行數(shù), uniq -c name.txt ;
      • -d 只顯示重復(fù)的行數(shù), uniq -d name.txt 。

      cut

      剪切文件的一部分內(nèi)容。

      基礎(chǔ)語法

      cut -c 2-4 name.txt # 剪切每一行第二到第四個字符

      常用參數(shù)

      • -d 用于指定用什么分隔符(比如逗號、分號、雙引號等等) cut -d , name.txt ;
      • -f 表示剪切下用分隔符分割的哪一塊或哪幾塊區(qū)域, cut -d , -f 1 name.txt 。

      五、重定向 管道 流

      在 Linux 中一個命令的去向可以有3個地方:終端、文件、作為另外一個命令的入?yún)ⅰ?/p>

      命令一般都是通過鍵盤輸入,然后輸出到終端、文件等地方,它的標(biāo)準(zhǔn)用語是 stdin 、 stdout 以及 stderr 。

      • 標(biāo)準(zhǔn)輸入 stdin ,終端接收鍵盤輸入的命令,會產(chǎn)生兩種輸出;
      • 標(biāo)準(zhǔn)輸出 stdout ,終端輸出的信息(不包含錯誤信息);
      • 標(biāo)準(zhǔn)錯誤輸出 stderr ,終端輸出的錯誤信息。

      重定向

      把本來要顯示在終端的命令結(jié)果,輸送到別的地方(到文件中或者作為其他命令的輸入)。

      輸出重定向 >

      > 表示重定向到新的文件, cut -d , -f 1 notes.csv > name.csv ,它表示通過逗號剪切notes.csv 文件(剪切完有3個部分)獲取第一個部分,重定向到 name.csv 文件。

      我們來看一個具體示例,學(xué)習(xí)它的使用,假設(shè)我們有一個文件 notes.csv ,文件內(nèi)容如下:

      Mark1,951/100,很不錯1Mark2,952/100,很不錯2Mark3,

      953/100,很不錯3Mark4,954/100,很不錯4Mark5,955/100,很不錯5Mark6,956/100,很不錯6

      執(zhí)行命令:cut -d , -f 1 notes.csv > name.csv 最后輸出如下內(nèi)容:

      Mark1Mark2Mark3Mark4Mark5Mark6

      【注意】使用 > 要注意,如果輸出的文件不存在它會新建一個,如果輸出的文件已經(jīng)存在,則會覆蓋。因此執(zhí)行這個操作要非常小心,以免覆蓋其它重要文件。

      輸出重定向 >>

      表示重定向到文件末尾,因此它不會像 > 命令這么危險,它是追加到文件的末尾(當(dāng)然如果文件不存在,也會被創(chuàng)建)。

      再次執(zhí)行 cut -d , -f 1 notes.csv >> name.csv ,則會把名字追加到 name.csv 里面。

      Mark1Mark2Mark3Mark4Mark5Mark6Mark1Mark2Mark3Mark4Mark5Mark6

      我們平時讀的 log 日志文件其實都是用這個命令輸出的。

      輸出重定向 2>

      標(biāo)準(zhǔn)錯誤輸出

      cat not_exist_file.csv > res.txt 2> errors.log
      • 當(dāng)我們 cat 一個文件時,會把文件內(nèi)容打印到屏幕上,這個是標(biāo)準(zhǔn)輸出;
      • 當(dāng)使用了 > res.txt 時,則不會打印到屏幕,會把標(biāo)準(zhǔn)輸出寫入文件 res.txt 文件中;
      • 2> errors.log 當(dāng)發(fā)生錯誤時會寫入 errors.log 文件中。

      輸出重定向 2>>

      標(biāo)準(zhǔn)錯誤輸出(追加到文件末尾)同 >> 相似。

      輸入重定向 <

      < 符號用于指定命令的輸入。

      cat < name.csv # 指定命令的輸入為 name.csv

      雖然它的運行結(jié)果與 cat name.csv 一樣,但是它們的原理卻完全不同。

      • cat name.csv 表示 cat 命令接收的輸入是 notes.csv 文件名,那么要先打開這個文件,然后打印出文件內(nèi)容。
      • cat < name.csv 表示 cat 命令接收的輸入直接是 notes.csv 這個文件的內(nèi)容, cat命令只負(fù)責(zé)將其內(nèi)容打印,打開文件并將文件內(nèi)容傳遞給 cat 命令的工作則交給終端完成。

      輸入重定向 <<

      將鍵盤的輸入重定向為某個命令的輸入。

      sort -n << END # 輸入這個命令之后,按下回車,終端就進入鍵盤輸入模式,其中END為結(jié)束命令(這個可以自定義)wc -m << END # 統(tǒng)計輸入的單詞復(fù)
      

      管道 |

      把兩個命令連起來使用,一個命令的輸出作為另外一個命令的輸入,英文是 pipeline ,可以想象一個個水管連接起來,管道算是重定向流的一種。

      舉幾個實際用法案例:

      cut -d , -f 1 name.csv | sort > sorted_name.txt

      # 第一步獲取到的 name 列表,通過管道符再進行排序,最后輸出到sorted_name.txt

      du | sort -nr | head

      # du 表示列舉目錄大小信息# sort 進行排序,-n 表示按數(shù)字排序,-r 表示倒序# head 前10行文件

      grep log -Ir /var/log | cut -d : -f 1 | sort | uniq

      # grep log -Ir /var/log 表示在log文件夾下搜索 /var/log 文本,-r 表示遞歸,-I 用于排除二進制文件# cut -d : -f 1 表示通過冒號進行剪切,獲取剪切的第一部分# sort 進行排序# uniq 進行去重復(fù)制代碼

      六、查看進程

      在 Windows 中通過 Ctrl + Alt + Delete 快捷鍵查看軟件進程。

      w

      幫助我們快速了解系統(tǒng)中目前有哪些用戶登錄著,以及他們在干什么。

      ps

      用于顯示當(dāng)前系統(tǒng)中的進程, ps 命令顯示的進程列表不會隨時間而更新,是靜態(tài)的,是運行 ps 命令那個時刻的狀態(tài)或者說是一個進程快照。

      常用參數(shù)

      • -ef 列出所有進程;
      • -efH 以喬木狀列舉出所有進程;
      • -u 列出此用戶運行的進程;
      • -aux 通過 CPU 和內(nèi)存使用來過濾進程 ps -aux | less ;
      • -aux --sort -pcpu 按 CPU 使用降序排列, -aux --sort -pmem 表示按內(nèi)存使用降序排列;
      • -axjf 以樹形結(jié)構(gòu)顯示進程, ps -axjf 它和 pstree 效果類似。

      top

      獲取進程的動態(tài)列表。

      kill

      結(jié)束一個進程, kill + PID 。

      七、管理進程

      進程狀態(tài)

      主要是切換進程的狀態(tài)。我們先了解下 Linux 下進程的五種狀態(tài):

      1. 狀態(tài)碼 R :表示正在運行的狀態(tài);
      2. 狀態(tài)碼 S :表示中斷(休眠中,受阻,當(dāng)某個條件形成后或接受到信號時,則脫離該狀態(tài));
      3. 狀態(tài)碼 D :表示不可中斷(進程不響應(yīng)系統(tǒng)異步信號,即使用kill命令也不能使其中斷);
      4. 狀態(tài)碼 Z :表示僵死(進程已終止,但進程描述符依然存在,直到父進程調(diào)用 wait4()系統(tǒng)函數(shù)后將進程釋放);
      5. 狀態(tài)碼 T :表示停止(進程收到 SIGSTOP 、 SIGSTP 、 SIGTIN 、 SIGTOU 等停止信號后停止運行)。

      前臺進程 & 后臺進程

      默認(rèn)情況下,用戶創(chuàng)建的進程都是前臺進程,前臺進程從鍵盤讀取數(shù)據(jù),并把處理結(jié)果輸出到顯示器。例如運行 top 命令,這就是一個一直運行的前臺進程。

      后臺進程的優(yōu)點是不必等待程序運行結(jié)束,就可以輸入其它命令。在需要執(zhí)行的命令后面添加& 符號,就表示啟動一個后臺進程。

      &

      啟動后臺進程,它的缺點是后臺進程與終端相關(guān)聯(lián),一旦關(guān)閉終端,進程就自動結(jié)束了。

      cp name.csv name-copy.csv &

      nohup

      使進程不受掛斷(關(guān)閉終端等動作)的影響。

      nohup cp name.csv name-copy.csv

      nohup 命令也可以和 & 結(jié)合使用。

      nohup cp name.csv name-copy.csv &

      bg

      使一個"后臺暫停運行"的進程,狀態(tài)改為"后臺運行"。

      jobs

      顯示當(dāng)前終端后臺進程狀態(tài)。

      fg

      fg 使進程轉(zhuǎn)為前臺運行,用法和 bg 命令類似。

      我們用一張圖來表示前后臺進程切換:

      我們可以使程序在后臺運行,成為后臺進程,這樣在當(dāng)前終端中我們就可以做其他事情了,而不必等待此進程運行結(jié)束。

      八、文件壓縮解壓

      • 打包:是將多個文件變成一個總的文件,它的學(xué)名叫存檔、歸檔。
      • 壓縮:是將一個大文件(通常指歸檔)壓縮變成一個小文件。

      我們常常使用 tar 將多個文件歸檔為一個總的文件,稱為 archive 。然后用 gzip 或 bzip2 命令將 archive 壓縮為更小的文件。

      tar

      創(chuàng)建一個 tar 歸檔。

      基礎(chǔ)用法

      tar -cvf sort.tar sort/

      # 將sort文件夾歸檔為sort.tar

      tar -cvf archive.tar file1 file2 file3

      # 將 file1 file2 file3 歸檔為archive.tar復(fù)制代碼

      常用參數(shù)

      • -cvf 表示 create(創(chuàng)建)+ verbose(細(xì)節(jié))+ file(文件),創(chuàng)建歸檔文件并顯示操作細(xì)節(jié);
      • -tf 顯示歸檔里的內(nèi)容,并不解開歸檔;
      • -rvf 追加文件到歸檔, tar -rvf archive.tar file.txt ;
      • -xvf 解開歸檔, tar -xvf archive.tar 。

      gzip / gunzip

      "壓縮/解壓"歸檔,默認(rèn)用 gzip 命令,壓縮后的文件后綴名為 .tar.gz 。

      gzip archive.tar # 壓縮gunzip archive.tar.gz # 解壓

      tar 歸檔+壓縮

      可以用 tar 命令同時完成歸檔和壓縮的操作,就是給 tar 命令多加一個選項參數(shù),使之完成歸檔操作后,還是調(diào)用 gzip 或 bzip2 命令來完成壓縮操作。

      tar -zcvf archive.tar.gz archive/ # 將archive文件夾歸檔并壓縮

      tar -zxvf archive.tar.gz # 將archive.tar.gz歸檔壓縮文件解壓

      zcat、zless、zmore

      之前講過使用 cat less more 可以查看文件內(nèi)容,但是壓縮文件的內(nèi)容是不能使用這些命令進行查看的,而要使用 zcat、zless、zmore 進行查看。

      zcat archive.tar.gz

      zip/unzip

      "壓縮/解壓" zip 文件( zip 壓縮文件一般來自 windows 操作系統(tǒng))。

      命令安裝

      # Red Hat 一族中的安裝方式y(tǒng)um install zip yum install unzip 復(fù)制代碼

      基礎(chǔ)用法

      unzip archive.zip

      # 解壓 .zip 文件

      unzip -l archive.zip

      # 不解開 .zip 文件,只看其中內(nèi)容

      zip -r sort.zip sort/

      # 將sort文件夾壓縮為 sort.zip,其中-r表示遞歸

      編譯安裝

      簡單來說,編譯就是將程序的源代碼轉(zhuǎn)換成可執(zhí)行文件的過程。大多數(shù) Linux 的程序都是開放源碼的,可以編譯成適合我們的電腦和操縱系統(tǒng)屬性的可執(zhí)行文件。

      基本步驟如下:

      1. 下載源代碼
      2. 解壓壓縮包
      3. 配置
      4. 編譯
      5. 安裝

      實際案例

      1、下載

      我們來編譯安裝 htop 軟件,首先在它的官網(wǎng)下載源碼:http://bintray.com/htop/source[1]

      下載好的源碼在本機電腦上使用如下命令同步到服務(wù)器上:

      scp 文件名 用戶名@服務(wù)器ip:目標(biāo)路徑

      scp ~/Desktop/htop-3.0.0.tar.gz root@121.42.11.34:.

      也可以使用 wegt 進行下載:

      wegt+下載地址

      wegt https://bintray.com/htop/source/download_file?file_path=htop-3.0.0.tar.gz

      2、解壓文件

      tar -zxvf htop-3.0.0.tar.gz

      # 解壓cd htop-3.0.0 # 進入目錄

      3、配置

      執(zhí)行 ./configure ,它會分析你的電腦去確認(rèn)編譯所需的工具是否都已經(jīng)安裝了。

      4、編譯

      執(zhí)行 make 命令

      5、安裝

      執(zhí)行 make install 命令,安裝完成后執(zhí)行 ls /usr/local/bin/ 查看是否有 htop 命令。如果有就可以執(zhí)行 htop 命令查看系統(tǒng)進程了。

      九、網(wǎng)絡(luò)

      ifconfig

      查看 ip 網(wǎng)絡(luò)相關(guān)信息,如果命令不存在的話, 執(zhí)行命令 yum install net-tools 安裝。

      參數(shù)解析:

      • eth0 對應(yīng)有線連接(對應(yīng)你的有線網(wǎng)卡),就是用網(wǎng)線來連接的上網(wǎng)。eth 是 Ethernet 的縮寫,表示"以太網(wǎng)"。有些電腦可能同時有好幾條網(wǎng)線連著,例如服務(wù)器,那么除了eht0 ,你還會看到 eth1 、 eth2 等。
      • lo 表示本地回環(huán)( Local Loopback 的縮寫,對應(yīng)一個虛擬網(wǎng)卡)可以看到它的 ip 地址是 127.0.0.1 。每臺電腦都應(yīng)該有這個接口,因為它對應(yīng)著"連向自己的鏈接"。這也是被稱之為"本地回環(huán)"的原因。所有經(jīng)由這個接口發(fā)送的東西都會回到你自己的電腦。看起來好像并沒有什么用,但有時為了某些緣故,我們需要連接自己。例如用來測試一個網(wǎng)絡(luò)程序,但又不想讓局域網(wǎng)或外網(wǎng)的用戶查看,只能在此臺主機上運行和查看所有的網(wǎng)絡(luò)接口。例如在我們啟動一個前端工程時,在瀏覽器輸入 127.0.0.1:3000 啟動項目就能查看到自己的 web 網(wǎng)站,并且它只有你能看到。
      • wlan0 表示無線局域網(wǎng)

      host

      ip 地址和主機名的互相轉(zhuǎn)換。

      ssh 連接遠(yuǎn)程服務(wù)器

      通過非對稱加密以及對稱加密的方式(同 HTTPS 安全連接原理相似)連接到遠(yuǎn)端服務(wù)器。

      ***h

      config 文件可以***h ,方便批量管理多個 ssh 連接。

      配置文件分為以下幾種:

      • 全局 ssh 服務(wù)端的配置:/etc/ssh/sshd_config ;
      • 全局 ssh 客戶端的配置:/etc/ssh/ssh_config(很少修改);
      • 當(dāng)前用戶 ssh 客戶端的***h/config 。

      配置當(dāng)前用戶的 config :

      # 創(chuàng)建config

      vim ~/.ssh/config

      # 填寫一下內(nèi)容

      Host lion # 別名 HostName 172.x.x.x # ip 地址 Port 22 # 端口 User root # 用戶

      這樣配置完成后,下次登錄時,可以這樣登錄 ssh lion 會自動識別為 root 用戶。

      [注意] 這段配置不是在服務(wù)器上,而是你自己的機器上,它僅僅是設(shè)置了一個別名。

      wget

      可以使我們直接從終端控制臺下載文件,只需要給出文件的HTTP或FTP地址。

      十 備份

      scp

      它是 Secure Copy 的縮寫,表示安全拷貝。scp 可以使我們通過網(wǎng)絡(luò),把文件從一臺電腦拷貝到另一臺電腦。

      scp 是基于 ssh 的原理來運作的, ssh 會在兩臺通過網(wǎng)絡(luò)連接的電腦之間創(chuàng)建一條安全通信的管道, scp 就利用這條管道安全地拷貝文件。

      scp source_file destination_file

      # source_file 表示源文件,destination_file 表示目標(biāo)文件

      其中 source_file 和 destination_file 都可以這樣表示:user@ip:file_name , user 是登錄名, ip 是域名或 ip 地址。file_name 是文件路徑。

      scp root@192.168.1.5:/root/file.txt file.txt # 表示把遠(yuǎn)程電腦上的 file.txt 文件拷貝到本機
      scp file.txt root@192.168.1.5:/root # 表示把我的電腦中當(dāng)前文件夾下的 file.txt 文件拷貝到遠(yuǎn)程電腦

      rsync

      rsync 命令主要用于遠(yuǎn)程同步文件。它可以同步兩個目錄,不管它們是否處于同一臺電腦。它應(yīng)該是最常用于"增量備份"的命令了。它就是智能版的 scp 命令。

      軟件安裝

      yum install rsync復(fù)制代碼

      基礎(chǔ)用法

      rsync -arv Images/ backups/

      # 將Images 目錄下的所有文件備份到 backups 目錄下

      rsync -arv Images/ root@192.x.x.x:backups/

      # 同步到服務(wù)器的backups目錄下

      常用參數(shù)

      • -a 保留文件的所有信息,包括權(quán)限,修改日期等;
      • -r 遞歸調(diào)用,表示子目錄的所有文件也都包括;
      • -v 冗余模式,輸出詳細(xì)操作信息。

      默認(rèn)地, rsync 在同步時并不會刪除目標(biāo)目錄的文件,例如你在源目錄中刪除一個文件,但是用 rsync 同步時,它并不會刪除同步目錄中的相同文件。如果向刪除也可以這么做:rsync -arv --delete Images/ backups/ 。

      十一 系統(tǒng)

      halt

      關(guān)閉系統(tǒng),需要 root 身份。

      reboot

      重啟系統(tǒng),需要 root 身份。

      reboot

      poweroff

      直接運行即可關(guān)機,不需要 root 身份。

      十二 Vim 編輯器

      Vim 是什么?

      Vim 是從 vi 發(fā)展出來的一個文本編輯器。其代碼補完、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。和 Emacs 并列成為類 Unix 系統(tǒng)用戶最喜歡的編輯器。

      Vim 常用模式

      • 交互模式
      • 插入模式
      • 命令模式
      • 可視模式

      交互模式

      也成為正常模式,這是 Vim 的默認(rèn)模式,每次運行 Vim 程序的時候,就會進入這個模式。

      例如執(zhí)行 vim name.txt 則會進入交互模式。

      交互模式特征:

      • 在這個模式下,你不能輸入文本;
      • 它可以讓我們在文本間移動,刪除一行文本,復(fù)制黏貼文本,跳轉(zhuǎn)到指定行,撤銷操作,等等

      插入模式

      這個模式是我們熟悉的文本編輯器的模式,就是可以輸入任何你想輸入的內(nèi)容。進入這個模式有幾種方法,最常用的方法是按字母鍵 i ( i、I、a、A、o、O 都可以進入插入模式,只是所處的位置不同),退出這種模式,只需要按下 Esc 鍵。

      • i, I 進入輸入模式 Insert mode :i 為"從目前光標(biāo)所在處輸入", I 為"在目前所在行的第一個非空格符處開始輸入";
      • a, A 進入輸入模式 Insert mode :a 為"從目前光標(biāo)所在的下一個字符處開始輸入",A 為"從光標(biāo)所在行的最后一個字符處開始輸入";
      • o, O 進入輸入模式 Insert mode :o 為"在目前光標(biāo)所在的下一行處輸入新的一行";O 為在目前光標(biāo)所在處的上一行輸入新的一行。

      命令模式

      命令模式也稱為底線命令模式,這個模式下可以運行一些命令例如"退出","保存",等動作。

      也可以用這個模式來激活一些 Vim 配置,例如語法高亮,顯示行號,等。甚至還可以發(fā)送一些命令給終端命令行,例如 ls、cp 。

      為了進入命令模式,首先要進入交互模式,再按下冒號鍵。

      用一張圖表示三種模式如何切換:

      基本操作

      打開 Vim

      在終端命令行中輸入 vim 回車后 Vim 就會被運行起來,也可以用 Vim 來打開一個文件,只需要在 vim 后面再加文件名。如 vim file.name ,如果文件不存在,那么會被創(chuàng)建。

      插入

      進入文件之后,此時處于交互模式,可以通過輸入 i 進入插入模式

      移動

      在 Vim 的交互模式下,我們可以在文本中移動光標(biāo)。

      • h 向左移動一個字符
      • j 向下移動一個字符
      • k 向上移動一個字符
      • i 向右移動一個字符

      當(dāng)然也可以使用四個方向鍵進行移動,效果是一樣的。

      跳至行首和行末

      • 行首:在交互模式下,為了將光標(biāo)定位到一行的開始位置,只需要按下數(shù)字鍵 0 即可,鍵盤上的 Home 鍵也有相同效果。
      • 行末:在交互模式下,為了將光標(biāo)定位到一行的末尾,只需要按下美元符號鍵 $ 即可,鍵盤上的 End 鍵也有相同效果。

      按單詞移動

      在交互模式下,按字母鍵 w 可以一個單詞一個單詞的移動。

      退出文件

      在交互模式下,按下冒號鍵 : 進入命令模式,再按下 q 鍵,就可以退出了。

      如果在退出之前又修改了文件,就直接想用 :q 退出 Vim ,那么 Vim 會顯示一個紅字標(biāo)明錯誤信息。此時我們有兩個選擇:

      1. 保存并退出 :wq 或 :x ;
      2. 不保存且退出 :q! 。

      標(biāo)準(zhǔn)操作

      刪除字符

      在交互模式下,將光標(biāo)定位到一個你想要刪除的字符上,按下字母鍵 x 你會發(fā)現(xiàn)這個字符被刪除了。

      也可以一次性刪除多個字符,只需要在按 x 鍵之前輸入數(shù)字即可。

      刪除(剪切)單詞,行

      • 刪除一行:連按兩次 d 來刪除光標(biāo)所在的那一行。
      • 刪除多行:例如先輸入數(shù)字 2 ,再按下 dd ,就會刪除從光標(biāo)所在行開始的兩行。
      • 刪除一個單詞:將光標(biāo)置于一個單詞的首字母處,然后按下 dw 。
      • 刪除多個單詞:例如先按數(shù)字鍵 2 再按 dw 就可以刪除兩個單詞了。
      • 從光標(biāo)所在位置刪除至行首:d0 。
      • 從光標(biāo)所在位置刪除至行末:d$ 。

      復(fù)制單詞,行

      • 復(fù)制行:按兩次 y 會把光標(biāo)所在行復(fù)制到內(nèi)存中,和 dd 類似, dd 用于"剪切"光標(biāo)所在行。
      • 復(fù)制單詞:yw 會復(fù)制一個單詞。
      • 復(fù)制到行末:y$ 是復(fù)制從光標(biāo)所在處到行末的所有字符。
      • 復(fù)制到行首:y0 是復(fù)制光標(biāo)所在處到行首的所有字符。

      粘貼

      如果之前用 dd 或者 yy 剪切復(fù)制過來的,可以使用 p 來粘貼。同樣也可以使用 數(shù)字+p來表示復(fù)制多次。

      替換一個字符

      在交互模式下,將光標(biāo)置于想要替換的字符上。按下 r 鍵,接著輸入你要替換的字符即可。

      撤銷操作

      如果要撤銷最近的修改,只需要按下 u 鍵,如果想要撤銷最近四次修改,可以按下4,再按下 u 。

      重做

      取消撤銷,也就是重做之前的修改使用 ctrl + r 。

      跳轉(zhuǎn)到指定行

      Vim 編輯的文件中,每一行都有一個行號,行號從1開始,逐一遞增。

      行號默認(rèn)是不顯示,如果需要它顯示的話,可以進入命令模式,然后輸入 set nu ,如果要隱藏行號的話,使用 set nonu 。

      • 跳轉(zhuǎn)到指定行:數(shù)字+gg ,例如 7gg ,表示跳轉(zhuǎn)到第7行。
      • 要跳轉(zhuǎn)到最后一行,按下 G 。
      • 要跳轉(zhuǎn)到第一行,按下 gg 。

      高級操作

      查找

      處于交互模式下,按下 / 鍵,那么就進入查找模式,輸入你要查找的字符串,然后按下回車。光標(biāo)就會跳轉(zhuǎn)到文件中下一個查找到的匹配處。如果字符串不存在,那么會顯示 "pattern not found" 。

      • n 跳轉(zhuǎn)到下一個匹配項;
      • N 跳轉(zhuǎn)到上一個匹配項。

      [注意] 用斜杠來進行的查找是從當(dāng)前光標(biāo)處開始向文件尾搜索,如果你要從當(dāng)前光標(biāo)處開始,向文件頭搜索則使用 ? ,當(dāng)然也可以先按下 gg 跳轉(zhuǎn)到第一行在進行全文搜索。

      查找并替換

      替換光標(biāo)所在行第一個匹配的字符串:

      # 語法:s/舊字符串/新字符串# 實例:s/one/two

      替換光標(biāo)所在行所有舊字符串為新字符串:

      # 語法:s/舊字符串/新字符串/g

      替換第幾行到第幾行中所有字符串:

      # 語法:n,m s/舊字符串/新字符串/g

      # 實例:2,4 s/one/two/g

      最常用的就是全文替換了:

      # 語法:%s/舊字符串/新字符串/g

      合并文件

      可以用冒號 +r ( :r ) 實現(xiàn)在光標(biāo)處插入一個文件的內(nèi)容。

      :r filename # 可以用Tab鍵來自動補全另外一個文件的路徑
      

      關(guān)于軟件測試,要掌握的知識和技能有很多。 秋千學(xué)姐分類梳理了 500個 軟件測試知識體系中的重點問題答案,對于工作中的技能提升求職面試都有很大幫助,

      很實操很干貨,如果你需要,我發(fā)給你

      包含功能測試、接口測試、自動化測試、數(shù)據(jù)庫、Linux、計算機網(wǎng)絡(luò)、抓包、算法、Python等內(nèi)容

      另外送軟件測試各類電子書籍

      面試或者工作中碰到的軟件測試問題,歡迎在知乎、公眾號、小紅書提問, 秋千學(xué)姐 幫你解答

      軟件測試|推薦閱讀:

      秋千說軟件測試:想拿30k軟件測試offer,看大廠365道軟件測試常問面試真題匯總

      秋千說軟件測試:2022最火的軟件測試面試_計算機網(wǎng)絡(luò)真題答案-通過率百分之百

      秋千說軟件測試:2022軟件測試20k的offer,自動化測試面試題答案分享一波

      秋千說軟件測試:2022軟件測試拿了20k的offer,Python面試題答案分享一波

      秋千說軟件測試:2022軟件測試20k的offer,線程進程協(xié)程面試題答案分享一波

      秋千說軟件測試:2022軟件測試拿了20k的offer,計算機網(wǎng)絡(luò)面試題答案分享一波

      秋千說軟件測試:2022軟件測試20k的offer,計算機網(wǎng)絡(luò)面試題答案分享一波

      職場經(jīng)驗|推薦閱讀:

      秋千說軟件測試:從年薪200萬領(lǐng)導(dǎo)身上學(xué)到的職場干貨,彎道超車

      秋千說軟件測試:裁員最先裁哪類員工?看紅樓夢檢抄大觀園就知道了

      面試跳槽|推薦閱讀:

      秋千說軟件測試:你的離職原因應(yīng)該這么說,跳槽必看

      秋千說軟件測試:有些人害怕被裁員,有些人等著提裁員大禮包

      秋千說軟件測試:面試成功被夸邏輯思維強,來分享面試技巧了

      秋千說軟件測試:面試時千萬別說這些大實話!

      秋千說軟件測試:就業(yè)不景氣,對抗焦慮和迷茫,只需要做對這1點

      秋千說軟件測試:為什么你的面試總是掛?面試官最討厭的這些雷區(qū)別踩

      四、linux和嵌入式linux內(nèi)核上有何不同?

      linux指操作系統(tǒng),擁有許多完整的功能,所以整個操作系統(tǒng)需要占據(jù)一定的存儲空間,而嵌入式linux內(nèi)核一般是對linux進行裁剪后重新編譯產(chǎn)生的一個精簡版的linux操作系統(tǒng),去除了一些不需要的功能,使系統(tǒng)需要的存儲空間更小,方便移植到芯片的存儲空間中去

      五、嵌入式linux怎么建任務(wù)?

      在嵌入式Linux中,建立任務(wù)可以通過使用系統(tǒng)命令或者編程語言來實現(xiàn)。可以編寫shell腳本或者C語言程序來創(chuàng)建需要的任務(wù),并利用Linux的任務(wù)調(diào)度器(如cron或者at命令)來指定任務(wù)的執(zhí)行時間和頻率。

      另外,也可以利用系統(tǒng)提供的任務(wù)管理工具(如systemd或者init.d)來創(chuàng)建并管理任務(wù)。通過這些方法,可以有效地在嵌入式Linux系統(tǒng)中建立任務(wù),并確保任務(wù)按時按要求執(zhí)行。

      六、嵌入式linux與freertos區(qū)別?

      嵌入式Linux和FreeRTOS是兩種常見的嵌入式操作系統(tǒng),它們在設(shè)計和用途上有一些區(qū)別:

      1. 復(fù)雜性和功能:嵌入式Linux是基于Linux內(nèi)核的操作系統(tǒng),提供了完整的操作系統(tǒng)功能和廣泛的軟件支持。它具有強大的多任務(wù)處理能力、文件系統(tǒng)支持、網(wǎng)絡(luò)功能和豐富的應(yīng)用程序接口(API)。嵌入式Linux適用于較復(fù)雜的應(yīng)用,需要運行大型應(yīng)用程序和服務(wù)的場景。

         FreeRTOS是一個輕量級的實時操作系統(tǒng)(RTOS),專注于提供最小化的內(nèi)核和豐富的實時調(diào)度功能。它具有低延遲和高可靠性的特點,適用于對實時性要求較高的應(yīng)用,如工控系統(tǒng)、傳感器網(wǎng)絡(luò)和嵌入式設(shè)備。

      2. 內(nèi)存和處理器要求:嵌入式Linux通常需要較大的內(nèi)存和處理器資源,因為它要運行完整的操作系統(tǒng)和應(yīng)用程序。這使得它在資源受限的嵌入式系統(tǒng)上運行可能會面臨挑戰(zhàn)。

         FreeRTOS則專注于最小化的內(nèi)核和低資源占用。它被設(shè)計為高效運行在資源受限的嵌入式系統(tǒng)上,要求較少的內(nèi)存和處理器資源。

      3. 靈活性和定制性:嵌入式Linux由于其完整的操作系統(tǒng)功能和廣泛的軟件支持,具有較高的靈活性和定制性。開發(fā)人員可以選擇和定制各種軟件組件來滿足特定需求,并利用強大的開發(fā)和調(diào)試工具。

         FreeRTOS在設(shè)計上更加精簡,專注于實時性和可靠性,因此其定制性相對較低。不過,F(xiàn)reeRTOS提供了一些可選的功能模塊,可以根據(jù)需求進行配置。

      綜上所述,選擇嵌入式Linux還是FreeRTOS取決于項目的需求和約束。如果需要較高的功能性和靈活性,并且有足夠的資源可用,嵌入式Linux可能是更好的選擇。而如果對實時性要求較高,并且資源受限,F(xiàn)reeRTOS可能是更適合的選擇。

      七、嵌入式Linux開發(fā)中的Linux Shell是什么?

      雖然我做linux嵌入式測試,不是開發(fā)。但我可以告訴你,絕對必要。Linux下很多事情用shell腳本來處理非常方便:

      1)啟動腳本,負(fù)責(zé)啟動系統(tǒng)進程、守護進程等。

      2)腳本可以做一些文件處理、命令行工具調(diào)用,在C程序中用system系統(tǒng)調(diào)用方式執(zhí)行腳本。

      八、嵌入式Linux很難學(xué)嗎?

      嵌入式的學(xué)習(xí)并不像想象的那么難,主要是因為有硬件開發(fā)板,一般人敬而遠(yuǎn)之,其實對于理工科的本科畢業(yè)生(如自動化、電子、信息等專業(yè)),懂一定的C語言知識,是否懂硬件其實關(guān)系不大,這樣的條件就可以來創(chuàng)客學(xué)院學(xué)習(xí)嵌入式了,現(xiàn)在,嵌入式的人才很多,都是半路出家,由其他的行業(yè)轉(zhuǎn)行過來,由于沒有系統(tǒng)掌握嵌入式的相關(guān)知識,對于這部分人,企業(yè)其實是不滿意的,只是現(xiàn)在沒有大量的人才供他們挑選。

      九、怎么理解嵌入式Linux和PC Linux的區(qū)別?

      嵌入式linux可以理解為精簡版的linux。,也可以簡單理解為不同發(fā)行版linux之間的區(qū)別。

      另外,現(xiàn)在的嵌入式設(shè)備性能越來越強,跟PC的差別也越來越小了。

      PC上的linux也可以移植到嵌入式設(shè)備上。

      十、如何自學(xué)嵌入式Linux?

      嵌入式Linux是一種嵌入式系統(tǒng)開發(fā)中常用的操作系統(tǒng),學(xué)習(xí)并掌握嵌入式Linux技術(shù)對于從事嵌入式系統(tǒng)開發(fā)的人來說非常重要。本文將介紹如何自學(xué)嵌入式Linux,幫助初學(xué)者更好地入門和提高。

      1. 基礎(chǔ)知識儲備

      在學(xué)習(xí)嵌入式Linux之前,建議先掌握一些基礎(chǔ)知識:

      • Linux操作系統(tǒng)基礎(chǔ):了解Linux操作系統(tǒng)的基本原理、命令行操作、文件系統(tǒng)等。
      • C語言編程:掌握C語言編程基礎(chǔ),了解指針、結(jié)構(gòu)體、內(nèi)存管理等相關(guān)知識。
      • 計算機組成原理:了解計算機硬件原理,包括處理器、存儲器、輸入輸出等。

      2. 學(xué)習(xí)資源

      自學(xué)嵌入式Linux可以通過以下途徑獲取學(xué)習(xí)資料和資源:

      • 官方文檔:可以從嵌入式Linux的官方網(wǎng)站下載相關(guān)文檔,如內(nèi)核文檔、驅(qū)動開發(fā)指南等。
      • 書籍:有很多經(jīng)典的嵌入式Linux書籍可供參考,如《嵌入式Linux應(yīng)用開發(fā)詳解》、《Linux設(shè)備驅(qū)動程序》等。
      • 在線教程:有一些在線教程提供嵌入式Linux的學(xué)習(xí)資源,如Linux學(xué)院、網(wǎng)易云課堂等。
      • 開源項目:可以參與一些開源項目,通過實際項目的開發(fā)來提高嵌入式Linux的能力。

      3. 實踐項目

      學(xué)習(xí)嵌入式Linux最好的方式是通過實踐項目來掌握相關(guān)技術(shù):

      • 搭建環(huán)境:根據(jù)學(xué)習(xí)需求,選擇適合的開發(fā)板和軟件工具,搭建嵌入式Linux開發(fā)環(huán)境。
      • 編譯內(nèi)核:學(xué)習(xí)如何編譯和配置Linux內(nèi)核,掌握內(nèi)核模塊加載和設(shè)備驅(qū)動開發(fā)。
      • 應(yīng)用開發(fā):開發(fā)一些簡單的應(yīng)用程序,如LED燈控制、按鈕輸入處理等,從而熟悉Linux應(yīng)用開發(fā)。
      • 驅(qū)動開發(fā):學(xué)習(xí)如何開發(fā)硬件設(shè)備驅(qū)動程序,了解設(shè)備樹、Platform設(shè)備、字符設(shè)備等相關(guān)知識。

      4. 社區(qū)交流

      在學(xué)習(xí)嵌入式Linux的過程中,可以通過參與開發(fā)者社區(qū)進行交流:

      • 論壇:加入一些嵌入式Linux開發(fā)者論壇,與其他開發(fā)者交流經(jīng)驗和解決問題。
      • 郵件列表:訂閱一些嵌入式Linux相關(guān)的郵件列表,獲取最新資訊和技術(shù)討論。
      • 開發(fā)者大會:參加一些與嵌入式Linux相關(guān)的開發(fā)者大會,擴展自己的人脈和技術(shù)視野。

      通過以上步驟的學(xué)習(xí)和實踐,相信你能夠逐漸掌握嵌入式Linux的技術(shù)。自學(xué)嵌入式Linux需要耐心和堅持,但是一旦掌握了這門技術(shù),將為你的嵌入式系統(tǒng)開發(fā)之路鋪平道路。

      感謝您閱讀本文,并希望能夠幫助您更好地自學(xué)嵌入式Linux!

      相關(guān)資訊
      熱門頻道

      Copyright © 2024 招聘街 滇ICP備2024020316號-38

      国内精品久久久久_亚洲区手机在线中文无码播放_国内精品久久久久影院一蜜桃_日韩内射激情视频在线播放免费

        赫章县| 施秉县| 承德市| 广宁县| 健康| 宜州市| 察哈| 道真| 那坡县| 沙田区| 浮山县| 新津县| 林甸县| 怀化市| 通河县| 井冈山市| 鸡东县| 太和县| 邵阳县| 饶平县| 柳林县| 道真| 布拖县| 富源县| 皋兰县| 玉林市| 曲靖市| 邵阳县| 花莲市| 和田县| 日土县| 绥宁县| 冷水江市| 正安县| 博野县| 文昌市| 安西县| 赤水市| 明光市| 齐河县| 彭山县|