热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

识别Linux命令的工具有哪些,五款面向Linux的命令行终端工具

Linux用户分为两大类:谨慎的和大胆的。第一类用户找到喜欢的东西后就坚持使用,不会朝三暮四。他们往往喜欢发行版的默认值。如果他们钟情于某个文本编辑器&

Linux用户分为两大类:谨慎的和大胆的。第一类用户找到喜欢的东西后就坚持使用,不会朝三暮四。他们往往喜欢发行版的默认值。如果他们钟情于某个文本编辑器,这肯定是他们先熟练掌握的那个。另一类是几乎条件反射般地想尝试刚出现的新选项的用户。他们试过所能找到的不少窗口管理器、几十个发行版以及几乎每一个新的桌面窗口组件。

d16c367905316a35a3966028c427de65.png

作为有15年使用资历的Linux用户(无论服务器端还是桌面端),我绝对属于第一类用户,而不是第二类。我往往不太喜欢新奇的东西,这意味着我通常能找到全面的说明文档以及几乎任何用例的例子。如果我使用另类的东西,会认真研究要不要改用,而且常常取决于我信赖的人地竭力说服。

但是,这并不是说我不喜欢有时候尝试,看看我缺少什么。所以最近,在不假思索地使用多年的bashShell后,我决定试一试另外四种Shell:ksh、tcsh、zsh和fish。这四种Shell都很容易从我Fedora中的默认软件库来安装,它们可能已经针对你选择的发行版进行了包装。

下面介绍了每一种Shell,以及为什么应选择它作为你的下一个Linux命令行解释器。

1.bash

首先,我们不妨看一下熟悉的Shell。GNU Bash(Bourne Again Shell)是这些年来我用过的几乎每个Linux发行版的默认Shell。bash首次发布是在1989年,后来轻松成为了Linux界使用最广泛的Shell,还经常出现在其他类似Unix的操作系统中。

bash是一种备受推崇的Shell;如果你在网上寻找关于如何执行各种操作的说明文档,几乎免不了会找到假设你在使用bashShell的操作说明。但是bash也有一些缺点,只要写过不止几行脚本的人都可以证明这一点。倒不是说你无法执行某个操作,而是阅读和编写起来并不总是来得特别直观(或者至少优雅)。想了解几个例子,只要看看这份常见bash陷阱列表。

话虽如此,bash可能早已得到了人们的接受,至少在不远的将来是这样,它有庞大的用户群,还有众多普通和专业的系统管理员已经习惯于其用法和小毛病。bash项目使用了GPLv3许可证。

2.ksh

KornShell(简称ksh)是一种替代的Shell,上世纪80年代从贝尔实验室发展而来,由David Korn编写。虽然起初是专有软件,但后来的版本采用Eclipse公共许可证发布。

ksh的支持者列出了他们认为它很出色的许多方面,包括拥有更好的循环语法、来自管道的更整洁的退出代码,更容易重复命令的方法以及关联阵列。它还能够模拟vi和emacs的许多行为,所以如果你非常偏爱文本编辑器,它可能值得一试。总的来说,我觉得它在基本输入方面非常类似bash,不过针对高级脚本,它肯定是不一样的体验。

3.tcsh

tcsh是csh即Berkely Unix CShell的衍生版,它具有非常悠久的历史,可以追溯到Unix和计算机本身的早期阶段。

tcsh的一大卖点是其脚本语言,这种语言对用C编程的人来说看起来非常熟悉。有些人喜欢tcsh的脚本,而有些人讨厌tcsh的脚本。不过它还有其他功能,包括给别名添加变量以及可能符合你偏好的各种默认设置,包括带标签的自动完成和历史标签完成的工作方式。

你可以找到采用BSD许可证的tcsh。

4.zsh

zsh是另一种与bash和ksh都有相似之处的Shell。zsh起源于上世纪90年代初,它有许多实用功能,包括拼写纠正、主题、可命名目录快捷方式、跨多个终端共享命令历史,以及对早期的BourneShell所作的其他众多细微改进。

zsh的代码和二进制文件可使用类似MIT许可证的许可证来发行,不过有些部分使用GPL许可证。查看实际许可证,了解详情。

5.fish

我知道,如果我访问官方网站,看到它用半开玩笑的话来描述:“终于有了一种为90年代而生的命令行Shell”――fish是在2005年编写的,我会喜欢互动性良好的Shellfish。

fish的开发人员给出了改用fish的诸多理由,处处用调侃的语气来笑话并不是完全实至名归的Shell。功能包括:自动建议、支持VGA“惊人”的256色调色板,不过也有一些确实很有帮助的功能,包括根据你机器上的参考手册页完成命令、干净的脚本和基于Web的配置。

fish主要采用GPL版本2许可证,但是有些部分采用了其他许可证;查看软件库,即可了解完整信息。

原文标题:Top 5 open source command shells for Linux,作者:Jason Baker

0b1331709591d260c1c78e86d0c51c18.png



推荐阅读
  • mysql和php的关系理解(php技术和mysql怎么结合)
    本文目录一览:1、apachephpmysql他们是什么关系 ... [详细]
  • 经过前面的一系列工作后,GO的语言环境已经搭建完成。我们也初步体验了GO提供的大部分命令。但在正式进入开发之前,还有件工作要做,那就是选择一款适合自己的IDE。为什么使用IDE“程 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • Haskell学习笔记:探索函数式编程之美
    使用教材:《learnyouaHaskell》,中文1-8章戳我准备工作。编译器&调试器:安装HaskellPlatform, ... [详细]
  • IPython 8.0 发布,Python 命令行交互工具
    IPython是Python的原生交互式shell的增强版,可以完成许多不同寻常的任务,比如帮助实现并行化计算;主要使用它提供的交互性帮助,比如代码着色、改进了的命令行回调、制表符完成、宏功能以及改进了的交互式 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • Linux批量复制并重命名和批量复制文件到多个文件夹的方法
    本文介绍了在Linux系统下批量复制并重命名文件以及批量复制文件到多个文件夹的方法。通过使用模式匹配功能,可以方便地实现文件的批量操作。同时,还提供了有关shell语法中的()和{}的参考资料。 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 【BP靶场portswigger服务端10】XML外部实体注入(XXE注入)9个实验(全)
    前言:介绍:博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。殊荣:CSDN网络安 ... [详细]
author-avatar
Keai丶绿茶_890
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有