2022 데이터 사이언스/Linux

04. 기초 명령어(1)

gool 2022. 5. 16. 21:31
pwd, cd, ls, cp

 

 

 

Linux를 포함한 모든 CLI 환경은 명령어로 제어된다.

앞으로 세 번의 포스팅에 걸쳐 Linux의 기초 명령어를 알아보려고 한다.

 

 

 

명령어 형식

 

명령어의 기본적인 형식은 다음과 같다.

 

명령어     [옵션]     [보조옵션]     [대상]

(대괄호는 IT 전반에서 생략 가능한 것을 나타내는데 사용되는 기호이다.)

 

(1) 명령어만 사용

  • pwd
  • clear

 

(2) 명령어와 대상

  • mkdir 디렉토리
  • cd 디렉토리

 

(3) 명령어와 옵션

  • ls -l

 

대부분의 명령어가 위의 형식을 따르지만, 그렇지 않은 경우도 존재하긴 한다.

지금부터 살펴볼 기초 명령어들은 모두 기본 형식을 따른다.

 

 

 

pwd

 

현재 위치를 절대 경로로 출력해주는 명령어이다.

 

 

 

cd

 

현재 위치한 디렉토리를 이동/변경해주는 명령어이다.

명령어의 대상과 함께 사용된다.

 

(1) cd 디렉토리

해당 디렉토리로 이동

 

(2) cd .

현재 디렉토리로 이동(실행 의미 없음)

 

(3) cd ..

상위 디렉토리로 이동

 

(4) cd ~

명령어를 입력한 사용자의 홈 디렉토리로 이동

 

(5) cd ~계정이름

해당 사용자의 홈 디렉토리로 이동(root 전용)

 

5번의 경우 관리자 계정인 root 계정에서만 동작한다.

root 계정만 관리 목적으로 다른 사용자의 홈 디렉토리에 접근이 가능하다.

일반 사용자는 다른 사용자의 홈 디렉토리에 접근 불가능하며, 허가 거부 에러가 발생한다.

 

대상을 생략하면 4번과 마찬가지로 명령어를 입력한 사용자의 홈 디렉토리(~)로 이동한다.

cd만 입력 시 관리자 계정은 /root로, 일반 사용자 itbank 계정은 /home/itbank로 이동한다.

 

 

 

ls

 

ls 명령어는 대상에 따라 출력하는 내용이 달라진다.

 

(1) ls 파일

파일 자체의 정보를 출력

ex) ls -l /etc/passwd

 

(2) ls 디렉토리

디렉토리 내부의 목록을 출력

ex) ls -l /home/

 

대상을 생략할 경우 현재 위치한 디렉토리를 대상으로 사용한다.

또한, ls 명령어의 대상은 여러 개가 될 수 있으며, 대상이 꼭 한 가지 종류일 필요는 없다.

ex)

ls -l /etc/passwd /etc/inittab

ls -l /home/ /home/test/

ls -l /home/ /etc/passwd

 

 

ls 명령어는 다양한 옵션과 함께 사용된다.

 

(1) ls -l

자세한 정보 출력(옵션 생략 시 이름만 출력)

 

* 자세한 출력 내용 설명

ex) 

-rw-r--r--. 1 root root 2263  5월 10 10:37 /etc/passwd

  • - : 해당 개체의 형식(- : 일반 파일, d : 디렉토리)
  • rw-r--r-- : 허가권
  • 1 : 링크 개수
  • root root : 소유권
  • 2263 : 크기(byte 단위, 디렉토리의 경우 정확한 크기가 출력되지 않음)
  • 5월 10 10:37 : 마지막으로 수정된 날짜와 시간

 

(2) ls -a

숨겨진 개체까지 출력(. 으로 시작하는 개체들이 숨겨져 있던 개체들을 의미)

 

-l, -a 옵션 동시 사용

 

옵션 뒤에 들어갈 값이 없는 경우 여러 옵션을 하이픈 하나로 묶어서 표현 가능

 

(3) ls -d

대상이 디렉토리인 경우 해당 디렉토리의 정보를 출력(단, 대상이 디렉토리가 아니면 효과 없음)

 

/home/ 내부의 목록이 아닌 /home/ 디렉토리의 정보를 출력

 

대상이 디렉토리가 아니라 파일인 경우

 

(4) ls -R

대상이 디렉토리인 경우 하위 디렉토리가 있다면 그 내부까지 출력

 

/home/test/ 하위의 c, d 디렉토리까지 출력

 

 

 

cp

 

cp(copy)는 복사와 붙여넣기를 한 번에 처리하는 명령어이다.

기본적으로 파일만 복사가 가능하며, 디렉토리의 복사는 별도의 옵션이 필요하다.

