返回

速查

常用指令和 API
2025-02-20
8714 字 · 约 22 分钟阅读

1. Linux

Debian 12 是一个稳定的 Linux 发行版,适合服务器和桌面使用,以下操作默认 root 用户,酌情自行加 sudo

# 更改为科大源
tee /etc/apt/sources.list <<EOF
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
EOF

# 安装常用软件
apt update
apt install -y vim wget git zsh curl htop gcc make openssl p7zip-full unzip screen net-tools build-essential

# 不那么常用的软件
apt install -y btop supervisor proxychains iproute2 passwd iperf pipx

# 安装 Oh-My-Zsh 并更新主题成 alanpeabody
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="alanpeabody"/' ~/.zshrc

# 配置为上海时区
timedatectl set-timezone Asia/Shanghai

Debian12 的 Netplan 的配置参考:

network:
  ethernets:
    enp1s0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.10.11/24]
      nameservers:
        addresses:
          - 192.168.10.12
      routes:
        - to: default
          via: 192.168.10.12
          on-link: true

添加 SSH 公钥到 authorized_keys 文件中:

mkdir -m 700 ~/.ssh
touch ~/.ssh/authorized_keys
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ57GU6Y5oNGHQYIKbn2XhosgqMBhW67FygKT3i/B10cagNM9msxJ8IIPMw6q2PcXtjwAgw8WqezCucHblkMxmygsnPbJBiV8s0tUg3Wld0VW1m0W0dQ98y7c0QNZ/4L5EtklqYMpSlOZ/w+GW+BXOTg7fNhIWsMVUyUjd726goA3REpcrLsrb0AzVYSzcnCyGdoD81FrQk9b4ud49eN6VnDafac372D+bb+3h7LYrA4gZjLXeDDUxp7OfQuTpZlbUsYc6YmJq8n/a0OOB1SRDxKVZ4ft9a5NBdWWEgsjxCb1zCVLoTsNl/MpF5nm4L17NlgFGtnyw92KuK1wlKhkV/t4sQskp0F/3N8Cz7ea8vFHJIgjibivCyxsB4CCrOLOVxrrwTYEgu1YvpWox1p160lvnkIivyMfNdz+NuEx7f5/6euD0HW0B0SO6K0iH0yGhGNX1N9MctbabPOhWaV8+RpsVROZNW41JWcrxGamelG00Jc3MfHobCNSje4j/ZmEwg5DsksX5gwq60Jx5Jzvf7caOSzqes4mWa3ggjMpwyVratga9uE4u38rKFsSg6YkYXuIiV37uxjFEHi74F95DI1Dh8kkUHDiuIMrkFlHJlQk4K3zlI14mgyQAzshIyYbISq+Rp4RiQAdpXf6wPl5kpdRFl8pQRJAjuk4iCIlA9w==" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

1.1. python

全局修改为清华源:

echo -e "[global]\nindex-url = https://mirrors.ustc.edu.cn/pypi/simple" > /etc/pip.conf

1.2. supervisor

Supervisor 是一个进程管理工具,可以用来启动、停止和监控进程,它可以确保进程在崩溃后自动重启,并提供日志记录功能

参考:

[program:syncmemo]
directory=/opt/syncmemo
command=/opt/syncmemo/venv/bin/gunicorn --bind=127.0.0.1:28083 flaskr:app
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=16MB
stdout_logfile_backups=2
redirect_stderr=true
# environment=PATH="/opt/syncmemo/venv/bin:%(ENV_PATH)s"
# environment=CONFIG="/opt/syncmemo/config.yaml"
user=app

创建一个无法登录的系统用户如 app 来运行应用程序,这是一种安全最佳实践:

useradd --system --no-create-home --shell /usr/sbin/nologin app

1.3. systemd

systemd 是 Linux 系统中用于启动和管理系统服务的工具,它提供了一种统一的方式来管理系统服务、挂载点、设备等,以运行服务 Gost 为例

先设置好日志格式,编辑 /etc/systemd/journald.conf 文件,确保以下配置:

SystemMaxUse=10240M         # 所有日志最多占用磁盘 10G 空间
SystemMaxFileSize=128M      # 单个日志文件最大大小(超过自动切割)
MaxRetentionSec=14day       # 最多保留 14 天日志

重启 systemd-journald 服务使配置生效:

systemctl restart systemd-journald

