Linux命令行键盘快捷键的使用

每次看到一些人使用Linux命令行的时候使用各种ctrl+一个键的时候感觉特别酷!可是自己又不懂到底有哪些,于是借着半年学习计划的东风,仔细学习了一下,下面都是我今天学习之后总结归纳出来的。
ctrl+H:信号是erase,删除键入的最后一个字符。
ctrl+W:信号是werase,删除键入的最后一个单词。
ctrl+U:信号是kill,清除剪切光标之前的内容。
ctrl+C:信号是intr(interrupt),停止正在运行的程序。
ctrl+\:信号是quit,停止程序并将此时计算机内存中的内容制作一份副本,保存在core(计算机内存的老名称)文件中,程序员可以通过使用特殊的工具分析core文件,查找出什么地方出了问题。
ctrl+S:信号是stop,暂停屏幕显示,我们在跑大量的股票数据的时候可以使用它来查看现在出现问题的地方,不用退出了。
ctrl+Q:信号是start,重新启动屏幕显示,当我们排查完错误输入这个指令,屏幕会将暂停时生成的大量的新数据行显示出来,这些数据将飞速冲过。
ctrl+D:信号是eof,指示已经没有数据,当程序需要用户输入内容的时候输入表示输入结束,在命令行输入表示停止shell,注销用户。如果你在Bash的命令行输入了:IGNOREEOF=3的命令之后,你要输入ctrl+D三次之后再输入一次ctrl+D才能停止shell,输入IGNOREEOF=0,之后你输入一次ctrl+D就退出了,默认情况下是输入一次ctrl+D就退出的。
ctrl+Z:信号是susp(suspend挂起),暂停一个程序,程序会停止运行,输入fg命令重新启动程序
ctrl+M:返回,等同于回车键。
ctrl+J:换行,等同于回车键。
ctrl+L:清除屏幕内容,效果等同于clear。
ctrl+A:光标切换到命令行开始。
ctrl+E:光标切换到命令行末尾。
ctrl+K:剪切清除光标之后的内容。
ctrl+Y:粘贴刚才所删除的字符。
ctrl+R:在历史命令中查找 ,输入关键字就调出以前的命令了。
stty -a:查看磁盘的影射情况,其中一部分内容是:
intr = ^C; quit = ^\; erase = l; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
其中^表示ctrl的意思,也就是说这些内容告诉了你使用什么键能够输出什么样的信号。
stty kill d:可以修改kill信号的键盘映射,将ctrl+U改成d,修改了之后再命令行输入d就是删掉一整行命令。可以用:stty kill ^U修改回ctrl+U。其他的信号修改方式跟这个类似。
stty:将显示一个简短的报告,显示那些默认值已经改变的键盘映射,刚刚修改了kill的键盘映射,使用stty就可以看到修改成了什么。
printenv:显示所有的环境变量。
echo后面跟一个$(美元符号)字符和变量的名称都可以显示任何环境变量的值,例如echo $LANG,显示现在的语言和编码格式。

Linux Shell脚本命令行参数的写法

$0 —- 当前程序的名称,实际上是一个内部参数,不同于$1,$2….因为它必须有!

$# —- 传递给程序的总的参数数目,也就是那个传说中的数组大小

$? —- 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。

$* —- 传递给程序的所有参数组成的字符串。

$@ —- 以”参数1″ “参数2” … 形式保存所有参数

$$ —- 本程序的(进程ID号)PID

$! —- 上一个命令的PID 命令行指令

$ test.sh f1.c f2.c 脚本举例:

if [ $# -eq 0 ];then
echo "no arguments"
else
for args in $@
echo $args
fi

其中$#表示参数的个数,$@取到所有的参数值。