这次学习Linux时,我们把命令行放回一个更基础的问题里:人究竟是怎样和计算机交互的?
指令和界面都是交互方式
计算机被制造出来是为了提供服务,但计算机必须先接收人的输入,才能完成任务。早期设备主要依靠键盘,因此人们自然采用了输入指令的方式;后来鼠标、显示器和图形系统逐渐成熟,图形化界面才成为普通用户更容易接受的交互方式
命令行和图形界面的目标其实相同:都在向操作系统表达“我要完成什么”。区别在于抽象层次和操作方式:
| 方式 | 优点 | 局限 |
|---|---|---|
| 图形界面 | 直观、容易上手,适合探索和日常操作 | 自动化、批量处理和远程管理不够灵活 |
| 命令行 | 精确、可组合、可脚本化,适合服务器和重复任务 | 学习成本更高,输错命令可能造成严重后果 |
学习命令行不等于拒绝图形界面,它让自己拥有另一种更接近系统本身的操作方式
操作系统在中间做什么
可以把计算机理解成一个分层结构:
用户程序、图形界面、Shell
|
操作系统内核
进程 / 文件 / 内存 / 设备管理
|
驱动程序
|
硬件设备
硬件不能直接被普通应用随意操作。驱动程序负责把具体设备抽象出来,操作系统内核负责管理进程、文件、内存和设备,再向上提供稳定的接口。用户看到的图形界面、Shell和各种应用程序,都是建立在这些接口之上的
这也是操作系统存在的意义:对上提供稳定的运行环境,对下统一管理硬件和软件资源
为什么还要学Linux命令行
普通桌面用户确实可以长期只使用图形界面,但服务器和开发环境往往不是这样:
- 服务器通常不安装完整桌面,节省资源并减少维护面
- SSH远程登录后,命令行是最直接的管理入口
- 一组命令可以写成脚本,重复执行时更稳定、更容易审查
- 日志、进程、网络和文件权限等系统信息,很多时候通过命令查看更高效
- 命令行操作能帮助我们理解程序和操作系统之间的真实边界
命令行同时承担着服务器管理、系统编程和自动化工作的基础任务
先从路径和文件操作开始
Linux的文件系统从根目录/开始。.表示当前目录,..表示上一级目录,~通常表示当前用户的家目录。理解这几个路径符号后,很多基础命令会更容易掌握:
pwd # 查看当前目录
ls -la # 查看目录内容,包括隐藏文件
cd .. # 返回上一级目录
cd /var/log # 使用绝对路径进入目录
cd - # 回到上一次所在的目录
touch note.txt # 创建空文件
mkdir -p demo/src # 创建多级目录
rmdir empty-dir # 删除空目录
rm -i note.txt # 删除前询问确认
绝对路径从/开始,定位稳定;相对路径依赖当前位置,写脚本时要特别注意当前工作目录的变化。删除命令尤其要谨慎,rm -r会递归删除目录及其内容,执行前最好先用pwd和ls确认位置
学习顺序
我现在更愿意把Linux学习分成三层:先掌握路径、文件和进程等基本操作,再理解Shell如何调用系统能力,最后结合网络、服务部署和自动化脚本做完整练习。这样学到的命令能和操作系统的工作方式联系起来
来源
本文为个人学习笔记,根据lvy-的《探索交互的本质:从指令到界面的演进与Linux基础指令的深入剖析》提炼并重新组织,保留原文链接供进一步阅读
留言
评论区暂未开放;可先通过 RSS 或「关于」页联系。