(Windows에서는 복사, 붙여넣기 명령어를 따로 실행하며, 파일과 폴더 모두 복사가 가능하다.)

 

원본 파일의 이름을 유지하거나 변경하면서 복사할 수 있다.

단, 복사와 동시에 이름을 변경할 때는 원본을 하나만 입력해야 한다.

 

 

cp 명령어의 형식은 다음과 같다.

 

cp     [옵션]     원본     [원본]     ...     [원본]     복사할 위치[변경할 이름]

 

 

예를 들어 mkdir /backup/을 입력해 / 디렉토리 아래에 'backup' 디렉토리를 생성했다고 하자.

(mkdir은 디렉토리를 형성하는 명령어이다.)

 

backup 디렉토리에 세 개의 파일이 복사된 모습

 

backup 디렉토리로 세 개의 파일을 복사하기 위해 두 줄의 명령어가 사용되었다.

 

(1) cp /boot/grub2/grub.cfg /backup/grub.conf

/boot/grub2/에 위치한 grub.cfg 파일의 이름을 'grub.conf'로 변경해 /backup/으로 복사

 

다시 말하지만, 복사와 동시에 이름을 변경할 때는 일대일 복사만 가능하다.

 

(2) cp /etc/inittab /etc/login.defs /backup/

/etc/에 위치한 inittab, login.defs 파일을 이름은 유지한 채 동시에 /backup/으로 복사

 

 

복사하고자 하는 파일이 이미 존재하는 경우, overwirte 여부를 묻는 문구가 출력된다.

y를 입력하면 기존의 파일을 덮어쓰고, 나머지 경우에는 복사를 취소한다.

 

복사하려는 파일이 이미 존재하는 경우

 

 

옵션 -r을 사용하면 디렉토리도 복사가 가능하다.

 

 

아무런 옵션 없이 /backup/ 디렉토리를 현재 위치로 복사하려고 했을 때,

omitting directory라는 문구가 출력되며 디렉토리를 복사에서 제외시킨다.

 

-r 옵션을 사용한 후 backup 디렉토리가 현재 위치로 복사된 것을 확인할 수 있다.

Windows 운영체제에서 폴더를 복사하면 내용물이 함께 따라오듯이,

CLI 환경에서도 디렉토리를 복사할 경우 디렉토리 내의 파일이 함께 복사된다.

 

 

 

cp 실습 예제

 

예제 1)

현재 위치가 /home/itbank/일 때, 아래의 cp 명령어 세 줄을 경로 요소를 바꿔 입력하시오.

(절대 경로는 상대 경로로, 상대 경로는 절대 경로로 입력)

 

 

 

(풀이)

 

pwd 명령어로 현재 위치까지의 절대 경로를 확인한다.

/backup/과 함께 현재 위치인 /home/itbank/의 내용물도 살펴본다.

 

현재 위치까지의 절대 경로 확인

 

모두 절대 경로로 표현된 첫 번째 명령어는 모두 상대 경로로,

원본 파일은 절대 경로로, 복사할 위치는 상대 경로로 입력된 두 번째와 세 번째 명령어는

각각 상대 경로와 절대 경로로 바꾸어 입력해준다.

절대 경로를 상대 경로로 바꿀 때는 앞서 확인한 pwd 명령어의 출력 결과를 참고한다.

 

경로 요소가 변경된 명령어

 

 

 

예제 2)

현재 위치 /home/itbank/ 내부에 위치한 파일을 /home/test/c/d/로 복사하고자 할 때,

아래의 cp 명령어 세 줄을 경로 요소를 바꾸어 입력하시오.

 

 

 

(풀이)

 

 

 

 

예제 3)

아래 조건에 맞추어 /home/teset/c/d/ 안의 파일 전부를 /home/itbank/a/b/로 복사하시오.

  • 디렉토리를 직접 복사하지 않는다.
  • 작업 위치는 /home/itbank/라고 가정한다.
  • 명령어는 한 줄만 입력한다.

 

 

 

(풀이 1)

 

한 줄의 명령어에 세 개의 원본 파일을 직접 입력해준 뒤 현재 작업 위치 아래의 a/b/로 복사한다.

 

 

 

(풀이 2)

 

모든 종류와 길이의 문자를 의미하는 * 기호를 활용한다.

아래 명령어는 /home/test/c/d/ 안의 모든 파일을 ./a/b/로 복사한다는 의미이다.

 

 

 

 

'2022 데이터 사이언스 > Linux' 카테고리의 다른 글

06. 기초 명령어(3)  (0) 2022.05.19
05. 기초 명령어(2)  (0) 2022.05.17
03. 기본 디렉토리와 경로  (0) 2022.05.14
02. 서버 컴퓨터 원격 조종  (0) 2022.05.12
01. 운영체제와 가상환경  (0) 2022.05.12