VI编辑器就相当于Windows的记事本,可以修改底层配置文件
远程连接servera,我们写一个vim按下回车,会看到它的全称是Vi IMPorved是Vi的改进版,还能够给看见它的作者和版本,它是开源的免费分发的软件,如下图所示
进入之后输入:q!进行退出,退出到命令行
如果文件名之前在当前目录下不存在:我们输入vim ####g001.txt,回车,会发现左下角如右图显示
它会使用该文件名创建了一个新的空白文件
我们进入之后处于命令模式,我们想要写入内容,需要进入插入模式,按下insert键或者s键,左下角出现如右图所示
代表我们进入了插入模式,我们如下图所示插入学号、班级、名字
如果文件名之前在当前目录下存在:会打开该文件进行二次编辑
我们所有的技巧都是在命令模式下做
1、在录入完成内容后,按下Esc从插入模式退出到命令模式,后输入:wq,即可完成存盘退出,返回到命令行
如果误操了,我们使用放弃存盘直接退出,在命令模式下输入:q!,返回到命令行,再次打开文件会发现文件没有之前的操作被改变
2、在命令行模式下,输入一个:,之后按上下键可以快速打出上一个或者下一个历史命令
3、我们像把内容存到根目录下的tmp的学号+名字.txt,我们输入:w /tmp/####159####g.txt,回车,会出现如下图所示内容
我们就会看到新文件已经生成了,另存为一个副本,
4、在命令模式下输入u可以撤销上次的操作,在命令模式下输入Ctrl+r即可重做刚刚的操作(注意:如果退出vim之后,则撤销和重做均无效)
5、在命令模式下输入/搜索内容,即可进行搜索,如下图所示,我搜索的是20,它便会将所有20显示为高亮
按下n可以查看下一个匹配项,按下shift+n可以查看上一个匹配项,查询过后可以在命令模式下输入:noh来取消高亮色干扰我们
6、我们输入:n可以跳转到第n行,例如输入:3,就会将光标跳转到第3行,输入:1,就会将光标跳转到第1行
在任意一行中,按下0键将会快速跳转到该行的首部,按下$键或者End键将会快速跳转到该行的末尾
7、输入gg跳转到整个文档的首行,输入G(即shift+g)跳转到文档的最后一行
8、输入小写的o可以在当前行下面插入一行并且切换到插入模式,其效果如下图所示
9、输入:set nu显示行号,输入:set nonu取消行号,其效果如下图所示
10、剪切当前行内容dd粘贴p(只能粘贴到光标所在行的下一行),复制当前行内容yy.粘贴p(同样只能粘贴到光标所在行的下一行)
我们按下shift+v可进入可视化行模式,从光标所在处移动可以快速将很多内容选中,按下y可都复制上,将光标移动到想要粘贴的地方,输入p即可进行粘贴(同样只能粘贴到光标所在行的下一行),它可以完成多行复制粘贴的任务
超级用户root的家目录是/root
普通用户的家目录是/home/下的与用户同名二级子目录
使用useradd添加用户####g001,使用passwd设置密码
su - 命令是用来切换用户的 ,在切换之前我们的身份是超级管理员,我们要切换到###g001,因为是高权限向低权限切换身份,所以是直接切换;低级向高级切换身份或者是同级切换身份是要输入密码的,使用exit即可进行返回,如下图所示
id可以显示当前用户的属性信息,有用户名,userID,组名,安全上下文等等,如下图所示
cat是将文件内容简述到标准输出(屏幕)上,它的使用方法如下图
具体使用案例如下图所示,它会显示满一个屏幕,当你按下空格键后悔显示下一页的内容
区分:cat是将所有内容全部显示出来,光标也会随之跳转到内容的最后一行;more是将内容以一个屏幕的内容为一页,一页一页的显示出来
重定向的概念就是输出的转移,
我们使用重定向符号>来实验一下,如下图所示
我们在使用了>后看一下###g1.txt的内容,如下图所示
而这个>是会覆盖其目标文件的,如下两张图所示,用pwd的内容将###g1.txt文件的内容给覆盖掉了
我们使用重定向符号>>来实验一下,如下图所示
我们在使用了>>后看一下###g1.txt的内容,如下图所示
如果再次使用一次>>,则###g1.txt的内容,如下图所示
我们使用重定向符号2>来实验一下,如下图所示
我们在使用了2>后看一下###g1.txt的内容,如下图所示,效果是覆盖原来的内容,将原本要显示在屏幕的内容重定向到目标文件内
我们使用重定向符号2>>来实验一下,如下图所示
我们在使用了2>>后看一下###g1.txt的内容,如下图所示
如上两张图所示,find/ -type f –user ###g1有正确的结果也有错误的结果,无论是使用输出重定向、错误输出重定向、追加重定向还是错误追加重定向都无法将其内容全部重定向进入目标文件中
我们使用重定向符号&>来实验一下,如下图所示
###g7.txt内容如下图所示
&>>就是全部追加重定向符,相较于上面&>的效果,&>>是能够进行内容追加的
使用find如果省略path,那么只查找当前路径,在path处写/代表着所有目录都会查找一遍
使用-name参数来查找。其中?代表要求查找内容除去?以外的内容完全符合,?处可以为任意一个字符;其中代表要求查找内容除去以外的内容完全符合,*处可以为任意多个字符,实例如下图所示
首先我们使用man手册来查找参数值有哪些,如下图所示
这些字母代表不同类型,b代表块设备文件,c代表字符设备文件,d代表目录,p代表管道文件,f代表普通文件,l代表链接文件,s代表套接字文件,可以参考之前学过的ls –l
要注意:
在Linux系统下并不以有误扩展名作为区分文件和目录的标准,如上图所示,###g3.txt就是目录,而###g4就是文件
我们使用-type f来查找文件,如下图所示(注意:其中的参数可以调换属性,例如将-type和f调换顺序,将-name和“###g\”调换顺序)
首先我们要明白所有者的确定标准,它是由执行该命令时当前的身份来确定,所属组是由所有者的第一所属组来确定(注意:一个用户可以由多个所属组,但是第一所属组只有一个,是跟用户同名的所属组)
我们使用-type f -user来查找目录,首先在新用户下创建两个新文件如下图所示
之后我们再###g1和root这两个用户下查找与目标名字相匹配的文件,如下图所示
它的高级技巧其实就是对查找结果的批处理操作(复制、移动、删除)
-exec代表的就是批处理操作,我们要将find的查找内容全部移动到一个目录下,我们要使用mv,其中{}代表前半条命令的查找结果,空格\;是exec的结束符,如下图所示我们就使用批处理将三个文件全部移动到###159目录下了
我们将mv可以换成cp,来完成文件的批处理复制粘贴操作,如下图所示,粘贴到###ju3目录下后,###159目录下的文件依然在
注意:我们使用mv移动文件的时候并不是创建新文件,而是将已经用###g1用户创建好文件进行移动,文件所有者不会变;而在使用cp复制文件的时候会在目标目录下创建新的副本文件,那时文件所有者会变成执行复制操作时的用户
我们同样的可以将cp换为rm,来完成对查找文件的批处理删除操作,如下图所示,文件在删除过后,在原来的目录就找不见了。其中-f是暴力删除,如果我们查找内容是目录,那么我们还需要加入-r参数(再加上暴力删除的话,参数的形式就是-rf或者-fr)
首先我们查看其语法格式,如下图所示
我们使用mv对111.txt进行移动和重命名,操作如下图所示
我们用于可以使用绝对路径将移动到tmp目录下的22.txt移动回当前目录root(./就代表当前目录),操作如下图所示
如果目标目录位置出现同名文件,它在移动到目标目录时会询问是否覆盖原文件,也可以加上-f参数来直接进行覆盖操作,如下图所示
cp可以将文件进行复制,粘贴到指定目录下,如下图所示将222.txt复制,粘贴到根目录下并重命名为333.txt
如果目标目录位置出现同名文件,它在复制粘贴到目标目录时会询问是否覆盖原文件,如下图所示
如果不覆盖则在其中加入参数-n即可,如果要强行覆盖则在cp前加上\接口,如下图所示
当我们使用cp来复制粘贴目录时,需要加上-r参数,如下图所示
grep能够在目标文件中找到你想要的关键词,如下图所示
同样可以将查找出来的内容进行重定向,保存到一个文件里面,如下图所示
我们可以对查找的关键词进行设定,使用”^network”来设定其作为一个语句的开头,如下图所示
如要查找的关键词要作为一个语句的结尾来查找,我们使用”network$”即可,如下图所示
|是管道符,它能够在显示的时候实现二次过滤,再去结合grep可以实现显示带有关键词的指定对象,如下图所示我们使用|来查找只带有txt关键词的文件,如下图所示,我们查看当前家目录下的带txt的文件