一些常用的linux常用的命令(常用的linux命令大全)

在 Linux 的世界里,命令是与系统交互的基础。掌握常用命令不仅能让你高效地管理文件、进程和网络,还能为你进一步学习系统管理和自动化打下坚实的基础。本文将深入探讨一些最常用且功能强大的 Linux 命令。


文件与目录管理

文件和目录是 Linux 系统中最基本的操作对象。以下命令能帮助你轻松驾驭它们:

ls - 列出目录内容

ls 命令用于列出指定目录下的文件和子目录。它有许多常用选项,可以改变输出的显示方式:

  • ls -l: 以长格式显示文件信息,包括文件权限、所有者、组、大小、修改日期等。
  • ls -a: 显示所有文件,包括以 . 开头的隐藏文件
  • ls -h: 以人类可读的格式显示文件大小(例如,1K, 234M, 2G)。
  • ls -R: 递归地列出子目录中的内容。

示例:

Bash

ls -lh # 列出当前目录下所有文件和子目录的详细信息,并以人类可读的格式显示文件大小

cd - 切换目录

cd 命令用于改变当前工作目录。

  • cd ~cd: 切换到用户主目录
  • cd ..: 切换到上级目录
  • cd -: 切换到上一个工作目录

示例:

Bash

cd /var/log # 切换到 /var/log 目录

pwd - 显示当前工作目录

pwd 命令会打印出当前所处的完整路径。当你迷失在文件系统中时,它能帮你迅速找到方向。

示例:

Bash

pwd # 显示当前工作目录的路径

mkdir - 创建目录

mkdir 命令用于创建新的目录。

  • mkdir -p: 当父目录不存在时,自动创建所需的父目录。

示例:

Bash

mkdir my_new_directory # 创建名为 my_new_directory 的新目录
mkdir -p projects/2025/q3 # 创建 projects, 2025, q3 三级目录

rmdir - 删除空目录

rmdir 命令用于删除空的目录。如果目录不为空,则无法删除。

示例:

Bash

rmdir empty_folder # 删除名为 empty_folder 的空目录

cp - 复制文件和目录

cp 命令用于复制文件或目录。

  • cp -r: 递归地复制目录及其内容。

示例:

Bash

cp file.txt new_file.txt # 复制 file.txt 并命名为 new_file.txt
cp -r documents backup_documents # 复制 documents 目录及其所有内容到 backup_documents

mv - 移动或重命名文件和目录

mv 命令用于移动文件或目录,也可以用于重命名。

示例:

Bash

mv old_name.txt new_name.txt # 将 old_name.txt 重命名为 new_name.txt
mv file.txt /tmp/ # 将 file.txt 移动到 /tmp/ 目录

rm - 删除文件和目录

rm 命令用于删除文件和目录。使用此命令时请务必小心,因为它删除的文件通常无法恢复

  • rm -f: 强制删除文件,不进行确认提示。
  • rm -r: 递归地删除目录及其内容。

示例:

Bash

rm useless_file.txt # 删除 useless_file.txt
rm -rf dangerous_folder # 强制删除 dangerous_folder 及其所有内容 (极度危险,慎用!)

cat - 查看文件内容

cat 命令用于连接文件并打印到标准输出,最常用的是查看文本文件的内容

示例:

Bash

cat /etc/os-release # 查看操作系统版本信息文件

less 和 more - 分页查看文件内容

当文件内容很长时,lessmore 命令可以让你分页查看,避免内容一次性刷满屏幕。less 功能更强大,支持向前和向后翻页,而 more 只能向前翻页。

示例:

Bash

less /var/log/syslog # 分页查看系统日志

head 和 tail - 查看文件开头或结尾

  • head: 默认显示文件的前10行。
  • tail: 默认显示文件的后10行。
    • tail -f: 实时跟踪文件末尾的更新,常用于查看日志文件。

示例:

Bash

head -n 5 access.log # 查看 access.log 文件的前5行
tail -f error.log # 实时查看 error.log 中新增的错误信息

权限管理

Linux 是一种多用户操作系统,文件和目录的权限管理至关重要。

chmod - 改变文件权限

chmod 命令用于改变文件或目录的权限。权限可以用数字(八进制)或符号表示。

数字表示法:

  • 读 (r): 4
  • 写 (w): 2
  • 执行 (x): 1

组合权限:

  • 所有者 (owner)
  • 组 (group)
  • 其他用户 (others)

示例:

Bash

chmod 755 script.sh # 将 script.sh 设置为所有者可读写执行,组用户和其他用户可读执行
# 7 = 4(r) + 2(w) + 1(x)
# 5 = 4(r) + 0(w) + 1(x)

chown - 改变文件所有者

chown 命令用于改变文件或目录的所有者

示例:

Bash

chown user1 file.txt # 将 file.txt 的所有者改为 user1

chgrp - 改变文件组

chgrp 命令用于改变文件或目录的所属组

示例:

Bash

chgrp developers project_folder # 将 project_folder 的所属组改为 developers

进程管理

进程是正在执行的程序实例。管理进程是系统管理员的日常任务之一。

ps - 查看进程状态

ps 命令用于查看当前系统中运行的进程。

  • ps aux: 显示所有用户的进程,以及详细信息。
  • ps ef: 以树状结构显示进程之间的父子关系。

示例:

Bash

ps aux | grep nginx # 查找所有与 nginx 相关的进程

