Linux第二节基本概念及操作

一、linux终端

使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)。比较常见的终端模拟器: gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm 。目前实验中的终端程序是 xfce 桌面环境自带的 xfce-terminal 。不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的。

终端本质上是对应着 Linux 上的 /dev/tty 设备,Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的,Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录。在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,不过在在线实验环境中可能无法切换,因为特殊功能按键会被主机系统劫持。当切换到其中一个终端后想要切换回图形界面,可以按下[Ctrl]+[Alt]+[F7]来完成。

二、Shell

通常在图形界面中对实际体验带来差异的是 Shell(壳)。有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。

UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。当然这一点也有别于 Windows 下的命令行,虽然该命令行也提供了很简单的控制语句。在 Windows 操作系统下,有些用户从来都不会直接使用 Shell,然而在 UNIX 系列操作系统下,Shell 仍然是控制系统启动、X11 启动和很多其它实用工具的脚本解释程序。

在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),但我们的环境中使用的分别是 zsh 和 xfce。

三、命令行操作体验

创建一个名为文件,touch是一个命令

touch file

进入一个目录,cd是一个命令

cd /etc/

查看当前所在目录

pwd

四、重要快捷键

[Tab]

使用Tab键来进行命令补全,Tab键一般是在字母Q旁边,这个技巧给你带来的最大的好处就是当你忘记某个命令的全称时可以只输入它的开头的一部分,然后按下Tab键就可以得到提示或者帮助完成

不止补全命令,补全目录、补全命令参数都是没问题的

[Ctrl+c]

无意输入了一个不知道的命令,或者错误地使用了一个命令,导致在终端里出现了无法预料的情况,比如,屏幕上只有光标在闪烁却无法继续输入命令,或者不停地输出一大堆不想要的结果。想要立即停止并恢复到你可控的状态,可以使用Ctrl+c键来强行终止当前程序(它并不会使终端退出)。

当看到终端没有任何反应或提示,也不能接受输入时,可能只是运行的程序需要耐心等一下,无需急着按Ctrl+c。

其他一些常用快捷键

Ctrl+d 键盘输入结束或退出终端

Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行

Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg

Ctrl+a 将光标移至输入行头,相当于Home键

Ctrl+e 将光标移至输入行末,相当于End键

Ctrl+k 删除从光标所在位置到行末

Alt+Backspace 向前删除一个单词

Shift+PgUp 将终端显示向上滚动

Shift+PgDn 将终端显示向下滚动

利用历史输入命令,使用键盘上的方向上键↑。

五、使用通配符

通配符是一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名、参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正字符。

终端里面输入的通配符是由 Shell 处理的,不是由所涉及的命令语句处理的,它只会出现在命令的“参数值”里(它不能出现在命令名称里, 命令不记得,那就用Tab补全)。当 Shell 在“参数值”中遇到了通配符时,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}

六、在命令行中获取帮助

在 Linux 环境中,如果遇到困难,可以使用man命令,Manual pages的缩写。

Manual pages 是 UNIX 或类 UNIX 操作系统中在线软件文档的一种普遍的形式, 内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,甚至是抽象的概念。用户可以通过执行man命令调用手册页。

获得某个命令的说明和使用方式的详细介绍:

$ man

查看 man 命令本身的使用方式,可以输入:

man man

man 手册里面的内容都是英文的,man涉及了 Linux 使用过程中的方方面面。为了便于查找,man 手册被进行了分册(分区段)处理,在 Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段,安排如下:

1 一般命令

2 系统调用

3 库函数,涵盖了C标准函数库

4 特殊文件(通常是/dev中的设备)和驱动程序

5 文件格式和约定

6 游戏和屏保

7 杂项

8 系统管理命令和守护进程

要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:

$ man 1 ls

会显示第一区段中的ls命令 man 页面。

所有的手册页遵循一个常见的布局,一般包括以下部分内容:

NAME(名称)该命令或函数的名称,接着是一行简介。

SYNOPSIS(概要)对于命令,正式的描述它如何运行,以及需要什么样的命令行参数。对于函数,介绍函数所需的参数,以及哪个头文件包含该函数的定义。

DESCRIPTION(说明)命令或函数功能的文本描述。

EXAMPLES(示例)常用的一些示例。

SEE ALSO(参见)相关命令或函数的列表。

也可能存在其它部分内容,但这些部分没有得到跨手册页的标准化。常见的例子包括:OPTIONS(选项),EXIT STATUS(退出状态),ENVIRONMENT(环境),BUGS(程序漏洞),FILES(文件),AUTHOR(作者),REPORTING BUGS(已知漏洞),HISTORY(历史)和 COPYRIGHT(版权)。

通常 man 手册中的内容很多,可以在 man 中使用搜索/<要搜索的关键字>,查找完毕后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。使用Space(空格键)翻页,Enter(回车键)向下滚动一行,或者使用j,k(vim 编辑器的移动键)进行向前向后滚动一行。按下h键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less工具的帮助),按下q退出。

想要获得更详细的帮助,还可以使用info命令。如果知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,可以使用--help参数,如:

$ ls --help

七、可以输出图形字符的命令banner

$ sudo apt-get update

$ sudo apt-get install sysvbanner

-w参数指定打印宽度,因为我们的环境在屏幕中显示比较小,必须要加上宽度限制。

也可以使用默认已经安装的一个命令printerbanner。

图片版详见http://t.cn/RaWiBVQ

你可能感兴趣的:(Linux第二节基本概念及操作)