当前位置:  开发笔记 > 编程语言 > 正文

如何在*nix中登录时运行脚本?

如何解决《如何在*nix中登录时运行脚本?》经验,为你挑选了4个好方法。

我知道我曾经知道如何做到这一点,但是...如何在unix上登录时运行脚本(bash可以)?



1> Svet..:

来自维基百科Bash

当Bash启动时,它会在各种不同的脚本中执行命令.

当Bash作为交互式登录shell调用时,它首先从文件/ etc/profile中读取并执行命令(如果该文件存在).在读取该文件之后,它按顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令.

当登录shell退出时,Bash从文件〜/ .bash_logout读取并执行命令(如果存在).

当启动不是登录shell的交互式shell时,如果该文件存在,Bash将从〜/ .bashrc读取并执行命令.使用--norc选项可以禁止此操作.--rcfile文件选项将强制Bash从文件而不是〜/ .bashrc读取和执行命令.


仅晚了十年,但是:如果该命令需要sudo(例如,将来自NAS的网络共享安装到用户的主目录中)该怎么办?

2> pjz..:

登录时,大多数shell都会执行登录脚本,您可以使用该脚本执行自定义脚本.shell执行的登录脚本当然取决于shell:

bash:.bash_profile,.bash_login,.profile(用于向后兼容性)

sh:.profile

tcsh和csh:.login

zsh:.zshrc

你可以通过这样做找出你正在使用的shell

echo $SHELL

从提示.

对于稍微宽泛的"登录"定义,知道在启动X时大多数发行版都很有用,你的.xsessionrc将在你的X会话启动时执行.



3> Michael John..:

当使用bash,第一~/.bash_profile,~/.bash_login~/.profile用于交互式登录shell将会运行.我相信~/.profile除了Bash之外,它通常由Unix shell运行.Bash将运行~/.bashrc非登录交互式shell.

我通常把我想要的所有内容都放在其中.bashrc,然后运行它.bash_profile,在那里我还设置了一些应该在我登录时运行的东西,比如设置ssh-agent或运行screen.



4> Kent Fredric..:

如果您希望运行一个脚本而运行一个脚本,则可以将其设置为用户默认shell.

echo "/usr/bin/uptime" >> /etc/shells
vim /etc/passwd  
  * username:x:uid:grp:message:homedir:/usr/bin/uptime

可以有有趣的效果:)(它不安全,所以不要太信任它.没有什么比设置你的默认shell是擦除你的驱动器的脚本....虽然,...我可以想象一个场景,可能非常有用)

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有