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


53

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

우분투에서 터미널을 시작할 때 .bashrc파일이 소스 임을 읽었습니다 . 그래서 나는 추가했다

export HOME=/home/user_name/Documents 

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

이것을 어떻게 바꿀 수 있습니까?



3
이것을하지 않는 것도 고려해 볼 가치가 있습니다. 선구자들이 유닉스를 디자인 한 것은 아는 바가 없었습니다.
Sean D

답변:


52

우선,에서 해당 줄을 제거하십시오 .bashrc. 을 사용하지 않고이 작업을 수행하는 방법은 $HOME해당 변수가 항상 홈 디렉토리를 가리키고 쉘을 다른 위치에서 시작하도록 변경하고 싶지는 않습니다.

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

cd ~/Documents 

로그인하지 않은 새 셸을 시작할 때마다 (새 터미널을 열 때마다) 해당 파일을 읽으므로 cd명령이 실행되고 원하는대로 터미널이 시작됩니다 ~/Documents.


이는 모든 비 로그인 대화식 쉘 (및 bash_profile에서 bashrc를 제공하는 경우 로그인 쉘) sshd로 시작한 비 대화식 쉘에 영향을 미칩니다 .
Stéphane Chazelas

@ StéphaneChazelas 확실합니까? 일반적으로 비 대화식 세션 [[ -z "$PS1" ]] && exit에서 .bashrc이를 방지해야하는 가드가 있습니다.
Martin Ueding

2
@queueoverflow는 보통? 어떤 운영 체제에서? 어느 배포판에서? 데비안, SuSe 또는 CentOS에는 없습니다. 사실 우분투에서만 본 적이 있다고 생각합니다.
terdon

@ terdon 우분투에서 그것을 보았고 그것이 일반적인 경우라고 생각했습니다.
Martin Ueding

20

터미널은 상위 디렉토리에서 상속 한 작업 디렉토리에서 시작합니다.

그러나 일부는 구성 설정을 통해이를 무시할 수 있습니다.

을 사용하면 gnome-terminal프로파일을 편집 하고 내 쉘 대신 사용자 정의 명령을 실행하여 만들 수 있습니다.

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

1

여기에 내가 넣은 내용이 있습니다 ~/.bash_profile.

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

나는 항상 이것에 의존합니다. 기본적으로 일부 프로젝트에서 작업 할 때 save기본 디렉토리가되고 이후의 모든 세션이 시작됩니다. 그런 다음 프로젝트 나 다른 것을 변경하면 save다른 곳으로 갈 것입니다.

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


이것은 git bash에서도 잘 작동합니다. bash 쉘을 다시 시작하거나 파일을 변경 한 후 "source ~ / .bash_profile"을 사용하십시오.

0

.bashrc파일의 위치를 찾는 사람들에게는 일반적으로 홈 디렉토리의 숨겨진 파일입니다.

그것을 찾으려면 :

터미널을 열고 홈 디렉토리로 이동 한 후 다음을 수행하십시오.

ls -al

모든 숨겨진 파일을 표시합니다. 이제 .bashrc파일 을 볼 수 있습니다.

기본 디렉토리를 변경하려면

  1. 열기 .bashrc명령을 입력하여 텍스트 편집기에서 파일 :

    gedit .bashrc
  2. 다음과 같이 마지막에 명령을 추가하여이 파일을 편집하십시오.

    cd ~/YourDirectoryName
  3. 파일을 저장하고 터미널을 다시 시작하십시오.


이 질문은 .bashrc를 편집 하는 방법 을 묻지 않고 이미 완료했습니다. 그리고 당신의 대답은 2 년 전의 @terdon의 대답의 반복입니다.
Davor Cubranic
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.