2014-05-21 2 views
2

터미널 세션을 시작하고 쉘을 시작하면 $HOME 대신 특정 디렉토리에 로그인하려고합니다.수정하지 않고 로그인 경로 변경하기

예를 들어 새로운 쉘 세션을 시작하고 /tmp으로 이동하면 git 저장소를 복제하거나 신속하고 일시적인 작업을 수행 할 수 있으며 다음과 같은 디렉토리에 직접 로그인하고 싶습니다. 내 $HOME 디렉토리가 아닌 /sandbox 또는 뭔가 내 셸 시작시.

내 사용자의 홈 디렉토리를 수정하거나 내 .zshrc에 벙어리 cd /sandbox을 추가하지 않고이 작업을 수행하는 방법을 알고 계신가요?

대단히 감사합니다! 이 같은 문제에 대한

+0

'usermod -d "/ tmp"your_user'가 만들어야합니다. – fedorqui

+0

유감스럽게도 usermod는 Linux에만 있습니다. 또한 -d 옵션을 사용하면 사용자의 홈 디렉토리가 변경되는 것처럼 보이므로 특히 피하려는 동작입니다. – Oleiade

+0

기존 (.zshrc,'usermod' 등)을 수정하고 싶지 않은 것 같습니다. 터미널 세션이 다른 디렉터리에서 시작해야하는지 어떻게 알 수 있습니까? 어떻게 같은 기계에 2 개의 별칭을'defaultLogin' VS'tmpDirLogin' (어떤지 모르겠다) 어떤 마술이 tmpdir로가는 것을 보장합니다. 'expect' 스크립트? 행운을 빕니다. – shellter

답변

1

내 선호하는 솔루션은 명령 행 인수를 통과, 대화 형 쉘 다음 exec 원하는 환경 속성을 설정 래퍼 스크립트의 무리를 사용하는 것입니다 : 더 나은

#!/bin/sh 

# sandbox-sh 

cd /sandbox 

exec bash "[email protected]" 

, 당신 단일 쉘 대신 GNU screen 또는 tmux을 시작할 수 있습니다. 작성한 새 창은 첫 x ​​째 창과 동일한 특성을 공유합니다. 또는 탭이있는 터미널 에뮬레이터를 실행할 수도 있습니다. 새 탭은 래퍼 스크립트에 정의 된 환경도 공유합니다.

관련 문제