關於樹莓派的命令(學習)


安裝VNC需要使用命令行。如果需要遠程操作安裝VNC,就必須通過SSH登錄到命令行界面。
安裝
樹莓派命令行:sudo apt-get install tightvncserver

 

安裝好之后請一定先使用此命令設置一個VNC密碼:vncpasswd

 

(先輸入操作密碼兩次,然后會詢問是否設置一個查看(view-only)密碼,按自己喜歡,一般沒必要。)

---------------------------------------------------------------------------------------------------------------------

樹莓派使用的linux是debian系統,所以樹莓派啟用root和debian是相同的。

debian里root賬戶默認沒有密碼,但賬戶鎖定。

當需要root權限時,由默認賬戶經由sudo執行,Raspberry pi 系統中的Raspbian

默認用戶是pi 密碼為raspberry

重新開啟root賬號,可由pi用戶登錄后,在命令行下執行

sudo passwd root

執行此命令后系統會提示輸入兩遍的root密碼,輸入你想設的密碼即可,然后在執行

sudo passwd --unlock root

這樣就可以解鎖root賬戶了。

--------------------------------------------------------------------------------------------

 

su root 換到root管理員

sudo raspi-config  這是進入配置界面

startx 進入圖形界面.

sudo apt-get install vim  更新vim  http://blog.csdn.net/xdw1985829/article/details/38818193

sudo vim /etc/wpa_supplicant/wpa_supplicant.conf  編輯wifi文件

 

curl icanhazip.com  查詢外網ip

 

jobs

查看當前有多少在后台運行的命令

jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated。但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識。

法子1:通過jobs命令查看job號(假設為num),然后執行kill %num 
法子2:通過ps命令查看job的進程號(PID,假設為pid),然后執行kill pid 
前台進程的終止:Ctrl+c

 --------------------------------------------------------------------------------------------------------------

sync

https://help.getsync.com/hc/en-us/articles/206178924-Installing-Sync-package-on-Linux

啟動服務

sudo service resilio-sync start 

------------------------------------------------------------------------------------------------------------

更改樹莓派前面那個FAT32分區里的config.txt,修改或加入以下項目:

hdmi_group=****
hdmi_mode=****
hdmi_ignore_edid=0xa5000080

hdmi_group和hdmi_mode的值對應想要調整的分辨率。見文后。

另外一項“hdmi_ignore_edid”,是命令樹莓派不檢測HDMI設備的任何信息,只按照我們指定的分辨率輸出。
如果不加,樹莓派可能仍會“自作聰明”的檢測HDMI設備的分辨率,結果造成我們設置的分辨率無效。

#旋轉屏幕#

魔鏡在設計上是縱向肖像模式,所以我需要將屏幕順時針旋轉90度,最終顯示分辨率為1080 x 1920。我曾擔心這會是最大的問題,最終卻很容易解決了。

樹莓派的BIOS設置儲存在系統啟動分區中。在這分區中,有一個config.txt文件,載有所有設置。要旋轉顯示器,在這文件內加上以下一行代碼:
display_rotate=1

要讓顯示器連接更加可靠,我就不解釋為何加上下面允許HDMI線熱插拔的代碼了:
hdmi_force_hotplug=1

配置文件存盤后重啟樹莓派,我不禁會心一笑:這感覺真好,腰不疼頸不酸了!

---------------------------------------------------------------------------------------------------------------

掛載u盤

http://blog.csdn.net/c80486/article/details/8545115

復制代碼
在樹莓派中操作如下

1, 在插入U盤前,用 ls 命令查看一下設備文件

ls /dev/sd*

可以看到,沒有文件

2, 插入U盤, 再用ls 命令查看一下設備文件

ls /dev/sd*
可以看到,有兩個文件   sda , sda1
其中 sda1就是U盤

3, 建立一個子目錄,用於掛接
進入主目錄
cd ~
生成一個子目錄
mkdir usbdisk

