在linux下控制硬件和在無操作系統(tǒng)下控制硬件的不同主要在于硬件的地址不一樣,在linux下要使用va(虛擬地址),而在無操作系統(tǒng)下可以直接使用硬件的pa(物理地址)。
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,創(chuàng)新互聯(lián)建站面向各種領(lǐng)域:成都茶藝設(shè)計等成都網(wǎng)站設(shè)計、成都營銷網(wǎng)站建設(shè)解決方案、網(wǎng)站設(shè)計等建站排名服務(wù)。
在linux-2.6.8.1/include/asm-arm/arch-s3c2410/map.h中定義了大部分硬件的物理地址和他們的虛擬地址。
現(xiàn)以gpio
F為例說明,gpio
的pa
基址(ba)為0x56000000,GPFCON
pa為0x56000050
即:可見偏移量為0x50,而我們在看看GPFCON
va
,vaba
:0xf0e0
0000,va:0xf0e0
0050,偏移量為0x50。我們只要知道了vaba,和他的偏移量,我們就能計算出va,從而,就可以對其進行操作了。
如何獲取vaba:在linux-2.6.8.1/include/asm-arm/arch-s3c2410/map.h中有定義。
計算機中,分級分層的思想隨處可見,這也是計算機上的一個基本的思想和思路。
在LINUX操作系統(tǒng)中分了三級,三級偏移,一級地址的ba為0xf0000000,偏移到第二級,0xf0e0
0000
(以GPIO為例),再次偏移到第三級,0xf0e0
0050
(以GPFCON為例)?,F(xiàn)在,就可以在linux
下通過0xf0e0
0050來對GPFCON
寄存器來進行操作了。
源碼中的實現(xiàn)過程如下:
#define
S3C2410_ADDR(x)
(0xF0000000+(x))//map.h
//linux下所有硬件一級地址vaba:0xF0000000
#define
S3C2410_VA_GPIO
S3C2410(0X00E00000)//map.h
//GPIO的偏移量0x00E00000,加上這個偏移量后,到了GPIO器件
#define
S3C2410_GPIOREG(x)
((x)+S3C2410_VA_GPIO)
#define
S3C2410_GPFCON
S3C2410_GPIOREG(0x50)//regs-gpio.h
//GPFCON寄存器的偏移量0x50,加上這個偏移量后,到了具體的寄存器,可以對硬件進行操作了
#define
S3C2410_GPFDAT
S3C2410_GPIOREG(0x54)//regs-gpio.h
#define
S3C2410_GPFUP
S3C2410_GPIOREG(0x58)//regs-gpio.h
高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的:
:qx 開始記錄宏,并將結(jié)果存入寄存器x
q 退出記錄模式
@x 播放記錄在x寄存器中的宏命令
稍微解釋一下,當在normal模式下輸入:qx后,你對文本的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模
式,然后輸入@x對剛才記錄下來的命令進行重復,此命令后可跟數(shù)字,表示要重復多少次,比如@x20,可以重復20次。這個在文本的批處理中是非常有用的。
同時編輯多個文件
在vim眾多的插件中,有一個叫minibuffer的插件,就是下面所說的標簽頁功能了,可以支持同時編輯多個文件。
標簽命令
:tabe fn 在一個新的標簽頁中編輯文件fn
gt 切換到下一個標簽頁
gT 切換到上一個標簽頁
:tabr 切換到第一個標簽頁
:tabl 切換到最后一個標簽頁
:tabm [N] 把當前tab移動到第N個tab之后
對,正如你所想象的那樣,跟eclipse, ue等的標簽頁是一個意思!
窗口命令
ctrl+w s 水平分割窗口
ctrl+w w 切換窗口
ctrl+w q 退出當前窗口(由于同時有多個文件,此命令不會影響其他窗口)
ctrl+w v 垂直分割窗口
其他
vim在保存之前不會對文件做實際的修改,只是加載到緩沖區(qū)中,對文件的編輯其實是對緩沖區(qū)的編輯,直到:w時才會存入物理文件。
:e file 把file加載到新的緩沖區(qū)中
:bn 跳轉(zhuǎn)到下一個緩沖區(qū)
:bd 刪除緩沖區(qū)(關(guān)閉文件)
:sp fn 分割窗口,并將fn加載到新的窗口中
退出編輯器
:w 將緩沖區(qū)寫入文件,即保存修改
:wq 保存修改并退出
:x 保存修改并退出
:q 退出,如果對緩沖區(qū)進行過修改,則會提示
:q! 強制退出,放棄修改
查找替換
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
n 下一個匹配(如果是/搜索,則是向下的下一個,?搜索則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜索整個文件,將所有的old替換為new
:%s/old/new/gc 搜索整個文件,將所有的old替換為new,每次都要你確認是否替換
復制粘貼
dd 刪除光標所在行
dw 刪除一個字(word)
x 刪除當前字符
X 刪除前一個字符
D 刪除到行末
yy 復制一行,此命令前可跟數(shù)字,標識復制多行,如6yy,表示從當前行開始復制6行
yw 復制一個字
y$ 復制到行末
p 粘貼粘貼板的內(nèi)容到當前行的下面
P 粘貼粘貼板的內(nèi)容到當前行的上面
]p 有縮進的粘貼,vim會自動調(diào)節(jié)代碼的縮進
"a 將內(nèi)容放入/存入a寄存器,可以支持多粘貼板
附:比如常用的一個寄存器就是系統(tǒng)寄存器,名稱為+,所以從系統(tǒng)粘貼板粘貼到vim中的命令為"+p,注意此處的+不表示操作符,二十一個寄存器。
移動光標
在vim中移動光標跟其他的編輯器中有很大的區(qū)別,不過一旦學會了,就會飛速的在文本中移動了。
h,j,k,l 上,下,左,右
ctrl-f 上翻一頁
ctrl-b 下翻一頁
% 跳到與當前括號匹配的括號處,如當前在{,則跳轉(zhuǎn)到與之匹配的}處
w 跳到下一個字首,按標點或單詞分割
W 跳到下一個字首,長跳,如end-of-line被認為是一個字
e 跳到下一個字尾
E 跳到下一個字尾,長跳
b 跳到上一個字
B 跳到上一個字,長跳
0 跳至行首,不管有無縮進,就是跳到第0個字符
^ 跳至行首的第一個字符
$ 跳至行尾
gg 跳至文件的第一行
gd 跳至當前光標所在的變量的聲明處
[N]G 跳到第N行,如0G,就等價于gg,100G就是第100行
fx 在當前行中找x字符,找到了就跳轉(zhuǎn)至
; 重復上一個f命令,而不用重復的輸入fx
tx 與fx類似,但是只是跳轉(zhuǎn)到x的前一個字符處
Fx 跟fx的方向相反
),( 跳轉(zhuǎn)到上/下一個語句
* 查找光標所在處的單詞,向下查找
# 查找光標所在處的單詞,向上查找
`. 跳轉(zhuǎn)至上次編輯位置
在屏幕上移動
H 移動光標到當前屏幕上最上邊的一行
M 移動光標到當前屏幕上中間的一行
L 移動光標到當前屏幕上最下邊的一行
書簽
ma 把當前位置存成標簽a
`a 跳轉(zhuǎn)到標簽a處
編輯
r 替換一個字符
J 將下一行和當前行連接為一行
cc 刪除當前行并進入編輯模式
cw 刪除當前字,并進入編輯模式
c$ 擦除從當前位置至行末的內(nèi)容,并進入編輯模式
s 刪除當前字符并進入編輯模式
S 刪除光標所在行并進入編輯模式
xp 交換當前字符和下一個字符
u 撤銷
ctrl+r 重做
. 重復上一個編輯命令
~ 切換大小寫,當前字符
g~iw 切換當前字的大小寫
gUiw 將當前字變成大寫
guiw 將當前字變成小寫
將當前行右移一個單位
將當前行左移一個單位(一個tab符)
== 自動縮進當前行
插入模式
i 從當前光標處進入插入模式
I 進入插入模式,并置光標于行首
a 追加模式,置光標于當前光標之后
A 追加模式,置光標于行末
o 在當前行之下新加一行,并進入插入模式
O 在當前行之上新加一行,并進入插入模式
Esc 退出插入模式
可視模式
標記文本
v 進入可視模式,單字符模式
V 進入可視模式,行模式
ctrl+v 進入可視模式,列模式,類似于UE的列模式
o 跳轉(zhuǎn)光標到選中塊的另一個端點
U 將選中塊中的內(nèi)容轉(zhuǎn)成大寫
O 跳轉(zhuǎn)光標到塊的另一個端點
aw 選中一個字
ab 選中括號中的所有內(nèi)容,包括括號本身
aB 選中{}括號中的所有內(nèi)容
ib 選中括號中的內(nèi)容,不含括號
iB 選中{}中的內(nèi)容,不含{}
對標記進行動作
塊右移
塊左移
y 復制塊
d 刪除塊
~ 切換塊中內(nèi)容的大小寫
學習Linux系統(tǒng),命令是最基礎(chǔ)的一部分,有著很重要的地位,所以入門必須掌握好常用命令。下面由我為大家整理了Linux系統(tǒng)常用的基本命令入門篇,希望對大家有幫助!
Linux系統(tǒng)常用的基本命令入門篇一、基礎(chǔ)命令
1.Linu x的進 入與退出系統(tǒng)
進入Linux系統(tǒng):
必須要輸入用戶的賬號,在系統(tǒng)安裝過程中可以創(chuàng)建以下兩種帳號:
1.root--超級用戶帳號(系統(tǒng)管理員),使用這個帳號可以在系統(tǒng)中做任何事情。
2.普通用戶--這個帳號供普通用戶使用,可以進行有限的操作。
一般的Linux使用者均為普通用戶,而系統(tǒng)管理員一般使用超級用戶帳號完成一些系統(tǒng)管理的工作。如果只需要完成一些由普通帳號就能完成的任務(wù),建議不要使用超級用戶帳號,以免無意中破壞系統(tǒng)。影響系統(tǒng)的正常運行。
用戶登錄分兩步:第一步,輸入用戶的登錄名,系統(tǒng)根據(jù)該登錄名識別用戶;第二步,輸入用戶的口令,該口令是用戶自己設(shè)置的一個字符串,對其他用戶是保密的,是在登錄時系統(tǒng)用來辨別真假用戶的關(guān)鍵字。
當用戶正確地輸入用戶名和口令后,就能合法地進入系統(tǒng)。屏幕顯示:
[root@loclhost/root] #
這時就可以對系統(tǒng)做各種操作了。注意超級用戶的提示符是ldquo;#rdquo;,其他用戶的提示符是ldquo;$rdquo;。
2.修改口令
為了更好的保護用戶帳號的安全,Linux允許用戶隨時修改自己的口令,修改口令的命令是passwd,它將提示用戶輸入舊口令和新口令,之后還要求用戶再次確認新口令,以避免用戶無意中按錯鍵。如果用戶忘記了口令,可以向系統(tǒng)管理員申請為自己重新設(shè)置一個。
3.虛擬控制臺
Linux是一個真正的多用戶 操作系統(tǒng) ,它可以同時接受多個用戶登錄。Linux還允許一個用戶進行多次登錄,這是因為Linux和UNIX一樣,提供了虛擬控制臺的訪問方式,允許用戶在同一時間從控制臺進行多次登錄。虛擬控制臺的選擇可以通過按下Alt鍵和一個功能鍵來實現(xiàn),通常使用F1-F6例如,用戶登錄后,按一下Alt-F2鍵,用戶又可以看到"login:"提示符,說明用戶看到了第二個虛擬控制臺。然后只需按Alt-F1鍵,就可以回到第一個虛擬控制臺。 一個新安裝的Linux系統(tǒng)默認允許用戶使用Alt-F1到Alt-F6鍵來訪問前六個虛擬控制臺。虛擬控制臺可使用戶同時在多個控制臺上工作,真正體現(xiàn)Linux系統(tǒng)多用戶的特性。用戶可以在某一虛擬控制臺上進行的工作尚未結(jié)束時,切換到另一虛擬控制臺開始另一項工作。
退出系統(tǒng)
不論是超級用戶,還是普通用戶,需要退出系統(tǒng)時,在shell提示符下,鍵入exit命令即可。
4.查看命令幫助信息
man命令
man命令用于查詢命令和程序的使用 方法 和參數(shù)。
例如:
man ls
將顯示ls命令的基本格式和使用方法
Linux系統(tǒng)常用的基本命令入門篇二、關(guān)機重啟命令
首先,是關(guān)機/重啟命令,僅在虛擬機時使用,實際工作中用不到
reboot 一般不跟參數(shù)使用,輸入指令即可重啟
shutdown 一般需要跟參數(shù),例:
shutdown -r 延時多少分鐘重啟,一般使用now
shutdown -r now 立即重啟
shutdown -f 強制重啟
跟windows一樣,linux也存在注銷功能
exit
1)halt
halt 可不接參數(shù)
halt -f 強制關(guān)機
2)poweroff
poweroff 可不接參數(shù)使用
poweroff -f 強制關(guān)機
3)init 0
4)shutdown 不可單獨使用
shutdown -h 分鐘數(shù) 延時多久關(guān)機
shutdown -h now 立即關(guān)機
Linux系統(tǒng)常用的基本命令入門篇三、vi編輯
vi命令是UNIX操作系統(tǒng)和類UNIX操作系統(tǒng)中最通用的全屏幕純文本編輯器。
Linux中的vi編輯器叫vim,它是vi的增強版(vi Improved),與vi編輯器完全兼容,而且實現(xiàn)了很多增強功能。
vi編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。
默認情況下,打開vi編輯器后自動進入命令模式。從編輯模式切換到命令模式使用ldquo;escrdquo;鍵,從命令模式切換到編輯模式使用ldquo;Ardquo;、ldquo;ardquo;、ldquo;Ordquo;、ldquo;ordquo;、ldquo;Irdquo;、ldquo;irdquo;鍵。
vi編輯器提供了豐富的內(nèi)置命令,有些內(nèi)置命令使用鍵盤組合鍵即可完成,有些內(nèi)置命令則需要以冒號ldquo;:rdquo;開頭輸入。常用內(nèi)置命令如下:
1 Ctrl+u:向文件首翻半屏;
2 Ctrl+d:向文件尾翻半屏;
3 Ctrl+f:向文件尾翻一屏;
4 Ctrl+b:向文件首翻一屏;
5 Esc:從編輯模式切換到命令模式;
6 ZZ:命令模式下保存當前文件所做的修改后退出vi;
7 :行號:光標跳轉(zhuǎn)到指定行的行首;
8 :$:光標跳轉(zhuǎn)到最后一行的行首;
9 x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的;
10 D:刪除從當前光標到光標所在行尾的全部字符;
11 dd:刪除光標行正行內(nèi)容;
12 ndd:刪除當前行及其后n-1行;
13 nyy:將當前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個字母,n為一個數(shù)字;
14 p:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當前光標所在位置的下方;
15 P:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當前光標所在位置的上方;
16 /字符串:文本查找操作,用于從當前光標所在位置開始向文件尾部查找指定字符串的內(nèi)容,查找的字符串會被加亮顯示;
17 ?name:文本查找操作,用于從當前光標所在位置開始向文件頭部查找指定字符串的內(nèi)容,查找的字符串會被加亮顯示;
18 a,bs/F/T:替換文本操作,用于在第a行到第b行之間,將F字符串換成T字符串。其中,ldquo;s/rdquo;表示進行替換操作;
19 a:在當前字符后添加文本;
20 A:在行末添加文本;
21 i:在當前字符前插入文本;
22 I:在行首插入文本;
23 o:在當前行后面插入一空行;
24 O:在當前行前面插入一空行;
25 :wq:在命令模式下,執(zhí)行存盤退出操作;
26 :w:在命令模式下,執(zhí)行存盤操作;
27 :w!:在命令模式下,執(zhí)行強制存盤操作;
28 :q:在命令模式下,執(zhí)行退出vi操作;
29 :q!:在命令模式下,執(zhí)行強制退出vi操作;
30 :e文件名:在命令模式下,打開并編輯指定名稱的文件;
31 :n:在命令模式下,如果同時打開多個文件,則繼續(xù)編輯下一個文件;
32 :f:在命令模式下,用于顯示當前的文件名、光標所在行的行號以及顯示比例;
33 :set nu:在命令模式下,用于在最左端顯示行號;
34 :set nonu:在命令模式下,用于在最左端不顯示行號;
35 :1,3y 復制第一行到第三行
36 :1,3d 刪除第一行到第三行
37 :1,3s/str/str_new/g 替換第一行到第三行中的字符串
38 :1,3s/str/str_new 替換第一行到第三行中的字符串第一個字符
39 :1,3 g/str /d 刪除第一行到第三行中含有這個字符串的行
Linux常用命令一、查詢相關(guān)
find
按規(guī)則查找某個文件或文件夾,包括子目錄
find . -name '_sh' -- 以.sh結(jié)尾的文件
find . -name '_hannel_ -- 包含channel字符的文件
find . -name 'build_ -- 以build開頭的文件
find . -name 'abc??' -- abc后面有兩個字符的文件
grep
查找內(nèi)容包含指定的范本樣式的文件,Global Regular Expression Print
grep -n pattern files -- 規(guī)則 -n表示顯示行號
grep -n 'PostsActivity' AndroidManifest.xmlgrep -n '\d' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方
grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并顯示行號
ps -e | grep java -- 所有java進程
ps -e | grep -i qq --所有qq進程,不區(qū)分大小寫
find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml結(jié)尾的文件中查找包含lsquo;aaptrsquo;關(guān)鍵字的地方
ls | grep 'channel' -- 包含channel關(guān)鍵字的文件
which
在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結(jié)果
which zipwhich grep
Linux常用命令二、查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
從指定點開始將文件寫到標準輸出。使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail -f filename會把filename里最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新,使你看到最新的文件內(nèi)容。
tail -f test.log,循環(huán)查看文件內(nèi)容,Ctrl+c來終止
tail -n 5 test.log,顯示文件最后5行內(nèi)容
tail -n +5 test.log,從第5行開始顯示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]
more命令和cat的功能一樣都是查看文件里的內(nèi)容,但有所不同的是more可以按頁來查看文件的內(nèi)容,還支持直接跳轉(zhuǎn)行等功能。
more +3 test.log,顯示文件中從第3行起的內(nèi)容
more -5 test.log,設(shè)定每屏顯示行數(shù)
ls -l | more -5,每頁顯示5個文件信息
more +/day3 test.log,查找第一個出現(xiàn)"day3"字符串的行,并從該處前兩行開始顯示輸出
less
less [options] [file...]
與more命令一樣,less命令也用來分屏顯示文件的內(nèi)容。但是二者存在差別:less命令允許用戶向前或向后瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應(yīng)按Q鍵。
less test.log,查看文件
ps -ef | less,查看進程信息并通過less分頁顯示
history | less,查看命令歷史使用記錄并通過less分頁顯示
less test1.log test2.log,瀏覽多個文件,n和p切換文件
watch
watch [options] command
每隔一段時間重復運行一個命令,默認間隔時間是2秒。要運行的命令直接傳給shell(注意引用和轉(zhuǎn)義特殊字符)。結(jié)果會展示為全屏模式,這樣你可以很方便的觀察改變
watch -n 60 date,執(zhí)行date命令每分鐘一次,輸入^C 退出
watch -d ls -l,查看目錄變化
watch -d rsquo;ls -l | fgrep joersquo;,想找joe用戶的文件
watch -d 'ls -l|grep scf',監(jiān)測當前目錄中 scf' 的文件的變化
watch -n 10 'cat /proc/loadavg',10秒一次輸出系統(tǒng)的平均負載
watch -n 1 -d netstat -ant,每隔一秒高亮顯示網(wǎng)絡(luò)鏈接數(shù)的變化
watch -n 1 -d 'pstree | grep http',每隔一秒高亮顯示http鏈接數(shù)的變化
Linux常用命令三、文件相關(guān)
vi
vi file
按i鍵,進入編輯模式
按esc鍵,進入命令模式
:w 保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w! 強制保存,不推出vi
:wq 保存文件并退出vi
:wq! 強制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,強制退出vi
:e! 放棄所有修改,從上次保存文件開始再編輯
chmod
change mode,變更文件或目錄的讀、寫、運行權(quán)限
chmod [-cfvR] [--help] [--version] mode file...
mode:權(quán)限設(shè)定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬于同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是
+ 表示增加權(quán)限、- 表示取消權(quán)限、= 表示唯一設(shè)定權(quán)限。
r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當該檔案是個子目錄或者該檔案已經(jīng)被設(shè)定過為可執(zhí)行。
chmod也可以用數(shù)字來表示權(quán)限,語法為:chmod abc file,如chmod 777 file
其中a,b,c各為一個數(shù)字,分別表示User、Group、及Other的權(quán)限。 r=4,w=2,x=1
chmod 777 file,等同于 chmod a=rwx file
chmod ug=rwx,o=x file,等同于 chmod 771 file
chmod 4755 filename,可使此程序具有root的權(quán)限
ls -l 可以查看列出當前用戶的文件權(quán)限
zip
zip -r filename.zip filesdir
zip -r test.zip ./_把當前所有文件壓縮到test.zip
zip -r test.zip test,把test文件所有文件及目錄,要是到test.zip
zip -d test.zip test.txt,刪除壓縮文件中test.txt文件
zip -m test.zip ./test.txt,向壓縮文件中test.zip中添加test.txt文件
zip -r test.zip file1 file2 file3 filesdir,處理多個文件和目錄,空格隔開
unzip
unzip zip-file,解壓到當前目錄
unzip -d dst-dir zip-file,解壓到指定的目錄,-d后為指定目錄
unzip -n zip-file,不覆蓋已經(jīng)存在的文件,-n為不要覆蓋原有的文件
unzip -n -d dst-dir zip-file,解壓到指定的目錄,不覆蓋已經(jīng)原有的文件
unzip -o -d dst-dir zip-file,-o不必先詢問用戶覆蓋原有文件
unzip -l zip-file,僅查看壓縮文件內(nèi)所包含的文件
tar
tar cvf test.tar test,把test下所有文件和目錄做備份tar czvf test.tar.gz test,把test下所有文件和目錄做備份并進行壓縮tar xzvf test.tar.gz,把這個備份文件還原并解壓縮tar tvf test.tar | more,查看備份文件的內(nèi)容,并以分屏方式顯示在 顯示器 上
tar czvf test.tar.gz test --exclude=test/svn,備份壓縮并排除目錄
touch
1、linux分區(qū)
--在linux里面所有的設(shè)備、任何東西,在linux看來都是文件。
--文件在它看來,有兩種形式:
第一種是字符型(鍵盤輸入、打印機);
第二種是二進制型(硬盤、光驅(qū)、U盤)
--linux中所有硬件
--手動分區(qū)
--A、至少有兩個分區(qū)
/ 根分區(qū)
SWAP 交換分區(qū)(物理內(nèi)存大小的兩倍)
--B、個人桌面分區(qū)
/
/boot 128MB is enough
/usr
SWAP
/tmp(用于光盤刻錄)
2、linux目錄說明
--/dev/xxyN
--xx (分區(qū)所在設(shè)備類型:hd--IDE硬盤 sd--SCSI硬盤)
--y (標明分區(qū)所在設(shè)備
例如:/dev/hda 第一個IDE硬盤 或 /dev/hdb 第二個IDE硬盤 或 /dev/sdb 第二個SCSI硬盤)
--N (數(shù)字代表分區(qū):1-4--主分區(qū)或擴展分區(qū);邏輯分區(qū)從5開始!
例如:/dev/hda3 第一個IDE硬盤上的第三個主分區(qū)或擴展分區(qū)
/dev/sdb6 第二個SCSI硬盤上的第二個邏輯分區(qū))
3、linux目錄結(jié)構(gòu)
/ 根目錄,最高級別
/bin 系統(tǒng)基本命令存放目錄(/usr/bin)
/boot linux的內(nèi)核及引導系統(tǒng)程序文件存放目錄(如:vmlinuz、initrd.img)
一般情況下,GRUB或LILO系統(tǒng)引導管理也位于這個目錄
/dev 設(shè)備文件存儲目錄,如聲卡、光驅(qū)...
/ect 存放系統(tǒng)設(shè)置文件(如用戶賬號密碼、服務(wù)器配置文件等)
/home 普通用戶家目錄,默認存放目錄
/lib 庫文件存放目錄
/lost+found 在ext2或ext3文件系統(tǒng)中,當系統(tǒng)以外崩潰或機器意外關(guān)機,而產(chǎn)生一些文件碎片放在這里。
當系統(tǒng)啟動的過程中,fsck工具會檢查這里,并修復已經(jīng)損壞的文件系統(tǒng)。
有事喜用發(fā)生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或者移文件到原來的位置上。
/media 即插即用型存儲設(shè)備的掛載點自動在這個目錄下創(chuàng)建。
如USB盤系統(tǒng)自動掛在后,會在這個目錄下產(chǎn)生一個目錄;
類似cdrom的目錄
/mnt 存放掛載存儲設(shè)備的掛載目錄,如cdrom等目錄
/opt 表示可選的意思,有些軟件包也會被安裝在此,也就是自定義軟件包,
比如OpenOffice,或者一些我們自己編譯的軟件包,也可安裝此處。
/proc 操作系統(tǒng)運行時,進程(正在運行的程序)信息及內(nèi)核信息(比如CPU、硬盤分區(qū)、內(nèi)存信息等)存放在此。
/proc目錄是偽裝的文件系統(tǒng)proc的掛載目錄,proc并不是真正的文件系統(tǒng)
/root linux超級權(quán)限用戶root的家目錄
/sbin 大多是涉及系統(tǒng)管理的命令的存放,只有超級權(quán)限用戶root才可執(zhí)行命令存放,普通用戶無權(quán)限執(zhí)行此目錄下的命令
與 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目錄相似
(sbin,只有root權(quán)限才能執(zhí)行)
/tmp 臨時文件目錄,有時用戶運行程序的時候,會產(chǎn)生臨時文件。
/var/tmp目錄和此目錄相似
/usr 系統(tǒng)存放程序的目錄,如命令、幫助文件等。這個目錄下有很多的文件和目錄。
大部分Linux發(fā)行版提供的軟件包都安裝在此,涉及服務(wù)器的配置文件就安裝在/ect中。
/usr/share/fonts 字體目錄
/usr/share/man 或 /usr/share/doc 幫助目錄
/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用戶可執(zhí)行文件目錄
/usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超級權(quán)限用戶root可執(zhí)行命令存放目錄
/usr/include 程序頭文件存放目錄
/var (vary)此目錄經(jīng)常變動
/var/log 用來存放系統(tǒng)日志
/var/www 用來定義Apache服務(wù)器站點存放
/var/lib 用來存放一些庫文件,如MySQL的,以及MySQL數(shù)據(jù)庫的存放地。
4、基本命令
--查看幫助 *** --help *** --?
--查看詳細幫助 man ***
--登錄 login
--退出窗口 exit
--關(guān)機 shutdown
--重啟 reboot
--初始化 init (run level -/etc/inittab),0-6看第六部分的g
--進入根目錄 cd /
--回上層目錄 cd ..
--相對路徑 cd dev
--絕對路徑 cd /dev
--查用戶名 whoami
--查當前目錄 pwd
--列出當前目錄內(nèi)容 ls
-l(樹詳細顯示目錄內(nèi)容)
-m(橫列顯示目錄內(nèi)容,是屏幕長度顯示)
-a(列出全部文件,包括隱藏文件)
-S(以文檔大小排序)
--創(chuàng)建目錄 mkdir dname
--刪除目錄 rmdir dname
rm -r *** -(遞歸刪除該目錄下所有內(nèi)容,詢問每個準備刪除的文件)
rm -rf ***-(強制刪除該目錄下所有內(nèi)容,不詢問)
--創(chuàng)建空白文件 touch ***
(ps:從技術(shù)的角度來講,linux的文件后綴名沒有任何意義)
--復制 cp
cp -r **1 **2 (復制1到2中)
--移動 mv
mv -t **1 **2 (把2移動到1中)
--編輯文本 vi [文件名]
--查看文本 cat 由第一行開始顯示文本內(nèi)容
tac 從最后一行顯示,可以看出 tac 是 cat 的倒著寫
more 一頁一頁的顯示文檔內(nèi)容
less 與 more 類似,可以往前翻頁
head 只看頭幾行
-N(數(shù)字,可根據(jù)行數(shù)顯示)
tail 只看后幾行
-N(數(shù)字,可根據(jù)行數(shù)顯示)
nl 顯示的時候,順序輸出行號
od 以二進制位的方式讀取檔案內(nèi)容
--查找文本 find [路徑][查找類型][搜索文件名]
如查找rc.local find /etc -name *.local
--查找命令信息及其位置 whereis 命令
如 whereis ls
--查看環(huán)境變量 echo $SHELL
如 echo $PATH (分大小寫:分隔符是:,windows是echo %path%;)
--鏈接 ln
如 ln joe.txt a (硬鏈接,如同復制一個新文件,joe.txt刪除后,a還存在)
a是鏈接的名稱,a和joe.txt同步,然后a的內(nèi)容和joe.txt一樣
joe.txt改變,a也跟著變
如 ln -s joe.txt b (軟鏈接,如同創(chuàng)建一個快捷方式,joe.txt刪除后,b不存在)
--wc 統(tǒng)計指定文本文件的行數(shù)、字數(shù)、字符數(shù)
--grep(很常用) 在指定的文本文件中查找指定的字符串
grep 字符串 文件名
--col 見管道..
--------------------
----信息顯示命令----
--------------------
--date 顯示和設(shè)置日期
--stat 顯示指定文件的相關(guān)信息
--who、w 顯示在線登錄用戶
--whoami 顯示用戶自己的身份
--id 顯示當前用戶的id信息
--hostname 顯示主機名稱
--uname 顯示操作系統(tǒng)信息
--dmesg 顯示系統(tǒng)啟動信息
--du 顯示指定的文件(目錄)已使用的磁盤空間
--df 顯示文件系統(tǒng)磁盤空間的使用情況
--free 顯示當前內(nèi)存和交換空間的使用情況
--fdisk -l 顯示磁盤信息
--locale 顯示當前語言環(huán)境
5、掛載點(mount 設(shè)備目錄 掛載目錄)
--訪問設(shè)備 (那設(shè)備當成一個文件,和另外一個文件夾進行綁定)
--例如掛載光驅(qū):步驟 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接訪問光驅(qū)內(nèi)容
--卸載掛載設(shè)備(umount /dev/cdrom)--注意必須先退出掛載目錄,否則出現(xiàn)"device is busy"錯誤.
6、startup-shutdown(linux啟動流程)
--A、boot sequence(important) linux啟動過程
a. load bios(hardware information)
b. read MBR's config to find out the OS
(MBR--Master Boot Record,硬盤第一個物理扇區(qū),柱面0、磁頭0、扇區(qū)1,包含主引導程序和硬盤分區(qū)表)
c. load the kernel of the OS
(加載為kernel核心的OS)
d. init process starts...
(啟動linux第一個進程init)
e. execute /etc/rc.d/sysinit
(執(zhí)行系統(tǒng)最重要的配置文件,后臺啟用進程)
(rc.d--run command)
f. start other modules(stc/modules.conf)
(開啟各種模塊,如內(nèi)存管理模塊、硬盤管理模塊)
g. execute the run level scripts
(系統(tǒng)啟動是分層次的,根據(jù)情況執(zhí)行,每個層次之間沒關(guān)系)
0 - 系統(tǒng)停機狀態(tài)
1 - 單用戶工作狀態(tài) root
2 - 多用戶狀態(tài)(沒有NFS)
3 - 多用戶狀態(tài)(有NFS)
NFS - Network File System 網(wǎng)絡(luò)文件系統(tǒng),聯(lián)網(wǎng)系統(tǒng)
4 - 系統(tǒng)未使用,留給用戶
5 - 圖形界面
6 - 系統(tǒng)正常關(guān)閉并重新啟動
如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多個文件夾,保存著各個層次執(zhí)行的進程文件
h. execute /etc/rc.d/rc.local (重要)
(保存其它進程腳本,如tomcat自動啟動,要修改此配置文件)
i. execute /bin/login
(登錄界面)
j. shell started...
7、vi 文本編輯器
--兩種模式:命令模式 編輯模式
--vi [文件名]
(切換到編輯模式)
a append-光標后添加
i insert-光標前插入
o open-另起一行編輯
esc (切換回命令模式)
:w 存盤
:wq 存盤退出
:q 退出
:q! 不存盤退出
dd 刪除其中一行
dw 刪除一個單詞
(sudo gedit 文本 常用linux下的文本編輯器,比vi好用)
8、用戶設(shè)置
--切換用戶(switch user) su username
小技巧:直接exit切換
--添加用戶 useradd username [-g] [組名](分配到某個用戶組)
(創(chuàng)建后會自動在/home目錄下創(chuàng)建該新用戶的文件夾,如/home/username)
--設(shè)置密碼 passwd username
--cd /etc
--查看用戶信息 more password
如新增的用戶信息:username:x:500:500::/home/username:/bin/bash
第一個數(shù)字,代表用戶組,當添加用戶沒有指定用戶組時,系統(tǒng)會創(chuàng)建一個和用戶ID一樣的組ID;
第二個數(shù)字:用戶ID號;
用戶的目錄是/home/username;
用戶的SHELL是/bin/bash
(命令---SHELL[解釋命令]---kenrel內(nèi)核)
SHELL有多種類型,如csh、bash(常用)、bsh、ksh、sh(最原始)
--添加用戶組 groupadd groupname
--查看用戶組信息 more group
--刪除用戶組 groupdel groupname
--修改用戶 usermod [-g] [組名] [用戶名]
--刪除用戶 userdel username
然后把/home的文件夾刪除了 rm -rf 文件夾
9、權(quán)限file privilege
--linux把文件的權(quán)限分成四種:r:read w:write x:execute -:none
如:-rw-r--r--
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
第一個數(shù)字'-'代表文件,其余是文件夾,后9位分為3組,每組有四種權(quán)限設(shè)置rwx-
第一位表示文件所有者
第二位表示和所有者在同一用戶組的用戶
第三位表示不在同一用戶組的用戶權(quán)限
--設(shè)置權(quán)限 (隨意應(yīng)用,靈活組合!)
1、普通用法
--添加權(quán)限 [chmod +x 文件]
如:-rw-r--r-- --- -rwxr-xr-x
--刪除權(quán)限 [chmod -x 文件]
如:-rwxr-xr-x --- -rw-r--r--
--給自己添加權(quán)限 [chmod ?+x 文件]
如此類推,組--g,其他人--o
如:chmod u+x -rw-r--r-- --- -rwxr--r--
chmod g+x -rw-r--r-- --- -rw-r-xr--
chmod o+x -rw-r--r-- --- -rw-r--r-x
2、專業(yè)用法 chmod 755/777
--原理,八進制轉(zhuǎn)二進制
如755,111 101 101, rwx r-x r-x
777,111 111 111, rwx rwx rwx
--修改所有者權(quán)限 chown (change owner)
如:chown 原來文件 file1 的所有者是 root,改成joe的
chown joe file1
10、管道(把上一個命令執(zhí)行的結(jié)果交給下一個命令)
--使用方法:
命令1|命令2|命令3......|命令n
--使用舉例
--$ls -Rl /etc | more
(如 ls -Rl /etc (在控制臺模式下,無法返回前面過去的信息),因此需要管道執(zhí)行該查詢,實現(xiàn)分頁的工作, ls -Rl /etc | more)
--$cat /etc/passwd | wc
(顯示文件結(jié)果,再數(shù)數(shù)有多少行)
--$cat /etc/passwd | grep lrj
(顯示文件結(jié)果,再查找包含lrj的行)
--#dmesg | grep eth0
(顯示系統(tǒng)啟動的信息,再查找包含eth0的行--真正含義,檢查網(wǎng)卡執(zhí)行信息是否正常)
--$man bash | col -b bash.txt
語法:col [-bfx][-l緩沖區(qū)列數(shù)]
補充說明:在許多UNIX說明文件里,都有RLF控制字符。當我們運用shell特殊字符""和"",把說明文件的內(nèi)容輸出成純文本文件時,控制字符會變成亂碼,col指令則能有效濾除這些控制字符。
參數(shù):
-b 過濾掉所有的控制字符,包括RLF和HRLF。
-f 濾除RLF字符,但允許將HRLF字符呈現(xiàn)出來。
-x 以多個空格字符來表示跳格字符。
-l緩沖區(qū)列數(shù) 預設(shè)的內(nèi)存緩沖區(qū)有128列,您可以自行指定緩沖區(qū)的大小。
--$ls -l | grep "^d"
(用正則表達式篩選出目錄列表中 頭字母為'd' 的內(nèi)容--目錄)(^是正則表達式開頭部分)
--$ls -l * | grep "^-" | wc -l
(列出目錄列表中 頭字符為'-'的內(nèi)容--文件,并統(tǒng)計顯示的行數(shù)wc -l)
11、其他命令
--wall(warning all) 通知所有人
a.命令替換
如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)
b.重定向
重定向輸出:
如 ls cmd.txt ,把文件寫到cmd.txt,不輸出在控制臺
ls cmd.txt ,把文件追加寫到cmd.txt
重定向輸入:
如 wall cmd.txt,把文本內(nèi)容發(fā)給所有人
12、修改系統(tǒng)的默認系統(tǒng)級別
常用3和5
3 - 多用戶狀態(tài)(有NFS)
NFS - Network File System 網(wǎng)絡(luò)文件系統(tǒng),聯(lián)網(wǎng)系統(tǒng)
5 - 圖形界面
PS.設(shè)置用戶權(quán)限: sudo chmod 777 目錄
4表示讀,2表示寫,1表示執(zhí)行.
第一位表示文件所有者,第二位表示和所有者在同一用戶組的用戶,第三位表示不在同一用戶組的用戶權(quán)限.
755表示文件所有者可讀寫,執(zhí)行.
第二位5表示與所有者在同一用戶組的可讀,可執(zhí)行,不可寫.
第三位5表示其它組可讀,可執(zhí)行,不可寫. 轉(zhuǎn)載于Joewalker在本人空間也有詳細說明
DEBUG的常用命令
(1)匯編命令 A
格式:A[起始地址]
功能:將輸入源程序的指令匯編成目標代碼并從指定地址單元開始存放。若缺省
起始地址,則從當前CS:100 地址開始存放。A 命令按行匯編,主要是用于小段
程序的匯編或?qū)δ繕顺绦虻男薷摹?/p>
(2)反匯編命令 U
格式1:U[起始地址]
格式2:U[起始地址][結(jié)束地址|字節(jié)數(shù)]
功能:格式1 從指定起始地址處開始將32 個字節(jié)的目標代碼轉(zhuǎn)換成匯編指令形
式,缺省起始地址,則從當前地址CS:IP 開始。
格式2 將指定范圍的內(nèi)存單元中的目標代碼轉(zhuǎn)換成匯編指令。
(3)顯示、修改寄存器命令 R
格式:R[寄存器名]
功能:若給出寄存器名,則顯示該寄存器的內(nèi)容并可進行修改。缺省寄存器名,
則按以下格式顯示所有寄存器的內(nèi)容及當前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
DI=0000 DS=3000 ES=23A0 CS=138E IP=0000
NV UP DI PL NZ NA PO NC
138E:0000 MOV AX,1234
-R AX ;輸入命令
AX 0014 ;顯示AX 的內(nèi)容
: ;供修改,不修改按回車。
若對標志寄存器進行修改,輸入:-RF
屏幕顯示如下信息,分別表示OF、DF、IF、SF、ZF、AF、PF、CF 的狀態(tài)。
NV UP DI PL NZ NA PO NC
不修改按回車鍵。要修改需個別輸入一個或多個此標志的相反值,再按回車鍵。
R 命令只能顯示、修改16 位寄存器。
(4)顯示存儲單元命令 D
格式1:D[起始地址]
格式2:D[起始地址][結(jié)束地址|字節(jié)數(shù)]
功能:格式1 從起始地址開始按十六進制顯示80H 個單元的內(nèi)容,每行16 個單
元,共8 行,每行右邊顯示16 個單元的ASCII 碼,不可顯示的ASCII 碼則顯示
“·”。格式2 顯示指定范圍內(nèi)存儲單元的內(nèi)容,其他顯示方式與格式1 一樣。
如果缺省起始地址或地址范圍,則從當前的地址開始按格式1 顯示。
例如: -D 200 ;表示從DS:0200H 開始顯示128 個單元內(nèi)容
-D 100 120 ;表示顯示DS:0100-DS:0120 單元的內(nèi)容
說明:在DEBUG 中,地址表示方式有如下形式:
段寄存器名:相對地址,如:DS:100
段基值:偏移地址(相對地址),如:23A0:1500
(5)修改存儲單元命令 E
格式1:E[起始地址] [內(nèi)容表]
格式2:E[地址]
功能:格式1 按內(nèi)容表的內(nèi)容修改從起始地址開始的多個存儲單元內(nèi)容,即用內(nèi)
容表指定的內(nèi)容來代替存儲單元當前內(nèi)容。
例如:—E DS:0100 'VAR' 12 34
表示從DS:0100 為起始單元的連續(xù)五個字節(jié)單元內(nèi)容依次被修改為
'V'、'A'、'R'、12H、34H。
格式2 是逐個修改指定地址單元的當前內(nèi)容。
如:—E DS:0010
156F:0010 41.5F
其中156F:0010 單元原來的值是41H,5FH 為輸入的修改值。若只修改一個單元
的內(nèi)容,這時按回車鍵即可;若還想繼續(xù)修改下一個單元內(nèi)容,此時應(yīng)按空格鍵,
就顯示下一個單元的內(nèi)容,需修改就鍵入新的內(nèi)容,不修改再按空格跳過,如此
重復直到修改完畢,按回車鍵返回DEBUG“-”提示符。如果在修改過程中,將
空格鍵換成按“-”鍵,則表示可以修改前一個單元的內(nèi)容。
(6)運行命令 G
格式:G[=起始地址][第一斷點地址[第二斷點地址……]]
功能:CPU 從指定起始地址開始執(zhí)行,依次在第一、第二等斷點處中斷。若缺省
起始地址,則從當前CS:IP 指示地址開始執(zhí)行一條指令。最多可設(shè)置10 個斷點。
(7)跟蹤命令 T
格式:T[起始地址][正整數(shù)]
功能:從指定地址開始執(zhí)行‘正整數(shù)’條指令,若缺省‘正整數(shù)’,表示執(zhí)行一
條指令,若兩項都缺省,表示從當前CS:IP 指示地址開始執(zhí)行一條指令。
(8)指定文件命令 N
格式:N文件名或擴展名
功能:指定即將調(diào)入內(nèi)存或從內(nèi)存寫入磁盤的文件名。該命令應(yīng)該用在L 命令和
W 命令之前。
(9)裝入命令 L
格式1:L[起始地址][盤符號][扇區(qū)號][扇區(qū)數(shù)]
格式2:L[起始地址]
功能:格式1 根據(jù)盤符號,將指定扇區(qū)的內(nèi)容裝入到指定起始地址的存儲區(qū)中。
格式2 將N 命令指出的文件裝入到指定起始地址的存儲區(qū)中,若省略起始地址,
則裝入到CS:100 處或按原來文件定位約定裝入到相應(yīng)位置。
(10)寫磁盤命令 W
格式1:W起始地址[驅(qū)動器號]起始扇區(qū)扇區(qū)數(shù)
格式2:W[起始地址]
功能:格式1 把指定地址開始的內(nèi)容數(shù)據(jù)寫到磁盤上指定的扇區(qū)中。
格式2 將起始地址的BX×10000H+CX 個字節(jié)內(nèi)容存放到由N 命令指定的文件中。
在格式2 的W 命令之前,除用N 命令指定存盤的文件名外,還必須將要寫的字節(jié)
數(shù)用R 命令送入BX 和CX 中。
(11)退出命令 Q
格式:Q
功能:退出DEBUG,返回到操作系統(tǒng)。
以上介紹的是DEBUG 常用命令,其他命令請參考有關(guān)書籍。
歸根揭底
在驅(qū)動程序中操作的還是寄存器
在頭文件中定義一下寄存器的絕對地址 然後操作寄存器的
舉個例子 #define config @0x00000120
然後在驅(qū)動程序.C中讀寫config寄存器 就行了
當前文章:修改linux寄存器命令 linux修改內(nèi)存配置參數(shù)
文章地址:http://jinyejixie.com/article16/dosshdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、網(wǎng)站排名、Google、營銷型網(wǎng)站建設(shè)、軟件開發(fā)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)