windows 的 wsl 命令

​wsl 文档:https://docs.microsoft.com/zh-cn/windows/wsl/
From :https://blog.csdn.net/weixin_34101784/article/details/88729575
From :https://www.cnblogs.com/Flat-White/p/13501639.html
玩转 WLS:Windows 10 Ubuntu子系统 :https://www.jianshu.com/nb/38447202

给 WSL安装图形管理工具 Webmin:https://www.jianshu.com/p/63a38da17fa0

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

为什么 Linux 上的程序无法在 Windows 上运行

了解过一点操作系统原理的同学应该都知道,这是 Windows 与 Linux 的内核提供的接口不同(系统调用、API 等)导致的。举个栗子,我们想知道某目录下的内容,在 Linux 下我们会使用 ls 命令,而在 Windows 下我们会使用 dir 命令。

当我们在 Linux 上执行 ls 命令,ls 会调用 getdents 这个系统调用,Linux 内核收到请求,将目录的内容返回给应用程序;当我们在 Windows 上执行 dir 命令,dir 会调用 NtQueryDirectoryFile 这个 API,NT 内核收到请求,将目录的内容返回给应用程序。虽然系统不同,但基本上都是一个道理。

然而,当我们把 Linux 上的应用程序拿到 Windows 上运行时,应用程序和内核就双双懵逼了。比如 ls 会尝试调用 getdents 系统调用(理想化的情况下,暂不考虑可执行文件格式等问题),Windows 的 NT 内核一看,心说:「这他娘的什么东西,老子不认识啊,啥情况啊」,ls 也想:「尼玛,内核怎么不回话啊,咋回事儿啊」……两边语言不通,应用程序自然无法正确执行。

但是有了 WSL,情况就不一样了。

依然拿 ls 举例,当我们在 WSL 中运行 ls 命令时,ls 会调用 getdents 系统调用(这个系统调用接口是 WSL 提供的,Windows 本身并没有这个接口),WSL 收到这个请求,明白了应用程序是想要知道目录的内容,于是把 Linux 的系统调用转换为 NT API NtQueryDirectoryFile。NT 内核收到 WSL 的请求,将目录的内容返回给 WSL,WSL 再把返回的内容包装好后返回给 ls

也就是说,WSL 在 Linux 应用程序与 Windows NT 内核之间起到了翻译者的作用。很简单的道理,既然 NT 内核无法理解 Linux 应用程序的 POSIX 系统调用,那就弄个翻译来将 POSIX 系统调用实时转换为 NT 内核能理解的 API 调用,突出一个见人说人话、见鬼说鬼话。

只要实现了足够多的系统调用翻译,那么理论上 WSL 可以完全模拟成一个 Linux 内核。

相信各位都听说过鼎鼎大名的 Cygwin。同样是能让 Linux 应用程序运行在 Windows 上,WSL 和 Cygwin 有什么不同呢?其实差别还是挺大的。

虽然 Cygwin 提供了完整的 POSIX 系统调用 API(以运行库 Cygwin*.dll 的形式提供),但其依然工作在 User Mode;而 WSL 中的 Linux 应用程序进程会被包裹在一个叫做 Pico Process 的东西里,这个东西里发出的所有系统调用请求都会被直接送往 Kernel Mode 中的 lxcore.sys 与 lxss.sys 处理。

同样是将 POSIX 系统调用转换为 Windows 中的 API,Cygwin 是转换成 Win32 API 的调用(因为它架设在 Win32 子系统上,很多内核操作受限于 Win32 的实现,比如 fork),而 WSL 则是转换为更底层的 NT API 调用(WSL 是与 Win32 平行的子系统,直接架设在 NT 内核上,可以通过 NT API 原生实现 fork 等系统调用)。

WSL 架构示意图。图片来源:Windows for Linux Nerds :https://blog.jessfraz.com/post/windows-for-linux-nerds/

最重要的一点:如果使用 Cygwin,Linux 应用程序的源码必须 link 至 Cygwin 运行库(Cygwin*.dll),修改源码重新编译后才能在 Windows 下运行。这些重新编译后的 Linux 应用程序在调用 POSIX API 时不会直接去请求内核,而是会去调用 Cygwin 运行库,由运行库翻译成 Win32 API、执行调用后返回结果。这也就意味着,重新编译后的应用程序需要依赖 Cygwin 运行库才能正常运行(有时候你会碰到的「缺少 Cygwin1.dll」报错就是这个原因),而且这样编译出来的可执行程序是纯正的 Win32 PE 格式封装,只能在 Windows 上运行。Cygwin 目录下,被编译成 Win32 可执行程序的 Linux 应用程序们。

 而在 WSL 下,我们可以直接运行未经任何修改的 ELF 格式 Linux 可执行程序。

