Linux 命令速查表

对于那些深入研究 Linux 的人来说,无论是初学者还是经验丰富的开发人员,理解和掌握 Linux 命令都可以大大提升您的体验。这就是为什么我们整理了一份全面的 Linux/Unix 命令行备忘单,它为新手和专家提供了坚实的基础。

最常用的 Linux 命令速查表

**1. 文件和目录操作命令**

Linux提供了强大的命令来管理文件和目录。

以下是一些最重要的内容:

**ls**:列出当前目录中的文件和目录:**ls -l (显示文件的详细信息)**

**cd:** 更改当前目录:**cd /home/user/Documents**

**pwd:**打印当前工作目录。

**cp:**复制文件或目录:**cp file1.txt file2.txt (将 file1.txt 复制到 file2.txt)**

**mv:**移动或重命名文件和目录:**mv oldname.txt newname.txt**

**rm:**删除文件或目录:**rm file.txt(删除文件)**

**mkdir:**创建一个新目录:**mkdir new_folder**

**rmdir:**删除一个空目录:**rmdir old_folder**

**2. 文件权限命令**

Linux 具有强大的权限系统,管理文件权限对于系统安全至关重要。

**chmod:**更改文件权限:**chmod 755 file.txt(为所有者设置读取、写入和执行权限,为其他人设置读取和执行权限)**

**chown:**更改文件所有者和组:**chown user:group file.txt**

**chgrp:**更改文件的组所有权:**chgrp groupname file.txt**

**3. 文件压缩和归档命令**

Linux 提供了强大的压缩和存档文件的工具。

**tar:**压缩和提取 .tar、.tar.gz 或 .tar.bz2 格式的文件:

**tar -cvf archive.tar 目录/(创建档案)

tar -xvf archive.tar(提取档案)**

**gzip:**使用 gzip 算法压缩文件:**gzip file.txt(压缩文件)**

**gunzip:**解压使用 gzip 压缩的文件:**gunzip file.txt.gz**

**zip:**将文件压缩为 .zip 存档:**zip archive.zip file1.txt file2.txt**

**unzip:**从 .zip 档案中提取文件:**unzip archive.zip**

**4. 文件搜索和查找命令**

Linux 具有强大的搜索工具来定位文件和目录。

**find:**在给定位置内搜索文件和目录:**find /path/to/search -name “filename”**

**定位:**按名称快速查找文件(需要更新数据库):**定位文件名**

**updatedb:**更新locate使用的数据库:**sudo updatedb**

**which:**在系统 PATH 中定位命令或可执行文件:**which python**

**grep:**在文件中搜索特定模式或文本:**grep “pattern” file.txt**

**5. 文本处理和操作**

当处理配置文件、日志或任何其他基于文本的数据时,文本操作对于开发人员来说至关重要。

**cat:**连接并显示文件内容:**cat file.txt**

**less:**逐页查看文件:**less file.txt**

**head:**查看文件的前几行:**head -n 10 file.txt_**

**tail:**查看文件的最后几行:**tail -f log.txt (实时跟踪日志文件)**

**grep:**在文件中搜索特定模式:**grep “def” script.py(在 Python 脚本中搜索函数定义)**

**sed:**用于修改文件或文本的流编辑器:**sed 's/old/new/g' file.txt (将所有出现的“old”替换为“new”)**

**awk:**模式扫描处理语言:**awk ‘{print $1}’ file.txt (打印文件第一列)**

**sort:**对文件内容进行排序:**sort file.txt**

**uniq:**过滤文件中的重复行:**uniq file.txt**

**cut:从文件的每一行中删除部分:**cut -d ',' -f 1 file.csv(提取 CSV 文件的第一个字段)**

**wc:**计算文件中的单词、行、字符等的数量:**wc -l file.txt (计算行数)**

**6. 进程管理和调试命令**

管理 Linux 中的进程对于系统性能至关重要。

**ps:**显示当前进程的快照:**ps aux(显示详细的进程信息)**

**top:**显示实时系统进程信息。

**strace:**跟踪进程的系统调用和信号:**strace -p 1234 (跟踪 PID 为 1234 的进程)**

**kill:**通过 ID 终止进程:**kill 1234(终止 PID 为 1234 的进程)**

**killall:**按名称终止所有进程:**killall process_name**

**htop:**top 的增强版本,具有更易于阅读的界面。

**lsof:**按进程列出打开的文件:**lsof -i(列出所有打开的网络连接)**

**time:**测量命令的执行时间:**time python3 script.py (测量 Python 脚本运行所需的时间)**

**7. 进程控制命令**

这些命令有助于管理正在运行的进程。

**pstree:**以树状格式显示进程。

**bg:**在后台恢复已停止的作业:**bg %1(恢复作业 1)**

