shell_beginner_001

shell 脚本不过就是一些文件,我们把一系列需要执行的命令写入其中,然后执行它。

编写第一个hello shell脚本。

step 1.

尝试将所有你熟知的linux命令写入到一个文件中吧。

例如将下列命令写入到一个shell_001_01.sh文件中。

echo "hello shell"; whoami; date;

step 2.

执行脚本。

例如 sh shell_001_01.sh

 

思考扩展:

1. 我们换一种写入文件及执行的方式,如下

cat > shell_001_02.sh
echo "hello shell again"
whoami
date
按下ctrl+D

chmod +x shell_001_02.sh
./shell_001_02.sh 

不同在于1)我们使用了cat复制终端输入,建立shell_001_02.sh文件

2)命令序列通过换行来分隔的,而不是";"

3)  执行脚本的方式不同,我们使脚本具有可执行权限,使其能够独立运行。

2. 你或许已经知道脚本第一行一般都是以“#! /bin/bash"开头,但我们上面的例子并没有写入这一行,但同样完成任务。为什么呢?

首先,需要了解linux中是存在着多种shell环境的,这里的Bash,它是目前大多数的linux系统的默认的shell环境。其它的shell环境有ksh、tcsh、zsh等

然后,解释下这一行的意义

#! 标识后面的/bin/bash 指定了bash解释器路径

那为什么没有这一行也是可以的呢?

当shell要求内核执行它(shell_001_02.sh)时, 内核无法做这件事,并回应’not executable format file"错误信息,shell收到此错误信息时,就会说‘啊哈,这不是编译型程序,那么一定是shell脚本,接着会启动一个新的/bin/sh标准shell副本来执行该程序。”

即,任何文件,只要不是可执行文件,就会被当成shell脚本。

只是因为linux中存在多种shell环境,所以加上#!能够更让用户来指定解释器。脚本的第一行加上这一句常常作为一种约定。

3.关注两个文件,~/.bashrc和~/.bash_history

当你打开一个终端的时候,该终端最初会执行.bashrc文件中设置的一组命令来定义诸如提示文本,颜色等设置。

.bash_histroy用于保存你执行过的命令。

4.可以通过file命令来查看当前文件的类型

可以通过cat /etc/shells 查看当前linux环境下支持的有哪些shell环境

可以通过ps -f 可以知道当前究竟处于哪一个shell环境。

可以通过usermod -s /bin/tcsh username 来更改命令解释程序,或者直接修改passwd文件

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值