三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Linux系统安装与命令行入门实战:从虚拟机部署到核心操作指南

Linux系统安装与命令行入门实战:从虚拟机部署到核心操作指南

1. 从零到一:为什么你需要亲手安装一个Linux系统?

如果你对计算机技术感兴趣,或者你的工作、学习已经不可避免地要接触到服务器、开发环境、数据分析,那么“Linux”这个词对你来说一定不陌生。它可能意味着后台服务器上那个神秘的黑屏绿字,也可能是程序员口中常说的“部署到线上”。但说实话,对于很多刚接触的朋友来说,Linux就像一堵高墙,命令是墙上的砖,而安装系统,就是找到那扇进入新世界的大门。今天,我们不谈那些高深莫测的内核调度,也不讲复杂的网络协议栈,就从最实在的一步开始:如何亲手在你的电脑上,装上一个能用的Linux系统,并掌握那些让你在这个新世界里“活下去”的必备命令。

我见过太多人,一上来就抱着《Linux命令大全》硬啃,结果连系统都没装明白,几个报错就把热情浇灭了。这就像还没学会走路,就想去跑马拉松。我的建议是,先别管那么多命令,咱们第一步,先把系统稳稳当当地跑起来。这个过程本身,就是一次绝佳的学习。你会遇到引导问题、驱动问题、分区问题,解决它们的过程,比你背十页命令都管用。当你看到那个熟悉的登录界面,输入第一个命令并得到响应时,那种“我做到了”的成就感,会成为你继续深入的最大动力。

那么,这个“安装”到底指的是什么?简单说,就是让你当前的电脑(无论是Windows还是Mac),能够启动并运行一个完整的Linux操作系统。常见的方法有几种:直接在物理机上安装(替换或与Windows共存)、在虚拟机里安装、或者使用Windows子系统(WSL)。每种方式适合不同的人。如果你是学生,想学习又不影响日常办公,虚拟机是最安全的选择;如果你有一台闲置的旧电脑,想把它改造成家庭服务器,直接物理安装最合适;如果你是Windows用户,想偶尔用用Linux命令行工具,WSL则方便快捷。接下来,我会带你走通最经典、也最锻炼人的方式——使用虚拟机安装,因为它兼顾了安全性和完整性,让你可以大胆尝试,不怕搞坏主力机。

2. 安装实战:以VirtualBox虚拟机安装Ubuntu为例

理论说再多,不如动手做一遍。这里我选择VirtualBox作为虚拟机软件,因为它免费、开源、性能不错,对新手友好。Linux发行版我们选择Ubuntu 22.04 LTS,这是目前最流行的桌面Linux之一,社区支持强大,软件丰富,非常适合入门。

2.1 前期准备:镜像与虚拟机的创建

首先,你需要准备两样东西:虚拟机软件和Linux系统镜像。

  1. 下载VirtualBox:访问VirtualBox官网,根据你的主机系统(Windows或macOS)下载对应的安装包。安装过程一路“下一步”即可,没有特别需要注意的坑。
  2. 下载Ubuntu镜像:前往Ubuntu官网,找到22.04 LTS版本的“Desktop image”进行下载。你会得到一个后缀为.iso的文件,这就是系统安装盘镜像。

注意:务必从官网下载镜像,以保证文件完整和安全。下载的.iso文件不要放在中文或带有空格的路径下,避免虚拟机软件识别出错。

打开VirtualBox,点击“新建”按钮,开始创建虚拟机。

  • 名称:可以随意,比如“MyUbuntu”。
  • 文件夹:选择一个大容量硬盘上的路径,用于存放虚拟机文件。
  • 类型:选择“Linux”。
  • 版本:选择“Ubuntu (64-bit)”。
  • 内存大小:建议分配至少2048MB(2GB),如果你的物理内存有8GB或以上,分配4096MB(4GB)体验会更流畅。
  • 硬盘:选择“现在创建虚拟硬盘”,类型用默认的VDI,分配方式选择“动态分配”,大小建议20GB以上。动态分配意味着它不会立刻占用你20GB的物理硬盘空间,而是随着虚拟机内文件增多而逐渐增大,最大不超过20GB。

