服务器配置三板斧

Step1: 创建权限用户

在Linux服务器上创建一个新用户并授予其 sudo 权限的步骤如下:

  1. 创建新用户
    使用 useradd 命令来创建一个名为 wsr 的用户,并为其设置密码。

    1
    2
    sudo useradd -m wsr
    sudo passwd wsr

    这里的 -m 选项用于确保为新用户创建一个主目录。

  2. 将用户添加到 sudo
    要授予 wsr 用户 sudo 权限,可以将其添加到 sudo 组。默认情况下,sudo 组中的用户具有管理员权限。

    1
    sudo usermod -aG sudo wsr

    -aG 表示将用户添加到指定的组而不影响其他组。

  3. 验证配置
    你可以使用 su 命令切换到 wsr 用户,并验证它是否有 sudo 权限。

    1
    2
    su - wsr
    sudo whoami

    如果返回 root,表示该用户已经拥有 sudo 权限。

完成这些步骤后,wsr 用户将具有 sudo 权限并可以执行管理员操作。

配置好免密登录ssh,和github ssh

要在Linux服务器上为 wsr 用户配置 SSH 免密登录,并且能够远程访问 GitHub,以下是详细步骤:

1. 配置本地 SSH 免密登录(Windows)

首先,你需要在 Windows 上生成 SSH 密钥,并将公钥添加到服务器的 wsr 用户下。

1.1. 使用 Windows 的 SSH 工具生成 SSH 密钥

如果你使用的是 Windows 10 或更新版本,可以通过 PowerShell 或 Windows Terminal 生成 SSH 密钥:

  1. 打开 PowerShell 或 Windows Terminal。

  2. 运行以下命令生成 SSH 密钥对:

    1
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • -t rsa: 指定使用 RSA 加密算法。
    • -b 4096: 生成 4096 位的密钥长度(更安全)。
    • -C "your_email@example.com": 这部分是对密钥的注释,一般用你的邮箱来标记。

    生成密钥时,它会询问密钥文件保存路径,默认保存在 C:\Users\your_username\.ssh\id_rsa。你可以按 Enter 使用默认路径。

  3. 如果不想设置密码短语(方便免密登录),直接按回车跳过密码短语设置。

  4. 成功生成密钥对后,公钥存储在 id_rsa.pub 文件中,私钥在 id_rsa 文件中。

1.2. 将公钥上传到服务器

  1. 首先,查看你生成的公钥。使用以下命令查看并复制公钥内容:

    1
    cat ~/.ssh/id_rsa.pub

    然后你可以手动复制这段公钥。

  2. 远程登录到服务器,并为 wsr 用户创建 .ssh 目录及配置授权文件:

    1
    2
    3
    4
    sudo -u wsr mkdir -p /home/wsr/.ssh
    sudo -u wsr touch /home/wsr/.ssh/authorized_keys
    sudo -u wsr chmod 700 /home/wsr/.ssh
    sudo -u wsr chmod 600 /home/wsr/.ssh/authorized_keys
  3. 将你复制的公钥内容添加到 /home/wsr/.ssh/authorized_keys 文件中:

    1
    echo "your_public_key_content" | sudo tee -a /home/wsr/.ssh/authorized_keys
  4. 修改 .ssh 文件夹及 authorized_keys 文件权限以确保安全:

    1
    sudo chown -R wsr:wsr /home/wsr/.ssh

1.3. 测试免密登录

你可以在 Windows 终端中使用以下命令测试是否能够免密码登录服务器:

1
ssh wsr@your_server_ip

如果一切配置正确,你应该能够不输入密码直接登录服务器。

2. 远程配置好公钥用于访问 GitHub 免密

要在服务器上为 wsr 用户配置 SSH 免密访问 GitHub,需要将服务器的 SSH 公钥添加到你的 GitHub 账户中。

2.1. 在服务器上生成 SSH 密钥

切换到 wsr 用户并生成 SSH 密钥:

