天天看点

vim文本编辑器

文本编辑器,字处理软件

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