(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年,在隨後的六年多的時間裡,我差不...