文章目录
第三日总结
VIM文件编辑器
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
yum install vim
下载vim文本编辑器
vim 是一个程序开发工具而不是文字处理软件。
VIM键盘图
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式,编辑模式(输入模式)和末行模式(底线命令模式)。 这三种模式的作用分别是:
命令模式:
启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
编辑模式(输入模式)
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- Delete,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
末行模式(底线命令模式)
在命令模式下按下:(英文冒号)就进入了底线命令模式。可以在末行输入命令来对文件进行查找 替换 保存 退出。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
按ESC键可随时退出底线命令模式。
三个模式想成底下的图标来表示:
VIM使用
使用 vim 进入一般模式
使用 vim 来建立一个名为 runoob.txt 的文件时,你可以这样做:
vim runoob.txt
直接输入 vim 文件名 就能够进入 vim 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!
按下 i 进入输入模式(也称为编辑模式),开始编辑文字
按下 i 进入输入模式(也称为编辑模式),开始编辑文字
在一般模式之中,只要按下 i, o, a 等字符就可以进入输入模式了!
在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
按下 ESC 按钮回到一般模式
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
在一般模式中按下 :wq 储存后离开 vim
要存档时,存盘并离开的指令很简单,输入 :wq 即可保存离开!
vim 按键说明
第一部分:命令模式常用操作
gg可以回到文本第一行的行首
G可以回到最后一行的行首
数字键+G用于定位行首
翻屏
ctrl+b 向上翻屏
ctrl+f 向下翻屏
复制粘贴
在所在行中按yy进行复制
在需要粘贴的地方使用p进行粘贴
剪切/删除
dd删除
使用删除+粘贴的操作完成剪切
撤销
u 进行撤销
crtl+r 恢复
第三部分:末行模式的操作
:w | 保存文件 |
---|---|
:w! | 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! |
:q | 退出 vim(常用) |
:q! | 强制不保存退出 |
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~ | |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 (常用) |
检索
/word | 向光标之下寻找一个名称为 word 的字符串检索 |
---|---|
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
替换
😒/搜索的关键词/要替换的内容 | 只能替换检索到的第一处符合条件的内容 只能替换光标所在行 |
---|---|
😒/搜索的关键词/要替换的内容/g | 替换当前行的所有内容 |
:%s/搜索的关键词/要替换的内容 | 替换所有行 第一处符合条件的内容 |
::%s/搜索的关键词/要替换的内容/g | 替换所有行 所有符合条件的内容 |
显示行号
:set nu
:set nonu
可视化模式下复制
ctrl+v 进入可视块
上下左右选中
y进行复制 p进行粘贴
esc退出可视化模式
快速添加多行注释与删除多行注释
添加
在命令行模式下,输入ctrl+v进入可视块,选中所有行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pxxOcjlu-1689151299929)(E:\渗透测试\7.12日\7.12上.assets\image-20230712110736144.png)]
输入大写I进入插入模式 然后输入# 最后按两下 esc
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wsLdPdxa-1689151299929)(E:\渗透测试\7.12日\7.12上.assets\image-20230712110837168.png)]
删除
可视化模式下选中所有的注释符 然后按下delete
Linux文件内容查看
Linux系统中使用以下命令来查看文件的内容:
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
你可以使用 *man [命令]*来查看各个命令的使用文档,如 :man cp。
cat
由第一行开始显示文件内容
语法:
cat [-AbEnTv]
选项与参数:
- -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
- -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -E :将结尾的断行字节 $ 显示出来;
- -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
- -T :将 [tab] 按键以 ^I 显示出来;
- -v :列出一些看不出来的特殊字符
检看 /etc/issue 这个文件的内容:
[root@www ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
nl
显示行号
语法:
nl [-bnw] 文件
选项与参数:
- -b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值); - -n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ; - -w :行号栏位的占用的位数。
实例一:用 nl 列出 /etc/issue 的内容
[root@www ~]# nl /etc/issue
1 CentOS release 6.4 (Final)
2 Kernel \r on an \m
more
一页一页翻动
[root@www ~]# more /etc/man_db.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的命令
在 more 这个程序的运行过程中,你有几个按键可以按的:
- 空白键 (space):代表向下翻一页;
- Enter :代表向下翻『一行』;
- /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
- :f :立刻显示出档名以及目前显示的行数;
- q :代表立刻离开 more ,不再显示该文件内容
head
取出文件前面几行
语法:
head [-n number] 文件
选项与参数:
- -n :后面接数字,代表显示几行的意思
[root@www ~]# head /etc/man.config
默认的情况中,显示前面 10 行!若要显示前 20 行,就得要这样:
[root@www ~]# head -n 20 /etc/man.config
tail
取出文件后面几行
语法:
tail [-n number] 文件
选项与参数:
- -n :后面接数字,代表显示几行的意思
- -f :查看新增数据
[root@www ~]# tail /etc/man.config
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.config
less
一页一页翻动,以下实例输出/etc/man.config文件的内容:
[root@www ~]# less /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
: <== 这里可以等待你输入命令!
less运行时可以输入的命令有:
- 空白键 :向下翻动一页;
- [pagedown]:向下翻动一页;
- [pageup] :向上翻动一页;
- /字串 :向下搜寻『字串』的功能;
- ?字串 :向上搜寻『字串』的功能;
- n :重复前一个搜寻 (与 / 或 ? 有关!)
- N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
- q :离开 less 这个程序;
wc
wc命令用于计算字数。
利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
语法
wc [-clw][--help][--version][文件...]
参数:
- -c或–bytes或–chars 只显示Bytes数。
- -l或–lines 显示行数。
- -w或–words 只显示字数。
- –help 在线帮助。
- –version 显示版本信息。
du
命令用于显示目录或文件的大小。
du 会显示指定的目录或文件所占用的磁盘空间。
语法
du 目录或者文件名
参数说明:
- -a或-all 显示目录中个别文件的大小。
- -b或-bytes 显示目录或文件大小时,以byte为单位。
- -c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
- -D或–dereference-args 显示指定符号连接的源文件大小。
- -h或–human-readable 以K,M,G为单位,提高信息的可读性。
- -H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
- -k或–kilobytes 以1024 bytes为单位。
- -l或–count-links 重复计算硬件连接的文件。
- -L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
- -m或–megabytes 以1MB为单位。
- -s或–summarize 仅显示总计。
- -S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
- -x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
- -X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
- –exclude=<目录或文件> 略过指定的目录或文件。
- –max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
- –help 显示帮助。
- –version 显示版本信息。
文本处理
find
Linux find 命令用于在指定目录下查找文件和目录。
语法
find [要查找的目录路径] [指定查找的条件,可以是文件名、文件类型、文件大小]
-
-name
:按文件名查找,支持使用通配符*
和?
。 -
-type type
:按文件类型查找,可以是f
(普通文件)、d
(目录)、l
(符号链接)等。
grep
指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。
语法
grep [选项] 要查找的字符串或正则表达式 [表示要查找的文件名,可以同时查找多个文件]
常用选项::
-i
:忽略大小写进行匹配。-v
:反向查找,只打印不匹配的行。-n
:显示匹配行的行号。-r
:递归查找子目录中的文件。-l
:只打印匹配的文件名。-c
:只打印匹配的行数。
echo
echo用于输出指定文本内容
echo ‘文本内容’
l利用
‘>’ 覆盖
‘>>’ 追加
cat /etc/passwd > 1 将passwd的内容输出重定向到 文件 1