1
sudo -u wsr ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

和本地生成 SSH 密钥的过程类似,生成密钥对后,公钥会存储在 /home/wsr/.ssh/id_rsa.pub,私钥存储在 /home/wsr/.ssh/id_rsa

2.2. 将公钥添加到 GitHub

  1. 使用以下命令查看生成的公钥并复制内容:

    1
    sudo -u wsr cat /home/wsr/.ssh/id_rsa.pub
  2. 登录到你的 GitHub 账户,并执行以下操作:

    • 进入 GitHub 的 SSH and GPG keys 设置页面。
    • 点击 New SSH Key 按钮。
    • 将服务器上生成的公钥粘贴到 Key 输入框中,添加合适的标题以方便管理,然后点击 Add SSH Key

2.3. 验证 GitHub 免密访问

在服务器上使用以下命令验证是否可以成功访问 GitHub:

1
ssh -T git@github.com

如果配置正确,你应该看到类似以下输出:

1
Hi your_github_username! You've successfully authenticated, but GitHub does not provide shell access.

总结

  • 你已经配置好了 wsr 用户的 SSH 免密登录到服务器,以及该用户对 GitHub 的免密访问。
  • 确保 .ssh 目录和 authorized_keys 文件的权限正确,以保障安全。

Step3: zsh + oh-my-zsh + powerlevel10k

要将默认 shell 切换为 zsh,并安装 oh-my-zsh 插件,可以按照以下步骤操作:

1. 安装 Zsh

首先,确保你已经安装了 zsh。在 Linux 系统上可以通过以下命令来安装:

1
2
sudo apt update  # 如果是 Debian/Ubuntu 系统
sudo apt install zsh

或者,对于 CentOS 系统:

1
sudo yum install zsh

确认安装完成后,可以通过以下命令检查 zsh 版本,确保安装成功:

1
zsh --version

2. 将默认 Shell 切换为 Zsh

执行以下命令,将你的默认 shell 改为 zsh

1
chsh -s $(which zsh)

该命令将 zsh 设置为你的默认 shell。需要注销并重新登录或关闭并重新打开终端,以应用更改。

你可以使用以下命令验证当前的默认 shell 是否为 zsh

1
echo $SHELL

如果显示的是 /usr/bin/zsh,那么切换成功。

3. 安装 Oh My Zsh

接下来,安装 Oh My Zsh,这是一个流行的 Zsh 框架,提供了许多自定义主题和插件。

使用以下命令安装 Oh My Zsh

1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

该命令会自动下载并安装 Oh My Zsh,并将其配置为默认的 Zsh 环境。

4. 安装 Oh My Zsh 插件

Oh My Zsh 自带了许多插件,你可以通过编辑 ~/.zshrc 文件来启用它们。常用插件包括 gitzautosuggestions 等。

4.1 安装 zsh-autosuggestions 插件

这是一个流行的插件,可以根据你输入的命令历史提供自动建议。可以通过以下步骤安装:

1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

4.2 安装 zsh-syntax-highlighting 插件

这个插件可以为命令行中的命令添加语法高亮。安装命令如下:

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

4.3 启用插件

安装完成后,编辑 ~/.zshrc 文件启用插件:

1
nano ~/.zshrc

找到如下行:

1
plugins=(git)

将其修改为包含新插件的内容,例如:

1
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

保存并退出文件编辑后,运行以下命令使更改生效:

1
source ~/.zshrc

目前我配置的插件:

1
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z zsh-history-substring-search sudo tmux aliases extract)

贴点有用的说明:

以下是你提到的四个插件的详细作用说明以及如何安装和启用的步骤:

1. sudo 插件(自动在命令前添加 sudo)

作用

当你忘记在命令前加 sudo 时,sudo 插件可以帮助你快速修复这一问题。具体表现为:当你输入一个命令发现需要 sudo 权限时,按 esc 键,它会在当前命令前自动添加 sudo 并重新执行该命令,而不需要你重新输入整个命令。