4,使用mount命令掛接。mount命令必須使用 root 權限,所以要用sudo
sudo mount -o rw /dev/sda1 /home/~/usbdisk
    -o 表示選項, rw是讀寫, 這種寫法是root用戶有讀寫權限
   /dev/sda1 是要mount的設備
   /home/~/usbdisk     是要mount到的目錄

mount成功后,進入usbdisk,用ls 查看一下,就可以看到U盤中的文件了

cd usbdisk
ls

如果當前用戶不是root,而是pi,則這個usbdisk目錄是不能寫入的。因為mount命令是用root用戶身份執行的,沒有定義用戶pi的讀寫權限
如果要用戶pi也可以讀寫,則要使用以下mount命令參數

sudo mount -o uid=pi,gid=pi /dev/sda1 /home/~/usbdisk

    -o 表示選項, uid=pi,gid=pi 表示用戶及組都是pi(則用戶pi可讀寫)


mount成功后,進入usbdisk,用ls 查看一下,用mkdir可以創建子目錄了(即,可以讀寫了)

cd usbdisk
ls
mkdir test


5, U盤使用完畢,須使用umount命令卸載。umount命令必須使用 root 權限,所以要用sudo
sudo umount /home/~/usbdisk

umount時,要卸載的目錄必須沒有被使用(比如:某個程序正在打開文件等),如果有,則退出相關程序。
並且,umount時,當前目錄不能是要卸載的目錄。如果是,則需修改當前目錄,比如: cd /
如果umount不成功,多數是上述原因

6, umount成功后,則可以撥出U盤了
復制代碼

 

---------------------------------------------------------------------------------------------------------------

迅雷遠程下載

復制代碼
http://tieba.baidu.com/p/3607314366
創建一個文件夾xunlei
mkdir xunlei

cd xunlei/
ls -al
把剛才下載的那個文件解壓上傳到xunlei文件夾內


給這些文件加上所有權限
chmod 0777 * -R


然后運行那個portal
./portal
成功的話會出現如圖所示的文本,其中包含一條機器碼


然后登錄迅雷遠程下載官網http://yuancheng.xunlei.com/
先登錄,再在機器碼框中輸入之前的機器碼


之后就可以添加下載任務了,這時你就會發現他說沒有掛載磁盤,再把U盤插上,ok
復制代碼

 

 

vi 編輯器的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
  vi和其他編輯器最不一樣的地方莫過於它把編輯、處理等等的操作分離開來,形成性質不同的3種操作模式,他們分別為“命令模式”、“插入模式”、“ex模式”。
 
  在Windows下通常使用的記事本等等的編輯器在打開文件的時候,光標已經在處於輸入等待的狀態,也就是說,我們打開文件時就可以對文件進行編輯。 比如,我們要輸入新的文本,或者復制一段文本,所有操作的前提,只要編輯器是被打開的狀態,操作就是可能的。
 
  但在vi下,為了增強對將要處理的文本的針對性,文本輸入、復制等等不同的操作,是被分離開來的,比如文本輸入的模式叫做“插入模式”,在插入模式 下,我們可以用和Windows下一樣的操作方法來對文本進行輸入、編輯等等的操作,但是復制等等非編輯的操作,在插入模式下不能夠完成,而需要切換到相 應的模式下用相應的命令來完成。
 
在這里,還是首先對重要的vi的模式進行說明。
 
★ vi的模式(命令模式、插入模式、ex模式)
 