创建完成后,先别急着启动。选中刚创建的虚拟机,点击“设置”,进行几项关键配置:

  • 系统 > 处理器:根据你CPU的核心数,分配2个或更多的处理器核心,能显著提升虚拟机性能。
  • 显示 > 屏幕:将“显存大小”拉到128MB,并勾选“启用3D加速”,这对桌面环境的流畅度有帮助。
  • 存储:点击“没有盘片”的光驱图标,在“分配光驱”右侧的光盘图标处选择“选择磁盘文件”,找到你刚才下载的Ubuntu.iso文件。
  • 网络:确保“网络地址转换(NAT)”已启用。这样虚拟机可以共享主机的网络上网,但又处于一个独立的网络环境中,比较安全。

2.2 安装过程详解与分区规划

点击“启动”,虚拟机就会从你挂载的ISO镜像开始引导。你会看到Ubuntu的启动菜单,选择“Try or Install Ubuntu”先试用,或者直接“Install Ubuntu”开始安装。我建议先选择“Try Ubuntu”进入Live CD环境,这样你可以先感受一下系统,确认硬件驱动(特别是显卡和网卡)是否正常,然后再点击桌面上的“Install Ubuntu”图标开始安装,这样更稳妥。

安装程序会引导你进行语言、键盘布局等设置。到了关键步骤——安装类型。对于虚拟机,最简单直接的选择是“清除整个磁盘并安装Ubuntu”,因为虚拟磁盘本身就是一个独立文件,无需担心影响主机。但为了学习,我们了解一下手动分区。

点击“其他选项”,进入手动分区界面。对于新手,一个简单实用的分区方案如下:

  • EFI系统分区:如果你的虚拟机是UEFI启动模式(新建虚拟机时默认就是),需要这个分区。大小500MB,类型EFI System Partition
  • 交换空间:相当于Windows的虚拟内存。大小一般为物理内存的1-2倍,这里我们设4GB(4096MB),类型swap area
  • 根分区:这是系统的主分区,所有文件和程序都装在这里。使用剩余的所有空间,挂载点/, 文件系统类型ext4

设置好分区后,在下方选择安装启动引导器的设备,通常就是你的虚拟磁盘(例如/dev/sda)。确认无误后,点击“现在安装”。接下来的时区、用户名密码设置按提示完成即可。安装过程大约需要15-30分钟,完成后重启,记得在重启提示时按回车,并回到虚拟机设置里,将启动顺序中的光盘移除以从硬盘启动。

2.3 安装后的首要优化配置

首次进入系统,先别急着敲命令,做几件让后续使用更舒服的事:

  1. 更新软件源和系统:打开终端,输入以下命令。这会让你的系统软件列表与官方服务器同步,并升级所有可更新的软件包,修复已知漏洞。

    sudo apt update sudo apt upgrade -y

    sudo表示以管理员权限运行,apt是Ubuntu的包管理工具,update是更新软件列表,upgrade是执行升级,-y参数表示对所有的确认提示自动回答“是”。

  2. 安装增强功能:在VirtualBox的菜单栏,点击“设备” -> “安装增强功能”。这会在虚拟机内挂载一个增强功能镜像。在终端里,你需要先安装编译依赖,然后挂载并运行安装脚本。

    sudo apt install build-essential dkms linux-headers-$(uname -r)

    安装完依赖后,通常系统会自动弹出窗口询问是否运行,点击运行即可。如果没有,你需要手动挂载:sudo mount /dev/cdrom /media/cdrom,然后进入/media/cdrom目录执行sudo ./VBoxLinuxAdditions.run。安装完成后重启虚拟机。这个步骤能实现主机和虚拟机之间的无缝鼠标切换、共享剪贴板、文件拖放和更好的屏幕分辨率适配,是必做操作。

  3. 设置共享文件夹:为了方便在主机和虚拟机之间交换文件,可以设置共享文件夹。在VirtualBox虚拟机设置中,找到“共享文件夹”,添加一个主机上的目录,并勾选“自动挂载”和“固定分配”。在虚拟机内,你需要将当前用户添加到vboxsf用户组才能有访问权限:

    sudo usermod -aG vboxsf $USER

    注销并重新登录后,共享文件夹会出现在/media目录下,名为sf_<你设置的共享文件夹名>

