很多刚接触 Linux 的同学,第一反应都是一句话:
确实如此。
Windows 更像“开箱即用”的桌面系统,而 Linux 在服务器场景里,更像一把工具箱——需要什么功能,就装什么组件;不需要的,尽量不装。
这也是为什么你在生产环境里看到的大多数 Linux 服务器, 没有图形界面,只有字符界面 。
今天这篇文章,我就结合 Ubuntu 和 Rocky Linux 的实际操作,带大家把几个最容易踩坑的点一次性梳理清楚:
Linux 图形界面和字符界面到底有什么区别
Rocky 和 Ubuntu 的登录方式为什么不一样
怎么查看 IP、怎么 SSH 远程登录
普通用户和 root 用户权限差别有多大
为什么远程执行 poweroff 会翻车
Xshell、MobaXterm、FinalShell 这些工具怎么选
远程管理里有哪些安全雷区
文章里我还会穿插几个命令案例和输出结果,方便你直接拿去练手。
一、Linux 和 Windows 最大的差别:图形界面不是“必须品”
Windows 的图形界面是系统的一部分
Linux 的图形界面是“可选项”
Linux 本质上不依赖图形界面也能正常工作。
尤其是服务器场景,很多机器压根不装 GUI,直接用字符界面跑服务。
为什么生产环境更喜欢字符界面?
更省资源 :少占 CPU、内存、磁盘
更稳定 :组件越少,出问题概率越低
更适合远程运维 :SSH 一连就能干活
安全面更小 :少一个界面,就少一层攻击面
所以你在虚拟机里装 Ubuntu 20.04 Live Server 版本时,很可能看到的就是纯字符界面,没有桌面环境。
二、Rocky Linux 的 GUI 登录,和 Windows 很像,但细节不一样
Rocky Linux 默认安装通常带图形界面。
开机后你会看到登录界面,看起来跟 Windows 的登录框很接近:
不过这里有个细节很多人第一次会懵:
root 账号默认可能隐藏
Rocky 上 root 账号通常不会直接摆在登录列表里,原因很简单: 安全 。
如果你要用 root 登录,往往需要点击:
Not listed
密码:root 密码
首次进入桌面还要做初始化设置
语言选择:中文/英文
键盘布局:通常默认 US
隐私设置:是否允许位置服务
在线账号:Google/Microsoft 可跳过
命令行环境尽量养成英文习惯。
因为 Linux 命令本身就是英文的,不会因为你系统语言切中文,命令就变中文。
你可以把桌面显示成中文,但命令行建议按英文思维去记。
三、终端才是 Linux 的“主战场”
在图形界面里干活,真正高频用的还是 Terminal(终端) 。
它和 Windows 里的命令提示符有点像,但 Linux 终端更像“总控制台”。
进入终端后,你会看到类似这样的提示符: wang@rocky:~$
wang:当前用户名
~:当前目录是家目录
如果是 root 用户,通常会变成: root@rocky:~#
#:管理员用户 root
这个小细节特别重要,很多权限问题一眼就能看出来。
四、先搞清楚两条命令:hostname 和 hostname -I
远程管理 Linux,第一件事不是 SSH,不是装工具,而是先确认:
1)查看主机名 hostname
运行结果示例: rocky
2)查看 IP 地址 hostname -I
示例输出: 10.0.0.150
Ubuntu 的示例可能是: 10.0.0.151
五、Ubuntu 的安全策略:root 默认不能直接登录
这一点是 Ubuntu 和很多传统 Linux 发行版不太一样的地方。
Ubuntu 默认不会让你直接用 root 登录
安装时一般只创建一个普通用户,比如: wang
root 账号虽然存在,但默认不设置可直接登录的密码,或者限制直接登录。
这是一种安全设计: 避免管理员账号暴露在登录入口上 。
字符界面登录时输入密码不显示字符
这也是很多新手第一次碰到会慌的点:
你输入密码后,屏幕上 既没有星号,也没有圆点 ,什么都不显示。
别怀疑键盘坏了,也不是系统卡了。
Linux 就是这样设计的:
为了防止别人通过屏幕长度猜测密码位数,输入密码时不显示任何内容。
六、SSH 远程连接:真正的 Linux 运维入口
如果说终端是本地控制台,那 SSH 就是远程控制台。
SSH 基本命令格式 ssh username@ip_address
比如连接 Rocky: ssh root@10.0.0.150
连接 Ubuntu: ssh wang@10.0.0.151
第一次连接会提示指纹确认
第一次连一台新主机时,通常会看到类似提示: Are you sure you want to continue connecting (yes/no/[fingerprint])?
然后系统会把主机指纹记录到本地 known_hosts 文件中。
以后再连同一台机器,如果指纹变了,系统会报警,这其实是 SSH 的重要安全机制。
七、Windows 下怎么发起 SSH 连接?
现在 Windows 10 已经自带 ssh 命令了,直接在命令行里就能用。
但 Windows 7 默认没有这个能力。
Win + R,输入 cmd
或者从开始菜单把“命令提示符”固定到任务栏
然后执行: ssh wang@10.0.0.151
首次连接示例输出大概是这样: The authenticity of host '10.0.0.151 (10.0.0.151)' can't be established. ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxx Are you sure you want to continue connecting (yes/no/[fingerprint])? yes wang@10.0.0.151's password:
输入密码后,就能进入远程 shell。
八、权限控制:普通用户不是万能的
这一块是新手最容易翻车的地方。
你以为连上服务器就能随便关机、重启、改系统配置?
其实不行。
示例:普通用户执行关机命令失败
Ubuntu 上用普通用户 wang 登录后,执行: poweroff
可能会得到这样的结果: Failed to power off system via logind: Access denied
或者类似: Permission denied
为什么会失败?
因为关机、重启这类操作属于系统级高权限动作,普通用户默认没有权限。
九、如何切换到 root?
Linux 下常见的提权方式有两种:
1)sudo su sudo su
2)su - su -
不过在 Ubuntu 这种默认限制 root 直登的系统里,通常更常见的是通过 sudo 来获取 root 权限。
切换时要输入谁的密码?
输入的是 当前普通用户的密码 ,不是 root 密码。
也就是说,如果你当前是 wang,切换时输入的是 wang 的密码。
成功后提示符会变成: root@ubuntu:~#
这时候再执行: poweroff
就可以正常关机了。
1)在 Ubuntu 上查看 IP hostname -I
输出: 10.0.0.151
2)在 Windows 上连接 Ubuntu ssh wang@10.0.0.151
输入密码后登录成功。
3)尝试关机,失败 poweroff
输出: Failed to power off system via logind: Access denied
4)切换 root sudo su
输入 wang 用户密码后切换成功。
5)再次关机 poweroff
此时系统会直接断开,机器关闭。
这个过程证明了两件事:
普通用户默认没法执行系统级操作
提权后才能执行高危命令
十一、远程关机很爽,但生产环境里别乱来
远程执行 poweroff 后,你会立刻失去连接
这不是 bug,是正常现象。
因为机器都关了,你当然连不上。
如果是生产服务器,你最好确认:
是否具备物理开机条件
生产环境更稳妥的方式
如果你需要真正管理服务器,最好具备:
这些设备可以在系统关机后继续控制主机电源,适合机房远程运维。
十二、专业工具怎么选?别只会敲命令行
系统自带 ssh 当然能用,但如果你同时管很多台机器,还是建议上专业工具。
2)MobaXterm
免费版可用,但会限制会话数量
支持 SSH、Telnet 等协议
也可以设置主密码保护保存的密码
选择 Session
填写 Username
3)FinalShell
十三、安全提醒:远程工具不是越“方便”越好
这一条我想单独拎出来说。
网上有些所谓“绿色破解版”“魔改版”工具,看起来省钱,实则坑很大。
尤其是 SSH 工具这种能保存服务器账号密码的软件,一旦被植入木马,后果很严重。
十四、把今天的内容浓缩成一句话
如果你是刚入门 Linux,只要先记住这几个关键词,后面就顺很多:
Linux 服务器大多不需要 GUI
终端和 SSH 才是运维核心
先看 IP,再连 SSH
普通用户不能随便做高危操作
提权后才能执行系统级命令
远程工具要安全,别图省事
十五、给你一个最实用的命令清单 hostname # 查看主机名 hostname -I # 查看IP地址 ssh wang@10.0.0.151 # 远程登录Ubuntu ssh root@10.0.0.150 # 远程登录Rocky sudo su # 切换到root poweroff # 关机 reboot # 重启
十六、再补一个小脚本:快速检查主机信息
如果你想在 Linux 上快速确认主机名和 IP,可以写个简单脚本。
check_host.sh #!/bin/bash echo "当前用户:$(whoami)" echo "主机名:$(hostname)" echo "IP地址:$(hostname -I)"
赋权并执行 chmod +x check_host.sh ./check_host.sh
运行结果示例 当前用户:wang 主机名:ubuntu IP地址:10.0.0.151
这个脚本虽然简单,但非常实用。
你在排查多台虚拟机环境时,跑一下就知道当前登录的是哪台机器。
很多人学 Linux 的时候,最开始总盯着命令背得熟不熟。
其实真正的门槛,不是命令本身,而是这几个概念:
你是本地操作还是远程操作
你执行的是普通命令还是高危命令
只要把这些概念理顺,后面学服务管理、日志分析、系统加固、权限审计,都会轻松很多。
全部评论