精华内容
下载资源
问答
  • Windows系统目录结构

    千次阅读 2020-06-24 21:02:31
    Windows系统目录及功能 ├—WINDOWS │ ├—system32(存放Windows的系统文件和硬件驱动程序) │ │ ├—config(用户配置信息和密码信息) │ │ │ └—systemprofile(系统配置信息,用于恢复系统) │ │ ├—...

    Windows系统目录

    ├—WINDOWS
    │ ├—system32(存放Windows的系统文件和硬件驱动程序)
    │ │ ├—config(用户配置信息和密码信息)
    │ │ │ └—systemprofile(系统配置信息,用于恢复系统)
    │ │ ├—drivers(用来存放硬件驱动文件,不建议删除)
    │ │ ├—spool(用来存放系统打印文件。包括打印的色彩、打印预存等)
    │ │ ├—wbem(存放WMI测试程序,用于查看和更改公共信息模型类、实例和方法等。请勿删除)
    │ │ ├—IME(用来存放系统输入法文件,类似WINDOWS下的IME文件夹)
    │ │ ├—CatRoot(计算机启动测试信息目录,包括了计算机启动时检测的硬软件信息)
    │ │ ├—Com(用来存放组件服务文件)
    │ │ ├—ReinstallBackups(电脑中硬件的驱动程序备份)
    │ │ ├—DllCache(用来存放系统缓存文件。当系统文件被替换时,文件保护机制会复制这个文件夹下的文件去覆盖非系统文件)
    │ │ ├—GroupPolicy(组策略文件夹)
    │ │
    │ ├—system(系统文件夹,用来存放系统虚拟设备文件)
    │ ├— N t U n i n s t a l l NtUninstall NtUninstall(每给系统打一个补丁,系统就会自动创建这样的一个目录,可删除)
    │ ├—security(系统安全文件夹,用来存放系统重要的数据文件)
    │ ├—srchasst(搜索助手文件夹,用来存放系统搜索助手文件,与msagent文件夹类似)
    │ ├—repair(系统修复文件夹,用来存放修复系统时所需的配置文件)
    │ ├—Downloaded Program Files(下载程序文件夹,用来存放扩展IE功能的ActiveX等插件)
    │ ├—inf(用来存放INF文件。INF文件最常见的应用是为硬件设备提供驱动程序服务,不建议删除其中文件)
    │ ├—Help(Windows帮助文件)
    │ ├—Config(系统配置文件夹,用来存放系统的一些临时配置的文件)
    │ ├—msagent(微软助手文件夹,存放动态的卡通形象,协助你更好地使用系统。若觉得没有必要,可直接删除)
    │ ├—Cursors(鼠标指针文件夹)
    │ ├—Media(声音文件夹,开关机等wav文件存放于此)
    │ ├—Mui(多语言包文件夹,用来存放多国语言文件。简体中文系统中这个文件夹默认是空的,但不建议删除此文件夹)
    │ ├—java(存放Java运行的组件及其程序文件。不建议删除其中文件)
    │ ├—Web
    │ │ ├—Wall*****(存放桌面壁纸的文件夹)
    │ │
    │ ├—addins(系统附加文件夹,用来存放系统附加功能的文件)
    │ ├—Connection Wizard(连接向导文件夹,用来存放“Internet连接向导”的相关文件)
    │ ├—Driver Cache(驱动缓存文件夹,用来存放系统已知硬件的驱动文件)
    │ │ └—i386(Windows操作系统自带的已知硬件驱动文件,可删除以节省空间)
    │ ├—TEMP(系统临时文件夹,其中内容可以全部删除)
    │ ├—twain_32(扫描仪相关)
    │ ├—AppPatch(应用程序修补备份文件夹,用来存放应用程序的修补文件)
    │ ├—Debug(系统调试文件夹,用来存放系统运行过程中调试模块的日志文件)
    │ ├—Resources(系统资源文件夹,用来存放系统SHELL资源文件,就是我们在桌面上所看到的主题)
    │ │ └—Themes(桌面主题都存放于此,可删除无用主题)
    │ ├—WinSxS(存储各个版本的Windows XP组件,减少因为DLL文件而引起的配置问题)
    │ ├—ime(输入法信息)
    │ ├—PCHealth(用来存放协调、配置和管理计算机正常运行的文件)
    │ │ └—HelpCtr(帮助和支持)
    │ │ ├—Binaries(我们常用的msconfig就在这里哟)
    │ ├—Offline Web Pages(脱机浏览文件存放于此)
    │ ├—Prefetch(预读取文件夹,用来存放系统已访问过的文件的预读信息(此信息是系统在访问时自动生成的新信息),以加快文件的访问速度,其扩展名为“PF”。可以将此文件夹中的文件删除)
    │ ├—ShellNew
    │ ├—Fonts(字体文件夹。要安装某种字体只需将字体文件复制到该目录下即可)
    │ ├—pss(用来备份系统启动配置文件的,一般对“Boot.ini”、“System.ini”和“Win.ini”三个文件进行备份,扩展名为“backup”。如果系统原有的这三个文件损坏的话,可以从这里进行恢复。不建议删除)
    │ ├—Registration(注册文件夹,用来存放用于系统COM+或者其他组件注册的相关文件。不建议删除这里的文件)
    │ └—Downloaded Installations(存放一些使用Windows Installer技术的安装程序,主要用来对程序进行修复等操作)
    ├—Documents and Settings
    │ ├—Default User
    │ │ ├—Application Data(通用应用程序数据文件夹。此处存放着已经安装的一些应用程序的专用数据)
    │ │ ├—桌面
    │ │ ├—Favorites(收藏夹)
    │ │ ├—NetHood(网络共享目录)
    │ │ ├—My Documents(我的文档)
    │ │ ├—PrintHood(打印共享目录)
    │ │ ├—Recent(最近打开的文档)
    │ │ ├—SendTo(鼠标右键发送到)
    │ │ ├—「开始」菜单
    │ │ ├—Templates(模板文件夹,可能有Word、Excel等的模板文件)
    │ │ └—Local Settings
    │ │ ├—Application Data
    │ │ └—Temp(临时文件目录。在系统和软件的运行过程中产生的临时文件就存放在于此。需定期清理)
    │ │ └—Temporary Internet Files(Internet临时文件夹。需定期清理)
    │ ├—All Users(所有用户文件夹,这里的更改对所有用户有效)
    │ └—Administrator(系统管理员帐户的文件夹)
    ├—Program Files
    │ ├—Common Files(共享的应用程序文件存放于此)
    │ ├—Internet Explorer(IE浏览器)
    │ ├—ComPlus Applications(COM+ 组件的配置和跟踪,一般为空)
    │ ├—Windows Media Player(WINDOWS媒体播放器)
    │ ├—WindowsUpdate(用于Windows的升级,可删除)
    │ ├—InstallShield Installation Information
    │ ├—Uninstall Information(存放软件卸载信息,删除后可能导致部分软件无法卸载)
    ├—wmpub(windowsmedia service的目录)
    ├—boot(一键还原等软件的文件夹)
    ├—Inetpub(IIS文件夹)
    ├—Downloads(Flashget默认下载文件夹)
    ├—System Volume Information(系统还原文件夹)

    Documents and Settings

    Documents and Settings文件夹是Windows NT/2000/XP/2003操作系统中用来存放用户配置信息的文件夹。默认情况下在系统分区根目录下,其下包括:Administrator、All Users、Default User、用户文件夹。如果你将隐藏和系统的文件(夹)都显示出来的话,还会发现诸如LocalService、NetworkService等更多的文件夹。
    1、用户名/「开始」菜单 All Users\「开始」菜单
    2、收藏夹:该文件夹位于每个用户名目录下。
    3、My Documents:我的文档
    4、Local Settings:该文件夹保存了应用程序数据、历史和临时文件

    Program Files

    Program Files 是程序文件,就是说Windows 操作系统,当然也包括其它的操作系统各种软件默认安装到的目录,位于C盘分区(“C:\Program Files”,"%ProgramFiles%")。但也可根据用户的需要自定义到别的分区。
    一个初始的 Windows 系统中的 Program Files 里一般有以下文件夹:

    1. Common Files: 提供程序中的一些共享配置文件。
    2. Internet Explorer: 网络浏览器。
    3. Windows Media Player: 媒体播放器。
    4. Movie Maker: 影片制作工具。
    5. Outlook Express: 提供邮件收发功能。
    6. NetMeeting: 网络聊天软件。
    7. Messenger: 新版网络聊天工具。
    8. Online Services: 提供创建网络连接的服务商。
    9. Microsoft Office: 办公软件集合,包括文字处理 Word、表格处理 Excel、幻灯处理 PowerPoint、数据库处理 Access、邮件处理 Outlook 和网页处理 FrontPage。
      其余的文件夹,都是之后安装的程序所在文件夹。

    更改默认安装路径
    由于系统分区空间宝贵,因此许多人会将应用程序安装到其他分区,比如D:。然而,一般情况下软件在安装时都会自动选择系统默认的C:\Program Files文件夹,每次都要更换安装路径,非常麻烦,需要更改默认安装路径来解决。一般通过修改注册表键值来解决该问题。步骤如下:
    1.打开注册表编辑器(按Windows+R键打开运行命令,输入regedit,即可打开注册表编辑器)。
    2.定位到 【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion】。
    3.将ProgramFilesDir字符串值改为D:\Program Files或其他路径。
    注:文件一般路径的分隔符为"",注册表路径分隔符为"\"。

    ProgramData

    programdata是位于电脑系统盘(默认C盘)根目录的一个系统文件夹,它是公用的被创建文件夹或文件存放的地方,多为软件缓存,这些文件夹或文件由程序或管理员用户控制.很多软件卸载后并没有删除配置,需要我们手动删除。

    展开全文
  • 手动清理Windows系统目录

    千次阅读 2018-09-18 09:17:56
    以下清理目录基本适用于所有版本的Windows,有些目录在高版本的Windows中被自动清理了部分,如果有系统自带的磁盘清理工具,建议先运行一次进行标准清理,效果不大的话再进行下面的手动清理,前3项清理是安全的。...

    以下清理目录基本适用于所有版本的Windows,有些目录在高版本的Windows中被自动清理了部分,如果有系统自带的磁盘清理工具,建议先运行一次进行标准清理,效果不大的话再进行下面的手动清理,前3项清理是安全的。

    1. 安装日志目录:%windir%\Logs\Cbs,普通用户这辈子都用不到安装日志,需要先停止Windows Modules Installer服务才能删除文件(net stop TrustedInstaller)。

    2. 补丁下载目录:%windir%\SoftwareDistribution\下的Download(补丁下载文件)及DataStore(安装历史纪录),Download可以全部删除,DataStore.edb是更新历史记录,Win7系列轻松上G,可以删除,不知道Microsoft记录什么这么啰嗦,删除更新记录并不会导致补丁重复更新,需先停止Windows Update服务才能删除(net stop wuauserv)。

    3. 驱动备份:%windir%\System32\DriverStore\FileRepository,曾经的驱动程序都很小,基本就几个sys,inf文件,后来的驱动为了照顾小白都做成了安装程序,而且为了省事把不相干的型号也打包在一起导致安装包巨大,例如Intel及Nvidia的显卡驱动,Windows Update有自动更新驱动的功能,多更新几次驱动,这个目录轻松超过10G,不建议手动删除,可使用工具Driver Store Explorer进行选择性删除,比如只保留最新的版本,下载地址:https://download.csdn.net/download/aniven/10672904

    4. 程序安装源:%windir%\Installer,这个目录是隐藏的,如果系统使用Windows Installer安装了大量的程序,这里都会保存*.msi的安装源可用于卸载或修复,看程序安装包如何设计msi有大有小,总之这个目录轻松可上20G,该目录需谨慎清理,如果删除了相关的安装源,可能导致程序无法卸载或者无法安装,例如JRE/JDK这种SB安装程序,安装源被删除无法卸载也就算了,找来相同版本的安装包覆盖安装,也提示缺少msi文件,msi就是自己解压出来的为毛还要去找原来程序的msi?总之Windows Installer是世界上最SB的程序。

    5. 系统组件目录:%windir%\WinSxS,轻松上10G,里面保留了Windows系统组件的各种版本,从Vista开始添加系统功能不再需要安装光盘就是因为都存在了这里,还不如放个3-4G的安装镜像在硬盘上,而且也没人三天两头添加删除组件,总之这个目录比较重要最好不要清理,嫌大的话可以压缩一下目录(右键->属性->压缩内容以节省空间),补丁KB2852386可以清理较旧版本的组件。 

    展开全文
  • Windows系统如何mount盘符到目录

    万次阅读 多人点赞 2019-08-31 10:58:50
    本文是从另一篇关于Linux文件系统实现的文章里摘出来的。 Windows上如何将一个文件系统分区挂载到一个目录,这其实是一个 硬需求! 是的,非常硬的需求。因为我们总是面临C盘,D盘...我以前确实不知道Windows系统...

    本文是从另一篇关于Linux文件系统实现的文章里摘出来的。

    在Windows上如何将一个文件系统分区挂载到一个目录,这其实是一个 硬需求! 是的,非常硬的需求。因为我们总是面临C盘,D盘满了却无法动态扩容问题。所以,在有一天我因为路上堵车撸了一个Linux上的最小的tinyfs之后,就想到顺便解决一下Windows的mount问题,并且发现了方法,就记录了下来。

    我以前确实不知道Windows系统也能mount文件系统分区到目录,但是我一直都觉得有办法做到,毕竟Windows如此成熟的操作系统,怎能错过 UNIX正确的mount机制 呢?UNIX的古老mount是如此的完美!

    先谈谈UNIX mount机制

    这是个古老的机制。早在UNIX初始,经典创世论文《The UNIX time-sharing system》里就提到了mount机制:
    在这里插入图片描述

    mount机制如此设计的源泉在于目录的定义:

    Directories provide the mapping between the names of files and the files themselves, and thus induce a structure on the file system as a whole.

    而我们知道,UNIX最初定义的文件类型包括三大类:

    • 普通数据文件。
    • 目录。 【对,目录也是文件!】
    • 特殊文件。

    这决定了目录是一个递归嵌套的结构。最终是下面的两个核心造就了UNIX树形的文件系统结构:

    1. 所有文件系统均通过目录组织。
    2. 目录是递归嵌套的。

    所有的文件系统均通过目录组织,这意味着每一个文件系统均有一个根目录,而目录本身就是递归嵌套的,所有在一棵树上,每一个目录节点均可以看作一棵子树的根,这就是mount点:

    • 每一棵子树均可以挂载一个文件系统。

    在这里插入图片描述
    上图中每一个中间节点均可以挂载一个新的文件系统。

    我们找到了mount的根源。

    有了mount机制,试问一个目录可以有多大?答案是它可以无穷大,它可以挂载整个世界。

    再谈谈Linux的实现

    Linux作为类UNIX系统,当然实现了mount机制。先看Linux文件系统的表象:
    在这里插入图片描述
    但实际上,在mount机制下,它是这个样子:
    在这里插入图片描述

    两组链表将整个mount树组织了起来,让它成了我们看起来的树的样子:

    1. 文件系统链表。
    2. 每一个文件系统的mount挂载点链表。

    接着谈谈Linux和Windows文件系统组织的异同

    我平时喜欢把类似的东西放在一起比较,比如秦汉和罗马帝国之类的,所以圈内的经常有人想让我谈下Windows和Linux的文件系统之间区别。

    先看一篇很早之前的文章:
    Linux文件系统的设计: https://blog.csdn.net/dog250/article/details/6347504/
    该文章讲了Linux文件系统mount机制的超级好处。

    Windows系统并非和UNIX系统师出同门。Windows继承了DOS的文件系统的机制。

    我不是很懂Windows的内在实现机理,所以我只能外在的谈一下。Windows和Linux对待文件系统组织的区别,貌似非常对称:

    • Linux是把文件系统(或者说格式化为某个文件系统的磁盘分区)挂载在目录上。
    • Windows是把目录挂在已经格式化的盘符(其实是一个逻辑卷,即磁盘分区)上。

    注意,我说的是文件系统的组织,而不是文件系统本身,所以我并没有在比较NTFS/extX的格式和处理方面的区别,说白了,我就是在说Windows和Linux分别是怎么 "mount" 文件系统的。

    UNIX一开始就 抽象 了文件系统,将其看作是一个树形的靠mount机制可以无限扩展目录,而DOS可能最初只是将一个具体的磁盘文件系统映射到了内存中。务实的PC操作系统并没有对文件系统做抽象。

    所以说,按照以上的理解:

    • Linux若想挂一个文件系统,必须要有一个目录。
    • Windows若想挂一个文件系统的目录,必须要有一个盘符。

    所以说,我们看到Windows系统中的 “C盘” ,就像看到Linux中的 “/目录” 一样

    为什么Windows没有采用几乎已经是范式的UNIX/Linux文件系统树形mount的实现方式,非要采用一个盘符一个文件系统的方式呢?几乎每个人都知道UNIX/Linux的mount机制会更好一些,无缝插拔,无限扩展,然而Windows却貌似并未采用。

    我们进入Linux系统后,输入mount命令,会看到下面的信息:
    在这里插入图片描述
    每一个磁盘,都挂载在一个目录上,这是一个典型的 可插拔的分层树形 结构。

    在Windows系统,类似的信息如下(这里只是初步看来):
    在这里插入图片描述
    可见,Windows的文件系统是直接诉诸逻辑卷的,缺失了目录挂载点。因此,在对待 文件系统动态扩容(而不是磁盘分区扩容) 操作上,就非常麻烦,可插拔操作几近不可能。

    请注意在微软系Windows系统的前身是DOS,DOS这个单词中的D指的就是Disk的意思。在DOS时代,内存及其少,少得可怜,所以干嘛不直接用盘符来直接索引目录的起始呢?更何况,彼时一般只有一块磁盘,磁盘即系统,系统宿主就是磁盘,故名曰 Disk Operating System ,即 DOS

    磁盘文件系统,即DOS的内在灵魂,一直延续到了今日。

    如何非要和Linux文件系统类比,Windows的盘符更像是Linux的mount数据结构,而不仅仅是个盘符,照着Linux文件系统的结构,我试着画一画Windows的类似结构,不出意外,它看起来是这个样子:
    在这里插入图片描述

    但事实上,这只是个表象,或者说这只是Windows系统在最初时候文件系统的样子,如今,Windows NT虽然表面上仍然保持这个样子,但实际上内在的实现早就类似于UNIX/Linux的mount机制了。

    好了,Windows文件系统的种种不如UNIX/Linux就到此为止,接下来要说的是,Windows系统有能力做到UNIX/Linux系统那般的树形目录mount结构。我们看看如何来做。

    Windows文件系统的mount挂载

    “实际是否去做”“是否有能力去做” 完全是两码事。很少有人见过Windows系统的树形mount结构,因为:

    • Windows为了兼容,舍弃了很多表面的东西,至少它要看起来仍然很像最初的Windows 95甚至Windows 3。
    • 在Windows下,很少有人折腾命令行,所以很少有人去折腾diskpart,mountvol等命令。而彩蛋就在这些命令里。

    下面我来step by step演示如何来做。

    方法1:使用diskpart命令

    diskpart命令类似Linux的fdisk命令,详见:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/diskpart

    1. 首先准备若干空闲的逻辑卷。在我的例子中,我准备了两个NTFS分区,D盘和E盘:
      在这里插入图片描述
    2. 我们看一下diskpart命令里的assign子命令:
      在这里插入图片描述
      Windows命令行的help非常棒,让我有种操作Cisco路由器的感觉。
      值得注意的是, 上述help提示中,PATH代表的目录必须是一个空目录。 这是和UNIX/Linux的文件系统挂载点任意覆盖已有目录所不同的。
    3. 现在让我们看一下D盘和E盘的表象:
      在这里插入图片描述
    4. 我们在C盘新建一个目录mnt,希望将E盘的NTFS系统挂载在mnt目录:
      在这里插入图片描述
    5. 让我们开始吧!先list一下所有的逻辑卷:
      在这里插入图片描述
    6. 选择标识E盘的逻辑卷标号,并且挂载它到C盘的mnt目录:
      在这里插入图片描述
    7. 我们看到E盘消失了:
      在这里插入图片描述
    8. E盘被mount到了C盘的mnt目录:
      在这里插入图片描述
    9. 哇!果然如此:
      在这里插入图片描述
    10. 让我们操作一番E盘,就像操作C盘的mnt目录一般:
      在这里插入图片描述
    11. 让我们继续在E盘的mount点C:\mnt继续创建新目录挂载D盘:
      在这里插入图片描述
    12. D盘mount成功,并创建个文件:
      在这里插入图片描述
      这个时候,C盘就类似UNIX/Linux的根目录( “/” )了,所有其它两个逻辑卷盘符D盘,E盘嵌套mount在C盘下的目录!
    13. diskpart命令提示符下输入以下命令序列,恢复D盘逻辑卷:
      DISKPART> remove mount=c:\mnt\vol_D
      DISKPART> select vol=3
      DISKPART> assign mount=d:
      
    14. 最后我们看到的是这样:
      在这里插入图片描述

    所谓万变不离其宗,这就是了。Windows的内在依然没有逃过mount目录树?。

    方法2:使用mountvol命令

    这个命令像极了UNIX/Linux的mount命令。详见:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mountvol

    前一个diskpart实验中,我们已经将D盘挂在了C:\mnt\vol_D目录了,现在从那里接着做:
    在这里插入图片描述
    照着指引就可以做。比如我们把D盘挂载到C盘新建目录C:\mnt\newD上:
    在这里插入图片描述
    可见,Windows也是可以将同一个文件系统分区挂在不同的目录的。

    你可以将Linux的ext2,ext3等分区挂在Windows的目录,就像Windows的fat,ntfs分区挂在Linux上一样。实现这个只需要安装Windows下的ext2,ext3驱动即可,我用的是ext2IFS:
    http://www.fs-driver.org/

    安装好它以后,就可以识别接入Windows的ext2,ext3分区了,用IFS Driver给它们指派盘符(IFS Driver在控制面板可以找到):
    在这里插入图片描述
    然后就可以用mountvol来挂载了。

    其实,不指派盘符也可以,用mountvol命令也是可以显示出其uuid的,只不过你可能不好识别:
    在这里插入图片描述
    在这里插入图片描述

    方法3:使用系统管理GUI

    其实,Windows提供了mount逻辑卷的界面,只是很少被人使用罢了。

    计算机管理中点击磁盘管理:
    在这里插入图片描述
    选中一个逻辑卷,右键点击更改驱动器号和路径:
    在这里插入图片描述
    这样就可以删除,添加或者更改一个逻辑卷的挂载点了。

    操作总结

    可见,Windows系统也可以很方便的做到UNIX/Linux那样mount整个世界,而且方法还多种多样。

    这便解决了一个很大的痛点,即C盘满了的问题。然而切记,Windows无法将逻辑卷mount到非空目录,所以就很难靠mount一个块更大的磁盘分区完成诸如C:\Program Files之类目录的扩容,但是方法还是有的,本文不谈。


    最终,Windows内部维护文件系统的结构大概会是下面的样子:
    在这里插入图片描述

    嗯,如果让我来设计,我就会设计成这个样子。

    结论是,Windows系统表面上保持了C,D等盘符,但实际实现上,和UNIX/Linux无异。

    浙江温州皮鞋湿,下雨进水不会胖

    浙江温州皮鞋湿,下雨进水不会胖!

    展开全文
  • 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性;以及 Bash shell 的改写版本和许多 UNIX 实用程序,它们提供大家熟悉的 UNIX 命令行界面。前一个组件是一个 Windows 动态链接库 (DLL)。...

    1. 前言

      Cygwin 是一个用于 Windows 的类 UNIX shell 环境。 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性;以及 Bash shell 的改写版本和许多 UNIX 实用程序,它们提供大家熟悉的 UNIX 命令行界面。前一个组件是一个 Windows 动态链接库 (DLL)。后一个组件是一组基于 Cygwin DLL 的程序,其中许多是用未经修改的 UNIX 源代码编译的。它们合在一起提供大家熟悉的 UNIX 环境。
      Cygwin 使用 Windows 安装程序。Cygwin setup.exe 文件可以重新安装软件,可以添加、修改或升级 Cygwin 配置的组件。
      Cygwin的安装请看下面博文,这里不再详细描述了:

    http://jingyan.baidu.com/article/200957619b0c30cb0621b478.html

      下面主要描述一下它在windows系统上如何运行windows系统中程序,以及如何编译linux系统生成的程序。

    2. 编译linux程序

      当然,安装Cygwin的最大好处是,能够在手头没有安装linux系统情况下编译linux程序,例如执行makefile来编译程序并在windows系统上执行程序。
      首先,打开Cygwin程序,我的是64位“Cygwin64 Terminal”,然后看到类似如下界面:

          这里写图片描述

      然后查找自己的主目录echo $HOME,我的主目录HOME是如下:

    这里写图片描述

      打开Cygwin安装目录,你就会看到安装目录下HOME目录所在:

        这里写图片描述
     
      我的主目录是在home下面的FX子目录,Cygwin 软件是将其安装目录作为虚拟 UNIX 系统的根目录。当你编译对应的程序时候,就可以将程序放置在主目录下面,这样就可以无需cd命令进入其它目录再编译程序。
      一样,我们在主目录下用文本编辑器写一个Test.cpp实现Hello World输出功能的程序:

    #include<iostream>
    using namespace std;
    int main()
    {
        cout<<"Hello World!"<<endl;
        return 0;
    }

      编译:

    $ g++ Test.cpp
    $ g++ -o Hello.o -cpp Test.cpp

      我们会发现前一句执行完成,目录下面会生成一个a.exe的可执行文件,很多人可能感觉好奇怪,为啥是windows的可执行文件扩展名?这里需要解释一下Linux下目标文件和可执行文件。
      Linux平台下,.o文件一般是通过编译的但还未链接的目标文件,.out文件一般都是经过相应的链接产生的可执行文件(linux下)。当然这是一般情况下人们这么设置,而真正的,在linux中 .o通常保存的是可执行代码 ,至于可执行文件则没有规定扩展名,用的是文件属性位来决定的是否可执行,在chmod中设置。所以可执行文件其实并没有一个规定的扩展名,只是依靠文件属性来区分。而Cygwin在该环境下只好生成和windows系统可执行文件扩展名相同的exe文件格式。
      后面一句就正常生成一个目标文件Hello.o文件在当前目录下,然后执行无论哪个文件都能正常输出“Hello World!”了。

    ./a
    ./Hello.o

      当然cmake和make就相似操作了,执行相应CmakeList和Makefile文件,其它命令和linux下一样,这里不再细说。

    3. 访问windows系统下目录和软件

      正如上面说的,Cygwin 软件是将其安装目录作为虚拟 UNIX 系统的根目录。
      Cygwin 把安装目录中的子目录映射到 UNIX 目录。它以单独的卷的形式提供 Windows 驱动器,比如 /cygdrive/c。也就是说c盘主目录发生了一个映射关系的转变,由c: 转为/cygdrive/c,由此可以使用这样的虚拟路径启动 Windows 程序。例如打开IE浏览器,我们就可以执行下面的语句:

    /cygwin/c/Program\ Files/Internet\ Explorer/iexplore.exe

      空格记得使用转义字符转义,不然执行语句认为空格是语句结束符“\0”。“\ ”表示空格。


    个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!

    转载请注明出处:CSDN 无鞋童鞋

    展开全文
  • 得到计算机上Windows目录和系统目录

    千次下载 热门讨论 2002-08-16 00:00:00
     得到计算机上Windows目录和系统目录 
  • windows10 Linux子系统(wsl)文件目录

    万次阅读 多人点赞 2018-04-25 11:40:22
    简介 使用window中的Linux子系统创建的...ubuntu Linux子系统目录这个目录下 C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs 现在...
  • 工具学习:Windows系统中删除指定目录内的空文件夹 Windows系统中删除指定目录内的空文件夹的步骤如下: 创建记事本Clear.txt。 将下述代码复制到Clear.txt中,指定你想要处理的目录地址(代码中的目录为C盘根目录...
  • windows系统 WSL 的根目录位置

    千次阅读 2020-12-21 14:50:30
    目录对应位置 我安装的子系统是 Ubuntu18.04,根目录对应的位置是: ...windows中C、D、E盘,对应系统中/mnt目录中。 最后 在windows中安装Linux子系统,是为了方便开发,window自带的cmd和po
  • 新的Windows11系统中简化了用户的界面设计,外观上发生了一点改变,菜单键和任务栏不再像Windows7和Windows10那样位于左边了,而是默认为居中,如果大家还是习惯左边的话可以设置中进行更改,并且还包含了
  • Windows系统下C盘根目录常见文件夹

    千次阅读 2016-11-27 10:45:26
    C盘根目录常见文件夹1. 用户(Win7)/Documents Settings(XP):这里存储了用户的设置,包括用户文档,上网浏览信息,配置文件等数据。 包括例如:...2. Windows:存放操作系统主要文件,非常重要。 例如:Syst
  • Windows7系统目录迁移:Users,Program Files,ProgramData 微软设计了比如:我的文档、我的OOXX,之类的东西,WIN7下面更连游戏、下载等等目录都设计好了,我也很乖巧的把各种文件都分门别类的放进去了。 ...
  • 如题,最近一直想能不能不用VM、virtualbox、Hyper-V等以虚拟机方式在windows10系统中安装linux,以便打造openwrt编译环境。网上摸索了许久,终于找到了一种方法,就是首先在windows10中打开开发模式(任务栏右下...
  • windows 系统cmd上查看目录结构

    千次阅读 2018-03-31 20:07:28
    分别使用以下命令:tree、tree /f 命令,就可以看到屏幕的效果了,还可以使用tree /a等命令,来生成想要的文件目录。 使用tree /f &gt; tree.txt命令,就可以把生成的文件目录树形结构写入到tree.txt文件中了,...
  • Windows下安装Ubuntu子系统目录位置

    千次阅读 2020-05-29 09:53:03
    在Windows下安装Ubuntu子系统后会面临一个找不到文件目录的问题,如下图 这里/home位置不明确 具体位置如下图 14262是我自己的目录,可能不同,参考下图选择 最后确定下是否是这个目录,我在目录下创建了几个文件...
  • 我装有Windows和Ubuntu的双系统情况,需要在windows下访问ubuntu中的文件,怎么办呢? 原因:Windows 是无法识别Linux 的文件系统的,通常都会显示“未格式化”,而Linux 的发型版本Ubuntu 却可以识别Windows 的...
  • Windows系统和Linux系统的区别

    万次阅读 多人点赞 2019-04-15 20:27:35
    区别一:linux区分大小写,windows在dos界面命令下不区分大小写; 区别二:文件系统区别 windows下的文件系统 Windows 下,打开 “计算机”,我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录...
  • 刚刚接触这个linux子系统,感觉坑比较多。原本打算系统中搭建openwrt编译...但我准备openwrt编译环境和准备编译的过程中,居然发现说我的子系统目录不支持大小写敏感,导致后续编译工作无法继续。于是艰难...
  • Windows系统在安装虚拟机centos系统之后,如何进行两者之间的文件传输和互操作,或者如何Windows端使用Xshell对Linux端进行远程操作?使用centos的文件上传下载小工具,可以快速的帮助我们从本地上传文件至Linux...
  • Redis安装在Windows系统

    万次阅读 2018-03-05 11:22:20
    一、 下载windows版本的Redis ...我下载的是:Redis-x64-3.2.100.zip 二、 解压下载好的版本到Redis目录(路径不能有中文和空格) ...三、 运行中输入cmd,启动命令redis-server redis.windows.conf,出现下...
  • 如图:查找子系统安装在windows系统的位置 对应查找路径:C:\Users\自己的用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
  • 1.我这里是桌面版的需要先按CTRL+Alt+T调出终端 2.输入:sudo apt-get install cifs-utils下载组件 ... 4.输入:sudo apt-get install smbclient安装共享访问工具 ... 6.输入:sudo mkdir /被创建的文件夹名 ...
  • Windows10 1903版本后 中 Ubuntu子系统安装后的文件目录所在路径 ubuntu 18.04 子系统所在目录 C:\Users\用户ID\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\...
  • C/C++ Windows API——获取系统指定目录

    万次阅读 2016-10-13 00:39:41
    <windows.h> 获取当前进程已加载模块的文件的完整路径 GetCurrentDirectory <windows.h> 获取当前目录 GetSystemDirectory <windows.h> 获取System32目录 SHGetSpecialFolderPath <ShlObj.h>
  • Windows系统日志分析

    万次阅读 2021-07-30 22:37:28
    Windows系统的日志文件存放C:/windows/system32/winevt/logs目录Windows系统的日志分为三种 系统日志:System.evtx (系统组件等日志) 应用程序日志: Application.evtx (应用程序等日志) 安全日志:Security...
  • 由于昨天电脑崩溃蓝屏,就电源键强制关机了。今天早上就发现我的F:盘的某个文件夹不能读取,因为这个文件夹也没什么作用且我也有备份的就想删掉算了(各位观众老爷...刚开始有网友说原因是windows文件系统损坏了可...
  • 64系统上运行32位DLL,应将DLL放在C:\Windows\SysWOW64目录下 之前都搞反了。...64位系统系统目录分为两种 64位用:C:\Windows\System32 32位用:C:\Windows\SysWOW64 64位系统注册表分为两种 64位用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 996,977
精华内容 398,790
关键字:

windows系统目录在哪里