天天看点

Unix/Linux环境C编程入门教程(36) 初识shell



1.什么是Shell

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅

如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

2.shell有很多种类

/bin/sh (已经被 /bin/bash 所取代)

/bin/bash (就是 Linux 预设的 shell)

/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出來的,相容于 bash)

/bin/tcsh (整合 C Shell ,提供更多的功能)

/bin/csh (已经被 /bin/tcsh 所取代)

/bin/zsh (基于 ksh 发展出來的,功能更強大的 shell)

3.怎么使用shell

不论是哪一种Shell,它最主要的功用都是解译使用者在命令列提示符号下输入的指令。Shell 语法分析命令列,把它分解成以空白区分开的符号(token),在此空白包括了跳位键(tab)、空白和换行(New Line)。如果这些字包含了metacharacter,shell 将会评估(evaluate)它们的正确用法。另外,shell 还管理档案输入输出及幕后处理(background processing)。在处理命令列之后,shell 会寻找命令并开始执行它们。

Shell 的另一个重要功用是提供个人化的使用者环境,这通常在 shell 的初始化档案中完成(.profile、.login、.cshrc、.tcshrc 等等)。这些档案包括了设定终端机键盘和定义窗口的特征;设定变量,定义搜寻路径、权限、提示符号和终端机类型;以及设定特殊应用程序所需要的变量,例如窗口、文字处理程序、及程序语言的链接库。Korn shell 和 C shell 加强了个别化的能力:增加历程、别名、和内建变量集以避免使用者误杀档案、不慎签出、并在当工作完成时通知使用者。

Shell 也能当解译性的程序语言(interpreted programing language)。Shell 程序,通常叫做命令文件,它由列在档案内的命令所构成。此程序在编辑器中编辑(虽然也可以直接在命令列下写作程序,online scripting),由 UNⅨ命令和基本的程序结构,例如变量的指定、测试条件、和循环所构成。您不需要编译 shell 命令档。Shell 本身会解译命令档中的每一行,就如同由键盘输入一样。shell 负责解译命令,而使用者则必须了解这些命令能做什么。

4.查看自己电脑使用的是那种shell

5. Linux shell命令中一个重要的地方是,你可以将命令串起来。这是Unix/Linux从第一天开始就有的巧妙的特点。最简单的将命令连起来的办法就是使用“|”,我们称之为“pipe”。第一个命令的输出就是下一个命令的输入。如图

Linux命令有自己的语法规则:

基本的语法就像这样:

command -option object

6.Linux下常用命令

ls-查看文件信息

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一。

它类似于DOS下的dir命令。

ls [参数] 目录或文件

常用参数及含义如下表所示。

使用ls命令查看桌面目录下的文件信息。在命令提示符下执行如下命令,执行结果如下图所示。

每一个文件信息的含义

文件类型:“-”表示常规文件;“d”表示目录;“c”表示字符设备文件;“b”表示块设备文件;“s”表示管道文件;“l”表示链接文件。

文件存取权限:从左到右每3位为一组,依次代表文件拥有者、同组用户和其他用户的存取权限。通常文件共有3个权限,“r”表示只读;“w”表示可写;“x”表示可执行;“-”表示未设置。文件的第一列如为-rw-r--r--,可知其为一个普通文件,文件所有者的权限是rw-,可读可写不可执行,文件所属组群的权限是r--,表示可读不可写不可执行,其他人的属性是r--,表示可读不可写不可执行。只有文件的拥有者或超级用户才能设置文件的属性。

文件的属主和组:在Linux下每个文件都属于特定的用户和组,文件的属主和超级用户对文件用户最大的存取权限。

more命令

如果使用ls命令来查看其内容,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。

ls | more

cd-进入工作目录

所谓工作目录,就是当前操作所在的目录。

用户在使用Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。

后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。

还可以使用 “.”和“..”作为目录名,其中 “.”表示当前目录,“..”表示当前目录的上层目录,即父目录。

cd  目录名

pwd-显示当前路径

使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

mkdir-新建目录

可使用mkdir命令创建一个新的目录。需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。该命令格式如下:

mkdir [参数] 目录名

rmdir-删除目录

可使用rmdir命令删除一个指定名字的目录。执行rmdir的用户必须对当前目录具有写权限。该命令格式如下:

rmdir [参数] 目录名

继续阅读