总结:WSL 就像是一个翻译官,就算那些未经修改的 Linux 应用程序们操着一口纯正的 POSIX 系统调用语法,WSL 也能快速准确地将其翻译为 NT 内核能听懂的 API 调用;而那些使用了 Cygwin 重新编译后的 Linux 应用程序,就像是改造人一样变成了 Win32 应用程序的形状,还被套了个翻译机。程序自己(源码中)说的是 POSIX,经过翻译机(Cygwin 运行库)之后就变成 Win32 API 调用了,这样 NT 内核也能听得懂。但是每次添加新程序都要改造,多麻烦啊,还是 WSL 原生态更健康(笑)。

安装 WSL,拥抱可爱的 Linux

注意:WSL 仅支持 64 位系统

第一步,打开「控制面板」中的「程序与功能」,点击左侧边栏的「启用或关闭 Windows 功能」选项,在弹出的窗口中勾选「适用于 Linux 的 Windows 子系统」,然后点击确定(可能需要重启)。如果你懒得用 GUI,也可以直接在 PowerShell 中以管理员权限执行命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

 第二步,打开 Microsoft Store,搜索「WSL」。挑选一个你喜欢的 Linux 发行版,然后点击安装。(截至目前,商店中可用的发行版有 Ubuntu、openSUSE、SUSE Linux Enterprise Server、Debian 以及 Kali Linux。)

 第三步,在开始菜单中找到你刚刚安装的发行版,打开它。等待几分钟的初始化过程,设定好用户名与密码后(不需要与 Windows 的相同,用过 Linux 的选手应该都懂的)就会自动进入 Linux 环境。至此,你已经完成了 WSL 的安装。你也可以同时安装多个发行版,它们的数据都是独立的,互不影响。

Microsoft store下载的kali不包含任何工具 需要后续安装完整版kali

先更新源 使用命令:apt-get update

安装 vim:sudo apt-get install vim

更换 kali 源

sudo vim /etc/apt/sources.list

然后复制下面的源

#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free#浙大
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free#东软大学
deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib#官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib

然后使用如下命令查看源是否更换成功:cat /etc/apt/sources.list

更新源并安装完整版 kali

sudo apt-get update          # 更新源
sudo apt-get dist-upgrade    # 更新软件
sudo apt-get install kali-linux-large  # 安装完整版kali

许多教程这里的安装命令都是 sudo apt-get install kali-linux 或 sudo apt-get install kali-linux-full

这里也是找了很久才知道主要数据包名字改了 导致很多教程现在都失效了

链接:Major Metapackage Makeover | Kali Linux Blog 

 执行完第二条命令后有一个报错提示

/* 这个报错笔者第一次安装时没有遇到 但是后续多次尝试都有遇到这个问题= =

暂时不清楚原因 */

 执行如下命令修复可解决

sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
sudo mkdir /var/lib/dpkg/info/
sudo apt-get update
…
sudo apt-get -f install
…
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/

参考:https://blog.csdn.net/heray1990/article/details/47803541

然后再执行第三条命令安装完整版kali

如果更新源后没有更新软件直接执行第三条命令

可使用:sudo apt-get install kali-linux-large --fix-missing

这里中途会有一些图形化界面的选择选项 类似这种

 这里用翻译软件自行翻译选择合适选项

//有教程写有Yes选Yes有OK选OK 最后一个选“from inetd”

安装时大致查看过这些选项影响应该不大请自行斟酌

然后就等着黑框框里闪啊闪啊 等待安装完成

这里提一下Windows Terminal从PowerShell进入子系统只需使用kali或者bash命令

其中bash命令是在当前目录进入子系统

CTRL+D可以回到PowerShell/cmd

安装完成后简单的测试一下

 可以发现kali内置Python2 Python3 以及binwalk可以正常使用。至此 安装结束。

使用软件源镜像

由于众所周知的原因,各大发行版默认的软件源在中国大陆的访问速度是龟速。

我目前使用的是 ​ 清华大学的 Ubuntu 镜像源: :https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

安装多个发行版

Windows 10 Fall Creators Update 之后,WSL 支持同时安装多个 Linux 发行版,直接在 Microsoft Store 中搜索想要的发行版并点击安装即可。这些发行版可以同时运行,并且数据互相独立。你可以使用 wslconfig.exe 来查询已安装的发行版,或者更改默认的发行版。

