终端快捷键:
Ctrl + a/Home 切换到命令行开始 Ctrl + e/End 切换到命令行末尾 Ctrl + l 清除屏幕内容,效果等同于 clearCtrl + u 清除剪切光标之前的内容 Ctrl + k 剪切清除光标之后的内容 Ctrl + y 粘贴刚才所删除的字符 Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了) Ctrl + c 终止命令 ctrl + o 重复执行命令 Ctrl + d 退出 shell,logout Ctrl + z 转入后台运行,但在当前用户退出后就会终止 Ctrl + t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符 Alt + t 交换当前与以前单词的位置 Alt + d 剪切光标之后的词 Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符) Ctrl+(x u) 按住 Ctrl 的同时再先后按 x 和 u,撤销刚才的操作 Ctrl+s 锁住终端 Ctrl+q 解锁终端 !! 重复执行最后一条命令 history 显示你所有执行过的编号+历史命令。这个可以配合!编辑来执行某某命令 !$ 显示系统最近的一条参数 最后这个比较有用,比如我先用 cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用 vim 编辑。 一般的做法是先用 显示最后一条命令,然后用 Home 移动到命令最前,删除 cat,然后再输入 vim 命 令。其实完全可以用 vim !$来代替
关机和重启命令
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"