目前 PHP 最近版本是 7.2, 但如果使用 RHEL 及 CentOS 7 默认的 YUM 安装, 只停留在 PHP 5.4, 以下文会介绍用 Remi 及 EPEL Repository 安装 PHP 7.2 的方法, 以下方法适用于 RHEL / CentOS 7. …
要检查 Linux 下 kernel module (驱动程式) 的版本, 可以用 modinfo 指令取得, modinfo 的指令语法, 只要在 modinfo 后面加上 module 名称即可, 例如: # modinfo module-name 要知道 module 名称, 需要用另一道指令 lsmod 即得, lsmod 会列出目前所有加载的 …
Shell Script 提供了 $RANDOM 变量,直接用 echo 印出或调用已经可以产生乱数。用 $RANDOM 产生的随机数会在 0 – 32767 之间,而每次使用 $RANDOM 后,它便会被定义一个新的数值,以下是使用例子: $ echo $RANDOM 这样便会印出一个随机数。 以上方法虽然简单,但最大的问题是不能定义随机数的长度,因为 $RANDOM 只会产生介乎 0 – 32767 之间的数值。 要定义乱数的长度,可以用 awk 来做,例如: …
Linux 将系统帐号关于密码的资讯储存在档案 /etc/shadow, 而密码是经过加密。不论基于任何原因, 如果需要手动编辑 /etc/shadow 的密码, 便需要产生一个与 /etc/shadow 使用相同加密方式的密码。而且不用安装其他工具, 用 Python 便可以产生这个加密密码。 在 shadow 内的加密密码, 以下列格式储存: $ID$SALT$ENCRYPTED 上面的 $ID 是加密方式, $SALT 是一个最多 16 位的随机字串, $ENCRYPTED 则是 password hash. …
用 nslookup 指令查询域名的 ip 时,会有一行 “Non-authoritative answer”,例如这样: 这里的 Non-authoritative answer 表示所查询的 DNS (上面是 8.8.8.8),并不是原始的 DNS 纪录来源,是由域名所设定的 DNS Server 取得资料。 那么什么时候不会出现 Non-authoritative answer 呢,就是直接向域名登记的 DNS 查询,例如 google.com 使用的 DNS 是 …
Linux 有很多不同种类的 Log 纪录档,很多时需要在 log 里面找资料,但当 log 的体积越来越大时,要查看还真是很吃力。 这时可以用不同的 Linux 指令配合使用,将 log 纪录档最后的资料抽出,抽出资料的时间可以按需要更改。 例如 /var/log/message 默认纪录档的格式可以用以下指令: 上面指令需要修改最后的档案名称,以及 “+%b %_d %H:%M” 这一组参数,需要配合 log 的日期时间格式。 另一个例子是 log 里面不是用一般的日期时间格式,像 QMail 是用 tai64n …
Wrapper Script 在 Unix Like 环境十分常见,它不会重新建立一个新的程式,而是会读取 input 后加入所需的功能,再将 input 直接传送给现有的指令。以下是 wrapper script 的简单例子: 以上 Wrapper Script 实际上没有什么用途,它只是将输入直接传送给 /root/bin/my-script.sh,所以执行以上 Wrapper 跟执行 /root/bin/my-script.sh 是没有分别,因为没有加入任何新功能。如果有用过 QMail 的应该会编辑过 daemontools 的 run script, 这个 …
电邮服务器会设定不同的埠号给 email client 作 relay 的用途,主要是埠号 25, 465 及 587, 以下是这些埠号的分别。 Port 25 Internet Assigned Numbers Authority (IANA) 把埠号 25 预留用作默认的 SMTP 埠号。但很多 ISP 避免客户发送垃圾电邮,很多 ISP 将客户的 port 25 …
在建立 SSL 凭证时规划好一点, 日后会省却不少麻烦, 例如将不同凭证以域名命名, 或者像 Let’s Encrypt 一样, 将凭证放到网址名称的目录. 但如果建立凭证时没有规划好, 日后要检视凭证的有效网址, 可以用 openssl 指令取得凭证的相关资讯, 以下指令可以取得凭证的资讯: # openssl x509 -in cert.pem -text -noout 只显示 SSL 凭证的 CN, 可用以下指令: # …
grep 指令是十分常用的字串搜索工具,可以对档案或 pipe 输入进行搜索,而 grep 指令也可以使用 or 或 and 对两个以上条件搜索。 OR 以下几种方法,也可以实现 or 搜索,会对两种字串进行搜索,只要符合其中一个条件,即会印出那行的内容: $ grep ‘pattern1\|patten2’ file.txt $ grep -E ‘pattern1|pattern2’ file.txt $ egrep ‘pattern1|pattern2’ file.txt $ grep …