Linux_Commands
sed替换目标文件指定内容
# sed -i s|...|...| <目标文件>
sed -i "s|^sha:.*$|sha: '<a href=\"$COMMIT_URL\">$SHORT_SHA</a>'|" ./source/_data/deploy.yml
-i 选项:
直接修改文件内容(原地编辑),而不是输出到终端。
直接覆盖原文件,建议测试时先备份文件。
s|...|...| 替换命令:
- ** 分隔符**:使用
|代替默认的/,避免与替换内容中的/冲突(例如 HTML 标签中的/)。 - 格式:
s|OLD_PATTERN|NEW_CONTENT|
正则表达式 **^sha:.*$**
-
^sha::匹配以sha:开头的行。 -
.*:匹配任意字符(除换行符)零次或多次。 -
$:匹配行尾。 - 整体作用:匹配文件中所有以
sha:开头、后接任意内容的行(例如sha: abc123)
scp和远程主机互传文件
# 假设你有一个文件 `example.txt`,你想将它复制到远程主机的 `/home/user/` 目录下,可以使用以下命令:
scp example.txt user@remote_host:/home/user/
常用选项:
-r:递归复制整个目录。
-P:指定远程主机的 SSH 端口号(默认是 22)。
-p:保留文件的修改时间、访问时间和权限。
-v:显示详细的调试信息,有助于排查问题。
-C:启用压缩,可以加快传输速度。
-1:强制scp命令使用协议ssh1
-2:强制scp命令使用协议ssh2
-4:强制scp命令只使用IPv4寻址
-6:强制scp命令只使用IPv6寻址
-B:使用批处理模式(传输过程中不询问传输口令或短语)
-p:保留原文件的修改时间,访问时间和访问权限。
-q:不显示传输进度条。
-v:详细方式显示输出。
-P: port:注意是大写的P, port是指定数据传输用到的端口号
-l: limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-F: ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i: identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。