Linux概念和终端快捷键

Linux是什么


芬兰有三宝:诺基亚圣诞老人Linus Torvalds

Linus Torvalds是Linux之父。他根据Minix系统的代码,参照Unix系统的设计,写出了第一份的Linux内核。

Linus的伟大之处在于他将Linux内核开源。从此千千万万的优秀程序员和黑客都参与到Linux的相关开发当中,使得Linux成为类Unix的多进程、多用户的操作系统。

Linux系统可能只存在于专业人员当中,普通用户根本不知道windows外还有个Linux,更不要说Linux各种发行版和其他类Unix系统了。

学习Linux网上也有各种资料,个人觉得网上关于Linux的概念和体系这篇文章写得不错。看完这篇对Linux的宏观机制必定有所帮助。

至于学习Linux系统编程的书籍可以看看:

Unix环境高级编程(APUE)
Linux程序设计

Linux重定向


Linux的shell中支持输入输出重定向,用符号”<”和”>”来表示。用0、1、2分别表示标准输入标准输出标准错误

1
2
3
4
5
$ cat < a.txt //将标准输入重定向到a.txt,等同于cat 0< a.txt
$ ls > a.txt //将标准输出重定向到a.txt,等同于ls 1> a.txt
$ ls >> a.txt //将标准输出重定向到a.txt,不覆盖文件,在文件尾部添加
$ ls 2> a.txt //将标准错误重定向到a.txt
$ 2>&1 //三个标准输入输出之间也可以实现重定向,比如这句是将错误信息重定向到标准输出

Linux下面还有一个特殊的文件:/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时候,就可以将输出重定向到/dev/null

假如想要正常输出和错误信息都不显示,则可以把标准输出和标准错误都重定向到/dev/null,例如:

1
2
3
4
5
$ ls 1> /dev/null 2> /dev/null
//等同于
$ ls > /dev/null 2>&1
//注意这里顺序不能更改,因为shell是从左到右执行的,如果写成
$ ls 2>&1 > /dev/null //这里则表示将标准错误重定向到终端(标准输出默认输出到终端),再将标准输出重定向到文件/dev/null

Linux终端快捷键


在命令终端中可以通过下面快捷键快速操作:

Tab: 命令、文件名等自动补全,按两次显示所有可选项

Ctrl+s:使终端发呆,静止,使得快速输出的终端屏幕停下来

Ctrl+q:退出Ctrl+s引起的发呆

Ctrl+z:使得正在运行在终端的任务,运行在后台

Ctrl+c:中断终端正在执行的任务

Ctrl+r:快速检索历史命令

Ctrl+a:光标回到命令行首

Ctrl+e:光标回到命令行尾

Ctrl+w:删除光标到行首的字符

Ctrl+k:删除光标到行尾的字符

Ctrl+u:删除整个命令行的字符

对终端本身的操作快捷键:

Shift+Ctrl+T:新建标签页

Shift+Ctrl+W:关闭标签页

Ctrl+PageUp:前一标签页

Ctrl+PageDown:后一标签页

Shift+Ctrl+PageUp:标签页左移

Shift+Ctrl+PageDown:标签页右移

Alt+1:切换到标签页1

Alt+2:切换到标签页2

Alt+3:切换到标签页3

Shift+Ctrl+N:新建窗口

Shift+Ctrl+Q:关闭终端

终端中的复制/粘贴:

Shift+Ctrl+C:复制

Shift+Ctrl+V:粘贴