以下是一些常见的 Linux 命令及其简要说明:
1. **文件和目录操作**
- **`ls`**:列出目录内容。常用选项有 `-l`(显示详细信息)、`-a`(显示所有文件,包括隐藏文件)、`-h`(以人类可读的形式显示文件大小)等。例如,`ls -l` 可以显示文件的权限、所有者、大小、时间等详细信息;`ls -a` 会显示当前目录下的所有文件,包括以 “.” 开头的隐藏文件。
- **`pwd`**:显示当前工作目录的路径。
- **`cd`**:改变当前目录。`cd ..` 切换到上一级目录;`cd ~` 或 `cd` 切换到当前用户的主目录;`cd -` 切换到之前所在的目录;`cd /目录路径` 切换到绝对路径目录;`cd ../目录路径` 切换到相对路径目录。
- **`mkdir`**:创建新目录。使用 `-p` 选项可以递归创建多级目录。例如,`mkdir -p parent/child` 会先创建 `parent` 目录,然后在 `parent` 目录下创建 `child` 目录。
- **`rmdir`**:删除空目录。
- **`rm`**:删除文件或目录。使用 `-r` 或 `-R` 选项可以递归删除目录及其内容;使用 `-f` 选项可以强制删除文件,不提示用户确认。例如,`rm -rf directory` 会强制递归删除 `directory` 目录及其所有内容。
- **`cp`**:复制文件或目录。使用 `-r` 或 `-R` 选项可以递归复制目录及其内容;使用 `-i` 选项在覆盖文件前会提示用户确认;使用 `-u` 选项只在目标文件比源文件旧时或目标文件不存在时复制。例如,`cp -r source_directory destination_directory` 可以递归复制 `source_directory` 目录到 `destination_directory`。
- **`mv`**:移动或重命名文件或目录。使用 `-i` 选项在覆盖目标文件前会提示用户确认;使用 `-u` 选项只在目标文件比源文件更新时才移动文件。例如,`mv oldname.txt newname.txt` 可以将文件 `oldname.txt` 重命名为 `newname.txt`。
- **`touch`**:创建空文件或更新文件的时间戳。使用 `-c` 或 `--no-create` 选项如果文件不存在则不创建文件;使用 `-d [日期时间]` 选项可以指定日期时间来更新文件的时间戳;使用 `-m` 选项只更新文件的修改时间,不更改访问时间。例如,`touch -t 0712250000 file1` 可以将文件 `file1` 的时间戳修改为 2007 年 12 月 25 日 00:00:00。
- **`cat`**:连接并显示文件内容。可以使用重定向符号将多个文件合并到一个文件中,或者将一个文件的内容追加到另一个文件中。例如,`cat file1.txt file2.txt > combined.txt` 可以将 `file1.txt` 和 `file2.txt` 的内容合并到 `combined.txt` 中。
- **`more`**:逐页查看文本文件内容,按空格键翻页,按 `q` 键退出。
- **`less`**:与 `more` 类似,但支持上下滚动,按 `j` 键向下滚动一行,按 `k` 键向上滚动一行,按 `q` 键退出。
- **`head`**:查看文件的前 N 行内容,默认显示前 10 行。使用 `-n [行数]` 选项可以指定显示的行数。例如,`head -n 5 file.txt` 可以显示 `file.txt` 的前 5 行内容。
- **`tail`**:查看文件的后 N 行内容,默认显示后 10 行。使用 `-n [行数]` 选项可以指定显示的行数;使用 `-f` 选项可以实时显示文件内容,常用于查看日志文件。例如,`tail -n 5 file.txt` 可以显示 `file.txt` 的后 5 行内容,`tail -f logfile.log` 可以实时跟踪日志文件的新增内容。
2. **系统信息**
- **`uname`**:显示系统信息。使用 `-a` 选项显示所有信息;使用 `-r` 选项显示操作系统内核版本;使用 `-m` 选项显示机器硬件名称;使用 `-n` 选项显示网络节点主机名。例如,`uname -a` 可以显示系统的详细信息,包括内核版本、硬件架构、主机名等。
- **`df`**:报告文件系统磁盘空间的使用情况。使用 `-h` 选项以人类可读的格式显示磁盘使用情况(例如 GB);使用 `-T` 选项显示文件系统类型;使用 `-i` 选项显示 inode 信息。例如,`df -h` 可以直观地显示磁盘的使用情况,包括已用空间、可用空间、挂载点等信息。
- **`du`**:显示文件和目录的磁盘使用量。使用 `-h` 选项以人类可读的格式显示磁盘使用量;使用 `-s` 选项仅显示总计;使用 `--max-depth=N` 选项限制显示的目录深度为 N 级。例如,`du -sh directory_name` 可以显示 `directory_name` 目录的总磁盘使用量。
- **`free`**:查看内存使用情况。使用 `-h` 选项以人类可读的格式显示内存使用情况;使用 `-t` 选项显示总内存和交换分区的使用情况;使用 `-m` 选项以 MB 为单位显示内存使用情况;使用 `-g` 选项以 GB 为单位显示内存使用情况。例如,`free -h` 可以清晰地显示内存的使用情况,包括已用内存、可用内存、交换分区等信息。
- **`top`**:实时显示系统中各个进程的资源占用情况,包括 CPU、内存、运行时间等。按 `q` 键退出。可以使用 `-d [seconds]` 选项设置刷新间隔时间(默认是 3 秒);使用 `-p [pid]` 选项监视特定进程的资源使用情况;使用 `-u [username]` 选项监视特定用户的所有进程的资源使用情况。例如,`top -d 2 -p 1234` 可以每 2 秒刷新一次,监视进程 ID 为 1234 的进程资源使用情况。
- **`ps`**:显示当前运行的进程。常用选项有 `aux`(显示所有进程的详细信息),可以与 `grep` 结合使用来筛选特定的进程。例如,`ps aux | grep firefox` 可以查找与 Firefox 相关的进程信息。
- **`kill`**:终止进程。使用 `-9` 选项可以强制杀死进程。例如,`kill -9 1234` 可以强制终止进程 ID 为 1234 的进程。
- **`ifconfig`**:显示或设置网卡的网络配置信息,如 IP 地址、子网掩码、广播地址等。不过在现代 Linux 系统中,逐渐被 `ip` 命令所取代。
- **`ping`**:测试与主机的连通性。例如,`ping www.baidu.com` 可以测试与百度网站的网络连接是否正常。
- **`wget`/`curl`**:从网络下载文件。`wget [URL]` 可以将指定 URL 的文件下载到当前目录;`curl -O [URL]` 也可以实现类似的功能。
- **`chmod`**:修改文件或目录的权限。使用数字表示权限,例如 `chmod 755 file.txt` 可以将文件 `file.txt` 的权限设置为所有者可读写执行、组可读执行、其他用户可读执行。也可以使用符号表示法,如 `u+x`(给所有者添加执行权限)等。
- **`chown`**:修改文件或目录的所有者。例如,`chown user:group file.txt` 可以将文件 `file.txt` 的所有者修改为用户 `user`,所属组修改为 `group`。
- **`tar`**:用于压缩和解压文件和目录。常用选项有 `-c`(创建压缩包)、`-x`(解压缩包)、`-v`(显示操作过程)、`-f [压缩包文件名]`(指定压缩包文件名)、`-z`(使用 gzip 压缩或解压缩)。例如,`tar -czvf archive.tar.gz directory_name` 可以将 `directory_name` 目录压缩为 `archive.tar.gz` 文件;`tar -xzvf archive.tar.gz` 可以解压缩 `archive.tar.gz` 文件。
- **`zip/unzip`**:用于压缩和解压缩 ZIP 文件。例如,`zip [压缩包名.zip] [文件/目录]` 可以压缩文件或目录;`unzip [压缩包名.zip]` 可以解压缩 ZIP 文件。
- **`man`**:查看命令的帮助文档。例如,`man ls` 可以查看 `ls` 命令的详细帮助信息。
- **`info`**:获取更详细的命令帮助信息。与 `man` 类似,但提供的信息可能更丰富和详细。
- **`which`**:显示命令的路径,查看某个命令是否安装以及安装位置。例如,`which ls` 可以显示 `ls` 命令的完整路径。
- **`whereis`**:类似于 `which`,但不仅显示命令的路径,还会显示该命令的源代码位置和二进制文件位置。例如,`whereis ls` 会显示 `ls` 命令的相关路径信息。
- **`find`**:在指定路径中查找文件或目录。常用选项有 `-name [文件名]`(按名称查找文件)、`-type [文件类型]`(按文件类型查找,如 -type d 查找目录,-type f 查找文件)、`-size [+/-文件大小]`(按文件大小查找文件)。例如,`find /home -name "*.txt"` 可以在 `/home` 目录下查找所有扩展名为 `.txt` 的文件。
- **`grep`**:在文件中搜索指定文本。常用选项有 `-i`(忽略大小写)、`-v`(反向匹配,显示不符合模式的行)、`-n`(显示匹配的行号)。例如,`grep "search_term" file.txt` 可以在 `file.txt` 文件中搜索包含 “search_term” 的行;`grep -i "search_term" file.txt` 可以忽略大小写进行搜索。
- **`awk`**:用于文本处理和数据提取的工具。可以通过指定模式和动作来对文本进行处理和分析。例如,`awk '{print $1}' file.txt` 可以提取 `file.txt` 文件中的第一列数据。
- **`sed`**:流编辑器,用于文本处理和替换。例如,`sed 's/old_text/new_text/' file_name` 可以将 `file_name` 文件中的 “old_text” 替换为 “new_text”。
- **`date`**:显示或设置系统日期和时间。例如,`date +%Y/%m/%d %H:%M:%S` 可以显示当前的日期和时间;`date -s "2025-02-03 10:00:00"` 可以将系统日期和时间设置为指定的值。