基础的Linux Shell技巧小结

一、自动补齐:[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"

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

$ printf "hello, world.n"

可以[Enter]执行了。

(0)

相关推荐

  • Linux基础知识99问(五)

    五. 做好Linux的管理员:21问 70.如何检查Linux硬盘使用情况? 在Linux环境下,你可以使用df命令来查看硬盘的使用情况.下面就是一个df -T -h(-T参数:显示文件系统类型,-h参数用可读性较高的方式来显示信息)命令的输入实例: Filesystem Type Size Used Avail Use% Mountedon /dev/hda1 ext2 7.5G 4.7G 2.5G 65% / /dev/hda2 ext2 653M 6.6M 613M 1% /root /d

  • Linux系统之基础扫盲教程大全

    序言 如果大家都爱装逼,一般会偏爱使用安装最小化的liunx系统,那么你的系统就不带图形化的桌面功能,这样对于一个想装B的初学者来说,Liunx就是黑漆马虎,一望无际的黑屏,黑屏,如何快速的对liunx系统有个较为全面基础的认识呢?答:继续往下读,哈哈. 本篇目的就是让大家对linux系统有个全面的基础认知. 主要内容:网络,系统,cpu,内存,硬盘,进程等等常用的基础信息查看与基础功能设置. Linux系统时间相关 查看系统当前时间 [root@zlhpc ~]# date 2017年 02月

  • Linux基础命令日常积累

    今天又一次搞Linux生产环境搭建.这是种步骤很多,很繁琐而且又不得不做的事情.虽然做过很多次,但还是有很多步骤.命令不记得,每一次到处找资料很麻烦,于是将一些步骤记下,以便查找. 登录远程MySQL 复制代码 代码如下: mysql -h 192.168.1.100 -u root -p 给MySQl非root账户分配权限 给账号user1 密码为123456 的用户testDB数据库的所有表的select,insert,update,delete权限: 复制代码 代码如下: grant se

  • Linux学习基础

    1.什么是Linux? 准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于Linus Torvalds,在GPL(GNU General Public License)版权协议下发行, 任何人都可以自由的复制(copy), 修改(change), 套装分发(distribute),销售,但是不可以在分发时加入任何限制, 而且所有原码必须是公开的,所以任何人都可以无偿取得所有执行文件和原代码. 对于Linux用户和系统管理员来说,Linux是指包含Linux kernel.u

  • Linux基础知识99问(三)

    三. 走进Linux殿堂:35问 20.安装Linux,对硬件有什么要求? Linux对硬件要求很低,可以运行在386以上CPU,8M以上内存的IBM PC机上.但由于设备厂商的支持力度不够,所以Linux倒是对很多新设备的支持不是很好,新设备的驱动程序总是慢一步. 21.安装Linux需要做哪些准备? 1) 收集系统资料:记录下内存大小,CDROM接口类型,SCSI卡型号,网卡型号,鼠标类型,显卡芯片组.时钟芯片.显存大小等相关信息: 2) 检查CMOS设置,关闭病毒开发,设置其从光驱启动:

  • Linux网络服务器配置基础

    要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置.在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现.下面介绍基本的 TCP/IP网络配置文件. * /etc/conf.modules 文件 该配置文件定义了各种需要在启动时加载的模块的参数信息.这里主要着重讨论关于

  • 基础的Linux Shell技巧小结

    一.自动补齐:[Tab] 这个技巧很多人都应该会了,就是当输入命令,目录或者是文件名的时候按 [Tab] 键.系统就会帮你补齐可能要输入的东西,如果有多个选择系统会列表出来.你可以看清楚之后再多输入一个或多个 charactor ,再按[Tab]. 实验: $ ec 按[Tab], 补齐为: $ echo 二.查找和执行历史命令:[Ctrl + r], [Ctrl + p], [Ctrl + n] 在终端中按捉 [Ctrl] 键的同时 [r] 键,出现提示:(reverse-i-search),

  • Linux shell脚本基础学习详细介绍(完整版)第1/2页

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:编译

  • Linux Shell 数组建立及使用技巧

    linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 一对括号表示是数组,数组元素用"空格"符号分割开. 2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${ #a[@]} 用${#数组名

  • linux shell 解析命令行参数及while getopts用法小结

    目录 linux shell 解析命令行参数|getpots getpots linux shell 解析命令行参数|getpots demo: #!/bin/bash func() { echo "Usage:" echo "test.sh [-j S_DIR] [-m D_DIR]" echo "Description:" echo "S_DIR,the path of source." echo "D_DIR,

  • Linux Shell 数组的创建及使用技巧

    linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 一对括号表示是数组,数组元素用"空格"符号分割开. 2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${#a[@]} 5 用${#数组

  • Linux Shell脚本的编程之正则表达式

    一 正则表达式与通配符 1 正则表达式是用在文件中匹配符合条件的字符串,正则是包含匹配,grep,awk,sed等命令可以支持正则表达式 2 通配符是用来匹配符合条件的文件名,通配符是完全匹配,ls,find,cp这些命令不支持正则表达式,所以只能用Shell自己的通配符来进行匹配了. 二 基础正则表达式 这里引用兄弟连的测试文本 1 * 前一个字符匹配0次或任意多次 grep "a*" test_rule.txt 匹配所有内容,包括空白行(由于*可以匹配0次) grep "

  • ubuntu下linux常用指令小结

    来实验室将近一个月,几乎没碰window,一直在ubuntu下开发,然后想总结一下最近常用的linux指令. (0) su和sudo:得到root权限 su 切换到root用户 sudo command 切换到root用户,执行command,然后切换回当前用户 su liaohuqiang 切换回普通用户 (1) apt:用于安装软件包 apt list 根据名称列出软件包 apt show 显示软件包细节 sudo apt install 安装软件包 sudo apt remove 卸载软件

  • Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些特殊符号的过度使用而导致脚本难以调试.难以阅读. 这些特殊符号罗列出来大致如下: 复制代码 代码如下: # ; ;; . , / / 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || &~ ~

  • Linux shell常用的73条命令总结

    前言 使用Linux shell是一些程序员每天的基本工作,但我们经常会忘记一些有用的shell命令和技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.需要注意一点的是,有些用法需要在你的Linux系统里安装额外的软件.下面话不多说了,来看看详细的内容吧. 检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo "open" 让进程转入后台: Ctrl + z 将进程转到前台: fg 产生随机的十六进

  • linux shell之文件锁

    经常在 shell 脚本里要阻止其它进程,比如 msmtp 自带的mail queue 脚本,这个脚本的互斥做法是不正确的,下面介绍下发现的三个通过文件达到互斥的正确做法. 1. util-linux 的 flock 这个命令有两种用法:  flock LOCKFILE COMMAND  ( flock -s 200; COMMAND; ) 200>LOCKFILEflock 需要保持打开锁文件,对于第二种使用方式并不方便,而且 -s 方式指定文件句柄可能冲突.好处是不需要显式的解锁,进程退出后

随机推荐