Linux-Bash Shell

重要基本概念:

  1. 管理整个硬件是核心(kernel),一般使用者(user)则是以shell来跟核心沟通。

  2. 替我们工作的是『硬件』,而控制硬件的是『核心』,我们使用者乃是利用『Shell』控制一些kernel提供的『工具 (Utility)』来操控硬件替我们正确的工作。

  3. kernel是『核心』的意思,而 Shell 是『壳』的意思。

  4. shell 有很多版本,例如:常听到的 Bourne SHell (sh) 、在 Sun 里头预设的 C SHell、 商业上常用的 K SHell、, 还有 TCSH 等等,每一种 Shell 都各有其特点。至于 Linux 使用的这一种版本就称为『 Bourne Again SHell (简称 bash) 』,这个 Shell 是 Bourne Shell 的增强版本,也是基准于GNU 的架构下发展出来。

  5. BASH shell是GNU计划中重要的工具软件,目前也是GUN操作系统中标准的shell,它主要兼容于sh,并且依据一些使用者需求,而加强的shell版本,可以说目前几乎所有的Linux distribution 都使用bash作为管理核心的主要shell。

  6. BASH优点:
    ① 命令编修能力(类似DOS的doskey功能):『他能记忆使用过的指令』 曾经下达过的指令都被记录下来了,记录的档案在你的家目录内的 .bash_history 。~/.bash_history 记录的是前一次登入以前所执行过的指令, 而至于这一次登入所执行的指令都被暂存在暂内存中,当你成功的注销系统后,该指令记忆才会记录到 .bash_history 当中。『查询曾经做过的举动』如此可以知道你的执行步骤,那么就可以追踪您曾下达的指令,以作为除错的工具。

    ② 命令与档案补全功能: [tab] 如果想要知道系统当中所有以 c 为开头的指令呢?就按下 c[tab] [tab] 。

    ③ 命令别名(alias)设定功能:alias 就可以知道目前的命令别名有哪些了。也可以直接下达命令来设定别名:alias lm=’ls -al’。

    ④ 工作控制(jobs)、前景背景控制:使用前、背景的控制可以让工作进行的更为顺利。工作控制(jobs)的用途则更广, 可以让我们随时将工作丢到背景中执行,而不怕不小心使用了 [Ctrl] + c 来停掉该程序。此外,也可以在单一登入的环境中,达到多任务的目的。

    ⑤ Shell scripts 的强大功能:将日常生活当中常需要下达的连续指令写成一个档案, 该档案并且可以透过对谈交互式的方式来进行主机的侦测工作。也可以藉由 shell 提供的环境变量及相关指令来进行设计,整个设计下来几乎就是一个小型的程序语言。

    ⑥ 万用字符:除了完整的字符串之外, bash 还支持许多的万用字符来帮助使用者查询与指令下达。例如想要知道 /usr/X11R6/bin 底下有多少以 xt 为开头的档案,使用: ls -l /usr/X11R6/bin/xt*

  7. type : ① 查看指令是否为bash的内建指令;② 找指令。
    bash 的说明文档:man bash
    查看指令是否为『内建』指令:type [-tpa] name 例如:type cd

    [root@linux ~]# type [-tpa] name
    >>>参数:
            :不加任何参数时,则 type 会显示出那个 name 是外部指令还是 bash 内建的指令!
         -t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:
      file  :表示为外部指令;
      alias :表示该指令为命令别名所设定的名称;
    builtin :表示该指令为 bash 内建的指令功能;
         -p :如果后面接的 name 为指令时,会显示完整文件名(外部指令)或显示为内建指令;
         -a :会将由 PATH 变量定义的路径中,将所有含有 name 的指令都列出来,包含 alias
  8. 指令下达方法:

    [root@linux ~]# command [-options] parameter1 parameter2 ...
     指令 选项 参数(1) 参数(2)
    >>>说明:
    > 0. 一行指令中第一个输入的绝对是『指令(command)』或『可执行档案』
    > 1. command 为指令的名称,例如变换路径的指令为 cd 等等;
    > 2. 中刮号[]并不存在于实际的指令中,而加入参数设定时,通常为 - 号,例如 -h;有时候完整参数名称会输入 -- 符号,例如 --help;
    > 3. parameter1 parameter2.. 为依附在 option 后面的参数,
    或者是 command 的参数;
    > 4. command, -options, parameter1.. 中间以空格来区分,不论空几格 shell 都视为一格;
    > 5. 按下 [Enter] 按键后,该指令就立即执行。[Enter] 按键为 <CR> 字符,他代表着一行指令的开始启动。
    > 6. 指令太长的时候,可以使用 \ 符号来跳脱 [Enter] 符号,使指令连续到下一行。注意! \ 后就立刻接特殊字符。
    > 7. 在 Linux 系统中,英文大小写字母是不一样的。举例来说, cd 与 CD 并不同。

如果能够借由shell提供的命令重导向(或称数据流重导向),以及管线命令。

命令总结:
1. cat etc/shells
2. ls -al —查看目录底下的所有档案(包含隐藏档)及所有的档案属性
3. alias –查看目前的命令有哪些别名
4. alias lm = ‘ls -al’ –设定别名
5. ls -l /usr/X11R6/bin/xt* –使用万用字符查看/usr/X11R6/bin 底下有多少以 xt 为开头的档案

Linux 各个盘分别是什么?

你可能感兴趣的:(linux,鸟哥的私房菜,Bash-Shell)