1. shell分类
shell的分类及执行的过程
交互式shell
非交互式shell
登录式shell
非登录式shell
yum install -y psmisc
[root@qls ~]
systemd─┬─NetworkManager───2*[{
NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{
auditd}
├─crond
├─dbus-daemon
├─firewalld───{
firewalld}
├─master─┬─pickup
│ └─qmgr
├─nginx───nginx
├─polkitd───6*[{
polkitd}]
├─rsyslogd───2*[{
rsyslogd}]
├─sshd─┬─sshd───bash───pstree
│ └─sshd───bash───bash
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{
tuned}]
└─vmtoolsd───{
vmtoolsd}
2. 用户的工作环境相关文件
/root/.bash_profile
/root/.bashrc
/etc/bashrc
/etc/profile
/etc/profile.d/*.sh
profile
bashrc
执行顺序
[root@qls ~]
[root@qls ~]
[root@qls ~]
[root@qls ~]
[root@qls ~]
[root@qls ~]
/etc/profile ---》 /etc/profile.d/*.sh ---》 .bash_profile ---》 .bashrc ---》 /etc/bashrc
.bashrc ---》 /etc/bashrc ---》 /etc/profile.d/*.sh
3. su命令切换用户
su username
su - username
区别就是加载的配置文件不一样
root用户切换到普通用户是不需要密码的,而普通用户切换到root用户是需要密码的
[root@qls ~]
[root@qls ~]
Changing password for user test10.
passwd: all authentication tokens updated successfully.
[root@qls ~]
/etc/bashrc
/etc/profile.d/*.sh
[test10@qls root]$
[test10@qls root]$ pwd
/root
su username在切换用户的时候,只执行了
/etc/bashrc
/etc/profile.d/*.sh
切换之后所在的目录是在从哪个用户切换过来的就是谁的家目录
[root@qls ~]
Last login: Wed Jul 22 09:09:58 CST 2020 on pts/0
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
[test10@qls ~]$ pwd
/home/test10
su - username 在切换用户的时候属于一种登录式shell 跟su命令直接切换的区别就是是否加载了/etc/profile文件,切换之后,工作环境也已经改变了,是在自己的家目录下面
[root@qls ~]
Last login: Wed Jul 22 09:13:03 CST 2020 on p