菜鸟科技网

msys命令怎么用?有哪些常用命令?

MSYS 本身不是一个独立的命令,而是一个环境(Minimal SYStem),当你安装了 MSYS(MSYS2)并打开它的终端(如 MSYS2 MINGW64)后,你在这个终端里使用的命令,MSYS 命令。

msys命令怎么用?有哪些常用命令?-图1
(图片来源网络,侵删)

这些命令主要分为三类:

  1. GNU Coreutils 命令:这是最常用的一类,它们是 Linux/Unix 环境下标准命令行工具的 Windows 移植版。ls, cp, rm, mv 等。
  2. MSYS 内部命令:一些由 MSYS 自身提供的、用于环境管理和文件路径转换的命令。
  3. Shell 脚本和编程语言:你可以在这个环境中运行 Bash 脚本、Python、Perl 等。

下面我们分类进行详细说明。


GNU Coreutils 命令 (最常用)

这些命令的行为和你在 Linux 或 macOS 终端中几乎完全一样,它们是你在 MSYS 环境中进行日常文件操作和程序管理的主力。

命令 功能 示例
ls 列出目录和文件内容。 ls -l (显示详细信息)
ls -a (显示隐藏文件)
ls /c/Windows (列出 C 盘 Windows 目录)
cd 切换当前工作目录。 cd /home/user/myproject (切换到项目目录)
cd .. (返回上一级目录)
cd ~ (切换到用户主目录)
pwd 显示当前工作目录的完整路径。 pwd (可能输出 /c/Users/YourName)
cp 复制文件或目录。 cp source.txt destination.txt (复制文件)
cp -r source_dir/ destination_dir/ (递归复制目录)
mv 移动文件/目录,或重命名。 mv old_name.txt new_name.txt (重命名)
mv file.txt /another/directory/ (移动文件)
rm 删除文件或目录。 rm file.txt (删除文件)
rm -r directory_name/ (递归删除目录)
rm -f file.txt (强制删除,不提示)
mkdir 创建新目录。 mkdir new_folder (创建单个目录)
mkdir -p parent/child (创建多级目录,包括父目录)
touch 创建一个空文件,或更新文件的时间戳。 touch newfile.txt (创建新文件)
cat 查看文件内容,或合并文件。 cat file.txt (在终端显示文件内容)
cat file1.txt file2.txt > combined.txt (合并两个文件)
less / more 分页查看文件内容(推荐使用 less)。 less long_log_file.log (上下箭头翻页,q 退出)
grep 在文本中搜索匹配的行。 grep "error" log.txt (在 log.txt 中搜索包含 "error" 的行)
find 在目录树中搜索文件。 find . -name "*.cpp" (在当前目录及其子目录中查找所有 .cpp 文件)
man 显示命令的帮助手册页。 man ls (查看 ls 命令的详细用法说明)

重要提示:路径格式 在 MSYS 中,路径使用 Unix 风格的正斜杠

msys命令怎么用?有哪些常用命令?-图2
(图片来源网络,侵删)
  • Windows 的 C:\Users\YourName 在 MSYS 中表示为 /c/Users/YourName
  • 你的 MSYS 用户主目录通常是 /home/YourMSYSUsername

MSYS 内部命令

这些命令是 MSYS 特有的,主要用于处理 Windows 和 Unix 风格路径之间的转换,以及管理 MSYS 环境本身。

命令 功能 示例
pwd -W 显示当前工作目录的 Windows 风格路径 pwd -W (可能输出 C:\Users\YourName)
cygpath 一个非常强大的路径转换工具。 cygpath -w /c/Users/YourName (将 Unix 路径转为 Windows 路径)
cygpath -u "C:\Users\YourName" (将 Windows 路径转为 Unix 路径)
cygpath -a /proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE (访问 Windows 注册表)
export 设置或显示环境变量。 export PATH=$PATH:/usr/local/bin (将 /usr/local/bin 添加到 PATH)
source 在当前 shell 中执行脚本文件。 source ~/.bashrc (重新加载 bash 配置文件)
alias 创建命令别名。 alias ll='ls -alF' (创建 ll 命令,效果为 ls -alF)

