Shell 是什么

终端仿真器

  1. 当谈到命令行时,我们实际上指的是 shell 。
  2. shell 是一个接收由键盘输入的命令,并将其传递给操作系统来执行的程序。
  3. 几乎所有的 Linux 发行版都是一个接收由键盘输入的命令,并将其传递给操作系统来执行的程序。
  4. 几乎所有的 Linux 的发行版都提供 shell 程序,该程序来自于称之为 bash 的 GNU 项目。
  5. bash 是 Bourne Again Shell 的首字母缩写, Bourne Again Shell 基于这样一个事实,即 bash 是 sh 的增强版本,而 sh 是最初的 UNIX shell 程序,由 Steve Bourne 编写。
  6. 当使用图形用户界面时,需要另一种叫做终端仿真器(terminal emulator)的程序与 shell 进行交互。
  7. 在 KDE 环境下使用的是 konsole ,而在 GNOME 环境下使用 gnome-terminal ,但是在桌面菜单上很可能将它们简单地统称为终端。
  8. 在 Linux 系统中,还有许多其他的终端仿真器可以使用,但是它们基本上都做同样的事情:让用户访问 shell 。
  9. 因为不同的终端仿真器所具有的功能特性不尽相同,因此,你可以根据自己的喜好进行选择。

第一次键盘输入

基本介绍

  1. 启动终端仿真器,运行后的终端仿真器如下所示:
    1
    [me@linuxbox ~]$
  2. 这是 shell 提示符,只要 shell 准备接收外部输入,它就会出现。在不同的发行版中,提示符外观可能会有差异,但是,它通常包括 username@machinename ,其后是当前工作目录和一个 $ 符号。
  3. 如果 shell 提示符的最后一个字符是 # ,而不是一个 $ 符号,那么终端会话将享有超级用户特权。
  4. 假定一切工作都很顺利,接下来尝试输入一些内容。在提示符后输入一些乱码。如下所示:
    1
    [me@linuxbox ~]$ kaekfjaeifj
  5. 由于这些命令没有任何意义,shell 会让我们重新输入:
    1
    2
    bash: kaekfjaeifj: command not found
    [me@linuxbox ~]$

命令历史记录

  1. 如果按下向上方向的指示键,将会看到先前的命令 kaekfjaeifj 再一次出现提示符后面,这称为命令历史记录。
  2. 在默认情况下,大部分 Linux 发行版本能够存储最近输入的 500 个命令。
  3. 按下向下方向指示键,则先前的命令消失。

光标移动

  1. 再次按下向上方向指示键,重新调用先前的命令,然后分别按下向左向右方向的指示键,看看如何将光标定位到命令行的任意位置。这可以让我们很容易地编辑命令。

几个简单的命令

  1. 在学习键盘输入之后,我们来尝试几个简单的命令。
  2. 首先是 date 命令,该命令显示当前系统的时间和日期:
    1
    2
    [me@inuxbox ~]$ date
    Thu Oct 25 13:51:54 EDT 2012
  3. 与之相关的一个命令是 cal ,在默认情况下, cal 显示当月的日历。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [me@inuxbox ~]$ cal
    八月 2020
    日 一 二 三 四 五 六
    1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30 31
  4. 如果想要查看磁盘驱动器当前可用的空间,可以使用 df 命令。
    1
    2
    3
    4
    5
    6
    7
    [me@inuxbox ~]$ df
    Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
    /dev/disk1s1 489620264 132645336 350371888 28% 1330866 9223372036853444941 0% /
    devfs 383 383 0 100% 673 0 100% /dev
    /dev/disk1s4 489620264 4194344 350371888 2% 2 9223372036854775805 0% /private/var/vm
    map -hosts 0 0 0 100% 0 0 100% /net
    map auto_home 0 0 0 100% 0 0 100% /home

结束终端会话

  1. 直接关闭终端窗口或是在 shell 提示符下输入 exit 命令,即可结束终端会话。
    1
    [me@inuxbox ~]$ exit

参考文章

  • 转载:Linux 命令行大全