一个好的终端,会让人心情愉悦,不管是视觉效果上还是功能便利上,自己的用的放心,用的舒心,越用越爽,欲罢不能。好了,废话不多说了,一个好终端的第一步当然是安装各种软件包了。 一,软件包 Oh My Zsh Oh My Zsh是一个进化版的bash,提供了彩色化的界面显示和智能提示。 安装 Oh My Zsh: $ sh -c "$(curl -fsSL https://raw.githubuserc

bash   shell  

本文对bash的源码(版本:4.2.46(1)-release)进行简要分析。 数据结构 bash是用C语言写成的,其源码中只使用了少量的数据结构:数组,树,单向链表,双向链表和哈希表。几乎所有的bash结构都是用这些基本结构实现的。 源码中最主要的结构都定义在根目录下头文件command.h中。 单词 bash在不同阶段传输信息并处理数据单元的数据结构是WORD_DESC: typedef st

linux   bash   shell  

Homebrew 在终端执行下列语句来安装Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装可能有点慢 brew源 注意:使用国内源的时候不可以连接shadowsock等VPN,不然访问不了 1.替换为中科大源 替换brew.git: cd "$(

macos   bash   linux  

bash命令的执行分为四大步骤:输入、解析、扩展和执行。 本文将详述bash命令的一般处理过程: 如图所示 输入 交互模式 在交互模式下,输入来自终端。bash使用GNU Readline库处理用户命令输入,Readline提供类似于vi或emacs的行编辑功能(如Ctrl+a、Ctrl+e等等)。 当敲击键盘时,字符会存入Readline的编辑缓冲区,Readline会处理输入的变化并及时地将结

linux   bash   shell  

bash的内置命令和外部命令的使用方法相同,我们已经介绍了一部分内置命令的用法,本文接着介绍另一些常用内置命令的用法。 1、: 此命令的执行没有任何效果,但在命令执行前会进行参数扩展和重定向。命令返回值为0。 举例: #!/bin/bash #可以用在while复合命令中形成一个死循环 while : do cmd done #当然内置命令:可以换成任何返回值为0的命令,如: while

linux   bash   shell  

在之前的文章中我们讲述了变量扩展、数学扩展和命令替换。本篇接着介绍shell中用到的其他扩展。 历史扩展 默认时,在交互式shell环境下,bash允许对历史命令进行记录和扩展。 环境变量HISTSIZE的值定义了记录历史命令的条数,HISTFILE的值指明了交互式shell启动时需要加载的历史命令的配置文件。在交互式shell退出时(exit),当前环境下执行过的命令会保存在此配置文件中。 当不

shell   bash   linux  

在这一篇中,我们介绍了一点关于输入输出重定向和管道的基础知识,本篇将继续重定向的话题。 在开始前,先说一说shell中的引用。 引用 和许多编程语言一样,bash也支持字符的转义,用来改变字符的原有含义,使得一些元字符(如&)可以出现在命令中。 bash中有三种类型的引用,相互之间稍有不同: 第一种是反斜线(\),用来转义紧随其后的一个字符 [root@centos7 temp]# echo \$

linux   bash   shell  

本文开始正式介绍shell脚本的编写方法以及bash的语法。 定义 元字符 用来分隔词(token)的单个字符,包括: | & ; ( ) < > space tab token 是指被shell看成一个单一单元的字符序列 bash中包含三种基本的token:保留关键字,操作符,单词。 保留关键字是指在shell中有明确含义的词语,通常用来表达程序控制结构。包括: ! case coproc d

shell   bash   linux  

本篇开始,介绍shell脚本编程,更确切的说是bash脚本编程(版本:4.2.46(1)-release)。我们从变量开始。 和所有的编程语言一样,bash也提供变量,变量是一些用来指代数据并支持数据操作的名称。 类型 环境变量 概念 当我们通过ssh等工具登录系统时,便获得一个shell(一个bash进程),bash在启动过程中会加载一系列的配置文件,这些配置文件的作用就是为用户准备好bash环

linux   bash   shell  

本文介绍ip、ss、journalctl和firewall-cmd,它们旨在代替linux中原有的一些命令或服务。 1、ip ip [OPTIONS] OBJECT COMMAND ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。 OPTIONS是修改ip行为或改变其输出的选项。 OBJECT是要获

shell   bash   linux  
1 2 3 4 5 6 7 8 9