Thursday, 6. March 2008, 10:46:47
Shell, Linux, bash
自己胡乱写的脚本,以后可能还用到,因此贴于此处。
update.sh#!/bin/bash
# 生成数据路径(若不存在)
CONTENTS_ROOT=/opt/data
DATA_DIR=(image/01 image/02 movie/01 movie/02)
for ((i=0; i<${#DATA_DIR[@]}; i++)); do
NEW_PATH=$CONTENTS_ROOT/${DATA_DIR[i]}
if [ ! -d $NEW_PATH ]; then
mkdir -p $NEW_PATH
chmod a+rw $NEW_PATH
echo "Make $NEW_PATH ok ..."
fi
done
# 从远程服务器取得新的程序代码, 命令须加 -r 参数
if [ "$1" = "-r" ]; then
rm -f new_src.tar.gz
scp myuser@remote.server:~/project1/new_src.tar.gz .
tar -zxvf new_src.tar.gz
rm -f new_src.tar.gz
echo "Copy files from remote.server ok ..."
fi
# 若是测试服务器,修改代码,设置 DEBUG 标志为 1
if [ `hostname` = test_server ]; then
sed -i "s/define('DEBUG', 0)/define('DEBUG', 1)/g;" ./config/setting.php
echo "Set DEBUG = 1 ok ..."
fi
# 把新代码拷贝到目标路径
DEST_PATH=/opt/project1/src
if [ `pwd` != $DEST_PATH ]; then
cp -prf * $DEST_PATH/
echo "Copy source ok ..."
fi
# UPDATE 结束
echo "Update finish!"
说明:以上程序仅为模板,其中的路径是杜撰,还省略了一些步骤。
Tuesday, 20. March 2007, 11:21:24
Solaris, Shell
Solaris的设置,感觉上比起Linux要麻烦。
一个短短的脚本,花费我整整一天。
#!/usr/bin/bash
# Shell script to monitor or watch the disk space
# ----------------------------------------------------------------------
# Copyright (c) 2007 Jlake ou
# author: ou
# ----------------------------------------------------------------------
# set admin email so that you can get email
ADMIN="local-watch@mail.domain"
# set alert level 90% is default
ALERT=90
df -k / /usr /var /var/run /tmp /opt | grep -v '^Filesystem' | awk '{ print $5 " " $6 }' | while read output;
do
#echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge $ALERT ]; then
echo -e "To: \"Local watcher\" <local-watch@mail.domain>\nFrom: \"System\" <root@server.name>\nSubject:!!Alert!! Disk usage of $partition >= $usep%\n\nRunning out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" | mail $ADMIN
fi
done
sendmail需要设置的地方:
# vi /etc/mail/sendmail.cf
---------------------------------------------------
# "Smart" relay host (may be null)
DSmailhost$?m.$m$.
DSyour.smtp.server
---------------------------------------------------
还要设定cron
# crontab -e
---------------------------------------------------
0,10,20,30,40,50 * * * * /home/batch/disk_watch.sh
---------------------------------------------------
Tuesday, 20. March 2007, 05:13:49
Linux, Mail, Shell
一,用mail命令发送echo "Body" | mail -s "Subject" addr@some.domain
二,用sendmail命令发送email="to@toaddress.com"
emailname="Test Mail"
messagebody="tmp.tmp"
from="from@fromaddress.com"
fromname="MailReport"
subject="Mail Report"
echo -e "To: \"${emailname}\" <${email}>\nFrom: \"${fromname}\" <${from}>\nSubject: ${subject}\n\n`cat ${messagebody}`" | /usr/sbin/sendmail -t
三,借助‘email’工具发送echo "<h1>你好</h1><p style=\"color:red; background-color:gray; height:10em;\">html 邮件测试</p>" | email --html --smtp-user 发送邮件所用的帐号 --smtp-pass 发送邮件所用的密码 --subject "这里是标题" --attach 文件1.zip,文件2.jpg,文件3.tar --cc 抄送到邮件地址 -bcc 暗送到邮件地址 收件人邮件地址
Thursday, 25. January 2007, 06:34:01
Solaris, Linux, Shell
脚本功能如题,内容如下:
#! /bin/sh
#
# Copyright(c) 2007, by ZhiWei Ou.
# All rights reserved.
#
#ident @Z%new_maillog 1.0 2007/01/25 SMI
#
LOGDIR=/var/adm
BAKDIR=/mnt/var_bak/adm
LOG=procmaillog
DATE=`date '+%Y%m%d'`
if test -d $BAKDIR
then
cd $LOGDIR
test -f $LOG && cp -pf $LOG $BAKDIR
tail -10000 $LOG > $LOG.tmp && mv $LOG.tmp $LOG
cd $BAKDIR
gzip $LOG && mv $LOG.gz $LOG.$DATE.gz
fi
*该程序于Solaris下做成,Linux下应该也能用。
Monday, 18. December 2006, 05:47:51
Shell, Linux
Ctrl + A : 光标移到行首。
Ctrl + E : 光标移到行尾。
Ctrl + L : 清屏。
Ctrl + U : 清除光标前至行首间的所有内容。
Ctrl + H : 同 backspace 键相同。
Ctrl + R : 搜索之前打过的命令。
Ctrl + C : 杀死当前进程。
Ctrl + D : 退出当前 Shell。
Ctrl + Z : 把当前进程转到后台运行,使用' fg '命令恢复。
Ctrl + W : 移除光标前的一个单词
Ctrl + K : 清除光标后至行尾的内容。
Ctrl + T : 交换光标位置前的两个字符。
Esc + T : 交换光标位置前的两个单词。
Alt + F : 在当前行把光标向前移一个单词。
Alt + B : 在当前行把光标向后移一个单词。
Tab : 自动补完命令。
转自
Slashdot/Digg中文翻译
Monday, 2. January 2006, 09:28:48
Linux, FreeBSD, Shell
一. 启动,关机,登入,登出相关命令
<login> 登录
<logout> 登出
<exit> 登出
<shutdown> 停止系统
<halt> 停止系统
<reboot> 重启动
<poweroff> 切断电源
<sync> 把内存里的内容写入磁盘
<lilo> 安装lilo启动管理程序
<grub> 安装grub启动管理程序
二. Shell相关命令
<chsh> 切换Shell
<history> 显示命令履历
<alias> 设置命令别名
<unalias> 取消命令别名
<which> 显示命令所在位置
<type> 查询命令种类
<echo> 显示字符串或者变量内容
<set> 设置/显示Shell变量
<printenv> 显示环境变量
<export> 设置环境变量
<env> 设置临时环境变量
<unset> 释放环境变量
<setenv> 设置环境变量
<unsetenv> 释放环境变量
<source> 执行文件当中的命令
<man> 查询命令手册
<info> 查询超文本命令手册
<whatis> 显示命令简介
<apropos> 通过关键字查询手册
三. 用户管理相关命令
<su> 切换到其他用户
<useradd> 追加用户
<adduser> 追加用户
<userdel> 删除用户
<usermod> 修改用户设置
<chfn> 修改用户私人信息
<groupadd> 追加组
<groupdel> 删除组
<groupmod> 修改组设置
<passwd> 更改密码
<whoami> 显示用户名
<logname> 显示登录用户帐号
<users> 显示所有登录用户信息
<who> 查询登录用户信息
<w> 查询登录用户信息
<id> 显示指定用户的ID信息
<groups> 显示指定用户的所属组
<finger> 显示指定用户的个人信息
<mesg> 开关与他人收发消息
<write> 给其他用户发消息
<wall> 给所有用户发消息
<talk> 和其他用户聊天
四. 系统消息相关命令
<date> 显示/设置当前时间
<uptime> 显示系统运行时间
<arch> 显示机器的核心构架(如i386)
<uname> 显示操作系统信息
<tty> 显示终端名
<last> 显示登录/登出在履历
<lastb> 显示非法登录信息
<dumpkeys> 显示当前键盘配置
<loadkeys> 变更键盘配置
<df> 查询磁盘使用信息
<du> 查询磁盘使用信息
<dmesg> 显示系统启动消息
<script> 保存输入输出到文件
五. 文件操作相关命令
<ls> 显示文件列表
<tree> 显示目录树
<pwd> 显示当前路径
<cd> 更改当前路径
<pushd> 追加路径到目录堆栈
<popd> 从目录堆栈删除路径
<dirs> 显示目录堆栈的内容
<mkdir> 创建路径
<rmdir> 删除路径
<cp> 复制文件/目录
<rm> 删除文件/目录
<mv> 移动文件/目录,修改文件名
<chown> 更改文件/目录的所有者
<chgrp> 修改文件/目录的所有组
<chmod> 修改文件/目录的权限
<touch> 更改文件时间
<ln> 建立文件/目录链接
<find> 查找文件
<whereis> 显示文件存在的路径名
<file> 查询文件种类
<size> 查询文件大小
六. 文件编辑相关命令
<cat> 显示文件内容
<tee> 输出到文件和屏幕
<more> 分屏显示文件内容
<less> 分屏显示文件内容
<head> 显示文件头部内容
<tail> 显示文件尾部内容
<fold> 折叠显示长行
<sort> 排列文件的行
<cmp> 比较文件内容
<diff> 显示文件差异
<nkf> 更改日语文件编码
<dd> 变更文件之后复制
<wc> 统计文本单词数,文件大小等
<split> 分割文件
<paste> 以行连接文件
<join> 以字段连接文件
<grep> 查询文字
<uniq> 过滤重复部分显示文件内容
<tr> 替换文字
<sed> 替换文字
七. 压缩/解压缩相关命令
<ar> 压缩/解压缩文件
<tar> 压缩/解压缩文件
<compress> 压缩/解压缩文件
<uncompress> 解压缩
<gzip> 压缩/解压缩文件
<gunzip> 解压缩
<zcat> 显示压缩文件的内容
<lha> 压缩/解压缩文件
<uuencode> 把二进制文件编码为文本文件
<uudecode> 把经过编码的文本文件还原为二进制文件
八. MS-DOS工具集[mtools]命令
<mdir> 显示文件列表
<mcd> 改变当前目录
<mmd> 新建目录
<mrd> 删除目录
<mdeltree> 删除目录树
<mcopy> 复制文件
<mdel> 删除文件
<mmove> 移动文件
<mren> 更改文件或目录名
<mattrib> 修改文件属性
<mtype> 显示文件内容
<mdu> 查询文件或目录大小
<minfo> 显示磁盘信息
<mformat> 以MS-DOS方式格式化磁盘
<mlabel> 设置磁盘标签
九. 控制外部设备相关命令
<mount> mount上设备
<umount> 解除已经mount上的设备
<eject> 弹出(CD/DVD等)
<fdformat> 格式化软盘
<fdisk> 配置/显示硬盘分区
<mkfs> 格式化磁盘分区
<fsck> 检查/修复磁盘错误
<lpr> 打印到打印机
<lprm> 中断打印任务
<lpq> 显示打印任务的状态
<lpc> 管理/控制打印任务
<ifconfig> 显示/设定NIC配置
十. 进程及任务管理相关命令
<ps> 显示正在运行的进程
<jobs> 显示后台运行任务
<fg> 把任务切换到前台
<bg> 把任务切换到后台
<kill> 中止进程或任务
<killall> 中止进程或任务
<wait> 等待进程或任务的结束
<at> 设置定时执行任务
<atq> 显示尚未执行的任务
<atrm> 删除定时执行任务
<batch> 在系统负荷减轻的时候执行任务
<nice> 改变优先度并执行任务
<nohup> 在后台执行任务,Logout之后也不退出
<sleep> 休眠一定的时间
十一. 网络管理相关命令
<netstat> 显示当前网络连接状况
<route> 显示/设置路由
<host> 显示网络主机情况
<hostname> 显示/设置当前主机的名字
<ping> 确认和远程机器的连接情况
<traceroute> 显示路由信息
<rwho> 查询网上机器的登陆用户
<ruptime> 查询网上机器的系统运行时间
<rlogin> 登陆到远程机器
<telnet> 用telnet登陆到远程机器
<rsh> 给远程机器发送命令
<rcp> 在远程机器之间复制文件
<mail> 收取邮件
<sendmail> 发送邮件
<mailq> 确认邮件队列
<ftp> 用ftp传输文件
十一. 其他命令
<cal> 显示日历
<clear> 清屏
<gcc> 编译C语言代码
<as> 汇编
<bc> 计算
<rpm> Redhat的包管理
<dpkg> Debian的包管理
<installpkg> Slackware的包安装(删除命令则是removepkg)
<XF86Setup,turboxfg,Xconfigurator> 配置 X 服务器
<startx> 启动 X-Window 系统
附:组合命令
重定向,如
$ ls -l /bin > ls-output
$ more ls-output
管道命令,如
$ cat file1 file2 | sort | uniq
经常被用于管道的命令
awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc
注:
以上资料来自 《Linux コマンド早引き事典》(作者:多比羅 悟,2000年出版)。
只是翻译了目录部分。