1、介绍
相对于现在的 Windows 系统,UNIX/Linux 本身是没有图形界面的,我们通常在 UNIX/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件,类似 Windows95 之前的 Windows 的图形界面实则也只是运行在 DOS 环境的一套软件;
Linux 上的这套软件以前是 XFree86,现在则是 xorg(X.Org),而这套软件又是通过 X 窗口系统(X Window System,也常被称为 X11 或 X)实现的,X 本身只是工具包及架构协议,而 xorg 便是 X 架构规范的一个实现体,也就是说它是实现了 X 协议规范的一个提供图形界面服务的服务器,就像实现了 http 协议提供 web 服务的 Apache
如果只有服务器也是不能实现一个完整的桌面环境的,当然还需要一个客户端,我们称为 X Client,像如下几个大家熟知也最流行的实现了客户端功能的桌面环境 KDE,GNOME,XFCE,LXDE ;在 Linux 上你可以自己选择安装不同的桌面环境,甚至可以定制自己的专属桌面
2、shell
2.1 linux终端
通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)
比较常见的终端模拟器: gnome-terminal,Konsole,xterm,rxvt,kvt,nxterm ,eterm 和 xfce (xface桌面环境自带的 xfce-terminal) ;不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的
终端本质上是对应着 Linux 上的 /dev/tty 设备,Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的,Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录;在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,当你切换到其中一个终端后想要切换回图形界面,你可以按下[Ctrl]+[Alt]+[F7]来完成
2.2 shell
通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而是这个 Shell(壳);
有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe ;普通意义上的 Shell 就是可以接受用户输入命令的程序,它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节
同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”
UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言;该命令行提供了很简单的控制语句
在 Windows 操作系统下,有些用户从来都不会直接使用 Shell,然而在 UNIX 系列操作系统下,Shell 仍然是控制系统启动、X11 启动和很多其它实用工具的脚本解释程序
在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME)
2.3 输入、输出
2.3.1 输入
输入当然就是打开终端,然后按键盘输入,然后按回车,输入格式一般就是这类的
2.3.2 输出
输出会返回你想要的结果,比如你要看什么文件,就会返回文件的内容;如果只是执行,执行失败会告诉你哪里错了,如果施行成功那么会没有输出,因为linux的哲学就是:没有结果就是最好的结果
3、快捷键
按键 | 说明 |
Tab | 命令补全,补全目录、补全命令参数 |
Ctrl + c | 强行终止当前程序 |
Ctrl+d | 键盘输入结束或退出终端 |
Ctrl+s | 暂停当前程序,暂停后按下 Ctrl + q 恢复 |
Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a | 将光标移至输入行头,相当于Home键 |
Ctrl+e | 将光标移至输入行末,相当于End键 |
Ctrl+k | 删除从光标所在位置到行末 |
Alt+Backspace | 向前删除一个单词 |
Ctrl + Backspace | 命令状态下向前删除一个字符 |
Shift+PgUp | 将终端显示向上滚动 |
Shift+PgDn | 将终端显示向下滚动 |
4、历史命令
目前查看历史命令有三种方法
1) 向上键↑,恢复你之前输入过的命令
2) history 命令查看之前的命令操作
3) Ctrl + r 关键字搜索之前使用过的命令
5、通配符
通配符是一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名、参数名);当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正字符
Shell 在“参数值”中遇到了通配符时,Shell 会将其当作路径或文件名在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理;总之,通配符实际上就是一种 Shell 实现的路径扩展功能;在通配符被处理后, Shell 会先完成该命令的重组,然后继续处理重组后的命令,直至执行该命令
通配符 | 说明 |
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[!list] | 匹配 除list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,...} | 匹配 string1 或 string2 (或更多)其一字符串 |
{c1..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
6、帮助命令
目前查看命令的详细信息有 三种 方法
lLinux 环境中,如果你遇到困难,可以使用man命令,它是Manual pages的缩写
l想要获得更详细的帮助,你还可以使用info命令,不过通常使用man就足够了
l如果你知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,那么你可以使用--help参数
6.1 区段
要查看相应区段的内容,就在 man 后面加上相应区段的数字即可
#man 1 ls |
6.2 内容
可能存在其它部分内容,但这些部分没有得到跨手册页的标准化。常见的例子包括:OPTIONS(选项),EXIT STATUS(退出状态),ENVIRONMENT(环境),BUGS(程序bug),FILES(文件),AUTHOR(作者),REPORTING BUGS(已知bug),HISTORY(历史)和 COPYRIGHT(版权)
6.3 操作
man 手册中的内容很多,你可能不太容易找到你想要的结果,不过幸运的是你可以在 man 中使用搜索/<你要搜索的关键字>,查找完毕后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处;使用Space(空格键)翻页,Enter(回车键)向下滚动一行,或者使用j,k(vim 编辑器的移动键)进行向前向后滚动一行。按下h键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less工具的帮助),按下q退出