Linux常用练习(二)

转自:每日一个Linux命令 (11-23)

nl命令—用来计算文件中的行号,可以将输出的文件内容自动加上行号

-b 指定行号指定的方式,主要有两种

                -b a :表示无论是否为空行,也同样要列出行号(类似于cat -n)

                -b t :如果有空行,空的那一行不要列出行号(默认值)

-n 列出行号表示的方法,主要有三种

                -n ln: 行号在屏幕的左上方显示

                -n rn:行号在自己栏位的最右下方显示,且不加0

                -n rz:行号在自己栏位的最右下方显示,且加0

-w 行号栏位的占用位数

-p 在逻辑定界符处不重新开始计算

常用例子:

  1. 用nl列出log2012.log的内容
  2. 用nl列出log2012.log的内容,空行也加上行号
  3. 让行号前面自动补上0,统一输出格式

参考答案:

  1. nl log2012.log
  2. nl –b a log2012.log
  3. 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

常用例子:

  1. 显示文件中从第3行起的内容
  2. 从文件中查找第一个出现“day3”字符串的行,并从该处前两行开始显示输出
  3. 设定每屏显示行数
  4. 列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示,需要用管道|

参考答案:

  1. more +3 boot.log
  2. more +/day3 boot.log
  3. more -3 boot.log
  4. ls –l |more -5

 

less工具----也是输出分页显示的工具,比more更有弹性。less可以拥有更多的搜索功能,不止向下搜,也可以向上搜。而且less在查看之前不会加载整个文件

-e 当文件自动显示结束后,自动离开

-i 忽略搜索时的大小写

-N 显示每行的行号

-o <文件名> 将less输出的内容在指定文件中保存起来

-s 显示连续空行为一行

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n: 重复前一个操作(与/或?有关)

N:反向重复前一个操作(与/或?有关)

b 向后翻一页

d 向后翻半页

h帮助

q退出

u向前滚动半行

y向前滚动一行

空格键 滚动一行

回车键 滚动一页

【pagedown】向下翻动一页

【pageup】向上翻动一页

常用例子:

  1. 查看文件
  2. ps查看进程信息,并通过less分页显示
  3. 查看命令历史使用记录,并通过less分页显示
  4. 浏览多个文件

参考答案:

  1. less log.2013.log
  2. ps –ef |less
  3. history | less
  4. less log2013.log log2014.log

head命令-----用来显示开头某个数量的文字区块

-q 隐藏文件名

-v 显示文件名

-c <字节> 显示字节数

-n <行数> 显示行数

常用实例:

  1. 显示文件的前n行
  2. 显示文件的前n个字节
  3. 输出文件除了最后n行的全部内容

参考答案:

  1. head –n  20 boot.log
  2. head –c  20 boot.log
  3. head –n -6 boot.log

tail命令—从指定点开始讲文件写到标准输出,使用tail –f可以方便的查询正在改变的日志文件 tail –f filename 会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容

常用实例:

  1. 显示文件末尾内容
  2. 循环查看文件内容
  3. 从第5行开始显示文件

参考答案:

  1. tail –n 5 boot.log
  2. tail –f boot.log
  3. tail –n +5 boot.log

linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

which 查看可执行文件的位置

whereis查看文件的位置

locate配置数据库文件的位置

find实际搜索硬盘查询文件名称

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且范湖第一个搜索结果。也就是说,使用which可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

常用实例:

  1. 查找文件、显示命令路径
  2. 用which去找出which
  3. 找出cd这个命令

参考答案:

  1. which lsmod
  2. which which
  3. which cd

 

whereis 命令---只能用于程序名的搜索,而且只能搜索二进制文件(-b)、man说明文件(-m),和源代码文件(-s),如果省略参数,则返回所有信息。

常用实例:

  1. 将和**文件相关的文件都查找出来
  2. 只将二进制文件 查找出来

参考答案:

  1. Whereis svn
  2. Whereis –b svn

locate命令--可以很快速的搜寻档案系统内是否有指定的档案、

常用案例:

  1. 查找和pwd相关的所有文件
  2. 搜索etc目录下所有以sh开头的文件 

参考答案:

  1. locate pwd
  2. locate /etc/sh

find命令--在目录结构中搜索文件,并执行指定的操作

 

常用案例:

  1. 查找指定时间内修改过的文件
  2. 根据关键字查找
  3. 按照目录或者文件的权限来查找文件
  4. 按照类型查找
  5. 查找当前所有目录并排序
  6. 按大小查找文件(查找当前目录大于1k的文件)
  7. -exec
  8. ls –l 放到find命令的-exec选项中
  9. 在目录中查找更改时间在n日以前 的文件并删除他们
  10. 在目录中查找更改时间在n日以前的文件并删除他们,在删除之前先给出提示
  11. 在-exec中是使用grep命令
  12. 查找文件移动到指定目录
  13. 使用exec选项执行cp 命令
  14. 之xargs
  15. 查找系统中的每一个普通文件,然后使用xargs命令来测试他们分别属于哪类文件
  16. 在整个系统中查找内存信息转储文件(core dump),然后把结果保存到/tmp/core.log文件中
  17. 在当前目录中查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
  18. 用grep命令在所有的普通文件中搜索hostname这个词
  19. 用grep命令在当前目录下的所有普通文件中搜索hostname这个词
  20. 使用xargs执行mv
  21. find后执行xargs提示xargs:argument line too long 解决办法
  22. 使用-i参数默认的前面输出用{}代替,-I参数可以指定其他代替字符
  23. xargs的-p参数的使用

参考答案:

  1. find –atime n
  2. find . –name  “*.log”
  3. find . –perm 777
  4. find . –type f –name “*.log”
  5. find . –type d|sort
  6. find . –size +1000c –print
  7. –exec
  8. find . –type f –exec ls –l {} \;
  9. find . –type f –mtime n –exec  rm {} \;
  10. find . –type f –mtime  n –ok rm {} \;
  11. find /etc  -name “passwd*” –exec  grep “root” {} \;
  12. find . –name “*.log” – exec  mv {} ..\;
  13. find . –name “*.log” – exec  cp {} /home/bellazhu \;
  14. 之xargs
  15. find . –type f –print|xargs file
  16. find / -name “core”  -print|xargs echo “”>/tmp/core.log
  17. find . –perm 7 –print |xargs chmod  o-r
  18. find . -type f -print | xargs grep "hostname"
  19. find . -type f -print | xargs grep "hostname"
  20. find . –name “*.log” |xargs –i mv {} test4
  21. find . -type f -atime +0 -print0 | xargs -0 -l1 -t rm –f (-l1是一次处理一个 –t是处理之前打印出命令)
  22. find . -name "file" | xargs -I [] cp [] ..(使用-i参数默认的前面输出用{}代替 –I参数可以指定其他字符)
  23. find . –name “*.log” |xargs –p –i mv {} ..

 

posted on 2018-01-22 15:38  BellaZhu  阅读(207)  评论(0)    收藏  举报

导航