使用Mac系统的朋友应该比较熟悉Zsh和Bash这两个shell,但是对二者具体有什么区别可能不太了解。本文将从这两个shell入手,对相关概念以及二者区别进行解释。
shell 单词的本意是“壳子”,在计算机领域一样可以理解为机器外面的一层壳,目的是进行用于人机交互,本质上是命令解释器。只要是人与电脑之间交互的接口,就可以称为 shell。
需要说明的是,常见的概念包括shell脚本,其指的是采用shell语言编写的脚本,可以使用shell程序来进行执行,而本文所说的shell均指的是shell程序。二者之间的关系可见下图:
在现代的 Linux 上,sh 已经被 bash 代替,/bin/sh往往是指向/bin/bash的符号链接。如果你希望查看当前 Linux或MacOS的默认shell,那么可以输出 shell 环境变量:
$ echo $SHELL
如果想知道自己系统安装了哪些shell,使用如下命令可得到如下所示的信息。
cat /etc/shells
如上所说,shell 在启动时都会去找配置文件,然后运行它。你安装的一些脚本,如果想让它能够全局运行,就需要在配置文件中设置路径。有过设置路径后还是不管用的经历吗?多半是因为把配置写在了错误的配置文件里。* 应该在配置shell(最常见的是配置默认命令)之前,使用 echo $SHELL
,确认自己现在用的是什么shell后,再去编辑对应的配置文件 *。
一句话,二者均是shell的一种,zsh能基本完美兼容bash的命令,并且使用起来更加优雅。由于bash或zsh本质上都是解释器,他们所共同服务的是shell语言,因此在命令语法上基本相同,部分兼容性差异可参考:zsh和bash的兼容性差异。
二者切换:
chsh -s /bin/bash
chsh -s /bin/zsh
在配置文件方面:
~/.bash_profile
文件~/.zshrc
文件当从bash切换为zsh时,如果不想重新配置一遍.zshrc文件,可以__在.zshrc文件中加上source ~/.bash_profile
,从而直接从.bash_profile文件读取配置。
element-ui el-table 动态新增 el-table-column,表格闪现问题的分析与解决在做动态增加删除 el-table 的列,遇到 column 显示隐藏会造成 el-table 闪烁情况:效果如下:代码如下:<template> <div> <el-select v-model="select"> <el-option label="显示列3" :value="true"></el-opt
转载请注明预见才能遇见的博客:http://my.csdn.net/原文地址:页面加载完成之后执行js函数window.onload 和 $().ready(function) 以及 的同级函数详解1.window.onload = function(){} / $(window).load(function)方法是在网页中的所有的元素(包括元素的所有关联文件:图片、音视频、f
说到移动App的推广,高手一般都有自己一套成熟的推广套路,运用起来也是驾轻就熟,但是对于新手来说,在创业团队初始阶段,产品不成熟、渠道不成熟、团队不成熟、预算不充足、用户没粘性的情况下,该怎么做推广呢?今天就推荐一些通用的入门级推广方案,希望能给推广新手带来帮助。一、免费渠道:1、在互联网中留下App的“说明书”这里提到的“说明书”是指关于App的简介或者功能介绍。一款产品刚开发出来首先要扎...
学习目标:使用ADC采集电压通过配置ADC1_IN1通道,结合ADC模数转换函数,将电压模拟量转换为数字量,并将数据通过串口打印输出。CubeMX配置参数配置在 Analog 中选择 ADC1 设置,并选择 IN1 通道1,选择 IN1 Single-ended单通道。ADC具体配置参数下图所示需要配置的参数已在图中框出,其他只需要保持默认就可以。ADC_Settings:Clock Prescaler:Asynchronous clock mode divided by 1 1
废话不多说直接说方法:linux自带这个东西默认路径 /etc/logrotate.conf 代表的是默认的配置自定义配置的地址 /etc/logrotate.d //里面存放的是已经配置的文件直接上例子:/root/.forever/*.log { daily //代表每天循环一次 missingok // rotate 5 //比如你每天分割一次,到第六天会把第一天的替换掉 dateext //生成的文件格式 notifempty //对于
结构、联合、位字段1、结构体空洞结构字段在存储器中并不一定是挨着摆放的,有时两个字段之间会有小的空隙。 因为计算机总希望数据能对齐字边界,如果计算机的字长是32位,就不希望某个变量跨越32位的边界保存。 因为计算机按字从存储器中读取数据,如果某个字段跨越了多个字,CPU就必须读取多个存储单元,并以某种方式把督导的值合并起来。会很慢。2、匿名结构 匿名结构就是没有名字的结构,typedef s
效果:(代码写的有点乱,自行修改就可以了) 源码: index.php<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>中通快递单号查询</title> <styl...
前期准备:安装requests库,我猜你可能需要:Python网络爬虫与信息提取笔记01-Requests库入门Windows下安装pip和换源import osimport requestsurl = 'https://pvp.qq.com/web201605/js/herolist.json'herolist = requests.get(url) # 获取英雄列表json文件herolist_json = herolist.json() # 转化为json格式hero_na.
题目:一张名为workersalary的表,要求查询出全部信息,并且salary最高的三个人按升序排列在结果的最开头,其余的人按原有顺序排列。这个sql如何写?解答:(1)题意理解假如原先的表是这样的namesalaryLiuYi2000ChenEr1000ZhangSan5000LiSi4000WangWu8000ZhaoLiu6000SunQi7000ZhouBa3000题目要求变成这样nam...
函数 函数 描述 date(timestring, modifier, modifier, …) 以 YYYY-MM-DD 格式返回日期。 time(timestring, modifier, modifier, …) 以 HH:MM:SS 格式返回时间。 datetime(timestring, modifier, modifier, …) 以 YYYY-MM-DD
idea-tomcat部署的时候差不多要20-30分钟,搞得我怀疑是不是我电脑的问题1.检查你的项目大小,如果是大的离谱,超出预算可以继续看下去。2.问题产生的原因是idea输出路径文件一直在叠加,导致编译量巨大解决方案第一步第二步第三步第四步第五步接下来你把artifacts加进tomcat就可以了关于热部署,java文件不编译问题,写完java后,ctrl+f9编译一下,不行的话,重启tomcat,这个过程很快...
SpringBoot1:SpringBoot基础入门1-1:什么是SpringBoot1-2:什么是微服务1:SpringBoot基础入门1-1:什么是SpringBoot什么是Spring Spring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者:Rod Johnson。 Spring是为了解决企