본문 바로가기

CentOS/Study

[Study9]디렉토리 이동을 위한 명령어

반응형

PWD 명령어

리눅스에서는 파일 작업 중이나 자료의 위치로 이동해야 할 경우가 많습니다.

현재 작업 중인 디렉토리의 위치를 파악하고 이동할 디렉토리를 지정해야 합니다.

이를 위해 이동 관련 명령어로는 pwd와 cd가 있습니다.

pwd 명령어는 현재 작업 중인 디렉토리의 절대경로를 / (루트)부터의 전체 경로로 출력합니다.

이는 현재 디렉토리가 어디인지 확인하는데 유용합니다. 이를 통해 다음 작업을 수행할 디렉토리를 지정할 수 있습니다.

이 명령어는 리눅스 파일 작업을 더욱 효율적으로 수행하는 데 도움이 됩니다.

예를 들어, 현재 작업 중인 디렉토리가 /home/user/documents/photos/2019에 있다고 가정해 봅시다.

이때, 이동할 디렉토리가 /home/user/documents/2018/photos/이라면, 2018 폴더가 documents 폴더 안에 위치하므로, /home/user/documents/2018/photos/로 이동할 수 있어야 합니다.

하지만 이를 위해서는 먼저 현재 작업 중인 디렉토리의 경로를 확인할 필요가 있습니다.

이때 pwd 명령어를 사용합니다. pwd 명령어는 현재 작업 중인 디렉토리의 경로를 절대경로로 출력합니다.

이를 통해 다음 작업을 위한 디렉토리 경로를 지정할 수 있습니다.

cd 명령어를 사용하면, 이동하고자 하는 디렉토리로 이동할 수 있습니다.

이 명령어를 사용하면, 리눅스 파일 작업을 더욱 효율적으로 수행할 수 있습니다.

또한, 리눅스에서는 다양한 명령어가 제공되며, 각 명령어는 자신만의 특징과 기능을 가지고 있습니다.

사용자들은 명령어를 잘 활용하여 리눅스 파일 작업을 더욱 효율적으로 수행할 수 있습니다.

 

[명령어 형식]

# pwd

 

pwd 명령어 실습

# cd
# pwd
/root

# cd /etc/sysconfig/network-scripts
# pwd           /* 위치가 변경되었습니다. */
/etc/sysconfig/network-scripts/
# echo $PWD

# cd
# pwd
/root

우선 "cd" 명령어를 사용하여 루트 디렉토리로 이동합니다. 이 명령어는 현재 작업 중인 디렉토리를 변경합니다.

다음으로, "/etc/sysconfig/network-scripts" 디렉토리로 이동합니다.

이 디렉토리에는 시스템의 중요한 네트워크 구성 파일이 포함되어 있습니다.

"cd" 명령어를 사용하여 이 디렉토리로 이동하면, "pwd" 명령어를 사용하여 현재 위치를 확인할 수 있습니다.

"pwd" 명령어는 현재 작업 중인 디렉토리의 전체 경로를 출력합니다.

"/etc/sysconfig/network-scripts" 디렉토리 내에 있는지 확인하려면, "$PWD" 변수를 사용하는 "echo" 명령어를 사용할 수 있습니다.

이 명령어는 현재 작업 중인 디렉토리의 전체 경로를 출력합니다.

출력된 경로가 "/etc/sysconfig/network-scripts"와 일치해야 합니다.

마지막으로, 루트 디렉토리로 돌아가려면, "cd" 명령어를 인수 없이 사용합니다.

이 명령어는 루트 디렉토리로 이동합니다.

이전에 사용한 "pwd" 명령어를 사용하여 현재 위치가 루트 디렉토리인지 확인할 수 있습니다.

 

CD 명령어

cd 명령어는 작업 디렉토리를 변경하는 가장 기본적인 명령어 중 하나입니다.

이 명령어를 사용하면 사용자는 필요한 디렉토리로 빠르게 이동할 수 있습니다.

cd 명령어는 기본적으로 상대 경로와 절대 경로 두 가지 유형의 경로를 지원합니다.

상대 경로는 현재 디렉토리를 기준으로 위, 아래로 이동하는 경우에 사용하며,

# cd dir1

 

절대 경로는 최상위 디렉토리를 기준으로 이동하는 경우에 사용합니다.

# cd /dir1

이 두 가지 경로를 적절히 활용하면 디렉토리 간 이동을 더욱 쉽게 할 수 있습니다.

cd 명령어를 사용하는 방법은 간단합니다. cd 명령어 뒤에 이동하려는 디렉토리 경로를 입력하면 됩니다.

