학습일지(23.02.24.금)

FAST FOX·2023년 2월 24일
0

학습일지

목록 보기
10/39
post-thumbnail

CLI(Command-Line Interface)

리눅스의 터미널은 키보드의 입력과 모니터의 출력으로 모든 작업을 할 수 있다. 리눅스 터미널은 GUI가 개발되기 이전부터 컴퓨터를 조작하기 위해 사용되었기 때문에, GUI가 할 수 있는 모든 작업은 CLI로 할 수 있다.

GUI가 시각적으로 더 편리한 것은 맞지만 CLI가 더 유리한 경우도 있다. 예를들어 아마존 웹 서비스(AWS)의 클라우드 컴퓨팅처럼 대량의 서버 컴퓨터를 사용하는 경우에 일일이 GUI를 적용할 수 없기 때문에 이런 경우에는 CLI가 더 적합하다.

CLI 명령어

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

  2. pwd (print working directory)
    현재 폴더가 위치한 경로가 나타납니다.

  3. ls
    특정 폴더에 포함된 파일이나 하위 폴더의 리스트를 출력합니다.

    • ls -a : 숨겨진 폴더와 파일을 모두 보여준다.
    • ls -l : 출력된 내용물들이 폴더인지 파일인지 알려준다.
      drxwr-xr-x //폴더
      -rw-r--r-- //파일
  4. touch
    해당 폴더안에 파일을 생성한다.

    touch hi.txt //텍스트 파일을 생성
  5. cat
    파일의 내용을 터미널에 출력한다.

    cat hi.txt 
  6. 폴더 또는 파일의 이름에 띄어쓰기나 특수문자가 있으면, 백슬래시()를 이용해 적용합니다.

  7. rm (remove)
    폴더나 파일을 삭제할 때 사용한다.
    만약에 rm을 이요해서 폴더를 지우려고 한다면 삭제되지 않고 폴더임을 알리는 결과를 출력한다. 이런 경우에는 -rf를 사용해서 폴더를 삭제한다.

    rm -rf bye

    ❕. r은 "recursive"의 약자이고 f는 "force"의 약자이다. r은 폴더를 지울 때, f는 질문을 받지 않을 때 사용한다.

  8. mv
    폴더나 파일의 이름을 변경하거나 위치를 옮길때 사용한다.

< 위치 변경 >
mv bye.txt bye
//명령어 mv 뒤에는 순서대로 [폴더나 파일의 이름] [도착 폴더의 이름]를 입력합니다. 
< 이름 변경 >
mv bye.txt helloWorld.txt
//명령어 mv를 사용하기 위해 필요한 [폴더나 파일의 이름]에는, 변경할 폴더나 파일의 이름을 입력합니다. 
//[도착 폴더의 이름]을 대신해, 변경하고자 하는 파일의 이름을 입력합니다.
  1. cp
    폴더나 파일을 복사합니다.
< 파일복사 > 
cp helloWorld.txt hiComputer.txt
//cp [원본 파일 이름] [복사할 파일 이름]
< 폴더 복사 > 
cp -rf bye hi
//

관리자 권한과 경로

sudo : 관리자 권한을 획득하는 명령어

폴더나 파일을 생성할 때는 mkdir를 사용한다. 하지만 절대 경로의 기준점인 루트 폴더( / )는 관리자의 영역을 가지고 있고 일반 사용자의 권한으로는 언떤 폴더나 파일도 생성, 변경, 삭제할 수는 없다.

이때 사용하는 것이 sudo이다. 관리자 권한이 필요한 곳에 파일/폴더를 생성,변경 또는 삭제할 때 다음과 같이 입력한다.

sudo mkdir sudoMkdirFolder
password: // 타이핑을 해도 출력이 없습니다.

위와 같이 관리자 권한 파일/폴더를 생성할 수 있습니다. 이떄 사용되는 패스워드는 리눅스 계정을 처음 생성할 때 입력한 패스워드를 입력하면 된다.
ls -l을 사용하면 사용자와 관리자의 차이를 볼 수 있습니다.


Git

Git을 사용하는 이유

  1. 파일이 변경되면 변경 이력을 저장할 수 있다.
  2. 이전 버전으로 돌아갈 수 있다.
  3. 어떤 변경 사항이 발생했는지 알아보기 쉽다.
  4. Git으로 관리되는 파일은 Github, GitLab, Bitbucket 등의 여러 가지 원격 저장소를 이용해서 백업과 협업을 할 수 있다.


<버전 관리 시스템의 기본적인 모습>

이 그림처럼 하나하나 날짜별로 어떤 파일이 어떻게 바뀌었는지 확인이 가능합니다. 이렇게 특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데요. 이렇게 하나하나 스냅샷을 만들어 주는 작업을 commit이라고 합니다.

commit이라는 기능을 통해서 변경 사항에 대한 스냅샷이 만들어지고 이전의 기록들에 대한 추적이 가능하다면 버전 관리뿐만 아니라 회사에서 협업을 할 때도 굉장히 유용하겠죠?

Git과 Github

  • Git : 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템이다.
  • Github : Git Repsitory를 관리할 수 있는 클라우드 기반 서비스이다.

즉 Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근할 수 있는 것이죠.
한 마디로 개발자들의 SNS입니다. Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝트들이 GitHub로부터 호스팅되고 있어서, 누구든 자유롭게 기여할 수 있습니다.

Git Repository

내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야 하는데요.
Git으로 관리되는 폴더를 Git repository 라고 합니다.

Git repository 는 Remote Repository와 Local Repository 두 종류의 저장소를 제공합니다.
작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있습니다.
다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있습니다.

profile
준비하는 개발자

0개의 댓글