1. 程式人生 > >Hi3516A開發--常用指令和根檔案目錄詳解

Hi3516A開發--常用指令和根檔案目錄詳解

一、常用命令
#arch                                              #顯示機器的處理器架構
# uname -a                                    # 檢視核心/作業系統/CPU資訊
# head -n 1 /etc/issue                   # 檢視作業系統版本
# hostname                                   # 檢視計算機名
# lspci -tv                                      # 列出所有PCI裝置
# lsusb -tv                                     # 列出所有USB裝置
# lsmod                                         # 列出載入的核心模組
# env                                             # 檢視環境變數資源
# free -m                                       # 檢視記憶體使用量和交換區使用量
# df -h                                           # 檢視各分割槽使用情況
# du -sh <目錄名>                        # 檢視指定目錄的大小
# grep MemTotal /proc/meminfo  # 檢視記憶體總量
# grep MemFree /proc/meminfo   # 檢視空閒記憶體量
# uptime                                       # 檢視系統執行時間、使用者數、負載
# vmstat                                       # 檢視詳細系統執行資訊
# cat /proc/loadavg                     # 檢視系統負載磁碟和分割槽
# mount | column -t                    # 檢視掛接的分割槽狀態
# fdisk -l                                      # 檢視所有分割槽
# swapon -s                                # 檢視所有交換分割槽
# dmesg | grep IDE                     # 檢視啟動時IDE裝置檢測狀況網路
# ifconfig                                    # 檢視所有網路介面的屬性
# iptables -L                               # 檢視防火牆設定
# route -n                                  # 檢視路由表
# netstat -lntp                           # 檢視所有監聽埠
# netstat -antp                          # 檢視所有已經建立的連線
# netstat -s                                # 檢視網路統計資訊程序
# ps -ef                                     # 檢視所有程序
# top                                        # 實時顯示程序狀態使用者
# w                                           # 檢視活動使用者
# id <使用者名稱>                          # 檢視指定使用者資訊
# last                                       # 檢視使用者登入日誌
# cut -d: -f1 /etc/passwd       # 檢視系統所有使用者
# cut -d: -f1 /etc/group         # 檢視系統所有組
# crontab -l                            # 檢視當前使用者的計劃任務服務
# chkconfig –list                     # 列出所有系統服務
# chkconfig –list | grep on    # 列出所有啟動的系統服務程式
# rpm -qa                              # 檢視所有安裝的軟體包
# stat           顯示指定檔案的詳細資訊,比ls更詳細

# who          #顯示線上登陸使用者
# whoami   #顯示當前操作使用者
# ping        #測試網路連通
# clear       #清屏
# alias       #對命令重新命名 如:alias showmeit=”ps -aux” ,另外解除使用unaliax 
# kill          #殺死程序,可以先用ps 或 top命令檢視程序的id,然後再用kill命令殺死程序。

二、linux檔案系統目錄
檔案結構

/:根目錄,所有的目錄、檔案、裝置都在/之下,/就是Linux檔案系統的組織者,也是最上級的領導者。