디렉토리 경로를 입력하지 않으면 현재 작업 디렉토리가 홈 디렉토리로 변경됩니다.

예를 들어, 현재 사용자가 /home/user/documents 디렉토리에서 작업을 하고 있고, /home/user/music 디렉토리로 이동하려면 cd music 명령어를 입력하면 됩니다.

반면에, 최상위 디렉토리인 /로 이동하려면 cd / 명령어를 입력하면 됩니다.

작업 시에는 상대 경로를 사용하여 이동하는 경우, 즉 작업 디렉토리 안에 들어가서 직접 파일을 다루는 방법을 권장합니다.

이것은 명령어 실수로 인해 불의의 사고를 예방할 수 있거나, 최소화할 수 있기 때문입니다.

cd 명령어는 리눅스 명령어를 사용할 때 기본적으로 알아야 하는 명령어 중 하나입니다.

디렉토리 간 이동이 자주 필요한 경우에는 반드시 숙지해 두어야 합니다.

 

상대경로(Relative PATH)

상대경로는 파일이나 디렉토리의 위치를 현재 작업 중인 디렉토리를 기준으로 지정하는 방법입니다.

절대경로와 다르게 상대경로는 현재 디렉토리를 기준으로 지정하기 때문에 경로 입력이 간단해지고 작업이 편리해집니다.

 

상대경로 사용하는 경우

예를 들어, /etc/sysconfig/network-scripts 디렉토리에서 작업 중이라면, /etc/sysconfig/network-scripts 디렉토리 내부의 ifcfg-ens33 파일을 편집하고자 할 때, 상대경로를 이용해 쉽게 접근할 수 있습니다.

# etc 디렉토리로 이동하려면 다음 명령어를 입력하세요:
cd /etc

# 현재 디렉토리를 확인하려면 pwd 명령어를 사용하세요:
pwd

# etc 디렉토리 안으로 이동한 후, sysconfig 디렉토리로 이동하세요:
cd sysconfig

# 그 다음, network-scripts 디렉토리로 이동하세요:
cd network-scripts

# 숨겨진 파일을 포함하여 디렉토리 안에 있는 모든 파일을 나열하려면 다음 명령어를 사용하세요:
ls -a /* .디렉토리 , ..디렉토리 */

# 현재 디렉토리에 머무르려면 다음 명령어를 사용하세요:
cd .

# 현재 디렉토리를 다시 확인하세요:
pwd

# 이전 디렉토리로 이동하려면 다음 명령어를 사용하세요:
cd ..

# 현재 디렉토리를 다시 한 번 확인하세요:
pwd

명령 줄에서 디렉토리를 탐색할 때 디렉토리 트리를 위아래로 이동하는 방법을 알고 있으면 유용합니다.

현재 디렉토리 안에 있는 디렉토리로 이동하려면 "cd" 명령어 다음에 디렉토리 이름을 입력하면 됩니다.

이전 디렉토리로 이동하려면 "cd .." 명령어를 사용하세요.

이러한 명령어를 사용하면 디렉토리를 쉽게 탐색하고 구성 파일을 편집하거나 스크립트를 실행하는 작업을 완료할 수 있습니다.

 

디렉토리 표시

디렉토리는 현재 디렉토리 .. 디렉토리는 상위 디렉토리

# pwd
/etc/sysconfig/
# cd ../../ /* 상위 디렉토리, 상위 디렉토리 */
# pwd
/

 

명령 줄 환경에서 디렉토리와 파일을 다루는 경우, 상대경로를 이해하는 것이 중요합니다.

상대경로는 현재 작업 중인 디렉토리를 기준으로 파일이나 디렉토리의 위치를 지정하는 방법입니다.

이는 파일 시스템의 루트를 기준으로 파일이나 디렉토리의 위치를 지정하는 절대경로와 대조적입니다.

상대경로는 파일 시스템 탐색을 더 직관적이고 간편하게 만들어주므로, 종종 절대경로보다 편리합니다.

예를 들어, 현재 디렉토리가 /etc/sysconfig/network-scripts인 경우, 같은 디렉토리에 있는 ifcfg-ens33 파일을 편집하려면 vi ifcfg-ens33 명령을 사용하여 전체 경로를 지정하지 않고도 파일을 열 수 있습니다.

하지만 일부 경우에는 시스템 전체 파일에 액세스해야 할 때 절대경로를 사용하는 것이 필요할 수 있습니다.

