ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Linux新手入门:从虚拟机搭建到命令行实战全攻略

Linux新手入门:从虚拟机搭建到命令行实战全攻略 1. 项目概述为什么你需要从零开始学Linux如果你刚接触计算机或者一直生活在Windows或macOS的图形界面里第一次听说“Linux”这个词可能会觉得它既神秘又遥远。很多人把它想象成只有程序员和黑客才会用的复杂系统满屏幕都是闪烁的光标和看不懂的命令。但事实并非如此。Linux早已渗透到我们数字生活的方方面面从你每天刷的抖音、淘宝的后台服务器到安卓手机的底层内核再到家里的智能路由器甚至是你正在使用的这台电脑的某个虚拟机里都有它的身影。学习Linux本质上是在学习与计算机“直接对话”的能力是摆脱对图形界面依赖、真正理解计算机如何工作的重要一步。我刚开始接触Linux时也走过不少弯路被各种发行版、命令行吓退过。但后来发现只要方法得当入门Linux其实比想象中简单得多。它就像学开车一开始觉得离合器、油门、方向盘很复杂但一旦掌握了基本操作你会发现手动挡比自动挡更有掌控感。这篇内容就是为你准备的“驾校课程”。我们不谈那些高深莫测的内核原理和服务器集群就从最基础的“如何启动一辆车”开始手把手带你完成从安装一个Linux环境到能够自如地使用命令行完成日常文件操作、文本编辑的整个过程。无论你是计算机专业的学生想转行IT的从业者还是单纯对技术好奇的爱好者这篇指南都能帮你打下坚实的实践基础。2. 环境准备打造你的第一个Linux实验室在真正上手操作之前我们需要一个安全、可反复折腾的练习环境。直接在物理电脑上安装Linux对于新手风险较高一旦操作失误可能导致数据丢失或系统无法启动。因此最稳妥、最推荐的方式是使用虚拟机。2.1 虚拟化软件选型VMware Workstation Pro为何是首选市面上虚拟化软件不少比如VirtualBox、Hyper-V等。对于Linux学习入门我强烈推荐使用VMware Workstation Pro。原因有几个一是它的性能和硬件兼容性非常出色特别是对显卡、USB设备的支持能让你在虚拟机里获得接近原生系统的体验二是它的快照Snapshot功能堪称“后悔药”你可以在任何一个操作步骤前创建一个系统快照如果后续操作搞砸了一键就能恢复到快照时的完美状态这对新手练习风险操作比如修改系统关键配置、安装测试软件至关重要三是网络配置直观稳定方便后续学习网络相关命令。当然VMware Workstation Pro是商业软件需要许可证。你可以从其官网下载试用版通常有30天的免费期这对于完成入门学习绰绰有余。如果后续需要长期使用请支持正版购买许可证。这里务必注意网络上流传的所谓“许可证密钥”或“破解版”不仅存在法律风险更可能捆绑恶意软件导致系统不安全。学习技术第一步就要树立正确的版权和安全意识。注意安装VMware时请务必以管理员身份运行安装程序并确保Windows系统自身的Hyper-V功能已关闭控制面板-程序-启用或关闭Windows功能中查看否则可能会产生冲突导致虚拟机无法启动。2.2 Linux发行版选择Ubuntu——新手的友好伙伴Linux本身只是一个内核我们通常使用的是基于Linux内核的各个发行版Distribution。发行版众多如CentOS、Debian、Fedora等。对于初学者我毫无保留地推荐Ubuntu。它的优势在于第一社区庞大活跃你遇到的几乎所有问题都能在网上找到解决方案第二软件仓库丰富安装软件通常一条命令就能搞定第三桌面环境如GNOME美观易用能缓解从图形界面到命令行的过渡焦虑第四长期支持版LTS稳定每两年发布一次提供长达五年的支持非常适合学习环境。建议直接去Ubuntu官网下载最新的LTS版本桌面版ISO镜像文件。选择LTS版本意味着在几年内你都可以获得安全更新和bug修复不用频繁重装系统。2.3 虚拟机创建与系统安装详解打开安装好的VMware Workstation Pro点击“创建新的虚拟机”。这里有几个关键配置点需要你仔细设置典型安装与自定义选择“自定义高级”这样我们能更细致地控制虚拟机配置。硬件兼容性选择你当前VMware版本支持的最高版本以获得更多新特性。安装来源选择“安装程序光盘映像文件iso”然后浏览到你下载的Ubuntu ISO文件。客户机操作系统选择“Linux”版本选择“Ubuntu 64位”。虚拟机命名和位置给你的虚拟机起个名字比如“MyUbuntuLab”。位置千万不要放在C盘系统盘请指定到一个空间充足的D盘或E盘的文件夹里。虚拟机文件会随着使用逐渐变大。处理器和内存这是影响虚拟机流畅度的关键。处理器数量建议设置为2如果你的物理CPU核心数多于4个。内存RAM至少分配2048 MB2GB如果物理内存有8GB或以上分配4096 MB4GB体验会更好。原则是在保证宿主机你的Windows流畅运行的前提下尽可能多分给虚拟机。网络类型初次学习选择“使用网络地址转换NAT”最简单。这样虚拟机会共享你宿主机的IP上网无需额外配置。磁盘配置这是重中之重。磁盘类型选择“SCSI”即可。磁盘选择“创建新虚拟磁盘”。磁盘容量建议至少40GB。这里设置的只是“最大容量”虚拟机文件并不会立刻占用40GB而是随着你往虚拟机里存文件慢慢增长。磁盘存储方式务必选择“将虚拟磁盘拆分成多个文件”。虽然“单个文件”性能可能有一点点优势但“多个文件”在备份、迁移时灵活得多特别是当你想把虚拟机拷贝到移动硬盘或另一台电脑时。创建完成后点击“开启此虚拟机”就会进入Ubuntu的安装界面。安装过程基本是图形化点击“下一步”但有几点需要注意语言选择中文。安装类型选择“清除整个磁盘并安装Ubuntu”不用担心这只会清除你虚拟机的虚拟磁盘不会影响你真实的电脑硬盘。设置你的用户名、计算机名和密码。请牢记这个密码在Linux中执行管理员权限操作sudo时需要频繁输入。安装过程中它会提示你下载更新和安装第三方软件如显卡驱动、MP3解码器。为了节省安装时间可以先不勾选等系统安装完毕后再手动更新。安装完成后重启输入密码登录你就拥有了一个纯净、独立的Linux系统环境了。恭喜实验室搭建完毕3. 初识终端与Linux系统对话的窗口登录进Ubuntu漂亮的桌面后别被图形界面迷惑我们的主战场不在这里。按下键盘上的Ctrl Alt T组合键一个黑色的窗口会弹出来这就是终端Terminal也叫命令行界面CLI。所有神奇的Linux命令都将在这里输入和执行。3.1 终端基础与命令结构解析打开终端你会看到类似这样的提示符yournameyourcomputer:~$。我来拆解一下yourname你当前登录的用户名。yourcomputer你的计算机名。:后面的~是一个符号代表当前用户的家目录Home Directory。这是你的个人地盘所有个人文件、配置都默认在这里。$是普通用户的命令提示符。如果看到#则代表当前是超级用户root权限操作需极度谨慎。Linux命令的基本格式是命令 [选项] [参数]。命令告诉系统你要做什么比如ls列出文件、cd切换目录。选项Options通常以-或--开头用于修改命令的行为。比如ls -l的-l表示以长格式详细信息列出。参数Parameters命令作用的对象通常是文件名或目录名。比如cd Documents中的Documents。3.2 文件与目录操作核心命令实战这是你使用频率最高的一组命令务必熟练掌握。pwd(Print Working Directory)查看当前所在目录的绝对路径。当你迷路时就用它。yournameyourcomputer:~$ pwd /home/yournamels(List)列出目录内容。这是你的“眼睛”。ls简单列出当前目录下的文件和文件夹名。ls -l以长格式列出显示权限、所有者、大小、修改时间等详细信息。ls -a列出所有文件包括以.开头的隐藏文件在Linux中以点开头的文件或目录默认隐藏通常是配置文件。ls -lh-h选项让文件大小以人类可读的形式K, M, G显示结合-l使用非常直观。yournameyourcomputer:~$ ls -lh total 24K drwxr-xr-x 2 yourname yourname 4.0K Apr 10 10:00 Desktop drwxr-xr-x 2 yourname yourname 4.0K Apr 10 10:00 Documents ...cd(Change Directory)切换当前工作目录。这是你的“双腿”。cd Documents进入当前目录下的Documents文件夹。cd ..两个点代表上级目录这是返回上一层的快捷键。cd ~或直接cd快速跳回到家目录。cd -在最近两次所在的目录间切换非常实用。cd /etc使用绝对路径直接切换到根目录下的etc目录。mkdir(Make Directory)创建新目录。mkdir new_folder在当前目录创建名为new_folder的文件夹。mkdir -p project/src/test-p选项可以一次性创建多层不存在的目录结构。touch创建一个新的空文件或更新已有文件的时间戳。touch myfile.txt如果myfile.txt不存在则创建它如果存在则更新它的访问和修改时间为当前时间。cp(Copy)复制文件或目录。cp file1.txt file2.txt复制file1.txt为file2.txt。cp -r dir1 dir2-r选项代表递归复制用于复制整个目录。mv(Move)移动或重命名文件/目录。mv oldname.txt newname.txt重命名文件。mv file.txt ~/Documents/将file.txt移动到家目录下的Documents文件夹中。rm(Remove)删除文件或目录。这是最危险的命令之一Linux下删除后一般无法从回收站恢复rm useless_file.txt删除文件。rm -r useless_dir-r递归删除目录及其内部所有内容。rm -rf something-f强制删除不进行任何确认提示。请极度谨慎使用此组合特别是rm -rf /删除根目录下所有文件是毁灭性的永远不要尝试实操心得养成使用rm -i交互式删除的习惯或者先ls确认一下要删除的内容再用rm。对于重要目录可以先mv到一个临时位置如~/trash/过段时间再清理。cat(Concatenate)查看文件全部内容。适合看小文件。yournameyourcomputer:~$ cat hello.txt Hello, Linux World!less/more分页查看文件内容。适合看大文件。按空格翻页按q退出。less比more功能更强支持向前翻页等。head/tail查看文件开头或结尾部分。head -n 20 large.log查看large.log文件的前20行。tail -n 50 -f app.log查看app.log文件的最后50行并且-f选项会持续监控文件如果文件有新增内容比如日志在持续写入它会实时显示出来。这是查看实时日志的神器。4. 文本编辑利器Vi/Vim编辑器从抗拒到熟练很多新手对Vi/Vim望而生畏觉得它模式怪异、操作反人类。但一旦掌握你会发现在纯命令行环境下它的编辑效率远超任何图形编辑器。几乎所有的Linux服务器都预装了Vi或其增强版Vim所以这是必学技能。4.1 Vi的三种模式与核心逻辑Vi的核心在于其模式化编辑这是它高效也是令人困惑的根源。它主要有三种模式普通模式Normal Mode打开文件后默认进入的模式。在这个模式下你不能直接输入文本但可以执行各种命令比如移动光标、删除、复制、粘贴、查找、保存等。大部分时间你都应该待在这个模式。插入模式Insert Mode在这个模式下你可以像在记事本里一样正常输入和编辑文本。从普通模式按iinsert、aappend、oopen new line等键进入。命令行模式Command-Line Mode在普通模式下按:冒号进入。可以执行保存、退出、查找替换等更复杂的命令。一个常见的误区是新手打开Vi后直接敲字发现要么没反应要么打出乱码然后不知所措。记住口诀打开文件是普通模式按i进入插入模式编辑按Esc退回普通模式按:进入命令行模式执行保存或退出。4.2 生存必备的Vi操作指令集假设我们要编辑一个文件note.txtvi note.txt从普通模式进入插入模式i在光标当前位置前插入。a在光标当前位置后插入。o在当前行的下方新开一行并进入插入模式。I大写移动光标到当前行行首并进入插入模式。A移动光标到当前行行尾并进入插入模式。在普通模式下移动光标无需鼠标h左,j下,k上,l右基础方向键。0数字零跳到行首。$跳到行尾。gg跳到文件第一行。G跳到文件最后一行。:行号在命令行模式下输入行号直接跳转如:50跳到第50行。在普通模式下编辑文本x删除光标所在处的一个字符。dd删除剪切当前整行。yy复制yank当前整行。p将复制或剪切的内容粘贴到光标所在行的下方。u撤销Undo上一次操作。Ctrl r重做Redo被撤销的操作。保存与退出在命令行模式下:w保存文件Write。:q退出ViQuit。如果文件有修改未保存会提示错误。:q!强制退出不保存任何修改。:wq或:x保存并退出。这是最常用的组合。:w 新文件名另存为新文件。查找与替换/关键词在普通模式下输入/后跟要查找的词按回车开始向前查找。按n查找下一个N查找上一个。:%s/旧文本/新文本/g在命令行模式下将文件中所有的“旧文本”替换为“新文本”。%表示全文范围g表示全局替换一行内所有匹配。踩过的坑最经典的“死循环”就是打开Vi后不知道怎么退出。记住先狂按几次Esc确保回到普通模式然后输入:q!强制退出。另一个常见问题是vi ~/.bash_profile 报错e325: attention这个错误通常是因为上次编辑这个文件时Vi异常退出比如直接关闭了终端产生了交换文件.swp。Vi为了防止数据丢失会提示你恢复recover或删除交换文件delete。一般情况下如果你确认上次的编辑不需要了直接按D删除交换文件即可。如果想恢复按R。5. 用户、权限与进程管理初探Linux是一个多用户、多任务的操作系统理解其权限和进程管理是进阶的必经之路。5.1 理解用户、组与文件权限执行ls -l命令时第一列像drwxr-xr-x的字符串就是文件权限。它由10个字符组成第1位d表示目录-表示普通文件l表示链接文件。第2-4位文件**所有者user**的权限。第5-7位文件所属**用户组group**的权限。第8-10位**其他用户others**的权限。其中r代表读read数值4w代表写write数值2x代表执行execute数值1。-代表无此权限。所以rwxr-xr-x可以解读为所有者可读可写可执行组用户可读可执行其他用户可读可执行。修改权限的命令是chmod。有两种用法符号模式chmod ux file.sh给所有者增加执行权限chmod go-w file.txt移除组用户和其他用户的写权限。数字模式chmod 755 file.sh。这是最常用的方式。755的计算方式是所有者权限rwx 4217组权限r-x 4015其他用户权限r-x 4015。修改文件所有者和所属组的命令是chownsudo chown newowner:newgroup filename。通常需要sudo提权。5.2 进程查看与管理基础命令进程是正在运行的程序实例。ps(Process Status)查看当前进程快照。ps aux最常用的组合查看系统所有进程的详细信息包括CPU、内存占用等。ps -ef | grep nginx管道符|将ps -ef的输出传递给grep命令进行过滤查找包含“nginx”的进程。这是定位特定进程的黄金命令。top/htop动态、交互式查看进程和系统资源占用。top是系统自带htop是其增强版界面更友好可能需要安装sudo apt install htop。在里面可以看到CPU、内存使用率以及各个进程的实时状态。按q退出。kill向进程发送信号用于结束进程。先用ps aux | grep 进程名找到进程的PID进程ID。kill PID发送默认的TERM信号请求进程正常终止。kill -9 PID发送KILL信号编号9强制立即终止进程。这是最后手段因为进程可能来不及保存数据或清理资源。pkill 进程名根据进程名来结束进程如pkill firefox。和nohup后台运行进程。在命令末尾加上可以让命令在后台运行终端可以继续输入其他命令。如python3 long_script.py 。但如果你关闭了终端后台进程通常也会被终止。使用nohup命令可以让进程忽略挂断信号即使终端关闭也能继续运行nohup python3 server.py 。输出默认会重定向到当前目录的nohup.out文件。6. 软件包管理让系统为你服务在Linux上安装软件不像在Windows上到处下载exe安装包。主流发行版都有自己软件包管理器它从官方维护的软件仓库中下载、安装、更新和卸载软件能自动解决依赖关系安全又省心。Ubuntu及其衍生版使用aptAdvanced Package Tool。更新软件包列表这步是同步远程仓库的软件信息到本地不是更新已安装的软件。建议在安装新软件前先执行。sudo apt update升级已安装的软件包这才是将系统中已安装的软件升级到最新版本。sudo apt upgrade注意upgrade可能会涉及内核升级需要重启才能生效。对于生产服务器升级前务必评估风险。搜索软件包如果你不确定软件包的确切名字。apt search 关键词安装软件sudo apt install 软件包名例如安装网络诊断工具ping和文本编辑器vimsudo apt install iputils-ping vim。apt可以一次性安装多个软件。卸载软件sudo apt remove 软件包名 # 卸载软件但保留配置文件 sudo apt purge 软件包名 # 彻底卸载同时删除配置文件查看已安装软件apt list --installed | grep 软件名7. 网络与系统状态诊断入门当你的虚拟机无法上网或者感觉系统变慢时下面这些命令能帮你快速定位问题。ping测试网络连通性。向目标主机发送数据包看是否能收到回复。ping -c 4 www.baidu.com # -c 4表示发送4个包后停止如果能看到64 bytes from ...的回复说明网络是通的。如果一直显示Request timeout则网络可能有问题。ifconfig或ip addr查看网络接口配置信息IP地址、MAC地址等。ifconfig是传统命令较新的系统推荐使用ip addr。netstat显示网络连接、路由表、接口统计等信息。功能强大常用组合netstat -tulnp查看所有监听的TCP/UDP端口以及对应的进程。这在排查“端口被占用”问题时非常有用。netstat -ant查看所有TCP连接的状态。df(Disk Free)查看磁盘空间使用情况。df -h # -h 以人类可读格式显示关注/根目录的使用率避免磁盘被写满。du(Disk Usage)查看目录或文件的磁盘使用量。du -sh /home/yourname/Documents # -s 总计-h 人类可读查看Documents目录总大小 du -h --max-depth1 /var/log # 查看/var/log目录下一级子目录的大小用于查找哪个目录或文件占用了大量空间。free查看内存使用情况。free -h关注available列这是系统可用的内存包括缓存和缓冲区内可回收的部分比free列更真实。8. 常见问题与排查技巧实录在实际操作中你肯定会遇到各种报错和问题。这里记录几个高频问题及其解决思路。8.1 命令找不到Command not found这是最常见的问题。原因和解决步骤拼写错误首先检查命令是否拼写正确Linux命令区分大小写。软件未安装这个命令对应的软件包没有安装。用apt search查找正确的包名并安装。例如ifconfig命令可能在最小化安装的系统中没有需要安装net-tools包sudo apt install net-tools。命令不在PATH环境变量中系统只在特定的目录PATH变量定义的里查找可执行文件。你可以用echo $PATH查看。如果是自己下载或编译的程序需要将其所在目录添加到PATH或者使用绝对路径来运行它。8.2 权限不足Permission denied当你执行操作如安装软件、修改系统文件、启动某些服务时遇到此错误说明当前用户权限不够。解决方案在命令前加上sudo用超级用户权限执行。系统会提示你输入当前用户的密码输入时密码不可见。例如sudo apt update。原理sudo允许被授权的用户以root身份运行命令。Ubuntu默认的安装用户就在sudoers列表中。注意sudo权限很大不要随意对不信任的命令使用sudo。8.3 进程占用端口服务启动失败当你启动一个Web服务器如Nginx、Tomcat时可能会报错Address already in use意味着你指定的端口如80、8080已被其他进程占用。排查步骤使用netstat -tulnp | grep :端口号查找是哪个进程占用了该端口。例如netstat -tulnp | grep :80。找到对应的PID进程ID。如果确认该进程可以关闭使用kill PID结束它。如果是系统关键进程则需要修改你的服务配置换一个端口。8.4 编辑系统配置文件后如何生效很多软件的配置是通过编辑其配置文件通常在/etc/目录下完成的。修改后通常需要重启对应的服务才能生效。Systemd系统Ubuntu 16.04及以后查看服务状态sudo systemctl status 服务名如nginx,ssh重启服务sudo systemctl restart 服务名重载配置不中断服务仅重新读取配置sudo systemctl reload 服务名如果服务支持设置开机自启sudo systemctl enable 服务名8.5 终端操作中的快捷键与小技巧熟练使用快捷键能极大提升效率Tab键命令/文件名补全。输入命令或路径的前几个字母按Tab键会自动补全。如果有多项匹配按两次Tab会列出所有可能选项。Ctrl C强制终止当前正在前台运行的命令。比如一个命令卡住了或者你输错了想重来。Ctrl Z将当前前台任务挂起到后台并暂停它。之后可以用fg命令调回前台继续或用bg命令让它在后台继续运行。Ctrl A/Ctrl E快速移动光标到行首/行尾。Ctrl U/Ctrl K剪切光标前/后的所有字符到行首/行尾。Ctrl W删除光标前的一个单词。上下方向键翻阅之前执行过的命令历史。结合Ctrl R可以反向搜索历史命令。!!代表上一条命令。例如如果你刚执行了sudo apt update但忘了加sudo可以输入sudo !!它会展开为sudo sudo apt update虽然这里例子不对但原理如此。更常用的是sudo !apt它会执行历史中最近一条以apt开头的命令并在前面加上sudo。学习Linux是一个“动手-遇错-解决-理解”的循环过程。不要害怕在虚拟机里折腾多用man 命令名如man ls查看命令的官方手册多用搜索引擎记得用英文关键词往往能找到更专业的解答。这个虚拟的Linux实验室就是你最好的沙盒在这里犯的所有错误都不会影响你的真实系统。当你能够不假思索地用命令行完成文件整理、日志查看、软件安装和问题排查时你就已经成功入门并拥有了进入更广阔服务器运维、软件开发世界的基础能力。
返回列表