命令行,也称为终端或shell,是操作系统提供的一种通过文本指令与计算机交互的方式,与图形用户界面(GUI)不同,命令行通过输入特定的命令来执行操作,具有高效、灵活、自动化等优势,掌握命令行是提升工作效率和系统管理能力的重要技能,以下将从基础概念、常用命令、高级技巧及实际应用场景等方面,详细讲解如何使用命令行。

基础概念与入门
在开始使用命令行之前,需要了解几个核心概念:
- Shell:是命令行解释器,负责接收用户输入的命令并执行,常见的Shell有Bash(Linux/macOS默认)、Zsh、PowerShell(Windows)等。
- 命令格式:通常由“命令名 + 参数 + 选项”组成。
ls -l
中,ls
是命令名,-l
是选项,用于显示详细列表。 - 路径:文件或目录在文件系统中的位置,分为绝对路径(从根目录开始)和相对路径(从当前目录开始)。
- 当前目录:用户当前所在的目录,可通过
pwd
(print working directory)命令查看。
如何打开命令行:
- Windows:搜索“cmd”或“PowerShell”,或按
Win+R
输入cmd
。 - macOS:打开“终端”(Terminal)应用。
- Linux:按
Ctrl+Alt+T
或通过应用菜单打开终端。
常用命令详解
文件与目录操作
-
ls
:列出目录内容,常用选项:-l
:显示详细信息(权限、所有者、大小等)。-a
:显示隐藏文件(以开头)。-h
:以人类可读格式显示文件大小(如KB、MB)。ls -lah # 列出所有文件,包括隐藏文件,并显示详细信息
-
cd
:切换目录。(图片来源网络,侵删)cd /home/user
:切换到绝对路径。cd ..
:返回上一级目录。cd ~
:切换到用户主目录。
-
pwd
:显示当前工作目录的完整路径。 -
mkdir
:创建目录。mkdir new_folder
:创建单个目录。mkdir -p parent/child
:递归创建嵌套目录。
-
rm
:删除文件或目录,注意:rm
操作不可逆!rm file.txt
:删除文件。rm -r folder
:递归删除目录及其内容。rm -f
:强制删除,不提示确认。
-
cp
:复制文件或目录。(图片来源网络,侵删)cp source.txt dest.txt
:复制文件。cp -r source_folder dest_folder
:复制目录。
-
mv
:移动或重命名文件/目录。mv old_name.txt new_name.txt
:重命名。mv file.txt /path/to/dest/
:移动文件。
查看与编辑
-
cat
:查看文件全部内容。cat file.txt
:直接输出文件内容。cat -n file.txt
:显示行号。
-
less
:分页查看文件内容(适合大文件)。less file.txt
:按q
退出,空格
或f
翻页。
-
head
/tail
:查看文件开头或末尾部分。head -n 10 file.txt
:查看前10行。tail -f file.log
:实时监控文件更新(常用于日志)。
-
nano
/vim
:文本编辑器。nano file.txt
:简单易用的编辑器。vim file.txt
:功能强大的编辑器,需学习基本命令(如i
进入编辑模式,wq
保存退出)。
系统与进程管理
-
ps
:查看当前进程。ps aux
:显示所有进程的详细信息。ps -ef
:显示所有进程的完整信息。
-
top
/htop
:实时监控系统进程。htop
是top
的增强版,更直观。 -
kill
:终止进程。kill -9 PID
:强制终止进程(PID为进程ID)。
-
df
:查看磁盘空间使用情况。df -h
:以人类可读格式显示各分区大小。
-
free
:查看内存使用情况。free -h
:显示内存和交换分区的使用量。
网络相关命令
-
ping
:测试网络连通性。ping google.com
:向Google发送ICMP请求。
-
curl
/wget
:下载文件或发送HTTP请求。curl -O https://example.com/file.zip
:下载文件。wget https://example.com/file.zip
:同样用于下载。
-
ssh
:远程登录服务器。ssh user@192.168.1.100
:以用户身份登录远程主机。
-
netstat
/ss
:查看网络连接状态。ss -tuln
:显示监听的TCP/UDP端口。
高级技巧与实用功能
-
命令别名:通过
alias
简化长命令。alias ll='ls -lah' # 后续输入`ll`即可执行`ls -lah`
永久生效需将别名写入
~/.bashrc
或~/.zshrc
文件。 -
管道与重定向:
- 管道():将一个命令的输出作为另一个命令的输入。
ps aux | grep nginx # 查找包含nginx的进程
- 重定向:
>
:将输出覆盖写入文件。>>
:将输出追加写入文件。<
:从文件读取输入。
- 管道():将一个命令的输出作为另一个命令的输入。
-
通配符:
- 匹配任意字符(如
*.txt
匹配所有txt文件)。 - 匹配单个字符(如
file?.txt
匹配file1.txt、file2.txt)。 []
:匹配指定范围(如file[1-3].txt
匹配file1.txt、file2.txt、file3.txt)。
- 匹配任意字符(如
-
脚本自动化:将命令写入
.sh
脚本文件,通过bash script.sh
执行。#!/bin/bash echo "Hello, World!" mkdir backup cp *.txt backup/
实际应用场景
-
批量重命名文件:
for file in *.jpg; do mv "$file" "new_${file}" done
-
定时任务:使用
cron
设置定时执行命令,编辑crontab -e
添加:0 2 * * * /path/to/backup_script.sh # 每天凌晨2点执行备份
-
日志分析:
grep "ERROR" app.log | awk '{print $1}' | sort | uniq -c # 统计ERROR日志出现次数
常见问题与注意事项
- 权限问题:执行某些命令时可能提示“Permission denied”,需使用
sudo
获取管理员权限(如sudo apt update
)。 - 命令历史:通过
history
查看历史命令,按Ctrl+R
可搜索历史命令。 - Tab补全:按
Tab
键可自动补全命令或文件名,提高输入效率。
相关问答FAQs
Q1: 如何快速查找包含特定关键词的文件?
A1: 使用grep
命令结合-r
(递归)选项,在当前目录及其子目录中查找包含“error”的文件:
grep -r "error" .
若需忽略大小写,可添加-i
选项:
grep -ri "error" .
Q2: 如何压缩和解压文件?
A2:
- 压缩:使用
tar
命令创建.tar.gz
文件(Linux/macOS):tar -czf archive.tar.gz /path/to/directory
- 解压:
tar -xzf archive.tar.gz
Windows系统可使用
7z
或WinRAR
工具,通过命令行操作(如7z a archive.zip folder
)。