安装与启用

这个插件已经内置在 Oh My Zsh 中,你只需要在 .zshrc 文件中启用它。

  1. 编辑 .zshrc 文件:

    1
    nano ~/.zshrc
  2. 找到 plugins=(git) 这一行,并将 sudo 插件添加进去:

    1
    plugins=(git sudo)
  3. 保存并退出编辑器,然后重新加载 .zshrc 配置文件:

    1
    source ~/.zshrc

使用

假设你执行了一个需要 sudo 权限的命令,如:

1
apt update

如果提示权限不足,你只需按 esc 键,sudo 会自动添加到命令前并重新执行:

1
sudo apt update

2. tmux 插件(简化 tmux 操作)

作用

tmux 插件为 tmux 终端复用器提供了若干命令别名,使得操作 tmux 更加方便和快捷。tmux 是一个强大的终端工具,能够让你在单个终端窗口中创建、分割、管理多个会话。使用 Oh My Zshtmux 插件,可以简化一些常用操作,比如:

  • tatmux attach)—— 连接到已经存在的 tmux 会话。
  • tntmux new)—— 创建一个新的 tmux 会话。
  • tlstmux ls)—— 列出所有 tmux 会话。

安装与启用

tmux 插件也是 Oh My Zsh 内置的,你只需启用它即可。

  1. 编辑 .zshrc 文件:

    1
    nano ~/.zshrc
  2. 找到 plugins=(git) 这一行,并将 tmux 插件添加进去:

    1
    plugins=(git tmux)
  3. 保存并退出编辑器,然后重新加载 .zshrc 配置文件:

    1
    source ~/.zshrc

使用

  • 启动一个新的 tmux 会话:

    1
    tn
  • 列出所有正在运行的 tmux 会话:

    1
    tls
  • 连接到某个已存在的 tmux 会话:

    1
    ta

3. aliases 插件(命令别名管理)

作用

aliases 插件允许你创建自定义的命令别名,简化你常用的命令。通过别名,你可以为复杂或常用的命令创建简短的替代名称,节省时间并减少输入错误。

安装与启用

aliases 插件不需要单独安装,你可以直接在 .zshrc 文件中定义别名。

  1. 编辑 .zshrc 文件:

    1
    nano ~/.zshrc
  2. 在文件中添加你的自定义别名。比如:

    1
    2
    3
    alias gs='git status'
    alias ll='ls -lah'
    alias update='sudo apt update && sudo apt upgrade'

    这些别名的意思是:

    • gs 执行 git status
    • ll 执行 ls -lah,显示文件详细信息。
    • update 一次性执行 sudo apt updatesudo apt upgrade
  3. 保存并退出编辑器,然后重新加载 .zshrc 配置文件:

    1
    source ~/.zshrc

使用

  • 当你输入 gs 时,它将自动执行 git status
  • 输入 ll 会列出文件和目录的详细信息。
  • 输入 update 则会自动更新和升级你的系统。

4. extract 插件(智能解压)

作用

extract 插件能够自动识别压缩文件的格式并解压它,无需记住不同压缩格式的解压命令。支持的格式包括:tar.gz, tar.bz2, tar.xz, zip, rar 等。你只需一个命令就可以解压任何支持的格式文件,极大简化了解压缩的操作。

安装与启用

extract 插件同样是 Oh My Zsh 内置的。

  1. 编辑 .zshrc 文件:

    1
    nano ~/.zshrc
  2. 找到 plugins=(git) 这一行,并将 extract 插件添加进去:

    1
    plugins=(git extract)
  3. 保存并退出编辑器,然后重新加载 .zshrc 配置文件:

    1
    source ~/.zshrc

使用

使用 extract 来解压文件的基本语法如下:

1
extract your-file-name

例如,如果你有一个 file.tar.gz 文件,你只需运行以下命令来解压它:

