后缀为frm是什么文件_Shell 点文件可以为你做点什么

cf67b2c6d8b3c099556be8aa44a23e56.png

了解如何使用配置文件来改善你的工作环境。

-- H.waldo Grunenwald(作者)

不要问你可以为你的 shell 点文件(dotfile)做什么,而是要问一个 shell 点文件可以为你做什么!

我一直在操作系统领域里面打转,但是在过去的几年中,我的日常使用的一直是 Mac。很长一段时间,我都在使用 Bash,但是当几个朋友开始把 zsh 当成宗教信仰时,我也试试了它。我没用太长时间就喜欢上了它,几年后,我越发喜欢它做的许多小事情。

我一直在使用 zsh(通过 Homebrew 提供,而不是由操作系统安装的)和 Oh My Zsh 增强功能 。

本文中的示例是我的个人 .zshrc。大多数都可以直接用在 Bash 中,我觉得不是每个人都依赖于 Oh My Zsh,但是如果不用的话你的工作量可能会有所不同。曾经有一段时间,我同时为 zsh 和 Bash 维护一个 shell 点文件,但是最终我还是放弃了我的 .bashrc。

不偏执不行

如果你希望在各个操作系统上使用相同的点文件,则需要让你的点文件聪明点。

### Mac 专用if [[ "$OSTYPE" == "darwin"* ]]; then # Mac 专用内容在此

例如,我希望 Alt + 箭头键 将光标按单词移动而不是单个空格。为了在 iTerm2 (我的首选终端)中实现这一目标,我将此代码段添加到了 .zshrc 的 Mac 专用部分:

### Mac 专用if [[ "$OSTYPE" == "darwin"* ]]; then ### Mac 用于 iTerm2 的光标命令;映射 ctrl+arrows 或 alt+arrows 来快速移动 bindkey -e bindkey '^[[1;9C' forward-word bindkey '^[[1;9D' backward-word bindkey 'ee[D' backward-word bindkey 'ee[C' forward-wordfi

(LCTT 译注:标题 “We’re all mad here” 是电影《爱丽丝梦游仙境》中,微笑猫对爱丽丝讲的一句话:“我们这儿全都是疯的”。)

在家不工作

虽然我开始喜欢我的 Shell 点文件了,但我并不总是想要家用计算机上的东西与工作的计算机上的东西一样。解决此问题的一种方法是让补充的点文件在家中使用,而不是在工作中使用。以下是我的实现方式:

if [[ `egrep 'dnssuffix1|dnssuffix2' /etc/resolv.conf` ]]; then if [ -e $HOME/.work ] source $HOME/.work else echo "This looks like a work machine, but I can't find the ~/.work file" fifi

在这种情况下,我根据我的工作 dns 后缀(或多个后缀,具体取决于你的情况)来提供(source)一个可以使我的工作环境更好的单独文件。

(LCTT 译注:标题 “What about Bob?” 是 1991 年的美国电影《天才也疯狂》。)

你该这么做

现在可能是放弃使用波浪号(~)表示编写脚本时的主目录的好时机。你会发现在某些上下文中无法识别它。养成使用环境变量 $HOME 的习惯,这将为你节省大量的故障排除时间和以后的工作。

如果你愿意,合乎逻辑的扩展是应该包括特定于操作系统的点文件。

(LCTT 译注:标题 “That thing you do” 是 1996 年由汤姆·汉克斯执导的喜剧片《挡不住的奇迹》。)

别指望记忆

我写了那么多 shell 脚本,我真的再也不想写脚本了。并不是说 shell 脚本不能满足我大部分时间的需求,而是我发现写 shell 脚本,可能只是拼凑了一个胶带式解决方案,而不是永久地解决问题。

同样,我讨厌记住事情,在我的整个职业生涯中,我经常不得不在一天之中就彻彻底底地改换环境。实际的结果是这些年来,我不得不一再重新学习很多东西。(“等等……这种语言使用哪种 for 循环结构?”)

因此,每隔一段时间我就会觉得自己厌倦了再次寻找做某事的方法。我改善生活的一种方法是添加别名。

对于任何一个使用操作系统的人来说,一个常见的情况是找出占用了所有磁盘的内容。不幸的是,我从来没有记住过这个咒语,所以我做了一个 shell 别名,创造性地叫做 bigdirs:

alias bigdirs='du --max-depth=1 2> /dev/null | sort -n -r | head -n20'

虽然我可能不那么懒惰,并实际记住了它,但是,那不太 Unix ……

(LCTT 译注:标题 “Memory, all alone in the moonlight” 是一手英文老歌。)

