bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来

查看当前shell
echo $SHELL
查看系统支持的shell
cat /etc/shells

cd /bin
ls -la *sh

一、 bash shell的配置
变量可分为自定义变量和环境变量
他们作用范围不同
set 可以查看所有变量
set|more 查看 enter一行一行查看
set|less enter换行 pagedown换页 q退出

env只能查看环境变量

bash shell的设置方式
1.通过自定义变量设置
key=value
比如 aaa=ajax
echo $aaa 即可得到ajax
变量名不能以数字或者特殊字符开头
key1=test one 不可 key1='test one' 而且等号左右2边不可有空格
key2="key2 is $key1" 双引号能解析
key1='kkk'
key2='kk2'
key3=$key1----$key2
echo $key3
kkk----kk2
unset key3 删除变量

常见的变量
set|grep HIST
HISTFILESIZE :记录历史指令保存的最大值
HISTSIZE:执行history时显示的个数
COLUMNS:终端窗口显示的宽度
LINES:终端窗口显示的高度
PS1:设置提示符号前面的内容样式(\d,\h,\t,\u,\W,\!,\$,\l 等)
\u 当前用户
\W 当前工作目录
\w 当前完整的工作目录从/算起
\h 主机名
\t 当前时间
\# 登录后下达的第几个指令
比如
PS1='[\u@\h-\w-\t-\#]'
[root@bogon-/var/var/lib-08:35:26-38]

