웹사이트 검색

cd, pwd 및 ls를 사용하여 Linux 서버에서 파일 시스템을 탐색하는 방법


소개

명령줄에 익숙해지는 것은 Linux 서버 플랫폼의 기능을 활용하기 위한 첫 번째 단계입니다. 또한 이 환경에서 수행하려는 기본적으로 모든 서버 관련 활동의 필수 전제 조건입니다.

많은 도구에 대한 그래픽 대안이 존재하지만 명령줄을 배우는 것은 대부분의 GUI(그래픽 사용자 인터페이스)를 통해서는 불가능한 방식으로 효율성, 속도 및 유연성을 가지고 작업할 수 있게 해주는 기술입니다.

우리 모두는 어딘가에서 시작해야 하므로 이 기사에서는 시스템을 탐색하고 거기에 무엇이 있는지 찾는 방법에 대한 기본 사항을 다룰 것입니다.

전제 조건

이 문서는 매우 기본적이므로 많은 사전 지식이 필요하지 않습니다. 그러나 탐색을 시작하려면 VPS 인스턴스에 로그인해야 합니다. 이 작업을 수행하는 데 사용할 수 있는 옵션은 주로 집에서 사용하는 운영 체제에 따라 다릅니다.

새 DigitalOcean 드롭릿을 생성하면 새 서버에 액세스할 수 있는 암호와 IP 주소가 이메일로 전송됩니다. 링크된 문서를 사용하여 VPS에 연결하는 방법을 알아보세요.

  1. ssh root@your_IP

또 다른 옵션은 DigitalOcean 제어판의 오른쪽 상단에 있는 "콘솔 액세스\ 버튼을 사용하는 것입니다. 이렇게 하면 웹 브라우저 창에서 직접 가상 터미널 세션이 생성됩니다.

pwd로 현재 위치 찾기

이 시점에서 Linux 시스템에 로그인해야 합니다. 다음과 같은 내용이 표시될 것입니다.

root@your_hostname:~# 

이것은 프롬프트입니다. 명령을 입력하는 곳입니다.

그러나 그것보다 더 많은 것이 있습니다. 또한 서버 파일 시스템의 특정 위치에 있습니다. 사용자는 항상 서버 파일 계층 구조의 한 위치 또는 다른 위치에 있으며 입력하는 명령이 작동하는 방식에 영향을 미칩니다.

이는 로컬 컴퓨터에서 파일 브라우저를 열 때와 유사합니다. 다른 폴더를 클릭하여 파일 시스템의 다른 위치로 이동할 수 있습니다. 파일 브라우저의 편집 메뉴로 이동하면 현재 있는 특정 폴더의 항목에 적용되는 몇 가지 옵션이 있을 수 있습니다.

명령줄은 동일한 아이디어를 텍스트로 표현한 것일 뿐입니다.

파일 시스템에서 우리는 정확히 어디에 있습니까? 프롬프트 자체에 한 가지 단서가 있습니다. 프롬프트 끝의 # 또는 $ 문자 바로 앞에(로그인한 사용자에 따라 다름) 물결표 문자(~)가 표시됩니다. . 이것은 "홈\ 디렉터리를 나타냅니다.

홈 디렉토리는 사용자의 파일이 저장되는 장소입니다. ~ 문자는 이 디렉토리의 줄임말입니다.

파일 시스템에서 현재 위치를 찾는 또 다른 방법은 pwd라는 명령을 사용하는 것입니다. 이것이 첫 번째 명령이 될 것입니다!

다음 문자를 터미널에 입력하고 Enter 키를 누릅니다.

pwd
/root

/root 디렉토리는 루트(관리자) 사용자의 홈 디렉토리입니다. 다른 사용자로 로그인한 경우 대신 다음과 같이 표시됩니다.

  1. pwd
/home/your_username

이 튜토리얼에서 어떤 사용자로 로그인했는지는 중요하지 않으므로 두 출력 모두 괜찮습니다.

ls로 둘러보기

이제 현재 어느 디렉토리에 있는지 알 수 있습니다. 하지만 이 디렉토리에 무엇이 있는지 어떻게 알 수 있습니까?

ls라는 명령으로 현재 디렉토리에 어떤 파일과 디렉토리가 있는지 서버에 요청할 수 있습니다. 지금 명령 프롬프트에 입력하십시오.

ls

이렇게 하면 명령 프롬프트로 돌아가고 어떤 정보도 제공하지 않습니다. 명령이 실패했습니까? 아니요, 성공했습니다. 현재 디렉터리에서 파일이나 폴더를 찾지 못했습니다.

이 디렉토리에 파일이 있을 때 ls가 어떻게 작동하는지 알아보기 위해 몇 가지 테스트 파일을 만들어 봅시다. 다음을 입력하여 몇 개의 파일을 만듭니다.

