Tag: Fedora
如果在使用一些指令 (例如 rm) 不小心, ShellCheck 是一个 Shell Script 分析及除错工具, 之后要花很多时间修复, 可以在尝试执行 Shell Script 前先找出 Warning 及一些建议。以下会纪录安装及使用 ShellCheck 的步骤。 安装 ShellCheck 安装 ShellCheck 可以用 yum 或 apt-get 直接安装: RHEL, CentOS, …
当 Apache 其中一个 Virtual Host 占用资源过多时,会拖慢整台服务器所有网站的速度,这时可以安装 mod_cband 模组,限制个别虚拟主机可以占用的连线数量及频宽,以下会示范在 CentOS 7 安装 mod_cband 模组: 要安装 mod_cband,需要先安装 httpd-devel: # yum install httpd-devel 然后可以下载 mod_cband 及编译安装: # cd /usr/local/src # wget https://github.com/maiha/mod_cband/archive/master.zip …
以前习惯用 Tab 来做缩排,在用 Sublime Text 没什么关系,Tab 跟 4 个空格的长度一致,但近年经常用 vim 直接在 CLI 写程式,当程式需要多层判断式或循环时,很多时在终端机会看得很辛苦,因为在 vim 显示 Tab 会比 4 个空格的距离还长。 所以还是用 4 个空格取代 Tab 较方便,以下是在 vim 及 Sublime Text 按下 …
在 CLI 下执行的小工具,将输出结果以不同颜色呈现,对可读性有很大帮助,在 Python 要控制输出文字的颜色,做法与 html 相似,只是使用 ANSI escape codes 控制颜色输出。显示颜色文字的颜色编号及格式如下: 以下是样式、颜色及背景颜色的可供选项: 文字样式: 0 一般样式 1 粗体 4 加底线 5 灰底 7 文字及背景颜色对调 文字颜色: 30 黑色 31 红色 32 …
netstat 指令可以用作检视网络连线、网卡统计、路由设定及其他关于网络的资讯,对于进行网络上的除错十分有用。除了 Linux 外,在其他主流作业系统也可以找到 netstat, 包括 Mac OSX, Solaris, BSD 及 Windows。 netstat 使用例子: 列出所有连接埠: $ netstat -a 列出所有 TCP 连接埠: $ netstat -at 列出所有 UDP 连接埠: $ netstat …
uniq 指令可以作用去除重复资料,对象可以是档案或者 pipe 管线输入。 uniq 去除重复资料时,只会对连续重复的行进行过滤处理,所以很多时 uniq 会配合 sort 指令一同使用,或者用 “sort -u” 实现。 uniq 使用例子: 例如有一个档案,里面的内容如下: This is a testing. This is a testing. This is a testing. This …
写程式经常需要做字串处理,其中一项常做的是字串分割。在 PHP 有一个很好用的函式是 explode(), 可以根据指定的分割字符,将字串分割,并把每一组分割后的字串放到 array 内. 在 Shell Script 要这样分割字串,可以用 $IFS 变量实现,以下是 Shell Script 的写法: 上面会将字串 “This is a testing.” 以空格分割,并会将分割后的字串放到 new_string 阵列,最后印出该阵列第一个元值,即 “This”. 如果想将分割后的字串逐一印出,可以改成这样: 上面程式的执行结果是: This is …
写程式很多时需要将阵列的内容印出或逐一处理,在 Shell Script 可以用 for loop 简单地实现,以下是具体写法: 以上 Shell Script 会将阵列 arr 的 key 及 value 逐一印出。
写程式很多时都需要做字串搜寻并取代, 在 Shell Script 内可以使用各种工具完作, 以下是 Shell Script 做字串搜寻取代的方法。 搜寻取代变量的字串: 上面的程式, 第 3 行定义变量 str 的值是 abc, 而第 5 行则设定将变量 str 内的 abc 替换成 xyz. 如果不是替换变量的字串, 是要替换档案的字串, 可以用 sed …
fuser 指令可以查看档案, 目录或 socket 是经由那一个 process 开启,如果 RHEL 7 / CentOS 7 用最少化安装,当执行 fuser 指令时,会遇到 command not found: fuser: command not found 要用 yum 安装 fuser 指令,不可以直接用 fuser 来安装,因为 …