服务器配置三板斧
服务器配置三板斧
Step1: 创建权限用户
在Linux服务器上创建一个新用户并授予其 sudo
权限的步骤如下:
-
创建新用户:
使用useradd
命令来创建一个名为wsr
的用户,并为其设置密码。1
2sudo useradd -m wsr
sudo passwd wsr这里的
-m
选项用于确保为新用户创建一个主目录。 -
将用户添加到
sudo
组:
要授予wsr
用户sudo
权限,可以将其添加到sudo
组。默认情况下,sudo
组中的用户具有管理员权限。1
sudo usermod -aG sudo wsr
-aG
表示将用户添加到指定的组而不影响其他组。 -
验证配置:
你可以使用su
命令切换到wsr
用户,并验证它是否有sudo
权限。1
2su - 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 密钥:
-
打开 PowerShell 或 Windows Terminal。
-
运行以下命令生成 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
使用默认路径。 -
如果不想设置密码短语(方便免密登录),直接按回车跳过密码短语设置。
-
成功生成密钥对后,公钥存储在
id_rsa.pub
文件中,私钥在id_rsa
文件中。
1.2. 将公钥上传到服务器
-
首先,查看你生成的公钥。使用以下命令查看并复制公钥内容:
1
cat ~/.ssh/id_rsa.pub
然后你可以手动复制这段公钥。
-
远程登录到服务器,并为
wsr
用户创建.ssh
目录及配置授权文件:1
2
3
4sudo -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 -
将你复制的公钥内容添加到
/home/wsr/.ssh/authorized_keys
文件中:1
echo "your_public_key_content" | sudo tee -a /home/wsr/.ssh/authorized_keys
-
修改
.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
sudo -u wsr cat /home/wsr/.ssh/id_rsa.pub
-
登录到你的 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 | sudo apt update # 如果是 Debian/Ubuntu 系统 |
或者,对于 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
文件来启用它们。常用插件包括 git
、z
、autosuggestions
等。
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
文件中启用它。
-
编辑
.zshrc
文件:1
nano ~/.zshrc
-
找到
plugins=(git)
这一行,并将sudo
插件添加进去:1
plugins=(git sudo)
-
保存并退出编辑器,然后重新加载
.zshrc
配置文件:1
source ~/.zshrc
使用:
假设你执行了一个需要 sudo
权限的命令,如:
1 | apt update |
如果提示权限不足,你只需按 esc
键,sudo
会自动添加到命令前并重新执行:
1 | sudo apt update |
2. tmux 插件(简化 tmux 操作)
作用:
tmux
插件为 tmux
终端复用器提供了若干命令别名,使得操作 tmux
更加方便和快捷。tmux
是一个强大的终端工具,能够让你在单个终端窗口中创建、分割、管理多个会话。使用 Oh My Zsh
的 tmux
插件,可以简化一些常用操作,比如:
ta
(tmux attach
)—— 连接到已经存在的tmux
会话。tn
(tmux new
)—— 创建一个新的tmux
会话。tls
(tmux ls
)—— 列出所有tmux
会话。
安装与启用:
tmux
插件也是 Oh My Zsh
内置的,你只需启用它即可。
-
编辑
.zshrc
文件:1
nano ~/.zshrc
-
找到
plugins=(git)
这一行,并将tmux
插件添加进去:1
plugins=(git tmux)
-
保存并退出编辑器,然后重新加载
.zshrc
配置文件:1
source ~/.zshrc
使用:
-
启动一个新的
tmux
会话:1
tn
-
列出所有正在运行的
tmux
会话:1
tls
-
连接到某个已存在的
tmux
会话:1
ta
3. aliases 插件(命令别名管理)
作用:
aliases
插件允许你创建自定义的命令别名,简化你常用的命令。通过别名,你可以为复杂或常用的命令创建简短的替代名称,节省时间并减少输入错误。
安装与启用:
aliases
插件不需要单独安装,你可以直接在 .zshrc
文件中定义别名。
-
编辑
.zshrc
文件:1
nano ~/.zshrc
-
在文件中添加你的自定义别名。比如:
1
2
3alias gs='git status'
alias ll='ls -lah'
alias update='sudo apt update && sudo apt upgrade'这些别名的意思是:
gs
执行git status
。ll
执行ls -lah
,显示文件详细信息。update
一次性执行sudo apt update
和sudo apt upgrade
。
-
保存并退出编辑器,然后重新加载
.zshrc
配置文件:1
source ~/.zshrc
使用:
- 当你输入
gs
时,它将自动执行git status
。 - 输入
ll
会列出文件和目录的详细信息。 - 输入
update
则会自动更新和升级你的系统。
4. extract 插件(智能解压)
作用:
extract
插件能够自动识别压缩文件的格式并解压它,无需记住不同压缩格式的解压命令。支持的格式包括:tar.gz
, tar.bz2
, tar.xz
, zip
, rar
等。你只需一个命令就可以解压任何支持的格式文件,极大简化了解压缩的操作。
安装与启用:
extract
插件同样是 Oh My Zsh
内置的。
-
编辑
.zshrc
文件:1
nano ~/.zshrc
-
找到
plugins=(git)
这一行,并将extract
插件添加进去:1
plugins=(git extract)
-
保存并退出编辑器,然后重新加载
.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
中没有的包。建议的顺序是:
- 首先使用
conda
安装包。 - 如果包在
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 Notebook
和 JupyterLab
。你可以在创建的环境中运行 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 | sudo apt update |
CentOS/RHEL 系统:
1 | sudo yum install htop |
安装完成后,可以使用以下命令运行 htop
:
1 | htop |
2. 其他命令行工具
如果不想使用 htop
或需要更简单的命令,Linux 提供了一些内置工具可以监控 CPU、内存、硬盘的使用情况。
2.1. 查看 CPU 和内存使用情况
-
top
:top
是一个实时监控工具,可以显示 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
进行交互式监控,也可以使用内置的工具如 top
、free
、df
、iostat
等查看系统资源的使用情况。每个工具都有特定的作用,选择适合你的工具来实时监控系统性能。