使用Shell

如果您曾经登录过Linux系统或打开了终端会话,那么您已经在使用Linux shell了。登录后,系统会提示您。该提示将类似于以下提示。某些提示将显示您登录的服务器的主机名,以及您当前的位置(通常是您的主目录)。其他人只是在下面的会话中显示您的用户名和主机名:

Linux上的大多数默认Shell都使用Bash Shell(Bourne Again Shell)。快速检查您是否正在使用Bash shell的方法是简单地使用命令echo $ SHELL,如上例所示。如果响应返回/bin/bash,则说明您正在运行bash shell。

john@john-desktop:~$
john@john-desktop:~$ echo $SHELL
/bin/bash

什么是shell

简单来说,shell是一个程序,可以从键盘获取命令并将其传递给操作系统进行处理。

基本上,shell是计算机或服务器的接口。如前所述,Bash代表Bourne Again Shell,它是Stephen Bourne创建的Bourne Shell程序 sh的增强版本。多年来,已经创建了许多shell,使用的其他一些主要shell是在加利福尼亚大学伯克利分校创建的 C Shell。之所以使用名称 C,是因为该shell基于 C编程语言。当今,在许多 Unix系统上广泛使用的另一个流行的shell是David Korn的 Korn Shell

Linux上最常见的shell是 bash shell,但是,已经创建和修改了许多其他shell。在Ubuntu 14.04 LTS系统上,可以使用的shell程序:

john@john-desktop:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash

什么是命令?

命令基本上是一系列字符,当您按 Enter键时,这些命令将被执行。您输入的信息由shell处理。显然,命令必须遵循严格的语法,shell才能正确解释这些指令。Shell的第一个任务是将输入的指令分为单词。这些通常以空格分隔。通常,该行上的第一个单词是命令单词。接下来通常是解释所需参数的参数。

通常,参数以短横线 -开头。这些是您可能需要的选项。通过指定这些参数,我们可以从命令中选择某些功能或忽略某些功能。例如:

ls
ls -l
ls -lh
ls -rtl
ls -rtlh
ls -rtlha

在上面的示例中,我们使用了基本列表命令 ls
本身没有参数,它将列出当前目录中的所有文件。
但是,如果我们将其他参数传递给命令,则可以更改将结果报告给我们的方式。

可以将多个参数添加在一起。因此,最后一个示例 ls -rtlha将在当前目录中列出相同的文件,但是,它们将以冗长的列表,相反的时间顺序显示,并设置了便于人们阅读的选项,并且将显示任何隐藏的文件(文件名以点 .开头的文件)。

Linux中shell和终端

内部命令还是外部命令?

确定命令是归类为Shell内部还是外部程序是非常容易的。通常,可以在诸如 /usr/bin之类的目录中找到外部程序和命令。但是,有一个简单的命令可用于识别这些文件类型。即 type的命令:

john@john-desktop:~$ type pwd
pwd is a shell builtin
john@john-desktop:~$ type cat
cat is /bin/cat
john@john-desktop:~$ type cd
cd is a shell builtin
john@john-desktop:~$ type type
type is a shell builtin

从上面的示例可以看到, cat命令位于目录 /bin中。这是一个外部命令。

如果您想查看所有的Bash内部命令,则可以使用 help | less命令。

shell如何工作?

通常,shell程序是由用户通过终端或控制台会话交互式调用的。但是,shell最重要的方面之一是它能够处理包含命令或指令的文件。这些文件称为脚本( shell脚本)。Shell执行的基本步骤是:

  1. 读取命令或文件

  2. 验证命令的语法

  3. 运行命令将结果输出到屏幕或其他设备/位置

  4. 重复过程

尽管简化了上述过程,但是shell程序通常处理更复杂的指令。这些可能包括用于编程语言,循环,变量,逻辑条件处理的指令。在本 Linux基础知识指南中,我们选择的shell将是 Bash

内部和外部Shell命令

Shell使用的两种主要命令类型是 Internal内部的 和 External外部的。

内部:这些是直接内置在shell中的命令,可以非常快速地执行。Shell中内置了许多命令。

外部的:这些不是内置在shell中的命令。这些命令(程序)通常位于各个目录中。这些可以是您自己创建的系统命令或程序。Shell能够从命令行或从脚本内调用这些程序。

日期:2019-04-29 03:17:26 来源:oir作者:oir