Fish:Linux中比bash或zsh更好用的Shell
Fish是一个智能且用户友好的命令行shell,适用于macOS,Linux和其他家族。fish包含语法突出显示、根据你键入字符自动提示autosuggest-as-type和花式选项卡完成等功能,无需配置。
Banq注:其中autosuggest-as-type是最棒的,因为Linux下键入命令有时很难准确,除非经常使用的网络人员,所以,只能搜索引擎搜索,比较消磨时间,其实命令行方式只要有自动提示,肯定强于Windows的图形化方式,过去Linux一直在桌面东施效颦,模仿Windows的图形界面,其实努力方向错了,坚守命令行方式,并向人类友好方向开拓,比如搞个autosuggest-as-type不比你花老鼻子力气做啥图形界面省心啊,界面你做得过windows,做得过苹果吗?
fish设计有三个高水平的目标:
- 可以在其他shell语言中完成的所有操作都应该可以在fish中完成,尽管fish可能会依赖外部命令。
- fish是用户友好的,但不能以牺牲表现力为代价。通过精心设计,实现强大和易用性之间的主要权衡。
- 在不违反上述目标的情况下,fish应遵循Posix语法。
正交法则
shell语言应该有一小组正交特征。任何情况下两个功能相关但不相同,其中一个应该被删除,另一个应该变得强大和通用,足以处理任何一个功能的所有常见用例。
理由:
相关功能使语言更大,这使得学习更难。它还会增加源代码的大小,使程序更难维护和更新
响应法则
shell应该始终尝试对用户保持响应,即使面对争用或无响应的文件系统。只有在响应用户启动的操作(例如运行命令)时才阻止。
理由:糟糕的性能会增加面向用户的复杂性,因为它会训练用户识别和处理缓慢的用例。这也令人非常沮丧。
可配置性是万恶之源
程序中的每个配置选项都是程序过于愚蠢的地方,无法自行确定用户真正想要的内容,应该被认为是程序和实现它的程序员都失败了。
理由:不同的配置选项是维护的噩梦,因为特定配置组合引起的潜在错误数量很快就会成为一个问题。配置选项通常意味着对重新实现代码时更改的代码的假设,从而导致向后兼容性问题。但大多数情况下,应该避免使用配置选项,因为它们根本不应该存在,因为程序应该足够聪明,以便做到最好,或者至少足够接近它。
用户关注的法则
在设计程序时,首先应该考虑如何制作一个直观而强大的程序。只有在设计用户界面后才应考虑实施问题。
理由:
此设计规则与其他设计规则不同,因为它描述了应该如何设计新功能,而不是功能应该是什么。关注可以做什么以及容易做什么的问题在于暴露了太多的实现。这意味着用户必须对底层系统有很多了解才能猜出shell是如何工作的,这也意味着语言通常会相当低级。
可发现性定律
应该设计一个程序,使其功能尽可能简单,以便为用户发现。
理由:可以发现其功能的程序可以在较短的时间内将新用户转变为专家,因为用户只需使用它即可成为该程序的专家。
图形程序相对于基于命令行的程序的主要好处是可发现性。在图形程序中,只需查看用户界面并猜测不同的按钮,菜单和其他小部件的功能,即可发现所有常见功能。在命令行程序中发现功能的传统方法是通过手册页。这需要用户开始使用不同的程序,然后他们记住新信息,直到他们下次使用相同的程序。
写在最后

Fish:Linux中比bash或zsh更好用的Shell的更多相关文章
- 在 Alpine Linux 中安装 bash shell
如何在我的 Alpine Linux LXD(Linux容器)虚拟机(VM)中安装 bash shell? Alpine Linux 自带 BusyBox 工具.它被评为“嵌入式 Linux 的瑞士军 ...
- Linux中编写Bash脚本的10个技巧
Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 ...
- linux中的bash
一.bash的简介 操作系统都是需要通过shell跟内核来交互的,常见的shell有GUI.KDE.sh.csh.bash.tsh.zsh等. 而linux中最常用的shell就是bash. 二.ba ...
- 教你一些Linux中隐藏bash历史命令的小技巧
导读 如果你登录过 Linux 系统,并敲过一些命令,那你应该知道,bash history 会记录你输入的所有命令.这个操作其实是有一定风险的. 我个人经常使用 Linux,所以我想着研究一番,看看 ...
- CentOS7 linux 中提示 bash: ls: 未找到命令...
记录一次CentOS7里执行ls命令失败的问题 执行ls命令时报找不到命令,原因是环境变量PATH被修改, 解决办法: 执行 export PATH=/bin:/usr/bin:$PATH 然后 ...
- linux中监控CPU、内存和磁盘状态的shell脚本。(centos7)
这篇博客中所写的脚本,在实际工作中并没有什么卵用,工作中并不会用到这种脚本去监控.不过自己写一遍,可以让初学者对CPU.内存.磁盘等一些基础知识和基础命令更加了解. 1.利用vmstat工具监控CPU ...
- Linux中检查字符串是否为合法IP地址的shell脚本
#!/bin/bash #判断IP地址是否为有效IP CHKECK_IP () { CHECK_STEP1=`echo $1 | awk -F"." '{print NF}'` i ...
- Linux中命令链接操作符的十个最佳实例
转载: http://www.linuxeden.com/html/softuse/20140112/147406.html http://www.tecmint.com/chaining-opera ...
- Linux 学习 之 bash
Anything is programmable with defined syntax and common lib. Bash Shell is created to programme to L ...
随机推荐
- noip模拟赛 括号序列
题目描述LYK有一个括号序列,但这个序列不一定合法.一个合法的括号序列如下:()是合法的括号序列.若A是合法的括号序列,则(A)是合法的括号序列.若A和B分别是合法的括号序列,则AB是合法的括号序列. ...
- POJ 3061 Subsequence 尺取
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14698 Accepted: 6205 Desc ...
- Swift: 一句话获取虚拟机上APP所在的目录
在XCode6上,虚拟机的App的存放位置发生了变化,通过下面语句,我们可以立即获得其所在的位置: println(NSTemporaryDirectory())
- Openfire:重新配置openfire
有些时候当我们在对openfire开发时,需要重置openfire的配置,这时最简单的方法就是重新运行openfire的安装程序.要重新运行安装程序,方法很简单: 打开openfire的安装目录,找到 ...
- 2015 测试赛 大神和小伙伴 hihoCoder
立方和公式和平方和公式.表示从来不记得这些公式... 每库礼物不同数量相同,总数=1+2+...+n=(n+1)*n/2 选取礼物的可能性的最大值为[(n+1)*n/2]^3 选取礼物价值重复两次的总 ...
- jQuery toast message 地址 使用
jQuery toast message 地址 使用 https://github.com/akquinet/jquery-toastmessage-plugin/wiki
- CSS3动画遮罩文字特效
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- Xcode 自己主动生成版本技术最佳实践
在 bloglovin ,我们使用自己主动生成版本来设置Xcode,使当前的版本为在Git活跃的分支上 的提交数. 它一直正常工作着.但我们的技术也不是一帆风顺的. 糟糕的老方法 我们使用的技术是来自 ...
- 如何运行开源的React Native项目?
如何运行开源的RN项目? 1.下载 2.解压 3.配置本地sdk位置 sdk.dir = D\:\\Android\\SDK 4.调整gradle版本 apply plugin: "com. ...
- 【CTSC 2007】 数据备份
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1150 [算法] 首先,有一个很显然的结论 : 如果要使距离和最小,必须选择相邻的办公 ...