코드스테이츠

2.24 Linux 기초

스우티 2023. 2. 25. 01:00

Command-Line Interface

CLI(Command-Line Interface)

키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간 프롬프트(Prompt)

pwd: 현재 위치 확인하기
mkdir: 새로운 폴더 생성하기
ls: 특정 폴더에 포함된 파일이나 폴더 확인하기
ls -l
ls -a
ls -al 또는 ls -la
* 위의 세 번째 예시에서, 옵션을 뜻하는 대쉬(dash, -) 뒤에 오는 옵션의 순서는 기능에 영향을 미치지 않습니다.
명령어 ls의 옵션 a는 "all"이라는 의미입니다. 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력합니다. 

cd: 폴더로 진입 
touch: 파일 생성하기
cat: 파일의 내용을 터미널에 출력하기
rm: 폴더나 파일 삭제하기 remove
*단일 파일을 삭제할 수 있습니다. -rf 옵션을 사용해 폴더를 삭제
-옵션 r은 "recursive"를 뜻하고, 옵션 f는 "force"를 뜻합니다.
옵션 r은 폴더를 지울 때 사용하고, 옵션 f는 질문을 받지 않고 지울 때 사용합니다.

mv: 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기 move
cp: 폴더나 파일을 복사하기 copy
*cp [원본 파일 이름] [복사할 파일 이름]을 프롬프트에 입력합니다.
cp -rf

*CLI에서.은 현재 폴더를 나타냅니다.
..은 현재 폴더보다 앞에 있는 폴더를 가리킵니다.
Whoami 현재 로그인된 사용자 확인
sudo: 관리자 권한을 획득하는 명령어
nano: 나노 에디터 실행

 

다음 중 CLI에 대한 설명으로 옳지 않은 것을 고르세요. 정답 D

A.입력하는 글자와 출력되는 글자로 컴퓨터와 소통할 수 있다.
B.키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간을 프롬프트라고 한다.
C.대규모의 서버를 운용해야 하는 경우, 별도의 I/O소스 연결 없이 각각의 서버 컴퓨터를 조작할 수 있다.
D.대부분의 PC에서 유료로 이용 가능하며, WIndows가 대표적이다.
해설
A. CLI는 순수하게 글자를 주고 받는 방식으로 컴퓨터와 소통할 수 있는 방법입니다.

B. 터미널을 켜서 명령을 입력할 수 있는 한 줄의 공간을 프롬프트라고 합니다.

C. 만약 대규모의 서버를 운용해야 하는 경우, 각각의 컴퓨터마다 I/O소스(모니터, 키보드, 마우스 등)을 연결해야 한다면 비용도 많이 들 뿐 아니라, 조작하기도 불편할 것입니다. 그러나 CLI를 이용하면 자신의 I/O 소스를 통해 서버 컴퓨터를 조작하는 것이 가능합니다.

D. Windows는 GUI의 대표주자라고 할 수 있습니다. 대표적인 CLI인 Linux는 대부분의 PC에서 무료로 사용할 수 있습니다.

 

문제 pwd 명령어를 사용하여 확인한 경로가 아래와 같을 때, codestates 폴더로 이동하기 위한 명령어로 옳지 않은 것을 고르세요. 답B

pwd
# /Users/kimcoding/Downloads/codestates/unit8/chapter1-4

 

A.cd ./../../../codestates

B.cd .././././Downloads/codestates/
C.cd ~/Downloads/codestates/unit8/../
D.cd ./../../

보기A: 현재 위치를 의미하는 상대 경로 ./에 이어 상위 폴더를 의미하는 상대 경로 ../를 총 3번 사용했으므로 Downloads 폴더로 이동합니다. 그 후 Downloads에 있는 하위 폴더인 /codestates/로 이동하고 있습니다.

보기B: ../를 한 번 사용한 후 ./을 세 번 사용하면 현재 위치는 unit8 폴더가 됩니다. 해당 위치에서 /Downloads/codestates/를 입력해도 상위 폴더로는 이동할 수 없습니다.따라서 틀린 보기입니다.

보기C: ~는 루트 폴더로부터 사용자 폴더까지의 경로(/Users/[username]/)를 축약한 형태입니다. 차례대로 /Downloads/codestates/unit8/로 이동한 후, ../를 입력하였으므로 상위 폴더인 codestates 폴더로 이동합니다.

보기D: ./를 한 번, ../를 두 번 사용하였으므로 codestates 폴더로 이동합니다.

 

문제 package.json에 대한 설명으로 옳지 않은 것을 고르세요. 정답 B

A.package.json에는 해당 프로그램을 실행시키기 위한 모듈의 정보, 실행 방법, 테스트 하는 방법 등이 명시되어 있다.

B.프로젝트 코드를 전달할 때 package.json에 포함되어 있는 모듈을 모두 전달해 주어야 한다

C.npm install 명령어로 package.json에 포함되어 있는 모듈을 설치할 수 있다.
D.코드스테이츠의 과제를 제출하기 위한 명령어는 npm run submit이다.
 

package.json에는 해당 프로그램을 실행시키기 위한 모듈의 정보, 실행 방법, 테스트 방법 등이 명시되어 있습니다. 프로젝트 코드를 전달할 때, 모든 모듈을 전달할 필요 없이 package.json을 전달하면, 전달 받은 사람은 npm install 명령어로 package.json에 포함되어 있는 모듈을 설치할 수 있습니다. 과제 제출 방법에서 확인했듯, 코드스테이츠의 과제를 제출하기 위한 명령어는 npm run submit입니다.

문제 다음 중 Git에 업로드 되어 있는 오픈 소스의 기여자(contributors)가 되기 위한 작업에 대한 설명으로 바르지 않은 것을 고르세요.
정답 D

A.fork: 오픈 소스 코드가 업로드 되어 있는 원격 저장소(Remote Repository)에서 나의 원격 저장소로 가지고 오는 과정

B.clone: 원격 저장소에서 내 컴퓨터(Local Repository)로 가지고 오는 과정

C.push: 컴퓨터(Local Repository)에서 작업한 소스코드 변경 작업을 원격 저장소에 반영하는 과정
D.pull: 작업한 변경 사항을 소스코드에 즉시 반영하는 과정
 
pull은 원격 저장소에서 변경 사항이 생겼을 때, 변경된 사항을 내 컴퓨터에 반영하는 작업입니다.
pull request 변경 사항을 제안하고, 반영을 요청할 수 있습니다.