이 경우, pwd 명령을 사용하여 현재 작업 중인 디렉토리를 확인하고, cd 명령을 사용하여 다른 디렉토리로 이동할 수 있습니다.

예를 들어, cd /etc 및 cd /etc/sysconfig 명령을 사용하여 각각 /etc 및 /etc/sysconfig 디렉토리로 이동할 수 있습니다.

제공된 예제에서는, pwd 및 cd ../../ 명령을 사용하여 루트 디렉토리로 이동합니다.

루트 디렉토리에 있으면 시스템 전체의 파일 및 디렉토리에 액세스할 수 있으므로, 시스템 전반적인 작업에 유용합니다.

또한 상대경로를 사용하여 파일 및 디렉토리를 생성할 수도 있습니다.

예를 들어, /etc/sysconfig/network-scripts 디렉토리에서 작업 중이고 /etc 디렉토리에 test.txt 파일을 만들고 싶은 경우 touch ../../test.txt 명령을 사용하여 파일을 생성할 수 있습니다.

../.. 표기법은 부모 디렉토리를 두 번 지정하기 때문에 디렉토리 계층에서 두 단계 위로 이동합니다.

명령 줄 환경에서 디렉토리와 파일을 다루는 데 있어서 상대경로와 절대경로를 이해하는 것은 중요한 부분입니다.

이러한 개념을 효과적으로 활용하면, 파일 시스템을 더 효율적으로 탐색하고 작업을 보다 쉽고 효과적으로 수행할 수 있습니다.

 

상위 디렉토리에 파일 만들기

또 다른 예시로, /etc/sysconfig/network-scripts 디렉토리에서 작업 중이라면, 상위 디렉토리인 /etc 디렉토리에 test.txt 파일을 생성하고자 할 때, 다음과 같이 상대경로를 사용할 수 있습니다.

# cd /etc/sysconfig/network-scripts
# touch ../../test.txt
# cd ../../
# pwd
/etc/
# ls –l test.txt

 

위의 명령어에서 touch 명령어를 이용해 test.txt 파일을 생성합니다.

touch ../../test.txt 명령어에서 ../.. 은 상위 디렉토리 두번을 의미합니다.

이렇게 상대경로를 이용하면, 작업하고자 하는 파일이나 디렉토리의 위치를 명확하게 지정할 수 있어, 작업 효율이 높아집니다.

 

절대경로(Absolute PATH)

  • A는 최상위 디렉토리인 / 디렉토리를 뜻합니다.
  • B,C는 디렉토리의 구분자입니다.

처음 위치한 /는 최상위 디렉토리를 나타내지만 뒤에 나와 있는 /는 구분자의 역할을 합니다.

이러한 구분자는 하나의 경로가 여러 디렉토리로 이루어진 경우, 경로를 구분할 때 사용됩니다.

예를 들어 /etc/sysconfig/network-scripts 와 /etc/sysconfig/network-scripts/는 같은 디렉토리를 가리킵니다. /etc/sysconfig/network-scripts는 network-scripts 디렉토리가 위치한 sysconfig 디렉토리를 가리키고 있으며, /etc/sysconfig/network-scripts/는 network-scripts 디렉토리를 나타내고 있습니다.

또한, 리눅스 명령어를 사용할 때 경로를 이동하는 명령어인 cd 명령어를 사용합니다.

cd 명령어 뒤에 경로를 적어주면 해당 경로로 이동할 수 있습니다.

예를 들어, cd /tmp 명령어를 사용하면 tmp 디렉토리로 이동할 수 있습니다.

마찬가지로, cd /etc/sysconfig 명령어를 사용하면 sysconfig 디렉토리로 이동할 수 있습니다.

또한, cd /usr 명령어를 사용하면 usr 디렉토리로 이동할 수 있습니다.

# cd /tmp , cd /tmp/
# cd /etc/sysconfig 
# cd /usr

 

로그인 된 사용자의 홈 디렉토리 이동

root 사용자로 로그인 했을 경우, root의 홈 디렉토리로 이동합니다. 반면, fedora 사용자로 로그인 했을 경우, fedora의 홈 디렉토리로 이동하게 됩니다.

사용자의 홈디렉토리는 다음과 같습니다:

  • root 사용자 -> /root
  • 일반 사용자 -> /home/$USER
# id
uid=0(root) gid=0(root) groups=0(root)
-> root 사용자인 경우

root 사용자는 시스템의 최상위 권한을 가지고 있습니다.

즉, 시스템의 모든 부분을 제어할 수 있습니다.

따라서 root 사용자로 로그인하면 시스템에 대한 완전한 제어가 가능합니다.

