服务器Shell教程:从SSH连接到常用命令实操入门
服务器 Shell 是登录 Linux 后用来输入命令的交互环境,零基础用户只要拿到 IP、端口、用户名和密码(或密钥),就能通过 SSH 进入 Shell 并执行命令。
这篇服务器 Shell 教程按真实操作顺序讲,从连接、确认当前环境,到文件、权限、进程、日志的常用命令,再说明容易出错的地方和验证方法。
开始前要准备什么
你需要一台可远程登录的 Linux 服务器,以及下面的信息:
- 服务器公网 IP 或内网 IP
- SSH 端口,默认通常是
22,但很多服务商会改成其他端口 - 登录用户名,常见是
root或ubuntu - 登录密码,或已配置好的 SSH 密钥文件
Windows 10 及以上系统可直接用自带的 ssh 命令;
macOS 和 Linux 终端同样自带。
打开终端后,用下面的命令连接:
ssh root@你的服务器IP -p 22
首次连接会提示确认主机指纹,输入 yes 回车,再输入密码。
密码输入时屏幕不会显示任何字符,这是正常现象。
登录成功后,提示符通常会变成类似 root@hostname:~# 的形式。
如果是普通用户,结尾可能是 $。
看到这个提示符,说明你已经进入 Shell。
先确认环境和当前身份
不同发行版的包管理命令不一样,操作前先确认系统类型和当前用户:
whoami
cat /etc/os-release
pwd
whoami显示当前登录用户,例如root。cat /etc/os-release查看系统版本,Ubuntu、Debian、CentOS、Rocky Linux 的包管理命令不同。pwd显示当前所在目录,刚登录时一般是用户的家目录。
知道系统类型后,后续安装软件才不会用错命令。
比如 Ubuntu 用 apt,CentOS 7 常用 yum,较新的 RHEL 系常用 dnf。
文件和目录操作:最常用的几组命令
Shell 里没有图形界面的文件夹窗口,所有操作都靠命令完成。
下面这组命令覆盖大多数日常场景:
ls -al
cd /var/log
mkdir -p /tmp/testdir
cp a.txt b.txt
mv a.txt /tmp/
rm -f b.txt
cat /etc/hosts
ls -al列出当前目录所有文件,包括隐藏文件,并显示权限、属主、大小。cd 目录路径进入指定目录,cd ..返回上一级,cd ~回到当前用户家目录。mkdir -p创建目录,-p表示父目录不存在时一并创建。cp复制文件,mv移动或重命名,rm删除文件。cat查看文件内容,适合内容不长的配置文件。
需要编辑配置文件时,常见编辑器是 vi 或 nano。
零基础用户可先用 nano,操作提示会显示在屏幕底部:
nano /etc/hosts
修改后按 Ctrl + O 保存,按 Ctrl + X 退出。
权限、进程和日志:排查问题的核心
服务器上很多报错本质是权限或进程问题。
先看文件权限:
ls -l /var/www/html
chmod 644 index.html
chown www-data:www-data index.html
chmod 644表示文件属主可读写,其他用户只读。chown修改文件属主和属组,Web 目录常用www-data或nginx,具体以实际服务用户为准。
查看进程和端口占用:
ps aux | grep nginx
ss -tunlp | grep 80
systemctl status nginx
ps aux列出所有进程,配合grep过滤关键字。ss -tunlp查看监听端口,确认服务是否真的在监听。systemctl status 服务名查看服务状态,systemctl restart 服务名重启服务。
查看日志时,tail 最常用:
tail -n 100 /var/log/nginx/error.log
tail -f /var/log/syslog
-n 100 表示看最后 100 行,-f 表示持续跟踪新内容,按 Ctrl + C 退出。
新手容易踩的坑
- 不要在不确定的目录下执行
rm -rf。 这个命令删除后很难恢复,执行前先用pwd确认当前位置,并尽量写完整路径。 - 改权限不要直接
chmod 777。 777 表示所有人可读写执行,安全风险大,Web 目录一般不需要这么放权。 - 改配置前先备份。 例如
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak,改坏了可以还原。 - 重启服务前想清楚影响。 重启 Nginx、MySQL 等会短暂中断服务,生产环境尽量避开访问高峰。
- 密码输入无回显不是卡住。 SSH 登录和
sudo输密码时屏幕不会显示字符,直接输入后回车即可。
怎么验证操作是否生效
每执行一步,最好都有对应的检查动作:
- 创建目录后,用
ls -ld /tmp/testdir确认目录存在且权限正确。 - 修改配置文件后,用服务自带的检查命令验证,例如
nginx -t检查 Nginx 配置语法。 - 重启服务后,用
systemctl status 服务名看是否处于active (running)。 - 端口不通时,用
ss -tunlp确认监听状态,再检查防火墙或安全组规则。 - 日志报错时,用
tail -n 100查看最新错误,根据关键字定位具体模块。
如果连接阶段就失败,优先检查 IP、端口、用户名是否正确,以及服务器安全组是否放行了 SSH 端口。
连接成功后命令报 command not found,一般是软件未安装或环境变量未生效,先确认系统类型再安装对应软件包。
服务器 Shell 教程的核心不是背命令,而是形成“先确认环境、再操作、最后验证”的习惯。
把本文的命令在测试服务器上跑一遍,遇到报错时回到日志和权限两个方向排查,大多数入门问题都能定位。