Linux常用命令(查找、查看、比较、编辑文件)

Linux常用命令(博客地图):https://blog.csdn.net/sysukehan/article/details/105804511

 

1、查找文件

whereis

whereis 文件或目录名:查询指定的程序名

 

locate

locate [-ir] keyword:查询所有包含关键子的文件或目录

参数:

-i:忽略大小写的差异。

-r:后面可接正则表达式的表示方法。

whereis和locate都是在系统的数据库文件(/var/lib/mlocate)中去查找,所以速度很快。但是用这两个命令会找到刚删掉的文件,同时刚创建的文件也找不到,原因是数据库文件的更新是定时做的,会有更新不及时的情况。手动更新数据库的命令是updatedb,updatedb会根据/etc/updatedb.conf的设置去查找系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件。执行updatedb命令大概需要耗时几分钟。

 

find

find [path] [option] [action]

find命令是直接查找硬盘,速度会慢一些,但是能找到完整的结果,path是要查找的路径。

 

和时间相关参数

-atime,-ctime,-mtime,以-mtime为例:

-mtime n:n为数字,意义为在n天之前的“一天之内”被更改过的文件。

-mtime +n:列出在n天之前(不含n天本身)被更改过的文件名。

-mtime -n:列出在n天之内(含n天本身)被更改过的文件名。

-newer file:file为一个存在的文件,列出比file还要新的文件名。

 

用户或用户组相关参数

-uid n:n为数字,这个数字是用户的账号ID,即UID。

-gid n:n为数字,这个数字是用户组名的ID,即GID。

-user name:name为用户账号名称。

-group name:name为用户组名。

-nouser:寻找文件的所有者不存在于/etc/passwd中的文件。

-nogroup:寻找文件的所有用户组不存在于/etc/group中的文件。

 

与文件大小、类型、名称有关的参数

-name filename:查找文件名为filename的文件,支持通配符*,如find / name ssh*。

-size [+-] SIZE:查找比SIZE还要大(+)或小(-)的文件,这个SIZE的规格有:

c代表byte,k代表1024bytes,M代表1024k,G代表1024M

-type TYPE:查找文件的类型为TYPE的,类型主要有一般正规文件(f)、设备文件(b,c)、目录(d)、链接文件(l)、socket(s)及FIFO(p)等属性。

 

其他可进行的操作

-print:将结果打印到屏幕上,这个操作是默认操作。

-exec command:command为其他命令,-exec后面可接其他命令来处理查找到的结果。

如:find /etc/ssh -type d -exec ls -al {} \;

1){}代表的是find找到的结果,例子中就是find /etc/ssh -type d的结果。

2)-exec一直到“\;”是关键字,代表find额外命令的开始(-exec)到结束(\;),在这中间就是find命令的额外命令,在例子中就是ls -al {}。

3)因为;在bash环境下是有特殊意义的,因此利用反斜杠来转义。

 

2、查看文件内容

cat:由第一行开始显示文件内容。

more:一页一页的显示文件内容。

less:与more类似,查找关键字功能更完善。

head:只看头几行。

tail:只看结尾几行。

 

cat(concatenate)

参数:

-E:将结尾的断行字符$显示出来。

-n:打印出行号,连同空白行也会有行号。

-T:将(Tab)按键以^I显示出来。

-v:列出一些看不出来的特殊字符。

-A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已。

如:cat -nE /etc/ssh/ssh_config

 

more

操作:

空格键(space):代表向下翻一页。

Enter:代表向下滚动一行。

-f:立刻显示出文件名以及目前显示的行数。

q:代表立刻离开more,不再显示该文件内容。

b:代表向上翻一页,该操作只对文件有用,对管道无用。

 

less

操作:

空格键(space)/[PageDown]:向下翻动一页。

[PageUp]:向上翻动一页。

/字符串:向下查询“字符串”功能。

?字符串:向上查询“字符串”功能。

n:重复前一个查询。

N:反向重复前一个查询。

q:离开less这个程序。

 

man命令就是调用less来显示说明文件的内容的。

 

head

head [-n number] 文件

参数:

-n:后面接数字,代表显示几行的意思。

不带参数默认显示前10行。

使用时可简写为head -15 /etc/ssh/ssh_config

 

tail

tail [-n number] 文件

参数:

-n:后面接数字,代表显示几行的意思。

-f:表示持续检测后面所接的文件名,要等到按下ctrl+c才会结束检测。

不带参数默认显示后10行。

使用时可简写为tail -15 /etc/ssh/ssh_config

 

3、文件比较工具diff

diff [-bBi] from-file to-file