/bin:bin 就是二進位制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄。
/boot:Linux的核心及引導系統程式所需要的檔案目錄,比如 vmlinuz initrd.img 檔案都位於這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位於這個目錄。
/cdrom:這個目錄在剛剛安裝系統的時候是空的。可以將光碟機檔案系統掛在這個目錄下。例如:mount /dev/cdrom /cdrom
/dev:dev 是裝置(device)的英文縮寫。這個目錄對所有的使用者都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部裝置。但是這裡並不是放的外部裝置的驅動程式。這一點和常用的windows,dos作業系統不一樣。它實際上是一個訪問這些外部裝置的埠。可以非常方便地去訪問這些外部裝置,和訪問一個檔案,一個目錄沒有任何區別。
/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置檔案和子目錄。要用到的網路配置檔案,檔案系統,x系統配置檔案,裝置配置資訊,設定使用者資訊等都在這個目錄下。(關於etc拓展資訊)
/home:如果建立一個使用者,使用者名稱是"xx",那麼在/home目錄下就有一個對應的/home/xx路徑,用來存放使用者的主目錄。
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連線共享庫的。幾乎所有的應用程式都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行什麼操作,一旦發生問題,系統就不能工作了。
/lost+found:在ext2或ext3檔案系統中,當系統意外崩潰或機器意外關機,而產生一些檔案碎片放在這裡。當系統啟動的過程中fsck工具會檢查這裡,並修復已經損壞的檔案系統。有時系統發生問題,有很多的檔案被移到這個目錄中,可能會用手工的方式來修復,或移到檔案到原來的位置上。
/mnt:這個目錄一般是用於存放掛載儲存裝置的掛載目錄的,比如有cdrom等目錄。可以參看/etc/fstab的定義。
/media:有些linux的發行版使用這個目錄來掛載那些usb介面的行動硬碟(包括U盤)、CD/DVD驅動器等等。
/opt:這裡主要存放那些可選的程式。
/proc:可以在這個目錄下獲取系統資訊。這些資訊是在記憶體中,由系統自己產生的。
/root:Linux超級許可權使用者root的家目錄。
/sbin:這個目錄是用來存放系統管理員的系統管理程式。大多是涉及系統管理的命令的存放,是超級許可權使用者root的可執行命令存放地,普通使用者無許可權執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root許可權才能執行的。
/selinux :對SElinux的一些配置檔案目錄,SElinux可以讓linux更加安全。/srv 服務啟動後,所需訪問的資料目錄,舉個例子來說,www服務啟動讀取的網頁資料就可以放在/srv/www中
/tmp:臨時檔案目錄,用來存放不同程式執行時產生的臨時檔案。有時使用者執行程式的時候,會產生臨時件。/tmp就用來存放臨時檔案的。/var/tmp目錄和這個目錄相似。
/usr:這是linux系統中佔用硬碟空間最大的目錄。使用者的很多應用程式和檔案都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具
/usr/local:這裡主要存放那些手動安裝的軟體,即不是通過“新立得”或apt-get安裝的軟體。它和/usr目錄具有相類似的目錄結構。讓軟體包管理器來管理/usr目錄,而把自定義的指令碼(scripts)放到/usr/local目錄下面、。
/usr/share :系統共用的東西存放地,比如 /usr/share/fonts 是字型目錄,/usr/share/doc和/usr/share/man幫助檔案。
/var:這個目錄的內容是經常變動的,看名字就知道,可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日誌的目錄。/var/ www目錄是定義Apache伺服器站點存放目錄;/var/lib 用來存放一些庫檔案,比如MySQL的,以及MySQL資料庫的的存放地。


1、/proc目錄

/proc/buddyinfo   每個記憶體區中的每個order有多少塊可用,和記憶體碎片問題有關

/proc/cmdline       啟動時傳遞給kernel的引數資訊
/proc/cpuinfo       cpu的資訊
/proc/crypto         核心使用的所有已安裝的加密密碼及細節
/proc/devices        已經載入的裝置並分類
/proc/dma             已註冊使用的ISA DMA頻道列表
/proc/execdomains   Linux核心當前支援的execution domains
/proc/fb                 幀緩衝裝置列表,包括數量和控制它的驅動
/proc/filesystems  核心當前支援的檔案系統型別
/proc/interrupts   x86架構中的每個IRQ中斷數
/proc/iomem        每個物理裝置當前在系統記憶體中的對映
/proc/ioports       一個裝置的輸入輸出所使用的註冊埠範圍
/proc/kcore          代表系統的實體記憶體,儲存為核心檔案格式,裡邊顯示的是位元組數,等於RAM大小加上4kb
/proc/kmsg          記錄核心生成的資訊,可以通過/sbin/klogd或/bin/dmesg來處理
/proc/loadavg      根據過去一段時間內CPU和IO的狀態得出的負載狀態,與uptime命令有關
/proc/locks           核心鎖住的檔案列表
/proc/mdstat       多硬碟,RAID配置資訊(md=multiple disks)
/proc/meminfo    RAM使用的相關資訊
/proc/misc            其他的主要裝置(裝置號為10)上註冊的驅動
/proc/modules     所有載入到核心的模組列表
/proc/mounts      系統中使用的所有掛載
/proc/mtrr           系統使用的Memory Type Range Registers (MTRRs)
/proc/partitions   分割槽中的塊分配資訊
/proc/pci              系統中的PCI裝置列表
/proc/slabinfo     系統中所有活動的 slab 快取資訊
/proc/stat            所有的CPU活動資訊
/proc/sysrq-trigger 使用echo命令來寫這個檔案的時候,遠端root使用者可以執行大多數的系統請求關鍵命令,就好像在本地終端執行一樣。要寫入這個檔案,需要把/proc/sys/kernel/sysrq不能設定為0。這個檔案對root也是不可讀的
/proc/uptime      系統已經運行了多久
/proc/swaps        交換空間的使用情況
/proc/version      Linux核心版本和gcc版本
/proc/bus            系統匯流排(Bus)資訊,例如pci/usb等
/proc/driver         驅動資訊
/proc/fs                檔案系統資訊
/proc/ide              ide裝置資訊
/proc/irq              中斷請求裝置資訊
/proc/net             網絡卡裝置資訊
/proc/scsi            scsi裝置資訊
/proc/tty              tty裝置資訊
/proc/net/dev     顯示網路介面卡及統計資訊
/proc/vmstat       虛擬記憶體統計資訊
/proc/vmcore     核心panic時的記憶體映像
/proc/diskstats  取得磁碟資訊
/proc/schedstat kernel排程器的統計資訊
/proc/zoneinfo  顯示記憶體空間的統計資訊,對分析虛擬記憶體行為很有用
/proc/sys/kernel/printk  printk印表機別

