前面一篇“shell编程之变量篇”主要讲述下shell编程的变量的基本知识:设置变量的方式,自定义变量和环境变量的差别,变量的替换、删除、测试等。

这一篇主要是讲述在bash shell下的一些基本配置:别名,命令执行,配置文件的读取,可以自定义修改的配置文件。

  • 别名设置

别名设置方式:alias      

alias cl='clear'

如上所示的形式

如果希望每次启动shell都能使用这些别名的话,修改自己用户目录下的"~/.bashrc"配置文件,如下图,在文件中找一个适当的位置写入就可以了。

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF' # add by user
alias cl='clear'
alias lm='ls -al | more'
#alias rm='rm -i'
#alias cp='cp -i'
#alias mv='mv -i'
alias hi='history'

写完之后使用source命令应用

# source ~/.bashrc

  • 历史命令
history
n 列出最近的几条历史命令
-c 消除历史命令
-a 将新增的历史命令写入到file中,没有指明的话就是默认在 ~/.bash_history

历史命令最有用的一点就是可以查看历史命令,并且根据他的编号来执行历史命令。具体如下

#使用
#执行第numer条命令
$ !number #number是 指历史命令的第几条 #执行上一条命令
$ !! #两个感叹号就是执行上一条命令

  • 命令的寻找顺序

由之前学习的知识可以知道我们的命令存在形式很多种:绝对路径下的命令,相对路径下的命令,别名指向的命令,还有bash的内建命令,那么对于同一个命令,当这几种都冲突的时候,他的优先级是怎样的。

按照序号顺序的优先级:

  1. 以相对路径和绝对路径执行的命令优先
  2. 由alias找到的别名优先
  3. bash内置的命令
  4. 通过PATH变量寻找的命令

  • bash的一些配置文件

这里有两个很好玩的配置文件,是tty1-tty6的开机启动的配置文件。

/etc/issue       bash登录界面显示信息

/etc/motd       bash登录之后的显示信息

这两个文件的作用不在图形界面的shell中显示,需要打开tty登录。

这里可以看下我的配置登录界面的效果图:

图就是我在/etc/issue中修改的显示信息。

  1. 接下来说说一些其他的配置文件

说之前我们分一下login-shell与non-login-shell的差别。

简单的说差别就在于login-shell是在tty1-tty6中登录的bash shell,non-login-shell就是图形界面登录的bash shell

login-shell读取的文件:

1. /etc/profile       系统全局的设置文件

2. ~/.bashrc或者~/.profile               用户自定义的设置文件

/etc/profile是一个全局的设置,一般不需要更改

总结:login-shell的读取配置文件流程

图中的 ~/.bash_profile  在ubuntu中是没有的,这个文件是调用~/.bashrc文件的,主要是为了兼容老用户的习惯,ubuntu中可能是删除了这个文件

~/.bashrc  文件login-shell 和non-login-shell都会读取

