Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

SSH 远程登录以及 SFTP 文件传输

2024-09-02 1 min read Linux Ronan

SSH 默认端口号是22.

SSH 远程登录主机

ssh username@hostname

其中,username是用户名,hostname 是主机名或IP 地址。


SSH 连接到自定义或映射端口

有时候为了安全以及各种需求,会将ssh 默认端口进行映射或者更改,这时候就可以使用以下命令

ssh -p <remote_port> username@<hostname>

注意:P 是小写!!!

其中,remote_port是已经映射的远程端口号而不是本地开放默认端口,username是用户名,hostname是远程主机的主机名活 IP 地址。


SFTP 传输文件到远程主机

SFTP 默认端口号与 SSH 一致,都是22.

1 连接到主机

sftp username@hostname

sftp连接到远程主机的方式与 ssh 命令相同。

2 改变远程目录

cd 目标路径

3 改变本地当前工作目录

lcd 目标路径

4 上传文件

put 本地文件路径 [远程目标目录路径]

如果未指定远程目标目录路径,此命令会将本地文件上传到当前远程目录。可以使用 -r选项递归上传目录。

5 下载文件

get 远程文件路径 [本地目标目录路径]

如果未指定本地目标目录路径,此命令将远程文件下载到当前本地工作目录。可以使用-r 选项递归上传目录。


SFTP 连接到自定义或映射端口

sftp -P <remote_port> username@<hostname>

注意:P 是大写!!!

其中,remote_port是已经映射的远程端口号而不是本地开放默认端口,username是用户名,hostname是远程主机的主机名活 IP 地址。

退出SFTP连接

输入exitquit并回车

macOS电池管理脚本

2024-09-02 1 min read Macos Ronan

将以下内容保存为 power_manager.sh 并放入系统环境变量的路径中,接下来可通过 nohup /path/power_manager.sh & 来实现后台运行

#!/bin/zsh

# 关闭休眠
disable_sleep() {
    sudo pmset -b sleep 0
    sudo pmset -b disablesleep 1
}

# 启用休眠
enable_sleep() {
    sudo pmset -b sleep 5
    sudo pmset -b disablesleep 0
}

while true; do

    LOG_FILE="~/power_manager.log"

    # 获取电脑盖子状态
    lid_state=$(ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState | head -1 | awk '{print $NF}')

    # 获取电源连接状态
    ac_state=$(pmset -g batt | head -1)

    if [[ $lid_state == "Yes" ]]; then
    # 合盖状态
        if [[ $ac_state =~ "AC" ]]; then
            # 连接电源,关闭休眠并立即保持系统唤醒
            disable_sleep
        else
            # 未连接电源,开启休眠并立即进入休眠
            enable_sleep
            pmset sleepnow
        fi
    else
    # 开盖状态
        if [[ $ac_state =~ "AC" ]]; then
            # 连接电源,关闭休眠并保持系统唤醒
            disable_sleep
        else
            # 未连接电源,开启休眠但不立即进入休眠
            enable_sleep
        fi
    fi
    sleep 5
done

macOS去除重复PATH环境变量

2024-09-02 1 min read Macos Ronan

环境变量分为系统和用户,这里主要配置用户环境

在 macOS 上,全局的系统环境变量文件通常可以通过以下文件和目录来配置:

  1. /etc/profile
  • 这是系统范围的 shell 配置文件,适用于所有用户。当登录时,bash、sh 等 shell 会读取并执行这个文件。你可以在这里添加系统范围的环境变量。
  1. /etc/paths
  • 这个文件包含系统范围的 PATH 环境变量。每一行是一个目录路径,文件中的所有路径会被添加到每个用户的 PATH 中。
  1. /etc/paths.d/
  • 这是一个目录,你可以在这里放置单个文件,每个文件包含一个路径。目录中的所有文件会被自动加载,并将这些路径添加到 PATH 变量中。
  1. /etc/zshenv(适用于 zsh):
  • 如果你使用 zsh 作为默认 shell(这是 macOS 默认的 shell 从 Catalina 版本开始),/etc/zshenv 会在每次 zsh 启动时被读取,是设置全局环境变量的一个好地方。
  1. ~/.zshrc~/.bashrc(用户级)
  • 虽然这些是用户级配置文件,但它们通常用于设置特定用户的环境变量,而不是全局变量。如果你需要为特定用户设置变量,这些文件是最常用的地方。

列出当前所有PATH路径

一般使用:

echo $PATH

但是,这是人看的东西吗?所以,为了能让人看懂,一般使用下面这个命令:

echo $PATH | tr ':' '\n'

这将按行列出 PATH 中的每个路径,让你更容易查看是否有重复路径。

去除重复PAHT路径

先来一个快速但是 治标不治本 的方法

在 shell 配置文件中添加以下代码来自动去重 PATH 变量:

export PATH=$(echo "$PATH" | tr ':' '\n' | awk '!seen[$0]++' | tr '\n' ':' | sed 's/:$//')

将这段代码添加到你的 ~/.zshrc~/.bashrc 中的 最后 ,然后运行 source ~/.zshrc 或 source ~/.bashrc 使其生效。

Continue reading
Older posts Newer posts