面试中Linux常用基础命令

1. 文件和目录操作

  • ls:列出目录内容。
    • 例如:ls -l 列出详细信息,ls -a 列出包括隐藏文件的内容。
  • cd:切换目录。
    • 例如:cd /home/user 切换到 /home/user 目录。
  • pwd:显示当前工作目录。
  • mkdir:创建目录。
    • 例如:mkdir newdir 创建一个名为 newdir 的目录。
  • rmdir:删除空目录。
  • rm:删除文件或目录。
    • 例如:rm -r dir 递归删除目录及其内容。
  • cp:复制文件或目录。
    • 例如:cp file1 file2file1 复制到 file2
  • mv:移动或重命名文件或目录。
    • 例如:mv file1 file2 重命名 file1file2,或者将 file1 移动到指定目录。

2. 文件内容查看与处理

  • cat:显示文件内容。
    • 例如:cat file.txt 显示 file.txt 的内容。
  • more:分页显示文件内容。
  • less:类似于 more,但支持上下滚动。
  • head:显示文件的前面几行。
    • 例如:head -n 10 file.txt 显示 file.txt 的前10行。
  • tail:显示文件的最后几行。
    • 例如:tail -n 10 file.txt 显示 file.txt 的最后10行。
  • grep:搜索文件内容。
    • 例如:grep "text" file.txtfile.txt 中查找包含 “text” 的行。
  • sed:流编辑器,用于处理文件的文本替换。
    • 例如:sed 's/old/new/g' file.txtfile.txt 中的 “old” 替换为 “new”。
  • awk:用于处理和分析文本文件的内容,常用于按列处理数据。
    • 例如:awk '{print $1}' file.txt 打印 file.txt 中的第一列。

3. 系统信息和资源监控

  • top:显示当前系统的进程及资源使用情况。
  • htoptop 命令的增强版,提供更直观的交互界面。
  • ps:列出当前正在运行的进程。
    • 例如:ps aux 列出所有进程。
  • free:查看内存使用情况。
    • 例如:free -h 以人类可读的方式显示内存使用情况。
  • df:查看磁盘空间使用情况。
    • 例如:df -h 以人类可读的方式显示磁盘使用情况。
  • du:查看目录或文件的磁盘使用情况。
    • 例如:du -sh /home/user 查看 /home/user 目录的磁盘使用情况。
  • uptime:显示系统的运行时间和负载情况。

4. 网络相关命令

  • ping:测试网络连接。
    • 例如:ping google.com 测试与 Google 的网络连接。
  • ifconfig:显示或配置网络接口(旧版命令,已被 ip 命令取代)。
  • ip:显示或配置网络接口、路由等。
    • 例如:ip addr show 显示所有网络接口信息。
  • netstat:显示网络连接、路由表等信息。
  • ss:类似于 netstat,但更现代高效。
  • traceroute:追踪数据包经过的路由路径。
  • wget:从网络上下载文件。
    • 例如:wget http://example.com/file 下载文件。

5. 文件权限管理

  • chmod:改变文件或目录的权限。
    • 例如:chmod 755 file 设置文件权限为 rwxr-xr-x
  • chown:改变文件或目录的所有者。
    • 例如:chown user:group file 改变文件的所有者和所属组。
  • chgrp:改变文件的组所有权。
    • 例如:chgrp group file 改变文件的所属组。

6. 用户管理

  • useradd:添加新用户。
    • 例如:useradd newuser 创建一个新用户 newuser
  • usermod:修改用户信息。
    • 例如:usermod -aG sudo user 将用户 user 添加到 sudo 组。
  • userdel:删除用户。
    • 例如:userdel -r user 删除用户 user 及其主目录。
  • passwd:修改用户密码。
    • 例如:passwd user 修改用户 user 的密码。

7. 进程管理

  • kill:终止进程。
    • 例如:kill -9 PID 终止指定进程。
  • killall:根据进程名称终止进程。
    • 例如:killall process_name 终止所有 process_name 进程。
  • nohup:在后台运行进程,即使用户注销后进程也会继续运行。
    • 例如:nohup command &command 放到后台运行。

