php.script.shell.1,shell script到底是什么?怎么使用?

或许﹐许多人都已经听过 shell 或 bash 这些名字﹐但不知道您是否知道它们究竟是什麼东东呢﹖

先回到电脑基础常识上吧﹕所有的电脑都是由硬体和软体构成的﹐硬体就是大家能摸得著看得见的部份﹐例如﹕键盤﹑荧幕﹑CPU﹑记忆体﹑硬碟﹑等等。离开了硬体﹐所谓的电脑是不存在的﹐因为整个系统的输入和输出以及运算都离不开硬体。请问﹕如果没有键盤和荧幕您是怎样使用电脑的﹖但是﹐您透过键盤进行的输入﹐以及从荧幕看到的输出﹐真正发挥功能的﹐是软体的功劳。而直接负责和这些硬体进行沟通的软体﹐就是所谓的核心(kernel)﹐kernel 必须能够接管键盤的输入﹐然後交由 CPU 进行处理﹐最後将执行结果输出到荧幕上。当然﹐除了键盤和荧幕外﹐所有的硬体都必须获得 kernel 的支援才能使用。

那麼﹐kernel 又如何知道我们键盤输入的东西是什麼呢﹖那就是我们这里介绍的 shell 所负责的事情了。因为电脑本身所处理的数据﹐都是二进位的机器码﹐和我们人类习惯使用的语言很不一样。比方说﹐输入 pwd 命令﹐我们知道这是 print working directory 的意思(非常简单的人类语音)﹐但作为 kernel 来说﹐它并不知道 pwd 是什麼﹐kernel 只会看机器码﹐这时候﹐shell 就会帮我们将 pwd 翻译为 kernel 能理解的程式码。所以﹐我们在使用电脑的时候﹐基本上就是和 shell 打交道﹐而不是直接和 kernel 沟通﹐更不是直接控制硬体。

Windwos下利用批处理程序bat开发的备份网站及数据库的脚本

@echo off

set date=%date:~0,4%-%date: ~5,2%-%date:~8,2%

mysqldump -uroot -ppassword -A -B > D:\back\"%date%".sql

rar.exe a -k -r -s -ml D:\bak\"%date%".sql.rar D:\bak\"%date%".sql

del D:\bak\*.sql

rar.exe a -k -r -s -ml D:\bak\"%date%"htdocs.rar D:\work\PHPnow\htdocs

清除/var/log/message 系统日志文件命令脚本

# 使用root身份运行这个脚本

# 清除日志版本,版本:v1

cd /var/log

cat /dev/null > messages

echo "Logs cleaned up."

问题:

1. 不是root执行权限执行不了

2. 没有流程控制判断是否存在文件

LOG_DIR=/var/log

# $UID为0的时候,用户才具有root用户的权限

ROOT_UID=0

# 使用root用户来运行

if [ "$UID" -ne "$ROOT_UID" ]

then

echo "Must be root to run this script."

exit 1

fi

cd $LOG_dir || {

echo "Can't change to necesary directory." >&2

exit 1

}

cat /dev/null > messages

echo "Logs cleaned up."

exit 0

# 推出之前返回0表示成功,返回1表示失败

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值