1)命令模式:
 
  在我們剛剛通過vi新建或打開一個已經存在的文件時,首先默認被讀取的模式就是“命令模式”,命令模式的特征就是,在編輯器窗口左下角的位置上沒有任何的提示標語。
 
 
 
  在這個模式下,如果不通過相應的命令,我們無法輸入新的文本到這個文件中。這里建議新接觸剛剛接觸vi的朋友在用vi打開一個文件時不要處於心切而亂 按鍵盤試圖輸入一些文本到文件中,因為命令模式所謂的“命令”,並不是我們在命令行提時下輸入的過程諸如“ls -> 回車”等等形式的命令。確切說vi命令模式下的命令,只是計算機鍵盤上的某個按鍵或某些按鍵的組合,當我們在命令模式下敲下鍵盤一個按鍵的時候,相應命令就已經被執行。
 
   在這里,首先介紹移動光標的命令。通常光標的移動可以通過鍵盤右邊的方向鍵,但是由於每次移動光標,手都要大幅度的移動到鍵盤右邊,這樣使用vi是體現不出效率的,所以建議使用vi固有的命令(鍵)來控制光標的移動。
 
  光標的移動命令如下所示:
 
  向右移動 --> l
  向左移動 --> h
  向下移動 --> j
  向上移動 --> k
  如上所示,例如要向右移動光標8個字符的距離,只要在鍵盤上敲 l 鍵8次即可;向下移動3行的距離,只要在鍵盤上敲 j 鍵3次即可……也就是說,在vi命令模式中通過這幾個鍵(命令)來控制光標的移動。
  其次就是文本刪除的命令。在Windows下大多數編輯器在刪除文本時只要連續按[Backspace]鍵即可。但由於在vi中,插入模式和命令模式是分離開來的,所以在命令模式下需要通過命令(按鍵)來刪除文本,而不是直接按[Backspace]鍵。
 
  文本刪除的命令如下所示:
 
  刪除光標所在位置的字符 --> x
  刪除光標所在的行 --> dd(敲 d 兩次)
  如上所示,例如要刪除從光標位置起向右的3個字符,只要在鍵盤上敲 x 鍵3次即可;要刪除光標所在的行,只要敲 dd (連續敲d鍵兩次),光標所在行的所有字符以及行將會被刪除。
  再次,當編輯完了一個文檔,想要保存后退出的時候的命令為“ZZ”(大寫、連續敲2次)。
 
  保存並退出文檔:
 
  保存當前修改並退出 --> ZZ
  另外,vi還有一些編輯性質的命令,一並總結如下
 
  具有編輯性質的有用的命令:
 
  撤銷上一步操作 --> u
  移動光標到行首 --> 0 (數字0)
  移動光標到行末 --> $
  移動光標到當前頁最頂行 --> H
  移動光標到當前頁最底行 --> L
  向前翻一頁(Page Up) --> Ctrl + f
  向后翻一頁(Page Down) --> Ctrl + b
  還有在服務器配置中使用vi時,頻繁用到的就是vi的搜索功能。在vi命令行的狀態下,鍵入“/”(斜 線)后,vi底部出現“/”,並處於輸入等待狀態,這時候輸入要查找的文字或文字列,然后按回車就可以找到相應的文字或文字列。當有多個對象存在時,敲 “n”(小寫)鍵為查找下一個目標,敲“N”為查找上一個目標。
 
vi是所有UNIX系統都會提供的屏幕編輯器,它提供了一個視窗設備,通過它可以編輯文件。當然,對UNIX系統略有所知的人,或多或少都覺得vi超級難用,但vi是最基本的編輯器,學好了vi,以后在UNIX世界里必將暢行無阻、游刃有余,因為其他幾種文本處理器並非UNIX標准配備。若其它的Linux機器里沒有安裝joe或pico,如果不會使用vi,那可能就真的沒輒了。
  
vi編輯器有3種模式:命令模式、輸入模式、末行模式。掌握這三種模式十分重要:
  
命令模式:vi啟動后默認進入的是命令模式,從這個模式使用命令可以切換到另外兩種模式,同時無論在任何模式下只要按一下[Esc]鍵都可以返回命令模式。在命令模式中輸入字母i或o或a,就可以進入vi的輸入模式編輯文件。
  
輸入模式:在這個模式中我們可以編輯、修改、輸入等編輯工作,在編輯器最后一行顯示一個“--INSERT--”標志着vi進入了輸入模式。當我們完成修改輸入等操作的時候我們需要保存文件,這時我們需要先返回命令模式,在進入末行模式保存。
  