删除发行版也很简单,直接卸载对应的商店应用即可(记得备份哦)。 

多种进入 WSL 的方式比较

新版支持同时安装多个发行版,那自然不能像以前那样只提供一个 bash.exe 入口了。

秋季创意者更新之后的 Windows 提供了 多种进入 WSL 环境的方式:

  • wsl.exe

    打开默认发行版中的默认 Shell。

  • <distroname>.exe

    打开指定发行版中的默认 Shell。

  • bash.exe (DEPRECATED)

    打开默认发行版中的 bash Shell。

    如果你更改了默认 Shell 却总是打开 bash,就说明你使用了这个入口。

你也可以通过这些入口直接在 WSL 中执行命令并返回结果:

  • <distroname> -c [command]
  • bash -c [command]
  • wsl [command](不再需要指定 -c) 

与 Windows 的互操作性

WSL 与 Windows 之间的互操作性 (Interoperability) 很牛逼。怎么个牛逼法呢?

Windows 下的所有盘符都挂载在 WSL 中的 /mnt 目录下,可以直接操作。WSL 中的所有数据则存放于 C:\Users\{你的用户名}\AppData\Local\Packages\{Linux发行版包名}\LocalState\rootfs 目录中(不要在 Windows 中修改这些文件,这会造成文件权限错误):

$ ls /mnt
c  d  e
$ mount -l
rootfs on / type lxfs (rw,noatime)
C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000)
D: on /mnt/d type drvfs (rw,noatime,uid=1000,gid=1000)
E: on /mnt/e type drvfs (rw,noatime,uid=1000,gid=1000)

可以在 Windows 命令行环境中直接调用 WSL 中的命令:

PS C:\temp> wsl ls -al
total 0
drwxrwxrwx 1 printempw printempw 4096 Sep  7 19:04 .
drwxrwxrwx 1 printempw printempw 4096 Sep  7 18:38 ..
-rwxrwxrwx 1 printempw printempw    4 Sep  7 19:04 foo.txt

也可以在 WSL 中直接启动 Windows 应用:

$ notepad.exe "C:\temp\foo.txt"

还可以通过 pipes 与 Windows 程序通信:

# 复制内容至 Windows 剪贴板
$ cat foo.txt | clip.exe

甚至可以把 Windows 命令和 WSL 命令混着用:

PS> ipconfig | wsl grep IPv4
IPv4 Address. . . . . . . . . . . : 192.168.1.114$ ipconfig.exe | grep IPv4 | cut -d: -f2
192.168.1.114$ ls -al | findstr.exe foo.txt
-rwxrwxrwx 1 printempw printempw    4 Sep  7 19:04 foo.txt$ cmd.exe /c dirVolume in drive C is WindowsVolume Serial Number is B263-****Directory of C:\temp2018/09/07  19:04    <DIR>          .
2018/09/07  19:04    <DIR>          ..
2018/09/07  19:04                 4 foo.txt1 File(s)              4 bytes2 Dir(s)  194,422,341,632 bytes free

同时,WSL 与 Windows 共享网络栈,也就是说你可以:

  • 在 WSL 中启动 web server,在 Windows 上使用浏览器访问;
  • 在 Windows 下启动 MySQL/Redis 服务器,在 WSL 中连接;
  • 诸如此类。

如果你对 WSL 与 Windows 之间互操作的原理有兴趣,可以参考一下这些文章:

  • WSL interoperability with Windows
  • Windows and Ubuntu Interoperability

DrvFs 文件权限问题

虽然 WSL 中可以直接访问 Windows 磁盘的内容,但如果你曾经这么做过,你应该对这样绿油油一片的 ls 不会感到陌生。为什么 NTFS 文件系统中的文件到 WSL 下权限就全部成 0777 了呢?

这主要是 DrvFs 中 Linux 文件权限的实现导致的。

在 WSL 中,Microsoft 实现了两种文件系统,用于支持不同的使用场景:

  • VolFs

    着力于在 Windows 文件系统上提供完整的 Linux 文件系统特性,通过各种手段实现了对 Inodes、Directory entries、File objects、File descriptors、Special file types 的支持。比如为了支持 Windows 上没有的 Inodes,VolFs 会把文件权限等信息保存在文件的 NTFS Extended Attributes 中。记得我上面警告过你不要在 Windows 中修改 WSL 里的文件吗?就是因为 Windows 中新建的文件缺少这个扩展参数,VolFs 无法正确获取该文件的 metadata,而且有些 Windows 上的编辑器会在保存时抹掉这些附加参数。

    WSL 中的 / 使用的就是 VolFs 文件系统。

  • DrvFs

    着力于提供与 Windows 文件系统的互操作性。与 VolFs 不同,为了提供最大的互操作性,DrvFs 不会在文件的 NTFS Extended Attributes 中储存附加信息,而是从 Windows 的文件权限(Access Control Lists,就是你右键文件 > 属性 > 安全选项卡中的那些权限配置)推断出该文件对应的的 Linux 文件权限。

    所有 Windows 盘符挂载至 WSL 下的 /mnt 时都是使用的 DrvFs 文件系统。

由于 DrvFs 的文件权限继承机制很微妙,最后导致的结果就是所有文件的权限都变成了 0777。而且由于早期的 DrvFs 不支持 metadata,所以你无法给这些文件 chown/chmod,只能对着绿油油的 ls 干瞪眼。不过好消息是,Windows Insider Build 17063 之后,DrvFs 也像 VolFs 一样支持给文件写入 metadata 了。

要启用 DrvFs 的 metadata 支持,你需要添加参数重新挂载磁盘:

# 修改成你自己的盘符
$ sudo umount /mnt/e
$ sudo mount -t drvfs E: /mnt/e -o metadata

不过如果仅仅是执行了这个,虽然支持了文件权限的修改,但磁盘下的文件权限默认依然还是 0777,除非你给它们整个 chmod 一遍。如果你不想这么做,也可以指定其他的 mount 参数:

$ sudo mount -t drvfs E: /mnt/e -o metadata,uid=1000,gid=1000,umask=22,fmask=111

这样磁盘下的文件的默认权限就是 0644ls 也不会再是绿油油一片啦。

 不过每次使用时都要重新挂载未免也太烦,我们可以通过另一个新特性 Automatically Configuring WSL 实现自动挂载。在 WSL 中创建 /etc/wsl.conf,在其中填写如下内容:

