命令行,也称为终端或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)。