参数:

-b:忽略一行当中仅有多个空白的区别,例如(“about me”与“about      me”视为相同)

-B:忽略空白行的区别。

-i:忽略大小写的不同。

 

4、文本编辑器vi

一般模式:以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用上下左右键来移动光标,可以删除字符或删除整行,也可以复制粘贴文件数据。

编辑模式:按下“i,I,o,O,a,A,r,R”等任何一个字母之后才会进入编辑模式。通常在Linux中,按下这些按键时,在界面的左下方会出现INSERT或REPLACE的字样,此时才可以进行编辑。而如果要回到一般模式,则必须按下[Esc]这个按键可退出编辑模式。

命令行模式:在一般模式当中,输入“:、/、?”3个中的任何一个按钮,就可以将光标移动到最下面那一行。在这个模式当中,可以提供查找数据的操作,读取、保存、大量替换字符、离开vi、显示行号等的操作也是在此模式中完成的。

 

一般模式下常用按键

移动光标

h或向左箭头(←):光标向左移动一个字符。

j或向下箭头(↓):光标向下移动一个字符。

k或向上箭头(↑):光标向上移动一个字符。

l或向右箭头(→):光标向右移动一个字符。

向下移动30行:30j或30↓。

ctrl+f:屏幕向下移动一页。

ctrl+b:屏幕向上移动一页。

ctrl+d:屏幕向下移动半页。

ctrl+u:屏幕向下移动半页。

n<space>:n表示数字,例如20.按下数字后再按空格键,光标会向右移动这一行的n个字符。例如20<space>,则光标会向后面移动20个字符的距离。

0或功能键[Home]:移动到这一行的最前面字符处。

$或功能键[End]:移动到这一行的最后面字符处。

G:移动到这个文件的最后一行。

nG:移动到这个文件的第n行。例如20G则会移动到这个文件的第20行。

gg:移动到这个文件的第一行,相当于1G。

n[Enter]:n为数字,光标向下移动n行。

 

查找

/word:向下寻找一个字符串名称为word的字符串。

?word:向上寻找一个字符串名称为word的字符串。

n:英文按键,重复前一个查找的操作。

N:英文按键,与n相反,为“反向”进行前一个查找操作。

 

删除、复制与粘贴

x,X:在一行字当中,x为向后删除一个字符(相当于[Del]按键),X相当于向前删除一个字符(相当于[Backspace])。

nx:n为数字,连续向后删除n个字符。举例来说,连续删除10个字符“10x”。

nX:n为数字,连续向前删除n个字符。举例来说,连续删除光标前10个字符“10X”。

dd:删除光标所在的那一整行。

ndd:n为数字,删除光标所在的向下n行,例如2dd是删除2行(含光标所在那行共2行)。

d$:删除从光标所在处到该行的最后一个字符。

d0:删除从光标所在处到该行的最前面一个字符。

yy:复制光标所在那一行。

nyy:n为数字,复制光标所在的向下n行,例如2dd是复制2行(含光标所在那行共2行)。

p,P:p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标上一行。

u:复原前一个操作

ctrl+r:重做上一个操作

.:小数点,重复前一个操作。

注意,连续撤销先按u,然后一直按ctrl+r。

 

一般模式切换到编辑模式

按i,进入插入模式,从目前光标所在处插入。

 

编辑模式切换到一般模式

按[Esc]键回到一般模式。

 

一般模式切换到命令行模式

:w:将编辑的数据写入硬盘文件中。

:w!:若文件属性为“只读”时,强制写入该文件。能不能写入和当前用户对该文件的权限有关。

:q:离开vi。

:q!:若曾修改过文件,又不想存储,使用“!”为强制离开不保存文件。

:wq:保存后离开,若为“:wq!”则为强制保存后离开。

ZZ:注意前面没有冒号。若文件没有变动,则不保存离开,若文件有变动,则保存后离开。

:! command:暂时离开vi到命令行模式下执行command的显示结果。例如“:! ls -al /opt”。

:set nu:显示行号。

:set nonu:不显示行号。

以上命令执行完就会回到一般模式。

 

vi异常退出

常见的情况是用vi编辑过程中命令行窗口因为各种原因被关闭了,文件没有保存,用vi重新打开文件后会出现以下情况。

这时候可以选择输入:recover恢复文件。

也可以选择不恢复,但是不管恢复还是不恢复,该文件同目录下的swp后缀文件要手动删除,否则每次打开这个文件都会有恢复的提示。

 

参考资料

《鸟哥的Linux私房菜基础学习篇(第三版)》

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值