Linux常用练习(二)
nl命令—用来计算文件中的行号,可以将输出的文件内容自动加上行号
-b 指定行号指定的方式,主要有两种
-b a :表示无论是否为空行,也同样要列出行号(类似于cat -n)
-b t :如果有空行,空的那一行不要列出行号(默认值)
-n 列出行号表示的方法,主要有三种
-n ln: 行号在屏幕的左上方显示
-n rn:行号在自己栏位的最右下方显示,且不加0
-n rz:行号在自己栏位的最右下方显示,且加0
-w 行号栏位的占用位数
-p 在逻辑定界符处不重新开始计算
常用例子:
- 用nl列出log2012.log的内容
- 用nl列出log2012.log的内容,空行也加上行号
- 让行号前面自动补上0,统一输出格式
参考答案:
- nl log2012.log
- nl –b a log2012.log
- nl –b a –n rz log2012.log
more命令 –会将整个文件中的内容以一页一页的显示方便读者逐页阅读,而最基本的志玲就是按空白键(space)就往下一页显示,按住b键就会往回back一页显示。more命令从前往后读取文件,因此在启动时就加载整个文件。
常用命令操作:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏,b就可以返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vim编辑器
!命令 调用shell,并执行命令
q 退出more
常用例子:
- 显示文件中从第3行起的内容
- 从文件中查找第一个出现“day3”字符串的行,并从该处前两行开始显示输出
- 设定每屏显示行数
- 列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示,需要用管道|
参考答案:
- more +3 boot.log
- more +/day3 boot.log
- more -3 boot.log
- ls –l |more -5
less工具----也是输出分页显示的工具,比more更有弹性。less可以拥有更多的搜索功能,不止向下搜,也可以向上搜。而且less在查看之前不会加载整个文件
-e 当文件自动显示结束后,自动离开
-i 忽略搜索时的大小写
-N 显示每行的行号
-o <文件名> 将less输出的内容在指定文件中保存起来
-s 显示连续空行为一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n: 重复前一个操作(与/或?有关)
N:反向重复前一个操作(与/或?有关)
b 向后翻一页
d 向后翻半页
h帮助
q退出
u向前滚动半行
y向前滚动一行
空格键 滚动一行
回车键 滚动一页
【pagedown】向下翻动一页
【pageup】向上翻动一页
常用例子:
- 查看文件
- ps查看进程信息,并通过less分页显示
- 查看命令历史使用记录,并通过less分页显示
- 浏览多个文件
参考答案:
- less log.2013.log
- ps –ef |less
- history | less
- less log2013.log log2014.log
head命令-----用来显示开头某个数量的文字区块
-q 隐藏文件名
-v 显示文件名
-c <字节> 显示字节数
-n <行数> 显示行数
常用实例:
- 显示文件的前n行
- 显示文件的前n个字节
- 输出文件除了最后n行的全部内容
参考答案:
- head –n 20 boot.log
- head –c 20 boot.log
- head –n -6 boot.log
tail命令—从指定点开始讲文件写到标准输出,使用tail –f可以方便的查询正在改变的日志文件 tail –f filename 会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容
常用实例:
- 显示文件末尾内容
- 循环查看文件内容
- 从第5行开始显示文件
参考答案:
- tail –n 5 boot.log
- tail –f boot.log
- tail –n +5 boot.log
linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
which 查看可执行文件的位置
whereis查看文件的位置
locate配置数据库文件的位置
find实际搜索硬盘查询文件名称
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且范湖第一个搜索结果。也就是说,使用which可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
常用实例:
- 查找文件、显示命令路径
- 用which去找出which
- 找出cd这个命令
参考答案:
- which lsmod
- which which
- which cd
whereis 命令---只能用于程序名的搜索,而且只能搜索二进制文件(-b)、man说明文件(-m),和源代码文件(-s),如果省略参数,则返回所有信息。
常用实例:
- 将和**文件相关的文件都查找出来
- 只将二进制文件 查找出来
参考答案:
- Whereis svn
- Whereis –b svn
locate命令--可以很快速的搜寻档案系统内是否有指定的档案、
常用案例:
- 查找和pwd相关的所有文件
- 搜索etc目录下所有以sh开头的文件
参考答案:
- locate pwd
- locate /etc/sh
find命令--在目录结构中搜索文件,并执行指定的操作
常用案例:
- 查找指定时间内修改过的文件
- 根据关键字查找
- 按照目录或者文件的权限来查找文件
- 按照类型查找
- 查找当前所有目录并排序
- 按大小查找文件(查找当前目录大于1k的文件)
- -exec
- ls –l 放到find命令的-exec选项中
- 在目录中查找更改时间在n日以前 的文件并删除他们
- 在目录中查找更改时间在n日以前的文件并删除他们,在删除之前先给出提示
- 在-exec中是使用grep命令
- 查找文件移动到指定目录
- 使用exec选项执行cp 命令
- 之xargs
- 查找系统中的每一个普通文件,然后使用xargs命令来测试他们分别属于哪类文件
- 在整个系统中查找内存信息转储文件(core dump),然后把结果保存到/tmp/core.log文件中
- 在当前目录中查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
- 用grep命令在所有的普通文件中搜索hostname这个词
- 用grep命令在当前目录下的所有普通文件中搜索hostname这个词
- 使用xargs执行mv
- find后执行xargs提示xargs:argument line too long 解决办法
- 使用-i参数默认的前面输出用{}代替,-I参数可以指定其他代替字符
- xargs的-p参数的使用
参考答案:
- find –atime n
- find . –name “*.log”
- find . –perm 777
- find . –type f –name “*.log”
- find . –type d|sort
- find . –size +1000c –print
- –exec
- find . –type f –exec ls –l {} \;
- find . –type f –mtime n –exec rm {} \;
- find . –type f –mtime n –ok rm {} \;
- find /etc -name “passwd*” –exec grep “root” {} \;
- find . –name “*.log” – exec mv {} ..\;
- find . –name “*.log” – exec cp {} /home/bellazhu \;
- 之xargs
- find . –type f –print|xargs file
- find / -name “core” -print|xargs echo “”>/tmp/core.log
- find . –perm 7 –print |xargs chmod o-r
- find . -type f -print | xargs grep "hostname"
- find . -type f -print | xargs grep "hostname"
- find . –name “*.log” |xargs –i mv {} test4
- find . -type f -atime +0 -print0 | xargs -0 -l1 -t rm –f (-l1是一次处理一个 –t是处理之前打印出命令)
- find . -name "file" | xargs -I [] cp [] ..(使用-i参数默认的前面输出用{}代替 –I参数可以指定其他字符)
- find . –name “*.log” |xargs –p –i mv {} ..
浙公网安备 33010602011771号