全栈手账 订阅 RSS

Linux 命令知识总结与面试题

Linux 常用命令的分类速查手册,涵盖文件与目录操作、用户权限、进程管理、网络排查、文本处理与系统监控,每条命令附典型用法,适合作为服务器日常运维的案头参考。

读了 15 分钟 更新于 10 月 19 日

一、Linux 基础概念

1. 什么是 Linux?

  • 开源的类 Unix 操作系统内核
  • 由 Linus Torvalds 于 1991 年创建
  • 广泛应用于服务器、嵌入式系统、超级计算机

2. Linux 文件系统结构

文本
/                    # 根目录├── bin/             # 基本命令二进制文件├── etc/             # 系统配置文件├── home/            # 用户主目录├── lib/             # 共享库文件├── proc/            # 虚拟文件系统,存储进程信息├── root/            # root 用户主目录├── sbin/            # 系统管理命令├── tmp/             # 临时文件├── usr/             # 用户程序和数据└── var/             # 可变数据(日志、缓存等)

3. 命令格式

bash
command [options] [arguments]

二、文件与目录操作

1. 目录操作命令

命令 功能 示例
pwd 显示当前目录 pwd
cd 切换目录 cd /home/user
ls 列出目录内容 ls -l(详细信息)
mkdir 创建目录 mkdir -p dir1/dir2(递归创建)
rmdir 删除空目录 rmdir dir

2. 文件操作命令

命令 功能 示例
touch 创建空文件 touch file.txt
cp 复制文件/目录 cp -r src dest
mv 移动/重命名 mv old.txt new.txt
rm 删除文件/目录 rm -rf dir(强制递归删除)
ln 创建链接 ln -s target link(软链接)

3. 文件查看命令

命令 功能 示例
cat 查看文件内容 cat file.txt
more 分页查看 more file.txt
less 交互式分页查看 less file.txt
head 查看文件头部 head -n 10 file.txt
tail 查看文件尾部 tail -n 10 file.txt
tail -f 实时查看日志 tail -f /var/log/messages

三、用户与权限管理

1. 用户管理命令

命令 功能 示例
useradd 创建用户 useradd -m user
userdel 删除用户 userdel -r user
usermod 修改用户 usermod -g group user
passwd 设置密码 passwd user
su 切换用户 su - root
whoami 显示当前用户 whoami
id 显示用户信息 id user

2. 组管理命令

命令 功能 示例
groupadd 创建组 groupadd group
groupdel 删除组 groupdel group
groupmod 修改组 groupmod -n newname oldname

3. 权限管理

权限表示法

文本
-rwxr-xr--  1 user group  1024 Jun  1 10:00 file.txt└─┬─┴─┬─┴─┬─┘  │   │   └─ 其他用户权限  │   └─ 组用户权限  └─ 文件所有者权限

权限数字表示

权限 数字 说明
r(读) 4 读取文件内容
w(写) 2 修改文件内容
x(执行) 1 执行文件

权限命令

命令 功能 示例
chmod 修改权限 chmod 755 file.txt
chown 修改所有者 chown user:group file.txt
chgrp 修改组 chgrp group file.txt

四、进程管理

1. 进程查看命令

命令 功能 示例
ps 查看进程快照 ps aux
top 实时查看进程 top
htop 交互式进程查看 htop
pgrep 根据名称查找进程 pgrep nginx

2. 进程控制命令

命令 功能 示例
kill 终止进程 kill -9 pid
killall 终止同名进程 killall nginx
pkill 根据条件终止进程 pkill -f nginx
nohup 后台运行命令 nohup command &
jobs 查看后台任务 jobs
fg 后台任务调前台 fg %1
bg 前台任务调后台 bg %1

五、网络管理

1. 网络配置命令

命令 功能 示例
ifconfig 查看/配置网络接口 ifconfig eth0
ip 查看/配置网络接口 ip addr show
ping 测试网络连通性 ping example.com
traceroute 追踪路由 traceroute example.com
netstat 查看网络连接 netstat -tuln
ss 查看网络连接(替代 netstat) ss -tuln
curl HTTP 请求 curl http://example.com
wget 下载文件 wget http://example.com/file.tar.gz

2. 端口扫描

bash
# 查看端口占用lsof -i :80netstat -tuln | grep 80# 扫描端口nmap example.com

六、文本处理

1. 文本搜索命令

命令 功能 示例
grep 文本搜索 grep "pattern" file.txt
grep -r 递归搜索 grep -r "pattern" /path
grep -v 反向匹配 grep -v "pattern" file.txt
grep -i 忽略大小写 grep -i "pattern" file.txt

2. 文本处理命令

