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

关于shell:为什么我用zsh代替csh

我是shell的重度用户,开发工作除了写文档都是在shell下实现的。所以shell就是我的生产力工具,打造高效的shell环境,能够大幅提高我的工作效率。有很多性能

总结

zsh领有成熟的生态,古代的语法,弱小的性能,是目前shell的最好抉择。

我用shell做什么

我是shell的重度用户,开发工作除了写文档都是在shell下实现的。所以shell就是我的生产力工具,打造高效的shell环境,能够大幅提高我的工作效率。有很多性能,比方文件关上敞开,文件目录跳转,初始化配置,eda工具设置,是不适宜用其余脚本语言来写的,shell脚本也是最佳选项。很多子性能适宜编译成二进制文件后,由shell来对立调用摆布。

所以抉择shell十分关注它的生态以及生态里已有的性能。生态不好,就须要本人造轮子,显示不适宜我这样的IC开发者,所以我最选淘汰的是咱们行业最罕用的csh. 其次就是最好有成套的环境能够间接应用,这样就不须要本人花大量工夫去配置成方便使用的环境。这方面oh-my-zsh的存在极大缩小了使用者的配置工夫。拿来主义十分爽。内置十分多主题和插件,间接能够应用。

担心

在咱们这个行业十分多人用csh,并且可能有些脚本是用csh写的,感觉转过来十分不不便,相当于他人曾经有csh生态了,你一个人转过来相当于摈弃了生态。
这在我看来齐全不是问题,因为他人所谓的脚本如果是很谨严的脚本,肯定不会依赖于SHELL的,如果依赖于SHELL,那么脚本肯定是比拟随便的,或者是source一些变量设定和门路设定的,这种如果肯定想重用,能够用工具主动转成bash(这样zsh也能够用了)。这种是一次性工作量。
相比zsh带来的效率晋升,这个代价很小。
小声说一句,我其实并没有用其他人的csh脚本,因为他们的脚本真的只是给本人用的一些变量设定和alias之类。我是用不上的。

上面我来一一介绍它的长处。

兼容性

zsh根本兼容bash, 所以绝大部分bash脚本能够间接应用。
轻微的差异参见我的这篇文章

文件补全

只有按下tab键, 它能够依据前文命令列出文件或目录。
如果是svn add, 它会只列出末增加到仓库中的文件。
如果是cd, 它会只列出目录。

便捷的目录切换

能够用cd .....向上5层
能够用d回车列出最近5个目录,而后用数字抉择进入哪个目录
能够用cd /v/o/s/d来进入/var/opt/synopsys/doc目录

命令选项补全

这是补全的一种,但它的弱小值得再提一遍
它能够理念命令。比方
dconf
会主动列出subcommand

$ dconf 
compile  -- compile a binary database from keyfiles
dump     -- dump an entire subpath to stdout
help     -- display help information
list     -- list the contents of a directory
load     -- populate a subpath from stdin
read     -- read the value of a key
reset    -- reset the value of a key or directory
update   -- update the system databases
watch    -- watch a path for changes
write    -- change the value of a key

命令参数补全

比方下面的命令输完dconf read /按下就会主动输入org/system两个选项

$ dconf read /
org/     system/

再比方输出kill nWave后按下tab会主动变成kill 5378

历史记录

zsh的历史记录在多个terminal是共享,能够用向上箭头来搜寻,比方输出make而后用向上键,它会顺次列出以往以make开关的命令,这在实现工作中十分高效。

oh-my-zsh

150kStar、275+插件、140+主题、2000+贡献者….., 从这组数字就晓得这是如许优良的一个shell配套工具。

oh-my-zsh的存在极大简化了zsh配置和应用的问题,相当于简装房间接入住。

各种主题只有在配置文件里写一下就胜利了, 各种插件只有在配置文件里加上就装置胜利了

这个咱们不多讲了,有趣味能够间接应用就好了。

附加插件

在https://github.com/zsh-users下有一些加强插件,都很命令,尤其举荐其中的zsh-autosuggestions, 它能够主动列出你以前输出过的命令和选项
比方用下面的dconf命令为例

文件类型敏感的alias

比方配制如下:

alias -s tgz='tar -zxvf'
alias -s gz='tar -zxvf'
alias -s bz2='tar -jxvf'
alias -s zip='unzip'
alias -s v=vi
alias -s sv=vi
alias -s vhdl=vi
alias -s cpp=vi

在zsh下输出test.sv会主动用vi关上,输出test.tgz,会用tar -zxvf test.tgz执行


推荐阅读
  • 和数|这一点_5 个让日常编码更简单的 Python 库
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了5个让日常编码更简单的Python库相关的知识,希望对你有一定的参考价值。今天我们一起来研究一些非常有用的第三方模 ... [详细]
  • [ipsec][strongswan]strongswan源码分析(五)plugin的配置文件的添加方法与管理架构解析
    我们知道,strongswan是基于插件式管理的。不同的插件有不同的配置文件,在这下面,我们以netlink的插件为例:etcstrongswan.dcharonkernel-ne ... [详细]
  • nvmw安装,用于控制node版本;
    之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ... [详细]
  • 系统管理部分软件包管理进程管理服务管理磁盘管理系统管理之软件包管理软件包的安装方式yumapt方式rpmdpkg方式编译安装方式二进制安装方式rpm安装方式增删改查安装:-ivh查 ... [详细]
  • 我有二进制格式的数据(十六进制:803bc8870a89),我需要将其转换为字符串,以便通过Jackcess在MSAccess数据库中保存二进制数据.我知道,我不认为在Java中使用 ... [详细]
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • XShell连接不了虚拟机
    本机安装好虚拟机和centeros;使用xshell连接:linuxCouldnotconnectto'127.0.0.1'(por ... [详细]
  • MyBatis模糊查询和多条件查询一、ISmbmsUserDao层根据姓名模糊查询publicListgetUser();多条件查询publicList ... [详细]
  • idea Terminal配置cmder(增加nodejs,git配置,jdk本地环境)
    下载安装nodejs,git,cmder(绿色版直接解压)配置nodejs环境配置缓存npmconfigsetcacheE:\JetBrains\nodejs\node_c ... [详细]
  • Lunix历史及如何学习
    1.Lunix是什么1.1Lunix是操作系统还是应用程序Lunix是一套操作系统,它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, ... [详细]
  • 保姆级使用PyTorch训练与评估自己的HorNet网络教程
    文章目录前言0.环境搭建&快速开始1.数据集制作1.1标签文件制作1.2数据集划分1.3数据集信息文件制作2.修改参数文件3.训练4.评估5.其他教程前言项目地址: ... [详细]
  • gitlab重置password
    ruby没怎么学,自己搭建的gitlab的rootpassword又忘了。幸好看见此帖子,试验okhttp:roland.kierkels.netgitreset-your-git ... [详细]
  • 原因:在vm上装7.9到sp3,打补丁到1644,再往后别打了,就打就打不开终端了,这个是java安全问题,以下只是终端的一些命令,记录一下:在系统下查看当前的串口:lsdev-C ... [详细]
  • 提示信息_局域网内互发提示信息
    本文由编程笔记#小编为大家整理,主要介绍了局域网内互发提示信息相关的知识,希望对你有一定的参考价值。【局域网内互发提示信息】准备工作:1.rege ... [详细]
  • 用聪明的方式学习 Vim
    来自量子位Vim难学难用?但事实是,它依旧受许多程序员的欢迎。或许,只是你的「打开方式」不对。最近,在GitHub上便出现了 ... [详细]
author-avatar
顽石1129_659
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有