1. 前言
Linux 是基于 Unix 系统开发的开源操作系统内核,目前常见的发行版本 Ubuntu、RedHat、CentOS 等,互联网服务器一般都部署的是 Linux 系统。因为使用场景不同,Windows 系统更适合个人日常办公,相对于 Windows 系统的复杂图形化界面而言,Linux 一般只在远程服务器上部署纯命令行界面,所以熟悉 Linux 系统的常用命令比较重要。
2. Linux 常用命令
面试官提问: Linux 系统的常用操作命令能枚举一下吗?
题目解析:
这是一道偏实战的题目,面试官的本意是考察候选人对于 Linux 系统实际操作的经验,可以从列举出一些常用的 Linux 命令并且给出使用案例。
2.1 ls
ls
是英文 List 的缩写,会枚举出当前工作目录的所有文件。
2.2 cd
cd
是英文 change directory
的缩写,用于切换当前工作目录。
(1)cd
+ 目录,进入到该目录。
(2)cd
+ ~
,进入 Home 目录。
(3)cd
+ ..
,返回到上一个目录。
2.3 cat
cat
是英文 concatenate and print files 的缩写,用于连接文件并且打印输出到控制台。
(1)cat
+ 文件名,打印输出文件内容。
(2)cat
+ 文件名 1 + >
+ 文件名 2,将文件 1 的内容输出到文件 2 中。
2.4 grep
grep
是英文 Global Regular Expression Print(全局正则表达式匹配打印) 的缩写,是一个常用的文本搜索工具,使用正则表达式匹配规则,然后输出匹配结果。
(1)例如 netstat -ntlp
命令会在控制台输出当前所有的 TCP 端口使用情况,那么配合 grep
使用可以单独提炼出需要的端口。netstat -ntulp | grep 3306
用于单独查看 3306 TCP 端口的使用情况。
(2)例如 cat
+ 文件名输出文件内容之后,查询文件指定内容。
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 地址的机器是否联通。
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 系统上实践操作。