您的位置:首页 > 运维架构 > Shell

Linux中的shell

2016-04-29 22:07 531 查看

概括

Linux中的shell就是相当于操作系统提供给用户的一个命令接口,这样达到控制计算机的目的。因为用户可能直接操作处于核心态下的Kernel,但是用户可以通过shell来管理我们的计算机。

Linux中的shell有很多种,在centOS中我们可以通过

cat /etc/shells


来看我们的Linux支持多少种shell,一般都会有bash shell.

Bash shell的功能:

命令编辑能力

命令与档案补全功能

命令别名设定功能(alias)

工作控制

程序化脚本(shell scripts)

通配符

Login/Non-Login Shell

Login Shell指的是需要完整的登录过程所获取的shell。

Non-Login Shell就是不需要完整的登录过程。例如在X windows下使用shell或者登录之后在输入bash来进入一个bash shell子程序。

区别:

login shell会读取/etc/profile与 ~/.bash_profile来引用新的环境变量

non-login shell只会读取~./bashrc来应用新的环境变量

如果我想要建立一个仅仅使用mail功能的账号,而该账号不可以登录Linux主机,这个时候就需要non-login shell

变量

1)变量的设定规则

1.变量与变量内容用一个等号来连接

var=varname


2.等号两边不能直接接空格

var = varname //这个写法就是错误的


3.变量名称只能是英文与数字,但是开头字符不可以是数字

4.当变量用”“时,”“内的特殊字符会保留原有特性

var="lang is $LANG" //这样如果LANG表示en_US,那么var就是lang is en_US


5.在变量用”时,”内的特殊字符就失去的原有特性

var='lang is $LANG" //这样var就是lang is $LANG


6.可以使用转义字符‘\’来将特殊字符变成一般字符

var=hjy\'s //var就是hjy's


7.在一个指令中如果用到了其他指令的信息,可以用来把其他指令包括进去,表示我们要先获取其他指令的结果

8.若要把一个变量的内容扩充时可以使用变量名称=${变量名称}累加类容来扩充

var=${var}ok   //如果var以前是hjy,那么现在就是hjyok


9.若要把该变量变成一个全局的环境变量可以使用export 变量名称,这样就相当于该变量是一个环境变量了。

10.取消变量可以使用unset 变量名称

2)环境变量

环境变量有很多用处,比如家目录的变换,执行文件路径的搜寻。

1.env命令

可以通过env命令来查看环境变量的值

2.set命令

可以通过set命令查看环境变量以及我们自己定义的变量

其中有一个PS1

PS1(提示字符的设定)

\d:可以显示日期的格式

\H:显示完整主机名

\h:仅取主机名在第一个小数点之前的名字

\t:显示时间(24小时制) HH:MM:SS

\T:显示时间(12小时制) HH:MM:SS

\A:显示时间(24小时制) HH:MM

\@:显示时间(12小时制) am/pm

\u:目前使用者账号名称(例如root)

\v:Bash版本信息

\w:完整的工作目录名称

\W:利用basename函数获得的工作目录名称

\#:下达的第几个指令

\:提示字符,如果用户是root,提示字符符#,否则就是

3.export命令

将自定义的变量变为环境变量

4.read命令

read [-pt] 变量名


-p:后面可以接提示字符

-t:后面可以接等待秒数

例如:

read atest


再输入一句话并按回车之后,atest的内容就是你输入的内容

read -p "Please enter your name:" -t 30 name


会出现提示字符Please enter your name:

然后你在30秒内要有输入,否则就会忽略该指令

5.declare / typeset命令

宣告变量的类型

declare [-aixr] 变量名


-a:将变量定义为数组类型

-i:将变量定义为整数数字类型

-x:将变量定义为一个环境变量

-r:将变量定义为一个readonly类型

3)变量内容的删除与取代

实际上利用的是通配符原理

${变量#通配符}:将变量从头开始删除符合通配符的最短数据

${变量##通配符}:将变量从头开始删除符合通配符的最长数据

${变量%通配符}:将变量从尾开始删除符合通配符的最短数据

${变量%%通配符}: 将变量从尾开始删除符合通配符的最长数据

${变量/旧字符/新字符}:将第一个旧字符替换为新字符

${变量//旧字符/新字符}:将所有旧字符都替换为新字符

变量的取代:



4)变量的别名

1.alias命令

可以通过alias命令来查看或者创建修改一个别名

unalias可以取消一个别名

Bash的配置

login shell与non-login shell的配置步骤是不一样的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: