Linux Shell

系统 CentOS 7

基础知识

什么是Shell

Shell俗称壳,是用户和系统(内核)交互的命令解析器。


查看系统支持的shell解析器

# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

其中常用shell介绍:

/bin/sh 是Unix最初使用的Shell(Bourne Shell)。

/bin/bash是Bourne Again Shell是Bourne Shell的扩展,简称bash。一般是大部分liunx类操作系统的默认Shell。

/bin/tcsh 是C shell的扩展版本。

/bin/csh C Shell,C语言风格Shell,已经被tcsh取代。

系统中还存在/sbin/nologin 用于控制用户禁止登录系统。


查看当前shell解析器

# echo $SHELL
/bin/bash


Shell脚本基础

脚本文件首行需要指定Shell解析器的类型

#!/bin/bash


注释方式

单行注释

# 单行注释

多行注释

:<<!
多行的
注释
!


脚本执行方式

创建脚本文件vim /root/shell/helloworld.sh

#!/bin/bash

# 这是一个单行注释

echo "hello world"

:<<!
这
是
多
行
注
释
!

1. sh执行

# sh helloworld.sh 
hello world

2. bash执行

# bash helloworld.sh 
hello world

3. 路径执行

需要文件具有可执行权限,相对路径需要使用“./”接文件名,或直接写绝对路径。

# ll
total 0
-rw-r--r--. 1 root root 0 Nov 28 07:45 helloworld.sh
# ./helloworld.sh
-bash: ./helloworld.sh: Permission denied
# /root/shell/helloworld.sh
-bash: /root/shell/helloworld.sh: Permission denied

增加可执行权限

# chmod u+x helloworld.sh
# ll
total 4
-rwxr--r--. 1 root root 34 Nov 28 07:46 helloworld.sh
# ./helloworld.sh 
hello world 
# /root/shell/helloworld.sh 
hello world


Shell环境

Shell环境有两种分类方式:

1. 交互式Shell和非交互式Shell

交互式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。

非交互式shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

2.登录shell和非登录shell

主要区别就是是否需要用户体用用户名和密码登录系统。

但是这两种shell在启动时加载的配置文件是不一样的。

登录shell加载配置文件及顺序:

1. 执行 /etc/profile

2. 执行 /et/profile.d/*.sh

3. 执行 ~/.bash_profile

4. 执行 ~/.bashrc

5. 执行 /etc/bashrc


非登录shell加载配置文件及顺序:

1. 执行 ~/.bashrc

2. 执行 /etc/bashrc

3. 执行 /etc/profile.d/*.sh

加载配置文件不同会造成系统环境变量等信息不同,通常情况下,我们都是输入用户名和密码登录系统的。


如何查看Shell环境

# echo $0
-bash

输出结果说明

-bash : 表示是登录环境。

bash :表示是非登录环境。

注意:$0 在shell中使用可获取Shell环境,在脚本中使用可获取Shell脚本文件名称。


执行脚本时指定环境

已登录环境执行脚本可增加参数 “-l”或“--login”

# sh --login helloworld.sh

已非登录环境执行脚本

# bash 加载Shell非登录环境
# sh helloworld.sh


su切换用户

已登录环境切换用户增加“-l”或“--login”

# su redis -l 

已非登录环境切换用户

# su redis



转载请指明出处!http://www.miselehe.com/article/view/123