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私房菜基础学习篇(第三版)》