在windows cmd命令行中使用linux命令

本文的核心思想是使用别人已经编译好的linux命令的windows版本可执行文件
本文的重点是一些小bug的处理办法

下载Git并安装

这一步是为了获取Git中附带的linux命令的windows版本

  • 如果你已经安装了Git或者visual studio,可以在git安装目录的usr/bin文件夹下找到这些文件。visual studio2017附带的git目录在C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git,其他版本类似。或者你可以直接全盘搜索ls.exe找到位置
  • 如果你没有安装但是也不想安装,可以从这里找到一些linux常见命令的windows版本

添加到环境变量

将ls.exe所在的路径添加到环境PATH中。如果你不会,请百度一下,教程很多。

一些小bug的处理办法

  • ls的输出不是彩色
    使用--color=auto选项
  • ls无法正确显示中文
    设置环境变量LANG=zh_CN,在命令行中输入set LANG=zh_CN即可。参考资料

为了方便使用,写了一个小小的c程序,自动添加--color=auto以及临时环境变量LANG=zh_CN

#include <iostream>
int main(int argc, char *argv[])
{
    
    
	const char *program = R"("C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\usr\bin\ls.exe" --color=auto)";
	const char *env = R"(LANG=zh_CN)";
	_putenv(env);
	if (argc == 1)
	{
    
    
		system(program);
		return 0;
	}

	std::string command = program;

	for (int i = 1; i < argc; i++)
	{
    
    
		command += " ";
		command += argv[i];
	}

	int result = system(command.c_str());
	return result;
}

猜你喜欢

转载自blog.csdn.net/JackDual/article/details/111785083
今日推荐