8. 文件查找

  • find:查找文件。
    • 例如:find /home -name "*.txt"/home 目录下查找所有 .txt 文件。
  • locate:快速查找文件(需要更新数据库)。
    • 例如:locate file.txt 查找名为 file.txt 的文件。
  • which:查看命令的位置。
    • 例如:which python 显示 python 命令的完整路径。

9. 压缩与解压

  • tar:打包和解包文件。
    • 例如:tar -czvf file.tar.gz /path/to/dir 压缩文件夹为 .tar.gz 格式。
    • 例如:tar -xzvf file.tar.gz 解压 .tar.gz 文件。
  • zip:压缩文件。
    • 例如:zip file.zip file1 file2file1file2 压缩为 file.zip
  • unzip:解压 .zip 文件。
    • 例如:unzip file.zip 解压 file.zip

10. 包管理

  • apt (Debian/Ubuntu):用于安装、更新、删除软件包。
    • 例如:sudo apt install package 安装软件包。
  • yum (CentOS/RHEL):用于安装、更新、删除软件包。
    • 例如:sudo yum install package 安装软件包。
  • dnf (Fedora):用于安装、更新、删除软件包。
    • 例如:sudo dnf install package 安装软件包。

11. 文件系统操作

  • mount:挂载文件系统。
    • 例如:mount /dev/sdb1 /mnt/dev/sdb1 挂载到 /mnt 目录。
  • umount:卸载文件系统。
    • 例如:umount /mnt 卸载 /mnt 目录上的文件系统。
  • fsck:检查和修复文件系统。
    • 例如:fsck /dev/sdb1 检查并修复 sdb1 上的文件系统。
  • tune2fs:调整 ext2/ext3/ext4 文件系统的参数。
    • 例如:tune2fs -l /dev/sda1 显示文件系统的详细信息。

12. 磁盘管理

  • fdisk:磁盘分区工具。
    • 例如:fdisk /dev/sda 对磁盘 /dev/sda 进行分区。
  • parted:用于创建、删除、修改磁盘分区的工具。
    • 例如:parted /dev/sda 启动分区管理工具。
  • mkfs:格式化文件系统。
    • 例如:mkfs.ext4 /dev/sda1/dev/sda1 格式化为 ext4 文件系统。
  • lsblk:列出块设备信息。
    • 例如:lsblk 显示系统的磁盘及分区信息。
  • blkid:查看设备的 UUID 和文件系统类型。
    • 例如:blkid /dev/sda1 显示 /dev/sda1 的 UUID 和文件系统类型。

13. 日志管理

  • dmesg:查看内核环缓冲区的消息,通常用于查看硬件信息和内核日志。
  • journalctl:查看系统日志(针对使用 systemd 的系统)。
    • 例如:journalctl -xe 查看系统日志中的错误信息。
  • tail -f:实时查看日志文件内容。
    • 例如:tail -f /var/log/syslog 实时查看系统日志。
  • logger:将消息添加到系统日志。
    • 例如:logger "This is a test message" 向系统日志添加一条消息。

14. 定时任务

  • crontab:配置定时任务。
    • 例如:crontab -e 编辑当前用户的定时任务。
    • 定时任务格式:* * * * * /path/to/command(分钟、小时、日、月、星期、命令)。
  • at:运行定时任务一次。
    • 例如:echo "backup.sh" | at 10:00 在10:00执行 backup.sh 脚本。

15. 环境变量和配置

  • export:设置环境变量。
    • 例如:export PATH=$PATH:/usr/local/bin/usr/local/bin 添加到 PATH 环境变量中。
  • env:显示当前的环境变量。
    • 例如:env 显示所有环境变量。
  • alias:创建命令别名。
    • 例如:alias ll='ls -l' 创建 ll 的别名,等价于 ls -l
  • source:重新加载配置文件。
    • 例如:source ~/.bashrc 重新加载用户的 .bashrc 文件。