top - 实时查看进程状态

top 命令提供了一个实时更新的进程列表,显示 CPU、内存使用情况以及每个进程的资源占用。

示例:

Bash

top # 启动 top 实时监控进程

kill - 终止进程

kill 命令用于向进程发送信号,最常用的是终止进程。

  • kill <PID>: 默认发送 SIGTERM 信号(请求终止)。
  • kill -9 <PID>: 发送 SIGKILL 信号(强制终止,不可被捕获或忽略)。

示例:

Bash

kill 12345 # 终止 PID 为 12345 的进程
kill -9 54321 # 强制终止 PID 为 54321 的进程

网络工具

ping - 测试网络连通性

ping 命令用于测试网络主机之间的连通性。它通过发送 ICMP echo 请求包并等待响应来工作。

示例:

Bash

ping xxx.com # 测试与 xxx.com 的连通性

ip - 显示/配置网络接口

ip 命令是 ifconfig 的现代化替代品,用于显示和配置网络接口。

  • ip a: 显示所有网络接口的详细信息,包括 IP 地址。
  • ip r: 显示路由表。

示例:

Bash

ip a # 显示所有网络接口的 IP 地址信息

ss - 显示套接字统计信息

ss 命令是 netstat 的更快、更强大的替代品,用于显示套接字统计信息。

  • ss -tunlpx: 显示所有 TCP、UDP 监听端口,并显示关联的进程。

示例:

Bash

ss -tunlp # 列出所有监听的 TCP 和 UDP 端口

压缩与解压

tar - 文件打包与解压

tar 命令是一个功能强大的归档工具,常用于将多个文件打包成一个文件,并可选地进行压缩。

  • tar -cvf archive.tar files: 创建一个归档文件。
  • tar -xvf archive.tar: 解压一个归档文件。
  • tar -czvf archive.tar.gz files: 创建并使用 gzip 压缩
  • tar -xzvf archive.tar.gz: 解压 gzip 压缩的归档文件。
  • tar -cjvf archive.tar.bz2 files: 创建并使用 bzip2 压缩
  • tar -xjvf archive.tar.bz2: 解压 bzip2 压缩的归档文件。

示例:

Bash

tar -czvf my_backup.tar.gz /home/user/documents # 将 documents 目录打包并压缩为 my_backup.tar.gz
tar -xzvf my_backup.tar.gz # 解压 my_backup.tar.gz

gzip / gunzip - Gzip 压缩/解压

gzip 用于压缩文件,gunzip 用于解压由 gzip 压缩的文件。

示例:

Bash

gzip my_file.txt # 压缩 my_file.txt 为 my_file.txt.gz
gunzip my_file.txt.gz # 解压 my_file.txt.gz

zip / unzip - Zip 压缩/解压

zipunzip 命令用于创建和提取 .zip 格式的压缩文件,这在与其他操作系统交换文件时很常见。

示例:

Bash

zip -r my_archive.zip my_folder # 将 my_folder 及其内容压缩为 my_archive.zip
unzip my_archive.zip # 解压 my_archive.zip

搜索与查找

grep - 文本搜索

grep 命令用于在文件中搜索指定的文本模式。它是 Linux 中最常用的文本处理工具之一。

  • grep -i: 忽略大小写。
  • grep -r: 递归搜索子目录。
  • grep -n: 显示匹配行的行号。
  • grep -v: 显示不匹配的行。

示例:

Bash

grep "error" /var/log/syslog # 在系统日志中查找包含 "error" 的行
grep -rn "function_name" . # 在当前目录及其子目录中递归查找 "function_name" 并显示行号

find - 文件查找

find 命令用于在文件系统中查找文件和目录。它非常强大,支持多种查找条件。

  • find . -name "*.log": 在当前目录及其子目录中查找所有以 .log 结尾的文件。
  • find /etc -type d -name "nginx": 在 /etc 目录下查找名为 "nginx" 的目录。
  • find /home -user user1: 查找所有者为 user1 的文件。

示例:

Bash

find /var/www -type f -size +1G # 在 /var/www 目录下查找所有大于 1GB 的文件

系统信息

df - 查看磁盘空间使用情况

df 命令用于显示文件系统的磁盘空间使用情况

  • df -h: 以人类可读的格式显示。

示例:

Bash

df -h # 显示所有文件系统的磁盘使用情况

du - 查看文件或目录占用空间

du 命令用于显示文件或目录的磁盘空间占用量

  • du -sh: 汇总显示指定目录的总大小,以人类可读的格式。

示例:

Bash

du -sh /var/log # 显示 /var/log 目录的总大小

free - 查看内存使用情况

free 命令用于显示系统内存使用情况,包括物理内存和交换空间。

  • free -h: 以人类可读的格式显示。

示例:

Bash

free -h # 显示内存使用情况

uname - 查看系统信息

uname 命令用于显示系统信息,如内核名称、版本、硬件架构等。

  • uname -a: 显示所有系统信息。

示例:

Bash

uname -a # 显示所有系统信息

结论

以上只是 Linux 常用命令中的一小部分,但它们构成了与 Linux 系统高效交互的基石。掌握这些命令,并养成查阅 man 手册(例如 man ls)的习惯,将极大地提升在 Linux 环境下的工作效率。随着对这些基础命令的熟练运用,将能够更轻松地探索 Linux 的强大功能,并解决各种系统管理和开发任务。

原文链接:,转发请注明来源!