输错的人们

使用 shell 别名改善我的生活的另一种方法是使我免于输入错误。我不知道为什么,但是我已经养成了这种讨厌的习惯,在序列 ea 之后输入 w,所以如果我想清除终端,我经常会输入 cleawr。不幸的是,这对我的 shell 没有任何意义。直到我添加了这个小东西:

alias cleawr='clear'

在 Windows 中有一个等效但更好的命令 cls,但我发现自己会在 Shell 也输入它。看到你的 shell 表示抗议真令人沮丧,因此我添加:

alias cls='clear'

是的,我知道 ctrl + l,但是我从不使用它。

(LCTT 译注:标题 “Typos, and the people who love them” 可能来自某部电影。)

要自娱自乐

工作压力很大。有时你需要找点乐子。如果你的 shell 不知道它显然应该执行的命令,则可能你想直接让它耸耸肩!你可以使用以下功能执行此操作:

shrug() { echo "¯_(ツ)_/¯"; }

如果还不行,也许你需要掀桌不干了:

fliptable() { echo "(╯°□°)╯ ┻━┻"; } # 掀桌,用法示例: fsck -y /dev/sdb1 || fliptable

想想看,当我想掀桌子时而我不记得我给它起了个什么名字,我会有多沮丧和失望,所以我添加了更多的 shell 别名:

alias flipdesk='fliptable'alias deskflip='fliptable'alias tableflip='fliptable'

而有时你需要庆祝一下:

disco() { echo "(•_•)" echo "" echo " /  " echo "" echo " (•_•)" echo "" echo " /  "}

通常,我会将这些命令的输出通过管道传递到 pbcopy,并将其粘贴到我正在使用的相关聊天工具中。

我从一个我关注的一个叫 “Command Line Magic” @ climagic 的 Twitter 帐户得到了下面这个有趣的函数。自从我现在住在佛罗里达州以来,我很高兴看到我这一生中唯一的一次下雪:

