Tag: Fedora
不管系统管理还是写程式,在档案内对字串进行搜寻并取代十分常用,在 Unix Like 环境下常会用 sed 或 perl 做 search & replace. 如果在开启档案后需要取代字串,其实在 vi 及 vim 内同样可以做搜查及取代字串,做法跟 sed 差不多,以下是 vi 做搜寻及取代的语法: :%s/search_from/replace_to/g 以上 vi 的语法会将档案内,所有 “search_from” 的字串替换成 “replace_to”。 将上面指令最后加上一个 “c” …
当需要在两台主机间执行指令,可以用 SSH 直接传送要执行的指令,该远端主机直接执行,而无需登入另一台主机。 以下是具体指令的语法: 上面的 “user” 是登入帐号的使用者名称,remote.server 是远端主机,而 “ls -l” 是要执行的指令。当执行以上指令后,如果系统没有设定自动免密码登入,会询问远端主机的密码,输入密码后会在远端执行指令,并输出执行结果。 如果要同时执行多个指令,可以用 “;” 或 “&&” 分隔,例如: 或 如果需要用 Shell Script 执行远端指令,当需要在指令加入变量,需要将上面的单引号,改成双引号,例如: 最后是执行类似 top 这类互动模式的指令,只要加入 -t 选项即可: 除了 top 后,也可以用在 …
在 Linux 下要删除档案,可以用 rm 指令很简单地完成,但 rm 指定遇上容量很大的档案时,例如 100GB 以上,删除时会占用很多系统资源,如果系统的资源很紧张,也有可能在执行时当掉。 以下会介绍在 Linux 下要删除大容量档案, 而不会占用过多系统资源 (I/O) 的方法。 这个方法的原理是先清空档案内容,然后再用 rm 删除。Linux 下清空档案的方法有很多,以下列出其中两种,并假设要删除的档案是 big-file.log: $ echo “” > big-file.log $ cat /dev/null > …
在 Linux CLI 下连接到 MySQL 或 MariaDB 时, 最简单的方法是用默认的 MySQL 客户端工具, 连接方法是这样: $ mysql -u root -p 这样连接 MySQL 最大的问题是, 登入 MySQL 后, 在里面输入的 SQL 指令或语法要凭记忆, 逐个字母输入。而 MyCLI 就可以解决这个问题, …
CentOS 默认安装的 OpenSSL 版本很低, 如果需要在 CentOS 安装较新版本的 OpenSSL, 需要透过编译原始码的方法安装, 以下是 CentOS 7 透过编译原始码的方法安装 OpenSSL 的方法。 如果系统内已经安装了默认的 OpenSSL 版本, 需要先将默认的版本移除, 执行以下指令用 yum 移除: # yum remove openssl openssl-devel -y openssl-1.0.1e-60.el7_3.1.x86_64 …
很多时在写程式时, 需要将一些数值补零, 例如 1 显示为 001, 以下是 Shell Script 的实现方法: Shell Script 的 printf 函式已经可以做到自动补零, 例如想将 8 显示为 “008”, 可以这样写: 除了在数值的前面补零外, 也有一种情况是在小数点补零, 例如数值 “8” 是整数, 但也要强制显示小数点后一个位, 可以这样写: 如果想将上面的结果放到变量, 可以这样写: …
Shell Script 里面的指令, 如果没有用条件控制 (例如 if), 不管之前的指令执行结果如何, 每个指令也会逐一执行, 例如: 上面的程式码很简单, 只是用 cd 指令转换到 /path/dir 目录, 然后执行 rm 指令, 将所有 .txt 结尾的档案删除。 但如果执行 cd 指令的时出错, 例如 /path/dir 目录不存在, 或者没有权限进入, 那便会在当前目录删除所有 …
如果透 SSH 连接到 Linux Server, 用 vi 或 vim 开启档案后, 要将里面的文章复制并贴上, 很多时会用 SSH Client 的复制贴上功能。 例如以 Putty 为例, 用鼠标 Highlight 文字会复制, 按鼠标右键会贴上。 但这种方法要在键盘跟鼠标间操作很麻烦, 其实如果要将整行复制, 可以用 vi 内建的复制贴上功能, 全部在键盘完成, 方法如下: …
root 在 Linux 系统下有最高权限, 但如果用 root 身份执行 rm 指令删除档案, 或要修改档案时, 有些情况可能会出现以下错误: rm: cannot unlink ‘filename’: Operation not permitted 出现这个问题, 多数是因为 chattr 指令锁定了该档案。用 chattr 指令锁定档案后, 除了不能删除外, 也不能修改及改动, 必须要用 chattr 指令解除锁定才可以: …
在 Linux 下有时会有一些暂存盘或日志档需要定时删除, 如果只要在特定目录下, 删除档名包含有指定字串的旧档案, 可以不用 Shell Script, 而直接在 crontab 用 find 指令完成 。 例如我想将 /var/www/html/tmp/ 目录下, 将所有超过 7 日的档案, 并以 “delname.log” 作为档案开头删除, 可以在 crontab 加上以一行, 先开启 crontab : …