文本編輯器,字處理軟件linux
1,vi,vim(vi improved)web
2,Emacs正則表達式
vim ,linux 模式化的編程器:
一、輸入模式
二、命令模式(編輯模式)
三、末行模式express
vim如何打開文件:
vim FILE 編程
vim +n FILE 讓光標處在第n行行首vim
vim +/PATTERN FILE +/PATTERN 正則表達式過濾字符串自己
session
不支持兩次打開同一編輯器,不然會報錯。多線程
vim如何關閉文件:
:wq 保存退出
:q! 不保存 退出
:q 沒有輸入內容,直接退出編輯器
a 轉換輸入模式,在當前光標處後面
A 當前光標行尾,轉換輸入模式
i 當前光標所在處轉化到輸入模式
I 行首轉換到輸入模式
o 開啓一個新行,在當前光標下一行開啓
O 在當前光標上一行開啓一個新行ide
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值,有兩種方式:、
一、nice -n N command 剛啓動一個命令的時候
二、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
fedora
for in {1..10}; do useradd $user grep "$user" |