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。