包管理器命令

这是 MSYS2 最核心、最强大的功能之一,通过包管理器,你可以轻松安装、更新、删除各种开发工具和库。

命令 功能 示例
pacman 包管理器,类似 Linux 中的 aptyum pacman -S base-devel (安装基础开发工具包)
pacman -S git vim (安装 git 和 vim)
pacman -Rs vim (移除 vim 包)
pacman -Syu (同步数据库并升级所有包)
pacman -Ss keyword (搜索包含 keyword 的包)

MSYS2 的三个环境:

  • MSYS2`: 提供一个完整的 Bash 环境,运行原生 MSYS 程序,主要用于构建和运行需要 POSIX 环境的应用。
  • UCRT64 (MinGW-w64 UCRT runtime): 推荐用于现代 Windows 应用开发,编译的程序依赖最新的 UCRT (Universal C Runtime),与系统自带的 C 库兼容性最好。
  • MINGW64 (MinGW-w64 GCC runtime): 使用 GCC 工具链,依赖较旧的 MSVCRT (Microsoft Visual C++ Runtime),兼容性也很好,但 UCRT64 是未来的方向。

你通常会使用 pacman 来在对应的环境中安装工具,例如在 UCRT64 终端中运行 pacman -S gcc,安装的就是 UCRT 版本的 GCC。

msys命令怎么用?有哪些常用命令?-图3
(图片来源网络,侵删)

Shell 脚本和编程语言

由于 MSYS 提供了完整的 Bash shell,你可以在这里运行各种脚本和程序。

  • Bash 脚本 (.sh): 你可以编写 .sh 脚本,并使用 bash script.shchmod +x script.sh && ./script.sh 来执行。
  • Python: Python 通常已经预装或可以通过 pacman 轻松安装,你可以直接运行 python your_script.py
  • Perl, Ruby, Node.js 等: 同样,这些语言都可以通过 pacman 安装并在 MSYS 环境中使用。

实战示例:在 MSYS2 中编译一个 C 程序

假设你刚刚安装了 MSYS2,并想编译一个简单的 C 程序。

  1. 打开 UCRT64 终端 (这是推荐的现代环境)。

  2. 安装编译工具:

    # 更新包数据库并升级所有包
    pacman -Syu
    # 安装 GCC (C/C++ 编译器) 和 Make (构建工具)
    pacman -S gcc make
  3. 创建一个 C 源文件:

    # 创建一个名为 hello.c 的文件
    cat > hello.c << EOF
    #include <stdio.h>
    int main() {
        printf("Hello from MSYS2!\n");
        return 0;
    }
    EOF
  4. 编译程序:

    # 使用 gcc 将 hello.c 编译成可执行文件 hello.exe
    gcc hello.c -o hello.exe
  5. 运行程序:

    # 在 MSYS 终端中运行
    ./hello.exe
    # 输出: Hello from MSYS2!
  6. 在 Windows 中运行: 你可以在 Windows 的文件管理器中进入 MSYS 的 /home/YourUsername 目录(在 Windows 中对应 C:\msys64\home\YourUsername),双击 hello.exe 也能成功运行。

命令类别 主要用途 常见命令
文件/目录操作 管理文件和文件夹,与 Linux/Unix 一致 ls, cd, cp, mv, rm, mkdir
文本处理 查看和搜索文件内容 cat, less, grep, find
环境管理 设置环境变量、创建别名 export, alias, source
路径转换 在 Windows 和 Unix 路径间转换 cygpath, pwd -W
软件包管理 安装、更新、删除开发工具和库 pacman
程序执行 运行脚本和编译好的程序 ./your_program, python script.py

掌握 MSYS 命令的关键在于理解它为你提供了一个 Linux/Unix 风格的命令行环境,让你能够高效地在 Windows 上进行开发工作,特别是编译和运行跨平台软件。

分享:
扫描分享到社交APP
上一篇
下一篇