一篇文章让你彻底掌握 shell 语言

1. 前序

手动安装jdk

# 第1步 切换到家目录
cd
# 第2步 下载jdk镜像源
wget -c https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz

# 第3步 新建/opt/java目录
mkdir /opt/java

# 第4步 解压jdk至/opt/java目录下
tar -xvf jdk-8u151-linux-x64.tar.gz -C /opt/java

# 第5步 设置软链接
ln -s /opt/java/jdk1.8.0_151/bin/java /usr/sbin/java

# 第6步 java命令是否可用
java -version

存在问题:

1、得特别熟悉安装软件

2、每次安装都要去捋安装思路;

3、每安装一步,都需要手动敲命令,耗时耗力;

4、部署n台,更加耗时,效率低…

问题解决方法:shell编程,编写shell脚本

2. shell介绍

2.1. 什么是shell

  • shell是一门编程语言,类似python、php一样的解释型编程语言

2.2. 什么是shell编程

编写的代码文件运行在shell编程语言环境中,类似编写运行在python、php编程语言环境下的代码文件,因为shell是一门解释型语言,所以也称为编写shell脚本(shell script),文件名后缀常用.sh

2.3. shell解释器

常见shell解释器有以下几种:

  • Bash (Bourne Again Shell): Bash是最常用的Shell解释器,也是默认的Linux命令行解释器。它继承了Bourne Shell的特性,并添加了许多功能和改进,包括命令历史、自动补全、作业控制等。

  • sh (Bourne Shell): Bourne Shell是Unix系统中最早的Shell解释器之一,它是其他Shell的基础,语法相对简单,常用于编写脚本。

  • csh (C Shell):C Shell使用C语言风格的语法,提供了一些便于程序员使用的功能,如命令行编辑和作业控制。它在某些Unix系统中是默认的Shell解释器。

  • ksh (Korn Shell: Korn Shell是由Bourne Shell和C Shell发展而来的Shell解释器,它继承了两者的特性,并添加了一些新的功能和语法,如命令历史、命令别名等。

  • tcsh (Enhanced C Shell): tcsh是C Shell的扩展版本,提供了更多的功能和命令补全等增强特性。

查看系统正在使用解释器

env

echo $SHELL

查看系统已安装解释器

cat /etc/shells

chsh -l

切换系统解释器

# 需要退出重登
chsh

# 需要退出重登
chsh -s /bin/sh

exec bash

交互式shell和非交互式shell

交互式模式:在终端上执行,shell等待你的输入,并且立即执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。

[root@centos ~]# pwd
/root

非交互式模式:以shell script(非交互)方式执行。在这种模式 下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。

sh test.sh

3. 基本语法

3.1 第一个shell脚本

# 打开test.sh文件
vim test.sh

# test.sh文件写入内容
echo "hello,world"

# sh解释器执行脚本
sh test.sh

# bash解释器执行脚本
bash test.sh

# 给test.sh加可执行权限
chmod +x test.sh

# 用系统默认解释器运行test.sh脚本
./test.sh

/root/test.sh

# 也可以给test.sh脚本指定shell解释器
[root@centos ~]# cat test.sh
#!/bin/sh
echo "hello,world"

# 推荐这种方式指定shell解释器
[root@centos ~]# cat test.sh 
#!/usr/bin/env sh
echo "hello,world"

猜你喜欢

转载自blog.csdn.net/rulaixiong/article/details/134472197