linux shell启动脚本命令,bash shell配置和启动脚本

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=testone不可key1=′testone′而且等号左右2边不可有空格key2="key2isaaa即可得到ajax变量名不能以数字或者特殊字符开头key1=testone不可key1=′testone′而且等号左右2边不可有空格key2="key2is key1" 双引号能解析

key1='kkk'

key2='kk2'

key3=key1−−−−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来设置

定义过的普通变量和通过export 变量名来升级为环境变量

e866232756346dff21399c1ab3cddc0b.png

如果重新打开连接会话(root或者admin 身份登录)

key1,key2都是没有的

常用变量:

b88ebe8f08d413509f79c2993804dc11.png

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 别名 .

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值