touch file{1..5}

그러면 현재 디렉토리에 file1, file2, …, file5라는 5개의 파일이 생성됩니다.

ls 명령을 다시 시도하여 무엇을 하는지 살펴보겠습니다.

ls
file1  file2  file3  file4  file5

아주 멋진. 이제 이 명령은 홈 디렉토리에 일부 파일이 있음을 인식합니다.

대부분의 명령에는 위에서 수행한 것처럼 호출할 때 실행되는 기본 동작이 있습니다. 그러나 대부분의 명령 동작은 선택적 인수를 명령에 전달하여 보강할 수도 있습니다. "옵션\, "인수\, "플래그\ 또는 "매개변수\라고 하는 것을 들을 수 있습니다.

경우에 따라 명령을 통해 사용할 수 있는 선택적 기능을 활성화하고 다른 경우에는 명령을 수행해야 하는 개체를 지정합니다.

첫 번째 상황부터 시작하겠습니다.

ls 옵션 살펴보기

모든 명령에 기본 제공 도움말 옵션이 있는 것은 아니지만 많은 명령이 있습니다. 대부분의 경우 명령 끝에 --help 또는 -h를 추가하여 액세스할 수 있습니다. 이제 ls 명령으로 이것을 시도할 수 있습니다:

ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      scale sizes by SIZE before printing them.  E.g.,
. . .

이렇게 하면 명령의 올바른 사용법에 대한 몇 가지 지침을 제공하고 기본 동작을 변경하는 데 사용할 수 있는 옵션에 대한 아이디어를 얻을 수 있습니다. 왼쪽 열은 명령을 보강하기 위해 입력할 문자를 제공하고 오른쪽 열은 각 플래그를 설명합니다.

추가한 --help는 전달할 수 있는 옵션의 예입니다.

관심 있는 명령에 사용할 수 있는 옵션을 찾는 또 다른 방법은 설명서를 확인하는 것입니다. man 다음에 관심 있는 명령을 입력하면 됩니다. 지금 시도해 보십시오.

man ls

화살표 키로 페이지를 스크롤하고 "q\를 입력하여 종료할 수 있습니다.

보시다시피 ls에는 동작을 변경하기 위해 명령에 전달할 수 있는 몇 가지 옵션이 있습니다. 몇 가지를 시도해 보겠습니다.

ls -l
-rw-r--r-- 1 root root 0 Feb 28 19:45 file1
-rw-r--r-- 1 root root 0 Feb 28 19:45 file2
-rw-r--r-- 1 root root 0 Feb 28 19:45 file3
-rw-r--r-- 1 root root 0 Feb 28 19:45 file4
-rw-r--r-- 1 root root 0 Feb 28 19:45 file5