末行模式:在命令模式輸入“:”即可進入該模式,在末行模式中有好多好用的命令。
  
下面介紹vi常用的命令操作
  
進入輸入模式命令
  
i               在光標 左側輸入正文[常用]
a              在光標 右側輸入正文[常用]
o              小寫字符o, 在光標所在行的 下一行增添新行
O              大寫字符O, 在光標所在行的 上一行增添新行
I               在光標 所在行的開頭輸入正文
A              在光標 所在行的末尾輸入正文
上面介紹了幾種切換到插入模式的簡單方法。另外還有一些命令,它們允許在進入插入模式之前首先刪去一段
正文,從而實現正文的替換。這些命令包括:
s                 用輸入的正文替換光標所指向的字符[常用]
ns              用輸入的正文替換光標右側n 個字符
cw              用輸入的正文替換光標右側的字  [常用]
ncw            用輸入的正文替換光標右側的n 個字
cb              用輸入的正文替換光標左側的字  [常用]
ncb            用輸入的正文替換光標左側的 n 個字
cd              用輸入的正文替換光標的所在行[常用]
ncd            用輸入的正文替換光標下面的n 行
c$              用輸入的正文替換從光標開始到本行末尾的所有字符[常用]
c0              用輸入的正文替換從本行開頭到光標的所有字符[常用]
  
r            取代光標所在處的字符, 比如c3 表示將光標所在處的字符替換為字符3 [常用]
  
R           取代字符直至按【ESC】為止
  
