ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

寒假Linux实战:从SSH登录云服务器到核心指令全攻略

寒假Linux实战:从SSH登录云服务器到核心指令全攻略 寒假是个很神奇的时间段尤其对计算机专业的学生来说。平时上课被各种课程塞满很难腾出一整块时间沉下心去啃某个方向但到了寒假没有考试压力没有社团活动反而成了补基础、追进度的黄金窗口。我今年寒假定的目标很明确学Linux理论而且是从最实际的两个动作切入——登录云服务器、敲指令。这篇文章就记录一下我整个寒假实践下来的完整过程和学习思路包括我为什么选择这种方式入门、具体的登录实操、核心指令的拆解以及踩过的各种坑。如果你也想趁假期把Linux基础打牢但不知道怎么下手或者之前看了很多视频、买了一堆书却总感觉没真正“上手”这篇文章应该能给你一条可以直接照做的路径。我会把云服务器的选择、SSH登录的细节、常用指令的场景化用法都写清楚也会把我在实际操作中遇到的一些“课本上不会写”的问题一并列出来。1. 为什么寒假学Linux先从“登录云服务器”开始1.1 这个学习项目到底在解决什么问题先说一个比较扎心的事实很多人学Linux往往卡在“不知道学来干嘛”。买一本《Linux从入门到精通》翻到第三章的vim操作就放弃了看视频教程跟着老师敲命令敲完就忘因为不知道自己到底在练习什么场景。我寒假给自己定的方式是先解决“能用起来”的问题。要学Linux理论最直接的需要其实是三个——有一台能随时访问的Linux机器、有一条稳定通向它的通道、有一套能在这台机器上干活的指令。前两步对应的是“登录云服务器”这一步对应的是“指令”。这三件事串起来你就完成了从零到一的跨越后面不管学系统管理、运维部署还是嵌入式开发都是在同一个地基上盖楼。我为什么要用云服务器而不是虚拟机说实话虚拟机我也试过用VMware或者VirtualBox装一个CentOS桌面版体验还可以但有两个问题一是环境过于“本地化”你很难体会到真实生产环境中“远程操作”是什么感觉二是性能占用确实是个负担老一点的笔记本开个虚拟机风扇就开始呼呼转。而云服务器是真实的数据中心环境你用SSH连过去敲的每一行命令都发生在远端这种感觉更接近企业里的真实工作状态。寒假期间各大云厂商都有学生优惠一台最基础配置的服务器一年也就是一杯奶茶钱左右性价比很高。1.2 学习路径的整体设计思路我把自己寒假Linux学习的路径拆成了三个阶段每个阶段大概一周时间虽然实际执行有快有慢但整体节奏是对的第一阶段登录与基本操作。学会从本机SSH登录云服务器建立密钥对了解终端的基本操作包括快捷键、命令历史、Tab补全这些细节。这个阶段的核心目标是“建立通道”让远程Linux成为你随时能用的一台机器。第二阶段系统认知与核心指令。围绕文件系统、用户权限、进程管理、网络排查这几个主题逐个场景地学习指令。我不建议死背命令而是把指令放进具体的“场景”里比如“查看服务器运行了多久”“查一下磁盘还剩多少空间”“把一个文件从这台机器拷到另一台机器”。第三阶段动手搭建小项目。利用寒假后半段把前面学的指令综合起来在云服务器上部署一个小小的Web服务或者写几个自动化脚本。这一步是为了检验自己是不是真的学懂了——如果一条指令你只知道它能干什么但说不清它的参数怎么组合、输出怎么解析那说明掌握得还不到位。整体思路就一句话别按书本章节学按实际需求学。你不需要先精通所有的Linux指令才去登录服务器而是应该先登录上去然后遇到什么问题就解决什么问题。指令是工具登录是入口理论是你遇到问题时的解释系统三者是连在一起的。2. 登录云服务器的全流程实操从选购到SSH握手2.1 云服务器的选型与初始化配置寒假学习用的服务器配置真的不用高。我的推荐是1核2G内存起步带宽按量计费或者直接买一个小的固定带宽都行。这个配置跑Linux系统、敲指令、装一些轻量级软件完全够用价格也压得很低。系统镜像我选的是Ubuntu 22.04 LTS理由有三个一是社区资料多遇到问题搜索解决方案效率高二是软件源新安装Python、Node.js这些开发环境比较方便三是LTS版本维护周期长不至于学一半系统就停止支持了。当然如果你以后想走运维或者企业级服务器管理的方向CentOS系或者Rocky Linux也可以考虑因为它们更接近很多传统企业的生产环境。我寒假后期其实也抽时间在Rocky Linux 10上重新跑了一遍基本命令发现指令几乎完全一致差别主要体现在包管理器上。所以不用太纠结选哪个发行版关键是选定一个之后老老实实把基础指令吃透。购买好服务器之后有几个初始化动作是必须做的重置root密码或者设置密钥对、配置安全组放行端口、修改主机名。安全组这个点要特别提醒很多新手连不上服务器就是因为云厂商默认的安全组规则只开放了22端口然后自己又没注意。安全组你可以理解成服务器外面的一道防火墙闸门想要远程登录至少得保证入方向放行TCP 22端口SSH服务默认端口。如果你之后要跑Web服务还要再放行80和443。2.2 SSH登录的两种方式与完整命令解析SSH是我寒假用得最多的工具没有之一。它的核心作用就一句话在你本地电脑和远程服务器之间建立一条加密的通信通道。因为数据是加密的所以即使在公共网络环境下你输入密码、敲击指令也不容易被窃听。方式一密码登录。这是最直观的登录方式命令格式非常简单ssh 用户名服务器IP比如我的服务器用户名是root公网IP是123.45.67.89那命令就是ssh root123.45.67.89回车之后系统会提示输入密码输入正确就能进入服务器的Shell了。这里有个小细节在终端里输入密码的时候屏幕上不会显示任何字符也不会有“***”之类的掩码很多新手第一次用会以为键盘坏了其实密码已经输入进去了直接回车就行。方式二密钥登录。密码登录虽然简单但有一个天生的弱点密码可能会被暴力破解。所以我在寒假第二天就把服务器改成密钥登录了。密钥登录的原理有点像一个“对暗号”的过程你本地生成一对钥匙——一把公钥、一把私钥。公钥可以公开可以上传到服务器上私钥自己保存绝不能泄露。登录的时候服务器会用它存的公钥来验证你的私钥对上了就放你进去整个过程不需要输密码。生成密钥对的命令是ssh-keygen -t ed25519 -C winter-vm一路回车即可默认存到~/.ssh/id_ed25519路径下。然后把公钥的内容添加到服务器的~/.ssh/authorized_keys文件里这一步可以用ssh-copy-id命令自动完成ssh-copy-id -i ~/.ssh/id_ed25519.pub root123.45.67.89以后登录就不用再输密码了。如果希望更安全你还可以在生成密钥时设置一个passphrase口令这样即使私钥文件泄露别人也未必能用得了。2.3 登录工具与环境的补充说明除了直接在系统终端里用ssh命令寒假实践过程中我还发现了几款很好用的辅助工具可以根据自己的习惯选择。如果你是Windows用户系统的PowerShell和CMD虽然也支持SSH但界面对新手不太友好。我试过Xshell和FinalShell两者都能用Xshell是老牌工具稳定但部分高级功能收费FinalShell自带一些图形化的资源监控界面很适合新手直观地看到CPU、内存的变化。不过我的建议是可以用图形工具辅助但前两周一定要逼自己用命令行原生的ssh命令来完成登录操作。原因很简单图形工具把太多细节“封装”掉了你很难真正理解SSH到底做了什么而“手敲命令”的过程本身就是学习的一部分。另外如果你日常用的编辑器是VS Code强烈推荐它自带的Remote-SSH插件。安装之后你可以直接通过VS Code打开远程服务器的目录像编辑本地文件一样编辑服务器上的代码。这对寒假后期做项目、写脚本来说实在太方便了。我自己的体验是VS Code Remote SSH把“远程开发”的体验拉高了一个档次你不需要在服务器上装任何图形界面只需要一个SSH通道就够了。3. 上手必会的Linux核心指令按场景拆开讲3.1 文件与目录操作把“我是谁、我在哪”搞清楚登录上服务器之后第一组该掌握的指令就是文件与目录相关的指令。它们太基础了但基础不等于简单很多运维老手排查问题时也离不开这组命令。我把它们放在一个具体场景里说明。假设我要在服务器上搭建一个笔记目录第一步当然是看看自己现在在哪个目录pwdpwd会输出当前路径类似/root。这个命令很有用尤其是当你通过脚本或终端配置切换了很多目录之后有时候真的会忘记自己身在何处。之后用ls查看当前目录内容ls ls -l ls -als不带参数只显示文件名ls -l会显示详细列表包括文件权限、属主、大小、修改时间ls -a会显示隐藏文件那些以点开头的文件比如.bashrc、.ssh文件夹都在这个选项下才能看到。我建议平时直接养成习惯用ls -l和ls -a组合也就是ls -la信息量足排查问题时不至于漏掉细节。创建目录用mkdir如果目录层级多别忘了加-p参数mkdir -p notes/linux/day01不加-p时如果notes目录不存在命令会直接报错加上-p之后它会自动把每一层目录都建出来非常省事。进入目录用cd回到上一次所在目录用cd -回到用户主目录用cd ~。这些是每天都会用无数次的指令手的肌肉记忆比大脑记忆更重要。复制文件和移动文件也是高频操作。cp用来复制比如cp notes.txt notes_backup.txt拷贝整个目录时记得加-r递归cp -r notes notes_backup移动文件用mv它同时具备“重命名”的功能mv notes.txt linux_notes.txt删文件用rm但这个是重点提醒区。rm命令删掉的文件不会进回收站一旦执行就很难恢复。rm linux_notes.txt rm -rf notesrm -rf中的-r表示递归删除目录-f表示强制执行。这个组合是运维人员心中的“高危命令”代名词一个手滑可能把整个系统删没了。我自己寒假期间就亲眼见到一个群里有人把rm -rf /*当作一个无害指令复制到服务器上执行结果系统直接崩溃重装。所以在没有完全弄清楚路径含义之前尽量不要用rm -rf尤其是对绝对路径或者根路径下手必须格外谨慎。3.2 查看系统信息与资源监控先知道服务器“身体好不好”学会登录和文件操作之后下一步就是学会看懂服务器本身的状态。这就好比拿到一台新电脑你先得知道它的配置、硬盘还剩多少空间、内存占用情况。Linux下面查看这些信息的指令并不难记难的是看懂输出结果。查看内核版本和系统架构uname -a这个命令会输出一串信息包括内核版本、主机名、操作系统类型、硬件架构是x86_64还是aarch64。如果你以后要用云服务器跑一些需要特定环境的软件uname -m、arch这类查看架构的命令会频繁用到。查看发行版信息cat /etc/os-release这会显示系统名称和版本号。比如你用的是Ubuntu 22.04输出里能看到NAMEUbuntu和VERSION_ID22.04。写脚本或者做环境检查时这个文件是首选的信息来源。查看内存使用情况free -h-h表示human-readable以人类友好的单位显示GB、MB。输出中total表示总内存used表示已用available是可用内存。寒假期间我在这台1核2G的服务器上同时跑过编译任务和Web服务明显感觉到内存吃紧这时候free -h就是我最先敲的命令。查看磁盘空间df -h这个命令列出所有挂载分区的使用情况重点看根分区/的Use%是不是接近100%。磁盘写满是一个很隐蔽的问题一开始系统可能还能跑但过一阵子就会因为写不了日志、创建不了临时文件而报各种奇怪的错。我寒假踩过一次这个坑后面会细说。查看进程和CPU占用的话第一选择是top这个命令会动态刷新当前系统的进程列表和整体负载。top的输出里有一个load average平均负载三个数值分别代表过去1分钟、5分钟、15分钟的负载情况。如果你是1核的服务器这个值长期超过1就意味着系统有点忙不过来了。按q可以退出。3.3 文本处理组合拳cat、grep、tail这样配才高效服务器上的操作有一个特点大量的“信息”是以文本形式存在于文件和程序输出里的。运维和维护的核心工作之一就是从这些文本中快速找到你需要的内容。为此我寒假花了不少时间专门练文本处理三件套cat、grep、tail。cat命令最简单的用法就是把一个文件的内容整个打印出来cat /etc/hostname文件不大时用cat没问题但如果文件很大整个刷屏会让你崩溃。这时候可以用lessless /var/log/syslogless支持翻页空格翻页、q退出还支持用/关键词搜索文本内容。我现在的习惯是凡是看超过一屏的文件一律用less而不是cat。grep是我最依赖的过滤指令。它的核心作用是在文本中搜索匹配行。比如我想看系统日志里有没有报错grep -i error /var/log/syslog-i表示忽略大小写。加上-n可以显示行号grep -n error /var/log/syslog如果你在日志里搜索包含某个时间段的记录就可以用grep先粗筛一遍再进一步用tail精读。tail默认显示文件末尾10行最常用的参数是-ffollow表示持续追踪文件的新增内容。调试程序、查实时日志时这个命令几乎是标配tail -f /var/log/syslog你的程序一旦有新的输出终端会立即显示出来相当于打开了“直播”模式。按CtrlC可以中断退出。这三件套加起来的威力很大。举个例子我想排查服务器上某个服务为什么挂了第一步用systemctl status查看服务状态第二步用tail -f盯住它的日志文件第三步用grep过滤异常关键词。一套组合下来大部分问题都能定位到原因。寒假后期我在服务器上部署一个Python网站时就是靠这三个命令排查出一个依赖库版本不兼容的问题——日志里反复出现ModuleNotFoundError用grep过滤关键字之后很快就锁定了缺失的包名。3.4 用户与权限管理linux新建用户的完整姿势寒假学到中间阶段我开始涉及用户和权限管理。这部分内容是Linux安全体系的基石也是很多面试题的考点。所谓的“权限”本质上就是搞清楚“谁能对哪个文件做什么事情”。先看文件权限。ls -l输出中的第一列形如-rw-r--r--一共10个字符。第一个字符是文件类型-表示普通文件d表示目录后面9个字符分成三组分别代表属主u、属组g、其他用户o的权限。每组里的r表示读w表示写x表示执行。所以-rw-r--r--的意思是这是一个普通文件属主可以读写属组和其他人只能读。修改权限用chmod。最常用的是数字方式比如chmod 755 script.sh chmod 644 notes.txt数字的对应关系是r4、w2、x1把每一组的三个值加起来。755表示属主有全部权限4217属组和其他人有读和执行权限415这个权限常用在脚本文件上644表示属主可读写其他人只读适合普通数据文件。私钥文件~/.ssh/id_ed25519的权限应该是600也就是只有属主自己可以读写。如果权限太宽松SSH客户端会直接拒绝使用这个密钥并提示UNPROTECTED PRIVATE KEY FILE。新建用户也是寒假学习的一个重要场景热词里“linux新建用户”正是这个点。系统自带的root用户权限太大日常操作建议用普通用户需要提权时再用sudo。新建用户命令useradd -m -s /bin/bash winter passwd winter-m表示自动创建用户主目录/home/winter-s指定默认Shell为bash。之后可以测试切换用户su - winter允许该用户使用sudo权限可以把用户加入sudo组usermod -aG sudo winter这里插一个我寒假踩过的坑直接用useradd命令新建用户之后如果没加-m参数用户就没有自己的主目录登录之后会在根目录下“漂着”很多软件也会因为写不了配置文件而报错。所以新建用户时记住-m这个参数特别重要。4. 寒假学习中踩过的坑与排查技巧实录4.1 登录连不上从安全组到SSH服务的排错路线寒假第一天我就遇到了一个非常经典的问题云服务器买好了终端里敲ssh rootIP回车然后就是漫长的等待最后提示Connection timed out。那一刻我心里的想法是完了是不是IP错了还是服务器被我折腾坏了后来排查下来发现真正的原因很简单我没有在云厂商的控制台里给这台服务器配置安全组规则出方向默认放行但入方向只放行了一些基础端口而22端口不在其中。解决方法是去云控制台的安全组配置里添加入方向规则类型选择SSH22源地址根据需要选择学习阶段可以直接放行所有IP。改完安全组之后ssh命令秒通。如果你也遇到连不上服务器的情况可以按这个顺序逐一排查第一确认服务器公网IP有没有写错多了空格、打错一个数字都会失败第二确认安全组入方向是否放行了TCP 22端口第三确认服务器上的SSH服务是否在运行systemctl status sshd可以查看Ubuntu上服务名可能是ssh第四如果使用了密钥登录确认本地私钥的路径写对了没有权限是不是600。4.2 终端里的小坑CtrlC真不是万能的登录成功之后我遇到的下一个“坑”是终端快捷键。作为一个平时用惯了Windows的人一开始在Linux终端里会不自觉地按CtrlC想复制文本结果直接给当前正在运行的程序发了一个中断信号。在Linux终端里CtrlC的意思是“中断当前进程”而不是“复制”。复制文本需要先用鼠标选中再用CtrlShiftC粘贴是CtrlShiftV。还有一次我运行了一个日志输出屏幕哗哗地刷新我想停下来看看前面的内容狂按CtrlC没用于是按了CtrlZ。键盘突然挂了其实没有在Linux终端里终端本身是支持多个屏幕的。用快捷键可以切换虚拟终端。按CtrlZ把当前进程放到后台屏幕看起来就“卡住”了。解决办法是用fg把它带回前台或者用jobs、bg这些命令管理后台任务。再有一个几乎所有Linux新手都会遇到的经典卡点vim编辑器不会退出。很多人第一次在终端里打开vim之后发现自己不知道怎么退出上网一搜答案五花八门:q、:wq、ZZ还有人说直接按Esc三次。我寒假学到这里时也是折腾了一阵。这里给一个最简备忘按Esc确保进入命令模式然后输入:wq保存并退出或者:q!不保存强制退出。如果你不小心打开了一个不知道怎么操作的文件心态放平按Esc输入:q!回车总能出来。4.3 常见问题速查表为了寒假结束之后还能快速复习我把踩过的部分问题和排查结果整理成了表格贴在笔记第一页。这里也分享出来对刚开始学的朋友应该有帮助。现象可能原因排查/解决思路ssh连接超时安全组未放行22端口、IP错误检查云控制台安全组规则核对公网IPssh提示Permission denied密码错误、密钥不匹配使用密码登录时重置密码使用密钥时检查公钥是否在authorized_keys中私钥文件报UNPROTECTED私钥权限大于600执行chmod 600 ~/.ssh/id_ed25519磁盘空间、脚本报没有空间根分区写满用df -h查看磁盘占用清理/var/log下的旧日志执行脚本时报权限不够文件没有执行权限用chmod x script.sh赋予执行权限忘记当前目录在哪儿目录切换太频繁用pwd确认配合cd -返回上个目录命令找不到软件未安装或环境变量缺失用包管理器安装如apt installDebian系、dnf installRocky系这些坑看起来都不大但每一件都实打实地浪费过我不少时间。学习Linux的过程就是不断踩坑、再爬起来的过程。别怕报错报错信息其实是系统在帮你做调试——第一件事就是把报错信息完整读一遍很多时候问题就藏在里面。5. 寒假后半段从指令到面试题的进阶路线5.1 假期收尾时可以做的小项目寒假学到这里指令已经积累了一大批如果只停留在“会敲”层面很快会忘。我给自己安排了一个收尾项目在这台云服务器上部署一个最简单的个人网站并用Shell脚本写一个环境初始化脚本。这个项目循环使用了前面学的所有核心技能文件操作创建网站目录用户管理新建一个部署账号权限管理设置目录权限文本处理指令查看日志排查错误进程管理重启服务。做完这个项目之后你会发现很多指令不是“学会了”而是“变成自己的了”。另一个建议是准备一本“指令笔记”但是不要写成命令手册而是写成使用场景记录。每次遇到一个问题并解决之后就把“问题-指令-原因”写下来。寒假结束回头看这些笔记比任何一本教程都珍贵。5.2 关于Linux面试题的一些整理思路热词里出现了“linux面试题测试”和“linux常用命令大全运维”我不确定你是不是要准备春招但寒假学到中后期我确实开始试着用面试题来检验自己的理解程度。看了一些Linux相关的面试题之后我发现多数题目并不超纲考的其实就是基础指令的“为什么”和“细节”。比如如何查看服务器的平均负载如何查看某个端口的监听情况如何强制杀掉一个进程如何定时执行一个任务这些问题在寒假前面几周里几乎都遇到过。如果你能不看命令手册独立地回答出来并顺手在现场敲一遍验证那基本就算是过关了。Linux面试题不能靠背因为面试官特别喜欢追问。你不光要知道top能看负载可能还要解释load average的三个数分别代表什么以及你遇到过哪次负载过高的情况是怎么排查的。这正好说明寒假期间“实操—踩坑—总结”的学习模式是对的它让你积累的不是孤立的命令而是完整的问题解决经验。我个人寒假实践下来最深的体会是Linux学习没有捷径但一定有“更聪明”的路径。先登录一台云服务器让Linux成为你的日常工具再在真实场景里反复使用指令最后用项目和小测试检查自己的盲区——这套流程比单纯看视频、刷书效率高太多了。寒假虽然只有几十天但只要把“登录云服务器”和“移动指令”这两件事真正做扎实开学之后不管是继续学运维、网络还是嵌入式方向你都会比同龄人领先一步。最后再分享一个小技巧如果你的终端里想快速查看某条命令的历史记录直接按CtrlR然后输入关键字反向搜索。这个快捷键我寒假后期才掌握但一旦用上就回不去了。祝你这个寒假也能顺利把Linux这块“硬骨头”啃下来咱们在Shell里见。
返回列表