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 ...
随机推荐
- ZOJ - 2243 - Binary Search Heap Construction
先上题目: Binary Search Heap Construction Time Limit: 5 Seconds Memory Limit: 32768 KB Read the sta ...
- Spring MVC Beginner's Guide--应该看第二次
第一遍,就差WEBFLOW知识点没过了.. 真的值得好好再看第二次呢.. 样例工程算是比较多的啦. 学到真的不少..
- 矩阵连乘 LRJ白书 p141 栈 解析表达式
#include<iostream> #include<cstdio> #include<cstring> #include<sstream> #inc ...
- N - 贪心
Have you ever heard the story of Blue.Mary, the great civil engineer? Unlike Mr. Wolowitz, Dr. Blue. ...
- .NET几大热点问题(.NET人员必读)
下面收集了关于.NET几大热点问题及简要答案,防止我们回答问题不专业的尴尬.同一时候还将一些.NET资源的相关网址罗列一二. 一.什么是.Net?它主要包含什么? .Net是为简化在第三代因特网的高 ...
- UVA 10069 Distinct Subsequences(DP)
考虑两个字符串,我们用dp[i][j]表示字串第到i个和字符串到第j个的总数,由于字串必须连续 因此dp[i][j]能够有dp[i][j-1]和dp[i-1][j-1]递推而来,而不能由dp[i-1] ...
- 【BASH】bash shell的使用实例
************************************************************************ ****原文:blog.csdn.net/clark_ ...
- VassistX 凝视 模板
避免头文件反复包括宏定义: #ifndef $FILE_BASE_UPPER$_H_ #define $FILE_BASE_UPPER$_H_ $selected$ #endif // $FILE_B ...
- css3 动态背景
动态背景 利用多层背景的交替淡入淡出,实现一种背景在不停变换的效果,先看图. 效果图: DEMO地址 步骤 1.利用css的radial-gradient创建一个镜像渐变的背景.当中的80% 20%为 ...
- BeanUtils使用案例
1.BeanUtils框架/工具(APACHE开源组织开发) (1)BeanUtils框架可以完毕内省的一切功能.并且优化 (2)BeanUtils框架可以对String<-> ...