Linux中的shell

概括

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

cat /etc/shells 

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

Bash shell的功能:

  1. 命令编辑能力
  2. 命令与档案补全功能
  3. 命令别名设定功能(alias)
  4. 工作控制
  5. 程序化脚本(shell scripts)
  6. 通配符

Login/Non-Login Shell

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

  1. login shell会读取/etc/profile与 ~/.bash_profile来引用新的环境变量
    non-login shell只会读取~./bashrc来应用新的环境变量
  2. 如果我想要建立一个仅仅使用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)变量内容的删除与取代

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

  • ${变量#通配符}:将变量从头开始删除符合通配符的最短数据
  • ${变量##通配符}:将变量从头开始删除符合通配符的最长数据
  • ${变量%通配符}:将变量从尾开始删除符合通配符的最短数据
  • ${变量%%通配符}: 将变量从尾开始删除符合通配符的最长数据
  • ${变量/旧字符/新字符}:将第一个旧字符替换为新字符
  • ${变量//旧字符/新字符}:将所有旧字符都替换为新字符

变量的取代:
Linux中的shell_第1张图片

4)变量的别名

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

Bash的配置

login shell与non-login shell的配置步骤是不一样的

你可能感兴趣的:(Linux中的shell)