**fg:**将作业带到前台:**fg %1(将作业 1 带到前台)**

**jobs:**列出当前在后台运行的作业。

**8. 系统信息命令**

要获取有关系统的详细信息,请使用这些命令。

**uname:**显示系统信息:**uname -a (显示所有系统详细信息)**

**df:**显示磁盘空间使用情况:**df -h(显示人类可读的磁盘空间使用情况)**

**free:**显示内存使用情况:**free -m(以兆字节为单位显示内存使用情况)**

**uptime:**显示系统运行的时间。

**hostname:**显示或设置系统的主机名:**hostname(显示主机名)**

**vmstat:**报告虚拟内存统计信息:**vmstat 1(每秒更新一次)**

**iostat:**显示 CPU 和 I/O 统计数据。

**dmesg:**显示启动和系统消息,对调试有用:**dmesg | grep error**

**9. 网络命令**

网络命令对于管理连接和解决网络问题至关重要。

**ping:**向远程主机发送 ICMP 回显请求以测试连接性:**ping google.com**

**ifconfig:**显示或配置网络接口(较旧,在某些发行版中被 ip 命令取代):**ifconfig(显示网络接口信息)**

**ip:** 网络管理 ifconfig 的较新替代品:**ip addr show (显示系统的 IP 地址)**

**netstat:**显示网络连接、路由表、接口统计信息:**netstat -tuln(显示监听端口)**

**ss:**另一个用于检查网络套接字的实用程序:**ss -tuln(显示 TCP/UDP 监听端口)**

**curl:**从服务器传输数据或向服务器传输数据,通常用于 API:**curl -X GET https://api.github.com**

**wget:**从网络下载文件:**wget http://example.com/file.zip**

**scp:**在系统之间安全地复制文件:**scp file.txt user@remote:/path/to/destination/**

**10. I/O 重定向命令**

Linux 允许输入和输出重定向以简化命令。

**> :** 将输出重定向到文件:**echo “Hello” > file.txt**

**>> :** 将输出附加到文件:**echo “World” >> file.txt**

**< :** 从文件重定向输入:**sort < file.txt**

**| :** 将一个命令的输出通过管道传输到另一个命令中:**ps aux | grep “nginx”**

**11. 磁盘管理命令**

这些命令非常适合管理和监控磁盘空间和分区。

**fdisk:**查看和管理磁盘分区:**fdisk -l (列出磁盘分区)**

**lsblk:**列出所有块设备。

**du:**估计文件和目录的空间使用情况:**du -sh /path/to/directory/(显示目录的总大小)**

**mount:**挂载磁盘或分区:**mount /dev/sdb1 /mnt**

**umount:**卸载磁盘或分区:**umount /mnt**

**df:**显示磁盘空间使用情况:**df -h(以人类可读的格式显示)**

**12. 环境变量命令**

环境变量控制进程运行的环境。

**echo $VAR_NAME:** 显示环境变量的值:**echo $HOME (显示主目录)**

**export VAR_NAME=value:** 设置环境变量:**export PATH=$PATH:/new/directory**

**13. 备份与同步命令**

这些命令有助于创建备份或同步文件。

**rsync:**在两个位置之间同步文件和目录:**rsync -av /source/directory /destination/**

**tar:**归档并压缩文件:**tar -cvf archive.tar directory/**

**cpio:**将文件复制到档案中或从档案中复制出来:**find . | cpio -o > archive.cpio**

**dd:**复制并转换文件(通常用于创建磁盘映像):**dd if=/dev/sda of=/path/to/backup.img**

**14. 用户管理命令**

这些命令对于创建和管理用户至关重要。

**useradd:**向系统添加新用户:**useradd username**

**passwd:**更改用户密码:**passwd 用户名**

**usermod:**修改现有用户账户:**usermod -aG groupname username**

**userdel:**从系统中删除用户:**userdel 用户名**

  • 快捷键命令列表** Linux 支持多种键盘快捷键,可以加快导航速度。
  • **Bash 快捷键:**

    **Ctrl + C:**终止当前命令。

    **Ctrl + D:**退出终端。

    **Ctrl + L:**清除终端屏幕。

    **Ctrl + A:**将光标移动到行首。

    **Ctrl + E:**将光标移动到行尾。

    **纳米快捷方式:**

    **Ctrl + O:**保存文件。

    **Ctrl + X:**退出 Nano。

    **Ctrl + W:**在文件内搜索。

    **Ctrl + K:**剪切文本。

    **Vim 快捷键:**

    **i:**进入插入模式。

    **Esc:**退出插入模式。

    **:w:** 保存文件。

    **:q:**退出编辑器。

    **:wq:**保存并退出。

    在 Medium 上关注我以了解更多技巧:https://medium.com/@CodingAdventure