1. 前言

Linux 是基于 Unix 系统开发的开源操作系统内核,目前常见的发行版本 Ubuntu、RedHat、CentOS 等,互联网服务器一般都部署的是 Linux 系统。因为使用场景不同,Windows 系统更适合个人日常办公,相对于 Windows 系统的复杂图形化界面而言,Linux 一般只在远程服务器上部署纯命令行界面,所以熟悉 Linux 系统的常用命令比较重要。

2. Linux 常用命令

面试官提问: Linux 系统的常用操作命令能枚举一下吗?

题目解析:

这是一道偏实战的题目,面试官的本意是考察候选人对于 Linux 系统实际操作的经验,可以从列举出一些常用的 Linux 命令并且给出使用案例。

2.1 ls

ls 是英文 List 的缩写,会枚举出当前工作目录的所有文件。

图片描述

ls 命令效果

2.2 cd

cd 是英文 change directory 的缩写,用于切换当前工作目录。

(1)cd + 目录,进入到该目录。

(2)cd + ~,进入 Home 目录。

(3)cd + ..,返回到上一个目录。

图片描述

cd 命令效果

2.3 cat

cat 是英文 concatenate and print files 的缩写,用于连接文件并且打印输出到控制台。

(1)cat + 文件名,打印输出文件内容。

(2)cat + 文件名 1 + > + 文件名 2,将文件 1 的内容输出到文件 2 中。

图片描述

cat 命令效果

2.4 grep

grep 是英文 Global Regular Expression Print(全局正则表达式匹配打印) 的缩写,是一个常用的文本搜索工具,使用正则表达式匹配规则,然后输出匹配结果。

(1)例如 netstat -ntlp 命令会在控制台输出当前所有的 TCP 端口使用情况,那么配合 grep 使用可以单独提炼出需要的端口。netstat -ntulp | grep 3306 用于单独查看 3306 TCP 端口的使用情况。

(2)例如 cat + 文件名输出文件内容之后,查询文件指定内容。

图片描述

grep 命令查询 test.txt 文件中的 Hello 内容,输出存在 Hello 的行

2.5 mv & cp

mv 是英文 move 的缩写,mv 命令的作用是移动操作系统的文件。用法是 mv + 原始文件路径 + 目标文件路径。

cp 是英文 copy 的缩写,也是文件操作命令,作用是复制操作系统的文件。用法是 cp + 原始文件路径 + 目标文件路径。

最基础的案例如下:

(1)mv test.txt ./test.txt 将 test.txt 文件移动到上一层文件夹中。

(2)cp test.txt ./test.txt 将 test.txt 文件复制到上一层文件夹中。

2.6 Ping

ping 命令是操作系统中常用的网络命令,Windows 系统也可以执行 ping 操作,区别是 Linux 下的 ping 进程不会自动停止。

执行 ping 命令会使用 ICMP 网络协议,用来检测当前主机和目标主机是否联通。

(1)ping + 域名,最常用的是 ping www.baidu.com,百度服务器肯定不会宕机,如果连接失败,说明是本机网络存在故障。

(2)ping + IP 地址,检测指定 IP 地址的机器是否联通。

图片描述

ping 百度服务器,输出结果能看到连接的机器 IP 地址,以及网络请求响应时间

2.7 chmod

chomd 是英文 change mode 的缩写,用于改变文件的读写权限。

Linux 系统的文件调用权限分为三种:文件所有者(Owner)、组(Group)、其他用户(Other Users)。所有者一般是创建文件的用户,所有者可以让同组用户访问文件,以及改变文件对于其他用户的读写限制。

Linux 的文件权限管理很严格,每个文件和每个目录(目录本质上也是一个文件)都有读和写的权限限制,指定的用户有指定的权限访问指定的内容。

权限范围:u(user)表示文件的所有者;g(group)表示和文件所有者同一个组的用户;o(other)表示除当前用户的其他人;a(all)表示所有用户组的所有人。

操作范围:r(read)表示设置文件为可读权限;w(write)表示设置文件为可写权限;x(execute)表示设置文件为可执行权限。

一些常见案例如下:

(1)chmod a+x test.txt 表示设置 test.txt 文件对所有用户都开放了可执行权限。

(2)chmod a-x test.txt 表示设置 test.txt 文件对所有用户都关闭了可执行权限。

3. 小结

本章节介绍了几个最基础的 Linux 系统常见操作命令,除了上述命令之外,还有一些常用命令,例如 rmdir、find、sudo、top 命令等。候选人可以自行在 MacOS 系统或者 Ubuntu 系统上实践操作。