1
extract file.tar.gz

extract 插件会自动识别文件格式并执行合适的解压命令。


总结

  • sudo 插件:允许你快速在忘记加 sudo 时自动补充 sudo
  • tmux 插件:简化 tmux 操作,提供快捷命令别名。
  • aliases 插件:自定义常用命令的别名,提升效率。
  • extract 插件:智能解压缩工具,自动识别压缩文件格式并解压。

powerlevel10k 主题

可以流水线Q&A配置的好看主题。

所有流程,包括字体 + 主题安装 + 启动config都在其github主页上:

https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#installation

Anaconda 安装与配置

在 Linux 系统上使用 Anaconda 进行 Python 包管理的步骤如下,涵盖了 Anaconda 安装、环境管理、包管理等方面的内容。

1. 下载并安装 Anaconda

1.1. 下载 Anaconda 安装脚本

你可以通过 wget 命令下载最新版本的 Anaconda 安装脚本:

1
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh

(此处的版本号和文件名可能会随时间更新,你可以访问 Anaconda 官方下载页面 获取最新版本的链接。)

1.2. 安装 Anaconda

下载完成后,运行以下命令来安装 Anaconda:

1
bash Anaconda3-2023.03-Linux-x86_64.sh

安装过程中会要求你同意 Anaconda 的许可证协议,并选择安装路径。默认安装路径为 ~/anaconda3,你可以直接按回车使用默认设置。

1.3. 激活 Anaconda

安装完成后,你可以运行以下命令来激活 Anaconda 环境:

1
source ~/.bashrc

这会使 Anaconda 的 conda 命令可用。

2. 设置默认使用 Zsh

如果你想在 Zsh 中使用 Anaconda,需要将它的路径加入到 .zshrc 中。编辑你的 .zshrc 文件并添加以下内容:

1
export PATH=~/anaconda3/bin:$PATH

然后重新加载 Zsh 配置:

1
source ~/.zshrc

3. 更新 Conda

安装完成后,你可以使用以下命令来更新 conda,确保它是最新版本:

1
conda update conda

4. 创建并管理 Python 环境

Anaconda 的一个重要功能是它允许你创建和管理不同版本的 Python 环境和包。以下是常见的环境管理操作:

4.1. 创建新环境

使用 conda 创建新环境时,你可以指定 Python 的版本。例如,创建一个使用 Python 3.9 的环境:

1
conda create --name myenv python=3.9

myenv 是环境的名称,你可以根据需要更改。

4.2. 激活环境

创建环境后,使用以下命令激活环境:

1
conda activate myenv

4.3. 停用环境

要退出当前激活的环境并返回到 base 环境,使用以下命令:

1
conda deactivate

4.4. 删除环境

如果你不再需要某个环境,可以使用以下命令删除它:

1
conda remove --name myenv --all

5. 安装和管理 Python 包

conda 不仅能管理 Python 版本,还能用来管理包。你可以从 Anaconda 的官方仓库或 pip 安装包。

5.1. 使用 Conda 安装包

使用 conda install 命令安装包。例如,安装 numpy

1
conda install numpy

你也可以安装特定版本的包:

1
conda install numpy=1.20

5.2. 使用 Conda 卸载包

卸载某个包,使用以下命令:

1
conda remove numpy

5.3. 列出已安装的包

你可以使用以下命令查看当前环境中已安装的包:

1
conda list

6. 与 pip 协作

虽然 conda 是 Anaconda 推荐的包管理工具,但有时你可能需要使用 pip 来安装 conda 中没有的包。建议的顺序是:

  1. 首先使用 conda 安装包
  2. 如果包在 conda 仓库中不存在,再使用 pip 安装

在激活的环境中使用 pip 安装包的命令:

1
pip install package_name

7. 更新和管理 Anaconda

定期更新 Anaconda 及其组件是一个好习惯:

7.1. 更新所有包

1
conda update --all

