本文共 3574 字,大约阅读时间需要 11 分钟。
vim非图形化编辑器
vimtutor :官方帮助文档,退出:shift+zz
1. vim 文件名
如果文件存在,则打开这个文本,如果不存在,则创建新的文本,并且打开
编辑模式 输入的所有字符都会被编辑到文本中
命令模式 执行一些简单的命令,命令不可见
末行模式 执行一些复杂的命令,命令可见。一般在最后一行。
当使用vim进入文本的时候,默认就是命令模式
命令模式进入到编辑模式: a 、i、 o、 A、 I 、O、 insert 按键 是插入和替换
注: a 、i、 o可在文本中间插入,A、 I 、O 在文本末尾插入(进入后可以移动到中间操作文本)
编辑模式到命令模式:ESC
末行模式:处于编辑模式下不能直接进入到末行模式,要进入到末行模式,需要先进入到命令模式,再进入末行模式
命令模式到末行模式 :(执行一些复杂指令) ? /
末行模式到命令模式:ESC
末行模式的一些命令:
:w 保存
:wq保存并退出
:x保存并退出
:q!不保存退出
:x! 强行写入(只用于本用户)
对于某些文件,尤其是系统配置文件,可以使用view命令,以只读模式打开文本
在末行模式下:set nu 输出行号
命令模式下的定位:
快速定位第一行:gg
快速定位到最后一行:G
快速到某一行:行号G
0 定位到光标所在行的行首
^ 定位到光标所在行的行首(非空字符)
$ .....................行尾
行数 enter .......光标所在行的 下第几行
H .........当前页首行
L ................当前页末行
M ................当前页中间一行
末行模式的定位:
:n 按下enter 快速定位到n行
复制 y命令模式:
复制当前所在行:yy
p 粘贴光标所在行的下一行
P 。。。。。。。。所在行
nyy 复制光标所在行到第n行
ygg 复制文本首行到光标所在行
yG 。。。。末行。。。。。。
y0
y^
y$
删除:
命名模式:
x 删除光标所在位置的字符
X删除光标所在位置的前一个字符
末行模式:
:起始行号,结束行号y
删除 d 剪切 c
命令模式:
dd cc 都可以删除所在的行,用p粘贴。cc删除一行之后进入编辑模式
dd 删除一行之后 还是命令模式
dgg
dG
d^
d0
d$
x 删除光标所在的位置字符
X 。。。。。。。。。前一个字符
3.1替换
末行模式
替换s
指令格式:
:n1,n2key/old/new/flag
n1 起始行
n2 结束行
key 关键字
old 原来的字符串
new 新的字符串
flag 查询的标志
例子01:
全文将oldwang替换为newwang,g表示全文
1,34s/oldwang/newwang/g
或 %s/oldwang/newwang/g
例子02(选择替换):
%s/oldwang/newwang/gc
y替换
n不替换
a 后面全部替换
q后面全部不替换
例子03:
:s/candle/student/g 只替换命令行模式下所在的一行
例子04:
13,21/^/#/g 13行到21行开头加#
13,21/$/;/g 13行到21行末尾加;
转义字符 \
13,21s/^/\/\//g 13行到21行开头加//
16,18s/one\|two/three/g one 或者two 替换成 three
16,18s/three//g 删除three
3.2查询
查询(命令模式)
/ 字符串 从前往后
? 字符串 从后往前
按n 查找下一个字符串
4快捷方式
视图块:
插入
ctrl+v 进入到视图块模式 选择需要操作的块(按上下左右键选择)
按下I 进入到编辑模式 只需要编辑光标所在的行即可
编辑完毕之后,按下ESC之后立即生效
删除块:
ctrl+v 进入到视图块模式 选择需要操作的块
按下x即可删除
进入视图块
u 小写
U 大写
全文拷贝
ggVG
快速插入多个字符
命令模式
nic 按下ESC
n是个数
i 进入编辑模式
c 要打印的内容
比如 :6ic 就是打印6个c
撤销和反撤销
u 撤销前一步的操作
3u 撤销前3部的操作
ctrl+r 反撤销
保存并退出
shift+zz或者ZZ
家目录下(设置行号和tab键的字符)
vim ~/.vimrc
三 遇到问题
当用vim打开一个文本,会自动生成一个.swp文件
如果一个文件有一个对应的 .文件名.swp
此时是恢复模式
如果是正常退出,那么.文件名.swp 会被自动删除
vim -r 文件名 可以恢复文件
恢复之后,对应的.文件.swp 并不会删除,还需要手动删除
rm -rf .swp 文件
-rw-rw-r--. 1 candle candle 977 Sep 19 14:09 test.txt
-rw-rw-r-- 10个字符 文件权限
- 第一列表示文件的属性
- 普通文件
d 目录
l 软连接
c 字符设备
d 块设备
9个字符,每三个为一组,表示文件的权限
第一组,代表文件的所有者 u
第二组,文件所属组 g
第三组,其他人 o
可读 r
可写 w
可执行 x
没有对应权限 -
例子:
使用字母修改
chmod u-r,u-w a.txt 减少权限
chmod u+x test.txt 增加权限
chmod u+x,g+x t1.c
对于目录来说
可读 可以获取该目录下有哪些文本,至于该目录下文本详细信息需要有可执行的权限
可写 可以在该目录下创建文件
可执行 可以进入到该目录
第二列 数字 针对不同的文件代表的意思不一样
-rw-rwxrw-. 1 hwua hwua 6310 Dec 17 08:41 a.out
- 硬连接的数量
d 该目录下的目录数
第三列 所有者
第四列 所属组 默认每个普通用户,都会有一个同名的组
第五列 文件的大小
第六列 时间戳
root 超级用户
普通用户以root的身份执行某些命令
su 切到root
sudo 该条指令暂时以root用户身份去执行
普通用户添加sudo:只能执行某个命令
1.su 切换到root用户
2.chmod u+w /etc/sudoers 修改权限
3.修改 /etc/sudoers 99行 用户名 ALL=(ALL) ALL
4.chmod u-w /etc/sudoers
5.exit
测试:在跟目录下创建文件夹
[hwua@localhost /]$ sudo mkdir mytest
添加用户:
sudo useradd wangfutai 添加用户
sudo passwd wangfutai 添加密码123
修改文件的所有者和所属组(hwua和wangfutai用户公用一个tmp,把文件放到tmp下就可以修改所有者和所属组)
sudo chown 用户:所属组 文件名
sudo chown -R 用户:所属组 文件名
删除用户以及相关的数据:
sudo userdel -f 用户名(不完全删除用户,保留用户的数据,home目录有用户信息)
sudo userdel -rf 用户名 (彻底删除用户,home目录下没有信息)
a.查询本机所有安装的软件
yum list installed
b.查询本机是否安装了gcc软件
yum list installed |grep gcc
c.查询库是否有软件
yum search gcc
d.从指定的仓库中安装软件
sudo yum install gcc-c++.x86_64
e.卸载软件
sudo yum remove gcc-c++.x86_64
f.安装软件 默认是查询安装 强制安装
sudo yum -y install gcc-c++.x86_64
2.通过安装包安装
1).rmp
a.查询安装包
rpm -qa | grep jdk
b.安装rpm包
sudo rpm -ivh jdk-8u172-linux-x64.rpm
c.卸载 无依赖卸载
rpm -qa | grep jdk
sudo rpm -e --nodeps jdk1.8-1.8.0_172-fcs.x86_64
2).bin
解压 添加环境变量
3).source 源码包
编译源码
添加环境变量
是一个.tgz包,解压之后,把bin下二进制,添加到环境变量中。
优点:有利于集中化的管理
转载地址:http://krjxi.baihongyu.com/