作为一个软件开发人员,必须要掌握的 Linux 命令行都有啥?

126 阅读3分钟

DeepSeek:v3: 作为一名软件开发人员,掌握 Linux 命令行是至关重要的,因为它在开发、调试、部署和系统管理中扮演着重要角色。以下是一些必须掌握的 Linux 命令行技能和工具:

1. 文件和目录操作

  • ls: 列出目录内容。
  • cd: 切换目录。
  • pwd: 显示当前工作目录。
  • mkdir: 创建目录。
  • rmdir: 删除空目录。
  • rm: 删除文件或目录。
  • cp: 复制文件或目录。
  • mv: 移动或重命名文件或目录。
  • touch: 创建空文件或更新文件时间戳。
  • find: 查找文件或目录。
  • chmod: 修改文件或目录的权限。
  • chown: 修改文件或目录的所有者。
  • ln: 创建硬链接或符号链接。

2. 文件查看和编辑

  • cat: 查看文件内容。
  • less / more: 分页查看文件内容。
  • head / tail: 查看文件的头部或尾部内容。
  • nano / vim / emacs: 文本编辑器。

3. 进程管理

  • ps: 显示当前进程状态。
  • top / htop: 实时显示系统进程状态。
  • kill: 终止进程。
  • pkill: 根据名称终止进程。
  • pgrep: 根据名称查找进程ID。
  • jobs: 显示后台作业。
  • fg / bg: 将后台作业切换到前台或后台。

4. 网络和远程操作

  • ping: 测试网络连接。
  • ifconfig / ip: 查看和配置网络接口。
  • ssh: 远程登录到其他主机。
  • scp: 安全的文件复制。
  • rsync: 远程文件同步。
  • wget / curl: 从网络下载文件。

5. 系统信息和监控

  • uname: 显示系统信息。
  • df: 显示磁盘空间使用情况。
  • du: 显示目录或文件的磁盘使用情况。
  • free: 显示内存使用情况。
  • uptime: 显示系统运行时间。
  • who / whoami: 显示当前登录用户。

6. 包管理

  • apt / yum / dnf / zypper: 包管理工具(根据发行版不同)。
  • dpkg / rpm: 安装和管理软件包。

7. 文本处理

  • grep: 在文件中搜索文本。
  • awk: 文本处理工具。
  • sed: 流编辑器,用于文本替换和过滤。
  • cut: 从文件中提取列。
  • sort: 对文本行进行排序。
  • uniq: 去除重复行。
  • wc: 统计文件的行数、字数和字节数。

8. 压缩和解压缩

  • tar: 归档文件。
  • gzip / gunzip: 压缩和解压缩 .gz 文件。
  • zip / unzip: 压缩和解压缩 .zip 文件。

9. 用户和权限管理

  • useradd / userdel: 添加或删除用户。
  • passwd: 修改用户密码。
  • groupadd / groupdel: 添加或删除用户组。
  • usermod: 修改用户属性。
  • sudo: 以超级用户权限执行命令。

10. 开发相关

  • git: 版本控制系统。
  • make: 构建工具,用于编译代码。
  • gcc / g++: C/C++ 编译器。
  • python / python3: Python 解释器。
  • pip: Python 包管理工具。
  • node / npm: Node.js 运行环境和包管理工具。
  • docker: 容器化工具。
  • kubectl: Kubernetes 命令行工具。

11. 日志查看

  • journalctl: 查看系统日志(适用于 systemd 系统)。
  • dmesg: 查看内核日志。
  • tail -f: 实时查看日志文件的末尾。

12. Shell 脚本

  • #!/bin/bash: Shell 脚本的开头。
  • 变量、循环、条件语句: 基本的 Shell 脚本编程。
  • source / .: 执行脚本文件。

13. 其他常用命令

  • man: 查看命令的手册页。
  • history: 查看命令历史。
  • alias: 创建命令别名。
  • echo: 输出文本。

结语

掌握这些命令和工具可以极大提高你在 Linux 环境下的开发效率和系统管理能力。随着经验的积累,你会发现许多命令的组合和使用场景,这将进一步提升你的工作效率。