2.通过别名(Aliases)设置
设置,查看所有,查看某别名值,type -a ,删除
type ll
[root@bogon-/var/var/lib-08:35:26-38]type ll
ll 是 `ls -l --color=auto' 的别名
[root@bogon ~]# alias ll
alias ll='ls -l --color=auto'
[root@bogon-/var/var/lib-08:35:43-39]type -a ls
ls 是 `ls --color=auto' 的别名
[root@bogon-/var/var/lib-08:35:45-40]type cd
cd 是 shell 内嵌
查看所有别名 alias
设置
alias cls='clear'
[root@bogon-/var/var/lib-08:42:55-51]type cls
cls 是 `clear' 的别名
查看alias的值 alias cls
[root@bogon-/var/var/lib-08:43:00-52]alias cls
alias cls='clear'
删除别名定义
unalias cls

3.通过set指令设置
set自身查看所有变量的值
设置shell内部的属性值(set -o noclobber,set -o vi)
ll>a.txt 可以写入
ll>a.txt 可以覆盖

ll>a.txt
-bash: a.txt: 无法覆盖已存在的文件
ll>>a.txt 可以追加
set -o noclobber /*设置禁止重定向覆盖*/
set +o noclobber /*设置允许重定向覆盖*/
[root@bogon ~]# set -o
allexport off
braceexpand on
emacs on
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi off
xtrace off

[root@bogon ~]# set +o
set +o allexport
set -o braceexpand
set -o emacs
set +o errexit
set +o errtrace
set +o functrace
set -o hashall
set -o histexpand
set -o history
set +o ignoreeof
set -o interactive-comments
set +o keyword
set -o monitor
set +o noclobber
set +o noexec
set +o noglob
set +o nolog
set +o notify
set +o nounset
set +o onecmd
set +o physical
set +o pipefail
set +o posix
set +o privileged
set +o verbose
set +o vi
set +o xtrace

-o,+o
set -o vi
设置输入命令的模式为vi下
ls 按esc 进入vim命令行模式编辑状态

4.通过环境变量设置
自定义变量只能在当前shell环境下有效
环境变量在整个主机下的shell环境中有效

可使用 export variable name来设置

unset 变量名可以删除变量

定义过的普通变量和通过export 变量名来升级为环境变量,在子bash里生效

如果重新打开连接会话(root或者admin 身份登录)
key1,key2都是没有的

常用变量:

PATH

PATH=$PATH.:
将隐藏的路径设置到PATH中,会带来安全问题?

[root@bogon ~]# which chgrp
/usr/bin/chgrp

[root@bogon ~]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls

二、shell startup scripts原理
login和non-login
用户登录或者其它非登录动作时自动执行的一些脚本
建立自定义变量或者执行set设置shell
建立环境变量,设置其它程序
使用alias 简化后续操作
登录时执行哪些程序

login

完整登录流程(centos)

/etc/profile           (PATH/USR/HOSTNAME/HISTSIZE等))
    /etc/profile.d/*.sh    (颜色语言 指令别名)
~/.bash_profile
    ~/.bashrc
      /etc/bashrc
~/.bash_login
~/.profile

~/.bash_profile,~/.bash_login,~/.profile (只能依次读取其中一个)

任何一个读取成功,不再读取下一个

各自home目录的只对各自生效
修改完成功后 source 重新加载脚本即可

non-login
无需登录即可运行的shell,如su和 原bssh下的新bash动作
涉及到的脚本
~/.bashrc 和/etc/bashrc
/etc/profile.d/*.sh (颜色语言 指令别名)
执行bash命令

~/.bash_logout 用户注销时执行的命令,备份,清理等

source 别名 .

history 历史命令
1007 set|grep HI
1008 set|grep HISTFILE
1009 set|grep HIST
1010 cat /root/.bash_history
1011 vim /root/.bash_history
1012 set|grep HIST
1013 history
1014 set|grep HIST
1015 ll
1016 history
!! 表示上一个命令
!s 表示执行最近的s开头的命令 当前即1014号命令
!1013 执行历史编号的1013号命令

配置和启动脚本(bash shell学习01)的更多相关文章

  1. Centos 配置开机启动脚本启动 docker 容器

    Centos 配置开机启动脚本启动 docker 容器 Intro 我们的 Centos 服务器上部署了好多个 docker 容器,因故重启的时候就会导致还得手动去手动重启这些 docker 容器,为 ...

  2. gitlab6 nginx配置和启动脚本

    gitlab6 nginx配置和启动脚本 cheungmine 2013-10 最近把gitlab安装到了ubuntu12.04.3的虚拟机上了.参考: https://github.com/gitl ...

  3. ubuntu系统自动配置开机启动脚本

    以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢  https://www.linuxidc.com/Linux/2017-09/1471 ...

  4. bash shell学习-shell基础 (笔记)

    When you hoist the sails to cross the sea, you willride the wind and cleave the waves. "长风破浪会有时 ...

  5. bash shell学习-实践 (自己实现一些小工具)

    The poor starve while the rich feast. "穷人饥肠辘辘,富人大吃大喝" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版)  Linux S ...

  6. bash shell学习笔记(一)—— 常用命令

    一.基本的bash shell命令 1.默认bash shell 提示符是美元符号($); 2.bash手册 使用man命令来访问存储在Linux系统上的手册页面,如: bogon:~ Mac$ ma ...

  7. Linux下Bash shell学习笔记

    原文地址: http://www.cnblogs.com/NickQ/p/8870423.html 1.shell下没有变量类型和定义的概念. 变量直接使用不用定义 所有值都视为字符串. 在对变量取值 ...

  8. hadoop 与 hbase 添加开机启动,按顺序,先hadoop,后hbase,开机启动脚本,hbase学习

    hadoop安装,hbase单机安装,参考链接,https://blog.csdn.net/LiuHuan_study/article/details/84347262 开机启动脚本,参考, http ...

  9. 【Linux】bash shell学习

    Bash Shell Linux系统的合法shell都写入/etc/shells这个文件,默认使用的shell版本称为“Bourne Again Shell(简称bash)” 用户登录时系统会分配一个 ...

随机推荐

  1. C语言结构体初始化的三种方法

    直接上示例了 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3 ...

  2. LinuxKit

    LinuxKit是Docker最新发布的一个用于为容器构建安全.便携.可移植操作系统的工具包.它根据用户编写的yaml(指定kernel和基于docker image的一些列服务)自动构建一个常见虚拟 ...

  3. SeekBar拖动条控件

    SeekBar拖动条控件 一.简介 1. 二.SeekBar拖动条控件使用方法 1.创建SeekBar控件 <SeekBar android:id="@+id/SeekBar1&quo ...

  4. Shell 概述、截取字符操作等

    Shell 是用C语言编写的程序,便于用户与Linux内核系统进行交互. Linux的Shell种类众多,常见的有: Bourne Again Shell (/bin/bash) Bourne She ...

  5. 基于mysql的全文索引

    支持引擎:mysql的MyISAM存储引擎和Innodb存储引擎(5.6及其以上)支持. 适用类型:char.varchar和text. 新建方法:ALTER TABLE article  ADD F ...

  6. Redis 命令,键(key),字符串(String),哈希(Hash),列表(List),集合(Set)(二)

      Redis 命令 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. ...

  7. CC 攻击检测研究现状

    网络层ddos 是让去往银行的道路交通变得拥堵,无法使正真要去银行的人到达:常利用协议为网络层的,如tcp(利用三次握手的响应等待及电脑tcp 连接数限制)等应用层ddos 则是在到达银行后通过增办. ...

  8. day5-随机数相关:random模块&string模块

    一.概述 随机数在程序设计中的属于比较基础的内容,主要用于验证场景(如验证码,生成账号对应的密码等),今天结合random模块和string模块来谈谈python中随机数那些事儿. 二.随机数实现相关 ...

  9. 《Java程序员职场全攻略 从小工到专家》 - 书摘精要

    (前言) 学习招式在次,提升内力才是最主要的: (P10) 选择一门编程语言,只是入门的途径.过分依赖编程语言,只会让自己成为代码高手,而不是开发大牛,要知道编程语言只是一种工具,更重要的是编程思想: ...

  10. 剑指offer--32.把数组排成最小的数

    用to_string()将整形转化为字符串,对字符串进行比较 --------------------------------------------------------------------- ...