第一篇:vi 常用命令總結
輸入模式命令
輸入
命令作用
在光標前輸入文本
在當前行開始輸入文本
光標移動命令
光標移動
命令作用
0 移動到光標所在列的最前面 [Home]
$ 移動到光標所在列的最後面 [End]
[CTRL][d] 向下半頁 [PageDown]
[CTRL][f] 向下一頁
[CTRL][u] 向上半頁
[CTRL][b] 向上一頁 [PageUp]
H 移動到視窗的第一列
M 移動到視窗的中間列
L 移動到視窗的最後列
b 移動到下個字的第一個字母
w 移動到上個字的第一個字母
e 移動到下個字的最後一個字母
^ 移動到光標所在列的第一個非空白字元
n-減號移動到上一列的第一個非空白字元前面加上數字可以指定移動到以上n列n+ 加號移動到下一列的第一個非空白字元前面加上數字可以指定移動到以下n列nG 直接用數字n加上大寫G移動到第n列)光標所在位置到下個句子的第一個字母
(光標所在位置到該句子的第一個字母
} 光標所在位置到該段落的最後一個字母
{ 光標所在位置到該段落的第一個字母
fx
往右移動到x字符上
Fx
往左移動到x字符上
tx
往右移動到x字符前
Tx
往左移動到x字符后
(注意:以上四個命令中,其中x是鍵入的字符)
;
分號,配合f和t使用,重復一次,逗號,配合f和t使用,反方向重復一次
%-移至匹配的括號
shift+G跳到文件尾
交換兩個字符位置
xp
上下兩行調換
ddp
把文件內容反轉
:g/^/m0/
刪除操作命令
刪除操作
命令作用
可在刪除命令前加上數字,如<5x>表示刪除5行。
改變與替換操作命令
改變與替換操作
命令作用
全文替換:“g/被替換字符串/s//替換字符串/g”
>>
<<
查詢命令
查詢
命令作用
向前查詢abc
向后查詢abc
拷貝與粘貼命令
命令作用
/yw將光標所在單詞拷入剪貼板
y$將光標至行尾的字符拷入剪貼板
Y同
yy將當前行拷入剪貼板
p將剪貼板中的內容粘貼在光標后
P將剪貼板中的內容粘貼在光標前
文件編輯、保存及退出vi命令
命令作用
:q不包存退出
:q!不保存強制性退出
:w保存編輯
:wfilename存入文件filename中
:w!filename強制性存入文件filename中
:wq/:x/ZZ保存退出
編輯數個文件(利用vifilename(s))進入vi后)
:args顯示編輯名單中的各個文件名
:n讀入編輯名單中的下一個文件
:rew讀入編輯名單中的第一個文件
:e#讀入編輯名單內的前一個文件
:efile讀入另一個文件進vi(此文件可不在編輯名單內),若原文件經修改還沒有存檔,則應先以:w存檔。
:e!file 強迫讀入另一個文件進入vi,原文件不作存檔動作。
:!command 暫時退出vi并執行shell指令,執行完畢后再回到vi。
:sh 暫時退出vi到系統下,結束時按Ctrl+d則回到vi。
vifilename 進入vi并讀入指定名稱的文件(新、舊文件均可)。
vi+nfilename 進入vi并且由文件的第幾行開始。
vi+filename 進入vi并且由文件的最后一行開始。
vi+/wordfilename進入vi并且由文件的word這個字開始。
vifilename(s)進入vi并且將各指定文件列入名單內,第一個文件先讀入。
清理掉DOS文本中的^M,可以在:1,$s/^M//g,其中^是用CTRL+v上去的M是回車形成的正則表達式
在查找、替換命令使用以下正則表達式元字符,功能強大。
也可用在:g/命令中
&代表最近匹配串
~代表最近替換串
.任一字符
^行首或表示非
$行末
<詞首
>詞尾
*0次或多次
()分節指定與其中正則式匹配的部分,在替換時候可以用123...引用匹配部分
[]表示選擇
-表示范圍,例如[0-9]代表數字,[a-z]代表小寫字母[^0-9a-zA-Z]代表非數字和大小寫字母
{m,n}前面部分的從m次至n次出現,mn為數值
{m}精確m次出現
{m,}大于等于m次出現
以下舉幾例子,歡迎大家提出問題來共同探討。
1.在20列后插入串
:%s/^.{20}/&insertsomethinghere/g
2.把C++語言里//注釋修改為/**/格式
:%s///(.*)$//*1*//g
3.在建存儲過程的sql文本里,在每個createprocedureprocname()
前加上dropprocedureprocname;[]里輸入的是一個空格和TAB鍵。:%s/^[]*[cC][rR][eE][Aa][tT][eE][]*[pP][Rr][oO][cC][eE][dD][uU][rR][eE][
]*([^()*]/dropprocedure1;Ctrl_VCtrl_Mcreateprocedure1/g
宏命令
首先,宏的實質是將命令存儲在寄存器中,如下是錯誤的qa
“ayw
q
寄存器a沖突,宏挺有用的vi的配置文件
另一方面,用戶可以在主目錄中創建.exrc環境文件,用set打入
選項,每次調用vi時,就會讀入.exrc中的指令與設置。下面是
.exrc環境文件的實例:
setwrapmarging=8
setshowmode
setautoindent
setnumber
vim配置文件:
setnobackup
setdirectory=$VIM/swp”Therestoresallvimswapfiles
setignorecasesmartcase“Ctoforcevimtosearchcasesensibly.setlinebreak”letvimdon'tsplitawordwhenlinewrap,note:linedoesn'tbesplitreally
ifhas('multi_byte_ime')
highlightCursorguibg=Greenguifg=NONE
highlightCursorIMguibg=Purpleguifg=NONE
endif
setautoindent
setsmartindent
settabstop=4“treat
setshiftwidth=4”beusedonlywhen“<<”commandispressed
"TurnoffIMEwheninsertmodeandsearchmode
setiminsert=0
setimsearch=-1
第二篇:linux、samba、vi命令集合
Linux安裝軟件
先來看看Linux軟件擴展名。軟件后綴為.rpm最初是Red Hat Linux提供的一種包封裝格式,現在許多Linux發行版本都使用;后綴為.deb是Debain Linux提供的一種包封裝格式;后綴為.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系統打包工具tar打包的;后綴為.bin的一般是一些商業軟件。通過擴展名可以了解軟件格式,進而了解軟件安裝。
RPM格式軟件包的安裝
1.簡介
幾乎所有的Linux發行版本都使用某種形式的軟件包管理安裝、更新和卸載軟件。與直接從源代碼安裝相比,軟件包管理易于安裝和卸載;易于更新已安裝的軟件包;易于保護配置文件;易于跟蹤已安裝文件。
RPM全稱是Red Hat Package Manager(Red Hat包管理器)。RPM本質上就是一個包,包含可以立即在特定機器體系結構上安裝和運行的Linux軟件。RPM示意圖見圖1。
大多數Linux RPM軟件包的命名有一定的規律,它遵循名稱-版本-修正版-類型-MYsoftware-1.2-1.i386.rpm。
2.安裝RPM包軟件
# rpm-ivh MYsoftware-1.2-1.i386.rpm
安裝mysql服務端:
[root@test1 local]# rpm-ivh MySQL-server-4.0.16-0.i386.rpm 測試是否成功可運行netstat看Mysql端口是否打開,如打開表示服務已經啟動,安裝成功。Mysql默認的端口是3306。
安裝mysql客戶端:
[root@test1 local]# rpm-ivh MySQL-client-4.0.16-0.i386.rpm
要想看看RPM軟件包內的所有文件(例如,MySQL-server RPM),運行: shell> rpm-qpl MySQL-server-VERSION.i386.rpm
RPM命令主要參數:
-i 安裝軟件。
-t 測試安裝,不是真的安裝。
-p 顯示安裝進度。
-f 忽略任何錯誤。
-U 升級安裝。
-v 檢測套件是否正確安裝。
這些參數可以同時采用。更多的內容可以參考RPM的命令幫助。
3.卸載軟件
# rpm-e 軟件名
需要說明的是,上面代碼中使用的是軟件名,而不是軟件包名。例如,要卸載software-1.2.-1.i386.rpm這個包時,應執行:
#rpm-e software
4.強行卸載RPM包
有時除去一個RPM是不行的,尤其是系統上有別的程序依賴于它的時候。如果執行命令會顯示如下錯誤信息:
## rpm-e xsnow
error: removing these packages would break dependencies:
/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1
在這種情況下,可以用--force選項重新安裝xsnow:
## rpm-ivh--force xsnow-1.41-1.i386.rpm
xsnow
這里推薦使用工具軟件Kleandisk,用它可以安全徹底清理掉不再使用的RPM包。
5.安裝.src.rpm類型的文件
目前RPM有兩種模式,一種是已經過編碼的(i386.rpm),一種是未經編碼的(src.rpm)。
rpm--rebuild Filename.src.rpm
這時系統會建立一個文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目錄下,一般是i386,具體情況和Linux發行版本有關。然后執行下面代碼即可:
rpm-ivh /usr/src/regflag/RPMS/i386/Filename.rpm
使用deb打包的軟件安裝
deb是Debian Linux提供的一個包管理器,它與RPM十分類似。但由于RPM出現得早,并且應用廣泛,所以在各種版本的Linux中都常見到,而Debian的包管理器dpkg只出現在Debina Linux中。它的優點是不用被嚴格的依賴性檢查所困擾,缺點是只在Debian Linux發行版中才能見到這個包管理工具。
1.安裝
# dpkg-i MYsoftware-1.2.-1.deb
2.卸載
# dpkg-e MYsoftware
tar.gz等使用源代碼進行軟件安裝:.和RPM安裝方式相比,使用源代碼進行軟件安裝會復雜一些,但是用源代碼安裝軟件是Linux下進行軟件安裝的重要手段,也是運行Linux的最主要的優勢之一。使用源代碼安裝軟件,能按照用戶的需要選擇定制的安裝方式進行安裝,而不是僅僅依靠那些在安裝包中的預配置的參數選擇安裝。另外,仍然有一些軟件程序只能從源代碼處進行安裝。
現在有很多地方都提供源代碼包,到底在什么地方獲得取決于軟件的特殊需要。對于那些使用比較普遍的軟件,如Sendmail,可以從商業網站處下載源代碼軟件包(如http://www.tmdps.cnum1-num2 filename 說明:顯示每行從開頭算起 num1 到 num2 的文字。范例:
shell>> cat example test2 this is test1 shell>> cut-c0-6 example ## print 開頭算起前 6 個字元 test2 this i
find 用法 : find 使用說明 : 將檔案系統內符合 expression 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、權限等不同資訊的組合,只有完全相符的才會被列出來。
find 根據下列規則判斷 path 和 expression,在命令列上第一個filename.dump.重新載入
% createdb dbname % cat filename.dump.* | pgsql dbname
touch
使用權限:所有使用者 使用方式: touch [-acfm] [-r reference-file] [--file=reference-file] [-t MMDDhhmm[CC]YY][.ss] [-d time] [--date=time] [--time={atime,access,use,mtime,modify}] [--no-create] [--help] [--version] file1 [file2...]
說明:
touch 指令改變檔案的時間記錄。ls-l 可以顯示檔案的時間記錄。
參數:
a 改變檔案的讀取時間記錄。m 改變檔案的修改時間記錄。
c 假如目的檔案不存在,不會建立新的檔案。與--no-create 的效果一樣。f 不使用,是為了與其他 unix 系統的相容性而保留。r 使用參考檔的時間記錄,與--file 的效果一樣。d 設定時間與日期,可以使用各種不同的格式。t 設定檔案的時間記錄,格式與 date 指令相同。--no-create 不會建立新檔案。--help 列出指令格式。--version 列出版本訊息。范例:
最簡單的使用方式,將檔案的時候記錄改為現在的時間。若檔案不存在,系統會建立一個新的檔案。touch file touch file1 file2 將 file 的時間記錄改為 5 月 6 日 18 點 3 分,公元兩千年。時間的格式可以參考 date 指令,至少需輸入 MMDDHHmm,就是月日時與分。touch-c-t 05061803 file touch-c-t 050618032000 file 將 file 的時間記錄改變成與 referencefile 一樣。touch-r referencefile file 將 file 的時間記錄改成 5 月 6 日 18 點 3 分,公元兩千年。時間可以使用 am, pm 或是 24 小時的格式,日期可以使用其他格式如 6 May 2000。touch-d “6:03pm” file touch-d “05/06/2000” file touch-d “6:03pm 05/06/2000” file
at
使用權限 : 所有使用者
使用方式 : at-V [-q queue] [-f file] [-mldbv] TIME 說明 : at 可以讓使用者指定在 TIME 這個特定時刻執行某個程式或指令,TIME 的格式是 HH:MM其中的 HH 為小時,MM 為分鐘,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 點鍾)等口語詞。如果想要指定超過一天內的時間,則可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分鐘,DD 是第幾日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 時間間隔來彈性指定時間,其中的時間間隔可以是 minutes, hours, days, weeks 另外,使用者也可指定 today 或 tomorrow 來表示今天或明天。當指定了時間并按下 enter 之后,at 會進入交談模式并要求輸入指令或程式,當你輸入完后按下 ctrl+D 即可完成所有動作,至于執行的結果將會寄回你的帳號中。把計 :-V : 印出版本編號
-q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c...z 以及 A, B,...Z 共 52 個-m : 即使程式/指令執行完成后沒有輸出結果, 也要寄封信給使用者
-f file : 讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案后再一次讀入
-l : 列出所有的指定(使用者也可以直接使用 atq 而不用 at-l)-d : 刪除指定(使用者也可以直接使用 atrm 而不用 at-d)-v : 列出所有已經完成但尚未刪除的指定 例子 : 三天后的下午 5 點鍾執行 /bin/ls : at 5pm + 3 days /bin/ls 三個星期后的下午 5 點鍾執行 /bin/ls : at 5pm + 2 weeks /bin/ls 明天的 17:20 執行 /bin/date : at 17:20 tomorrow /bin/date 1999 年的最后一天的最后一分鐘印出 the end of world!at 23:59 12/31/1999 echo the end of world!
cal
使用權限:所有使用者
使用方式:cal [-mjy] [month [year] 說明:
顯示日歷。若只有一個參數,則代表年份(1-9999),顯示該年的年歷。年份必須全部寫出:``cal 89 將不會是顯示 1989 年的年歷。使用兩個參數,則表示月份及年份。若沒有參數則顯示這個月的月歷。
1752 年 9 月第 3 日起改用西洋新歷,因這時大部份的國家都采用新歷,有 10 天被去除,所以該月份的月歷有些不同。在此之前為西洋舊歷。匡兜
-m : 以星期一為每周的第一天方式顯示。
-j : 以凱撒歷顯示,即以一月一日起的天數顯示。-y : 顯示今年年歷。范例:
cal : 顯示本月的月歷。[root@mylinux /root]# date Tue Aug 15 08:00:18 CST 2000 [root@mylinux /root]# cal August 2000 Su Mo Tu We Th Fr Sa 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 [root@mylinux /root]#
cal 2001 : 顯示公元 2001 年年歷。[root@mylinux /root]# cal 2001 2001 January February March Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 25 26 27 28 29 30 31 April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 5 1 2 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16 22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23 29 30 27 28 29 30 31 24 25 26 27 28 29 30 July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 1 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31 [root@mylinux /root]#
cal 5 2001 : 顯示公元 2001 年 5 月月歷。
[root@mylinux /root]# cal 5 2001 May 2001
Su Mo Tu We Th Fr Sa 1 2 3 4 5 7 8 9 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
[root@mylinux /root]#
cal-m : 以星期一為每周的第一天方式,顯示本月的月歷。
[root@mylinux /root]# cal-m August 2000
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
[root@mylinux /root]#
cal-jy : 以一月一日起的天數顯示今年的年歷。
[root@mylinux /root]# cal-jy 2000
January February
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 1 32 33 34 35 36 3 4 5 6 7 8 37 38 39 40 41 42 43 10 11 12 13 14 15 44 45 46 47 48 49 50 16 17 18 19 20 21 22 51 52 53 54 55 56 57 23 24 25 26 27 28 29 58 59 60 30 31
March April
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 61 62 63 64 92
99
79 80 81 82 83 84 85 107 108 109 110 111 112 113 86 87 88 89 90 91 114 115 116 117 118 119 120 121
May June
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 122 123 124 125 126 127 153 154 155
156 157 158 159 160 161 162 135 136 137 138 139 140 141 163 164 165 166 167 168 169 142 143 144 145 146 147 148 170 171 172 173 174 175 176 149 150 151 152 177 178 179 180 181 182 July August
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 183 214 215 216 217 218
184 185 186 187 188 189 190 219 220 221 222 223 224 225 191 192 193 194 195 196 197 226 227 228 229 230 231 232 198 199 200 201 202 203 204 233 234 235 236 237 238 239 205 206 207 208 209 210 211 240 241 242 243 244 212 213
September October
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 245 246 275 276 277 278 279 280 281
247 248 249 250 251 252 253 282 283 284 285 286 287 288 254 255 256 257 258 259 260 289 290 291 292 293 294 295 261 262 263 264 265 266 267 296 297 298 299 300 301 302 268 269 270 271 272 273 274 303 304 305 November December
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 306 307 308 309 336 337
310 311 312 313 314 315 316 338 339 340 341 342 343 344 317 318 319 320 321 322 323 345 346 347 348 349 350 351 324 325 326 327 328 329 330 352 353 354 355 356 357 358 331 332 333 334 335 359 360 361 362 363 364 365 366
[root@mylinux /root]#
crontab
使用權限 : 所有使用者
使用方式 :
crontab [-u user ] filecrontab [-u user ] {-l |-r |-e } 說明 :
crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定 user 的時程表,這個前提是你必須要有其權限(比如說是 root)才能夠指定他人的時程表。如果不使用-u user 的話,就是表示設定自己的時程表。
餐數 :
-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)-r : 刪除目前的時程表
-l : 列出目前的時程表 時程表的格式如下 : f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程式。
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其余類推
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其余類推
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其余類推
當 f1 為 a, b, c,...時表示第 a, b, c,...分鐘要執行,f2 為 a, b, c,...時表示第 a, b, c...個小時要執行,其余類推
使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表。
例子 :
每月每天每小時的第 0 分鐘執行一次 /bin/ls : 0 7 * * * /bin/ls
在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup : 0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信給 alex@domain.name : 0 17 * * 1-5 mail-s “hi” alex@domain.name < /tmp/maildata
每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo “haha” 20 0-23/2 * * * echo “haha” 注意 :
當程式在你所指定的時間執行后,系統會寄一封信給你,顯示該程式執行的內容,若是你不希望收到這樣的信,請在每一行空一格之后加上 > /dev/null 2>&1 即可
date
使用權限 : 所有使用者
使用方式 :
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+formAT] [MMDDhhmm[CC]YY][.ss] 說明 :
date 可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中可用的標記列表如下 : 時間方面 : % : 印出 % %n : 下一行
%t : 跳格
%H : 小時(00..23)%I : 小時(01..12)%k : 小時(0..23)%l : 小時(1..12)%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間(12 小時制,格式為 hh:mm:ss [AP]M)%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..61)
%T : 直接顯示時間(24 小時制)%X : 相當于 %H:%M:%S %Z : 顯示時區
日期方面 :
%a : 星期幾(Sun..Sat)
%A : 星期幾(Sunday..Saturday)%b : 月份(Jan..Dec)
%B : 月份(January..December)%c : 直接顯示日期與時間
%d : 日(01..31)
%D : 直接顯示日期(mm/dd/yy)%h : 同 %b
%j : 一年中的第幾天(001..366)%m : 月份(01..12)
%U : 一年中的第幾周(00..53)(以 Sunday 為一周的第一天的情形)%w : 一周中的第幾天(0..6)
%W : 一年中的第幾周(00..53)(以 Monday 為一周的第一天的情形)%x : 直接顯示日期(mm/dd/yy)%y : 年份的最后兩位數字(00.99)%Y : 完整年份(0000..9999)
若是不以加號作為開頭,則表示要設定時間,而時間格式為 MMDDhhmm[CC]YY][.ss],其中 MM 為月份,DD 為日,hh 為小時,mm 為分鐘,CC 為年份前兩位數字,YY 為年份后兩位數字,ss 為秒數
把計 :
-d datestr : 顯示 datestr 中所設定的時間(非系統時間)--help : 顯示輔助訊息
-s datestr : 將系統時間設為 datestr 中所設定的時間
-u : 顯示目前的格林威治時間
--version : 顯示版本編號
例子 :
顯示時間后跳行,再顯示目前日期 : date +%T%n%D 顯示月份與日數 : date +%B %d
顯示日期與設定時間(12:34:56): date--date 12:34:56 注意 :
當你不希望出現無意義的 0 時(比如說 1999/03/07),則可以在標記中插入18:40(00:03)minery pts/0 140.119.217.115 Mon Aug 14 17:22[husfV] [user]
說明 : 顯示系統中有那些使用者正在上面,顯示的資料包含了使用者 ID,使用的終端機,從那邊連上來的,上線時間,呆滯時間,CPU 使用量,動作等等。
把計 :
-h : 不要顯示標題列
-u : 不要顯示使用者的動作/工作
-s : 使用簡短的格式來顯示
-f : 不要顯示使用者的上線位置
-V : 顯示程式版本
名稱:/etc/aliases
使用權限:系統管理者
使用方式: 請用 newaliases 更新資料庫
說明:
sendmail 會使用一個在 /etc/aliases 中的檔案做使用者名稱轉換的動作。當 sendmail 收到一個要送給 xxx 的信時,它會依據 aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如 mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫 redlinux@link.ece.uci.edu 的 mailinglist,但實際上并沒有一個叫 redlinux 的使用者。實際 aliases 檔的內容是將送給這個使用者的信都收給 mailing list 處理程式負責分送的工作。
/etc/aliases 是一個文字模式的檔案,sendmail 需要一個二進位格式的 /etc/aliases.db。newaliases 的功能傳是將 /etc/aliases 轉換成一個 sendmail 所能了解的資料庫。范例:
# newaliases
下面命令會做相同的事,# sendmail-bi 相關命令:
mail, mailq, newaliases, sendmail ” mail [返回]
使用權限:所有使用者
使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2...] 說明:
mail 不僅只是一個指令,mail 還是一個電子郵件程式,不過利用 mail 來讀信的人應該很少吧!對于系統管理者來說 mail 就很有用,因為管理者可以用 mail 寫成 script,定期寄一些備忘錄提醒系統的使用者。
參數:
i 忽略 tty 的中斷訊號。(interrupt)I 強迫設成互動模式。(Interactive)
v 列印出訊息,例如送信的地點、狀態等等。(verbose)n 不讀入 mail.rc 設定檔。
s 郵件標題。
c cc 郵件地址。
b bcc 郵件地址。
范例:
將信件送給一個或以上的電子郵件地址,由于沒有加入其他的選項,使用者必須輸入標題與信件的內容等。而 user2 沒有主機位置,就會送給郵件伺服器的 user2 使用者。
mail user1@email.address
mail user1@email.address user2
將 mail.txt 的內容寄給 user2 同時 cc 給 user1。如果將這一行指令設成 cronjob 就可以定時將備忘錄寄給系統使用者。
mail-s 標題-c user1 user2 < mail.txt
mesg
使用權限 : 所有使用者
使用方式 : mesg [y|n]
說明 : 決定是否允許其他人傳訊息到自己的終端機介面把計
y : 允許訊息傳到終端機介面上。
n : 不允許訊息傳到終端機介面上。
如果沒有設定,則訊息傳遞與否則由終端機界面目前狀態而定。
例子 :
改變目前訊息設定,改成不允許訊息傳到終端機介面上 : mesg n
與 mesg 相關的指令有: talk,write,wall。
/etc/aliases 使用權限:系統管理者
使用方式: newaliases 說明:
sendmail 會使用一個在 /etc/aliases 中的檔案做使用者名稱轉換的動作。當 sendmail 收到一個要送給 xxx 的信時,它會依據 aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如 mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫 redlinux@link.ece.uci.edu 的 mailinglist,但實際上并沒有一個叫 redlinux 的使用者。實際 aliases 檔的內容是將送給這個使用者的信都收給 mailing list 處理程式負責分送的工作。
/etc/aliases 是一個文字模式的檔案,sendmail 需要一個二進位格式的 /etc/aliases.db。newaliases 的功能傳是將 /etc/aliases 轉換成一個 sendmail 所能了解的資料庫。
參數:沒有任何參數。范例:
# newaliases
下面命令會做相同的事,# sendmail-bi 相關命令:
mail, mailq, newaliases, sendmail
talk
使用權限 : 所有使用者
使用方式 :
talk person [ttyname]
說明 : 與其他使用者對談
把計 :
person : 預備對談的使用者帳號,如果該使用者在其他機器上,則可輸入 person@machine.name
ttyname : 如果使用者同時有兩個以上的 tty 連線,可以自行選擇合適的 tty 傳訊息
例子.1 :
與現在機器上的使用者Rollaend對談,此時 Rollaend 只有一個連線 : talk Rollaend
接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入 `talk jzlee`即可開始對談,結束請按 ctrl+c
例子.2 :與linuxfab.cx上的使用者Rollaend對談,使用pts/2來對談 : talk Rollaend@linuxfab.cx pts/2
接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入 `talk jzlee@jzlee.home`即可開始對談,結束請按 ctrl+c
注意 : 若螢幕的字會出現不正常的字元,試著按 ctrl+l 更新螢幕畫面。
wall
使用權限 : 所有使用者
使用方式 : wall [ message ] 使用說明:
wall 會將訊息傳給每一個 mesg 設定為 yes 的上線使用者。當使用終端機介面做為標準傳入時, 訊息結束時需加上 EOF(通常用 Ctrl+D)
例子 :
傳訊息“hi” 給每一個使用者 : wall hi
write
使用權限 : 所有使用者
使用方式 :
write user [ttyname]
說明 : 傳訊息給其他使用者
把計 :
user : 預備傳訊息的使用者帳號
ttyname : 如果使用者同時有兩個以上的 tty 連線,可以自行選擇合適的 tty 傳訊息
例子.1 :
傳訊息給 Rollaend,此時 Rollaend 只有一個連線 : write Rollaend
接下來就是將訊息打上去,結束請按 ctrl+c
例子.2 :傳訊息給 Rollaend,Rollaend 的連線有 pts/2,pts/3 : write Rollaend pts/2
接下來就是將訊息打上去,結束請按 ctrl+c
注意 : 若對方設定 mesg n,則此時訊席將無法傳給對方
kill
使用權限:所有使用者
使用方式: kill [-s signal |-p ] [-a ] pid...kill-l [ signal ]
說明:kill 送出一個特定的信號(signal)給行程 id 為 pid 的行程根據該信號而做特定的動作, 若沒有指定, 預設是送出終止(TERM)的信號
把計
-s(signal): 其中可用的訊號有 HUP(1), KILL(9), TERM(15), 分別代表著重跑, 砍掉, 結束;詳細的信號可以用 kill-l-p : 印出 pid , 并不送出信號
-l(signal): 列出所有可用的信號名稱
范例:
將 pid 為 323 的行程砍掉(kill): kill-9 323
將 pid 為 456 的行程重跑(restart): kill-HUP 456
nice
使用權限:所有使用者
使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...] 說明:以更改過的優先序來執行程式, 如果未指定程式, 則會印出目前的排程優先序, 內定的 adjustment 為 10, 范圍為-20(最高優先序)到 19(最低優先序)把計
-n adjustment,-adjustment,--adjustment=adjustment 皆為將該原有優先序的增加 adjustment--help 顯示求助訊息
--version 顯示版本資訊
范例:
將 ls 的優先序加 1 并執行 : nice-n 1 ls
將 ls 的優先序加 10 并執行 :
nice ls將 ls 的優先序加 10 并執行
注意 : 優先序(priority)為作業系統用來決定 CPU 分配的參數,Linux 使用『回合制(round-robin)』的演算法來做 CPU 排程,優先序越高,所可能獲得的 CPU時間就越多。
ps
使用權限:所有使用者
使用方式:ps [options] [--help] 說明:顯示瞬間行程(process)的動態
參數:
ps 的參數非常多, 在此僅列出幾個常用的參數并大略介紹含義
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
au(x)輸出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND USER: 行程擁有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的記憶體使用率
VSZ: 占用的虛擬記憶體大小
RSS: 占用的記憶體大小
TTY: 終端的次要裝置號碼(minor device number of tty)STAT: 該行程的狀態:
D: 不可中斷的靜止(通悸□□縝b進行 I/O 動作)R: 正在執行中
S: 靜止狀態
T: 暫停執行
Z: 不存在但暫時無法消除
W: 沒有足夠的記憶體分頁可分配
<: 高優先序的行程
N: 低優先序的行程
L: 有記憶體分頁分配并鎖在記憶體內(即時系統或捱A I/O)START: 行程開始時間
TIME: 執行的時間
COMMAND:所執行的指令
范例:
ps
PID TTY TIME CMD 2791 ttyp0 00:00:00 tcsh 3092 ttyp0 00:00:00 ps % ps-A
PID TTY TIME CMD 1 ? 00:00:03 init 2 ? 00:00:00 kflushd 3 ? 00:00:00 kpiod 4 ? 00:00:00 kswapd ? 00:00:00 mdrecoveryd.......% ps-aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3] root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd] root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod] root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]........pstree
使用權限:所有使用者
使用方式:
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user] pstree-V 說明:將所有行程以樹狀圖顯示, 樹狀圖將會以 pid(如果有指定)或是以 init 這個基本行程為根(root),如果有指定使用者 id , 則樹狀圖會只顯示該使用者所擁有的行程
參數:
-a 顯示該行程的完整指令及參數, 如果是被記憶體置換出去的行程則會加上括號
-c 如果有重覆的行程名, 則分開列出(預設值是會在前面加上 * 范例:
pstree init-+-amd |-apmd |-atd
|-httpd---10*[httpd] %pstree-p
init(1)-+-amd(447)|-apmd(105)|-atd(339)%pstree-c init-+-amd |-apmd |-atd
|-httpd-+-httpd | |-httpd | |-httpd | |-httpd....renice 使用權限:所有使用者
使用方式:renice priority [-p] pid...] [-g] pgrp...] [-u] user...]
說明:重新指定一個或多個行程(Process)的優先序(一個或多個將根據所下的參數而定)把計
-p pid 重新指定行程的 id 為 pid 的行程的優先序
-g pgrp 重新指定行程群組(process group)的 id 為 pgrp 的行程(一個或多個)的優先序
-u user 重新指定行程擁有者為 user 的行程的優先序
范例:
將行程 id 為 987 及 32 的行程與行程擁有者為 daemon 及 root 的優先序號碼加 1 : renice +1 987-u daemon root-p 32
注意 : 每一個行程(Process)都有一個唯一的(unique)id
top
使用權限:所有使用者
使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 說明:即時顯示 process 的動態
把計
d : 改變顯示的更新速度,或是在交談式指令列(interactive command)按 s
q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行
c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程(dead child process)的 CPU time 累積起來
s : 安全模式,將交談式指令取消, 避免潛在的危機
i : 不顯示任何閑置(idle)或無用(zombie)的行程
n : 更新的次數,完成后將會退出 top
b : 批次檔模式,搭配 “n” 參數一起使用,可以用來將 top 的結果輸出到檔案內
范例:
顯示更新十次后退出;top-n 10
使用者將不能利用交談式指令來對行程下命令 : top-s
將更新顯示二次的結果輸入到名稱為 top.log 的檔案里 : top-n 2-b < top.log
skill
使用權限:所有使用者 使用方式: skill [signal to send] [options] 選擇程序的規則
說明:
送個訊號給正在執行的程序,預設的訊息為 TERM(中斷), 較常使用的訊息為 HUP , INT , KILL , STOP , CONT ,和 0
訊息有三種寫法:分別為-9 ,-SIGKILL ,-KILL , 可以使用-l 或-L 已列出可使用的訊息。
一般參數:
-f 快速模式/尚未完成
-i 互動模式/ 每個動作將要被確認
-v 詳細輸出/ 列出所選擇程序的資訊
-w 智能警告訊息/ 尚未完成-n 沒有動作/ 顯示程序代號
參數:選擇程序的規則可以是, 終端機代號,使用者名稱,程序代號,命令名稱。
-t 終端機代號(tty 或 pty)-u 使用者名稱
-p 程序代號(pid)
-c 命令名稱 可使用的訊號:
以下列出已知的訊號名稱,訊號代號,功能。
名稱(代號)功能/ 描述
ALRM 14 離開
HUP 1 離開
INT 2 離開
KILL 9 離開/ 強迫關閉
PIPE 13 離開
POLL 離開
PROF 離開
TERM 15 離開
USR1 離開
USR2 離開
VTALRM 離開
STKFLT 離開/ 只適用于i386, m68k, arm 和 ppc 硬體
UNUSED 離開/ 只適用于i386, m68k, arm 和 ppc 硬體
TSTP 停止 /產生與內容相關的行為
TTIN 停止 /產生與內容相關的行為
TTOU 停止 /產生與內容相關的行為
STOP 停止 /強迫關閉
CONT 從新啟動 /如果在停止狀態則從新啟動,否則忽略
PWR 忽略 /在某些系統中會離開
WINCH 忽略
CHLD 忽略
ABRT 6 核心
FPE 8 核心
ILL 4 核心
QUIT 3 核心
SEGV 11 核心 TRAP 5 核心
SYS 核心 /或許尚未實作
EMT 核心 /或許尚未實作
BUS 核心 /核心失敗
XCPU 核心 /核心失敗
XFSZ 核心 /核心失敗
范例:
停止所有在 PTY 裝置上的程序
skill-KILL-v pts/*
停止三個使用者 user1 , user2 , user3 skill-STOP user1 user2 user3 其他相關的命令: kill
expr
使用權限:所有使用者
### 字串長度
shell>> expr length “this is a test” 14
### 數字商數
shell>> expr 14 % 9 5
### 從位置處抓取字串
shell>> expr substr “this is a test” 3 5 is is
### 數字串 only the first character shell>> expr index “testforthegame” e 2
### 字串真實重現
shell>> expr quote thisisatestformela thisisatestformela
tr
### 1.比方說要把目錄下所有的大寫檔名換為小寫檔名? 似乎有很多方式,“tr”是其中一種: #!/bin/sh
dir=“/tmp/testdir”;files=`find $dir-type f`;for i in $files do
dir_name=`dirname $i`;ori_filename=`basename $i`
new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null;#echo $new_filename;
mv $dir_name/$ori_filename $dir_name/$new_filename done
### 2.自己試驗中...lowercase to uppercase tr abcdef...[del] ABCDE...[del] tr a-z A-Z
tr [:lower:] [:upper:]
shell>> echo “this is a test” | tr a-z A-Z > www.tmdps.cnpress 使用權限:所有使用者
使用方式:compress [-dfvcV] [-b maxbits] [file...]
說明:
compress 是一個相當古老的 unix 檔案壓縮指令,壓縮后的檔案會加上一個.Z 延伸檔名以區別未壓縮的檔案,壓縮后的檔案可以以 uncompress 解壓。若要將數個檔案壓成一個壓縮檔,必須先將檔案 tar 起來再壓縮。由于 gzip 可以產生更理想的壓縮比例,一般人多已改用 gzip 為檔案壓縮工具。
參數:
c 輸出結果至標準輸出設備(一般指熒幕)
f 強迫寫入檔案,若目的檔已經存在,則會被覆蓋(force)v 將程式執行的訊息印在熒幕上(verbose)
b 設定共同字串數的上限,以位元計算,可以設定的值為 9 至 16 bits。由于值越大,能使用的共同字串就 越多,壓縮比例就越大,所以一般使用預設值 16 bits(bits)d 將壓縮檔解壓縮
V 列出版本訊息
范例:
將 source.dat 壓縮成 source.dat.Z,若 source.dat.Z 已經存在,內容則會被壓縮檔覆蓋。
compress-f source.dat
將 source.dat 壓縮成 source.dat.Z,并列印出壓縮比例。
-v 與-f 可以一起使用
compress-vf source.dat
將壓縮后的資料輸出后再導入 target.dat.Z 可以改變壓縮檔名。
compress-c source.dat > target.dat.Z
-b 的值越大,壓縮比例就越大,范圍是 9-16,預設值是 16。
compress-b 12 source.dat
將 source.dat.Z 解壓成 source.dat,若檔案已經存在,使用者按 y 以確定覆蓋檔案,若使用-df 程式則會自動覆蓋檔案。由于系統會自動加入.Z 為延伸檔名,所以 source.dat 會自動當作 source.dat.Z 處理。
compress-d source.dat compress-d source.dat.Z
lpd
使用權限: 所有使用者
使用方式:lpd [-l] [#port]
lpd 是一個常駐的印表機管理程式,它會根據 /etc/printcap 的內容來管理本地或遠端的印表機。/etc/printcap 中定義的每一個印表機必須在 /var/lpd 中有一個相對應的目錄,目錄中以 cf 開頭的檔案表示一個等待送到適當裝置的印表工作。這個檔案通常是由 lpr 所產生。
lpr 和 lpd 組成了一個可以離線工作的系統,當你使用 lpr 時,印表機不需要能立即可用,甚至不用存在。lpd 會自動監視印表機的狀況,當印表機上線后,便立即將檔案送交處理。這個得所有的應用程式不必等待印表機完成前一工作。
參數:
-l: 將一些除錯訊息顯示在標準輸出上。
#port: 一般而言,lpd 會使用 getservbyname 取得適當的 TCP/IP port,你可以使用這個參數強迫 lpd 使用指定的 port。
范例:
這個程式通常是由 /etc/rc.d 中的程式在系統啟始階段執行。
名稱 lpq
--顯示列表機貯列中未完成的工作 用法
lpq [l] [P] [user] 說明
lpq 會顯示由 lpd 所管理的列表機貯列中未完成的項目。
范例
范例 1.顯示所有在 lp 列表機貯列中的工作
# lpq-PlpRank Owner Job Files Total Size1st root 238(standard input)1428646 bytes
相關函數
lpr,lpc,lpd
lpr
使用權限: 所有使用者
使用方式:lpr [-P printer ]
將檔案或是由標準輸入送進來的資料送到印表機貯列之中,印表機管理程式 lpd 會在稍后將這個檔案送給適當的程式或裝置處理。lpr 可以用來將料資送給本地或是遠端的主機來處理。
參數:
-p Printer: 將資料送至指定的印表機 Printer,預設值為 lp。
范例:
將 www.tmdps.cn 供各位查閱!
進入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使用總結
三種模式,分別是一般模式、編輯模式 與 指令列命令模式
? 一般模式(命令模式): 這是執行vi后的缺省模式,此時鍵盤輸入當作命令命令有大小寫之區分
在這個模式中,你可以使用『上下左右』按鍵來移動光標,您可以使用『刪除字符』或『刪除整行』來處理檔案內容,也可以使用『復制、貼上』來處理您的文件數據。但是無法使用鍵盤輸入字符。
? 編輯模式: 使用 a、i、o、c、r、s 進入插入模式,用戶輸入的任何字符都被vi當做文件內容保存起來,按下 ESC 鍵即可回到 Command Mode
通常在 Linux 中,按下上述的字母時,在畫面的左下方會出現 INSERT 或 REPLACE 的字樣,才可以輸入任何字來輸入到您的檔案中!而如果要回到一般模式時,則必須要按下『Esc』這個按鍵即可退出編輯模式。
? 指令列命令模式:Last Mode(末行模式)
在 Command Line 按下 : 即可進入該模式,用來進行保存文件、打開文檔或環境的設定
命令有大小寫之分 在一般模式當中,輸入: 或 / 或 ? 就可以將光標移動到最底下那一行,在這個模式當中,可以提供您『搜尋資料』的動作,而讀取、存盤、大量取代字符、離開 vi、顯示行號 等等的動作則是在此模式中達成的!
新增(append)
a 從光標所在位置后面開始新增內容
A 從光標所在行最后面的地方開始新增內容。
插入(insert)
i 從光標所在位置前面開始插入內容
I 從光標所在行的第一個非空白字符前面開始插入資料。
開始(open)
o 在光標所在行下新增一行并進入輸入模式。
O 在光標所在行上新增一行并進入輸入模式。
一般模式說明
1、光標的移動
h左移一個字符l右移一個字符
j下移一行k上移一行
w,W跳至后一個字的開頭(W忽略標點)
b,B跳至前一個字的開頭(B忽略標點)
e移動到后一個字的末尾
^至本行第一個非空字符
$至行尾0至行首
H移動到當前窗口的第一列
M移動到當前窗口的中間列
L移動到視窗的最后一列)光標所在位置到下個句子的第一個字母
(光標所在位置到該句子的第一個字母
}光標所在位置到該段落的最后一個字母
{光標所在位置到該段落的第一個字母
nH將光標移到屏幕的第 n 行
nL將光標移到屏幕的倒數第 n 行
CTRL-d 向下半頁
CTRL-f 向下一頁
CTRL-u 向上半頁
CTRL-b 向上一頁
n-減號移動到上一行的第一個非空白字符,前面加上數字可以指定移動到以 上 n 行
n+加號移動到下一行的第一個非空白字符,前面加上數字可以指定移動到以下 n 行
2、刪除
x刪除光標所在字符
X刪除光標前面的字符
s刪除光標所在字符,并進入輸入模式
S刪除光標所在的行,并進入輸入模式
dd刪除光標所在的行
D從光標位置開始刪除到行尾
d與光標移動命令的組合3、修改
r修改光標所在字符,r 后接著要修改的字符。如,rc 可以用字符“ c ”替換光標所指向的當前字符
R進入替換狀態,新增內容會覆蓋原先內容,直到按 [ESC] 回到命令模式下為止
cc修改光標所在行
C修改從光標位置到該行末尾的內容
c與光標移動命令的組合4、復制和移動
yy復制當前行到內存緩沖區
nyy復制 n 行內容到內存緩沖區
y與光標移動的組合p將緩沖區的內容粘貼到光標的后面
P將緩沖區的內容粘貼到光標的前面
另:在末行模式下實現移動
:n1,n2 m n3 : 把 n1到n2 行內容搬到第 n3 行后
5、搜索字符串
/pattern移至下一個包含pattern的行
?pattern移至上一個包含pattern的行
/往下重復查找
?往上重復查找
n在同一方向重復查找
N在相反方向重復查找
/pattern/+n 移至下一個pattern所在行后的第n行
?pattern?-n 移至上一個Pattern所在行前的第n行
6、其他
u撤銷前一條命令的結果
末行模式
1、文件的保存和退出
:w保存:q退出:w!強制保存:q!強制退出:wq保存退出:wq!強制保存退出
2、字符串的替換
:s/str1/str2/用字符串 str2 替換行中首次出現的字符串 str1
:s/str1/str2/g用字符串 str2 替換行中所有出現的字符串 str1
:.,$ s/str1/str2/g用字符串 str2 替換正文當前行到末尾所有出現的字符串 str1:1,$ s/str1/str2/g用字符串 str2 替換正文中所有出現的字符串 str1:g/str1/s//str2/g功能同上
其他:
: n將光標移到第 n 行
編輯多個文件vifile1 file2 ?
:n編輯下一個文件
:e filename 編輯指定文件
第四篇:stata命令總結
表2-1: 回歸分析相關命令一覽
命令用途
anova 方差和協方差分析 heckman Heckman 篩選模型
intreg 離散型變量模型,包括Tobit、cnreg 和intreg ivreg 工具變量法(IV 或2SLS)
newey Newey-West 標準差設定下的回歸
prais 針對序列相關的Prais-Winsten, Cochrane-Orcutt, or Hildreth-Lu 回歸 qreg 分量回歸 reg OLS 回歸 sw 逐步回歸法
reg3 三階段最小二乘回歸
rreg 穩健回歸(不同于方差穩健型回歸,即White 方法)sureg 似無相關估計
svyheckman 調查數據的Heckman 篩選模型 svyintreg 調查數據的間斷變量回歸 svyregress 調查數據的線性回歸 tobit Tobit 回歸
treatreg treatment 效應模型 truncreg 截斷回歸
表2-2: 時間序列命令一覽
命令用途
clemao1 允許結構突變的單位根檢驗 zandrews dfuller dfgls pperron coin 單方程協整檢驗
dwstat 參考dwstat2 , durbina2 durbinh
表2-3: Panel Data 模型相關命令一覽I 命令模型
統計描述相關命令:
xtdes 變量類型,數據類型描述 xtsum 基本統計量 xttab 按表格形式列示 xtpattern 面板數據的模式 估計相關命令:
xtreg 面板數據模型(固定效應、隨機效應)
xtregar 含有AR(1)干擾項的固定效應和隨機效應面板數據模型
xtgls 截面-時序混合模型,可處理異方差、組內序列相關和組間相關性 xtpcse OLS or Prais-Winsten models with panel-corrected standard errors xtrchh Hildreth-Houck random coefficients models xtivreg 面板模型的工具變量或兩階段最小二乘法估計 xtabond Arellano-Bond(1991)線性動態面板數據模型估計
xtabond2 Arellano-Bover(1995)系統GMM 動態面板數據模型估計 xttobit Tobit 隨機效應面板模型
xtintreg Random-effects interval data regression models xtlogit Fe, Re, Pa logit models xtprobit Re, Pa probit models xtcloglog Re, Pa cloglog models xtpoisson Fe, Re, Pa Poisson models xtnbreg Fe, Re, Pa negative binomial models xtfrontier 面板隨機前沿模型
xthtylor Hausman-Taylor estimator for error-components models
表2-4: Panel Data 模型相關命令一覽II 命令模型
假設檢驗相關:
test Wald 檢驗,如時間效應聯合顯著性檢驗 xttest0 隨機效應檢驗 xttest1 面板序列相關檢驗 xttest2 ads xtserial Wooldridge 一階序列相關檢驗 xtab Arellano 面板一階序列相關檢驗 hausman Hausman 檢驗 面板單位根和協整相關: xtunit stata提供的檢驗方法
ipshin IPS(2003)面板單位根檢驗
levilin Levin,Lin和Chu(LLC, 2002)面板單位根檢驗 madfuller Sarno-Taylor(1998)面板單位根檢驗
xtfisher Maddala和Wu(1999),基于P 值的面板單位根檢驗
表2-5: Post-estimation Commands 命令名稱用途
adjust 列示預測結果的均質,適于多種回歸分析,可分組列示 estimates 估計結果的存儲、再顯示、列表比較等 hausman Hausman 模型識別檢驗
lincom 獲得參數的線性組合,在Logit 模型中可以獲得系數線性組合的OR 值 linktest 但方程link 識別檢驗,用y 對Oy 和Oy2 回歸 lrtest 似然比(LR)檢驗
mfx 計算邊際效應和彈性系數 nlcom 系數的非線性組合 predict 獲得擬合值、殘差等
predictnl 獲得非線性估計的擬合值、殘差等 test 線性約束的假設檢驗,Wald 檢驗 testnl 非線性約束的假設檢驗
vce 列示參數估計值的方差-協方差矩陣
表2-6: 二維圖種類一覽
圖形種類簡單描述 scatter scatterplot line line plot connected connected-line plot scatteri scatter with immediate arguments area line plot with shading bar bar plot spike spike plot dropline dropline plot dot dot plot rarea range plot with area shading rbar range plot with bars rspike range plot with spikes rcap range plot with capped spikes rcapsym range plot with spikes capped with symbols rscatter range plot with markers rline range plot with lines rconnected range plot with lines and markers tsline time-series plot tsrline time-series range plot mband median-band line plot mspline spline line plot lowess LOWESS line plot lfit linear prediction plot qfit quadratic prediction plot fpfit fractional polynomial plot lfitci linear prediction plot with CIs qfitci quadratic prediction plot with CIs fpfitci fractional polynomial plot with CIs function line plot of function histogram histogram plot kdensity kernel density plot 表2-7: 二維圖選項一覽
選項類別簡單描述
added line options draw lines at specified y or x values added text option display text at specified(y,x)value axis options labels, ticks, grids, log scales title options titles, subtitles, notes, captions legend option legend explaining what means what scale(#)resize text, markers, and line widths region options outlining, shading, aspect ratio, size aspect option constrain aspect ratio of plot region scheme(schemename)overall look by(varlist,...)repeat for subgroups nodraw suppress display of graph name(name,...)specify name for graph saving(filename,...)save graph in file advanced options difficult to explain 表2-9: 模擬分析相關命令一覽
命令用途備注 抽樣相關:
corr2data 產生具有指定相關性的數據僅適用于模擬相關分析 drawnorm invnorm(uniform())產生服從標準正態分布的隨機數函數,可調節均值和方差 matuniform(r,c)產生均勻分布函數
sample 從現有數據中進行非重復隨機抽樣參考bsample sim arma 產生服從ARIMA 過程的隨機變量需要下載 Bootstrap 相關: bootstrap bs bstat bsample MC 相關: simulate MC simulation jknife 類似于MC permute postfile 存儲MC 的結果 statsby exp list
第五篇:stata命令總結
stata11常用命令
注:JB統計量對應的p大于0.05,則表明非正態,這點跟sktest和swilk檢驗剛好相反; dta為數據文件; gph為圖文件; do為程序文件;
注意stata要區別大小寫; 不得用作用戶變量名:
_all _n _N _skip _b _coef _cons _pi _pred _rc _weight double float long int in if using with 命令:
讀入數據一種方式 input x y 1 4 2 5.5 3 6.2 4 7.7 5 8.5 end su/summarise/sum x 或 su/summarise/sum x,d 對分組的描述: sort group by group:su x %%%%% tabstat economy,stats(max)%返回變量economy的最大值
%%stats括號里可以是:mean,count(非缺失觀測值個數),sum(總和),max,min,range,%% sd,var,cv(變易系數=標準差/均值),skewness,kurtosis,median,p1(1%分位
%% 數,類似地有p10, p25, p50, p75, p95, p99),iqr(interquantile range = p75 – p25)_all %描述全部
_N 數據庫中觀察值的總個數。_n 當前觀察值的位置。_pi 圓周率π的數值。list gen/generate %產生數列 egen wagemax=max(wage)clear use by(分組變量)set more 1/0 count %計數
gsort +x(升序)gsort-x(降序)sort x 升序;并且其它變量順序會跟著改變 label var y “消費” %添加標簽 describe %描述數據文件的整體,包括觀測總數,變量總數,生成日期,每個變量的存儲類型(storage type),標簽(label)replace x5=2*y if x!=3 %替換變量值
replace age = 25 in 107 %令第107個觀測中age為25 rename y2 u %改變變量名
drop in 2 %刪除全部變量的第2行
drop if x==.刪去x為缺失值的所有記錄
keep if x<2 %保留小于2的數據,其余變量跟隨x改變 keep in 2/10 %保留第2-10個數
keep x1-x5 %保留數據庫中介于x1和x5間的所有變量(包括x1和x5),其余變量刪除
ci x1 x2,by(group)%算出置信區間,不過先前對group要先排序,即sort group;
%by的意思逐個進行
cii 12 3.816667 0.2710343, level(90)%已知均值,方差,計算90%的置信區間
cii 10 2 %obs=10,mean=2,以二項分布形式,計算置信區間 centile x,centile(2.5 25 50 75 97.5)%取分位數 correlate/corr x y z %相關系數
pwcorr x y,sig %給出原假設r=0的命令 %如果變量非服從正態分布,則spearman x y regress/reg mean year %回歸方程建立 reg y x,noconstant %無常數項 predict meanhat %預測擬合值 predict e,residual %得到殘差 estat hettest % 異方差檢驗
dwstat % Durbin-Watson自相關檢驗 vif % 方差膨脹因子
logit y x1 x2 x3(y取0或1,是被解釋變量,x1-x3是被解釋變量)%logit回歸
probit y x1 x2 x3(y取0或1,是被解釋變量,x1-x3是被解釋變量)%probit回歸
tobit y x1 x2 x3(y取值在0和1之間,是被解釋變量,x1-x3是被解釋變量)%tobit回歸
sktest e %殘差正態性檢驗 p>0.05則接受原假設,即服從正態分布; %% sktest是基于變量的偏度和斜度(正態分布的偏度為0,斜度為3)swilk x %基于Shapiro-Wilk檢驗
%%p值越小,越傾向于拒絕零假設,也就是變量越有可能不服從正態分布 xi %生成虛擬變量 tabulat gender,summ(math)%用gender指標對math進行分類,返回兩類math的mean、std、freq tabulate=tab %gen f=int((shengao-164)/3)*3+164 組距為3 tabulate 變量名 [, generate(新變量)missing nofreq nolabel plot ] %%%%% generate(新變量)// 按分組變量產生啞變量 nofreq // 不顯示頻數 nolabel // 不顯示數值標記 plot // 顯示各組頻數圖示 missing // 包含缺失值
cell // 顯示各小組的構成比(小組之和為 1)column // 按欄顯示各組之構成(各欄總計為 1)row // 按行顯示各組之構成(各行總計為 1)%%%%% 求和,求最小? mod(x,y)%求余數
means %返回三種平均值 di normprob(1.96)di invnorm(0.05)di binomial(20,5,0.5)di invbinomial(20,5,0.5)di tprob(10,2)di invt(10.0.05)di fprob(3,27,1)di invfprob(3,27,0.05)di chi2(3,5)di invchi2(3,0.05)stack x y z,into(e)%把三列合成一列 xpose,clear %矩陣轉置
append using d: 主站蜘蛛池模板: 亚洲欧美高清在线精品一区二区| 熟妇女人妻丰满少妇中文字幕| 99re66在线观看精品免费| 97人妻熟女成人免费视频色戒| 99久re热视频这里只有精品6| 精品午夜国产福利观看| 色综合久久久无码网中文| 久久久久亚洲精品天堂| 午夜精品久久久久9999高清| 嫩草伊人久久精品少妇av| 国产精品久久久久久麻豆一区| 国产片av片永久免费观看| 国产亚洲精久久久久久无码| 又色又爽又高潮免费视频国产| 国产欧美日韩视频一区二区三区| 国产精品欧美成人片| 亚洲综合电影小说图片区| 精品免费久久久久久久| 日韩a∨精品日韩在线观看| 国产av一区二区三区天堂综合网| 狠狠色综合激情丁香五月| 精品日韩亚洲av无码| 中文无码精品一区二区三区| 国产美女精品自在线拍免费| 欧美成人综合久久精品| 精品亚洲欧美视频在线观看| 精品国产第一国产综合精品| 秋霞午夜成人久久电影网| 亚洲欧美第一成人网站7777| 国产人碰人摸人爱免费视频| 国内精品国内精品自线一二三区| 日韩精品东京热无码视频| 狠狠色噜噜狠狠狠狠蜜桃| 精品久久久噜噜噜久久久| 人妻无码一区二区不卡无码av| 国精品人妻无码一区二区三区3d| 久久久国产精品一区二区18禁| 午夜精品久久久久久久久久久久| aaa少妇高潮大片免费看| 国产成人亚洲综合色婷婷| 99无码熟妇丰满人妻啪啪|