shell之环境搭建

原文:https://www.cnblogs.com/wild-book/p/5041462.html

  • 1. 查看系统默认shell

输入指令:

[root@RHEL tmp]# echo $SHELL

执行结果:

[root@RHEL tmp]# echo $SHELL
/bin/bash
  • 2. 部分linux版本中的 sh 本质是 bash

输入指令:

[root@RHEL tmp]# ll /bin/sh

执行结果:

[root@RHEL tmp]# ll /bin/sh 
lrwxrwxrwx. 1 root root 4 Apr 27  2015 /bin/sh -> bash
  • 3. 查看shell版本

输入指令

[root@RHEL tmp]# echo $BASH_VERSION

执行结果

[root@RHEL tmp]# echo $BASH_VERSION
4.1.2(1)-release
  • 4. 安装最新版本bash

4.1. 下载bash源代码

[root@RHEL tmp]# wget http://ftp.gnu.org/gnu/bash/bash-4.3.30.tar.gz

4.2. 解压源代码

[root@RHEL tmp]# tar xvzf bash-4.3.30.tar.gz

4.3. 配置编译环境

[root@RHEL tmp]# cd bash-4.3.30
[root@RHEL bash-4.3.30]# ./configure

4.4. 测试编译,判断是否成功

oot@RHEL bash-4.3.30]# make 

4.5. 编译bash

oot@RHEL bash-4.3.30]# make install

在默认情况下,bash将被安装到/usr/local/bin/ 下面

4.6. 查看是否安装成功,首先切换到新版本的bash的安装目录

[root@RHEL bash-4.3.30]# cd /usr/local/bin/
[root@RHEL bin]# ll
total 39148
-rwxr-xr-x  1 root root  2529633 Dec 12 15:57 bash
-r-xr-xr-x  1 root root     6806 Dec 12 15:57 bashbug
4.7. 切换到新版本的bash,查看当前版本
[root@RHEL bin]# ./bash
[root@RHEL bin]# echo $BASH_VERSION 
4.3.30(3)-release

4.8. 使用新版本shell

从上面的命令得知,当前的bash的版本为4.3.30.这表示新版本的bash已经编译安装成功。但是目前用户还不能使用这个新的shell。因为出于安全考虑,用户只能使用/etc/shells文件列出的shell,下面命令显示该文件的内容:

[root@RHEL bin]# more /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh

从上面输出结果可知,用户可以使用5个shell,而前面2个实质都是bash。

为了使用新版本shell,我们需要添加路径配置,配置方法有多钟,此处提供一种用vim修改/etc/shells,修改信息如下:

/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/usr/local/bin/bash
### 设置和配置Shell脚本执行环境 #### 配置Shell环境文件 为了确保Shell脚本能正常工作,在Linux环境中通常需要编辑`~/.profile`或`~/.bashrc`来设定必要的环境变量。对于系统范围内的设置,可以修改`/etc/profile`;而对于特定用户的个性化设置,则应调整个人用户目录下的`.bashrc`文件[^1]。 - **Profile**: 此文件用于统一设置整个系统的环境变量以及启动应用程序,仅当用户首次登录时读取并应用其中定义的内容。 - **Bashrc**: 它专为BASH shell提供初始化参数,并且不仅限于初次登录加载,每次开启新终端窗口或是创建子进程都会重新解析此文件中的指令。 ```sh # 添加到 ~/.bashrc 或者 /etc/profile 中以永久生效 export PATH=$PATH:/path/to/custom/binaries ``` #### 编写可执行的Shell脚本 编写Shell脚本前需确认使用的解释器版本,默认情况下大多数Linux发行版预安装了GNU Bash作为默认shell。创建一个新的文本文件并将下面内容保存进去: ```sh #!/bin/bash echo "Hello, this is a test script." date ``` 赋予该文件执行权限以便可以直接调用它而无需通过命令行指定解释器路径: ```sh chmod +x myscript.sh ./myscript.sh ``` #### 使用Cron调度Shell脚本定期运行 如果希望某些操作能够周期性自动完成,比如每日凌晨两点清理临时文件夹,那么可以通过配置crontab条目实现自动化处理。这依赖于Linux内建的任务计划程序——cron daemon服务[^2]。 向当前用户的crontab列表添加一项新的作业安排如下所示: ```sh crontab -e ``` 接着输入具体的定时规则与待执行的动作描述: ```text 0 2 * * * /home/user/myscript.sh >> /var/log/myjob.log 2>&1 ``` 上述表达式意味着每天早上2点钟触发位于/home/user目录下名为'myscript.sh'的脚本,并将其标准输出重定向至日志记录文件/var/log/myjob.log中存储起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值