Linux基础(2)/Linux 基本概念及操作

来源:互联网 发布:虚拟流量充值软件 编辑:程序博客网 时间:2024/04/28 07:51

Linux 基本概念及操作

  1. Linux的桌面环境

    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。
    而如今的windows操作系统则把图形界面的相关操作写入了内核,也就是说Unix/Linux发行版上的图形界面与windows的图形界面是两个概念。
    实验楼的一个图片很好的说明了这些概念之间的关系
    实验楼的一个图片

  2. Linux terminal/shell/command line

    1. terminal
      在图形界面下为了实现让我们在一个窗口中完成接受用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm。

      终端本质上是对应着Linux上的 /dev/tty 设备,Linux的多用户登陆就是通过不同的 /dev/tty 设备完成的。 Linux的设计哲学其中之一就是一切都是文件,包括硬件设备也是文件。可以执行 cd /dev/ 命令到dev文件夹下查看不同的设备文件。

      Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录,可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换。当你切换到其中一个终端后想要切换回图形界面,你可以按下[Ctrl]+[Alt]+[F7]来完成。

    2. shell
      shell是壳的意思,有壳就有核。这里的核就是指的 UNIX/Linux 内核。shell的主要功能是提供使用者使用的界面,接收使用者的输入。类似于DOS下的command和现在windows系统使用的cmd.exe。

      shell之所以被称之为shell是因为它隐藏了操作系统底层的细节,规范了用户的输入,即shell的使用按照一定的语法规则,我们可以说shell是一种编程语言。所以,通常我们提起shell,即认为它是一种用户交互界面,同时也是一种脚本控制语言

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

    3. 终端,Shell,“tty”和控制台(console)有什么区别?
      知乎—终端,Shell,“tty”和控制台(console)有什么区别?

      在计算机发展早起,terminal对应的是实体设备(相应的还有tty—teletypewriter),shell则是运行在terminal之上的软件。而如今,terminal也虚拟化了。有各类terminal可供选择,如:gnome-terminal,xfce等。同样,也有各种shell可以选择,如:bash,zsh,ksh,csh。

      用一句话概括,就是:terminal提供了输入和输出的可能;shell则实现了输入和输出,并且告诉使用者该如何输入和输出。

    4. 基本的command line
      用快捷键 [Ctrl]+[Alt]+[t] 打开terminal,打开终端后会自动运行 Shell 程序,然后我们就可以输入命令让系统来执行了。

      1. 快捷键

        按键 作用 tab 命令补全 Ctrl+c 终止当前程序(但不会退出terminal) Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行 Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg Ctrl+a 将光标移至输入行头,相当于Home键 Ctrl+e 将光标移至输入行末,相当于End键 Ctrl+方向键 光标移动一个单词 Alt+Backspace 向前删除一个单词 Shift+PgUp 将终端显示向上滚动 Shift+PgDn 将终端显示向下滚动
      2. 历史命令
        方向键

      3. 通配符
        通配符主要用于对字符串进行模糊匹配。

        终端里面输入的通配符是由 Shell 处理的,不是由所涉及到命令语句处理的,它只会出现在命令的“参数值”里。当 Shell 在“参数值”中遇到了通配符时,Shell 会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符 实际上就是一种 Shell 实现的路径扩展功能。

        Shell 常用通配符: * 匹配 0 或多个字符 ? 匹配任意一个字符 [list] 匹配 list 中的任意单一字符 [!list] 匹配 除list 中的任意单一字符以外的字符 [c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] {string1,string2,…} 匹配 sring1 或 string2 (或更多)其一字符串 {c1..c2} 匹配 c1-c2 中全部字符 如{1..10}

        通配符与正则表达式息息相关。可以说,Linux中的通配符是RegularExpression的超级简化版。

      4. 获取帮助
        在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。为了便于查找,man 手册是做了分册(分区段)处理的,在Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段,安排如下:

        区段 说明 1 一般命令 2 系统调用 3 库函数,涵盖了C标准函数库 4 特殊文件(通常是/dev中的设备)和驱动程序 5 文件格式和约定 6 游戏和屏保 7 杂项 8 系统管理命令和守护进程

        所有的手册页遵循一个常见的布局,其为通过简单的 ASCII 文本展示而优化,而这种情况下可能没有任何形式的高亮或字体控制。一般包括以下部分内容:

        标识符 含义 NAME(名称) 该命令或函数的名称,接着是一行简介。 SYNOPSIS(概要) 对于命令,正式的描述它如何运行,以及需要什么样的命令行参数。对于函数,介绍函数所需的参数,以及哪个头文件包含该函数的定义。 DESCRIPTION(说明) 命令或函数功能的文本描述。 EXAMPLES(示例) 常用的一些示例。 SEE ALSO(参见) 相关命令或函数的列表。

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

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

        如果man手册中的信息不能满足你的要求,可以使用info命令;如果希望快速的查询,可以使用--help参数。有关如何查询帮助,之后的教程会更详细的说明。

0 0