设置 gost 的日志输出配置,编辑 /etc/logrotate.d/gost 文件,内容如下:

/var/log/gost*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    create 640 root adm
    postrotate
        systemctl kill -s SIGUSR1 mihomo.service >/dev/null 2>&1 || true
    endscript
}

创建一个 systemd 服务文件 /etc/systemd/system/gost.service,内容如下:

[Unit]
Description=Gost Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/gost
ExecStart=/opt/gost/gost -C /opt/gost/config.yaml
Restart=on-failure
RestartSec=3s
LimitNOFILE=65535
StandardOutput=append:/var/log/gost.log
StandardError=append:/var/log/gost.log
MemoryLimit=1024M
CPUQuota=90%
ProtectSystem=full
ProtectHome=yes
NoNewPrivileges=yes
PrivateTmp=yes

[Install]
WantedBy=multi-user.target

启用并启动服务:

systemctl daemon-reload
systemctl enable --now gost

2. 公开服务

2.1. 下载加速

https://agent.chancel.me

此服务用于解决国内网络无法顺利连接到 github.com/www.debian.org 等网络状况不佳的网站

目前服务支持加速域名(包含其所有子域名):

  • proxy.golang.org
  • .*.debian.org
  • github.com
  • .*.github.com
  • python.org
  • .*.python.org
  • githubusercontent.com
  • .*.githubusercontent.com
  • secure.gravatar.com
  • objects.githubusercontent.com
  • downloads.openwrt.org

使用方法:将原域名作为路径,域名替换为 agent.chancel.me 进行,例如:

  • 源连接:https://raw.githubusercontent.com/aristocratos/btop/main/CMakeLists.txt
  • 更改后的链接:https://agent.chancel.me/raw.githubusercontent.com/aristocratos/btop/main/CMakeLists.txt

2.2. PlantUML

https://plantuml.chancel.me

2.3. 本地文件/数据存取

https://api.chancel.me/api/file/<key

上传文件采用 POST,下载文件采用 GET,示例:

# 上传文件
curl -X POST -F "file=@/path/to/myfile.txt" https://api.chancel.me/api/file/myfile

# 成功返回
{
    "success": true,
    "message": "文件已存储",
    "data": {
        "key": "myfile",
        "file_info": {
            "filename": "myfile.txt",
            "mimetype": "application/octet-stream",
            "size": 5147,
            "original_size": 5147,
            "compressed": true,
            "compressed_size": 742,
            "compression_ratio": "14.42%"
        }
    }
}

# 下载文件
curl -O -J https://api.chancel.me/api/file/myfile

2.4. IP查询

https://api.chancel.me/api/ip

GET 请求返回调用者 IP

# 请求
curl https://api.chancel.me/api/ip

# 返回
{
  "status": 1,
  "msg": "Query success",
  "data": {
      "ip": "8.8.8.8"
  },
  "version":"V1.0.0"
}

3. Windows

3.1. Scoop

Scoop 是一个 Windows 平台下的命令行安装工具,它旨在简化软件的安装和管理

安装 Scoop,Scoop 需要 PowerShell 5(或更高版本)和 .NET Framework 4.5(或更高版本),打开 Powershell 进行安装:

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
iwr -useb get.scoop.sh | iex
scoop install git
scoop update

Scoop 采用了多个源的管理方式,例如添加最常用的扩展源:

scoop bucket add extras

例如安装 vscodium :

scoop install vscodium

通过搜索软件来确定源,从而添加源再安装软件,如下:

PS C:\Users\ycs10> scoop search openjdk
Results from other known buckets...
(add them using 'scoop bucket add <bucket name>')

Name                Source
----                ------
openjdk-ea          java
openjdk             java
openjdk10           java
openjdk11           java
openjdk12           java
openjdk13           java
openjdk14           java
openjdk15           java
openjdk16           java
openjdk17           java
openjdk18           java
openjdk19           java
openjdk20           java
openjdk21           java
openjdk22           java
openjdk23           java
openjdk7-unofficial java
openjdk8-redhat-jre java
openjdk8-redhat     java
openjdk9            java

