每次看到黑乎乎的终端窗口就头大?尤其是费劲巴拉安装了linux 虚拟机,不知道怎么查看软件的user guide,对面答复了我一句,是不是没用过linux,所以啊,得赶紧学!
其实 Linux 命令没那么可怕。本文按"从打开终端到能干活"的顺序,挑出最常用、最该先学的 15 个命令,配真实示例,新手照着敲就能懂。建议先收藏,再跟着练一遍。
一、先认识一下"终端"
终端(Terminal)就是一个让你用文字而不是鼠标来操作电脑的窗口。你输入一行命令,系统就执行一个动作。
绝大多数命令都长这样:
命令[选项][参数]# 例: ls -l /home → 命令ls + 选项-l + 参数/home
几个必须知道的路径符号:
| |
|---|
| ~ | 当前用户的"家目录",比如 /home/yourname |
| . | |
| .. | |
| / | |
二、文件与目录操作(最高频)
1. pwd — 我在哪
pwd 命令来自英文词组 print working directory 的缩写,其功能是显示当前工作目录的路径,即显示所在位置的绝对路径。在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,可以使用 pwd命令快速查看当前所处的工作目录路径,方便开展后续工作。打印当前所在目录的完整路径,迷路时第一反应就是它。
$ pwd/home/yourname/projects
2. ls — 看这里有什么
默认不添加任何参数的情况下,ls 命令会列出当前工作目录中的文件信息,常与 cd 或 pwd命令搭配使用,十分方便。
列出目录内容。常用搭配:
$ ls # 简略列表$ ls -l # 详细信息(权限/大小/时间)$ ls -a # 连隐藏文件(.开头)一起看$ ls -lh # 大小用 K/M/G 显示,更友好
3. cd — 去哪里
这是一个非常常见的命令,这里不多说啦。
$ cd projects # 进入当前目录下的 projects$ cd .. # 回到上一级$ cd ~ # 回到家目录$ cd /var/log # 用绝对路径直达
4. mkdir — 建文件夹
mkdir 命令来自英文词组 make directories 的缩写,其功能是创建目录文件。该命令的使用简单,但需要注意,若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。若目录不存在,但具有嵌套的依赖关系时,例如/Dir1/Dir2/Dir3/Dir4/Dir5,要想一次性创建则需要加入-p 参数,进行递归操作。
$ mkdir demo # 新建一个文件夹$ mkdir -p a/b/c # 一口气建多层目录
5. touch — 建空文件
$ touch note.txt # 新建一个空文件(或更新已有文件时间)
6. cp — 复制
cp 命令来自英文单词 copy 的缩写,中文译为“复制”,其功能是复制文件或目录。cp 命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r 参数用于递归操作,复制目录时若忘记添加则会直接报错;-f 参数则用于当目标文件已存在时会直接覆盖而不再询问。这两个参数尤为常用。
$ cp a.txt b.txt # 复制成新文件$ cp -r dir1 dir2 # -r 递归复制整个文件夹
7. mv — 移动 / 重命名
mv 命令来自英文单词 move 的缩写,中文译为“移动”,其功能与英文含义相同,能够对文件进行剪切和重命名操作。
$ mv old.txt new.txt # 重命名$ mv file.txt ~/backup # 移动文件
8. rm — 删除(危险!)
rm 也是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意。例如,执行 rm -rf /*命令会清空系统中所有的文件,甚至无法恢复回来。所以我们在执行之前一定要再次确认在在哪个目录中、到底要删除什么文件,考虑好后再敲击 Enter 键,要时刻保持清醒的头脑。
$ rm file.txt # 删除文件$ rm -r folder # 删除文件夹$ rm -rf folder # 强制递归删除,无法恢复!慎用
警告:Linux 没有"回收站",rm 删了就是真没了。删重要东西前,先 ls 确认路径,或加 -i 让系统每次询问。
三、查看文件内容
9. cat — 一口气看完
cat 命令来自英文词组 concatenate files and print 的缩写,其功能是在终端设备上显示文件内容。在 Linux 系统中有很多用于查看文件内容的命令,例如 more、tail、head 等,每个命令都有各自的特点。cat 命令适合查看内容较少的纯文本文件。 对于内容较多的文件,使用 cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按 Ctrl+C 组合键中断命令执行,所以对于大文件,干脆用 more 命令显示吧。
$ cat config.txt # 把整个文件内容打印出来
10. less / more — 分页看
more 命令的功能是分页显示文本文件的内容。如果文本文件中的内容较多较长,使用 cat命令读取后则很难看清,这时使用 more 命令进行分页查看就比较合适了,该命令可以把文本内容一页一页地显示在终端界面上,用户每按一次 Enter 键即向下一行,每按一次空格键即向下一页,直至看完为止。
文件太长用 cat 会刷屏,用 less 可以翻页(空格翻页,q 退出)。
less 命令的功能是分页显示文件内容。Less 命令分页显示的功能与 more 命令很相像,但more 命令只能从前向后浏览文件内容,而 less 命令不仅能从前向后浏览(按 PageDown 键),还可以从后向前浏览(按 PageUp 键),更加灵活。
$ less bigfile.log
11. head / tail — 看头看尾
head 命令的功能是显示文件开头的内容,默认为前 10 行。
tail 命令的功能是查看文件尾部内容,例如默认会在终端界面上显示指定文件的末尾 10行,如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。
$ head -n 20 log.txt # 看前 20 行$ tail -n 20 log.txt # 看最后 20 行$ tail -f log.txt # 实时跟踪日志(排错神器)
12. grep — 搜索文本
grep 命令来自英文词组 global search regular expression and print out the line 的缩写,意思是用于全面搜索的正则表达式,并将结果输出。
$ grep "error" app.log # 找出含 error 的行$ grep -rn "TODO" src/ # 递归搜索目录下所有文件
四、系统状态与权限
13. top / htop — 进程监控
实时看 CPU、内存占用和正在跑的进程(htop 更友好但需额外安装)。
$ top # q 退出
14. df / du — 磁盘占用
df 命令来自英文词组 report file system disk space usage 的缩写,其功能是显示系统上磁盘空间的使用量情况。df 命令显示的磁盘使用量情况含可用、已用及使用率等信息,默认单位为 KB,建议使用-h 参数进行单位换算,毕竟 135MB 比 138240KB 更利于阅读。
$ df -h # 各分区剩余空间$ du -sh folder # 某个文件夹占多大
15. chmod / chown / sudo — 权限
chmod 命令来自英文词组 change mode 的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。
$ chmod +x run.sh # 给脚本加可执行权限$ sudo apt update # sudo = 以管理员身份执行
权限分"读 r / 写 w / 执行 x"三类,对应" owner / 同组 / 其他人"三组。sudo 威力很大,要清楚自己在执行什么。
五、文件目录
Linux的目录结构是一个树型结构 Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘 Linux 没有盘符 这个概念, 只有一个根目录 /, 所有文件都在它下面。需要注意一下的是Linux 操作系统中只有一个根目录,而 Windows 操作系统中每个分区都有一个根目录,这点需要加以区别。
目录 | 作用 |
|---|
/bin | 二进制命令所在的目录(普通命令 => 普通用户lanson和超级管理员root) |
/boot | 系统引导程序所需要的文件目录,相当于Windows中的C盘 |
/dev | 设备软件目录,磁盘,光驱 => /dev/sr0 |
/etc | 系统配置,启动程序 |
/home | 普通用户的家,目录默认数据存放目录 |
/lib | 共享库文件和内核模块存放目录,软件安装、运行依赖库文件.a、.so文件 |
/mnt | 临时挂载储存设备的挂载点,插入u盘、移动硬盘 => 先挂载 => /mnt中访问 |
/opt | 额外的应用软件包, 安装qq、游戏、wps办公软件 |
/proc | 操作系统运行时,进程信息和内核信息存放在这里 |
/root | Linux超级权限用户root的家目录 |
/sbin | 和管理系统相关的命令,【超级管理员用】,s = super超级 |
/tmp | 临时文件目录,这个目录被当作回收站使用 |
/usr | 用户或系统软件应用程序目录,类似Windows中的Program files |
/boot:此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录, 如vmlinuz 和 initrd.img。在安装 Linux 操作系统时,为 boot 目录创建一个分区, 有利于对系统进行备份。
/bin:bin 是 binary 的缩写。这一目录存放了所有用户都可执行的且经常使用的命令,如 cp、ls 等。
/dev:此目录保存了接口设备文件,如/dev/hda1、/dev/cdrom 等。
/etc:系统主要的配置文件几乎都放置到这个目录内,例如人员的账号密码文件、各种服务的起始文件等。
/home:存放所有普通系统用户的默认工作文件夹(即宿主目录、家目录),如用户账号“teacher”对应的宿主目录位于“/home/teacher/”。如果服务器需要提供给大量的普通用户使用,建议将“/home”目录也划分为独立的分区,以方便用户数据的备份。
/root:该目录是 Linux 操作系统管理员(超级用户)root 的宿主目录,默认情况下只有 root 用户的宿主目录在根目录下而不是在“/home”目录下。
/sbin:存放 Linux 操作系统中最基本的管理命令,一般管理员用户才有权限执行。
/usr:存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序。
/var:存放系统中经常需要变化的一些文件,如系统日志文件、用户邮箱目录等, 在实际应用系统中,“/var”目录通常也被划分为独立的分区。