16. 文件和目录查找

  • locate:通过更新的数据库查找文件。
    • 例如:locate filename 查找名为 filename 的文件。
  • updatedb:更新 locate 数据库。
    • 例如:updatedb 更新文件数据库。
  • find:根据条件查找文件。
    • 例如:find /home -name "*.log"/home 目录下查找 .log 文件。
  • xargs:将标准输入转换为命令行参数。
    • 例如:find . -name "*.txt" | xargs wc -l 查找所有 .txt 文件并统计行数。

17. 文本处理和编辑

  • cut:按列分割文本文件。
    • 例如:cut -d ',' -f 1 file.csv 从 CSV 文件中提取第一列。
  • sort:排序文件内容。
    • 例如:sort file.txt 将文件 file.txt 排序。
  • uniq:去重文件中的重复行。
    • 例如:sort file.txt | uniq 将文件 file.txt 排序并去除重复行。
  • tr:替换字符。
    • 例如:echo "abc" | tr 'a' 'z'abc 中的 a 替换为 z
  • tee:读取标准输入并将其内容输出到文件。
    • 例如:echo "Hello" | tee file.txt 将 “Hello” 写入文件 file.txt 并输出到屏幕。

18. 远程操作和管理

  • ssh:远程登录到另一台计算机。
    • 例如:ssh user@hostname 通过 SSH 协议连接到 hostname 主机。
  • scp:安全复制文件。
    • 例如:scp file.txt user@hostname:/path/to/destination 将文件复制到远程主机。
  • rsync:用于同步文件和目录。
    • 例如:rsync -av source/ destination/ 同步目录。
  • sftp:安全的文件传输协议。
    • 例如:sftp user@hostname 与远程主机建立 SFTP 连接。

19. 系统启动与关机

  • reboot:重新启动系统。
  • shutdown:关闭系统。
    • 例如:shutdown -h now 立即关机。
  • halt:立即停止系统。
  • init:改变系统的运行级别(用于 SysVinit 系统)。
    • 例如:init 0 关机,init 6 重启。

20. 安装与包管理

  • Debian/Ubuntu 系统:

    • apt-get:包管理命令。
      • 例如:sudo apt-get install package 安装软件包。
      • sudo apt-get update 更新包列表。
      • sudo apt-get upgrade 升级已安装的软件包。
      • sudo apt-get remove package 卸载软件包。
  • CentOS/RHEL 系统:

    • yum:包管理工具。
      • 例如:sudo yum install package 安装软件包。
      • sudo yum update 更新所有安装的包。
      • sudo yum remove package 卸载包。
  • Fedora 系统:

    • dnf:包管理工具。
      • 例如:sudo dnf install package 安装软件包。
      • sudo dnf update 更新所有安装的包。
      • sudo dnf remove package 卸载软件包。

21. 磁盘和文件系统性能

  • iostat:查看磁盘 I/O 性能。
    • 例如:iostat -x 显示详细的磁盘 I/O 性能数据。
  • vmstat:查看虚拟内存的使用情况。
    • 例如:vmstat 1 每秒钟显示一次虚拟内存的状态。
  • sar:收集、报告和保存系统活动信息。
    • 例如:sar -u 1 3 显示 CPU 使用情况,每秒更新一次,3 次。

22. 系统备份

  • tar:压缩和打包文件。
    • 例如:tar -czvf backup.tar.gz /path/to/dir 打包并压缩目录为 .tar.gz 文件。
  • rsync:备份和同步文件。
    • 例如:rsync -av /path/to/dir /backup/dir 将文件同步到备份目录。

23. 安全管理

  • iptables:设置防火墙规则(基于 Linux 内核的包过滤工具)。
    • 例如:iptables -A INPUT -p tcp --dport 80 -j ACCEPT 允许通过 TCP 端口 80 的流量。
  • ufw:简单的防火墙配置工具(Ubuntu/Debian 系统)。
    • 例如:sudo ufw allow 80/tcp 允许 HTTP 端口流量。