面试题之常用Linux命令,后端程序员至少应该会用Linux

250 阅读7分钟

面试时,后端程序员经常会被问到常用的Linux命令,有些人可能会不解,我是后端程序员,为什么要掌握Linux命令,我只在Windows和Mac上开发不好吗。所以我们要先明确一点:后端程序员为什么要会用Linux?

0、为什么要会用Linux

Linux是什么

Linux 是世界上最流行的服务器操作系统,许多大型网站和移动应用都使用 Linux 来提供后端服务。

Linux的特点

  • 完全免费。任何人都可以从网络上下载Linux的源代码,并可以根据自己的需求进行定制化的开发,而且没有版权限制。
  • 多用户、多任务。多用户是指不同用户所具有的权限不同。不同的用户在这台服务器上进行的工作不一样。多任务指的是计算机能同时运行多个程序,且程序之间彼此独立,Linux内核负责调度每个进程。
  • 安全可靠,性能稳定。果拿Windows和Linux作对比,我并不认为Linux相对于Windows有更好的稳定性,事实上,Linux因为它的运维人员的专业性,会显得系统的稳定性更好。当然对于专业性人员来说,Linux这个使开发人员能完全掌控的操作系统更加稳定可靠。
  • 模块化。Linux的内核设计采用模块化思想。模块机制使得用户可以根据实际需要,在内核中插入或移走模块,这使得内核可以被高度的剪裁定制,以方便在不同的场景下使用。

在我个人看来,Linux对于开发人员最大的优势是:**开源、自有、定制化。**开发人员可以完全的掌控Linux,通过Linux严格的权限控制,也保持了系统的安全性。

后端程序员需要掌握什么?

  1. 了解Linux的一些基本概念。
  2. 熟悉Linux基本命令,文件操作命令,目录操作命令,压缩解压,进程管理。
  3. 了解shell编程,能编写简单的shell脚本。
  4. 熟悉vim的各种简单操作。

1、Linux常用命令

1. ls 命令

用于显示目录下的内容

# 常用
ls -l                    # 显示文件的详细信息
ls -a                    # 显示当前目录中的所有文件和目录,包括隐藏文件
ls -lh                   # 以人类可读的方式显示当前目录中的文件和目录大小
ls -l /etc/passwd        # 显示/etc/passwd文件的详细信息

重点参数说明:

  • -a 显示所有文件及目录(包括隐藏文件)
  • -l 显示文件的详细信息,包括权限、所有者、大小、创建时间等。
  • -t 将按照修改时间排序,最新的文件在最前面。

2. pwd 命令

用于显示工作目录

pwd
/usr/local/nacos

3. 对目录的操作

mkdir [-p] dirName # 新建目录
rmdir [-p] dirName # 删除目录
# 创建多级目录,举例 mkdir -p ./test/java
mkdir -p 多级目录

4. cd 命令

用于切换路径

cd 目录名     # 切换目录
cd ..        # 切换到上一级目录
cd /         # 切换至根目录
cd ~         # 切换至用户目录

5. touch命令

新建文件

touch file            #创建一个名为“file”的新的空白文件

6. rm命令

删除文件和目录

rm  test.txt     # 删除文件test.txt
rm  -r  test     # 删除目录test
rm  -rf test/    # 不管该目录下是否有子目录或文件,都直接删除
rm  -rf  *       # 强制删除目录下的所有内容

重点参数说明:

  • -i 删除前逐一确认。
  • -f 强制删除,无需逐一确认。
  • -r 从当前目录递归删除。

7. cp 命令

用于复制文件

cp file.txt /usr/local/     # 将文件 file.txt 复制到目录/usr/local/中
cp –r test/ /usr/local/test # 将当前目录test/下的所有文件复制到新目录est 下     

8. man命令

用于查看各种命令的手册。

man cat  # 查看cat命令手册
b        # 后一页
f        # 前一页
q        # 退出
/word    # 搜索 word 字符串

9. mv命令

用于为文件或目录改名,或者移动文件或目录。

mv test newTest    # 将test改名为newTest
mv test/ local/    # 将test目录移到local中,若不存在local目录,则为test改名
mv /usr/local/*  . # 将/usr/local下的所有文件和目录移到当前目录下

10. grep命令

用于查找文件里符合条件的字符串或正则表达式。

grep hello test.txt   # 从test.txt中查找hello字符串,并打印匹配的行
grep -r hello dir/    # 从目录里查找

重点参数说明:

  • -r 当指定要查找的是目录而非文件时,必须使用这项参数。
  • -n 标示出行号。
  • -i 忽略大小写。

11. find 命令

用于在指定目录下查找文件和目录。

find [path] [expression]
# path 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。
# expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。

实例

find . -name file.txt  # 查找当前目录下名为 file.txt 的文件
find . -name "*.txt"   # 将当前目录及其子目录下所有文件后缀为.txt的文件列出来

12. 压缩解压

tar命令:Linux 中最常用的备份工具,只负责打包文件,不负责压缩。tar 可将一系列文件打包成一个大文件,也可以将一个已打包的大文件恢复成一系列文件。

tar -cvf test.tar a b c   # 将a,b,c三个文件打包为test.tar
tar -xcv test.tar         # 解包 test.tar

以上是打包解包命令,并没有压缩解压

-z 选项即可实现压缩解压功能

tar -zcvf test.tar.gz a b c         # 打包压缩文件至当前目录
tar -zxvf test.tar.gz               # 解包解压文件至当前目录
tar -zxvf test.tar.gz -C usr/local/ # 解包解压文件至指定目录

重点参数说明:

  • -c 建立新的备份文件。
  • -v 显示指令执行过程。
  • -C 切换到指定的目录。
  • -f 指定文件。
  • -x 从备份文件中还原文件。
  • -z 通过gzip指令处理备份文件。

13. 安装软件

apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令

sudo apt update          # 查看可更新的包
sudo apt upgrade         # 升级安装包
sudo apt install         # 安装软件
sudo apt remove          # 卸载软件
apt search               # 查找包

14. 进程相关

ps命令用于显示当前进程的状态,类似于 windows 的任务管理器。

ps -ef | grep java    # 查找指定进程

重点参数:

  • -e 显示所有进程,等同于-A参数。
  • -f 显示进程的详细信息,包括进程的 PID、PPID、CPU 使用率、内存使用量等。

top 是一个在 Linux 上的实时系统监控工具。

top截图.png

kill 命令用于删除执行中的程序或工作。

最常用的信号是:

  • 1 :重新加载进程。
  • 9 :杀死一个进程。
  • 15:正常停止一个进程。
kill -9 PID  # 杀死PID进程

15. 网络相关

ifconfig命令用于显示机器上所有网卡的详细网络信息,包括ip地址,掩码,网卡接口名称,网关等。

ifconfig # 可用于查看ip地址

ip 命令比ifconfig命令更加强大

ip addr show  # 用来显示IP地址和网卡

netstat 命令用于显示网络状态。

netstat -a  # 显示详细的网络状况

常用参数:

  • -p 程序名称
  • -n 直接使用ip地址
  • -l 显示监听中的socket
  • -t 采用tcp协议
  • -u 采用udp协议

2、小结

Linux命令还有很多,不过作为后端开发工程师,掌握这么多常用命令已经足够了。同时,对vim的常用操作也应该有所了解,便于操作文件。还有对shell语法和编写应该有一定的涉猎,可以让我们读懂脚本以及自己编写脚本。