로그인시 실행되는 쉘 스크립트를 작성하는 방법은 무엇입니까?


16

Ubuntu 11.10 Linux 배포판에서 bash 쉘 스크립트를 작성하려고하는데 시스템에 로그인 할 때 자동으로 실행됩니다. 그러나 스크립트를 작성하면 로그인 할 때 자동으로 실행될 것이라는 것을 알 수 없습니다.

답변:


18

전역으로 만들고 싶다면 수정하십시오.

 /etc/profile 

또는 스크립트를 추가하십시오

 /etc/profile.d

사용자별로 변경하려면 수정하십시오.

 /home/$USER/.profile

1
.sh스크립트를 안에 넣는 경우 확장명을 기억해야합니다 /etc/profile.d/. chmode +x /etc/profile.d/myscript.sh물론입니다.
Brian Haak

라즈 비안 스트레치. /usr/local/bin/pihole -c특정 사용자의 자동 로그인시 명령 을 실행하려고합니다 . 이 줄을 추가했습니다 /home/$USER/.profile-아무 일도 일어나지 않습니다. 스크립트를 추가 /etc/profile.d하면 작동하지만 전역 적이며 ssh 세션을 열 때도 실행됩니다 (원하는 것이 아닙니다). 에 추가해도 .bashrc작동하지만 새 쉘을 열 때마다 실행됩니다 (원하는 것은 아닙니다). 질문 : 추가가 왜 /home/$USER/.profile작동하지 않습니까 ???
Drew

3

시작 응용 프로그램에 bash 스크립트를 추가하십시오.

명령 필드에

bash /full/path/to/bash/script.sh/

2
"bash /.../script.sh"를 명령 행에서 시작 응용 프로그램에 어떻게 추가합니까?
aleb

1
OP는 GUI를 언급하지 않았습니다. SSH를 통해 원격 서버에 있고 GUI 가없는 경우 어떻게해야 합니까? 질문에 적용되는 데스크탑 태그는 없습니다.
Doktor J

이 제목은 로그인시 구체적으로 언급되며 데스크탑 GUI에 대해서는 언급하지 않습니다.
RichieHH

0

더 배쉬 특정하고 싶다면 ~ / .bash_profile 또는 ~ / .bash_login에 코드를 작성할 수도 있습니다.

예를 들어 다음과 같은 스크립트를 소싱 할 수 있습니다.

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

0

/etc/profile또는 $HOME/.profile또는$HOME/.bash_profile

/etc/profile.d/yourscript.sh출력을 생성 하는 경우 사용 하지 않는 것이 좋습니다 . 비 대화식 세션을 사용하면 $TERM is not set메시지가 나타납니다. 이것은 scp와 같은 ssh 프로토콜을 사용할 때 두드러집니다. 그러나 일반적으로 큰 문제는 아니지만 Veeam은 그것을 좋아하지 않으며 경고를 던집니다. 나는 Veeam이 여기서 주제가 아니라는 것을 알고 있지만 모든 응용 프로그램이 $TERM is not set경고를 정상적으로 무시하는 것은 아닙니다 .

즉, 스크립트가 출력을 생성하는 경우 첫 번째 행에 지정된 위치에 배치하십시오. 그러나 환경을 수정하고 스크립트에서 출력을 생성하지 않으면 후자를 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.