총괄 요약 (TL; DR)
- 현재
pwd위치를 알거나 프롬프트에서 :와 사이를 살펴 보는 데 사용 $합니다.
cd다른 곳에서 디렉토리를 변경하는 데 사용하십시오 . Windows와 달리 항상 뒤에 공백이 cd있어야합니다 . 명령은 좋아 하고 작동하지 않지만 및 것입니다.cd/cd..cd /cd ..
당신이 어디에 있는지 알기
방법 1 : 실행 pwd.
현재 사용중인 디렉토리는 쉘 특정 (보다 일반적으로 응용 프로그램 특정)입니다. 하나의 디렉토리에있는 하나의 쉘과 다른 디렉토리에있는 다른 쉘을 실행할 수 있습니다.
현재 어떤 디렉토리에 있는지 알려면 다음을 실행하십시오.
pwd
예를 들어 (쉘에서 내 컴퓨터에서 지금 열었습니다) :
ek@Kip:~$ pwd
/home/ek
이것은 내가 디렉토리에 있음을 알려줍니다 /home/ek. 인간 사용자의 홈/home 디렉토리를 포함 하는 디렉토리입니다 (그 자체가 사용자의 홈 디렉토리가 아닙니다). 휴먼 사용자 는 홈 디렉토리를 가지고 있습니다.username/home/username
root사용자 의 홈 디렉토리가 없습니다 /home. 대신 root의 홈 디렉토리는 /root입니다. 이것은와 혼동되지 않는 루트 디렉토리 입니다 /.
방법 2 : 프롬프트를 검사하십시오.
프롬프트의 기본 구성은 현재 어떤 디렉토리에 있는지 알려주는 것입니다. 프롬프트는 쉘이 명령을 승인 할 준비가되었음을 알리는 텍스트입니다.
당신이 당신의 질문에 우리를 보여준 예에서, 당신의 프롬프트는 :
christy@ubuntu:~$
christy귀하의 사용자 이름입니다. @문자에서 분리 ubuntu컴퓨터의 호스트 이름입니다. 라이브 CD를 실행하는 경우 호스트 이름은 ubuntu이며 일부 사람들은 설치 중에 컴퓨터 이름으로이 이름을 선택합니다.
:문자에서 분리 현재에있는 디렉토리의 이름. 로 표시이 경우, ~. ~홈 디렉토리의 줄임말입니다. 홈 디렉토리에 없으면 전체 디렉토리 이름이 표시됩니다. 예를 들면 다음과 같습니다.
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(프롬프트의 각 부분이 의미하는 바를 마치기 위해 :이 규칙을 따르는 프롬프트의 경우 a $또는 #문자가 나타납니다. $이 경우와 같이 일반 사용자 쉘임을 의미합니다. #문자는 root쉘 임을 의미합니다 .)
현재 위치 변경
"cd"명령이 작동하지 않는 이유
디렉토리를 변경하려면 cd명령을 사용하십시오 .
당신은 달렸다 cd/. 실제로 cd명령을 실행하지 않았기 때문에 작동하지 않습니다 . 우분투 및 다른 유닉스 계열 운영 체제 (실제로 사용중인 쉘 과 같은 유닉스 스타일 쉘 에서는 bash) 명령 의 이름 은 공백이나 줄 끝에서만 끝나는 것으로 간주됩니다.
(윈도우에서 프롬프트 명령과 달리 지금 cd\과 동일하게 해석 cd \하고 cd..동일로 해석됩니다 cd ..에) bash(당신이 우분투에서 사용하고있는 쉘), cd/유효한 명령이 아닙니다. 당신은 사용해야합니다cd / .
cd/"현재 디렉토리에서 이름이 cd있고 디렉토리이기도 한 항목"을 의미합니다 . 이러한 서브 디렉토리가 존재하는지 여부에 상관없이 명령으로 실행할 수 없으므로 오류가 발생합니다 ( 어떤 오류가 발생 하더라도 다름).
ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory
홈 디렉토리로 이동
홈 디렉토리로 이동하려면 cd인수없이 자체적으로 실행하십시오 .
cd
어떤 사람들은 자신의 홈 디렉토리 이름을 명시 적으로 선호합니다. 전체 이름을 사용하거나
cd ~
그러나 cd그 자체로는 충분합니다.
한 디렉토리 위로 이동
디렉토리를 현재 디렉토리의 상위 디렉토리 (예 : 디렉토리를 포함하는 디렉토리)로 변경하려면 다음을 사용하십시오.
cd ..
..현재 디렉토리의 상위 디렉토리를 나타냅니다. 루트 디렉토리 ( /)에있는 경우 예외가 있습니다 : ..just represent /. 따라서 달리기 cd ..는 어디에서나 실행할 때 하나의 디렉토리 위로 이동합니다 /. 에서 실행 /하면에 유지됩니다 /.
모든 디렉토리에는 ..항목이 있습니다. 또한 모두 .현재 디렉토리 자체를 나타내는 항목을 포함 합니다. cd .그래도 실행되지는 않습니다 . 당신은 항상 당신이 어디에 있는지 유지합니다.
절대 및 상대 경로
로 시작 cd하지 않는/ 것으로 이동 하면 현재 디렉토리 내의 해당 디렉토리로 이동하려고 시도합니다. .
예를 들어,
cd var/log
그런 다음 var현재 위치 의 하위 디렉토리 로 이동하여 하위 디렉토리 로 이동 log합니다. 둘 다 존재하지 않는 한 그 장소에서 그 cd명령은 실패 할 것입니다 (그리고 당신은 원래 있던 곳에 남아있을 것입니다).
루트 디렉토리 하위 디렉토리의 log하위 디렉토리 로 이동하려면 다음을 대신 실행하십시오.var
cd /var/log
현재있는 /경우 cd var/log에만와 같습니다 cd /var/log.
로 시작하는 경로 /는 절대적입니다. 해결 방법은 현재 위치에 따라 달라지지 않습니다.
경로 ~는 (본질적으로) 속기 때문에 절대적입니다 $HOME. HOME인 환경 변수 및 표현식$HOME 은 현재 사용자 홈 디렉토리의 전체 절대 경로로 확장됩니다.
~다른 사용자의 홈 디렉토리 를 나타내는 데에도 표기법을 사용할 수 있습니다 . 작성하면 의 홈 디렉토리를 나타냅니다 .~usernameusername
이전의 위치로 돌아 가기
현재있는 디렉토리는 PWD환경 변수에 저장됩니다 . 마지막으로 당신이 있었다 디렉토리는에 저장되어있는 OLDPWD환경 변수. OLDPWD환경 변수를 보는 것과 같은 방식으로 볼 수 있습니다 .
echo $OLDPWD
이 정보는 저장되어 있기 때문에 cd이전의 위치로 돌아갈 수있는 특별하고 빠르고 쉬운 방법이 있습니다. 으로 pst007x는 말한다 , 당신은 실행에 있던 마지막 디렉토리로 이동합니다 :
cd -
당신이에 있던 이전의 모든 디렉토리가 결코 경우 그 쉘에서 , 다음 OLDPWD환경 변수가 설정되지 않았을 것이며, 실행하려고하면 cd -오류가 발생합니다 (그리고 당신이 어디에 당신이있을 것이다) :
ek@Kip:~$ cd -
bash: cd: OLDPWD not set
당신이 보스와 같은 곳을 바꾸다
pushd 과 popd : 디렉토리 스택
디렉토리 이름의 스택을 상상해보십시오. 으로 스택 , I 평균 뭔가 어디에 당신은 상단에가는 무언가를 추가하고 한 번에 한 가지를 제거 할 수 있습니다, 당신은 제거 것은 상단에 현재 무엇을 항상합니다.
다음 을 실행하여 디렉토리 에 스택을 넣을 수 있습니다 dir.
pushd dir
현재 디렉토리를 스택의 맨 위로 푸시하려면 .위에서 설명한대로 항상 현재 디렉토리를 나타내는 다음을 사용할 수 있습니다 .
pushd .
그런 다음 원하는만큼 디렉토리를 변경하여 비즈니스를 진행할 수 있습니다. 를 사용하여 스택에 푸시 한 마지막 디렉토리로 돌아가려면 다음을 pushd실행하십시오.
popd
이것은 해당 디렉토리로 이동 하여 스택에서 팝 합니다. 이제 스택은 하나의 디렉토리보다 짧습니다. 이것이 스택의 유일한 디렉토리 인 경우 스택은 이제 비어 있습니다.
1보다 큰 스택을 가질 수 있습니다. 즉, 별도의 pushd명령을 사용 하여 여러 디렉토리를 스택으로 푸시 할 수 있습니다 . 이후의 각 popd명령은 스택으로 이동하여 스택에서 제거됩니다. 아직 팝되지 않은 가장 최근에 푸시 된 디렉토리 ).
예를 들면 다음과 같습니다.
ek@Kip:~$ cd /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd .
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd /home/ek
~ /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:~$ cd /var/log/apt
ek@Kip:/var/log/apt$ pushd .
/var/log/apt /var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ cd
ek@Kip:~$ popd
/var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ popd
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ cd /
ek@Kip:/$ pushd usr
/usr / /etc/apt/sources.list.d
ek@Kip:/usr$ cd
ek@Kip:~$ popd
/ /etc/apt/sources.list.d
ek@Kip:/$ popd
/etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ popd
bash: popd: directory stack empty
ek@Kip:/etc/apt/sources.list.d$
pushd그리고 popd더 자주보다 사용된다 cd. 또한 다른 고급 용도도 있습니다. 실행 help pushd및 help popd세부 사항.
더 배우고 문서에 액세스
cd그리고 pwd너무 고급 용도를 가지고있다. 이에 대해 알아 보려면 help cd및을 실행하십시오 man pwd.
help위한 쉘 내장 명령 . man독립 실행 형 명령-별도의 프로세스로 실행되고 별도의 실행 파일로 존재하는 명령입니다. type가 실행 프로그램의 위치 명령이 아닌 경우, 쉘 내장인지하고있는 경우 명령을 보여준다. 예를 들어, 실행할 수 있습니다 type help, type type또는 type man.