如何在windows bat脚本中调用Cygwin并执行命令

如何在windows bat脚本中调用Cygwin并执行命令,第1张

1、如果是win10用户,别折腾Cygwin了,win10已经自己支持安装Ubuntu:控制面板—卸载或者更新程序—启用或关闭windows功能—适用于Linux的windows子系统前打勾,然后再在windows自带的应颤冲和茄盯用商店搜Ubuntu,然后安装,基本Linux的命令都可以运行,比Cygwin强大多了。

2、如果是win7等系统,安装cygwin后,在环境变量—系统环境变量—PATH的原有值后面加分号“”,然后再把cygwin安装的路径/bin添加在后面。

比如cygwin安装在C:\Program Files\cygwin文件夹里,那么变量路径为:C:\Program Files\cygwin\bin

3、系统环境变量弄好后,比如要执行放在C盘Program Files文件夹里的1.sh文件,那么bat文件为:bash C:\"Program Files"\1.sh

注:带空格的文判信件夹名需要加英文状态的引号("")

如果是win10的Ubuntu,和win7的路径写法有点不同,bat内容为:

bash /mnt/C/"Program Files"/1.sh

cygwin的安装文件很容易通过google找到。目前国内的网站上有"网络安装版"和"本地安装版"两种。标准的发行版应该是 网络安装版。两者并无大不同,下面介绍一下安装的过程。

step1. 下载后,点击安装文件(setup.exe)进行安装,第一个画面是GNU版权说明,点"下一宴橡步(N)—>",

环境变量

开始运行bash之前,应该设置一些环境变量。cygwin提供了一个.bat文件,里面已经设置好了最重要的环境变量。通过它来启动bash是晌庆旁最安全的办法。这个.bat文件安装在cygwin所在的根目录下。 可以随意编辑该文件。

CYGWIN变量用来针对cygwin运行时系统进行多种全局设置。开始时,可以不设置CYGWIN或者在执行bash前用类似下面的格式在dos框下把它设为tty

C:\>set CYGWIN=tty notitle glob

PATH变量被cygwin应用程序作为搜索可知性文件的路径列表。当一个cygwin进程启动时,该变量被从windows格式(e.g. C:\WinNT\system32C:\WinNT)转换成unix格式(e.g., /WinNT/system32:/WinNT)。如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:\cygwin\bin,其中差皮x:\cygwin 是你的系统中的cygwin目录。

HOME变量用来指定主目录,推荐在执行bash前定义该变量。当cygwin进程启动时,该变量也被从windows格式转换成unix格式,例如,作者的机器上HOME的值为C:\(dos命令set HOME就可以看到他的值,set HOME=XXX可以进行设置),在bash中用echo $HOME看,其值为/cygdrive/c.

TERM变量指定终端型态。如果没对它进行设置,它将自动设为cygwin。

LD_LIBRARY_PATH被cygwin函数dlopen()作为搜索.dll文件的路径列表,该变量也被从windows格式转换成unix格式。多数Cygwin应用程序不使用dlopen,因而不需要该变量。

进入安装模式选择画面。

step2. 安装模式有"Install from Internet"、"Download form Internet"、

"Install from Local Directory" 三种。"Install form Internet"就是直接从internet上装,适用于网速较快的情况。如果你和我一样网速不是很快,或者说装过之后想把下载的安装文件保存起来,下次不再下载了直接安装,就应该选择"Download form Internet",下载安装的文件(大约40M左右)。

事实上,所谓的"本地安装版",也是别人从网上下载全部文件后打的包(适用于中国国情嘛^_^)

step3. 接下来是选择安装目的路径和安装源文件所在的路径,之后就进入了选择安装包所在的路径。

注意了阿,这里可是重头戏。我第一安装的时候就是没有看清这一步,结果没有把gcc装进去,导致没法编译文件。

+ All Default

+ Admin Default

....

+ Devel Default

+ Editors Default

....

如上图所示,你在这个TreeView的某个节点上双击,就可以改变它的状态,如Default、Install、Uninstall、Reinstall四种状态。默认的都是Default状态,很多工具的默认状态都是不安装。

在这里我选择了在All这一行上后面的Default上点Install,全部安装,以免后患。(注意:这里的树形控件和win下面的不同,你试试点在All上点 和 在All这一行后面的Default上点,会有不同的响应)

step4. 点下一步,安装成功。它会自动在你的桌面上建立一个快捷方式。

好了,下面就开始我的linux旅程了。双击cygwin的快捷方式进入系统。

首先介绍几个简单的linux命令。

pwd 显示当前的路径

cd 改变当前路径,无参数时进入对应用户的home目录

ls 列出当前目录下的文件。此命令有N多参数,比如ls -al

ps 列出当前系统进程

kill 杀死某个进程

mkdir 建立目录

rmdir 删除目录

rm 删除文件

mv 文件改名或目录改名

man 联机帮助

less 显示文件的最末几行

由于linux下面的命令大多都有很多参数,可以组合使用。所以,每当你不会或者记不清楚改用那个参数,那个开关的时候,可以用man来查找,比如,我想查找ls怎么使用,可以键入

$ man ls

系统回显信息如下:

LS(1) FSF LS(1)

NAME

ls - list directory contents

SYNOPSIS

ls [OPTION]... [FILE]...

DESCRIPTION

List information about the FILEs (the current directory by

default). Sort entries alphabetically if none of -cftuSUX

nor --sort.

-a, --all

do not hide entries starting with .

-A, --almost-all

do not list implied . and ..

-b, --escape

print octal escapes for nongraphic characters

--block-size=SIZE

use SIZE-byte blocks

我的cygwin有呢,是不是你的版本不够高?升级一下?

test@pc ~/桌面

$ ls /bin

[.exe       渣困          cygpath.exe          infotocap.exe        rlversion.exe

addftinfo.exe         cygpcre-0.dll        install-info.exe     rm.exe

afmtodit              cygpcre.dll          install.exe          rmdir.exe

apropos               cygpcreposix-0.dll   ipck                 sdiff.exe

ascii.exe             cygpcreposix.dll     ipcrm.exe            sed.exe

awk.exe               cygpopt-0.dll        ipcs.exe             semstat.exe

banner.exe            cygreadline4.dll     join.exe             semtool.exe

basename.exe          cygreadline5.dll     kill.exe             seq.exe

bash.exe              cygreadline6.dll     less.exe             setfacl.exe

bashbug               cygserver-config     lessecho.exe         sh.exe

bunzip2.exe           cygstart.exe         lesskey.exe     模梁薯     sha1sum.exe

test@pc ~/桌面

$ ls /usr/bin

[.exe                 cygpath.exe          infotocap.exe   旦者     rlversion.exe

addftinfo.exe         cygpcre-0.dll        install-info.exe     rm.exe

afmtodit              cygpcre.dll          install.exe          rmdir.exe

apropos               cygpcreposix-0.dll   ipck                 sdiff.exe


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8265840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存