2.还有一些其他常用的配置文件

  • PATH变量在   /etc/environment 文件中
  • /etc/profile.d/*.sh    该文件夹下的脚本文件主要用于设置bash的操作接口和字体颜色,语系,别名
  • /etc/manpath.config    寻找man page的路径
  • ~/.bash_history        历史命令文件
  • ~/.bash_logout         用户注销之后再帮我完成什么动作,在这里配置

【shell编程基础0】bash shell编程的基本配置的更多相关文章

  1. Linux编程 3 (初识bash shell与man查看手册)

    一.初识bash shell 1.1 启动 shell   GNU bash shell 能提供对Linux系统的交互式访问.通常是在用户登录终端时启动,登录时系统启动shell依赖于用户账户的配置. ...

  2. 《网络安全编程基础》之Socket编程

    <网络安全编程基础>之Socket编程 我的代码 server.c // server.cpp : Defines the entry point for the console appl ...

  3. [.net 面向对象编程基础] (2) 关于面向对象编程

    [.net 面向对象编程基础]  (2)  关于面向对象编程 首先是,面向对象编程英文 Object-Oriented Programming 简称 OOP 通俗来说,就是 针对对象编程的意思 那么问 ...

  4. 【shell编程基础1】shell变量篇

    Bash shell bash shell 是bourne shell 的升级版,“bourne again shell”.ubuntu的默认shell. 预备知识 1. "#!" ...

  5. Linux基础之bash shell介绍及基本特性

    今天继续讲Linux基础知识,内容是关于bash shell的.分享以下bash shell的相关知识,例如基本特性等.  1.8)bash shell的介绍 1.8.1)什么是bash shell ...

  6. shell重温---基础篇(shell变量&字符串以及git GUI运行shell脚本方式)

    既然是基础篇那肯定是需要对shell的各种需要注意的基本点进行说明了.接下来就是show time...    shell呢,是一个用C语言编写的应用程序,是用户使用linux的桥梁.所以呢,他既是一 ...

  7. shell脚本学习之Bash shell 里各种括号的用法

    今天在 SegmentFault 上看到又有人问起关于Shell里各种括号的问题.对于很多玩Shell的人,括号是个很尴尬的问题,用起来没问题,说起来不明白,我在这里总结一下Bash Shell几种括 ...

  8. 【网络编程1】网络编程基础-TCP、UDP编程

    网络基础知识 网络模型知识 OSI七层模型:(Open Systems Interconnection Reference Model)开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一个 ...

  9. shell重温---基础篇(shell数组&数组操作)

    上篇博客已经分析重温了shell的运行方式以及其中的变量还有字符串,之后按照套路就是数组方面了,废话不多说,直接进入正题哈.(小白笔记,各位看官勿喷...)     bash shell呢,支持一位数 ...

随机推荐

  1. 类中的两大类(string类、math类)的应用

    类是我们在学习C#的过程中很关键也是特别容易让人蒙逼得地方,类的应用直接可以调用它的属性和方法来进行判断和验证 string类(也叫字符串类) C#中的String类很有用,下面是一些它的常用方法的总 ...

  2. hdoj 1257 DP||贪心

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  3. KoaHub平台基于Node.js开发的Koa的调试实用程序

    debug small debugging utility debug tiny node.js debugging utility modelled after node core's debugg ...

  4. 算法模板——AC自动机

    实现功能——输入N,M,提供一个共计N个单词的词典,然后在最后输入的M个字符串中进行多串匹配(关于AC自动机算法,此处不再赘述,详见:Aho-Corasick 多模式匹配算法.AC自动机详解.考虑到有 ...

  5. 【运维监控】四款云服务监控工具介绍:Nagios 、 ganglia、zabbix、onealert

    在我们日常的工作中,有时候需要监控和管理平台的运行状况,而服务运行是否存在异常,是否有软硬件bug等,均需要第一时间知道.对服务状态了如指掌,是一个很重要的事情.那么这个如何做到呢,我们之前在进行私有 ...

  6. 【js数据结构】栈解决括号不匹配问题

    栈可以用来判断一个算术表达式中的括号是否匹配. 思路:读取算术表达式,遇到左括号'{'.'['.'('压入栈,栈的特点是后入先出,所以当遇到右括号'}'.']'.')'的时候,取出栈顶元素,是否满足读 ...

  7. C# 使用 USB转串 接收数据 问题

    C# 使用 USB转串 接收数据的 问题 硬件设备是MicroUSB接口,通过USB转串驱动接入PC机.自己用winForm写了一个读取串口数据的小程序,总是接收不到数据. 用传sscom32串口工具 ...

  8. ES6是什么

    编程语言JavaScript是ECMAScript的实现和扩展,由ECMA(一个类似W3C的标准组织)参与进行标准化.编程语言JavaScript是ECMAScript的实现和扩展,由ECMA(一个类 ...

  9. JS 拖动DIV 需要JQUERY 支持

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 基于Intranet的零件库管理信息系统设计--part02

    昨天建了第一个子表,今天继续. 按照这个一个一个来: 轴承参数查询如下(来源:轴承查询型号网) 照这个来大概就是这么几个属性: 轴承主键,轴承名称,新型号,旧型号,内径,外径,宽度,Cr,Cor(话说 ...