Tag: Shell Script
要在 Shell Script 修改系统密码, 在 Linux 可以用 passwd 及 chpasswd 完成, 做法是用一行修改密码的指令, 再放入 Shell Script, 它们的用法分别是: passwd passwd 的作用是修改密码, 但一般用法是用互动模式修改, 以下是用 passwd 的 –stdin 参数, 读入管线 (pipe) 输入修改: 上面指令修改用户 …
在 Shell Script 要读入档案内容,并一行一行地做处理,或者简单一行一行印出内容,可以用 read 语法,具体做法是: read_line.sh 上面的 Shell Script 会读入指令模式输入的档案,没有做任何资料处理,只简单地逐行印出内容。 使用上,上面 shell script 名为 read_line.sh, 要先给予可执行权限,在指令模式是这样做: chmod +x read_line.sh ./read_line.sh /etc/passwd 上面就会将 /etc/passwd 传送给 read_line.sh, 而 read_line.sh 则读取其内容并逐行印出。虽然这样看起来没什么用处,因为用 …
在 Shell Script 检查档案容量, 可以简单用 stat 完成。 stat 指令的作用是输出档案资讯, 比 ls 更加详细, 以下 shell script 写法会用 -c 参数放到 stat, 读取档案大小: 上面的写法可以配合 if 做一些判断, 例如档案过大等, 如果不需要做判断, 而是想得出较可读的档案容量 (即包括如 K, M, …
在 Shell Script 检查档案及目录是否存跟 Perl 很相似, 都是透过 -e 及 -d 在 if 里面判断, 写法如下: 检查目录是否存在 检查档案是否存在
在 Shell Script 可以透过 ls 指令来检查空目录, 例如我想检查 /home/user 目录, 可以这样做: 以上第 3 行用了 ls -A 指令, -A 选项可以将 ls 的输出忽略 “.” 及 “..”。
在 shell script 里面要检查变量是否空白, 可以用 -n 或 -z 实现: -n 会检查变量是否空白, 如果 不是 空白, 便会回传 TRUE。而 -z 则刚刚相反, 如果变量 是 空白, 则会回传 TRUE:
有时我们需要将档案的 tabs 輚换成 space, 一个一个改绝对是对耐性的考验, 在 Linux 下有一个工具 “expand”,它可以将档案内所有 tabs 字符转换为空白字符, 用法如下: $ expand input.file > output.file $ expand data.txt > output.txt $ expand -t 2 data.txt > output.txt …
在 Linux 及其他 Unix Like 作业系统与Windows 里面所储存的文字档案,最大分别是换新一行的显示。Linux 会使用 EOL 作为跳行;而 Windows 则会使用 Ctrl-m (^M)。在 Linux 下可以用 dos2unix 及 unix2dos 将 Linux 及 Windows 的文字档转换: $ unix2dos unix_text.txt win_text.txt 以上指令就会将 …
如果想用 shell script 发送邮件,可以用 mail 实现: # echo “email content” | mail -s “email subject” you@emaildomain 以上语句会发送一封标题为 “email subject” 的电邮到 you@emaildomain,其中 “email content” 为电邮内容。 以下简单的两行 shell script 便会将档案系统使用量,透过电邮发送给指定的电邮信箱: #!/bin/sh …
这个是我日常用作备份 MySQL database 的 shell script,因为以前是直接将所有数据库汇出成一个 sql 档,当其中一个数据库有问题时,因为没问题的数据库不想有改动,要复原资料很麻烦。今天改了一下,它会用 mysqldump 将所有数据库汇出成独立 sql 备份档,然后用 gzip 压缩成 .gz 档案。程式会储存 5 天的备份,当有新备份时,最旧的备份会自动删除。 使用方法: 修改 db_user, db_passwd 及 db_host 修改成你的 mysql 登入资料,所使用的用户权限需要与 mysql root …