Bash shell

来源:互联网 发布:知乎 新人 西部世界 编辑:程序博客网 时间:2024/06/05 20:54

1.什么是Bash、什么是shell?

     在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于

DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。此外,shell

也能被系统中其他有效的Linux 实用程序和应用程序(utilities and application programs)所调用。 不论何时你键入

一个命令,它都被Linux shell所解释。一些命令,比如打印当前工作目录命令(pwd),是包含在Linux bash内部的

(就象DOS的内部命令)。其他命令,比如拷贝命令(cp)和移动命令(rm),是存在于文件系统中某个目录下的单

独的程序。而对用户来说,你不知道(或者可能不关心)一个命令是建立在shell内部还是一个单独的程序。

Bourne Again shell (bash), 正如它的名字所暗示的,是 Bourne shell 的扩展。bash 与 Bourne shell 完全向后

兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 C 和 Korn shell 里的优点。bash

有很灵活和强大的编程接口,同时又有很友好的用户界面。Bash (GNU Bourne-Again Shell) 是许多Linux发行版的

默认Shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等。

2.命令行BASH的基本操作

1、Bash

bash命令行由命令、选项和参数组成。其中提示符分为#和$

2、基本命令

(1)#:管理员登陆显示

(2)$:非管理员登陆显示

                         

(3)hostname:显示主机名

                          

(4)ls 、ll 列出文件列表

                          

(5)uname:列出主机名称

   uname -a:系统的完整名称《=》uname --all

                        

(6)clear:清屏

(7)history:查看全部历史记录,或者通过上下键查看

                       

(8)查看历史记录的其他命令

                  !! :重复前一个命令

                  !字符:重复前一个由字符开头的命令

                  !num:根据历史记录的序号执行命令

                   !?abc:重复之前包含abc的命令

                   !-n:重复倒数第n个命令

(9)ctrl + r : 搜索历史记录

(10)esc + .  :重新调用前一个命令中的参数

(11)命令行通配符

             * :匹配零个或者多个字符

             ?:匹配任意一个字符

            [0-9]:匹配一个数字范围

            [abc]:匹配列表里任何字符

            [^abc]:匹配列表以外字符

(12)切换用户

            su -username

            logout:退出当前shell

            exit:退出当前账号身份

            su-:切换到root用户并使用一个新的运行环境

            sudo:使用管理员身份运行命令

(13)id:查询当前用户信息

(14)passwd:修改当前用户密码

(15)后台运行命令 &

            如 firefox &

(16)暂停某个命令

ctrl + z

(17)管理后台作业

            jobs:查看后台作业列表

            bg  taskSeq :继续执行taskSeq序号对应的后台任务

            fg taskSeq:将taskSeq序号对应的后台任务调到前台执行


例题:

在Bash中,以下哪些说法是正确的()


$#  参数的个数,不包括命令本身.
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

参考文献:

Linux第一课 命令行BASH的基本操作

[linux]BASH 的基本语法