按【Esc】鍵或組合鍵【ctrl】+[ 退出輸入模式
  
末行模式
  
w              保存文件  [常用]
  
w file       將當前文件的內容保存到file文件
  
wq           保存文件並退出vi編輯器[常用]
  
wq file    將 當前文件的內容寫入file 文件,並保持原有文件的內容不變,然后退出vi編輯器(假如當前文件內容有變動但未執行保存操作,那么執行該命令后不會退出vi編輯器)
  
r file        讀取file 文件的內容,插入當前光標所在行的后面
e file        關閉當前文件,並打開新文件file (如果當前文件內容有變動但未保存,則該命令不會被執行)[常用]
f file        將當前文件重命名為file [常用]
f               打印當前文件名稱和狀態,如文件的行數、光標所在的行號等
  
q              退出vi編輯器(如果當前文件有改動,則無法退出) [常用]
  
q!             強制退出vi編輯器(不保存修改)[常用]
  
#              將光標移到第#行[常用]
  
PS:  關於行號使用的一些技巧:
  
一般用數值來指定絕對行號;字符“.”表示光標所在行的行號;字符“$”表示文件最后一行的行號,例如:
  
.+5                  將光標從當前行往下移動5 行
  
$                     將光標移到文件的最后一行
  
1                     將光標移到文件的第一行
  
23w file         將文件的第23行寫入file文件
  
3,5w file       將第3 行至第5 行寫入file 文件
1,.w file        將第1 行至當前行寫入file 文件
.,$w file        將當前行至最后一行寫入file 文件
.,.+5w file    從當前行開始將6 行內容寫入file 文件
1,$w file      將所有內容寫入file 文件,相當於:w file 命令
  
移動光標的操作
  
【Home】          光標到行首
【End】              光標到行尾
【Page Up】       向上翻頁
  
【Page Down】  向下翻頁
  
【Delect】          刪除光標位置的字符
【Ctrl】+ f          向前移動一頁
  
【Ctrl】+ b        向后移動一頁
  
   h            光標向左移動一個字符   [常用]
   j            光標向下移動一個字符   [常用]
   k           光標向上移動一個字符   [常用]
   l            光標向右移動一個字符   [常用]
   數字0    把光標移到行尾  [ 常用]
   $           把光標移到行首  [ 常用] 
   G           把光標移到文件的末尾  [ 常用]
   gg          把光標移到文件的開頭   [ 常用]
   w           把光標移到下一個單詞的開頭  [ 常用]
   e           把光標移到當前或下一個單詞的字尾  [ 常用]
   b           把光標移到當前或下一個單詞的開頭  [ 常用]
   ^           把光標移到該行的第一個非空白字符(tab,space)   [ 常用]
   :#         把光標移到該行的第#個位置,例如:3, :10   [ 常用]
   )            光標移到句尾
   (            光標移到句首
   注: 句子用半角句號后加一個空格(. )分割
   }           光標移到段落結尾
   {           光標移到段落開頭
   注: 段落以空行分割
   nG        將光標定位到第n行的開頭  [ 常用]
  
   n+        將光標下移n行 
  
  n-          將光標上移n行
  
  n$          將光標下移n行,並置於行尾
  
  H           將光標置於當前屏幕的頂行
  
  M          將光標置於當前屏幕的中間行
  
  L            將光標置於屏幕的最后行
  
  ~            改變當前字符的大小寫   [ 常用]
  
  >>          把當前行往右移動8個字符(相當於【tab】鍵)    [ 常用]
  
  <<          把當前行往左移動8個字符(相當於【Shift】+【tab】) [ 常用]
  
nz:        將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
  
撤銷操作
  
u            命令撤銷最近一次的操作,可以使用多次來恢復原有的操作   [ 常用]
U           撤銷所有操作
.             可以恢復對使用u命令的操作      [ 常用]
  
復制/刪除/粘貼操作
 
x           刪除光標處的單個字符,並把刪除后的字符放到緩存區( 實際上刪除相當於剪切 )   [ 常用]
nx         刪除三個字符。 例如, 3x刪除光標處向右的三個字符 
"bnx     把刪除的字符放到緩存區b
  
dw        刪除當前字符到單詞尾(包括空格)的所有字符   [ 常用]
  
dd        刪除光標所在行  [常用]     [ 常用]
ndd      刪除n行。 例如, 3dd從當前行開始向下刪除三行文本  [ 常用]
  
"bndd   把刪除的內容放到緩存區b
  
     PS: 如果要刪除第m至第n行的內容,可以在末行模式中輸入m,nd。比如3,5d表示刪除第3~5行  [ 常用]
  
yy        復制當前光標所在行的內容到vi緩沖區     [ 常用]
nyy      復制n行。例如:5yy就是從當前光標所處的行向下復制5行,把復制的內容放到vi緩存區  [常用]
"bnyy   將復制的內容放到緩存區b . 比如,b3yy 將三行數據存入緩存區b    [ 常用]
  
     PS: 如果要復制第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y復制第三行到第五行內容到緩存區  [ 常用]
  
yw       復制當前光標所在位置到單詞尾字符 (不包括空格) 的內容到vi緩存區,相當於復制一個單詞  [常用]
nyw     復制n個單詞例如:2yw就是復制兩個單詞
"bnyw  例如, 復制n個單詞到緩存區b
  
y$        復制光標所在位置到行尾內容到緩存區  
y^        復制光標所在位置到行首內容到緩存區   
p          小寫p, 將緩存區的內容粘貼到當前行的下方(與yy配合)  ,或插入到當前光標的下一個位置(與dw, x, y$ , y^ 配合)[常用]
  
P          大寫P,與小寫p的作用類似,但粘貼都方向相反
  
查找與替換
 
         vi的查找與替換功能要再末行模式下完成。
  
/關鍵字                                               自上而下查找,比如/work,表示從當前光標處往下查找關鍵字為work的內容[ 常用]
  
?關鍵字                                              自下而上查找 , 比如/work,表示從當前光標處往上查找關鍵字為work的內容  [ 常用]
  
PS: 當找到匹配項時,光標會定位在關鍵詞都字符開頭。要繼續查找下一個匹配項,只需敲入字符n; 要往回查找,敲入N. 可以輸入2n往下查找下下一個匹配項
  
s/old_string/new_string               用new_string替換光標所在行中首次出現的old_string
  
s/old_string/new_string/g           用new_string替換光標所在行中的所有old_string
  
m,ns/old_string/new_string/g   用new_string替換第m行至第n行的所有old_string [ 常用]
  
%s/old_string/new_string/g      用new_string替換所有的old_string   [ 常用]
  
/pattern_address/s/old_string/new_string/g    從當前光標處往下查找與pattern_address匹配的行,然后在該行上用new_string替換掉所有的old_string(實際上,這個命令是由/pattern_address 和/s/old_string/new_string/g組合而成)
  
g/pattern_address/s/old_string/new_string/g    找出所有與pattern_address匹配的行, 並用new_string替換掉每一行所有的old_string( 注意: 前后兩個g的含義是不一樣的,前面的g表示對整個文本搜索與pattern_address匹配的行, 后面的g表示針對每一個與pattern_address匹配的行都用new_string替換掉old_string)
  
      如果pattern_address和old_string一樣,可以簡寫為g/pattern_address/s //new_string
  
      可以在所有的命令尾加一個c命令,強制每個替換需要用戶進行確認,例如:s/old/ new /c 或s/old/ new /gc   [ 常用]
  
PS: 查找的一些技巧
  
/str/w file                                              正向搜索,並將第一個包含字符串str 的行寫入file 文件
/str1/,/str2/w file                              正向搜索,並將包含字符串str1 的行至包含字符串str2 的行寫入file 文件
  
恢復文件
vi在編輯某一個文件時,會生成一個臨時文件,這個文件以. 開頭並以.swp結尾。正常退出該文件自動刪除,如果意外退出例如忽然斷電,該文件不會刪除,我們在下次編輯時可以選擇一下命令處理:
  
O        只讀打開,不改變文件內容
E         繼續編輯文件,不恢復.swp文件保存的內容
R        將恢復上次編輯以后未保存文件內容
Q        退出vi
D        刪除.swp文件
  
或者使用vi -r 文件名來恢復未保存的內容

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
進入vi的命令
vi filename :打開或新建文件,並將光標置於第一行首
vi +n filename :打開文件,並將光標置於第n行首
vi + filename :打開文件,並將光標置於最后一行首
vi +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename :打開多個文件,依次進行編輯
 
移動光標類命令
h :光標左移一個字符
l :光標右移一個字符
space:光標右移一個字符
Backspace:光標左移一個字符
k或Ctrl+p:光標上移一行
j或Ctrl+n :光標下移一行
Enter :光標下移一行
w或W :光標右移一個字至字首
b或B :光標左移一個字至字首
e或E :光標右移一個字至字尾
) :光標移至句尾
( :光標移至句首
}:光標移至段落開頭
{:光標移至段落結尾
nG:光標移至第n行首
n+:光標下移n行
n-:光標上移n行
n$:光標移至第n行尾
H :光標移至屏幕頂行
M :光標移至屏幕中間行
L :光標移至屏幕最后行
0:(注意是數字零)光標移至當前行首
$:光標移至當前行尾
 
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
 
插入文本類命令
i :在光標前
I :在當前行首
a:光標后
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其后的字符,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數目的字符
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
 
刪除命令
ndw或ndW:刪除光標處開始及其后的n-1個字
do :刪至行首
d$:刪至行尾
ndd:刪除當前行及其后n-1行
x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
 
搜索及替換命令
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s //p2/g:將文件中所有p1均用p2替換
 
選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
 
最后行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件並退出
:q:退出vi
:q!:不保存文件並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
 
寄存器操作
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數字
"?p:取出寄存器?中的內容並將其放到光標位置處。這里?可以是一個字母,也可以是一個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
 
VI的使用
--------------------------------------------------------------------------------
 
一、插入文本
┌──┬────────────┐
│命令│描述          │
├──┼────────────┤
│i  │在當前字符前插入文本  │
├──┼────────────┤
│I  │在行首插入文本      │
├──┼────────────┤
│a  │在當前字符后添加文本  │
├──┼────────────┤
│A  │在行末添加文本     │
├──┼────────────┤
│o  │在當前行后面插入一空行 │
├──┼────────────┤
│O  │在當前行前面插入一空行 │
├──┼────────────┤
│R  │以改寫方式輸入文本   │
└──┴────────────┘
二、移動光標
┌─────┬───────────┐
│命令   │描述         │
├─────┼───────────┤
│j或下箭頭 │向下移動一行     │
├─────┼───────────┤
│k或上箭頭 │向上移動一行     │
├─────┼───────────┤
│h或左箭頭 │左移一個字符     │
├─────┼───────────┤
│l或右箭頭 │右移一個字符     │
├─────┼───────────┤
│w     │右移一個詞      │
├─────┼───────────┤
│W     │右移一個以空格分隔的詞│
├─────┼───────────┤
│b     │左移一個詞      │
├─────┼───────────┤
│B     │左移一個以空格分隔的詞│
├─────┼───────────┤
│0     │移到行首       │
│Ctrl-F  │向前翻頁       │
├─────┼───────────┤
│Ctrl-B  │向后翻頁       │
├─────┼───────────┤
│nG    │到第n行        │
├─────┼───────────┤
│G     │到最后一行      │
└─────┴───────────┘
三、替換文本
┌─────┬──────┐
│命令   │描述    │
├─────┼──────┤
│$     │到行尾   │
├─────┼──────┤
│(     │到句子的開頭│
├─────┼──────┤
│)     │到句子的末尾│
├─────┼──────┤
│{     │到段落的開頭│
├─────┼──────┤
│}     │到段落的末尾│
└─────┴──────┘
 
四、刪除文本
┌───┬───────────┐
│命令 │描述          │
├───┼───────────┤
│r   │替換一個字符      │
├───┼───────────┤
│c   │修改文本直到按下Esc健 │
├───┼───────────┤
│cw  │修改下一個詞      │
├───┼───────────┤
│cnw  │修改接下來的n個詞   │
└───┴───────────┘
五、文本編輯
┌──┬──────────────────────┐
│命寺│描述                    │
├──┼──────────────────────┤
│yy │將一行文本移到缺省緩沖區中          │
├──┼──────────────────────┤
│yn │將下一個詞移到缺省緩沖區中          │
├──┼──────────────────────┤
│ynw │將后面的n個詞移到缺省緩沖區中        │
├──┼──────────────────────┤
│p  │如果缺省緩沖區中包含一行文本,則在當前   │
│  │行后面插入一個空行井將缺省緩沖區中的聲   │
│  │容粘貼到這一行中;如果缺省緩沖區中包含   │
│  │多個詞,把這些詞粘貼到光標的右邊.     │
├──┼──────────────────────┤
│P  │如果缺省緩沖區中包含一行文本,則正當前    │
│   │行前面插入一個空行井將缺省緩沖區中的內    │
│  │容粘貼到這一行中;如果缺省緩沖區中包含    │
│   │多個詞,把這些詞粘貼到光標的左邊    
 
  │
└──┴──────────────────────┘
六、保存退出
┌───────────┬───────────────┐
│命令         │描述             │
├───────────┼───────────────┤
│zz          │保存並退出          │
├───────────┼───────────────┤
│:w filename      │寫入文件            │
├───────────┼───────────────┤
│:W          │寫入文件           │
├───────────┼───────────────┤
│:x          │保存(如果當前文件修改過)並退出│
├───────────┼───────────────┤
│:q!          │不保存文件,直接退出      │
├───────────┼───────────────┤
│:q          │退出vi            │
 
VI常用技巧
 
VI命令可以說是Unix/Linux世界里最常用的編輯文件的命令了,但是因為它的命令集眾多,很多人都不習慣使用它,其實您只需要掌握基本命令,然后加以靈活運用,就會發現它的優勢,並會逐漸喜歡使用這種方法。本文旨在介紹VI的一些最常用命令和高級應用技巧。
 
一、基本命令介紹
 
---- 1.光標命令
 
k、j、h、l——上、下、左、右光標移動命令。雖然您可以在Linux中使用鍵盤右邊的4個光標鍵,但是記住這4個命令還是非常有用的。這4個鍵正是右手在鍵盤上放置的基本位置。
nG——跳轉命令。n為行數,該命令立即使光標跳到指定行。
Ctrl+G——光標所在位置的行數和列數報告。
w、b——使光標向前或向后跳過一個單詞。
---- 2.編輯命令
i、a、r——在光標的前、后以及所在處插入字符命令(i=insert、a=append、r=replace)。
cw、dw——改變(置換)/刪除光標所在處的單詞的命令 (c=change、d=delete)。
x、d$、dd——刪除一個字符、刪除光標所在處到行尾的所有字符以及刪除整行的命令。
---- 3.查找命令
---- / string 、? string ——從光標所在處向后或向前查找相應的字符串的命令。
---- 4.拷貝復制命令
---- yy、p——拷貝一行到剪貼板或取出剪貼板中內容的命令。
 
二、常見問題及應用技巧
 
---- 1.在一個新文件中讀/etc/passwd中的內容,取出用戶名部分。
---- vi file
---- :r /etc/passwd 在打開的文件file中光標所在處讀入/etc/passwd
---- :%s/:.* //g 刪除/etc/passwd中用戶名后面的從冒號開始直到行尾的所有部分。
---- 您也可以在指定的行號后讀入文件內容,例如使用命令“:3r /etc/passwd”從新文件的第3行開始讀入 /etc/passwd的所有內容。
---- 我們還可以使用以下方法刪掉文件中所有的空行及以#開始的注釋行。
---- #cat squid.conf. default  | grep -v ^$ | grep -v ^#
 
---- 2.在打開一個文件編輯后才知道登錄的用戶對該文件沒有寫的權限,不能存盤,需要將所做修改存入臨時文件。
---- vi file
---- :w /tmp/1 保存所做的所有修改,也可以將其中的某一部分修改保存到臨時文件,例如僅僅把第20~59行之間的內容存盤成文件/tmp/1,我們可以鍵入如下命令。
---- vi file
---- :20,59w /tmp/1
 
---- 3.用VI編輯一個文件,但需要刪除大段的內容。
---- 首先利用編輯命令“vi file”打開文件,然后將光標移到需要刪除的行處按Ctrl+G顯示行號,再到結尾處再按Ctrl+G,顯示文件結尾的行號。
---- :23,1045d 假定2次得到的行號為23和1045,則把這期間的內容全刪除,也可以在要刪除的開始行和結束行中用ma、mb命令標記,然后利用“:a,bd”命令刪除。
 
---- 4.在整個文件的各行或某幾行的行首或行尾加一些字符串。
---- vi file
---- :3,$s/^/some  string  / 在文件的第一行至最后一行的行首插入“some  string ”。
---- :%s/$/some  string /g 在整個文件每一行的行尾添加“some  string ”。
---- :%s/string1/string2/g 在整個文件中替換“string1”成“string2”。
---- :3,7s/string1/string2/ 僅替換文件中的第3行到第7行中的“string1”成“string2”。
---- 注意: 其中s為substitute,%表示所有行,g表示global。
 
---- 5.同時編輯2個文件,拷貝一個文件中的文本並粘貼到另一個文件中。
---- vi file1 file2
---- yy 在文件1的光標處拷貝所在行
---- :n 切換到文件2 (n=next)
---- p 在文件2的光標所在處粘貼所拷貝的行
---- :n 切換回文件1
 
---- 6.替換文件中的路徑。
---- 使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路徑/usr/bin換成/bin。也可以使用命令“:%s //usr/bin//bin/g”實現,其中“”是轉義字符,表明其后的“/”字符是具有實際意義的字符,不是分隔符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM