技术解析

Linux 桌面将何去何从?
0
2021-06-21 05:40:29
idczone

前段时候微软宣布了 Windows Terminal 和 WSL 2,这么香,势必又会有一批人“叛教”了。然而这样一来,本来就没多少人用的 Linux 桌面环境乃至 Linux 发行版用的人就更少了,巨硬这么一出究竟是好事还是坏事呢


怎么? Linux 和 MacOS 不能自己下载软件安装? Android 和 iOS 比 Windows 也晚些,为什么 Android 和 iOS 这种靠商店下载 APP 的系统软件和游戏比 Windows 还丰富?它们上面没有做软件的企业和上市公司? uber 刚刚上市,它是 windows 上面做起来的吗?现在为什么 WIN10 也要做商店?
Windows 比 MacOS 生态好那是因为它支持兼容机,应用更广。另外,Windows 比 Linux 可是要早的。而且,MacOS 是有几次断代的,现在的 MacOS 起步比 Windows 也晚很多年的。
而且,我只问方便不方便,扯什么中心化,真是搞笑,有这样转移话题的吗?

CMD 和 Powershell 没有自己实现一个终端,一直都是分开的。

可以在 cmd.exe 里面用 powershell 吗?删了这个 cmd.exe 有影响吗?总之,能不能像 Linux 那样,自己装个喜欢的终端,然后删掉这两个?
对了,其实这个跟我说的没什么关系了,能不能我也无所谓,反正我不会去用。我前面说的是——它马上会同时存在三个终端程序了,不是吗?
至于我前面说 CMD 和 powershell,因为我也不知道叫什么,反正说的就是平时执行 CMD 命令和 powershell 命令的那两个窗口,叫 cmd terminal powershell terminal 吗?我看好像一般说起来都不像 Linux 分那么清楚吧,好像都是 shell 终端混为一谈直接叫 cmd、powershell。说实在的,这也是我觉得 windows 有点乱的原因所在。

那个窗口是 Console Host,是 Windows 自带的终端。

听说 GTK 举步维艰浑身 BUG 遭受了众人的怨恨

我就问现在还有谁玩 arch 我敬他是条汉子


我也不管它们是不是终端叫什么名字是不是和 shell 分开的了能不能卸载了,我不想扯这些名义之争。总之等 windows terminal 发布,系统内自带三个可以运行命令行的程序了对不对?
我说的 cmd 和 powershell 就是指那两个用来运行命令的程序,我想你明白我所指,我当然不会拿 shell 去和 windows terminal 相提并论,我说的只是这三个窗口。

说电脑软件的话题,你居然说去手机 App …… 这还看不懂?就是告诉你不要用现在的眼光看历史、过去的事情,你现在看着不合理的东西,在过去却是合理,并且是正确的。Windows 就是借助丰富的软件达到市场占有率
对啊,Windows10 开始做回 app store,为什么,因为软件环境发生了巨大的变化,最简单的表现就是,所有软件下载网站早就没落了过时了,但是,在数年之前,软件下载站是无限风光。
不要用现在的情况看历史所发生的事情。

wsl 用过,就是个小玩具。完全没法跟真的 linux 比。


我说方便不方便,你扯那么多干什么?你回答方便不方便就行了。我也没说它不合理,合理不合理关我什么事。
你既然扯那么多,我就顺便谈一谈,上面你可能没看清,再说一遍。首先,Linux 和 MacOS 也是可以下载软件双击安装的,不存在什么中心化非中心化的唯一选择,windows 也有第三方应用中心,都是可以的。其次,Linux 和 OS X 比 Windows 晚很多年,它们的商业模式也不同,成功与否更多和它们的商业模式有关,与什么软件分发模式毫无关系。至于说手机 APP,是反驳什么中心化限制软件发展的观点,软件多寡,繁荣与否,和中心化非中心化分发毫无关系,一切取决于市场份额。
你现在这里说的,我又有要反驳的了。第一,Windows 不是借助丰富的软件达到市场占有率,它是先有占有率,才有了丰富的软件,至于占有率怎么来的,自己看其历史。第二,下载站一样是中心化的,只是一种缺乏一键安装不甚不方便的中心化商店,下载站到 store 的变化,属于不方便到方便的变化,而中心化不中心化的问题。第三,软件环境没有什么变化,做 microsoft store 是因为这样更方便,而且自己掌控分发渠道可以多赚点。第四,我没有用现在的情况看历史发生的事,是你在扯这些,我谈的就是先入为主的问题,和手动下载安装方便不方便。

不对,Windows Terminal 不是 shell。

都是工具而已,哪个舒服用哪个,我都是多系统的。Linux 桌面无感,终端用的多。

我没说它是 shell 啊,说了不要扯什么是 shell 还是终端的问题了,我也没说 cmd 和 powershell 是终端,但它们肯定有终端对不对,我想大家说 cmd 是指什么你很清楚,我是从来没看谁特意说 cmd 终端的。
当然,就当我前面表达不准确好了。
但马上就有三个可以打开命令行的工具是不是?我也不说三个终端,免得你又扯什么这终端不一样什么什么的,总之有三个这样的工具对不对?

我刚刚回头去看了下,我发现我一开始就明确说是命令行工具,搜索一下,我发现大家都是这么叫 Windows 上面的各种终端工具,包括 cmd 和 powershell,所以其实我讲的并不算不清楚。

用 KDE 为嘛不用 windows 呢.要模仿 win 的东西,还不如原生.
linux 的 gnome 才是原汁原味

说个题外话,我记得哪里看到过,Windows 的 CMD 命令行,早期版本中,其中显示的内容有可能溢出这个窗口画到桌面上去。。。

gnome 已经走偏了,啥都像平板移动交互靠,已经不是一个好的电脑桌面了。

而且我查探了一下,大家说到 windows 上面的终端,都是直接说 cmd 和 powershell,都是习惯这么叫的,没有人特意说什么 cmd 终端,powershell 终端。
另外我想查找 windows shell 的资料,发现 windows shell 指的是 the graphical user interface for the Microsoft Windows operating system。
所以事实证明,大家主要都是把 cmd 和 powershell 当终端来的,至于它们的 shell 部分到底是系统内核之上提供的,还是它们和终端工具绑在一起,我真不知道,反正我知道和 Unix 体系的 shell 和终端不一样,没人像 Linux 下面那样分开说。
我自己测试了下,cmd.exe 里面执行 powershell,其实就是打开了 powershell.exe ,两者效果完全一样。而 powershell.exe 里面执行 cmd 和打开 cmd.exe 也完全一样,至于 Windows Terminal 里面运行 cmd 或是 powershell 是直接调用它们的 shell 还是直接载入 cmd.exe 和 powershell.exe 目前不清楚,我也懒得去装一个试试了。反正目前这种情况,我觉得叫它们 shell 或是终端都不恰当,我一开始叫它们命令行工具,反而是最准确的说法。
另外要说一句,这样的情况也是我不喜欢 windows 的又一个原因,Linux 和 Unix 下面要搞清 shell 和终端还有 tty 是很容易的,它很清晰也很透明。而 windows 上面,我实在无法确定,很多东西都是这样。

Windows 早期的 terminal 和 shell 确实是区分的不那么明确,不过现在已经可以比较明确的进行区分了。
具体而言,现在的 cmd 和 PowerShell 两个都是 shell,而我们常见的的那个命令行窗口实际上是由一个称为 conhosts 的程序提供的,这个 conhosts 才是真正的 terminal。只不过为了保持向后兼容,这个 conhosts 几乎不会被显示的调用。
然后这个新出的 Windows Terminal 应该被当作是 conhosts 的继任者,不过由于这个新的 terminal 不再考虑向后兼容的问题,conhosts 应该还是会作为兼容性组件被保留下来就是了。

Windows 下终端就是 conhost.exe
cmd.exe powershell.exe pwsh.exe node.exe python.exe 乃至所有 Console 子系统下的程序打开之后都会启动 conhost.exe 这个进程
Windows Terminal 也只是启动一个没有界面的 conhost.exe,使用 conpty 的 API 和 conhost.exe 进行通信,这与其他第三方终端没有区别

我试了下,打开这个 conhost,默认跳到 cmd.exe ,从 powershell 里面打开也是一样。
从我的角度来看,这就是有四个可以打开命令行窗口的工具了(虽然这个 conhost 并没有在菜单里面出现),而它们其实都可以用到 cmd 命令和 powershell 命令,shell 也是可以切换的,所以,真的很累赘。
另外,我看了下它,它好像是为无界面程序提供图形窗口支持的工具,好像并非终端。(真是搞不懂为什么打开它默认跳到 cmd.exe ,感觉也不太爽,要跳起码也要给个跳转到 powershell 的选项吧)


你说的这些都是为了兼容性的考虑……毕竟早期的 cmd 既是 shell 又是 terminal,所以现在的 cmd 也需要和以前的 cmd 有类似的行为。不过在 Windows Terminal 之后其他这些东西都只是出于兼容性的考虑而存在的,你无视就好,就当只有 Windows Terminal 一个入口就可以了,没啥好困惑的。
不过这个东西在 Linux 中也是一样的,虽然大家都默认使用 bash,但我从 bash 里面调用 zsh,从 zsh 里面调用 fish 啥的不也是可以的……
另外为啥 conhosts 不算终端?我们现在说的不都是终端模拟器吗?终端模拟器不都是为 shell 提供一个输入输出的界面吗?还是我哪里理解错了?


其实没困惑,本身也是无视的,只是觉得菜单有几个命令行工具有点多余,还不好自己卸载。我就随便说下,有人非要说 cmd 和 windows terminal 不一样,我管它们是不是一样哦,反正现在会有三个可以打开命令行的东西。Linux 里面,我自己装一个终端就好了,简洁。要用不一样的 shell,在终端里面切换一下就行了嘛。
conhost 根据我查到的资料来看,感觉好像是 Linux 下面的窗口管理器那种东西,它只是让 cmd.exe 之类的界面能够和系统相融,本身应该没有终端的功能实现。不过,你说是终端就是终端吧,随便了,我对 windows 的技术细节毫无兴趣。
其实我只想说一句话—— windows 包袱太多,很多累赘。


虽然像 zsh 这种基本上可以保证兼容性,但一般人还是不敢把 bash 卸载掉的把。那我要是喜欢用 zsh fish 啥的,bash 算是累赘吗?


另外说到 Linux 下的终端,那你是装 rxvt 呢还是 xterm 呢还是 konsole 呢还是 gnome-terminal 呢?

你觉得累赘就累赘咯,反正 shell 又不会出现在菜单里面,我无所谓的。
其实有系统里面有一万个 shell 我也不会觉得多余,但是菜单或者桌面上有多几个终端图标,我就会觉得多余。

cinnamon 自带的,不知道什么终端,反正就一个终端。

小孩子才做选择,成年人自然是我全都要。
双系统专治各种不服。

不会同时存在三个可以执行命令的程序。
我对你的话的理解是命令行的 “入口”,也就是说从仅以默认设置安装这些程序而不进行任何私人配置,此时通过某个快捷方式开启一个可以直接输入命令执行的近似纯文本窗口。
那样的话入口要么还是两个,要么是四个,我不清楚你这个三个是怎么来的。
Windows Terminal 还是得运行 CMD 或者 PowerShell,具体是否会取消 Console Host 的入口(就像删 IE 那样)现在不确定,但肯定不会说新给一个入口然后这个只会去运行其中一个。
况且到时候 Windows Terminal 好像是进应用商店,你不去装是不会有的。
另外,实际使用中的入口显然是 Win+X,I,而不是那些花花绿绿的快捷方式。
我连回收站出现在桌面都接受不了,因为会不由自主地去清空,那样回收站存在的意义就消失了。
桌面不显示图标,并且从来不开开始菜单。所有(非开机自启动的或者其他程序 /双击文件调用的)程序都是通过 Win+R 启动的,顺便还写了个短名称维护脚本。
这个操作是如此地方便并被忽视以致于我想写 “教微软高效用 Windows ” 了

it is not important

我在用 arch,怎么了

上面的第三段应该是回复这里的。
菜单和桌面没有任何内容,我启动一次电脑见到桌面基本就两次,一次刚开机,一次将关机。
而开始菜单只有想调设置的时候才用,因为似乎 Win+X 不带,Win+I 又太远,有时一些设置只有搜索是最方便的。

windows terminal 打开新标签的时候是会给个选择的,选择开启 cmd 还是 powershell,我的意思就是既然如此,那么其实 cmd 和 powershell 应该不需要另外的打开方式了。其实 powershell 那个本身也是可以运行 cmd 的,所以出 powershell 的时候就没必要保留 cmd 的那个入口了。
至于具体数量是几个,其实我的 win10 上面 powershell 在菜单就有四个快捷方式 pw、pw x86、pw ise、pw ise x86,反正多余就是了。
至于打开方式,其实我也一般 win + r win + x 打开,就是因为菜单太长,懒得去翻,菜单上面我一般就用最上面几个常用。这些东西自己当然总是有解决方式的,但是总归优点不太喜欢。

好像你有什么误区。
> 为无界面程序提供图形窗口支持的工具
> 它只是让 cmd.exe 之类的界面能够和系统相融
这个就是终端模拟器的含义,Linux 下通常说的终端也就是这个概念。你在 cinnamon 下用的 Gnome Terminal 其实也就是个 ConHost。具体来说你通过文件浏览器在 /bin、/usr/bin 下找到的程序比如 bash 双击打开也是开了 Terminal。
这个是更久的历史,关乎电传打字机。
跟 Windows 无关,甚至在 Windows Terminal 之前你不怎么看得到微软提 “ Terminal ” 这个词,XP 时代叫 “ Command Prompt ”,后来叫 “ Console ”。
另外,ConHost 也是可以指定 Shell 的,把 Shell 的可执行文件名作为第一个参数传进去。PowerShell 和 git bash 测试通过。
————
为什么我不喜欢 Linux 呢,你看吧,现在这个命令行工具有一个 Bash,有一个 Zsh,马上又来一个 xterm。……
现在你说的这个吧,有个 Wine 了,马上来个 kvm,共存的,虽然这两个都可以自己手动开启或者关闭,但是我就是感觉特别累赘。
社区总是想搞些新的东西,又不敢抛掉老的东西,全部混在一起。
——
Bash 和 Zsh 就没有终端吗?为什么不能把 shell 和终端分开。xterm 出来后,它们自带的终端肯定还会留着。
——
可以在 /bin/bash 里面用 zsh 吗?删了这个 /bin/bash 有影响吗?总之,能不能自己装个喜欢的终端,然后删掉这两个?
……
至于我前面说 bash 和 zsh,因为我也不知道叫什么,反正说的就是平时执行 bash 命令和 zsh 命令的那两个窗口,叫 bash terminal zsh terminal 吗?我看好像一般说起来都不分那么清楚吧,好像都是 shell 终端混为一谈直接叫 bash、zsh。说实在的,这也是我觉得 linux 有点乱的原因所在。
——
我也不管它们是不是终端叫什么名字是不是和 shell 分开的了能不能卸载了,我不想扯这些名义之争。总之等 xterm 发布,系统内自带三个可以运行命令行的程序了对不对?
我说的 bash 和 zsh 就是指那两个用来运行命令的程序,我想你明白我所指,我当然不会拿 shell 去和 xterm 相提并论,我说的只是这三个窗口。
——
事实证明,大家主要都是把 bash 和 zsh 当终端来的,至于它们的 shell 部分到底是系统内核之上提供的,还是它们和终端工具绑在一起,我真不知道……
——
我自己测试了下,/bin/bash 里面执行 zsh,其实就是打开了 /bin/zsh,两者效果完全一样。而 /bin/zsh 里面执行 bash 和打开 /bin/bash 也完全一样,至于 xterm 里面运行 bash 或是 zsh 是直接调用它们的 shell 还是直接载入 /bin/bash 和 /bin/zsh 目前不清楚,我也懒得去装一个试试了。反正目前这种情况,我觉得叫它们 shell 或是终端都不恰当,我一开始叫它们命令行工具,反而是最准确的说法。
——
我试了下,打开这个 gnome-terminal,默认跳到 /bin/bash,从 zsh 里面打开也是一样。
从我的角度来看,这就是有四个可以打开命令行窗口的工具了(虽然这个 gnome-terminal 并没有在菜单里面出现),而它们其实都可以用到 bash 命令和 zsh 命令,shell 也是可以切换的,所以,真的很累赘。
另外,我看了下它,它好像是为无界面程序提供图形窗口支持的工具,好像并非终端。(真是搞不懂为什么打开它默认跳到 /bin/bash,感觉也不太爽,要跳起码也要给个跳转到 zsh 的选项吧)
————
简单替换,完全一致。如果你能理解 *nix 下的进程间通信机制并能实现一个 terminal (简单的 web terminal 就行),结合上述内容,你就可以看到自己说的话有多蠢。


