$HOME 이외의 디렉토리에서 모든 쉘 세션을 어떻게 시작합니까?

$HOME 이외의 디렉토리에서 모든 쉘 세션을 어떻게 시작합니까?

Ubuntu에서 비로그인 셸을 열 때 현재 작업 디렉터리는 /home/user_name(내 $HOME환경 변수)이지만 터미널을 시작할 때 다른 디렉터리에 있도록 변경하고 싶습니다.

우분투에서 터미널을 실행하면 .bashrc파일을 받는다는 글을 읽었습니다. 그래서 나는 추가했다

export HOME=/home/user_name/Documents 

.bashrc파일에. 이제 터미널을 열면 여전히 /home/user_name디렉토리에 있습니다.

이것을 어떻게 바꿀 수 있나요?

답변1

.bashrc첫째 $HOME, .

이 작업을 수행하는 더 우아한 방법이 있을 것이라고 확신하지만 임시 해결 방법으로 간단히 다음 줄을 다음 줄에 추가할 수 있습니다 .bashrc.

cd ~/Documents 

로그인하지 않는 새 쉘을 시작할 때마다(새 터미널 열기) 이 파일을 읽으므로 cd명령이 실행되고 ~/Documents필요에 따라 터미널이 시작됩니다.

답변2

터미널은 상위에서 상속된 작업 디렉터리에서 시작됩니다.

그러나 일부에서는 구성 설정을 통해 이를 재정의할 수 있습니다.

다음을 사용하여 gnome-terminal프로필을 편집할 수 있습니다 .내 셸 대신 사용자 지정 명령 실행그리고 그것을 만드십시오 :

sh -c 'cd ~/Documents; exec "${SHELL:-sh}"'

답변3

이것이 내가 넣은 것입니다 ~/.bash_profile:

alias curDir="pwd | sed -e 's/ /\\ /'"
alias save='echo `curDir` > ~/.saved_dir'
alias saved='cd `cat ~/.saved_dir`'
saved

나는 항상 이것에 의존해 왔습니다. 기본적으로 저는 프로젝트 작업을 할 때 save해당 홈 디렉토리를 생성하고 모든 후속 세션이 거기에서 시작됩니다. 그러다가 프로젝트를 바꾸거나 다른 일이 생기면 save다른 곳으로 갑니다.

더 나은 방법을 찾는 동안 이 질문을 찾았지만, 특정 디렉토리 하나를 하드코딩하는 것보다 내가 얻은 것이 더 잘 작동했습니다.

답변4

/etc/passwd기본 홈 디렉터리 수정 및 변경을 고려하세요.

관련 정보