shell登陆区别

    技术2025-03-20  269

    shell登陆的方式有两种,login shell 与nologin shell,一般默认的用户登陆为login shell。 两种登陆方式的区别在于执行的配置文件数量。

    配置文件已经有网友总结过了。 /etc/profile,/etc/bashrc 是系统全局环境变量设定 /.profile,/.bashrc用户家目录下的私有环境变量设定 当登入系统时候获得一个shell进程时,其读取环境设定档有三步 1首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc 2然后根据不同使用者帐号,去其家目录读取/.bash_profile,如果这读取不了就读取/.bash_login,这个也读取不了才会读取 ~/.profile,这三个文档设定基本上是一样的,读取有优先关系 3然后在根据用户帐号读取~/.bashrc 至于/.profile与/.bashrc的不区别 都具有个性化定制功能 ~/.profile可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次 ~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次

    添加一点,shell退出是会将期间执行的命令保存到~/.bash_history,并执行./bash_logout中命令。

    login shell是执行所有的配置文件 nologin shell 只执行/etc/bashrc与~/.bashrc

    顺带一提,切换用户时使用su 有两种情况 su - 用户名 :login shell su 用户名:nologin shell

    shell小技巧 ctrl + R:搜索历史命令 ctrl + D:退出当前shell ctrl + E:到命令末尾 ctrl + A:到命令开头 ctrl + K:删除光标的后面命令 ctrl + U:删除光标的前面命令 ctrl + Y:撤销上一次快捷命令

    ctrl + Z:将前台进程转移到后台 fg 将后端进程调回到前台 bg 显示后台进程

    !number:执行number编号的历史命令 !!执行上一次shell命令(适用于脚本中)

    Processed: 0.015, SQL: 9