PS C:\Users\ycs10> scoop bucket add java
Checking repo... OK
The java bucket was added successfully.
PS C:\Users\ycs10> scoop install openjdk17
Installing 'openjdk17' (17.0.2-8) [64bit] from 'java' bucket
openjdk-17.0.2_windows-x64_bin.zip (177.6 MB) [==========================================================================================================================================================] 100%
Checking hash of openjdk-17.0.2_windows-x64_bin.zip ... ok.
Extracting openjdk-17.0.2_windows-x64_bin.zip ... done.
Linking ~\scoop\apps\openjdk17\current => ~\scoop\apps\openjdk17\17.0.2-8
Adding ~\scoop\apps\openjdk17\current\bin to your path.
'openjdk17' (17.0.2-8) was installed successfully!

3.2. PowerShell Core

PowerShell Core 和 Windows PowerShell 是两个相关但有区别的工具:

  • Windows PowerShell:仅支持 Windows,基于 .Net Framework,已停止更新,闭源
  • PowerShell Core: 基于 .Net Core 开发的支持跨平台框架,保留大部分 Windows PowerShell 特性,开源

PowerShell Core 是一个跨平台的任务自动化和配置管理框架,它基于 .NET Core 开发,支持在 Windows、macOS 和 Linux 上运行,提供了更广泛的兼容性和更现代化的功能

使用 Scoop 安装 PowerShell Core:

scoop install pwsh

启动 PowerShell Core:

pwsh

3.3. AutoHotKey

AutoHotkey 是一个非常强大的 Windows 自动化工具和脚本语言,允许用户通过热键和脚本来自动执行各种任务

文档:

  • https://www.autohotkey.com/docs/v2/

安装:

scoop update
scoop install autohotkey

例如,用 AutoHotKey 实现 Ctrl + Alt + G 打开 chorme ,如果 Chrome 已经在运行,则激活已存在的窗口:

; 定义 Win + G 快捷键
#NoTrayIcon  ; 不在托盘区域显示图标
; 定义热键,例如 Win + T
^!g::
{
    if WinExist("ahk_exe chrome.exe")  ;
    {
        WinActivate()  ;
    }
    else
    {
        Run("C:\Program Files\Google\Chrome\Application\chrome.exe")
    }
}

将上述内容保存为一个文件 chrome.ahk 并双击执行按下 Ctrl + Alt + G 即可唤醒 chrome

上述的脚本为 AutoHotKey V2.0 以上版本

按下 Win+R 打开运行对话框,输入 shell:common startup ,将写好的 ahk 文件放入其中即可开机自启

3.4. 其它

常用软件列表:

类型名称说明安装方法
压缩软件7z开源的压缩文件格式和相应的压缩工具https://www.7-zip.org/download.html
下载工具Free Download Manager免费下载管理器,支持 BThttps://www.freedownloadmanager.org/
影音工具HandBrake免费开源的视频转码软件https://handbrake.fr/
VLC广受欢迎的开源媒体播放器和跨平台媒体框架https://www.videolan.org/
ISO 工具Rufus创建可引导的 usb 安装介质,高兼容性https://rufus.ie/en/
Ventoy用于引导的 ISO 镜像,在启动后可以选择放在 U 盘内的任意 ISO 镜像https://www.ventoy.net/en/index.html
网络工具Frp开源反向代理工具,建立内网穿透的工具https://github.com/fatedier/frp
GostGO 语言实现的安全隧道,支持正向代理、反向代理等https://github.com/ginuerzh/gost
系统工具NSSM允许将任何可执行文件(如应用程序、脚本等)作为 Windows 服务运行https://nssm.cc/
Syncthing开源的 P2P 文件同步工具https://syncthing.net/downloads/
LocalSend与附近的设备共享文件,免费、开源、跨平台https://localsend.org/
Flameshot开源的截图工具,它提供了丰富的截图功能和编辑选项https://flameshot.org/
开发工具DBeaver开源的跨平台数据库工具,支持 MySQL、PostgreSQL、Oracle、SQL Serverhttps://github.com/JonMagon/KDiskMark
MobaXterm可用于远程访问和管理远程计算机https://mobaxterm.mobatek.net/
Scrcpy开源的跨平台工具,它允许您在计算机上显示并控制安卓设备的屏幕https://github.com/Genymobile/scrcpy
tabby开源的终端模拟器和 SSH 客户端https://github.com/Eugeny/tabby
远程管理RustDeskRustDesk 是一个开源的远程桌面软件,它基于 Rust 编程语言开发而成https://rustdesk.com/
ParsecParsec 是一款用于游戏流媒体和远程游戏的软件https://parsec.app/

留言

发表留言