snow() { clear;while :;do echo $LINES $COLUMNS $(($RANDOM%$COLUMNS));sleep 0.1;done|gawk '{a[$3]=0;for(x in a) {o=a[x];a[x]=a[x]+1;printf "033[%s;%sH 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LFS、BLFS、ALFS、HLFS的区别详解

Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的。LFS 基于这样的假设,即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是如何工作的,也允许独立的操作人员为速度、内存占用或安全性而构建…

jax-rs jax-ws_什么是JAX-RS注释?

jax-rs jax-wsJAX-RS概述(第1部分) JAX-RS API构成了Java EE平台承诺提供标准驱动技术的重要组成部分。 互联网无处不在的性质以及对微服务体系结构的日益增长的兴趣已将更多的精力放在小型可扩展的自治服务及其互操作性上。 允许微服务彼此之间以及“外…

计算机usb端口没反应,技术编辑教您电脑usb接口没反应怎么办

近来,有好多小伙伴反应有电脑USB接口不能使用的情况,鼠标键盘通通没反应。针对电脑usb接口没反应的问题,小编整理了常见的原因以及解决方法,希望能帮助你们解决问题USB是一个外部总线标准,用于规范电脑与外部设备的连接…

计算机二级access模考软件_计算机二级考前通关大礼包来啦!各科目模考软件、视频教程,更有往年真题、最新考纲等打包送!...

掐指一算,全国计算机二级就要开考了不知道大家准备的怎么样了?没准备?这个时候就该我出场了看看为大家精心准备的计算机二级考试的干货资源吧让你的考试一次pass!本期资料包括计算机二级考试最新大纲计算机二级模考软件计算机二级…

foxpro 打印 字体_【部编版同步复习】16年级上册期中预测卷,可打印!

小语说:开学以后,不仅要认真学习,还要注意复习之前的知识点。小语给你们准备了小学语文部编版1-6年级每课一练,快来学习收藏。(点击下方蓝色字体查看完整版,可打印下载哦!)点击蓝字标题 可查看相关内容电子…

查看数据库 MySQL 的版本信息的命令语句

文章目录一、mysql -V二、登录数据库后会显示版本信息三、mysqladmin -uroot -p version四、select version()五、命令 status六、show variables like %version%一、mysql -V [roothtlwk0001host ~]# mysql -V mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using E…

raii_Java中的RAII

raii资源获取即初始化( RAII )是Bjarne Stroustrup用C 引入的一种设计思想,用于异常安全的资源管理。 由于垃圾回收,Java 没有此功能,但是我们可以使用try-with-resources实现类似的功能。 约翰哈德斯(Joh…

计算机应用基础本模块一测试,广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试...

广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试 (12页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试1. 撤销输…

蓝牙驱动卸载后自动安装_最热建筑安装工程计算表格,输入后自动生成,省时方便易上手...

最热建筑安装工程计算表格,输入后自动生成,省时方便易上手!工程量计算是每一个造价从业者必备技能。但是要保证计算过程中不能有一丝丝差错,实在是一件令人头疼的事情,因为步骤比较繁杂,并且算量大&#xf…

ssm上传文件获取路径_SSM实现图片上传下载功能

0. 基本步骤框架搭建实现带图片上传的注册功能实现下载功能1. 框架搭建Step1 创建开发项目创建基础MVC包结构:controller、service、mapper、pojoStep2 导入jar包导入SpringMVC的jar、Spring的jar、MyBatis的jar、上传文件的jarStep3 配置文件配置applicationcontex…

Linux 目录详细说明

文章目录/usr/usr/bin/usr/lib/usr/share/usr/share/man/usr/share/doc/usr/share/zoneinfo/usr/local/usr/local/lib/usr/local/src/usr/src/usr/x11r6/usr/sbin/usr/include/usr/man & /usr/doc & /usr/info/bin/etc/etc/init.d/etc/xinetd.d/etc/X11/etc/rc.d/etc/p…

笔试知识点 网络安全_安全点

笔试知识点 网络安全安全点 Java应用程序中有两个逻辑线程组: 应用程序线程执行应用程序逻辑 执行GC的线程 在执行诸如堆压缩之类的操作时,GC线程会四处移动一些对象,并且这些对象不能被任何应用程序线程使用,因为它们的物理位…

51单片机做web服务器网页,基于51单片机的嵌入式web服务器

单片机 系统设计 编程维普资讯 http://doc.xuehai.net基于 5单片机的嵌入式 w b服务器 1 e基于 5单片机的嵌入式 we服务器 1 b刘东 (南交通大学电气工程学院 )西摘要本文设计实现了一个基于 5单片机的嵌入式 WE l B服务T P I议实现的嵌入式 WE C/P协 B服务器可以使各种家电设备…

stm32f4 hs 电路_电动机控制电路识图一看就懂

点击上方电工电气学习,关注并星标专业的电工电气领域自媒体,不容错过欢迎转发朋友圈,欢迎文末留言本书采用原理图与实物接线图一一对照的形式,讲述了常用机械设备、液位控制的水泵、小型机械设备、供排循环水泵等的电动机控制电路…

isnull mysql_mysql isnull用法讲解

mysql isnull用法讲解 MySQL 可以使用 ISNULL() 函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。 我们先来看几个is null sql用法: select * from newtable where name is null //取得newtable表中name为null值的所有数据 select * from tbas_tablemysql isnull用法讲…

Linux 命令之 file 命令-识别文件类型

文章目录介绍语法格式常用选项参考示例(一)显示文件类型(二)显示符号链接的文件类型介绍 file 命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像…

服务器遍历文件夹不按顺序,绕过遍历检查 (Windows 10) - Windows security | Microsoft Docs...

跳过遍历检查04/19/2017本文内容适用范围Windows 10在比较 Windows 10 版本中了解有关每个 Windows 版本支持哪些特性和功能的详细信息。介绍"绕过遍历检查安全策略"设置的最佳方案、位置、值、策略 管理和安全注意事项 。参考此策略设置确定哪些用户 (或代表用户帐户…

迈克尔 杰克逊mv_杰克逊JSON解析错误– UnrecognizedPropertyException:无法识别的字段,未标记为可忽略[已解决]...

迈克尔 杰克逊mv在解析从我们的一个RESTful Web服务接收到的JSON字符串时,我收到此错误“线程“ main”中的异常com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“ person”(类Hello $ Person)…

手机版wps怎么制作折线图_手机怎么制作电子签名?有没有手机电子签名软件或者APP?...

手机怎么制作电子签名?有没有手机电子签名软件或者APP?手机制作电子签名非常简单,当然也有移动版的电子签名软件或者APP。根据《电子签名法》第13条规定:电子签名同时符合下列条件的,视为可靠的电子签名:(一…

mysql查看主键别名_MySQL怎么查看约束的别名呢?

old神谕两种常用方法:① show index,其中key_name就是约束名SHOW INDEX IN table_name;(rootlocalhost) [test]> show index in a\G*************************** 1. row ***************************Table: aNon_unique: 1Key_name: idx_idSeq_in_ind…