shell脚本介绍与基本使用(一)

shell

1.什么是shell

​ shell是命令解释器,是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系:

img

shell也是一门编程语言,即shell脚本,shell是解释执行的脚本语言,可直接调用linux命令

一个系统可以存在多个shell,可以通过cat/ect/shell命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的。

2.shell种类

​ 操作系统内核与shell是独立的套件,而且都可被替换。不同的操作系统使用不同的shell;同一个操作系统内核之上可以使用不同的shell。

​ 常见的shell分为两大主流:

sh:

​ Bourne shell (sh) , Solaris,hpux默认shell

​ Bourne again shell(bash), Linux系统默认shell

csh:

​ C shell(csh)

	tc shell(tcsh)

3.查看使用shell

img

4.shell环境定义

临时环境变量

​ 所谓临时变量是指在用户在当前登录环境下生效的变量,用户登录系统后,直接在命令行上定义的环境变量便只能在当前的登录环境中使用。当退出系统后,环境变量将不能在下次登录时继续使用。

将环境变量永久生效

​ 通过将环境变量定义写入到配置文件中,用户每次登录时系统自动定义,则无需再到命令行重新定义。定义环境变量的常见配置文件如下:

​ /etc/profile 针对系统的所有用户有效,此文件应用于所有用户每次登录系统时的环境变量定义

H O M E n a m e / . b a s h p r o f i l e HOME_name/.bash_profile 针对特定用户生效, HOME为用户的宿主目录,当用户登录系统后,首先集成/etc/profile文件中的定义,再应用$HOME/.bash_profile文件中的定义。

系统预定义的环境变量

​ 系统环境变量对所有用户有效,如:PATH、HOME、SHELL、PWD等等,如下用echo命令打印上述的系统环境变量:

img

5.shell脚本编程

​ 同传统的编程语言一样,shell提供了很多特性,这些特性可以使你的shell脚本编程更为有用。

创建shell脚本

​ 一个shell脚本通常包含如下部分:

首行

​ 第一行内容在脚本的首行左侧,表示脚本将要调用的shell解释器,内容如下:

​ #!/bin/bash

​ #!符号能够被内核识别成是一个脚本的开始,这一行必须位于脚本的首行,/bin/bash是bash程序的绝对路径,在这里表示后续的内容将通过bash程序解释执行。

注释

​ 注释符号# 放在需注释内容的前面,如下:

img

内容

​ 可执行内容和shell结构

img

shell脚本的权限

​ 一般情况下,默认创建的脚本是没有执行权限的。

img

​ 没有权限不能执行,需要赋予可执行权限

img

shell脚本的执行

​ 1.输入脚本的绝对路径或相对路径 (作为可执行程序)

​ /root/helloworld.sh

​ ./helloworld.sh

​ 2.bash或sh+脚本 (作为解释器参数)

​ bash /root/helloworld.sh

​ sh helloworld.sh

​ 注:当脚本没有x权限时,root和文件所有者通过该方式可以正常执行。

img

​ 3.在脚本的路径前再加 “.” ,或 source

​ source /root/helloworld.sh

​ …/helloworld.sh

​ 区别:第一种和第二种会新开一个bash,不同bash中的变量无法共享。但是使用…/脚本.sh 这种方式是在同 一个shell里面执行的。

img

发布了104 篇原创文章 · 获赞 33 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/WangTaoTao_/article/details/104776021