做完这些,你的Linux学习环境就已经搭建完毕,并且是一个好用、高效的环境。这比直接用一个不顺手的环境开始学习,效率要高得多。

3. 命令行的生存指南:从“不知所措”到“游刃有余”

系统装好了,面对空空如也的终端光标,你可能还是会发怵。别担心,命令不是靠死记硬背的,而是靠理解和使用场景来熟悉的。我把最核心、最高频的命令分成几类,你不需要一次全记住,用到的时候回来查就行。

3.1 文件与目录操作:你在文件系统里的手脚

这是最基础的部分,相当于你在Windows里用鼠标点击、拖拽、重命名。

  • pwd:打印当前工作目录。你不知道自己“在哪儿”的时候,就用它。
  • ls:列出目录内容。ls -l可以看详细信息(权限、所有者、大小、时间),ls -a可以显示隐藏文件(以.开头的文件)。
  • cd:改变目录。cd ~回到家目录,cd ..返回上一级,cd -在上一个目录和当前目录间切换。
  • mkdir:创建目录。mkdir new_folder创建单个目录,mkdir -p a/b/c可以递归创建多层目录。
  • touch:创建一个空文件,或者更新一个已有文件的时间戳。touch new_file.txt
  • cp:复制文件或目录。cp file1 file2复制文件,cp -r dir1 dir2递归复制整个目录。
  • mv:移动或重命名文件/目录。mv old_name new_name重命名,mv file /path/to/destination移动文件。
  • rm:删除。这是最危险的命令之一!rm file删除文件,rm -r directory递归删除目录及其内容。Linux没有回收站,删除即永久。一个保护自己的好习惯是,先使用rm -i(交互模式,删除前询问),或者对重要删除操作,先用mv命令把文件移到一个临时目录(比如~/trash),定期清理。
  • cat:连接文件并打印到标准输出。常用于快速查看小文件内容:cat file.txt
  • less/more:分页查看大文件内容。less file.log进入浏览模式,可以用上下键翻页,按q退出。lessmore功能更强,支持向前翻页。
  • head/tail:查看文件开头或结尾部分。head -n 20 file.log查看前20行,tail -f file.log实时追踪文件新增内容(查看日志的神器)。

实操心得:对于rm命令,我强烈建议你在~/.bashrc文件末尾加上一行别名设置:alias rm='rm -i'。保存后执行source ~/.bashrc。这样以后每次rm都会询问你是否确认,能有效防止手滑误删。等你非常熟练了,再用\rm(在命令前加反斜杠)来使用原生的、不带询问的rm命令。

3.2 系统信息与进程管理:了解你的机器在干什么

当系统变慢,或者程序没反应时,这些命令能帮你快速定位问题。

  • df:显示磁盘空间使用情况。df -h以人类可读的格式(G, M)显示,一眼就知道哪个分区快满了。
  • du:估算文件或目录的磁盘使用量。du -sh *可以快速查看当前目录下所有文件和目录的大小总和。
  • free:显示内存使用情况。free -h同样是用易读格式。
  • top/htop:动态显示进程信息,相当于任务管理器。top是基础版,htop是增强版,界面更友好,支持鼠标操作(需要安装:sudo apt install htop)。在里面可以看到CPU、内存占用率,以及是哪个进程最耗资源。
  • ps:报告当前进程的快照。最常用的组合是ps aux,可以列出所有用户的所有进程的详细信息。
  • kill:向进程发送信号以终止它。先用ps aux | grep 进程名找到进程的PID,然后用kill PID尝试正常结束。如果进程不响应,可以用kill -9 PID强制杀死。-9信号是不可捕获和忽略的,相当于“必杀技”,但可能导致数据丢失,慎用。

3.3 权限与用户管理:安全与协作的基石

Linux是一个多用户系统,权限控制是核心。一切皆文件,而每个文件都有所属用户、所属组和一套权限标志。

  • chmod:改变文件权限。权限用数字表示:读(r)=4,写(w)=2,执行(x)=1。例如chmod 755 script.sh表示给所有者rwx(4+2+1=7),所属组和其他用户r-x(4+1=5)。更直观的方式是用字母:chmod u+x file给所有者增加执行权限。
  • chown:改变文件所有者和所属组。sudo chown user:group file
  • sudo:以超级用户(root)权限执行命令。系统管理操作几乎都需要它。你的安装用户默认就在sudo组里。
  • passwd:修改用户密码。直接输入passwd修改自己的,sudo passwd username修改其他用户的(需要权限)。
  • useradd/usermod/userdel:添加、修改、删除用户。通常配合sudo使用。