还是那句,你可以把开始菜单里两个快捷方式删掉,眼不见为净。
你为什么会觉得 PowerShell 可以运行 CMD ?
来试试这句:
```
"C:\Windows\System32\tasklist.exe"
```
包括引号,PowerShell 下和 CMD 下运行结果一样吗?
Python 还有 IDLE 呢,也能同时装上各种版本,32 位 /64 位,2.7/3.7 等。
——其实这点表现的是 M$ 对 PowerShell 的定位不明。我挺赞同前几天看到谁说这其实是个 PowerScript的。
……写 Script 真是爽得不行,当 Shell 还是省省。

虽然说出了你个人的原因,但是你黑的点很无厘头,甚至算不上一个上的了台面的例子.

我我我!我就是那条还在用 Arch 的汉子……哈哈哈

其实 KDE 比 Windows 要好用一些,而且 Gnome 个人观点实在是用不来哈哈哈

感觉现在很多开发人员只是需要一个 linux 的服务器环境, 没有深度使用的需求, 与桌面也就没有关系, WSL 恰恰就是满足了这方面的需求, 所以我觉得对 linux 的桌面来说不会改变什么.
arch 的 aur 超好用, 很省心.
桌面 xfce 我的经验里是最稳的.
linux 适合有耐心有时间的人.

如果你说的是我 和 的内容。
我并非在说出我个人的原因,我纯粹是在仿写 的几段话并把其中的 Windows 相关内容换成 Linux 的,目的是归谬…… 不过我忘了加上每一个的原层数,是我的疏漏。

驱动不好说什么都没用

Linux 其实是没有命令行的,理由如下 https://www.gnu.org/gnu/why-gnu-linux.html 它连命令行都没有,居然有人想运行桌面。
.


@nguoidiqua

NT 内核也是没有图形界面没有命令行的,CPU 本来也是没有图形计算单元(核显)的
在把无变有的人真都是牛人

我的意思是:请尊重 Richard M. Stallman。明明整个系统叫 GNU/Linux。

可是不一定是 GNU 的啊(虽然 WSL 和 WSL2 都是 GNU 的)…… 具体而言,桌面也不是 GNU 做出来的是 X.Org 做出来的

GNOME 属于 GNU。
@DIYff

KDE 没人权?

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服