以下是/proc目錄中程序N的資訊
/proc/N                pid為N的程序資訊
/proc/N/cmdline 程序啟動命令
/proc/N/cwd        連結到程序當前工作目錄
/proc/N/environ  程序環境變數列表
/proc/N/exe         連結到程序的執行命令檔案
/proc/N/fd           包含程序相關的所有的檔案描述符
/proc/N/maps     與程序相關的記憶體對映資訊
/proc/N/mem      指代程序持有的記憶體,不可讀
/proc/N/root       連結到程序的根目錄
/proc/N/stat        程序的狀態
/proc/N/statm     程序使用的記憶體的狀態
/proc/N/status    程序狀態資訊,比stat/statm更具可讀性
/proc/self             連結到當前正在執行的程序

2、/sys目錄

/sys/devices

該目錄下是全域性裝置結構體系,包含所有被發現的註冊在各種總線上的各種物理裝置。一般來說,所有的物理裝置都按其在總線上的拓撲結構來顯示,但有兩個例外,即platform devices和system devices。platform devices一般是掛在晶片內部的高速或者低速總線上的各種控制器和外設,它們能被CPU直接定址;system devices不是外設,而是晶片內部的核心結構,比如CPU,timer等,它們一般沒有相關的驅動,但是會有一些體系結構相關的程式碼來配置它們。(sys/devices是核心對系統中所有裝置的分層次表達模型,也是/sys檔案系統管理裝置的最重要的目錄結構)
/sys/dev
該目錄下維護一個按照字元裝置和塊裝置的主次號碼(major:minor)連結到真是裝置(/sys/devices)的符號連結檔案。
/sys/class
該目錄下包含所有註冊在kernel裡面的裝置型別,這是按照裝置功能分類的裝置模型,每個裝置型別表達具有一種功能的裝置。每個裝置型別子目錄下都是這種哦哦那個裝置型別的各種具體裝置的符號連結,這些連結指向/sys/devices/name下的具體裝置。裝置型別和裝置並沒有一一對應的關係,一個物理裝置可能具備多種裝置型別;一個裝置型別只表達具有一種功能的裝置,比如:系統所有輸入裝置都會出現在/sys/class/input之下,而不論它們是以何種匯流排連線到系統的。(/sys/class也是構成linux統一裝置模型的一部分)
/sys/block
該目錄下的所有子目錄代表著系統中當前被發現的所有塊裝置。按照功能來說防止在/sys/class下會更合適,但由於歷史遺留因素而一直存在於/sys/block,但從linux2.6.22核心開始這部分就已經標記為過去時,只有打開了CONFIG_SYSFS_DEPRECATED配置編譯才會有這個目錄存在,並且其中的內容在從linux2.6.26版本開始已經正式移到了/sys/class/block,舊的介面/sys/block為了向後相容而保留存在,但其中的內容已經變為了指向它們在/sys/devices/中真實裝置的符號連結檔案。
/sys/bus
該目錄下的每個子目錄都是kernel支援並且已經註冊了的匯流排型別。這是核心裝置按照匯流排型別分層放置的目錄結構,/sys/devices中的所有裝置都是連線於某種匯流排之下的,bus子目錄下的每種具體匯流排之下可以找到每個具體裝置的符號連結,一般來說每個子目錄(匯流排型別)下包含兩個子目錄,一個是devices,另一個是drivers;其中devices下是這個匯流排型別下的所有裝置,這些裝置都是符號連結,它們分別指向真正的裝置(/sys/devices/name/下);而drivers下是所有註冊在這個總線上的驅動,每個driver子目錄下 是一些可以觀察和修改的driver引數。(它也是構成linux統一裝置模型的一部分)
/sys/fs
按照設計,該目錄使用來描述系統中所有的檔案系統,包括檔案系統本身和按照檔案系統分類存放的已掛載點。
/sys/kernel
這個目錄下存放的是核心中所有可調整的引數
/sys/firmware
該目錄下包含對韌體物件(firmware object)和屬性進行操作和觀察的介面,即這裡是系統載入韌體機制的對使用者空間的介面.(關於韌體有專用於韌體載入的一套API)
/sys/hypervisor
該目錄是與虛擬化Xen相關的裝置。(Xen是一個開放原始碼的虛擬機器監視器)
/sys/module
該目錄下有系統中所有的模組資訊,不論這些模組是以內聯(inlined)方式編譯到核心映像檔案中還是編譯為外模組(.ko檔案),都可能出現在/sys/module中。即module目錄下包含了所有的被載入kernel的模組。
/sys/power
該目錄是系統中的電源選項,對正在使用的power子系統的描述。這個目錄下有幾個屬性檔案可以用於控制整個機器的電源狀態,如可以向其中寫入控制命令讓機器關機/重啟等等。