理解权限是理解Linux安全的第一步。当你遇到“Permission denied”错误时,首先用ls -l看看文件的权限设置,再决定是用chmod改权限,还是用sudo提权执行。

3.4 网络相关与软件安装:连接世界和获取工具

  • ping:测试与目标主机的网络连通性。ping -c 4 google.com发送4个数据包后停止。
  • curl/wget:从网络下载文件。wget更简单直接,curl功能更强大,支持更多协议。wget https://example.com/file.tar.gz
  • ssh:安全地远程登录另一台计算机。ssh username@remote_server_ip。这是管理服务器的绝对主力命令。
  • apt:Debian/Ubuntu系列的包管理器。sudo apt install package_name安装软件,sudo apt remove package_name卸载,sudo apt search keyword搜索软件包。它是你获取绝大多数软件的工具,会自动解决依赖关系。

4. 高效使用命令行的进阶技巧与思维

掌握了单个命令,就像学会了单词。要写出流畅的句子,还需要语法和技巧。这些技巧能让你效率倍增。

4.1 管道与重定向:命令的“组合技”

这是Linux命令行哲学的精髓:一个命令只做好一件事,通过管道将它们连接起来处理复杂任务。

  • 管道|:将一个命令的输出,作为另一个命令的输入。
    ps aux | grep nginx # 在所有进程中查找包含“nginx”的行 cat logfile.txt | grep "ERROR" | wc -l # 统计日志文件中“ERROR”出现的行数
  • 输出重定向>>>:将命令的输出保存到文件,而不是显示在屏幕上。>会覆盖文件,>>会追加到文件末尾。
    ls -l > filelist.txt # 将当前目录列表保存到文件,覆盖原有内容 echo "new line" >> filelist.txt # 在文件末尾追加一行文字
  • 输入重定向<:将文件内容作为命令的输入。
    sort < unsorted_list.txt # 对文件内容进行排序

4.2 文本处理三剑客:grep, sed, awk

处理文本和日志文件时,这三个工具是无敌的。

  • grep:在文本中搜索匹配模式的行。grep -i "error" app.log忽略大小写搜索错误,grep -r "function_name" /path/to/code递归搜索目录下的所有文件。
  • sed:流编辑器,用于对文本进行过滤和转换。最常用的功能是替换:sed 's/old_text/new_text/g' file.txt将文件中所有的old_text替换为new_text。-i参数可以直接修改原文件。
  • awk:一门强大的文本分析语言,尤其擅长处理按列(字段)组织的文本。awk '{print $1}' file.txt打印文件每一行的第一列(默认以空格或制表符分隔)。awk -F',' '{print $2}' data.csv指定逗号为分隔符,打印第二列。

4.3 终端环境与效率工具

  • Tab键补全:输入命令或路径时,按Tab键可以自动补全。按两次Tab会列出所有可能的选项。这是节省时间、避免拼写错误的最重要习惯。
  • 历史命令:按上下箭头键可以翻阅之前执行过的命令。history命令可以列出所有历史记录,!数字可以快速执行历史记录中对应编号的命令。
  • 别名:为长的命令序列创建简短的别名。例如,在~/.bashrc中加入alias ll='ls -alF',之后输入ll就等于输入了ls -alF
  • man命令:最权威的命令手册。遇到不熟悉的命令,man command_name查看它的详细用法、参数和说明。虽然都是英文,但耐着性子看,是学习的最佳途径。

5. 避坑指南与常见问题速查

在实际操作中,你一定会遇到各种各样的问题。这里我总结了一些高频“坑点”和解决方法。

