本文共 2052 字,大约阅读时间需要 6 分钟。
Shell是 Unix 操作系统的命令解释器,它接收用户输入的命令并将其转化为操作系统内核能够理解的指令。Shell也是一种脚本语言,允许用户通过脚本调用 Linux 命令,实现自动化操作。
操作系统内核和 Shell 是独立的组件,同一个内核可以使用不同的 Shell。常见的 Shell 有 sh、bash、csh 等。每种 Shell 都有其独特的命令语法和特性。
临时变量是指用户在当前登录环境中定义的变量,通常是通过命令行定义的。当用户退出系统后,这些变量不会继续生效。
通过将环境变量定义写入配置文件,可以实现环境变量永久生效。例如:
/etc/profile:系统所有用户登录时生效的环境变量文件。~/.bash_profile:用户自定义的环境变量文件。系统提供的环境变量对所有用户有效,常见的有 $HOME、$SHELL、$PATH 等。
一个典型的 Shell 脚本包含以下部分:
#!/bin/bash,指定使用 bash 解释脚本。# 符号注释脚本内容。默认情况下,脚本没有执行权限。需要使用 chmod +x script.sh 赋予执行权限。
/root/helloWorld.sh 或 ./helloWorld.sh。bash helloWorld.sh 或 sh helloWorld.sh。source helloWorld.sh 或 ./helloWorld.sh。$HOME、$SHELL、$? 等。name="张伟"age=30echo $name $age
unset NAMEreadonly B=2,不能被 unset位置参数变量用于传递脚本参数,常见的有:
$1 到 $9:表示第 1 到第 9 个参数。$*:表示所有参数,作为整体。$@:表示所有参数,逐个区分。shift 用于将位置参数左移,每次执行后,参数序列顺次左移一个位置。
if [ "$name" == "root" ]; then echo "欢迎 root !"fi
if [ 100 -ge 100 ]; then echo "相等"fi
if [ -d "/etc/rc.d/httpd" ]; then echo "存在"fi
if [ -x "/etc/rc.d/init.d/httpd" ]; then /etc/rc.d/init.d/httpd restartfi
case $CMD in start) echo "正在" ;; Stop) echo "停止中" ;; *) echo "错误的命令" ;;esac
for N in {1..100}; do echo $Ndone while [ $i -le 10 ]; do echo $i i=$((i+1))done
function hello() { echo "欢迎!" return 0}hello hello()
crontab 通过配置文件定义任务调度信息,常用格式为:
分钟 小时 天 月 星期 命令* * * * * /path/to/script.sh
*/5 * * * * /bin/echo "每5分钟运行一次"0 18-23 * * * /path/to/dbcheck.sh
通过以上方法,可以实现任务的自动化和定时运行。
转载地址:http://orblz.baihongyu.com/