关机和重启命令

Shutdown

Reboot

Halt

poweroff

grep和管道符

昨天的时候 leader 给我出了道问题:

找出文件夹下包含 “aaa” 同时不包含 “bbb”的文件,然后把他们重新生成一下。要求只能用一行命令。 我对 Linux 是个白痴,工作了之后才开始接触的,会用的命令只有那几个常用的。这个问题对我来说就有 点难度,我只是大概知道查找文件用 grep ,其他的就不知道了。不过没关系,用 Google ,查找到 grep 的完整用法:

1、grep -l ‘boss’ * 显示所有包含 boss 的文件名。

2、grep -n ‘boss’ file 在匹配行之前加行号。

3、grep -i ‘boss’ file 显示匹配行,boss 不区分大小写。

4、grep -v ‘boss’ file 显示所有不匹配行。

5、grep -q ‘boss’ file 找到匹配行,但不显示,但可以检查 grep 的退出状态。(0 为匹配成功)

6、grep -c ‘boss’ file 只显示匹配行数(包括 0)。

7、grep “$boss” file 扩展变量 boss 的值再执行命令。

8、ps -ef|grep “^*user1″ 搜索 user1 的命令,即使它前面有零个或多个空格。

9、ps -e|grep -E ‘grant_server|commsvr|tcpsvr|dainfo’ 查找多个字符串的匹配(grep -E 相当于 egrep)

(来源:蓝森林)

了解了 grep 的参数之后,问题就解决了一半了,因为可以搜索出符合条件的文件了。不过光有 grep 还是 不行,因为要把搜索出来的文件名作为参数传给 generate 命令。OK,接下来该管道符出场了。 即使是像我这样对 Linux 只是有一点了解的人也经常用到管道符,比如“|”,示例: ls -a | more 。但是对 于管道符的具体意义和它做了什么我就不知道了,没关系,Google 一下,找到一些资料:

利用 Linux 所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。 连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命 令的输入,依此类推。

所以查找的时候可以这样写:

grep -rl “aaa” * | grep -v “bbb”

这样右边的命令就可以从前面的结果中筛选了。然后还有 generate 命令,因为生成文件的命令格式是这 样的:

generate 文件名

不过如果直接使用 generate grep -rl “aaa” * | grep -v “bbb” 的话会出错,因为命令会从左向右执行,这条 命令就会把 grep 作为一个文件名来看待。怎么办呢?这个时候就要使用 • (键盘上数字键 1 旁边的那个符 号,和“~”在一个按键上)来做命令替换了,用 • 把后面的 grep 命令包起来就好了,这样:

generate •grep -rl “aaa” * | grep -v “bbb”•

然后就搞定了。

工作一段时间之后,越来越喜欢 Linux 的哲学了,它有很多命令,看起来功能都不是那么强劲,但是如果 你开动脑筋把这些命令组合起来的话,就能实现 很多让你意想不到的功能,有时候你忍不住惊呼:实在 是太 coooool 了! 这对于像我这种被 Windows 的傻瓜式操作惯坏了的人来说,是个福音,以后要多多开 动生锈了的大脑。如果单纯使用电脑的话,还是 Windows 好用,但 是对于程序员,最好还是多玩玩 Linux。 BTW,现在也越来越喜欢使用 VIM 了,虽然刚开始用的时候就觉得它是个记事本~ 以前总听说“真正 的牛人编码都是用记事本编写的”,当时就觉得这些人实在太厉害了,代码提示和自动补全都不用,现在 想想,可能是外行看到他们使用灵活+强 大的 VIM 或者 EMACS 了吧。_

我的补充:

查找包含 logField 又包含 open 的文件: 用 grep "logFileId" *.tbc|grep "open"

最新文章

  1. 流程控制和循环.png
  2. 浅谈C++之冒泡排序、希尔排序、快速排序、插入排序、堆排序、基数排序性能对比分析之后续补充说明(有图有真相)
  3. Javascript ES6
  4. javascript——马步之Array篇
  5. Python---十年语言之首
  6. iOS发展系列II - UILabel 使用摘要
  7. java中的静态变量
  8. Spring-cloud(四)服务发现与消费:ribbon的使用
  9. subsets(子集)
  10. BZOJ_2795_[Poi2012]A Horrible Poem_hash+暴力
  11. 小程序蓝牙BLE——自动连接设备(手环)
  12. SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法
  13. windows多线程同步--信号量
  14. android开发心得之知识的量变到质变
  15. Django 连接Mysql异常处理
  16. 《Head First Java》读书笔记
  17. Java运行时,各种类型存储介绍
  18. stopPropagation()阻止事件向父容器传递
  19. Spring初学之annotation实现AOP前置通知和后置通知
  20. ng-include

热门文章

  1. uni-app学习笔记之----不同平台,独立设置
  2. 【vcpkg】使用vcpkg安装库
  3. oracle导出csv文件后导入mysql
  4. 403 forbidden 与 413Too Large
  5. Angular中播放RTSP
  6. CDO学习1 CDO简介
  7. ToLua中判断引用的C#对象是否为nil
  8. wpf treeview 新增右键菜单
  9. 修改Linux终端默认编辑器,实现代码高亮
  10. redis-RedisTemplate.opsForValue 常用方法