设想这样一个场景:你输入了 apt-get update ,然后发现需要 sudo 权限才能运行。除了通常的按下向上箭头,然后移动到行首添加 sudo 再运行,你可以输入
按下回车后,shell会生成 sudo apt-get update ,也就是说, !! 被替换为上一条命令的羡友内容。
翻译过来可以理解为截断命令,并且重新粘贴截断内容。这个 *** 作类似于emacs中的快捷键。我们可以使用 ctrl + K 来截断光标后方的命令内容,然后用 ctrl + Y 来重新粘贴截断的内容。
例如:
注意 ctrl + Y 可以多次粘贴。
而如果想要截断光标之前的内容,可以用 ctrl + U 。(事实上很多emacs的快捷键都可以直接在shell环境下使用)
在开发和调试过程中,我们常常会使用 tail -f 命令来追踪日志的输出。这种方式有一个问题,即我们兄液槐无法回溯更早的日志内容。因此我推荐之后都使用 less +F 命令来追踪日志内容。这个命令同样是从文件的尾部开始输出,然后在文件内容更新时输出更新内容。在使用这个命令时,可以按下 ctrl + C 组合键,然后用上下箭头就可以遍历整个文件了。之后按下 shift + F 来回到尾部追踪的模式。
ctrl + x + e (按住ctrl,然后先按下x,再按下e),就可以d出一个编辑器来编辑你当前的命令埋简。
设想如下的情形:
我们要对一个host进行多次 *** 作,而每次我们都要重新输入一遍这个host的!这在调试和维护过程中是非常繁琐的。 alt + . 就为我们提供了一个非常便捷的功能!按下这个命令可以粘贴上一条命令的参数。
多测试在用shell进行字符串截断时常常会出现一些意想不到的状况,总结了以下,大部分情况是使用的罩携者echo命令导致的。
cat,read等命令读入tab
delimited文本,然后用echo输出的时候,文本里面的tab会变成space空格,所以在你尝试以物薯tab为分隔符分割文本的时候要特别注意这种情况。
事实上,echo除了
-n
options
之外,常用选项还有:
-e:启用反斜线控制字符的转换
-E:关闭反斜线控制字符的转换(预设如此)
-n:取消行末之换行符号(隐厅与
-e
选项下的
\c
字符同意)
sed -nr '/task id/{s/.*<task id="橡扰([^"]+)"\sbusiness="([^"]+)".*/\1,\2/p}' test.xml或者:
awk '/task id/{split($0,a,"(=\")|(\"洞御 )")print a[2]","a[4]}' test.xml或者:
sed -n '/task 梁颤旦id/{s/"//gs/^ *//p}' test.xml | awk -F"[= ]" '{print $3","$5}'欢迎分享,转载请注明来源:内存溢出
评论列表(0条)