Shell 入门
1. 概述
Shell 是一个命令行解析器,它接受应用程序/用户命令,然后调用操作系统的内核。它还是一个功能强大的编程语言,具有易编写,易调试,灵活性强的特点。
2. 解析器
2.1 Linux提供的Shell解析器
[root@docker-ecs /]# cat /etc/shells |
2.2 bash和sh的关系
[root@docker-ecs bin]# ll | grep bash |
2.3 Centos的默认解析器
[root@docker-ecs /]# echo $SHELL |
3. 第一个脚本
3.1 脚本格式
脚本以#!/bin/bash开头,指定解析器
3.2 第一个Shell脚本
[root@docker-ecs data]# touch hello.sh |
在 hello.sh 中输入如下内容
!/bin/bash |
3.3 脚本的常用执行方式
3.3.1 采用bash或sh+脚本的相对路径或绝对路径(不用赋予脚本+x权限)
sh+脚本的相对路径
[root@docker-ecs data]# sh hello.sh |
sh+脚本的绝对路径
[root@docker-ecs data]# sh /data/hello.sh |
bash+脚本的相对路径
[root@docker-ecs data]# bash hello.sh |
bash+脚本的绝对路径
[root@docker-ecs data]# bash /data/hello.sh |
3.3.2 采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)
首先要赋予 hello.sh 脚本的+x权限
[root@docker-ecs data]# chmod 777 hello.sh |
执行脚本
相对路径
[root@docker-ecs data]# ./hello.sh |
绝对路径
[root@docker-ecs data]# /data/hello.sh |
注意:第一种执行方法,本质是bash解析器帮你执行脚本,所以脚本本身不需要执行权限。第二种执行方法,本质是脚本需要自己执行,所以需要执行权限。
3.4 第二个Shell脚本(多命令处理)
需求:在 /data/ 目录下创建一个 cls.txt 并在文件中增加 “ I love cls”。
案例实操:
[root@docker-ecs data]# touch batch.sh |
在 batch.sh 中输入如下内容
!/bin/bash |
执行脚本,查看结果
[root@docker-ecs data]# cat cls.txt |