이는 보안상 위험할 수 있으므로, 보안 조치가 필요합니다.

예를 들어, root 사용자 로그인을 허용하지 않거나, root 사용자 권한을 가진 프로그램의 실행을 제한하거나, sudo와 같은 대안을 사용할 수 있습니다.

 

fedora 사용자의 경우, 다음 명령어를 입력해주세요:

# ssh fedora@localhost
fedora 사용자로 로그인

$ id
uid=1001(fedora) gid=1001(fedora) groups=1001(fedora)
$ cd
$ pwd
/home/fedora
$ exit
# cd ~fedora

위 코드는 로컬 컴퓨터에서 fedora 사용자로 ssh 로그인하는 방법과, 로그인 후 fedora 사용자의 홈 디렉토리로 이동하는 방법을 보여줍니다.

 

로그인 후에는 id 명령어를 사용하여 사용자 ID를 확인할 수 있습니다. 결과는 다음과 같은 형식으로 표시됩니다.

uid=1001(fedora) gid=1001(fedora) groups=1001(fedora)

홈 디렉토리로 이동하려면 cd 명령어를 사용합니다.

cd 명령어를 사용하여 현재 디렉토리를 확인할 수도 있습니다. 로그아웃하려면 exit 명령어를 사용합니다.

fedora 사용자의 홈 디렉토리로 이동하려면 cd ~fedora 명령어를 사용하면 됩니다.

 

# cd ~fedora
# cd ~/fedora

~fedora의 경우, fedora의 홈 디렉토리인 /home/fedora로 이동하는 명령어입니다. 반면 ~/fedora의 경우, 현재 계정의 홈 디렉터리 하위의 fedora 디렉터리로 이동하는 /$HOME/fedora의 의미를 가집니다.

[참고]

$ cd
$ cd ~
$ cd $HOME

이 모두 자신의 홈 디렉토리로 이동하는 명령어입니다.

 

이전 디렉토리로 이동하기

현재 작업중인 디렉토리가 /etc/sysconfig/network-scripts인 경우, 이전 디렉토리로 간단하게 이동하려면 "cd -" 명령어를 입력하면 됩니다.

이렇게 하면 불편한 상대경로나 절대경로를 사용하지 않고도 이전 디렉토리로 쉽게 이동할 수 있습니다.

# cd /etc 
# ls

# cd /etc/sysconfig/network-scripts 
# ls 

# cd /etc 
# ls 

# cd - 
# pwd <cd – 로 이동이후 현재 디렉토리를 확인한다.>
/etc/sysconfig/network-scripts
-> 반복적으로 사용해본다.

옆에 있는 디렉토리로 이동하는 경우에도, 상대 경로를 이용하여 간단하게 이동할 수 있습니다.

예를 들어, 현재 디렉토리가 /test/dir2인 경우, 목적 디렉토리가 /test/dir1일 때, 상대 경로 ../dir1을 이용하여 쉽게 이동할 수 있습니다.

 

# /test 디렉토리로 이동
cd /test

# /test 내의 모든 파일과 디렉토리 삭제
rm –rf /test/*

# /test 디렉토리 내에 dir1, dir2 디렉토리 생성
mkdir dir1 dir2

# dir2 디렉토리로 이동
cd dir2

# 현재 작업 디렉토리가 /test/dir2인지 확인하기 위해 현재 디렉토리 출력
pwd

# 이전 디렉토리로 이동하여 /test가 출력되는지 확인
cd ..
pwd

# dir1 디렉토리로 이동하여 /test/dir1이 출력되는지 확인
cd dir1
pwd

# 이전 디렉토리로 이동하여 /test/dir2가 출력되는지 확인
cd ../dir2
pwd

# 이전 디렉토리로 이동하여 /test/dir1이 출력되는지 확인
cd ../dir1
pwd

여기서 cd 명령어를 이용하여 /test 디렉토리로 이동합니다.

rm -rf 명령어를 사용하여 /test 디렉토리 내의 모든 파일과 디렉토리를 삭제합니다.

mkdir 명령어를 사용하여 /test 디렉토리 내에 dir1, dir2 디렉토리를 생성합니다.

cd 명령어를 사용하여 각 디렉토리로 이동한 다음 pwd 명령어를 사용하여 현재 작업 디렉토리가 올바른지 확인합니다.

마지막으로 cd .. 명령어를 사용하여 이전 디렉토리로 이동하고 pwd 명령어를 사용하여 현재 작업 디렉토리가 올바른지 확인합니다.

반응형