5.1 安装与启动类问题

  • 问题:虚拟机启动报错 “VT-x/AMD-V硬件加速不可用”
    • 原因:主机BIOS中的虚拟化技术(Intel VT-x 或 AMD-V)没有开启。
    • 解决:重启电脑,进入BIOS/UEFI设置(通常是开机时按F2、Del、F10等键),在CPU配置或安全相关选项中找到“Virtualization Technology”或类似选项,将其设置为“Enabled”。保存退出。
  • 问题:安装过程中无法连接网络
    • 原因:虚拟机网络配置问题,或主机网络环境特殊(如公司代理)。
    • 解决:首先检查VirtualBox的网络设置是否为“NAT”。如果主机需要代理,在Ubuntu安装界面的网络设置里,可以暂时跳过网络连接,等系统安装完成后,在图形界面或命令行里配置代理。
  • 问题:安装后重启黑屏,只有光标闪烁
    • 原因:常见于显卡驱动兼容性问题,尤其是在物理机安装时。
    • 解决:在GRUB引导菜单(开机时按Shift或Esc键)处,选择“Advanced options for Ubuntu”,然后选择一个带“recovery mode”的内核启动。进入恢复模式后,选择“root”进入命令行,尝试更新或重装显卡驱动,或者修改显示管理器配置。对于虚拟机,通常是因为没有正确安装“增强功能”,请务必按前述步骤安装。

5.2 命令与权限类问题

  • 问题:执行命令提示 “Command not found”
    • 原因:该命令对应的软件包没有安装,或者命令拼写错误。
    • 解决:首先检查拼写。如果确认命令正确,用apt search查找对应的包名并安装。例如,想用htop但没装,就sudo apt install htop
  • 问题:操作文件时提示 “Permission denied”
    • 原因:当前用户对该文件/目录没有相应的读写或执行权限。
    • 解决
      1. 使用ls -l查看文件权限和所有者。
      2. 如果文件属于你,用chmod命令给自己增加权限(如chmod u+w file增加写权限)。
      3. 如果文件属于其他用户(如root),且你确实需要修改它,可以在命令前加sudo以管理员身份执行。但需谨慎,确保你知道自己在做什么。
      4. 如果是执行脚本,确保脚本文件有可执行权限:chmod +x script.sh
  • 问题:误删了重要文件怎么办?
    • 预防优于治疗:再次强调alias rm='rm -i'和重要文件备份的习惯。
    • 解决:Linux普通删除没有回收站。可以尝试使用文件恢复工具如extundeletetestdisk,但成功率取决于文件被删除后磁盘的写入情况。对于虚拟机,如果你有定期做快照(Snapshot)的习惯,恢复快照是最简单的方法。这提醒我们,在虚拟机里做任何有风险的操作前,打一个快照是极好的习惯。

5.3 软件与网络类问题

  • 问题:sudo apt update失败,提示无法连接或Hash校验和不符
    • 原因:软件源服务器连接超时,或者软件源列表配置有误/过时。
    • 解决
      1. 检查网络:ping 8.8.8.8看是否能通外网。
      2. 更换软件源:备份/etc/apt/sources.list文件,然后编辑它,将里面的archive.ubuntu.comsecurity.ubuntu.com替换为国内的镜像源,例如阿里云镜像(mirrors.aliyun.com)或清华镜像(mirrors.tuna.tsinghua.edu.cn)。替换后再次执行sudo apt update
  • 问题:如何安装.deb文件或编译安装软件?
    • .deb:这是Debian/Ubuntu的安装包格式。双击通常可以用软件中心安装,或者用命令sudo dpkg -i package.deb。如果提示依赖问题,可以接着运行sudo apt install -f来修复依赖。
    • 编译安装:对于源码包(通常是.tar.gz格式),步骤一般是:解压 -> 进入目录 -> 执行./configure检查环境并生成Makefile ->make编译 ->sudo make install安装。这需要系统已安装build-essential等编译工具链。

学习Linux的过程,就是一个不断遇到问题、搜索、尝试、解决并积累经验的过程。不要害怕命令行,把它看作是与计算机直接、高效对话的方式。从安装系统开始,到每天用几个命令完成小任务,循序渐进,你会发现自己对计算机的理解在不知不觉中加深了。最后,记住那句老话:“无他,唯手熟尔。” 多动手,多尝试,这个看似冰冷的黑色窗口,最终会成为你手中最强大的工具。

← 返回列表