常用的linux shell(bash)快捷键
2017-08-01 15:27
1.控制命令
Ctrl + l:清屏(与clear命令效果相同)
Ctrl + o:执行当前命令,并选择上一条命令
Ctrl + s:阻止屏幕输出(当前正在执行的命令不在打印信息)
Ctrl + q:允许屏幕输出(使用Ctrl+s命令后,可以用Ctrl+q恢复)
Ctrl + c:终止当前正在执行的命令
Ctrl + z:挂起命令,把当前进程转到后台运行,使用fg命令恢复。
Ctrl + d : 退出当前 Shell S、Q、C、Z 是由终端设备处理的,可用 stty 命令设置。
2.编辑命令
光标移动
Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + f :前移(向右移动)一个字符
Ctrl + b :后退(向左移动)一个字符
Alt + f :前移(向右移动)一个单词
Alt + b :后退(向左移动)一个单词
Ctrl + xx:在命令行首和光标之间移动
3.文本修改
补全、删除、粘贴
tab : 自动补全命令
Ctrl + u :从光标处删除至命令行首
Ctrl + k :从光标处删除至命令行尾
Ctrl + w :从光标处删除至字首
Alt + d :从光标处删除至字尾
Ctrl + d :删除光标处(或光标后)的字符(如果光标前后都没有字符,即命令行为空的时候,则会退出shell)
Ctrl + h :删除光标前的字符(与backspace键相同)
Alt + Backspace:与 Ctrl + w 类似,分隔符有些差别
Ctrl + y :粘贴至光标后
4.改变大小写
Alt + c :从光标处更改为首字母大写的单词
Alt + u :从光标处更改为全部大写的单词
Alt + l :从光标处更改为全部小写的单词
5.交换字符、单词位置
Ctrl + t :交换光标处和之前的字符(ESC+t相同)
Alt + t :交换光标处和之前的单词
6.重新执行命令
Ctrl + p:历史中的上一条命令
Ctrl + n:历史中的下一条命令
Alt + .:使用上一条命令的最后一个参数(会直接在当前光标位置显示)
Ctrl + r:搜索之前使用过的命令
Ctrl + g:从历史搜索模式退出
7.Bang (!) 命令
Bang命令算不上快捷键键,但是使用可以快捷的进行一些操作,比如重新执行之前命令、修改上一条命令并执行等等。
!!:执行上一条命令
!cc:执行最近的以cc开头的命令,如!l会执行ls命令
!$:打印上一条命令的最后一个参数,并回车执行。与Alt + .相似,但是会自动执行
!*:上一条命令的所有参数 !cc:p:仅打印以!cc的输出,但不执行,如!l:p会显示ls
! : p : 打 印 输 出 ! :p:打印输出! :p:打印输出!的输出
^blah:删除上一条命令中第一个blah,然后执行
blahfoo:将上一条命令中的 blah 替换为 foo,然后执行
blahfoo^:将上一条命令中所有的 blah 都替换为 foo,然后执行
1_ctrl键组合
ctrl+a:光标移到行首。
ctrl+e:光标移到行尾。
ctrl+b:光标左移一个字母, 向行首移动一个字符
ctrl+f: 光标右移,向行尾移动一个字符
ctrl+c:杀死当前进程。
ctrl+d:退出当前 Shell,从Shell提示中注销并关闭,使用该快捷键就不必键入exit
ctrl+h:删除光标前一个字符,同 backspace 键相同。
ctrl+l:清屏,相当于clear。
ctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history
ctrl+k:清除光标后至行尾的内容。
ctrl+u: 清除光标前至行首间的所有内容。
ctrl+w: 移除光标前的一个单词
ctrl+t: 交换光标位置前的两个字符(包括光标所在的当前位置)
ctrl+y: 粘贴或者恢复上次的删除
ctrl+d: 删除光标所在字母;注意和backspace以及ctrl+h的区别,这2个是删除光标前的字符
ctrl+z : 把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ,到后台,然后fg,重新恢复
2_esc组合
esc+d: 删除光标后的一个词
esc+f: 往右跳一个词
esc+b: 往左跳一个词
esc+t: 交换光标位置前的两个单词。
3_查看系统性能
iostat, vmstat 用来查看系统性能。
4_ Shell 脚本
$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直到$9为第九个参数。
特殊变量KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲测试执行脚本时包含的命令行参数…*将命令行中提供的所有参数作为一个单词处理,它将多个参数看成 一个参数。
变量$@将命令行中提供的所有参数作为同一个字符串中的多个单词处理。
shift命令能够改变命令行参数的相对位置。默 认将每个参数变量左移一个位置
使用-t指定一个计时器,计时数满还未输入,read返回一个非0的退出状态。
使用-n指定输入的字符个数,输入达到预定数目时,就自动结束输入
使用-s使输入不显示在终端(例如输入密码)
5_Shell脚本实现简单分割字符串
在shell 中以,split 字符串如下,str=“aaa,bbb,ccc,ddd”,可以采用如下两种形式
[xxx@haiyz ~]$ str=“aaa,bbb,ccc,ddd”
[xxx@haiyz ~]$ echo s t r a a a , b b b , c c c , d d d [ x x x @ h a i y z ] str aaa,bbb,ccc,ddd [xxx@haiyz ~] straaa,bbb,ccc,ddd[xxx@haiyz ] echo $str | awk -F , '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲' aaa [xxx@haiy… echo $str | awk -F , '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 3}̲' ccc [xxx@haiy… echo $str | awk -F , '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 0}̲' aaa,bbb,ccc,d… echo s t r ∣ c u t − d " , " − f 1 a a a [ x x x @ h a i y z ] str | cut -d "," -f 1 aaa [xxx@haiyz ~] str∣cut−d","−f1aaa[xxx@haiyz ] echo s t r ∣ c u t − d " , " − f 2 b b b [ x x x @ h a i y z ] str | cut -d "," -f 2 bbb [xxx@haiyz ~] str∣cut−d","−f2bbb[xxx@haiyz ] echo s t r ∣ c u t − d " , " − f 3 c c c 都 能 达 到 目 的 , 但 是 由 于 文 件 很 大 , 有 很 多 行 , 上 述 方 式 需 要 开 辟 管 道 , 会 启 动 新 进 程 , 效 率 很 低 下 。 再 举 一 个 例 子 [ x x x @ h a i y z ] str | cut -d "," -f 3 ccc 都能达到目的,但是由于文件很大,有很多行,上述方式需要开辟管道,会启动新进程,效率很低下。 再举一个例子 [xxx@haiyz ~] str∣cut−d","−f3ccc都能达到目的,但是由于文件很大,有很多行,上述方式需要开辟管道,会启动新进程,效率很低下。再举一个例子[xxx@haiyz ] info=‘abcd;efgh’
[xxx@haiyz ~]$ fstr=echo $info | cut -d \; -f 1
[xxx@haiyz ~]$ sstr=echo $info | cut -d \; -f 2
[xxx@haiyz ~]$ echo i n f o a b c d ; e f g h [ x x x @ h a i y z ] info abcd;efgh [xxx@haiyz ~] infoabcd;efgh[xxx@haiyz ] echo f s t r a b c d [ x x x @ h a i y z ] fstr abcd [xxx@haiyz ~] fstrabcd[xxx@haiyz ] echo $sstr
efgh
这里主要是用了cut工具的-d和-f参数:
-d:指定字段的分隔符,默认的字段分隔符为“TAB”
-f:显示指定字段的内容;
关于cut工具其他参数可参考这里:cut命令