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
的缩写,用于切换当前工作目录。
cd 命令效果
2.3 cat
cat
是英文 concatenate and print files 的缩写,用于连接文件并且打印输出到控制台。
(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 系统上实践操作。