什么人需要学shell
程序员(初步系统管理能力/编写用户安装于配置脚本)
shell是什么
shell是个负责把用户语法的语言解释成系统与内核调用解释程序
用户语法:采用最早的语言algol语言
采用的c语言
1. shell分成两大类:
algol语言风格:sh , ksh, bash
c语言风格:csh,tcsh
1.查看当前shell:
使用echo $SHELL
2. 每个终端的shell与用户启动的shell
echo $SHLVL 查看shell嵌套层次
2.1. 用户登录与shell的关系
a. 使用telnet连接到服务器
b. 服务器启动login
c. 用户输入账号与口令
d. 服务器打开/etc/passwd /etc/shadow
/etc/group 等文件
e. 校验用户信息,并且把打开的信息保存在内存中
这些信息有公用名字:环境变量
LOGNAME USER HOME SHELL UID MALL
查看环境变量:
命令:echo ${LOGNAME} echo${USER}
f. 切换到主目录${HOME}
g. 启动shell (login shell/登录shell)
2.2. shell的启动方式
登录方式启动
登录时默认启动方式是登录shell
用户也可以使用登录方式启动 bash –l 或 bash --login
用户方式启动
bash
启动方式不同:
Shell启动的时候还做了如下工作:
加载如下几个脚本
/etc/profile
~/.bashrc
~/.bash_profile或 ~/.bash_login或者~/.profile中的一个
登录shell只加载/etc/profile与~/.bash_profile ~/.profile~/bash_login
非登录shell只加载~/.bashrc
注意:
~/.bashrc的登录方式启动的时候是靠~/.bash_profile文件加载的
作用:
配置环境变量的时候应该知道怎么选择修改哪个文件