命令 功能 示例
sed 流式编辑 sed 's/old/new/g' file.txt
awk 文本分析 awk '{print $1}' file.txt
cut 截取字段 cut -d: -f1 /etc/passwd
sort 排序 sort -n file.txt
uniq 去重 `sort file.txt
wc 统计行数/字数 wc -l file.txt

3. 正则表达式基础

元字符 含义
. 匹配任意单个字符
* 匹配前面字符零次或多次
+ 匹配前面字符一次或多次
? 匹配前面字符零次或一次
^ 匹配行首
$ 匹配行尾
[] 匹配括号内任意字符
[^] 匹配不在括号内的字符

七、系统管理

1. 系统信息命令

命令 功能 示例
uname 查看系统信息 uname -a
hostname 查看主机名 hostname
date 显示日期时间 date
cal 显示日历 cal
uptime 显示系统运行时间 uptime
free 查看内存使用 free -h
df 查看磁盘使用 df -h
du 查看目录大小 du -sh /path

2. 系统日志

bash
# 查看系统日志cat /var/log/messagescat /var/log/syslog# 查看认证日志cat /var/log/auth.log# 查看最近日志tail -f /var/log/messages

3. 压缩与解压

命令 功能 示例
tar 打包/压缩 tar -czvf file.tar.gz /path
tar -x 解压 tar -xzvf file.tar.gz
zip ZIP 压缩 zip file.zip /path
unzip ZIP 解压 unzip file.zip
gzip GZIP 压缩 gzip file.txt
gunzip GZIP 解压 gunzip file.txt.gz

八、文件查找

1. find 命令

bash
# 查找文件find /path -name "*.txt"# 根据大小查找find /path -size +100M# 根据修改时间查找find /path -mtime -7# 查找并执行命令find /path -name "*.log" -exec rm {} \;

2. locate 命令

bash
# 更新数据库updatedb# 查找文件locate file.txt

九、Shell 基础

1. Shell 类型

  • Bash:默认 shell
  • Zsh:功能更强大的 shell
  • Fish:友好的交互式 shell

2. 环境变量

bash
# 查看环境变量echo $PATHenv# 设置环境变量export PATH=$PATH:/new/path# 永久设置(写入 ~/.bashrc)echo 'export PATH=$PATH:/new/path' >> ~/.bashrcsource ~/.bashrc

3. 命令别名

bash
# 设置别名alias ll='ls -la'# 永久设置(写入 ~/.bashrc)echo 'alias ll="ls -la"' >> ~/.bashrc

十、常见面试题

基础概念

Q1:Linux 和 Windows 的主要区别?

  • Linux 是开源的,Windows 是闭源的
  • Linux 主要用于服务器,Windows 主要用于桌面
  • Linux 文件系统是树形结构,Windows 有驱动器概念
  • Linux 使用命令行管理,Windows 以图形界面为主

Q2:什么是 Shell?常见的 Shell 有哪些?

  • Shell 是用户与 Linux 内核交互的接口
  • 常见:Bash、Zsh、Fish、Sh

Q3:Linux 文件权限有哪几种?如何表示?

  • 三种权限:读(r)、写(w)、执行(x)
  • 数字表示:r=4, w=2, x=1
  • 示例:755 = rwxr-xr-x

文件操作

Q4:如何查看文件内容?有哪些命令?

  • cat:直接显示
  • less:分页查看
  • head/tail:查看头部/尾部
  • more:分页查看

Q5:如何查找文件?

  • find:实时查找,功能强大
  • locate:基于数据库,速度快

Q6:软链接和硬链接的区别?

  • 软链接:指向原文件的路径,类似快捷方式
  • 硬链接:指向原文件的 inode,删除原文件仍可访问
  • 软链接可以跨文件系统,硬链接不可以

用户与权限

Q7:如何创建用户?如何设置密码?

  • useradd 创建用户
  • passwd 设置密码

Q8:什么是 SUID、SGID、Sticky Bit?

  • SUID:执行时获得文件所有者权限
  • SGID:执行时获得文件组权限
  • Sticky Bit:只有所有者可以删除文件

进程管理

Q9:如何查看进程?

  • ps:静态查看
  • top:实时查看
  • htop:交互式查看

Q10:如何终止进程?

  • kill pid:终止指定进程
  • kill -9 pid:强制终止
  • killall:终止同名进程

网络管理

Q11:如何查看网络连接?

  • netstat -tuln:查看监听端口
  • ss -tuln:更高效的替代

Q12:如何测试网络连通性?

  • ping:测试基本连通性
  • traceroute:追踪路由
  • curl:测试 HTTP 服务

文本处理

Q13:如何统计文件行数?

  • wc -l file.txt

Q14:如何在文件中查找包含特定字符串的行?

  • grep "pattern" file.txt

Q15:如何替换文件中的字符串?

  • sed 's/old/new/g' file.txt

系统管理

Q16:如何查看磁盘使用情况?

  • df -h:查看磁盘分区
  • du -sh:查看目录大小

Q17:如何查看内存使用情况?

  • free -h

Q18:如何压缩和解压文件?

  • tar -czvf 压缩
  • tar -xzvf 解压

进阶问题

Q19:什么是管道(Pipe)?如何使用?

  • 将一个命令的输出作为另一个命令的输入
  • 示例:cat file.txt | grep "pattern" | sort

Q20:什么是重定向?有哪些类型?

  • >:覆盖输出
  • >>:追加输出
  • <:输入重定向
  • 2>:错误输出重定向

十一、常用快捷键

快捷键 功能
Ctrl+C 终止当前命令
Ctrl+D 退出当前 shell
Ctrl+Z 暂停当前命令
Ctrl+A 移动到行首
Ctrl+E 移动到行尾
Ctrl+L 清屏
Tab 自动补全
↑/↓ 历史命令

十二、总结

Linux 是服务器运维和开发的必备技能,掌握常用命令、文件系统、权限管理、进程管理和网络管理是基础。通过实践和积累,可以高效地管理 Linux 系统。

前端、后端、部署、客服都是我一个人。写这里的东西都是真踩过的坑,不是抄来的教程。