7.2. 更新 Anaconda

1
conda update anaconda

8. 导出和导入环境

如果你想在另一台计算机上重现某个环境,或将环境分享给他人,可以使用 conda 导出环境:

8.1. 导出环境

1
conda env export > environment.yml

8.2. 从环境文件导入环境

1
conda env create -f environment.yml

9. Anaconda Navigator (可选)

Anaconda 除了命令行管理工具 conda 外,还提供了一个图形化界面工具 Anaconda Navigator,你可以通过这个工具来管理环境、安装包、启动 Jupyter Notebook 等。

启动 Anaconda Navigator

1
anaconda-navigator

10. Jupyter Notebook/ JupyterLab

Anaconda 自带了 Jupyter NotebookJupyterLab。你可以在创建的环境中运行 Jupyter Notebook 来进行交互式编程。

启动 Jupyter Notebook:

1
jupyter notebook

启动 JupyterLab:

1
jupyter lab

总结

通过以上步骤,你可以顺利安装 Anaconda 并进行 Python 环境的管理。Anaconda 提供了强大的包管理工具 conda,允许你管理 Python 版本、安装和更新包、创建虚拟环境等。

监控各种硬件情况

如果你在 Zsh 或 Bash 中尝试运行 htop 时遇到 “not found” 错误,这表示 htop 未安装。你可以先安装它,或者使用其他命令行工具监控内存、硬盘、CPU的使用情况。

1. 安装 htop

htop 是一个交互式的进程监视器,显示系统的资源使用情况。可以使用以下命令安装:

Ubuntu/Debian 系统:

1
2
sudo apt update
sudo apt install htop

CentOS/RHEL 系统:

1
sudo yum install htop

安装完成后,可以使用以下命令运行 htop

1
htop

2. 其他命令行工具

如果不想使用 htop 或需要更简单的命令,Linux 提供了一些内置工具可以监控 CPU、内存、硬盘的使用情况。

2.1. 查看 CPU 和内存使用情况

  • toptop 是一个实时监控工具,可以显示 CPU、内存、交换区和进程的使用情况。它通常是预装的。

    1
    top

    运行 top 后,按下 q 可以退出。

  • vmstat:显示系统的虚拟内存、进程、I/O、系统、中断和 CPU 状态。

    1
    vmstat 2

    这个命令每 2 秒更新一次系统状态。可以根据需要调整时间间隔。

  • mpstat:显示 CPU 的统计信息(需要安装 sysstat 包)。

    Ubuntu/Debian 系统安装 sysstat

    1
    sudo apt install sysstat

    CentOS/RHEL 系统:

    1
    sudo yum install sysstat

    运行 mpstat 查看 CPU 使用情况:

    1
    mpstat

2.2. 查看内存使用情况

  • free:显示系统的内存使用情况。

    1
    free -h

    -h 选项表示以人类可读的格式显示(如 GB、MB)。

2.3. 查看硬盘使用情况

  • df:显示文件系统磁盘空间使用情况。

    1
    df -h

    -h 选项表示以人类可读的格式显示磁盘使用情况。

  • du:显示文件和目录占用的磁盘空间。

    例如,查看当前目录的空间占用:

    1
    du -sh .

2.4. 查看硬盘 I/O 活动

  • iostat:显示硬盘的 I/O 统计数据(也需要安装 sysstat 包)。

    1
    iostat

2.5. 查看系统整体负载

  • uptime:显示系统的运行时间以及平均负载。

    1
    uptime
  • sar:用于历史 CPU、内存和网络活动的监控(需要 sysstat 包)。

    1
    sar

安装nvitop

1
pip install nvitop

总结

你可以选择安装 htop 进行交互式监控,也可以使用内置的工具如 topfreedfiostat 等查看系统资源的使用情况。每个工具都有特定的作用,选择适合你的工具来实时监控系统性能。

Clash 安装与配置

https://zhuanlan.zhihu.com/p/1151023289