前面几章我们聊了设备、环境、提问和更舒适地写代码。但如果你想真正"拥有"一台服务器、把服务跑在云端,或者只是想在一个干净的类 Unix 系统里愉快地折腾,linux 几乎是绕不开的一课。
先认识终端
linux 的世界里,绝大多数操作都发生在终端(Terminal)里。打开终端后,你会看到一个光标在闪烁,它等着你输入命令。每条命令通常长这样:
命令 参数1 参数2 ...
比如 ls -l /home 表示"以列表形式(-l)列出 /home 目录下的内容"。
文件与目录
linux 里"一切皆文件",理解目录结构是最优先的事。
pwd:打印当前所在目录(Print Working Directory)。当你不知道自己在哪时,先敲它。ls:列出当前目录内容。常用ls -l(详细列表)和ls -a(含隐藏文件,隐藏文件以.开头)。cd 目录:进入某个目录。cd ..回到上一级,cd ~回到家目录,cd -回到上一次所在目录。mkdir 名字:新建目录(Make Directory)。加-p可一次性创建多级目录,如mkdir -p a/b/c。touch 文件名:新建一个空文件,或更新已有文件的时间戳。cp 源 目标:复制文件或目录(复制目录需加-r,表示递归)。mv 源 目标:移动文件,也常用来重命名(比如mv old.txt new.txt)。rm 文件:删除文件。删除目录需加-r;rm -rf 目录会强制递归删除且不询问。
查看与编辑文件
cat 文件:一次性把文件内容全部打印到屏幕上,适合短文件。less 文件:分页查看文件,适合长文件。用空格翻页,q退出。head -n 10 文件/tail -n 10 文件:只看文件开头 / 结尾的若干行。tail -f 文件还能实时跟踪文件新增内容,看日志时非常有用。- 编辑文件可以用我们之前讲过的
Vim(输入vim 文件名即可),或者更简单的nano(对新手友好,界面底部有操作提示)。
权限
linux 是个多用户系统,每个文件和目录都有"谁能看、谁能改、谁能执行"的权限。
用 ls -l 看到的最左边一串字符,形如 drwxr-xr-x 或 -rw-r--r--,就描述了权限。简单理解:
- 第一位
d表示目录,-表示普通文件; - 后面九位分成三组,分别是"文件拥有者 / 同组用户 / 其他所有人"的权限,
r读、w写、x执行。
修改权限常用 chmod,例如:
chmod +x script.sh # 给所有人添加执行权限
chmod 755 script.sh # 用数字表示:拥有者可读写执行,其他人可读执行
一般情况下你不需要深究权限位的计算,记住"想让脚本能跑就 chmod +x“就够了。
安装软件
在 linux 上装软件,通常不用去浏览器下载安装包,而是用"包管理器"一行命令搞定。不同发行版命令不同:
- Debian / Ubuntu 系:
sudo apt update更新软件源,然后sudo apt install 软件名。 - CentOS / Rocky 系:
sudo yum install 软件名或sudo dnf install 软件名。 - Arch 系:
sudo pacman -S 软件名。
sudo 表示"以管理员(root)身份执行”,涉及系统级改动时都需要它,使用前要输入你的密码,并且也需要你有 sudo 权限才能执行。
进程与后台
ps aux:查看当前运行的进程列表。配合管道ps aux | grep 进程名可过滤出你关心的进程。top/htop/btop:实时查看系统资源占用(CPU、内存)和进程,按q退出。kill 进程号:结束某个进程。强制结束用kill -9 进程号。
其他命令
clear:清屏(快捷键ctrl+l)。echo 文本:把文本打印出来,常用来查看变量,如echo $PATH。wget 网址/curl 网址:从网络下载文件或请求接口。find 路径 -name "文件名":在目录里按名字找文件。不过对于查找更推荐使用locate指令,locate会时先做一个索引,查询速度比find快很多。|(管道):把前一个命令的输出,作为后一个命令的输入,例如ls -l | grep log只显示含 “log” 的行。>/>>:重定向输出,把命令结果写进文件。>覆盖,>>追加。
