linux应用程序开发数据,《嵌入式linux应用程序开发详解》核心笔记
【linux快速入門】
自由軟件(free software)中的 free 并不是指免費,而是指自由。它賦予使用者四種自由。
· 自由之一:有使用軟件的自由。
· 自由之二:有研究該軟件如何運作的自由,并且得以改寫該軟件來符合使用者自身的需求。取得該軟件的源碼是達成此目的前提。
· 自由之三:有重新散布該軟件的自由,所以每個人都可以藉由散布自由軟件來敦親睦另。
· 自由之四:有改善再利用該軟件的自由,并且可以發表改寫版供公眾使用,如此一來,整個社群都可以受惠。如前項,取得該軟件的源碼是達成此目的前提。
GPL:GPL 協議是 GNU 組織、維護的一種版權協議,遵守這個協議的軟件可以自由地獲取、查看、使用其源代碼。GPL 協議是整個開源世界的精神基礎。
Linux 的內核版本號:
Linux 內核版本號格式是 x.y.zz-www,數字 x 代表版本類型,數字 y 為偶數時是穩定版本,為奇數時是開發版本,如 2.0.40 為穩定版本,2.3.42 為開發版本,測試版本為 3 個數字加上測試號,如 2.4.12-rc1。最新的 Linux 內核版本可從 http://www.kernel.org 上獲得。
國內的一些 Linux 論壇:
http://www.linuxfans.org
http://www.linuxforum.net
http://www.linuxeden.com
http://www.newsmth.net
在 Windows 下,目錄結構屬于分區;Linux 下,分區屬于目錄結構。
在 Windows 下,路徑用 ?反斜杠分割;Linux 下,路徑用 / 斜杠分割。(實際是linux最早,你懂的)
通常在 Windows 下的盤符和 Linux 設備文件的對應關系如下:
C 盤—/dev/hda1(主分區)
D 盤—/dev/hda5(邏輯分區)
E 盤—/dev/hda6(邏輯分區)
如果想修復已經安裝好的系統,請在提示符 boot:后輸入“Linux rescue”命令。
ext3 是現在 Linux(包括 Red Hat,Mandrake 下)常見的默認的文件系統,它是 ext2 的升級版本。/bin????????????bin?就是二進制(binary)英文縮寫。在這里存放前面?Linux?常用操作命令的執行文件,如?mv、ls、mkdir?等。有時,這個目錄的內容和/usr/bin?里面的內容一樣,它們都是放置一般用戶使用的執行文件
/boot???這個目錄下存放操作系統啟動時所要用到的程序。如啟動?grub?就會用到其下的/boot/grub子目錄
/dev????????????該目錄中包含了所有?Linux?系統中使用的外部設備。要注意的是,這里并不是存放的外部設備的驅動程序,它實際上是一個訪問這些外部設備的端口。由于在?Linux?中,所有的設備都當作文件一樣進行操作,比如:/dev/cdrom?代表光驅,用戶可以非常方便地像訪問文件、目錄一樣對其進行訪問
/etc????????????該目錄下存放了系統管理時要用到的各種配置文件和子目錄。如網絡配置文件、文件系統、x?系統配置文件、設備配置信息設置用戶信息等都在這個目錄下。系統在啟動過程中需要讀取其參數進行相應的配置
/etc/rc.d???????該目錄主要存放?Linux?啟動和關閉時要用到的腳本文件,在后面的啟動詳解中還會進一步地講解
/etc/rc.d/init??該目錄存放所有?Linux?服務默認的啟動腳本(在新版本的?Linux?中還用到的是/etc/xinetd.d目錄下的內容)
/home???????????該目錄是?Linux?系統中默認的用戶工作根目錄。執行?adduser命令后系統會在/home?目錄下為對應賬號建立一個名為同名的主目錄
/lib????????????該目錄是用來存放系統動態鏈接共享庫的。幾乎所有的應用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行什么操作
/lost+found?????該目錄在大多數情況下都是空的。只有當系統產生異常時,會將一些遺失的片段放在此目錄下
/media??????????該目錄下是光驅和軟驅的掛載點,Fedora?Core?4?已經可以自動掛載光驅和軟驅
/misc???????????該目錄下存放從?DOS?下進行安裝的實用工具,一般為空
/mnt????????????該目錄是軟驅、光驅、硬盤的掛載點,也可以臨時將別的文件系統掛載到此目錄下
/proc???????????該目錄是用于放置系統核心與執行程序所需的一些信息。而這些信息是在內存中由系統產生的,故不占用硬盤空間
/root???????????該目錄是超級用戶登錄時的主目錄
/sbin???????????該目錄是用來存放系統管理員的常用的系統管理程序
/tmp????????????該目錄用來存放不同程序執行時產生的臨時文件。一般?Linux?安裝軟件的默認安裝路徑就是這里
/usr????????????這是一個非常重要的目錄,用戶的很多應用程序和文件都存放在這個目錄下,類似與Windows?下的?Program?Files?的目錄
/usr/bin????????系統用戶使用的應用程序
/usr/sbin???????超級用戶使用的比較高級的管理程序和系統守護程序
/usr/src????????內核源代碼默認的放置目錄
/srv????????????該目錄存放一些服務啟動之后需要提取的數據
/sys????????????這是?Linux?2.6?內核的一個很大的變化。該目錄下安裝了?2.6?內核中新出現的一個文件系統?sysfs,sysfs?文件系統集成了下面?3?種文件系統的信息:針對進程信息的?proc?文件系統、針對設備的?devfs?文件系統以及針對偽終端的?devpts?文件系統。該文件系統是內核設備樹的一個直觀反映。當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建
/var????????????這也是一個非常重要的目錄,很多服務的日志信息都存放在這里
【linux基礎命令】
root用戶切換:
$:' sudo passwd
// 輸入當前登陸密碼,再根據提示輸入設置的UNIX密碼2遍,即為root用戶切換密碼
$:' su
// 輸入UNIX密碼,切換為root用戶,提示符變為 #
設置環境變量方法如下:
1. 通過 etho顯示字符串(指定環境變量)。
2. 通過 export設置新的環境變量。
3. 通過 env顯示所有環境變量。
4. 通過 set命令顯示所有本地定義的 Shell 變量。
5. 通過 unset命令來清除環境變量。
Linux常見用戶管理命令:useradd?????????添加用戶賬號????????????????????????useradd?[選項]?用戶名
usermod?????????設置用戶賬號屬性????????????????????usermod?[選項]?屬性值
userdel?????????刪除對應用戶賬號????????????????????userdel?[選項]?用戶名
groupadd????????添加組賬號??????????????????????????groupadd?[選項]?組賬號
groupmod????????設置組賬號屬性??????????????????????groupmod?[選項]?屬性值
groupdel????????刪除對應組賬號??????????????????????groupdel?[選項]?組賬號
passwd??????????設置賬號密碼????????????????????????passwd?[對應賬號]
id??????????????顯示用戶ID、組ID和用戶所屬組列表????id?[用戶名]
groups??????????顯示用戶所屬的組????????????????????groups?[組賬號]
who?????????????顯示登錄到系統的所有用戶????????????who
whoami??????????顯示當前用戶名??????????????????????whoami
Linux常見系統管理命令:ps??????????????顯示當前系統中由該用戶運行的進程列表????????ps?[選項]
top?????????????動態顯示系統中運行的程序(一般為每隔?5s)???top
kill????????????輸出特定的信號給指定?PID(進程號)的進程????kill?[選項]?進程號(PID)
uname???????????顯示系統的信息(可加選項-a)????????????????uname?[選項]
setup???????????系統圖形化界面配置??????????????????????????setup
crontab?????????循環執行例行性命令??????????????????????????crontab?[選項]
shutdown????????關閉或重啟?Linux?系統???????????????????????shutdown?[選項]?[時間]
uptime??????????顯示系統已經運行了多長時間??????????????????uptime
clear???????????清除屏幕上的信息(ctrl?+?l)??????????????????clear
Linux常見磁盤管理命令:free????????????查看當前系統內存的使用情況??????????????????free?[選項]
df??????????????查看文件系統的磁盤空間占用情況??????????????df?[選項]
du??????????????統計目錄(或文件)所占磁盤空間的大小????????du?[選項]
fdisk???????????查看硬盤分區情況及對硬盤進行分區管理????????fdisk?[-l]
mount???????????磁盤掛載命令????????????????????????????????mount?-t?[選項]?[文件系統類型]?設備文件名?掛載點目錄
mount掛載舉例:
$:' mount -tvfat/dev/hda1 /mnt/c
$:' umount /mnt/c
· 在 Linux 下如何使用 U 盤呢?
一般 U 盤為 SCSI 格式的硬盤,其格式為 vfat 格式,其設備號可通過“fdisk –l”進行查看,假若設備名為“/dev/sda1”,則可用如下命令就可將其掛載:
$:' mount -t vfat /dev/sda1/mnt/u
· 若想設置在開機時自動掛載,可在文件“/etc/fstab”中加入該命令到一個新行即可。
正則表達式的主要參數有:
· :忽略正則表達式中特殊字符的原有含義;
· ^:匹配正則表達式的開始行;
· $:匹配正則表達式的結束行;
·
· >:到匹配正則表達式的行結束;
· [ ]:單個字符,如[A]即 A 符合要求;
· [-]:范圍,如[A-Z],即 A、B、C 一直到 Z 都符合要求;
· 。:所有的單個字符;
· *:所有字符,長度可以為 0。
ln 的鏈接又軟鏈接和硬鏈接兩種:
軟鏈接就是上面所說的 ln -s ** **,它只會在用戶選定的位置上生成一個文件的鏡像,不會重復占用磁盤空間,平時使用較多的都是軟鏈接;
硬鏈接是不帶參數的 ln** **,它會在用戶選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。
Linux常見壓縮打包相關命令:bzip2???????????.bz2?文件的壓縮(或解壓)程序???????????bzip2[選項]?壓縮(解壓縮)的文件名
bunzip2?????????.bz2?文件的解壓縮程序???????????????????bunzip2[選項]?.bz2?壓縮文件
bzip2recover????用來修復損壞的.bz2?文件?????????????????bzip2recover?.bz2?壓縮文件
gzip????????????.gz?文件的壓縮程序??????????????????????gzip?[選項]?壓縮(解壓縮)的文件名
gunzip??????????解壓被?gzip?壓縮過的文件????????????????gunzip?[選項]?.gz?文件名
unzip???????????解壓?winzip?壓縮的.zip?文件?????????????unzip?[選項]?.zip?壓縮文件
compress????????早期的壓縮或解壓程序(壓縮后文件名為.Z)??compress?[選項]?文件
tar?????????????對文件目錄進行打包或解包????????????????tar?[選項]?[打包后文件名]文件目錄列表
Linux比較和合并文件命令:diff????????????比較兩個不同的文件或不同目錄下的兩個同名文件功能,并生成補丁文件????????diff[選項]?文件1?文件2
$:'?diff?hello1.c?hello2.c?>?hello.patch
patch???????????把生成的補丁文件應用到現有代碼上????????????patch?[選項]?[待?patch?的文件[patch?文件]]
$:'?patch?./hello1.c?
Linux常見網絡相關命令:netstat?????????顯示網絡連接、路由表和網絡接口信息??????netstat?[-an]
nslookup????????查詢一臺機器的?IP?地址和其對應的域名????nslookup?[IP?地址/域名]
finger??????????查詢用戶的信息??????????????????????????finger?[選項]?[使用者]?[用戶@主機]
ping????????????用于查看網絡上的主機是否在工作??????????ping?[選項]?主機名/IP?地址
ifconfig????????查看和配置網絡接口的參數????????????????ifconfig?[選項]?[網絡接口]
ftp?????????????利用?ftp?協議上傳和下載文件?????????????ftp?[選項]?[主機名/IP]
telnet??????????利用?telnet?協議瀏覽信息????????????????telent?[選項]?[IP?地址/域名]
ssh?????????????利用?ssh?登錄對方主機???????????????????ssh?[選項]?[IP?地址]
總結
以上是生活随笔為你收集整理的linux应用程序开发数据,《嵌入式linux应用程序开发详解》核心笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中断函数中有锁,Linux下f
- 下一篇: linux中分区乱了,找到了linux分