[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=111"
mountFsTab = true# 这个文件里还可以添加其他配置项,有兴趣的可以看看上面的链接

重启终端,所有的盘符就会使用上面的配置自动挂载啦(可以使用 mount -l 查看)。

另外,如果你想要给不同的盘符设定不同的挂载参数(上面的方法对所有盘符都有效,如果你想在 WSL 中运行 Windows 下的应用程序,就得每次都 chmod +x 一下,所以我一般都会把 C: 排除掉),就需要手动修改 /etc/fstab。首先确保 wsl.conf 中的 mountFsTab 为 true,然后编辑 /etc/fstab,添加如下内容:

# 不在此列表中的盘符会使用 wsl.conf 中的参数挂载
# 格式可以自己去查 fstab 的帮助文档
E: /mnt/e drvfs rw,relatime,uid=1000,gid=1000,metadata,umask=22,fmask=111 0 0

其他关于 WSL 的折腾

虽然 Microsoft 开发 WSL 出来主要是着重于命令行环境的使用,但经过测试,WSL 是可以通过 X Server 执行 GUI 应用程序的,甚至还可以在 WSL 里面用 Wine 执行 Windows 程序……(??)

也有人试过在 WSL 中运行完整的 DE,体验似乎还不错,有兴趣的同学可以去试试。

另外,你也可以通过某些神秘的方法用上 Microsoft Store 未提供的 Linux 发行版,比如 Arch Linux。

如果你对 WSL 的底层实现有兴趣,也可以去围观一下 WSL 的官方博客:

  • https://blogs.msdn.microsoft....
  • https://blogs.msdn.microsoft....

总结

虽然 WSL 很不错,但是其比起真正的 Linux 系统还是有很多不足(Docker 等涉及未实现的内核特性的软件无法使用,Raw socket 相关的操作依然容易出错,I/O 性能相比之下较为孱弱等)。如果你日常开发中需要使用到那些 WSL 未提供的 Linux 特性,那么还是乖乖跑 VM 或者装 Linux 吧。

对我来说,WSL 最大的意义就是,让我能够用我熟悉的 Linux 那一套去操作 Windows

如果你和我的需求一样,那么比起 Cygwin、VM 等解决方案,WSL 有着完整的 Linux 环境、强大的互操作性、更低的资源占用。离不开 Windows,却又羡慕 Linux 下强大命令行工具的各位,相信你们会喜欢 WSL 的。

而且最近几年 Microsoft 在笼络开发者方面的努力大家有目共睹,这里就容我夸上一句:

Microsoft,干得漂亮!

wsl 命令

wsl --help            显示wsl帮助
wsl --list --online        查看有哪些可用的系统
wsl --list                 查看所有安装的发行版
wsl -l -v                  查看已安装的Linux子系统
wsl --list --running       查看正在运行的发行版
wsl --install -d Ubuntu    安装系统Ubuntu
wsl -d Ubuntu              多个子系统时 ,-d 指定启动
wsl -s Ubuntu              设置默认发行版
wsl                        启动默认发行版
wsl --unregister Ubuntu-20.04               删除 某个 wsl 子系统,例如 Ubuntu-20.04
wsl -t Ubuntu #或者 wsl --terminate Ubuntu  让某个子系统关机在CMD中直接运行Linux命令,使用方法很简单:wsl + Linux 命令
wsl free -m     查看电脑内存
wsl ls          打印文件夹
wsl top         运行TOP命令用 Windows 资源管理器打开 Linux 文件系统
首先运行 wsl 进入 WSL 环境,运行explorer.exe . (注意不要忘了"点")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人机工程学/人因工程学的定义

来源&#xff1a;人机与认知实验室摘要&#xff1a;人机工程学&#xff08;Human Machine Environment&#xff09;和人因工程学&#xff08;Human Factor Environment&#xff09;国际百科全书的标题表明&#xff0c;人机工程学和人因工程学可能是两个独立的学科领域。人机工程…

Google Pixel 解锁BL、刷入Twrp、magisk Root、安装 Xposed

Google Pixel 解锁 BL、刷入Twrp及Root &#xff1a;http://www.itfanr.cc/2018/10/16/google-pixel-unlock-bl-and-root/ Pixel 安装 Xposed 框架&#xff1a;https://blog.csdn.net/someby/article/details/110388712 自己动手刷 pixel 镜像&#xff08; 原生镜像、自己编译…

全球人脸识别精度一年提高75.6%,拉动全球安防市场超高增长

来源&#xff1a;AI 科技评论摘要&#xff1a;有「工业界黄金标准」之称的美国国家标准与技术研究院&#xff08;National Institute of Standards and Technology&#xff0c;NIST&#xff09;最近公布了全球人脸识别算法测试&#xff08;FRVT&#xff09;结果 FRVT 2018&…

Android 手机的高级终端 Termux 安装、使用

From&#xff1a;https://www.sqlsec.com/2018/05/termux.html Termux 高级终端安装使用配置教程 &#xff1a;https://www.cnblogs.com/cutesnow/p/11430833.html 神器Termux 的使用记录&#xff1a;https://cloud.tencent.com/developer/article/1609398 adb shell 下使用 te…

#ifdef,#ifndef,#define,#endif解析(原)

我们在看一些开源的源代码的时候&#xff0c;经常会看到如下情景&#xff1a; # if defined(_PTHREADS) && !defined(_NOTHREADS) # define __STL_PTHREADS # endif # if defined(_UITHREADS) && !defined(_PTHREADS) && !defined(_NOTHREADS) # …

这10项创新技术正在引领零售业数字化转型

来源&#xff1a;资本实验室摘要&#xff1a;随着近几年电子商务的快速发展&#xff0c;全球实体零售业纷纷出现业绩下滑的现象&#xff0c;裁员、闭店、抛售成为一些传统零售巨头短期自救的方式&#xff0c;但这些方式却只能治标不治本&#xff0c;无法解决长期以来传统商业模…

内网穿透 --- frp、termite

​中文文档&#xff1a;https://github.com/fatedier/frp/blob/dev/README_zh.md 手机frp内网穿透搭建随身携带的服务器&#xff1a;https://blog.csdn.net/sinat_27938829/article/details/73604722 软路由 通过 Openwrt 自带的 Frp 插件&#xff1a;https://zhuanlan.zhihu.c…

熵最大导致智能?

来源&#xff1a;陶勇科学网博客摘要&#xff1a;20世纪50年代开始&#xff0c;现代宏观经济学在研究经济增长时&#xff0c;发现了一个神秘的变量“技术进步&#xff08;或者知识&#xff09;A”&#xff0c;这个变量所带来的经济增长被称作“索洛剩余”。2010年时笔者在Physi…

快速转 TypeScript 指南

From&#xff1a;https://segmentfault.com/a/1190000040582994 TypeScript 教程&#xff1a;https://www.runoob.com/typescript/ts-tutorial.html TypeScript 入门教程&#xff1a;http://ts.xcatliu.com/ TypeScript 超详细入门教程&#xff08;上&#xff09;&#xff1a;…

城市大脑建设的3个误区,大脑模型的分歧是关键

作者&#xff1a;刘锋 互联网进化论作者 计算机博士城市大脑是目前智慧城市建设热门的概念&#xff0c;因该说这是一个在中国本土诞生的科技概念和技术模型&#xff0c;作为一个新的领域&#xff0c;城市大脑究竟如何建设&#xff0c;事实上存在了两种不同的发展路径&#xff0…

关于mysql修改密码后的问题

今天心血来潮&#xff0c;把连接mysql的密码改了&#xff0c;wampSever重启后就遇到“phpMyAdmin 试图连接到 MySQL 服务器&#xff0c;但服务器拒绝连接。您应该检查 config.inc.php 中的主机、用户名和密码&#xff0c;并且确定这些信息与 MySQL 服务器的管理员所给出的信息一…

JavaScript 和 typeScript 中的 import、from

From&#xff1a;https://segmentfault.com/a/1190000018249137?utm_sourcetag-newest Github - allowSyntheticDefaultImports should be the default?exports、module.exports和export、export deault到底是咋回事JavaScript 中有多种 export 的方式&#xff0c;而 TypeSc…

深度丨建立合资公司,深度参与运营:详解景驰的无人驾驶生意经

来源&#xff1a;亿欧摘要&#xff1a; 对于景驰科技而言&#xff0c;最终实现商业价值的做法绝对不仅仅是把改装好的无人车卖出高价。在该公司看来&#xff0c;切入无人驾驶需求最旺盛的出租车市场&#xff0c;与出行服务公司、主机厂乃至政府产业基金成立合资公司&#xff0c…

使用SQL Server存储ASP.NET Session变量

创建和配置ASP.NET Session状态数据库在基于NLB&#xff08;网络负载平衡&#xff09;环境下的ASP.NET Web应用程序开发&#xff0c;我们需要将Session存储在数据库中供多个Web应用程序调用&#xff0c;以下为配置方法及注意事项。1.创建用于存储ASP.NET Session的数据库&#…

学界 | DeepMind想用IQ题测试AI的抽象思维能力,进展还不错

来源&#xff1a;大数据文摘摘要&#xff1a;抽象理解能力一直是人类引以为豪的智慧来源。阿基米德基于对物体体积的抽象理解&#xff0c;悟到了物体的体积与物体浮力之间的关系。这就是抽象推理的魔力。基于神经网络的机器学习模型取得了惊人的成绩&#xff0c;但是测量其推理…

frida hook so层、protobuf 数据解析

手机安装 app &#xff0c;设置代理&#xff0c;然后开始抓包。 发现数据没法解密&#xff0c;查看请求的 url 是 http://lbs.jt.sh.cn:8082/app/rls/monitor&#xff0c;使用 jadx 反编译 app 后搜索这个 url&#xff08;提示&#xff1a;可以只搜索 url 中一部分&#xff0c;…

大数据技术与应用解读及案例分析(PPT)

来源&#xff1a;网络大数据摘要&#xff1a;大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据就是未来的石油。未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学…

pywin32库 : Python 操作 windows 系统 API

Python 模块虽多&#xff0c;但也不可能满足所有需求。而且&#xff0c;模块为了便于使用&#xff0c;通常都封装过度&#xff0c;有些功能无法灵活使用&#xff0c;必须直接调用Windows API 来实现。要完成这一目标&#xff0c;有两种办法&#xff0c;一种是使用 C 编写 Pytho…

华为秘密作战计划曝光,重注研发AI芯片挑战英伟达,轮值董事长挂帅

雷刚 问耕 发自 凹非寺 量子位 报道 | 公众号 QbitAI摘要&#xff1a;据报道&#xff0c;对于如何把AI引入所有业务&#xff0c;华为内部已经开启了代号为“达芬奇”的作战计划&#xff0c;并且成为华为高层每月一次讨论会的重点议题&#xff0c;也有不少华为高管以“D项目”来…

Python --- ctypes库的使用

ctypes 的官方文档 英文文档&#xff1a;https://docs.python.org/3/library/ctypes.html中文文档&#xff1a;https://docs.python.org/zh-cn/3.10/library/ctypes.html Python--ctypes(数据类型详细踩坑指南&#xff09;&#xff1a;https://zhuanlan.zhihu.com/p/145165873…