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 ...
随机推荐
- poj 3621最优比例生成环(01分数规划问题)
/* 和求最小生成树差不多 转载思路:http://www.cnblogs.com/wally/p/3228171.html 思路:之前做过最小比率生成树,也是属于0/1整数划分问题,这次碰到这道最优 ...
- hdu 1532&&poj1273 基础最大流
#include<stdio.h> #include<string.h> #include<queue> #include<iostream> usin ...
- powerdesigner 16.5 视图的显示
今天中午为了解说绘图.然后把toolbox跟object brower都关掉了,花了1个小时才找到toolbox 1.object brower显示 直接使用快捷键 ALT+0 2.toolbox(也 ...
- 【辨异】—— 可见 vs. 不可见
1. 常见对比 物理可见,逻辑不可见: 效果可见: 对于一个文档,字符.图形可见,行.列.页呀等结构化的元素,不可见,它们各是一种逻辑组织与安排: 观念(思维方式,看待事情的方式)是不可见的,但行为是 ...
- codeforces 916E Jamie and Tree dfs序列化+线段树+LCA
E. Jamie and Tree time limit per test 2.5 seconds memory limit per test 256 megabytes input standard ...
- leetcode矩阵与动态规划相关
目录 54/59螺旋矩阵 62不同路径 64最小路径和 120三角形最小路径和 695岛屿的最大面积 547朋友圈 718最长重复数组 221最大正方形 121/122/123/714/188买卖股票 ...
- kafka参数在线修改
当kafka集群单个节点出现磁盘满了,需要清理历史topic数据:方法如下 1): 停掉kafka进程,将kafka的server.properties中的log.retention.hours=1/ ...
- E20170821-mk
Dimension n. 尺寸; [复] 面积,范围; [物] 量纲; [数] 次元,度,维;
- Python 41 完整查询语句 和 一堆关键字
一:完整查询语句 1.拷贝表 *** create table copy_table select *from customer ; 拷贝结构 与数据 create table copy_table ...
- Spark Streaming基础概念
为了更好地理解Spark Streaming 子框架的处理机制,必须得要自己弄清楚这些最基本概念. 1.离散流(Discretized Stream,DStream):这是Spark Streamin ...