本笔记基于“狂神说Linux”强烈推荐看下视频,有助于理解Linux,但这些也仅仅是入门,根据自己的需求来吧。
目录
less 一页一页翻动,以下实例输出/etc/man.config文件的内容:
文件内容查看
概述
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/sysconfig/network-scripts/
[root@kuangshen ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:
[root@kuangshen ~]# tac /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=dhcp
DEVICE=eth0
nl 显示行号
语法:
nl [-bnw] 文件
选项与参数:
-
-b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);-b t :如果有空行,空的那一行不要列出行号(默认值);
-
-n :列出行号表示的方法,主要有三种:-n ln :行号在荧幕的最左方显示;-n rn :行号在自己栏位的最右方显示,且不加 0 ;-n rz :行号在自己栏位的最右方显示,且加 0 ;
-
-w :行号栏位的占用的位数。
测试:
[root@kuangshen ~]# nl /etc/sysconfig/network-scripts/ifcfg-eth0
1DEVICE=eth0
2BOOTPROTO=dhcp
3ONBOOT=yes
more 一页一页翻动
在 more 这个程序的运行过程中,你有几个按键可以按的:
-
空白键 (space):代表向下翻一页;
-
Enter :代表向下翻『一行』;
-
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
-
:f :立刻显示出档名以及目前显示的行数;
-
q :代表立刻离开 more ,不再显示该文件内容。
-
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
[root@kuangshen etc]# more /etc/csh.login
....(中间省略)....
--More--(28%) # 重点在这一行喔!你的光标也会在这里等待你的命令
less 一页一页翻动,以下实例输出/etc/man.config文件的内容:
less运行时可以输入的命令有:
-
空白键 :向下翻动一页;
-
[pagedown]:向下翻动一页;
-
[pageup] :向上翻动一页;
-
/字串 :向下搜寻『字串』的功能;
-
?字串 :向上搜寻『字串』的功能;
-
n :重复前一个搜寻 (与 / 或 ? 有关!)
-
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
-
q :离开 less 这个程序;
[root@kuangshen etc]# more /etc/csh.login
....(中间省略)....
: # 这里可以等待你输入命令!
head 取出文件前面几行
语法:
head [-n number] 文件
选项与参数:-n 后面接数字,代表显示几行的意思!
默认的情况中,显示前面 10 行!若要显示前 20 行,就得要这样:
[root@kuangshen etc]# head -n 20 /etc/csh.login
tail 取出文件后面几行
语法:
tail [-n number] 文件
选项与参数:
-
-n :后面接数字,代表显示几行的意思
默认的情况中,显示最后 10 行!若要显示最后 20 行,就得要这样:
[root@kuangshen etc]# tail -n 20 /etc/csh.login
Linux 链接概念
·软连接:类似于windows下的快捷方式,删除源文件后,软连接失效
·硬连接:相当于重新创建一份文件,当两个文件之间存在联系,修改其中一个文件后毛领一个文件会随之改变,如果删除源文件,硬连接文件不会受到影响;删除硬连接文件,源文件也不会受到影响
·创建连接文件 格式:ln [选项] 源文件/目录 目标文件/目录
选项: -s:创建软连接文件(相当于windows中的快捷方式)
示例①:
修改a.txt-bak文件
查看源文件内容,发现源文件被影响
示例②:创建软连接
修改软连接文件:修改软连接文件,源文件也会被修改
·硬连接和软连接的区别:
删除a.txt源文件
删除源文件,软连接失败,硬连接依然有效
Vim使用
什么是Vim编辑器?
visual interface(虚拟化的图形界面):类似于Windows中的记事本
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程序开发者的一项很好用的工具。
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
升级版本:vim,有高亮语法显示
1.这里我们以passwd文件作为案例进行讲解:
先将/etc/passwd复制一份,复制到当前的用户工作目录(/root),后期的vim操作都会在这个工作目录下进行修改。
#cp /etc/passwd ./passwd
2.vi/vim命令使用
·打开编辑器的三种方式:
①vim +数字 需要打开的文件(打开文件之后快速的将光标定位到数字指定的行)
命令:#vim +5 ./passwd
②vim +/字符串 需要打开的文件(打开文件,之后高亮显示/后的字符串)
例如:使用vim打开当前目录下的passwd文件,并且高亮显示“login”
如果这个时候想在搜索高亮结果中进行光标的快速跳转,可以按下键盘上的“n”(向下切换),或者按下“N”(向上切换)。
如果想去除高亮显示,则可以输入:nohl,按下回车即可。(no highlight)
③打开一个存在的文件 vim install.log
能够看到打开文件中已经存在的内容
特别说明:
以上三个打开文件的方法,都有一个共同的特点,当打开的文件不存在的时候,它会以新文件的方式进行打开。
·vi中的三种模式
- Command Mode命令行模式:如果想在VI编辑器中完成,复制、张贴、剪切等操作必须在此模式下进行,默认进入VI编辑器时进入的就是命令模式
- Insert Model文本输入模式:如果想在VI编辑器中实现文件的编辑等功能,可以在命令模式下输入小写字母a或i,进入输入模式
- Last Line Model末行模式:如果代表编辑完成后,想保存文件并退出VI程序,这个时候就必须在末行模式下进行操作。在输入模式下按Esc按钮切换到命令模式,然后在命令名师下输入:冒号进入末行模式,实现相关操作。
示例:编写一个index.php文件,内容就是使用phpinfo()进行输出
①vim index.php进入命令行模式
②编辑文件内容:按a或i进入文本编辑模式
③保存并退出
Ⅰ.按"Esc"键,退回到命令行模式
Ⅱ.使用冒号":",进入末行模式
Ⅲ.输入wq(write/quit),保存并退出的意思
Ⅳ.测试:cat index.php,读取文件中的内容
3.Vi编辑器不同模式下的常用指令
·命令行模式
- 输入小写字母a或者i进入输入模式
- 复制功能:yy
- 粘贴功能:p
- 删除功能:dd
- 撤销功能:u
①光标移动
将光标在默认的命令模式中快速的定位到文档的最后一行,可以按下按键G。
将光标从命令模式中快速的切换到文档的第一行,可以按下按键gg。
将光标快速的定位到当前文档中的指定行,可以输入数字G。
将光标以当前行为准,向上或者向下移动指定的行数,可以输入数字↑/↓。
②删除命令
删除当前行,可以使用按键dd,删除之后下一行上移。
删除当前行,下一行不上移,可以按下键盘的按键D,删除之后当前行留空。
删除多行,可以使用数字dd,表示以光标所在行为基准,向下删除指定的行数。
特别说明的:
在vim中,删除命令和剪切命令是一样,已经删除的内容可以通过粘贴命令显示出来。
③复制命令
复制当前行,可以在光标所在的行按下键盘按键yy。
复制多行,可以按下数字yy,表示以当前行为准,向下复制指定的行数。
复制完成之后可以按下按键p,进行粘贴,粘贴是粘贴在光标所在行的下一行开始。
·文本输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
-
字符按键以及Shift组合,输入字符
-
ENTER,回车键,换行
-
BACK SPACE,退格键,删除光标前一个字符
-
DEL,删除键,删除光标后一个字符
-
方向键,在文本中移动光标
-
HOME/END,移动光标到行首/行尾
-
Page Up/Page Down,上/下翻页
-
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
-
ESC,退出输入模式,切换到命令模式
·末行模式下的相关指令
- 显示/取消行号:set nu/set nonu
- 搜索关键字:/关键字,n找下一个单词、shfit+n找 上一个单词
- 取消高亮:noh
- 保存文件:w
- 退出VI:q
- 强制保存:w!
- 强制退出:q!
- 强制保存并退出:wq!
①显示行号 set nu
不显示行号 set nonu
②查询关键字
在末行模式中输入:/Document;查找上一个"n",查找下一个"shify+n"
③查找到关键词后,关键词会高亮显示,使用"noh",取消高亮显示
④"!"是强制的意思。有些时候,在 保存退出时,可能不能正常执行,增加"!"可以强制保存或退出
q! w! wq!(顺序必须是wq,不能是qw)
⑤字符串替换
第一种情况:
语法:
:s/需要替换的字符串/替换成的字符串 (表示替换当前光标所在的行的第一处符合条件的字符串)
例如:
第二种情况:
语法:
:s/需要替换的字符串/替换成的字符串/g (替换光标所在行全部符合条件的地方,g表示global)
例如:
第三种情况:
语法:
:%s/需要替换的字符串/替换成的字符串 (表示替换当前文档中每一行第一个符合条件的地方)
例如:
第四种情况:
语法:
:%s/需要替换的字符串/替换成的字符串/g (替换整个文档中全部符合条件的地方)
例如:
其他命令
- vi +n filepath:打开文件并将光标置于第n行
- vi +/string filepath:打开文件并高亮显示关键字
- vi filepath1 filepath2:同时打开或编辑多个文件,:n/:prev:切换打开文件
①打开httpd.conf文件,并且找到第306行
- vi +n filepath:打开文件并将光标置于第n行
- vi +/string filepath:打开文件并高亮显示关键字
- vi filepath1 filepath2:同时打开或编辑多个文件,:n/:prev:切换打开文件
①打开httpd.conf文件,并且找到第306行
光标会定位于306行
②打开httpd.conf文件,并且查找Document关键词
③同时打开httpd.conf和magic文件
默认进入第一个要打开的文件,如要求换文件,在末行模式下输入":n"或":prev"来回切换
vim知识扩展(重点)
·默认显示行号
在一般情况下,vim是默认不显示行号的,我们可以通过在末行模式中输入set nu来让当前文件显示行号,但是在关闭之后再次打开又不会显示行号。如何让vim直接默认显示行号呢?
解决办法:
修改vim的配置文件进行配置。Vim的配置文件在当前用户的家目录中(如果没有的话自己创建,文件名字叫做.vimrc)
然后在.vimrc文件中,进入编辑模式,然后输入set nu,输入完毕之后退出保存 。
别名机制
在以后的工作中,我们可能会看到这种情况:我们自己现在使用的清屏命令是clear,可能会看到有些人在使用Linux的清屏命令的时候使用cls。但是我们自己通过命令行输入cls发现会报错:
别人使用的就是clear的别名,别名就是cls。
别名是通过别名文件来设置的,别名文件位于当前用户家目录中,文件名叫做.bashrc。
在别名文件中设置clear=cls,也就是给clear设置别名:
设置之后保存退出。
但是有的同学在使用的时候说并不是那么的好用。
设置别名文件之后,需要重新登录之后别名才会生效,因此当前用户需要重新登录:
第一个方法:切换用户;
第二个方法:重新/关机;
·异常关闭处理
当一个文件在vim中进行打开,打开之后没有正常关闭(直接关闭远程窗口),再下一次打开该文件的时候就会提示类似于以下的界面:
这种问题的处理办法就是删除交换文件,交换文件的名称一般都是在原有的文件名后面加上.swp。
·重做/撤销
当文件进行修改之后,如果想撤销/重做,则可以在末行模式中输入:u,来撤销上一步的操作。
如果这个时候想取消撤销,可以在命令模式中按下组合键ctrl+r。
如果想撤销多步,则可以在末行模式中输入:数字u。
·另一种退出保存方式
前面学习的保存退出方法叫做:wq。其实在Linux的vim中还支持另外一种保存退出方式,这个方式是在末行模式中输入:x。(千万不要输入大写的x,大写的x表示给当前文档进行加密)。
经典的面试题:
在Linux中:wq退出方式和:x的退出方式有什么区别?
答:在实际开发的时候还是建议使用:x的方式进行退出。这两个方式的区别在于,wq的方式无论文件是否有修改,都会对文件的最后修改时间进行改变;而x方式只有在文件内容真的发生变化了才会去修改文件的最后修改时间。