C++面试题:Linux常用指令详解
一、文件与目录操作
1. ls - 列出目录内容
ls # 列出当前目录内容
ls -l # 详细列表(权限、大小、时间等)
ls -a # 列出所有文件(包括隐藏文件)
ls -lh # 人性化显示文件大小
2. cd - 切换目录
cd /path/to/dir # 切换到指定目录
cd ~ # 切换到用户主目录
cd .. # 切换到上一级目录
3. pwd - 显示当前工作目录
pwd # 输出当前路径
4. mkdir - 创建目录
mkdir dir_name # 创建新目录
mkdir -p dir1/dir2 # 创建多级目录(-p 递归创建)
5. rm - 删除文件或目录
rm file # 删除文件
rm -r dir # 递归删除目录
rm -f file # 强制删除(不提示)
6. cp - 复制文件或目录
cp file1 file2 # 复制file1为file2
cp -r dir1 dir2 # 递归复制目录
7. mv - 移动或重命名文件
bash
编辑
mv file1 file2 # 重命名file1为file2
mv file1 dir # 将file1移动到dir目录
8. touch - 创建新文件或更新文件时间戳
bash
编辑
touch new_file # 创建新文件
touch file # 更新文件时间戳
二、文本处理
1. cat - 显示文件内容
bash
编辑
cat file # 显示文件内容
cat file1 file2 # 合并显示多个文件
2. more/less - 分页查看文件
bash
编辑
more file # 分页显示文件内容
less file # 更高级的分页查看(支持上下翻页)
3. grep - 文本搜索
bash
编辑
grep "pattern" file # 在文件中搜索模式
grep -r "pattern" dir # 递归搜索目录
grep -i "pattern" file # 忽略大小写
4. sed - 流编辑器
bash
编辑
sed 's/old/new/g' file # 替换文件中的文本
sed -i 's/old/new/g' file # 直接修改文件
5. awk - 文本处理工具
bash
编辑
awk '{print $1}' file # 打印文件第一列
awk -F',' '{print $1}' file # 指定分隔符
三、系统信息与进程管理
1. top - 实时查看系统进程
bash
编辑
top # 显示系统进程和资源使用情况
2. ps - 查看进程状态
bash
编辑
ps aux # 显示所有进程的详细信息
ps -ef # 显示所有进程的详细信息(BSD格式)
3. kill - 终止进程
bash
编辑
kill PID # 终止指定PID的进程
kill -9 PID # 强制终止进程
4. df - 查看磁盘空间
bash
编辑
df -h # 人性化显示磁盘空间
df -i # 查看inode使用情况
5. du - 查看目录大小
bash
编辑
du -sh dir # 查看目录大小(人性化)
du -h . # 查看当前目录大小
6. free - 查看内存使用情况
bash
编辑
free -h # 人性化显示内存使用情况
7. uname - 显示系统信息
bash
编辑
uname -a # 显示所有系统信息
uname -r # 显示内核版本
四、网络相关
1. ping - 测试网络连接
ping google.com # 测试与google.com的连接
ping -c 4 google.com # 发送4个数据包
2. netstat - 查看网络连接
netstat -tuln # 显示所有监听的端口
netstat -r # 显示路由表
3. ifconfig - 查看网络接口信息
ifconfig # 显示网络接口信息(有些系统需安装net-tools)
4. curl/wget - 下载文件
curl http://example.com # 下载网页内容
wget http://example.com # 下载文件
五、编译与调试
1. gcc - C/C++编译器
gcc file.c # 编译C文件
g++ file.cpp # 编译C++文件
g++ -o output file.cpp # 指定输出文件名
g++ -Wall -g file.cpp # 启用警告和调试信息
2. make - 构建项目
make # 根据Makefile构建项目
make clean # 清理构建文件
3. gdb - GNU调试器
gdb ./a.out # 启动gdb调试程序
gdb -c core ./a.out # 调试core文件
4. valgrind - 内存检查工具
valgrind --leak-check=full ./a.out # 检查内存泄漏
valgrind --tool=memcheck ./a.out # 内存检查
六、版本控制
1. git - 版本控制系统
git status # 查看状态
git add . # 添加所有更改
git commit -m "message" # 提交更改
git push # 推送到远程仓库
git pull # 从远程仓库拉取更新
七、面试金句
"在C++开发中,熟练使用Linux命令是必不可少的技能。从文件操作(ls、cd、cp、mv)到系统监控(top、ps、df),再到编译调试(gcc、make、gdb),这些命令能极大提高开发效率。特别是对于C++开发者,gdb和valgrind是调试内存问题的利器,make是管理大型项目的必备工具。掌握这些命令不仅能帮助你快速解决问题,还能展示你对Linux环境的熟悉程度,这对于C++开发岗位尤为重要。在实际工作中,我习惯使用grep快速查找代码,用top监控程序性能,用valgrind确保没有内存泄漏,这些工具大大提高了我的工作效率。"
八、面试技巧
- 不要死记硬背:面试官更关注你对命令的理解和使用场景,而不是命令的参数
- 结合实际经验:分享你在项目中如何使用这些命令解决实际问题
- 展示深度:可以简要说明命令的底层原理,如
grep如何实现快速搜索 - 区分版本:说明不同Linux发行版(如Ubuntu、CentOS)的差异
- 安全意识:提到
rm -rf等危险命令时,说明如何避免误操作