3、/etc目錄

/etc/rc   or/etc/rc.d   or/etc/rc*.d  

啟動、或改變執行級時執行的scripts或scripts的目錄. 
/etc/passwd  
使用者資料庫,其中的域給出了使用者名稱、真實姓名、家目錄、加密的口令和使用者的其他資訊. 
/etc/fdprm  
軟盤引數表.說明不同的軟盤格式.用setfdprm 設定.
/etc/fstab  
啟動時mount -a命令(在/etc/rc 或等效的啟動檔案中)自動mount的檔案系統列表.Linux下,也包括用swapon -a啟用的swap區的資訊.
/etc/group  
類似/etc/passwd ,但說明的不是使用者而是組. 
/etc/inittab  
init 的配置檔案. 
/etc/issue  
getty在登入提示符前的輸出資訊.通常包括系統的一段短說明或歡迎資訊.內容由系統管理員確定. 
/etc/magic  
file 的配置檔案.包含不同檔案格式的說明,file 基於它猜測檔案型別.
/etc/motd  
Message Of TheDay,成功登入後自動輸出.內容由系統管理員確定.經常用於通告資訊,如計劃關機時間的警告. 
/etc/mtab  
當前安裝的檔案系統列表.由scripts初始化,並由mount 命令自動更新.需要一個當前安裝的檔案系統的列表時使用,例如df命令. 
/etc/shadow  
在安裝了影子口令軟體的系統上的影子口令檔案.影子口令檔案將/etc/passwd 檔案中的加密口令移動到/etc/shadow中,而後者只對root可讀.這使破譯口令更困難. 
/etc/login.defs  
login 命令的配置檔案. 
/etc/printcap  
類似/etc/termcap ,但針對印表機.語法不同. 
/etc/profile , /etc/csh.login ,/etc/csh.cshrc  
登入或啟動時Bourne或Cshells執行的檔案.這允許系統管理員為所有使用者建立全域性預設環境. 
/etc/securetty  
確認安全終端,即哪個終端允許root登入.一般只列出虛擬控制檯,這樣就不可能(至少很困難)通過modem或網路闖入系統並得到超級使用者特權. 
/etc/shells  
列出可信任的shell.chsh 命令允許使用者在本檔案指定範圍內改變登入shell.提供一臺機器FTP服務的服務程序ftpd檢查使用者shell是否列在 /etc/shells 檔案中,如果不是將不允許該使用者登入. 
/etc/termcap 
終端效能資料庫.說明不同的終端用什麼"轉義序列"控制.寫程式時不直接輸出轉義序列(這樣只能工作於特定品牌的終端),而是從/etc/termcap中查詢要做的工作的正確序列.這樣,多數的程式可以在多數終端上執行
/etc/resolv.conf
DNS客戶機配置檔案,設定DNS伺服器的IP地址及DNS域名
/etc/hosts
提供主機名到IP地址的對應關係,建議將自己經常使用的主機

4、/dev目錄

裝置檔案分為兩種:

塊裝置檔案(b)
字元裝置檔案(c)
裝置檔案一般存放在/dev目錄下
/dev/hd[a-t]:IDE裝置
/dev/sd[a-z]:SCSI裝置
/dev/fd[0-7]:標準軟碟機
/dev/md[0-31]:軟raid裝置
/dev/loop[0-7]:本地迴環裝置
/dev/ram[0-15]:記憶體
/dev/null:無限資料接收裝置 ,相當於回收站
/dev/zero:無限零資源
/dev/tty[0-63]:虛擬終端
/dev/ttyS[0-3]:串列埠
/dev/lp[0-3]:並口
/dev/console:控制檯
/dev/fb[0-31]:framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]

/dev/pilot => /dev/ttyS[0-9]

三、重點目錄詳解