chapter 2 基本概念及操作
touch file
touch为命令,可一次性创建多个文件,此为创建一个名为file的文件
cd /etc/
进入一个目录
pwd
查看当前所在目录
重要快捷键:
-
[Tab]
命令补全 -
[Ctrl+c]
强行终止当前程序 -
[Ctrl+d]
键盘输入结束或退出终端 -
[Ctrl+s]
暂停当前程序,暂停后按下任意键恢复
man
获取某个命令的说明和使用方式的详细介绍,man man为查看 man 命令本身的使用方式
man n ls (n为数字1~8):查看相应区段的内容
sudo apt-get update
用来更新软件源
sudo apt-get install sysvbanner
安装指定软件
- 安装banner命令
- 不同发行版本的Linux安装软件的命令是不一样的
chapter3 用户及文件权限管理
whoami
- 打开当前伪终端的用户的用户名
- who命令其他参数 -a:打印全部;-b:打印死掉的进程;-m:同am i,mom likes;
- -q:打印当前登录用户数及用户名;-u:打印当前登录用户登录信息;-r:打印运行等级
sudo adduser lilei
新建一个叫 lilei 的用户
su -l lilei
切换登录用户
groups shiyanlou
查看用户所属用户组
cat /etc/group | sort
cat:读取指定文件的内容并打印到终端输出;| sort 表示将读取的文本进行一个字典排序再输出
su shiyanlou
groups lilei
sudo usermod -G sudo lilei
groups lilei
默认情况下新创建的用户是不具有root权限也不在 sudo用户组,可以让其加入sudo用户组从而获取root权限
sudo deluser lilei --remove-home
删除用户
ls
列出并显示当前目录下的文件
.
当前目录
..
上一级目录
su lilei
cd /home/lilei
touch iphone6
sudo chown shiyanlou iphone6
变更文件所有者
echo "echo \"hello shiyanlou\" " > iphone6
往文件里加内容
chmod 600 iphone6
修改权限,也可以用 chmod go-rw iphone6修改,g o u分别表示group、others、user\
chapter4 linux目录结构及文件基本操作
cp test ./father/son/grandson
- 将创建的“ test ”文件复制到“ /home/shiyanlou/father/son/grandson ”目录中
- 也可以用
cp -r father family
rm test
删除文件, rm -f test
强制删除
rm -r family
删除目录
mv
源目录文件 目的目录 - 移动文件
mv
旧的文件名 新的文件名 - 重命名文件
cat
正序显示 tac
倒序显示
file /bin/ls
查看文件类型
chapter5 环境变量与文件查找
搜索文件相关命令 whereis
,which
, find
,locate
有时需手动执行一次updatedb
命令再用locate
搜索,可用来查找指定目录下的不同文件类型
locate /etc/sh
查找 /etc 下所有以 sh 开头的文件。-c参数只统计数目,-i忽略大小写进行查找
通常使用 which 来确定是否安装了某个指定的软件
find
的第一个参数是要搜索的地方,基本格式为find [path] [option] [action]
find /etc/ -name interfaces
去 /etc/ 目录下面 ,搜索名字叫做 interfaces 的文件或者目录
与时间相关的命令参数
-atime
最后访问时间
-ctime
最后修改文件内容的时间
-mtime
最后修改文件属性的时间
-mtime n
:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
-mtime +n
:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n
:列出在 n 天之内(包含 n 天本身)被修改过的文件
-newer file
:file 为一个已存在的文件,列出比 file 还要新的文件名
chapter6 文件打包与压缩
zip
压缩打包文件
zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop
- 将目录 /home/shiyanlou/Desktop 打包成一个文件
- -r 参数表示递归打包包含子目录的全部内容
- -q 参数表示为安静模式,即不向屏幕输出信息
- -o,表示输出文件,需在其后紧跟打包输出文件名
- 使用 -e 参数可以创建加密压缩包
- -d 指定路径
压缩级别-[1-9],1 表示最快压缩但体积大,9 表示体积最小但耗时最久
unzip解压zip文件
unzip -q shiyanlou.zip -d ziptest
使用安静模式将文件解压到指定目录
tar打包工具,实现了对 7z、gzip、xz、bzip2 等工具的支持
·tar -cf shiyanlou.tar /home/shiyanlou/Desktop·
- 创建一个 tar 包
- -c 表示创建一个 tar 包文件
- -f 用于指定创建的文件名,件名必须紧跟在 -f 参数之后
- -C 指定路径
mkdir tardir
tar -xf shiyanlou.tar -C tardir
解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数)
使用其它的压缩工具创建或解压相应文件只需要更改一个参数
.tar.gz -z
.tar.xz -J
tar.bz2 -j
chapter7 文件系统操作与磁盘管理
df, du, mount命令的使用
磁盘相关知识学习
df 查看磁盘的容量
du 查看目录的容量
du -h -d 0 ~ # 只查看1级目录的信息
du -h -d 1 ~ # 查看2级
du -h 同--human-readable 以K,M,G为单位,提高信息的可读性
du -a 同--all 显示目录中所有文件的大小
du -s 同--summarize 仅显示总计,只列出最后加总的值
chapter8 Linux下的帮助命令
内建命令与外部命令之分
help, man, info的使用以及区别
用type命令区分命令是内建的还是外部的
chapter9 linux任务计划crontab
cron -f &
启动crontab
crontab -e
添加一个计划任务
crontab -l
查看添加了哪些任务
ps aux | grep cron 或 pgrep cron
查看是否在后台启动
tail -f filename
显示filename文件里后十行内容,tail查看文件内容,-f自动更新内容
crontan -r
删除任务
crontab表达式:
* * * * * commond
- 前五个星号分别表示 分 时 日 月 周,commond表示要操作的命令
- 分(1-59)(或/1表示每分钟)
- 时(1-23)(0表示0点)
- 日(1-31)
- 月(1-12)
- 周(1-6)(0表示周日)
chapter10 命令执行顺序控制与管道
&&用来实现选择性执行,表示如果前面的命令执行结果(非内容,是执行状态)返回0则执行后面的,否则不执行
可以从?≠0)时则执行后面的
可以结合着&&和||来实现一些操作
管道:将前面每一个进程的输出直接作为下一个进程的输入
ls -al /etc | less
将ls命令的输出作为less命令的输入
cut命令:打印每一行的某一字段
cut /etc/passwd -d ':' -f 1,6
打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段
cut /etc/passwd -c -5
前五个(包含第五个)
cut /etc/passwd -c 5-
前五个之后的(包含第五个)
cut /etc/passwd -c 5
第五个
cut /etc/passwd -c 2-5
2到5之间的(包含第五个)
grep命令:在文本中或 stdin 中查找匹配字符串
一般形式 grep [命令选项]... 用于匹配的表达式 [文件]...
grep -rnI "shiyanlou" ~
-r 参数表示递归搜索子目录中的文件,-n表示打印匹配项行号,-I表示忽略二进制文件
export | grep ".*yanlou$"
查看环境变量中以"yanlou"结尾的字符串,$表示一行的末尾
wc命令:简单小巧的计数工具,用于统计并输出一个文件中行、单词和字节的数目
分别只输出行数、单词数、字节数、字符数和输入文本中最长一行的字节数:
wc -l /etc/passwd
行数
wc -w /etc/passwd
单词数
wc -c /etc/passwd
字节数
wc -m /etc/passwd
字符数
wc -L /etc/passwd
最长行字节数
具体数目是由字符编码决定的
ls -dl /etc/*/ | wc -l
结合管道,统计 /etc 下面所有目录数
sort排序命令:将输入按照一定方式排序再输出
cat /etc/passwd | sort
默认为字典排序
cat /etc/passwd | sort -r
反转排序
cat /etc/passwd | sort -t':' -k 3
按特定字段排序
-t指定字段的分隔符,这里以":"作为分隔符;-k 字段号用于指定对哪一个字段进行排序
cat /etc/passwd | sort -t':' -k 3 -n
照数字排序就要加上-n参数
uniq去重命令:用于过滤或者输出重复行
...| uniq -dc
输出重复过的行(重复的只输出一个)及重复次数
...| uniq -D
输出所有重复的行
chapter11 简单的文本处理
常见文本处理命令;如何简单处理文本
tr
用来删除一段文本信息中的某些文字或者将其进行转换
-d
删除和set1匹配的字符,-s
去除set1指定的在输入文本中连续并重复的字符
echo -e
参数处理特殊字符
若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符
echo 'hello shiyanlou' | tr -d 'olh'
删除 "hello shiyanlou" 中所有的'o','l','h'
echo 'hello' | tr -s 'l'
将"hello" 中的ll,去重为一个l
echo 'input some text here' | tr '[:lower:]' '[:upper:]'
将输入文本全部转换为大写或小写输出,也可以简单的写作'[a-z]' '[A-Z]'
col
将Tab换成对等数量的空格键,或反转这个操作
-x 将Tab转换为空格,-h 空格转换为Tab(默认选项)
join
将两个文件中包含相同内容的那一行合并在一起
-t 指定分隔符,默认为空格
-i 忽略大小写的差异
-1 指明第一个文件要用哪个字段来对比,默认对比第一个字段
-2 指明第二个文件要用哪个字段来对比,默认对比第一个字段
paste
在不对比数据的情况下简单地将多个文件合并一起,以Tab隔开
-d 指定合并的分隔符,默认为Tab
-s 不合并到一行,每个文件为一行
chapter12 数据流重定向
重定向怎么用;文件描述符(0,1,2)
文件描述符在形式上是一个非负整数,实际上是一个索引值
指向内核为每一个进程所维护的该进程打开文件的记录表
文件描述符 设备文件 说明
0 /dev/stdin 标准输入
1 /dev/stdout 标准输出
2 /dev/stderr 标准错误
cat
配合重定向能够生成文件并追加操作(收藏资料详解)
重定向:将原本输出到标准输出的数据重定向到一个文件中
将标准错误重定向到标准输出,再将标准输出重定向到文件,注意要将重定向到文件写到前面
cat Documents/test.c hello.c >somefile 2>&1
将标准错误重定向到标准输出,再将标准输出重定向到文件,要将重定向到文件写到前面
cat Documents/test.c hello.c &>somefilehell
或者只用bash提供的特殊的重定向符号"&"将标准错误和标准输出同时重定向到文件
应在输出重定向文件描述符前加上&,否则shell会当做重定向到一个文件名为1的文件中
echo 'hello shiyanlou' | tee hello
使用tee命令同时重定向到多个文件,cat hello:hello shiyanlou
exec使用指定的命令替换当前的 Shell,用一个进程替换当前进程,或者指定新的重定向
exec 1>somefile
使用exec替换当前进程的重定向,将标准输出重定向到一个文件
chapter13 正则表达式基础
grep, sed, awk的用法;掌握正则表达式符号和语法
正则表达式通常缩写成regex,单数有 regexp、regex,复数有 regexps、regexes、regexen
grep
支持三种正则表达式引擎,分别用三个参数指定
-E POSIX扩展正则表达式,ERE
-G POSIX基本正则表达式,BRE
-P Perl正则表达式,PCRE
| 表示选择,例如 boy|girl 可以匹配 boy 或者 girl
- 表示前面的字符必须出现至少一次(1次或多次),例如goo+gle可以匹配gooogle,goooogle
? 表示前面的字符最多出现一次(0次或1次),例如colou?r可以匹配color或者colour
- 表示前面的字符出现n次(0123...),例如0*42可以匹配42,042,0042..
gr(a|e)y等价于gray|grey
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
{n} 非负整数。匹配确定的n次
{n,} 非负整数。至少匹配n次。o{1,}等价于“o+”。o{0,}则等价于“o*”
{n,m} 非负整数,其中n<=m。最少匹配n次且最多匹配m次。
. 匹配除\n之外的任何单个字符
(pattern) 匹配pattern并获取这一匹配的子字符串
[xyz] 匹配所包含的任意一个字符
[^xyz] 匹配未列出的任意字符
[a-z] 匹配指定范围内的任意字符
优先级为从上到下从左到右,依次降低:
\ 转义符
(), (?:), (?=), [] 括号和中括号
*、+、?、{n}、{n,}、{n,m} 限定符
^、$、\任何元字符 定位点和序列
|
grep常用参数
-b 将二进制文件作为文本来进行匹配
-c 统计以模式匹配的数目
-i 忽略大小写
-n 显示匹配文本所在行的行号
-v 反选,输出不匹配行的内容
-r 递归匹配查找
-A n n为正整数,表示after的意思,除了列出匹配行之外,还列出后面的n行
-B n n为正整数,表示before的意思,除了列出匹配行之外,还列出前面的n行
--color=auto 将输出中的匹配项设置为自动颜色显示
使用基本正则表达式,BRE
echo -e '1234\nabcd' | grep '[a-z]'
grep默认是区分大小写的,这里将匹配所有的小写字母
echo -e '1234\nabcd' | grep '[0-9]'
将匹配所有的数字
echo -e '1234\nabcd' | grep '[[:digit:]]'
将匹配所有的数字
echo -e '1234\nabcd' | grep '[[:lower:]]'
将匹配所有的小写字母
echo -e '1234\nabcd' | grep '[[:upper:]]'
将匹配所有的大写字母
echo -e '1234\nabcd' | grep '[[:alnum:]]'
将匹配所有的字母和数字,包括0-9,a-z,A-Z
echo -e '1234\nabcd' | grep '[[:alpha:]]'
将匹配所有的字母
[:blank:] 代表空白键与 [Tab] 按键两者
[:cntrl:] 代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:graph:] 除了空白字节 (空白键与 [Tab] 按键) 外的其他所有按键
[:print:] 代表任何可以被列印出来的字符
[:punct:] 代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $... "
[:space:] 任何会产生空白的字符,包括空白键, [Tab], CR 等等
[:xdigit:] 代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字节
使用扩展正则表达式,ERE,需要加上-E参数,或使用egrep
echo -e 'zero\nzo\nzoo' | grep -E 'zo{1}'
只匹配"zo"
echo -e 'zero\nzo\nzoo' | grep -E 'zo{1,}'
匹配以"zo"开头的所有单词
echo -e 'www.shiyanlou.com\nwww.baidu.com\nwww.google.com' | grep -E 'www\.(shiyanlou|google)\.com'
匹配"www.shiyanlou.com"和"www.google.com"
sed流编辑器,用于过滤和转换文本的流编辑器
sed [参数]... [执行命令] [输入文件]...
-n 安静模式,只打印受影响的行,默认打印输入数据的全部内容
-e 用于在脚本中添加多个执行命令一次执行,在命令行中执行多个命令通常不需要加该参数
-f filename 指定执行filename文件中的命令
-r 使用扩展正则表达式,默认为标准正则表达式
-i 将直接修改输入文件内容,而不是打印到标准输出设备
sed -i 's/sad/happy/g' test # g表示全局范围
sed -i 's/sad/happy/4' test # 4表示指定行中的第四个匹配字符串
AWK是一种用于处理文本的编程语言工具
awk所有的操作都是基于pattern(模式)—action(动作)对来完成的
pattern {action}
在一个完整awk操作中,这两者可以只有其中一个
如果没有pattern则默认匹配输入的全部文本,如果没有action则默认为打印匹配内容到屏幕
awk处理文本的方式,是将文本分割成一些“字段”,然后再对这些字段进行处理
默认情况下,awk以空格作为一个字段的分割符
chapter14 linux下软件安装
(适用于ubuntu,redhat和centos使用rpm)
APT是Debian及其派生发行版的软件包管理器,可以安装在支持RPM的系统管理RPM包
这个包管理器包含以 apt- 开头的多个工具如 apt-get apt-cache apt-cdrom 等,在Debian系列的发行版中使用
apt-get 是用于处理 apt包的公用程序集,用于在线安装、卸载和升级软件包等
install 其后加上软件包名,用于安装一个软件包
update 从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表
upgrade 升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update
dist-upgrade 解决依赖关系并升级(存在一定危险性)
remove 移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件
autoremove 移除之前被其他软件包依赖,但现在不再被使用的软件包
purge 与remove相同,但会完全移除软件包,包含其配置文件
clean 移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/
autoclean 移除已安装的软件的旧版本软件包
apt-cache search softname1 softname2...
apt-cache 针对本地数据进行相关操作的工具
dpkg
被用于安装、卸载和供给和 .deb 软件包相关的信息
-i 安装指定deb包
-R 后面加上目录名,用于安装该目录下的所有deb安装包
-r remove,移除某个已安装的软件包
-I 显示deb包文件的信息
-s 显示已安装软件的信息
-S 搜索已安装的软件包
-L 显示已安装软件包的目录信息
-f 修复依赖关系的安装
chapter15 Linux进程概念
chapter16 linux进程管理
查看进程的运行状态;进程的结束控制;进程的执行顺序
top能实时查看系统的一些关键信息的变化
NICE 值是静态优先级,为用户空间的一个优先级值,取值范围-20至19,-20优先级最高,0 默认,19优先级最低
PR 值表示 Priority 值,叫动态优先级,是进程在内核中实际的优先级值。取值范围 0-139,值越小优先级越高
PR = 20 + (-20 to +19),这里的 -20 to +19 便是nice值
q 退出程序
ps
F 进程的标志,为1表示此子程序只是fork但没有执行exec,为 4 表示此程序使用超级管理员root权限
TPGID栏写着-1的都是没有控制终端的进程,也就是守护进程
STAT表示进程的状态
-l 参数可以显示自己这次登录的 bash 相关的进程信息罗列出来
pstree 可以很直接的看到相同的进程数量,主要可以看到所有进程之间的相关性
pstree -up
-A # 各程序树之间以 ASCII 字元來連接;
-p # 同时列出每个 process 的 PID;
-u # 同时列出每个 process 的所屬账户名称。
当一个进程结束的时候或者要异常结束的时候
会向其父进程返回一个或者接收一个 SIGHUP 信号而做出的结束进程或者其他的操作
这个SIGHUP 信号不仅可以由系统发送,还可以使用 kill 来发送
root可以调整所有进程使用[-20,19]所有值,普通用户只能修改自己的并只能用[0,19]
chapter17 Linux日志系统
常见的日志;配置的日志;轮替的日志
粗略将日志分为系统日志和应用日志
vim
chapter1 vim快速入门
普通模式 插入模式 可视模式 选择模式 命令行模式 Ex模式
vim后面加上你要打开的已存在的文件名或者不存在(则作为新建文件)的文件名
进入命令行模式后输入:e 文件路径 同样可以打开相应文件
普通模式下
h 左
l 右
j 下
k 上
w 移动到下一个单词
b 移动到上一个单词
进入插入模式
i 在当前光标处编辑
I 行首插入
A 行末插入
a在光标后插入编辑
o在当前行后插入一个新行
O 在当前行前插入一个新行
cw 替换从光标所在位置后到一个单词结尾的字符
命令行模式下退出vim
:q! 强制退出不保存
:q 退出
:wq! 强制退出保存
:w <文件 路径> 另存为
:saveas 文件路径
:x 保存并退出
:wq 保存并退出
普通模式下保存退出vim 输入Shift+zz
普通模式下删除文本信息
x 删除游标所在的字符,输入.会再次删除一个字符
X 删除游标所在前一个字符
Delete 同x
dd 删除整行
dw 删除一个单词 dnw(n为数字)删除n个单词
d$或D 删除至行尾
d^ 删除至行首
dG 删除到文档结尾处
d1G 删至文档首部
chapter2 vim文档编辑
输入10x,删除10个连续字符,输入3dd,将会删除3行文本
行间跳转
nG 游标移动到第 n 行(默认没有显示行号先进入命令模式:set nu以显示行号)
gg 游标移动到到第一行
G 到最后一行
完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置
行内跳转
w 到下一个单词的开头
e 到当前单词的结尾
b 到前一个单词的开头
ge 到前一个单词的结尾
0或^ 到行头
$ 到行尾
f<字母> 向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
F<字母> 向前搜索<字母>并跳转到第一个匹配的位置
普通模式中使用y复制
yy复制游标所在的整行(3yy表示复制3行)
y^ 复制至行首,或y0。不含光标所在处字符
y$ 复制至行尾。含光标所在处字符
yw 复制一个单词
y2w 复制两个单词
yG 复制至文本末
y1G 复制至文本开头
普通模式中使用 p 粘贴
p(小写)代表粘贴至光标后(下),P(大写)代表粘贴至光标前(上)
ddp 实现快速交换光标所在行与它下面的行
chapter3 查找替换
替换和撤销(Undo)命令,(普通模式下的操作)
r+<待替换字母> 将游标所在字母替换为指定字母
R 连续替换,直到按下Esc
cc 替换整行,即删除游标所在行,并进入插入模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C(大写) 替换游标以后至行末
~ 反转游标所在字母大小写
u{n} 撤销一次或n次操作
U(大写) 撤销当前行的所有修改
Ctrl+r redo,即撤销undo的操作
使用命令进行快速调整缩进操作(普通模式下)
15G,跳转到15行
整行将向右缩进
<<
整行将向左缩进
:set shiftwidth=10 对shiftwidth值进行设置控制缩进和回退的字符数
调整文本位置
:ce 使本行内容居中
:ri 使本行文本靠右
:le 使本行内容靠左
快速查找(普通模式下)
/ 键入需要查找的字符串按回车进行向下查找
? 与/功能相同,向上查找
输入n 和 N 可以继续查找, n查找下一个内容,N查找上一个内容
高级查找(普通模式下)
* 寻找游标所在处的单词,向后(下)找
#同上, 向前(上)找
g*同* ,但部分符合该单词即可
g#同# ,但部分符合该单词即可
chapter4 高级功能入门
vim 1.txt 2.txt 同时创建两个新文件并编辑
命令行模式下输入 :n 编辑 2.txt 文件,输入 :N 编辑 1.txt 文件
进入vim后打开新文件(命令行模式)
:e 3.txt 打开新文件3.txt
:e# 回到前一个文件
:ls可以列出以前编辑过的文档
:b 2.txt(或者编号)可以直接进入文件2.txt编辑
:bd 2.txt(或者编号)可以删除以前编辑过的列表中的文件项目
:e! 4.txt,新打开文件4.txt,放弃正在编辑的文件
:f 显示正在编辑的文件名
:f new.txt,改变正在编辑的文件名字为new.txt
如因断电等原因造成文档没有保存可用vim -r进入文档后,输入:ewcover 1.txt来恢复
可视模式命令
普通模式下 v 进入字符选择模式,移动光标光标走过的地方会选取,再次按下v后取消选取
普通模式下 Shift+v 进入行选择模式,按下V之后会把整行选取,上下移动光标选更多的行
普通模式下 Ctrl+v 进行矩形区域选择,再按一次 Ctrl+v 取消选取
可视模式下输入 d 删除选取区域内容
可视模式下输入 y 复制选取区域内容
视窗操作
命令行模式下输入 :new 打开一个新的 vim 视窗,并进入视窗编辑一个新文件(普通模式下输入 Ctrl+w也可以)
命令行模式下输入:sp 1.txt 打开新的水平分屏视窗来编辑1.txt
命令行模式下输入:vsp 2.txt 打开新的垂直分屏视窗来编辑2.txt
普通模式下Ctrl+w s 将当前窗口分割成两个水平的窗口
普通模式下Ctrl+w v 将当前窗口分割成两个垂直的窗口
普通模式下Ctrl+w q 即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
普通模式下Ctrl+w o 打开一个视窗并且隐藏之前的所有视窗
普通模式下Ctrl+w j 移至下面视窗
普通模式下Ctrl+w k 移至上面视窗
普通模式下Ctrl+w h 移至左边视窗
普通模式下Ctrl+w l 移至右边视窗
普通模式下Ctrl+w J 将当前视窗移至下面
普通模式下Ctrl+w K 将当前视窗移至上面
普通模式下Ctrl+w H 将当前视窗移至左边
普通模式下Ctrl+w L 将当前视窗移至右边
普通模式下Ctrl+w - 减小视窗的高度
普通模式下Ctrl+w + 增加视窗的高度
vim -x file1 创建加密文档
在命令行模式中输入!可以执行外部的shell命令
:!ls 用于显示当前目录的内容
:!rm FILENAME用于删除名为 FILENAME 的文件
:w FILENAME可将当前 VIM 中正在编辑的文件另存为 FILENAME 文件
vim中的查看帮助
普通模式下按F1打开vim自己预设的帮助文档
命令行模式下输入:h shiftwidth 打开名为shiftwidth的帮助文件
命令行模式下输入:ver 显示版本及参数
vim的功能设定
(编辑文件的时候进行功能设定,如:set nu,设定值退出vim后不会保存,要永久保存配置需要修改vim配置文件)
获取目前的设定(命令行模式下)
:set或者:se显示所有修改过的配置
:set all 显示所有的设定值
:set option? 显示option的设定值
:set nooption 取消当前设定值
set功能的说明
:set autoindent(ai) 设置自动缩进
:set autowrite(aw) 设置自动存档,默认未打开
:set background=dark或light,设置背景风格
:set backup(bk) 设置自动备份,默认未打开
: set cindent(cin) 设置C语言风格缩进