ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux快速编辑Shell命令行(转)

Linux快速编辑Shell命令行(转)

原创 Linux操作系统 作者:ilg 时间:2019-05-29 12:12:07 0 删除 编辑
Linux快速编辑Shell命令行(转)

  前言

  快速编辑 Shell 命令行

  想起听得最多的就是 *nux 的初学者说最烦就是 Linux / Unix 的命令行,所以就有了这个题目。如果你是个性急的人可以先尝试下文章结尾的综合练习体会一下 Shell 的快捷键,也许这样再看全文会更有趣。

  其实,命令行适应了,可能比图形界面更有效率。至少对我来说是这样,我现在一看见那些所谓的 IDE 就有眼花缭乱感觉,真正用来写代码的面积都被挤到只有一包烟那么大了,呵呵。有时为找个选项花很长时间找对话框,也很痛苦吧。

  为什么那么多人害怕命令行呢?

  我想最大的问题就是很多人觉得命令行的输入和编辑都很“慢”,很低效。但是对于 Linux / Unix 这类从内核得到整体架构,再到哪怕是最小的一个应用小软件都以文本来支撑的系统,没有娴熟的命令行技巧确实是玩不转的。希望本文能对你提高命令行使用效率有帮助。

  但是由于 Linux / Unix 的发行版实在是太多,Shell 的主流版本也有好几个,所以,本文所说的内容,可能和你的系统有出入,但是思想是一样的,在你自己的平台上摸索一下,你也会找到你的平台太下编辑命令行的技巧和规律。

  另外,Shell 的很多快捷键和 VIM, Emacs 的快捷键是相通的,所以,熟练使用 Shell 快捷键,对适应 *nux 下的其他软件有很好的启示作用。

  命令行的技巧除了本文提到的,还有很多,你可以自己慢慢积累,收集和体会。当然如果你经常需要输入很繁琐的命令,那么建议你自己写 Shell 脚本,定义 function, alias 等技巧来实现。

  我目前使用的系统配置

  内核: 2.6.14-gentoo-r5;

  系统发行版: Gentoo Linux -- 2005.1;

  Shell 版本: Gun bash -- 3.00.16

  X Server: Xorg -- 6.8.2;

  窗口系统: Gnome -- 2.10.1;

  终端: gnome-terminal -- 2.10.0;

  现在就开始吧

  一、自动补齐:[Tab]

  

  这个技巧很多人都应该会了,就是当输入命令,目录或者是文件名的时候按 [Tab] 键。系统就会帮你补齐可能要输入的东西,如果有多个选择系统会列表出来。你可以看清楚之后再多输入一个或多个 charactor ,再按[Tab]。

  实验:

  
$ ec

  按[Tab], 补齐为:

  
$ echo

  

  二、查找和执行历史命令:[Ctrl + r], [Ctrl + p], [Ctrl + n]

  

  在终端中按捉 [Ctrl] 键的同时 [r] 键,出现提示:(reverse-i-search), 此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。当显示到你想找的合适的历史命令的时候,直接[Enter],就执行了历史命令。

  另外, [Ctrl + p][Ctrl + n] 快速向前或向后滚动查找一个历史命令,对于快速提取刚刚执行过不久的命令很有用。

  实验:

  
$ echo "hello, world" [Enter]

  $ hello, world

  

  [Ctrl + r ] (接着输入 echo)

  