이것은 동일한 5개의 파일을 보여주지만 "긴\ 형식으로 보여줍니다. 이것은 소유자(첫 번째 "root\), 그룹 소유자(두 번째 "root\)와 같은 파일에 대한 자세한 정보를 제공합니다. , 파일 크기( 0 ), 파일이 마지막으로 수정된 날짜 및 기타 정보.

다른 옵션을 시도해 보겠습니다.

ls -a
.   .aptitude	   .bashrc  file2  file4  .profile  .ssh
..  .bash_history  file1    file3  file5  .rnd	    .viminfo

이전에 볼 수 없었던 일부 파일이 표시됩니다. -a 플래그는 --all 플래그와 동의어입니다. 숨겨진 파일을 포함하여 현재 디렉토리에 있는 모든 파일을 보여줍니다.

Linux 시스템에서 시작 점이 있는 이름이 지정된 모든 파일은 기본적으로 숨겨져 있습니다. 그것들은 비밀이 아니며 누구나 찾을 수 있습니다. 파일을 쉽게 관리할 수 있도록 비켜둘 뿐입니다. -a 플래그를 전달하면 ls에 이러한 파일도 표시하도록 지시할 수 있습니다.

단순히 함께 문자열을 지정하여 여러 플래그를 전달할 수도 있습니다.

ls -l -a
drwx------  4 root root 4096 Feb 28 19:45 .
drwxr-xr-x 23 root root 4096 May  3  2013 ..
drwx------  2 root root 4096 Feb 28 17:19 .aptitude
-rw-------  1 root root 2036 Feb 28 18:20 .bash_history
-rw-r--r--  1 root root  570 Jan 31  2010 .bashrc
-rw-r--r--  1 root root    0 Feb 28 19:45 file1
. . .

이것은 잘 작동하지만 다음과 같이 옵션 플래그를 축소할 수도 있습니다.

ls -la

이것은 정확히 동일하게 작동하며 타이핑이 덜 걸립니다.

또 다른 흥미로운 옵션은 파일을 재귀적으로 나열하는 -R 플래그입니다. 홈 디렉토리 내에 있는 유일한 디렉토리는 숨겨져 있으므로 -a 옵션도 전달해야 합니다.

ls -Ra
    .:
.   .aptitude	   .bashrc  file2  file4  .profile  .ssh
..  .bash_history  file1    file3  file5  .rnd	    .viminfo

./.aptitude:
.  ..  cache  config

./.ssh:
.  ..  authorized_keys

ls의 동작 방식을 변경하는 방법을 알았으니 이제 ls가 작동하는 "객체\를 변경해 보겠습니다.

다른 디렉토리에서 ls 사용

기본적으로 ls는 현재 디렉토리의 내용을 나열합니다. 그러나 내용을 보려는 디렉토리의 이름을 명령 끝에 전달할 수 있습니다.

예를 들어 다음을 입력하면 모든 Linux 시스템에서 사용할 수 있는 /etc라는 디렉토리의 내용을 볼 수 있습니다.

ls /etc
acpi			fstab		 magic		  rc.local
adduser.conf		fstab.d		 magic.mime	  rc.local.orig
aliases			fuse.conf	 mailcap	  rcS.d
aliases.db		gai.conf	 mailcap.order	  reportbug.conf
alternatives		groff		 mailname	  resolvconf
anacrontab		group		 mail.rc	  resolv.conf
apm			group-		 manpath.config   rmt
. . .

여기에서 이 디렉토리에 많은 파일이 있음을 알 수 있습니다.

슬래시(/)로 시작하는 모든 디렉터리 경로를 "절대\ 경로라고 합니다. 이는 특히 "/\ 문자로 지정되는 루트 디렉터리인 최상위 디렉터리의 디렉터리 경로를 참조하기 때문입니다. .

디렉토리를 참조하는 또 다른 방법은 "상대\ 경로를 사용하는 것입니다. 이것은 현재 있는 디렉토리에 상대적인 디렉토리를 찾습니다. 이러한 디렉토리 지정은 슬래시로 시작하지 않습니다.

현재 폴더에는 숨겨지지 않은 디렉토리가 없으므로 시연을 위해 몇 가지를 빠르게 만들어 보겠습니다. 내부에 일부 파일도 추가합니다. 지금 바로 이러한 명령에 대해 걱정하지 마세요. 지금 아이디어를 보여주기 위해 사용되는 것이므로 그대로 입력하세요.

mkdir dir{1..3}
touch dir{1..3}/test{A,B,C}

내부에 일부 파일이 있는 일부 디렉토리가 생성됩니다. 일반 ls 명령으로 디렉토리를 볼 수 있습니다.

ls
dir1  dir2  dir3  file1  file2	file3  file4  file5

"dir1\ 디렉토리 내부에 무엇이 있는지 확인하기 위해 위에서 설명한 것처럼 현재 값의 끝에 보고자 하는 디렉토리를 추가하여 절대 경로를 할 수 있습니다. 현재 디렉토리를 찾을 수 있습니다.

pwd
/root

그런 다음 관심 있는 디렉토리를 끝에 추가합니다.

ls /root/dir1
testA  testB  testC 

그러나 우리는 이것을 할 필요가 없습니다. 다음과 같이 디렉토리 이름을 지정하여 현재 디렉토리 내부의 디렉토리를 참조할 수 있습니다.

ls dir1
testA  testB  testC

슬래시로 경로 지정을 시작하지 않으면 운영 체제는 현재 디렉터리에서 시작하는 디렉터리 경로를 찾습니다.

이동

지금까지 파일 시스템에서 우리가 어디에 있는지 알아내는 방법과 ls 명령을 사용하여 특정 디렉토리에 있는 파일에 대한 정보를 찾는 방법을 배웠습니다.

그러나 작업 디렉토리를 어떻게 변경합니까? 작업 디렉토리를 변경하면 다른 위치의 상대 경로를 사용할 수 있습니다. 일반적으로 파일이 포함된 디렉토리에서 파일을 조작하는 것이 더 쉽습니다.

cd 명령을 사용하여 파일 계층을 이동할 수 있습니다. 이 명령은 디렉토리 변경을 나타냅니다.

가장 기본적인 사용법은 다음과 같이 입력하면 됩니다.

cd

아무 작업도 수행하지 않는 것 같습니다. 사실 그렇지 않습니다. 추가 정보 없이 cd가 수행하는 작업은 홈 디렉토리로 변경하는 것입니다. 우리는 이미 홈 디렉토리에 있으므로 명령이 수행할 작업이 없습니다.

명령을 사용하는 방법에 대한 보다 일반적인 아이디어는 다음과 같습니다.

  1. cd /path/to/directory

이 경우 /path/to/directory는 이동하려는 디렉토리 위치의 경로로 대체되어야 합니다. 예를 들어, 트리의 맨 위에 있는 단일 슬래시(/)로 지정된 "루트\ 디렉토리로 변경하려면 다음과 같이 입력할 수 있습니다.

cd /

참고: 루트 디렉토리(슬래시 "/”로 지정됨)는 루트 사용자의 홈 디렉토리("/root”에 있음)와 다릅니다. 이것은 처음에는 혼란스러울 수 있지만 디렉토리 트리의 맨 위를 파일 시스템 루트라고 합니다.

명령 프롬프트가 변경되었음을 알 수 있습니다.

"#\ 또는 "$\ 직전에 디렉토리 목록이 물결표(사용자의 홈 디렉토리를 나타내는 "~\ 모양의 기호를 기억하십시오)에서 다음의 "루트\ 디렉토리로 변경되었습니다. 파일 시스템.

pwd 명령을 다시 사용하여 현재 다른 디렉토리에 있는지 확인할 수 있습니다.

pwd
/

새 디렉터리의 파일을 확인할 수도 있습니다.

ls
bin   etc	  lib	      media  proc  sbin     sys  var
boot  home	  lib64       mnt    root  selinux  tmp  vmlinuz
dev   initrd.img  lost+found  opt    run   srv	    usr

다른 위치로 성공적으로 이전했습니다. 이제 상대 경로를 사용하여 새 디렉토리로 이동해 보겠습니다. 이 디렉토리 내에 usr라는 디렉토리가 있음을 알 수 있습니다. 다음을 입력하여 변경하십시오.

cd usr

보시다시피 cd에도 상대 경로를 사용할 수 있습니다. 루트 디렉토리로 다시 이동하려면 어떻게 해야 합니까? 이전에 사용한 것과 동일한 cd / 명령을 입력할 수 있지만 다른 것을 시도해 보겠습니다.

상대 경로를 사용하여 트리를 위로 이동해 봅시다. 상대 경로를 사용하여 현재 폴더가 포함된 폴더를 어떻게 참조합니까?

특수 구문을 사용하여 현재 디렉토리를 포함하는 디렉토리를 참조할 수 있습니다. 현재 디렉토리를 포함하는 디렉토리를 "상위\ 디렉토리라고 합니다. 점 두 개(…)를 사용하여 상위 디렉토리를 참조할 수 있습니다.

다시 한 단계 위로 이동해 보겠습니다.

cd ..
pwd
/

보시다시피 루트 디렉토리로 돌아왔습니다. 단일 점으로 현재 디렉토리를 참조할 수도 있습니다.

ls .
bin   etc	  lib	      media  proc  sbin     sys  var
boot  home	  lib64       mnt    root  selinux  tmp  vmlinuz
dev   initrd.img  lost+found  opt    run   srv	    usr

이것은 이 단계에서 명확하지 않을 수 있는 여러 상황에서 유용하지만 나중에 현재 디렉토리를 쉽게 참조할 수 있는 기능에 감사할 것입니다.

앞에서 말했듯이 "~\ 기호는 홈 디렉토리를 참조합니다. 이를 다른 디렉토리 경로의 시작으로 사용하여 홈 내부의 "dir1\로 변경해 보겠습니다.

cd ~/dir1
pwd
/root/dir1

이제 "~\ 기호를 사용하여 경로의 첫 번째 부분을 대체하여 매우 쉽게 홈 디렉토리 내의 디렉토리로 이동했습니다.

하지만 디렉터리를 변경하기 전에 해야 할 일을 잊고 가장 최근 디렉터리로 돌아가고 싶다면 어떻게 해야 할까요? 다음을 입력하여 이전 디렉토리로 돌아갈 수 있습니다.

cd -
pwd
/

마지막 디렉토리로 돌아왔습니다.

홈 디렉토리로 돌아가서 마무리하겠습니다. 물결표를 전환 경로로 사용하여 이를 수행할 수 있습니다. 그러나 cd의 기본 모드는 경로를 추가하지 않으면 홈 디렉토리로 돌아가는 것임을 기억할 것입니다. 대신 시도해 보겠습니다.

cd
pwd
/root

보시다시피 다시 홈 디렉토리로 돌아갔습니다.

결론

이제 파일 시스템을 꽤 많이 탐색하는 데 필요한 도구가 있어야 합니다. 아직 파일을 조사하는 방법을 모르지만 시스템을 쉽게 탐색하고 현재 위치를 추적하고 주변에 있는 파일을 볼 수 있어야 합니다.