嵌入式軟體開發培訓筆記 shell基本命令

2021-07-01 20:20:58 字數 3225 閱讀 3417

(1)關於shell,linux中的shell可這樣認為——是linux核心的乙個外層保護工具,並負責完成使用者與核心之間的互動;

明確幾個概念:命令、shell和shell指令碼

shell是乙個命令列直譯器,將使用者命令解析為作業系統所能理解的指令,從而實現使用者與核心之間的互動,同時shell為作業系統提供了核心之上的功能,直接用來管理和執行系統。當需要重複執行若干命令,可以將這些命令集合起來,加入一定的控制語句,編輯成shell指令碼檔案,交給shell批量執行。

(2)shell分類:bourne shell、c shell、korn shell、bourne again shell

(3)shell命令格式:$為提示符command [-options] argu1 argu2

理解為:命令 選項 引數1 引數2  ;三要素之間有空格分開;

分號(;)用於一行多個命令分隔;

反斜槓(\)表明一條命令需要多行才能寫完時,除最後行每行行尾需要用該符號連線。

(4)特色功能:

a)tab鍵用於補齊命令與檔名;命令補齊按兩下,檔名補齊按一下。

b)history命令可查詢歷史使用過的命令;預設最多查詢500條命令,任意500數量以下用history (500以下整數值);可用echo $history檢視預設值,執行這條命令後緊接執行history=『數量』 以修改預設值。

c)alias命令可進行使用者自定義命令名,用法:

alias 自定義命令名=』ls -l』按下回車後,就可用自定義命令名代替ls -l

取消自定義方法unalias 自定義命令名

(5)特殊字元

a)*代表任意長度的字串;

b)?任意乙個字元;

c)[…]方括號中指寫的字元;

d)[ - ]方括號中指定的字元範圍,如[a-z];

e)[^…]除了其中指定字元以外的任意字元;

f)管道| 把一系列命令連線起來,將第乙個命令的輸出作為第二個命令的輸入,再將第二個命令的輸出作為第三個命令的輸入,以此類推;例:ls /usr/bin | wc –w ——ls /usr/bin顯示bin目錄下檔案,wc –w根據ls命令輸出統計檔案的單詞數;

g)重定向輸出》 file;

h)重定向輸入;

i)重定向輸出,追加模式》file;

j)將命令產生的錯誤資訊輸出2>或&>;

gcc test1.c 2> errorlog或gcc test1.c &> errorlog將test1.c編譯產生的錯誤資訊寫入errorlog檔案內,寫成2>>或&>>可追加資訊。

k)反撇號` ` 如cmd1 `cmd2`,將cmd2命令輸出引用為cmd1命令的引數

(6)基本命令

ls列出檔名

cat 顯示文檔案

less/more分屏顯示檔案

less使用左右箭頭鍵上下翻頁,more使用回車鍵只能向下翻頁

rm刪除檔案

複製檔案cp

移動檔案mv(重新命名檔案)

建立目錄mkdir

刪除目錄rmdir(只能刪除空的目錄,非空目錄使用rm –rf命令)

轉換目錄cd

查詢字串grep

顯示檔案開頭head

顯示檔案結尾tail

按次序顯示檔案sort(檔案內容排序,不改變原始檔)

去掉檔案中相鄰重複的行uniq

比較兩個檔案diff

檢視檔案型別file

顯示檔案資訊echo

顯示時間和日期date(還可設定時間日期date –s 時間或日期)

壓縮檔案gzip(-r資料夾下所有檔案 –d解壓 字尾為.gz)

解壓縮檔案gunzip

壓縮檔案bzip2(–d解壓 字尾為.bz2)

歸檔和展開檔案tar

1)壓縮tar –zcf tc.tar.gz ./*.c——當前目錄下所有.c檔案壓縮到tc.tar.gz包;

2)解壓縮tar –zxf tc.tar.gz——解壓tc.tar.gz檔案

(例中zcf/zxf可替換成jcf/jxf,但建議gz改為bz方便其他使用者識別)

查詢命令whereis

查詢實用程式which

檢視磁碟空間的使用情況df:df dev(選項 –a所有檔案系統 –h單位為m位元組)

列出目錄和檔案所使用的磁碟塊數du:(每塊佔512位元組) du –k 列出磁碟使用情況(kb)、du –a列出空閒的檔案數、du –s列出總空閒空間

修改檔案或目錄的許可權chmod     chmod 777 file

修改檔案或目錄的屬主chown

修改檔案或目錄所屬的組chgrp

顯示當前工作目錄的絕對路徑pwd

清屏clear(清除當前終端上顯示的資訊)

建立檔案的鏈結檔案ln(一般使用-s選項建立軟鏈結)

ls   –s   targetfile   link_name 可理解windows快捷方式

列出系統上的使用者清單who

獲取聯機幫助info

獲取聯機幫助man

將記憶體中的資料寫回硬碟sync

修改密碼passwd:passwd username

改變使用者身份su:su username

關機/重啟shutdown:shutdown –r重啟shutdown –h 關機(可定時)

臨時掛載分割槽mount:mount /dev/sda1 /mnt/udisk

解除安裝檔案系統umount:umount /dev/sda1或umountall

(7)使用者管理命令 ::root使用者下

a)新增使用者命令:adduser newusername;

adduser配置檔案/etc/adduser.conf;

skel模板,/usr/sbin/useradd目錄下.bash_profile、.bashrc、

.bash_logout、dircolors、.inputrc、.vimrc常用檔案

b)usermod命令修改使用者屬性

c)deluser命令刪除使用者

e)delgroup命令刪除使用者組

(8)程序管理命令

改變程式執行的優先順序nice   nice –n 1 ls (範圍-20至19)

改變優先順序以通知系統給某個程序更多或更少的cpu時間renice

renice 10 pid

顯示程序狀態ps(-ef、-axl)

監視程序top  

程序以樹狀圖顯示pstree

終止程序

kill  (

kill [-signal] pid)

嵌入式軟體開發培訓筆記 shell程式設計

1 shell程式設計也稱為shell指令碼,是一種編譯性語言,其本質是shell命令的有序集合。2 shell程式設計的基本過程分三步 a 新建乙個shell檔案 touch file1.sh 檔案字尾建議寫為.sh型別 b 改變file1.sh檔案的許可權 chmod 777 file1.sh ...

嵌入式軟體開發流程

1 嵌入式軟體開發流程在整個流程中,使用者首先需要建立工程並對工程做初步的配置,包括配置處理器和配置除錯裝置。編輯工程檔案,包括自己編寫的彙編和c語言源程式,還有工程編 譯時需要編寫的鏈結指令碼檔案,除錯過程中需要編寫儲存區映像檔案和命令指令碼檔案,以及上電復位時的程式執行入口的啟動程式檔案。對後四...

嵌入式軟體開發之我見

自己從事嵌入式系統開發有好多年了,在此想與大家分享我對於嵌入式開發的一點心得與體會。先大致說一說我的工作經歷。97年畢業後做了兩年的電氣與電子設計與開發,這一時期,我做過電路原理圖的設計和pcb板的設計。從99年開始,我進入了軟體行業。第一次做嵌入式開發是在2000年,在隨後的六年多的時間裡,我差不...