(reverse-i-search)`ch': echo "hello,world" [Enter]

  $hello,world

  

  三、取消本次命令输入:[Ctrl + c]

  

  这个快捷键可以使你从一个可能你已经厌烦了的命令中安全地退出!!也许是个不值一提的小技巧,但是经验告诉我它很有用。很多 Unix 初学者会习惯性地按 [Enter] 以摆脱困境,但是说不定就会发生灾难性的事件,譬如删除了一个重要的配置文件:(

  四、光标跳转快捷键:

  

  为了方便大家记忆,加点英语助记语在后面 :)

  [Ctrl + a] 跳转至命令行首 Ahead of line

  [Ctrl + e] 跳转至命令行尾 End of line

  [Ctrl + f] 向前跳转一个字符 jump Forward one character

  [Ctrl + b] 向后跳转一个字符 jump Backward one character

  [Alt + f] 向前跳转到下一个字的第一个字符

  [Alt + b] 向后跳转到下一个字的第一个字符

  

  五、编辑命令的快捷键:

  

  [Ctrl + w] 向后删除一个字,用来对付刚刚输入的错误字很有用

  [Ctrl + u] 从光标当前位置删除所有字符至行首

  [Ctrl + k] 从光标当前位置删除所有字符至行尾

  [Ctrl + d] 删除光标当前位置的字符

  [Ctrl + y] 粘贴最后一个被删除的字

  [Alt + d] 删除从光标当前位置,到当前字的结尾字符

  

  六、配置提示;

  

  如果你是用 Gnome 下的终端窗口 gnome-teminal ,上面的 Gnu Shell 快捷键会跟 Gnome 的窗口快捷键有冲突。

  那么你需要做如下配置:

  在 gnome-terminal 的菜单栏中选 "Edit" -] "Keyboard Shortcuts ..."打开 "Keyboard Shortcuts" 对话框,并勾选下面两个复选项

  
"Disable all menu access keys (such as Alt+f to open File menu)"

  "Disable menu shortcut key (F10 by default)"

  

  至于 KDE 下应该怎么配 KDE 的终端窗口,请熟悉 KDE 的朋友补充一下,我很久没用 KDE 了,也没装。

  七、综合练习;

  

  上面列举的快捷键,练习2~3天应该就能熟练,为了大家快速理解和记忆,我们来做个小小的综合练习:

  第一步:echo

  
$ echo "hello, world." [Enter]

  

  我们先输入

  echo "hello, world" 这个命令,然后回车,也就看到了终端的输出:

  
$ hello, world.

  

  第二步:[Ctrl + r]

  我们试试找出历史命令 echo "hello, world.",这时,我们按[e],[c],[h]这三个键,这个历史命令大概已经找到了,

  终端的显示应该是这样:

  
(reverse-i-search)`ech': echo "hello,world."

  

  现在,如果[Enter]就会再一次执行这个命令,但我们现在来练习一下命令行的编辑。

  

  第三步:[Ctrl + a]

  

  这样,我们就取出了历史命令 echo "hello, world.",并且将光标定位到行首,此时,光标应该在 echo 命令的 e 字符上高亮。

  终端的显示应该是这样:

  
$ echo "hello,world"

  第四步:[Alt + d]

  

  删除了命令 echo, 并且光标仍然在行首,终端显示为:

  
$ "hello, world."

  第五步:输入命令 "printf"

  

  我们尝试一下用 Posix 的系统调用 printf 来替代 shell 命令 echo,输入[p][r][i][n][t][f],此时终端显示为:

  
$ printf "hello, world."

  

  并且光标在 f 字符后面高亮。

  

  第六步:[Ctrl + e]

  

  光标跳转到命令行尾部。

  

  第七步:[Ctrl + b]

  

  光标后退一个字符,此时光标应处于后双引号 " 处高亮。

  

  第八步:输入换行转义符 " "

  

  输入[][n] ,此时的终端显示应该为:

  
$ printf "hello, world. "

  

  可以[Enter]执行了。

  八、关于本文;

  
当你熟练的时候,上面的步骤应该在20秒之内就完成了吧,希望大家都能成为命令行的高手!!!

  

本文来自:http://www.linuxpk.com/40355.html

-->linux电子图书免费下载和技术讨论基地

·上一篇:TCSHshell变量和特征配置

·下一篇:Linux和DOS的FORMAT命令区别
 
     最新更新
·Linux指令篇:终端机管理--clear

·Linux基础系列教程

·将.c文件更名时使用的完美脚本

·详解Bash命令行处理

·RPM常用命令及RPM中文手册

·Linux的kill命令与信号控制

·Linux文件查找命令find,xargs详述

·Linux下的编辑器——vi大全

·常用命令之make常见规则解析

·另类技术:怎样显示一个字呢?

·软件安装之--RPM命令大全

·vi中将逗号和回车互换的技巧

·Linux指令篇:档案目录管理--rmdir

·Linux指令篇:档案目录管理--split

·Linux指令篇:档案目录管理--touch

·Linux指令篇:档案目录管理--rm

·Rpm命令手册

·Linux指令篇:日期时间排程--at

·Linux指令篇:日期时间排程--cal

·Linux指令篇:日期时间排程--crontab

·Linux指令篇:日期时间排程--date

·Linux指令篇:日期时间排程--sleep

·Linux指令篇:日期时间排程--time

·Linux指令篇:档案目录管理--mv

·Linux指令篇:档案目录管理--more

·Linux指令篇:档案目录管理--mkdir

·Linux指令篇:档案目录管理--cat

·Linux指令篇:档案目录管理--cd

·Linux指令篇:档案目录管理--chmod

·Linux指令篇:档案目录管理--chown


关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 网址大全 | 友情链接 | 免费注册

Copyright © 2004 - 2007 All Rights Reserved

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14102/viewspace-117243/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-06-18

  • 博文量
    1715
  • 访问量
    1300120