Linux常用命令

Linux package

rz & sz

rz(Receive Zmodem)和 sz(Send Zmodem)是基于 Zmodem 协议的文件传输工具,用于在SSH 终端和本地计算机之间快速传输小文件,无需额外配置 FTP/SFTP 服务。

以及ubuntu为例,通过apt包管理器安装,rz 和 sz 命令都包含在lrzsz软件包中

sudo apt update sudo apt install -y lrzsz rz --version sz --version

上传文件

在 SSH 终端中输入rz命令,终端会弹出文件选择对话框,选择本地文件后即可上传到服务器当前目录。

# 基本上传 rz # 覆盖已存在的文件 rz -y # 显示上传进度 rz -be

下载文件

从服务器上下载文件到本地

# 下载单个文件 sz filename.txt # 下载多个文件 sz file1.txt file2.jpg # 下载整个目录(需要打包后下载) tar zcvf dir.tar.gz dir/ && sz dir.tar.gz

常见问题

上传大文件失败

输超过 100MB 的文件容易中断,使用-b参数以二进制模式传输,并添加断点续传:

rz -be

传输后文件乱码

使用二进制模式传输

rz -b sz -b filename.txt

用户管理

Linux 修改用户名

需要将linux用户名修改为其他用户名,示例,将用户名从oldusername修改为newusername

注意:你需要登陆到root用户,而不是从普通用户su到root用户,否则无法kill掉普通用户的ssh进程,从而无法切换到新用户

# 修改用户名 usermod -l newusername oldusername # 修改家目录,-d 指定新家目录路径,-m 把旧家目录的内容移动到新家目录 usermod -d /home/newusername -m newusername # 修改用户组名 groupmod -n newgroup oldgroup

验证配置

id newusername ls -ld /home/newusername grep newusername /etc/passwd

sudo 权限 改名后 newusername 通常会自动继承原来 ubuntu 在 /etc/sudoers.d/ 中的权限,但建议检查:

cat /etc/sudoers.d/90-cloud-init-users

若里面写的是 ubuntu ALL=… ,需要手动把 ubuntu 改成 newusername

sudo visudo -f /etc/sudoers.d/90-cloud-init-users

云服务器(如 AWS/阿里云)的 cloud-init 某些云镜像在重启时会通过 cloud-init 重新创建默认 ubuntu 用户。如果你的是这类环境,建议同时编辑 /etc/cloud/cloud.cfg

system_info: default_user: name: newusername

免密配置

配置用户免密ssh上linux服务器

在本地生成密钥对,回车即可(默认存到 ~/.ssh/id_ed25519
生成两个文件: id_ed25519 (私钥)和 id_ed25519.pub (公钥)。

ssh-keygen -t ed25519 -C "deploy"

把公钥上传到服务器,之后执行如下命令

cat id_ed25519.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys