什么是shell
shell 是一个用c语言写的程序,他是用户使用linux的桥梁,Shell 既是一种命令语言,也是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
什么是脚本
脚本简单的说就是一系列文字命令,这些文字命令是可以直接通过有关编辑器直接编辑的。
常见的脚本语言有:javascript, VBscript, ASP, JSP, PHP, SQL, Perl, Shell ,python, Ruby, JavaFX, Lua
为什么要学习和使用shell
程序开发的效率非常高,以来与功能强大的命令可以迅速的完成开发任务。
shell是内置的脚本。
常见的shell种类
在linux中有很多类型的shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,linux中默认的shell是
/bin/bash , 流行的有ash, bash,ksh,csh,zsh
csh : c shell 使用的是“类C”语法,csh 是具有c语言风格的一种shell,其内部命令有52个,较为庞大,目前使用的不多,已经被/bin/bash 所替代。
ksh : korn shell 的语法与Bourne shell 相同,同时具备C shell 的易用特点,许多安装脚本都使用ksh,ksh有42条内部命令与bash相比有一定限制性。
tcsh : tcsh 是 sch的增强版,与 C shell 完全兼容。
nologin: 指用户不允许登录。这个脚本在 /etc/passwd 中可以看见很多用户最后有 /nologin 的标签,表示其是一个脚本,可以通过这个方法制定用户不允许登录到系统。
让test2 用户不可登录到系统。
usermod -s /sbin/nologin test2
// -s 表示shell,意思是制定新的shell,类型为/sbin/nologin 用户为test2
随后可以在/etc/passwd/的相应用户后面看见 /nologin
test2: x :1002:1002::/home/test2:/sbin/nologin
zsh : 目前linux里最庞大的一种shell,有84个内部命令,使用起来也较为复杂,一般情况下,不会使用该shell。
bash : 大多数 Linux 系统默认使用的shell ,bash shell 是 Bourne shell 的一个免费版本。他最早是 Unix shell .bash还有一个特点,可以通过help命令来查看帮助,包含的功能几乎可以涵盖shell所有的功能。所以一般的shell都会指定它为默认执行路径。
#!/bin/bash
告诉系统本脚本通过/bin/bash解释器 运行。#!/bin/bash
echo "hello world"
#一般建议不加分号
echo "hello ";
echo "world"
./hello_world.sh
或使用绝对路径, 不能直接hello_world.sh
。使用root账户创建并执行 “test.sh” ,实现创建一个shelltest账户,并在其家目录中新建文件try.html
#!/bin/bash
useradd shelltest
touch /home/shelltest/try.html
注:脚本执行的另外一种方式:
/bin/bash 脚本路径
在一个脚本周期内,其值可以改变的量为变量
脚本周期: 执行完一个shell文件称完成一个脚本周期。
变量要先定义再使用。
# 定义变量:
class_name='yunwei'
#使用变量:
echo $class_name # 使用变量时一定要在变量名前加入"$"符号,该要求在其他语言也有,例如PHP。
注:变量名的规范
- 变量名后面的等号左右不能有空格。
- 命名只能用英文字母,数字与下划线,变量名不可以数字开头。
- 变量名中不可出现空格,可以出现下划线。
- 不能使用标点符号。
- 不可以用bash关键字作为变量名,可以用help查看bash关键字
#!/bin/bash
string='hello world'
echo $string
本文章使用limfx的vscode插件快速发布