Cygwin 是一个在 Windows 系统上运行的类 Unix 环境,它提供了大量的 Linux/Unix 命令和工具,使得用户可以在 Windows 中使用熟悉的命令行操作,以下将详细介绍 Cygwin 中常用的命令,涵盖文件管理、文本处理、系统操作、网络工具等多个类别,并辅以表格和示例说明,帮助用户全面掌握 Cygwin 命令的使用方法。

文件和目录管理命令
文件和目录操作是命令行最基础的功能,Cygwin 提供了与 Linux 类似的命令来管理文件系统。
-
ls:列出目录内容- 常用选项:
-l:以长格式显示(包含权限、所有者、大小、修改时间等)。-a:显示所有文件,包括隐藏文件(以 开头)。-h:以人类可读格式显示文件大小(如 KB、MB)。-t:按修改时间排序,最新的在前。
- 示例:
ls -lah显示当前目录所有文件的详细信息,并按时间排序。
- 常用选项:
-
cd:切换目录- 示例:
cd /home/user切换到用户主目录;cd ..返回上级目录;cd -在上次目录和当前目录间切换。
- 示例:
-
pwd:显示当前工作目录的完整路径
(图片来源网络,侵删)- 示例:
pwd输出类似/home/user的路径。
- 示例:
-
mkdir:创建目录- 选项
-p:递归创建多级目录(如mkdir -p a/b/c)。 - 示例:
mkdir newdir创建名为newdir的目录。
- 选项
-
rmdir:删除空目录- 示例:
rmdir emptydir删除空目录emptydir。
- 示例:
-
rm:删除文件或目录- 选项
-r或-R:递归删除目录及其内容;-f:强制删除,不提示确认。 - 示例:
rm -rf dir_to_delete强制删除目录dir_to_delete及其所有内容。
- 选项
-
cp:复制文件或目录
(图片来源网络,侵删)- 选项
-r:复制目录;-p:保留文件属性(如权限、时间戳);-i:覆盖前提示。 - 示例:
cp -r source_dir target_dir复制整个目录。
- 选项
-
mv:移动或重命名文件/目录- 示例:
mv old_name.txt new_name.txt重命名文件;mv file.txt /path/to/dir/移动文件到指定目录。
- 示例:
-
touch:创建空文件或更新文件时间戳- 示例:
touch newfile.txt创建空文件newfile.txt。
- 示例:
-
ln:创建链接文件- 选项
-s:创建符号链接(软链接)。 - 示例:
ln -s target.txt link.txt创建指向target.txt的符号链接link.txt。
- 选项
文本处理命令
Cygwin 提供了强大的文本处理工具,适合对文件内容进行搜索、编辑和转换。
-
cat:连接并显示文件内容- 示例:
cat file.txt在终端显示file.txt的全部内容;cat file1.txt file2.txt > combined.txt合并两个文件。
- 示例:
-
less/more:分页显示文件内容less支持上下翻页、搜索等功能(按q退出);more仅支持向下翻页。- 示例:
less largefile.txt分页查看大文件。
-
head/tail:显示文件开头或结尾部分内容- 选项
-n指定行数,默认head显示前 10 行,tail显示后 10 行。 - 示例:
tail -n 20 log.txt查看log.txt末尾 20 行;tail -f log.txt实时跟踪文件更新(常用于日志监控)。
- 选项
-
grep:搜索文本内容- 选项
-i:忽略大小写;-r:递归搜索目录;-n:显示行号。 - 示例:
grep "error" log.txt在log.txt中搜索包含 "error" 的行;grep -r "TODO" /home/user递归搜索用户主目录下包含 "TODO" 的文件。
- 选项
-
sed:流编辑器,用于文本替换、删除等- 示例:
sed 's/old/new/g' file.txt将file.txt中所有 "old" 替换为 "new"(原文件不变,输出到终端);sed -i 's/old/new/g' file.txt直接修改原文件。
- 示例:
-
awk:文本分析工具,按列处理文本- 示例:
awk '{print $1, $3}' file.txt打印file.txt每行的第 1 列和第 3 列;awk -F: '{print $1}' /etc/passwd以 为分隔符,打印/etc/passwd的用户名列。
- 示例:
-
sort:对文本行排序- 选项
-n:按数字排序;-r:倒序;-k:指定按第几列排序。 - 示例:
sort -n numbers.txt对numbers.txt中的数字按升序排序。
- 选项
-
uniq:去除重复行- 选项
-d:仅显示重复行;-c:统计重复次数。 - 示例:
sort file.txt | uniq -c先排序后去重,并统计每行出现次数。
- 选项
-
cut:提取文本列- 选项
-d:指定分隔符;-f:指定提取的列。 - 示例:
cut -d: -f1,3 /etc/passwd以 为分隔符,提取/etc/passwd的第 1 列(用户名)和第 3 列(UID)。
- 选项
系统和管理命令
这些命令用于监控系统状态、管理进程和用户权限。
-
ps:显示当前进程状态- 选项
-ef:显示所有进程的详细信息(类似 Linux 的ps aux);-u username:显示指定用户的进程。 - 示例:
ps -ef | grep "nginx"查找包含 "nginx" 的进程。
- 选项
-
top/htop:动态显示进程和系统资源占用top是基础工具,htop(需额外安装)提供更直观的界面(支持颜色、鼠标操作)。- 示例:
top启动后按q退出,按P按 CPU 排序,按M按内存排序。
-
kill/killall:终止进程kill通过进程 ID(PID)终止进程,killall通过进程名终止。- 示例:
kill -9 1234强制终止 PID 为 1234 的进程;killall nginx终止所有名为 "nginx" 的进程。
-
df:显示磁盘空间使用情况- 选项
-h:以人类可读格式显示;-T:显示文件系统类型。 - 示例:
df -h显示各分区的使用量(如C:、D:盘)。
- 选项
-
du:显示目录或文件大小- 选项
-sh:显示总大小(s)并以人类可读格式(h)。 - 示例:
du -sh /home/user显示用户主目录的总大小。
- 选项
-
free:显示内存使用情况- 选项
-h:以人类可读格式显示。 - 示例:
free -h显示总内存、已用内存、空闲内存等。
- 选项
-
chmod:修改文件权限- 权限符号:
r(读,4)、w(写,2)、x(执行,1);用户类型:u(所有者)、g(组)、o(其他)、a(所有)。 - 示例:
chmod 755 script.sh设置所有者可读可写执行,组和其他用户可读执行;chmod u+x script.sh为所有者添加执行权限。
- 权限符号:
-
chown:修改文件所有者和组- 示例:
chown user:group file.txt将file.txt的所有者改为user,组改为group。
- 示例:
-
sudo:以超级用户权限执行命令- 需在 Cygwin 中配置
/etc/sudoers文件(默认可能不可用,需手动安装配置)。 - 示例:
sudo apt update(需先安装 Cygwin 的apt工具)。
- 需在 Cygwin 中配置
-
passwd:修改用户密码- 示例:
passwd修改当前用户密码;sudo passwd username修改其他用户密码(需 root 权限)。
- 示例:
网络命令
Cygwin 提供了丰富的网络工具,用于网络诊断、数据传输等。
-
ping:测试网络连通性- 示例:
ping google.com向google.com发送 ICMP 包,测试延迟和丢包率。
- 示例:
-
ifconfig/ip:显示或配置网络接口ifconfig需安装net-tools包,ip是现代 Linux 的默认工具(Cygwin 中需安装iproute2)。- 示例:
ifconfig显示所有网络接口的 IP、MAC 地址等信息;ip addr show显示相同信息。
-
netstat:显示网络连接、路由表、接口统计等- 选项
-an:显示所有连接(a),并以数字形式显示地址和端口(n);-t:TCP 连接;-u:UDP 连接。 - 示例:
netstat -an | grep :80查看 80 端口的连接情况。
- 选项
-
ssh:安全远程登录- 示例:
ssh user@remote_host以用户user登录远程主机remote_host。
- 示例:
-
scp:通过 SSH 安全复制文件- 示例:
scp local_file.txt user@remote_host:/path/to/remote_dir/将本地文件复制到远程主机;scp user@remote_host:remote_file.txt ./下载远程文件到本地。
- 示例:
-
wget/curl:下载网络资源wget简单直接,curl支持更多协议和功能(如 HTTP 请求、上传文件)。- 示例:
wget https://example.com/file.zip下载文件;curl -O https://example.com/file.zip同样下载文件(-O保持原文件名)。
-
nslookup/dig:DNS 查询- 示例:
nslookup google.com查询google.com的 IP 地址;dig google.com显示更详细的 DNS 信息(需安装dnsutils)。
- 示例:
-
traceroute:显示数据包到目标主机的路径- 示例:
traceroute google.com显示数据包经过的路由节点。
- 示例:
压缩和解压命令
Cygwin 支持多种压缩格式,如 .zip、.tar.gz、.tar.bz2 等。
-
zip/unzip:处理 ZIP 格式- 示例:
zip -r archive.zip dir/将目录dir压缩为archive.zip;unzip archive.zip解压 ZIP 文件。
- 示例:
-
tar:处理 tar 归档文件(常配合 gzip/bzip2 压缩)- 常用选项:
-c:创建归档;-x:解压;-v:显示过程;-f:指定文件名;-z:gzip 压缩/解压;-j:bzip2 压缩/解压。
- 示例:
tar -czf archive.tar.gz dir/将dir压缩为gzip格式的 tar 包;tar -xzf archive.tar.gz解压gzip格式的 tar 包;tar -cjf archive.tar.bz2 dir/压缩为 bzip2 格式;tar -xjf archive.tar.bz2解压 bzip2 格式。
- 常用选项:
-
gzip/gunzip:处理.gz格式- 示例:
gzip file.txt压缩file.txt为file.txt.gz;gunzip file.txt.gz解压。
- 示例:
-
bzip2/bunzip2:处理.bz2格式- 示例:
bzip2 file.txt压缩为file.txt.bz2;bunzip2 file.txt.bz2解压。
- 示例:
其他常用命令
-
man:显示命令手册页- 示例:
man ls查看ls命令的详细用法(按q退出)。
- 示例:
-
which:查找命令的可执行文件路径- 示例:
which ls输出ls命令的路径(如/usr/bin/ls)。
- 示例:
-
alias:设置命令别名- 示例:
alias ll='ls -lah'设置ll为ls -lah的别名;unalias ll取消别名。
- 示例:
-
history:显示命令历史记录- 示例:
history显示最近使用的命令;!100执行历史记录中第 100 条命令。
- 示例:
-
date:显示或设置系统时间- 示例:
date显示当前时间;date +"%Y-%m-%d %H:%M:%S"格式化输出时间(如2023-10-01 15:30:00)。
- 示例:
常用命令速查表
| 类别 | 命令 | 功能描述 | 常用示例 |
|---|---|---|---|
| 文件列表 | ls |
列出目录内容 | ls -lah |
| 切换目录 | cd |
切换当前工作目录 | cd /home/user |
| 显示当前目录 | pwd |
显示当前完整路径 | pwd |
| 创建目录 | mkdir |
创建目录 | mkdir -p new/dir |
| 删除文件/目录 | rm |
删除文件或目录 | rm -rf dir |
| 复制文件/目录 | cp |
复制文件或目录 | cp -r src dst |
| 移动/重命名 | mv |
移动或重命名文件/目录 | mv old.txt new.txt |
| 查看文件内容 | cat |
显示文件内容 | cat file.txt |
| 分页查看 | less |
分页显示文件内容 | less file.txt |
| 搜索文本 | grep |
搜索文本内容 | grep "error" log.txt |
| 进程管理 | ps |
显示进程状态 | ps -ef |
| 终止进程 | kill |
终止指定进程 | kill -9 1234 |
| 磁盘空间 | df |
显示磁盘使用情况 | df -h |
| 目录大小 | du |
显示目录或文件大小 | du -sh /home |
| 网络连通性 | ping |
测试网络连通性 | ping google.com |
| 远程登录 | ssh |
安全远程登录 | ssh user@host |
| 压缩文件 | tar |
创建或解压 tar 归档文件 | tar -czf archive.tar.gz dir/ |
| 命令手册 | man |
显示命令帮助 | man ls |
相关问答 FAQs
Q1:Cygwin 中如何解决中文显示乱码问题?
A:Cygwin 默认可能使用 UTF-8 编码,而 Windows 控制台可能使用 GBK 编码,导致中文乱码,解决方法:
- 在 Cygwin 终端中运行
export LANG=zh_CN.UTF-8设置环境变量(临时生效); - 永久生效:在
~/.bashrc或~/.bash_profile文件中添加export LANG=zh_CN.UTF-8,然后运行source ~/.bashrc; - 确保 Windows 控制台编码设置为 UTF-8:在 Cygwin 终端右键选择“Options”->“Text”,勾选 “UTF-8”。
Q2:Cygwin 中如何安装和管理软件包?
A:Cygwin 使用 setup-x86_64.exe(64 位系统)或 setup-x86.exe(32 位系统)作为软件包管理器,命令行中可通过 apt-cyg 工具(需先安装)管理包:
- 安装
apt-cyg:下载apt-cyg脚本(如从 GitHub),放入 Cygwin 的/usr/local/bin目录,并赋予执行权限(chmod +x /usr/local/bin/apt-cyg); - 更新软件包列表:
apt-cyg update; - 安装软件包:
apt-cyg install package_name(如apt-cyg install vim); - 卸载软件包:
apt-cyg remove package_name; - 搜索软件包:
apt-cyg search keyword。
注意:apt-cyg是第三方工具,也可直接通过setup-x86_64.exe的图形界面管理软件包。
