Linux的Bash Shell详解
一、Bash Shell概述
1.什么是bash
bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互的工具,用户通过bash操作内核完成系统的使用和管理。
2.shell的种类
/bin/sh(已经被/bin/bash替代)
/bin/bash(默认的shell)
/bin/ksh(源自贝尔实验室,兼容bash)
/bin/tcsh(整合C shell,功能更为强大)
/bin/csh(已经被tcsh取代)
/bin/zsh(源自ksh功能更为强大)
每种shell的功能比较类似,但是语法会稍有不同。
3.bash的历史和发展
二、Bash Shell的变量概述
1.变量是代表一些值的符号。
2.可以通过变量来设置shell或者其他程序。
3.变量存在于内存中。
4.Linux有自定义变量(local)和环境变量(environment)。
5.自定义变量和环境变量的作用范围不同。
6.可以使用以下指令查看所有变量
set可以查看所有的变量
env只能查看环境变量
三、Bash Shell的设置方式
1.通过自定义变量设置
variable=value来设置
$variable来取得变量的值
变量名不能以数字或者特殊字符开头
如果想在值中有空格存在,则需要用双引号或者单引号来定义值,如:key="key is one"
单引号和双引号的区别在于,双引号支持拿已存在变量作为值的一部分,如:key="key is $key2"
unset key命令可以删除变量
常见的变量
HISTFILESIZE:记录历史指令保存的最大值
HISTSIZE:记录使用history命令查看历史指定输出的个数最大值
COLUMNS:终端窗口显示的宽度
LINES:终端窗口显示的高度
PS1:设置提示符号前面的内容样式(\d,\h,\t,\u,\w,\!,\$,\l,\#等)
2.通过别名(Aliases)设置
alias lss='ls -la'设置别名方式
使用alias查看系统中所有的alias
使用alias aliasName查看指定别名定义
type -a alias名称来查看别名具体定义描述
unalias删除别名定义
3.通过set指令设置
set 查看系统所有变量值
设置shell内部的属性值(set -o noclobber, set -o vi)
4.通过环境变量设置
自定义变量只能在当前的shell环境中有效。
环境变量会在整个主机下的shell环境中生效。
使用export variable name来设置环境变量。
常用变量介绍
HOME:指向当前用户的家目录。
LANG:应用程序使用何种语言来显示界面。
PWD:指向用户当前的工作目录路径。
PATH:
系统预设的环境变量。
执行一些没有指定路径的指令时去该路径中找。
PATH=$PATH.:将隐藏路径设置到PATH中,会带来安全性问题。
可以使用which指令来找到某个指令所在的位置。
四、Shell startup scripts的概述
1.Shell startup scripts是用户登录或其他非登录动作时会自动执行一些shell脚本
2.建立自定义变量或者执行set指令设置shell
3.建立环境变量,设置其他程序
4.使用alias,简化后续操作
5.登录登出的时候执行哪些程序
五、login和non-login shell的详解
1.login shell:
通过完整的登录流程时运行的shell。
首先会读取/etc/profile(PATH/USER/HOSTNAME/HISTSIZE等)。
读取/etc/profile.d/*.sh(颜色、语言、指令别名等)。
~/.bash_profile、~/.bash_login、~/.profile(只依次读取其中一个)。
~/.bash_rc、/etc/bashrc。
source指令可以加载脚本的变更,如:source /etc/profile。
2.non-login shell:
不需要登录流程就可以执行的shell,如su和原bash下的新bash动作
~/.bash_rc、/etc/bashrc
读取/etc/profile.d/*.sh
~/.bash_logout:
在注销用户时会进行该脚本
可以执行备份、缓存和临时文件清理等任务
Linux的Bash Shell详解的更多相关文章
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- Linux I/O 重定向详解及应用实例
Linux I/O 重定向详解及应用实例 简解 > 输出 < 输入 >> 追加 & [> | < | >>]之前:输入输出; ls /dev & ...
- Linux 用户及权限详解
Linux 用户及权限详解 用户 , 组 ,权限 安全上下文(secure context): 权限: r,w,x 文件: r : 可读,可以使用类似cat 等命令查看文件内容. w : 可写,可以编 ...
- 【转帖】Linux定时任务Crontab命令详解
Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...
- Linux定时任务Crontab命令详解_转
转自:Linux定时任务Crontab命令详解 (部分修改) linux 定时系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服 ...
- Linux 用户和用户组详解
用户分类 超级用户:UID范围 0 root用户:uid=0(root) gid=0(root) groups=0(root) 普通用户:由管理员创建,UID范围(500-65535) --> ...
- 【转】linux中inittab文件详解
原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...
- Linux开机启动程序详解
Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...
- Linux开机启动程序详解[转]
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...
随机推荐
- SQL优化实战之加索引
有朋友和我说他的虚机里面的mysql无法跑sql,但是在本地环境是这个sql是可以跑出来的.碰到这个问题第一反应是:死锁. 于是让他查询数据库的几个状态: 发现连即时锁都非常少,不是锁的问题. 进一步 ...
- Ng第七课:正则化与过拟合问题 Regularization/The Problem of Overfitting
7.1 过拟合的问题 7.2 代价函数 7.3 正则化线性回归 7.4 正则化的逻辑回归模型 7.1 过拟合的问题 如果我们有非常多的特征,我们通过学习得到的假设预测可能能够非常好地适应训练 ...
- kepware http接口 php
读取某变量的值(HttpRequest <?php $request = new HttpRequest(); $request->setUrl('http://127.0.0.1:393 ...
- Codeforces Round #264 (Div. 2) E. Caisa and Tree 树上操作暴力
http://codeforces.com/contest/463/problem/E 给出一个总节点数量为n的树,每个节点有权值,进行q次操作,每次操作有两种选项: 1. 询问节点v到root之间的 ...
- MEAN 27
添加评论主题页,在26的基础上. 新建了很多文件 Error: Cannot find module './controllers/customers_c' 解决办法:../ 接下来做function ...
- JBoss 系列四十九:JBoss 7/WildFly 中端口使用列表
JBoss 7中端口使用列表 JBoss 7中所有配置都在一个文件中(standaone*.xml, domain.xml),和之前的JBoss相比JBoss 7用到的端口变少,我们将以表格的形式列出 ...
- ?js调用PHP里的变量,怎么弄?
js调用PHP里的变量,怎么弄 网上给的例子都是js文件里一开始先给这个变量一个值,要是那样有啥意思啊,我要的就是可以变化的. hychyc_2008 | 浏览 2741 次 2013-04-18 ...
- iOS开发 关于iBeacon的一些记录
最近时间一直在研究ibeacon所以把自己遇到的一些问题写下来做个笔记. 参考资料:https://github.com/nixzhu/dev-blog/blob/master/2014-04-23- ...
- caffe 每层结构
如何在Caffe中配置每一个层的结构 最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结. 1. Vision ...
- 论文笔记(1)-Dropout-Improving neural networks by preventing co-adaptation of feature detectors
Improving neural networks by preventing co-adaptation of feature detectors 是Hinton在2012年6月份发表的,从这篇文章 ...