文本編輯器,字處理軟體
1,vi,vim(vi improved)
2,Emacs
vim ,linux 模式化的程式設計器:
1、輸入模式
2、指令模式(編輯模式)
3、末行模式
vim如何打開檔案:
vim FILE
vim +n FILE 讓光标處在第n行行首
vim +/PATTERN FILE +/PATTERN 正規表達式過濾字元串本身
不支援兩次打開同一編輯器,否則會報錯。
vim如何關閉檔案:
:wq 儲存退出
:q! 不儲存 退出
:q 沒有輸入内容,直接退出
a 轉換輸入模式,在目前光标處後面
A 目前光标行尾,轉換輸入模式
i 目前光标所在處轉化到輸入模式
I 行首轉換到輸入模式
o 開啟一個新行,在目前光标下一行開啟
O 在目前光标上一行開啟一個新行
Esc鍵編輯模式轉換到輸入模式
: 編輯模式轉換到末行模式
兩下ESC
光标移動:h 左 j 下 k 上 l 右
w 跳轉到下個單詞詞首
e 調到前一個單詞詞尾(本單詞光标不在詞尾,跳轉到本單詞詞尾)
b 調到前一個單詞詞首(本單詞光标不在詞首,跳轉到本單詞詞首)
^ 行首第一個非空白字元
0 行首第一個絕對字元
$ 行尾
行間跳轉
G 10G 快速跳到第10行
G 調到檔案底部
:n 末行模式下敲:n 快速跳到第n行
如何時間翻屏:
Ctrl+f 往尾部翻一屏
Ctrl+b 往首部翻一屏
Ctrl+d 往尾部翻半屏
Ctrl+u 往首部翻半屏
編輯操作:
x 删除目前光标所在處的字元 5x 删除目前光标之後5個字元
d 删除指令
dd 删除光标所在行
ndd 删除光标所在行一直向下的n行
dw
de
db
d^
dG
末行模式也能進行删除:
ADDR1,ADDR2d
:1,8d
:8d
. 表示目前行
$ 表示最後一行
.,$-1 目前行到倒數第二行
改寫操作:
c
cc:删除光标所在行,并轉換至輸入模式
ncc: 删除光标所在行,并轉換至輸入模式
c$ 删除光标所在位置到行尾
c0 删除光标所在位置至行首
ncw
ncb
nce
複制操作:
y
yy
nyy
y$,y0
3yw 複制光标後三個字元
粘貼:
小寫p 複制的行,目前光标所在行的下面粘貼
大寫P 複制行,目前光标所在行的上面粘貼
撤銷指令:
u (undo) 撤銷上一次的操作 預設儲存50次操作
U 撤銷緩沖區裡的操作
撤銷上一次的撤消操作:
Ctrl+r
. 重複上一次的操作
r 把上一個字元替換成r後的字元
用法:a
r A
可視化模式
v小寫 按字元選中
V大寫 按行選中
如何一次打開多個檔案:
vim FILE1 FILE2 FILE3
在多個檔案之間跳轉:
跳轉到第一個 first
跳轉到前一個 prev
跳轉到下一個 next
跳轉到最後一個 last
多一個檔案實作分頁檢視
上下分頁:
vim -o 檔案名
視窗間切換:Ctrl w arrow
左右分頁:
vim -O
對一個檔案進行視窗拆分:
Ctrl+w,s 水準拆分
Ctrl+w,v 垂直拆分
設定vim的工作特征:
末行模式:set nu 顯示行号
:set nonu 取消行号顯示
定義縮進:
末行模式:set ai
:set noai
文法高亮(顔色顯示)
:syntax on
:syntax off
全局配置:
/etc/vimrc
個人設定:
~/.vimrc
搜尋具有特色特征的字元串:
/PATTERN
?PATTERN 從尾部到首部搜尋
查找并替換:
在末行模式下使用s指令來實作
:ADDR1,ADDR2s/PATTERN/string/g全局替換(同一行中的相同内容)i
global:
ignore-case:
s/ab/AR/g
m,n
.,80
.,+20
%s@ftp://instructor.example.com/pub@http://192.168.0.254/yum@g 把ftp替換成hettp
%s@ @ @g 中間@是分隔符 g表示全局替換 %s表示從第一行到最後一行
vimtutor 這裡有vim的教程 可以打開看看
程序 Process: 計算資源的配置設定機關
PID 記憶體結構的組成部分
cpu:32bit 64bit
cell
文本編輯器:
IO密集型:
cpu密集型:
程序狀态:
運作态
就緒态
睡眠态:可中斷睡眠;不可中斷睡眠
停止态:由于外力的作用
僵死态:zombie
init,1
父process--》子process
程序狀态之間怎麼轉換:
pstree 程序樹
persona
security context
ps指令:
-e 顯示所有程序(預設不加-e 隻顯示前台程序(前台是那些某個tty相關的程序;背景是跟tty無關))
-u [USER] 顯示跟使用者相關的程序
a 所有跟終端相關的程序
x 表示所有和終端無關的程序
-f 完全格式的清單
-F prints extra information
-axo pid,%cpu
ps aux
ps aus | grep sendmail
ps aus | wc -l
ps -eF
ps -ef
加了中括号的表示這是一個核心線程
ps ax中的STAT
S:處于睡眠 sleeping
s:會話的上司程序 session leader
<:high priority 高優先級
N:low priority 低優先級
l:多線程程序 multithread
+:前台程序組中的程序
D:不可中的的睡眠
S:可中斷的睡眠
R:可以運作 running or runable
T:停止态stopped
Z:僵死态
pgrep:
-U 跟使用者相關的特定程序
-G 跟組相關的特定程序
-v 顯示比對不到的程序 反向過濾
pidof 查找正在運作的程序的程序号
top
-d N 延遲
pstree
程序間通信:IPC
通過信号
通過共享記憶體
/proc
信号:
man 7 singal
kill -l
mywebserver /etc/mywebserver.conf
1 表示信号
SIGHUP
HUP
SIGINT
SIGKILL
SIGCONT
19SIGSTOP 讓對方處于停止态
kill\killall
kill -singal PID
httpd
killall -signal command
kill 123 預設信号是15
kill -HUP httpd
pkill
kill 1
kill %1
如何改變系統的優先級:
動态優先級:核心會根據動态特征獨立控制的優先級(0-99) 數字越小,優先級越高
靜态優先級:(100-139)
nice值:-20-19
啟動系統的nice值0,對應優先級是120
調整一個系統的nice值,有兩種方式:、
1、nice -n N command 剛啟動一個指令的時候
2、renice N PID 調整某個程序的PID
作業控制:
作業的運作方式:
前台運作
背景運作
前台--》背景:停止運作
Ctrl+z
将程序從前台送到背景(讓送往背景并停止了的程序在背景繼續運作):
bg[%jobnum]
背景送到前台:
fg[%jobnum]
作業号碼:
fg %2
jobs 檢視目前程序
COMMAND &
man nohup,tty
nohup COMMAND &
指令或腳本的退出狀态:
0-255
正确:0
失敗:1-255
1
2
7 被系統預留
$? 狀态碼
exit 8 定義退出的錯誤碼是8
exit 0-255
表達式之間的邏輯關系:
!expression
expression1 && expression2
兩者都為真 才真
是以判斷第一個是假,一定是假
這就是短路操作
expression1 || expression2
真 或 假
!0=1
!1=0