Command Line

katsukichi·2021년 1월 27일
0

CodeStates_PRE

목록 보기
16/27

Command Line Interface ( CLI )

우리가보통 명령프롬프트 또는 터미널이라고 생각하는게 CLI라고 할수있다.

GUI = Graphic User Interface 는 그래픽으로 유저에게 제공해주는 보기좋은 뭐랄까 프로그램?이고

CLI = 표준 입출력(Standard I/O)을 통한 입력과 그에 따른 결과를 출력하는 형태다.

- 표준 입출력? 키보드,모니터를 얘기한다.

CLI를 왜쓰는가?

  1. 빠르다.

  2. 강력하다. (명령어 몇줄로도 여러가지일을 한꺼번에 할수있으므로)

  3. 접근성이 좋다. (원격에 있는서버에 접근한다던가)

왜 유닉스? 리눅스?

  • 서버시장에서의 *nix 점유율이 매우높음
  • AWS 및 Azure등에서 제공하는 서버는 대부분 *nix이다.
  • Open Source라서 비용문제 없음!

유용한 명령어

  1. ls list라는 의미이고 , 파일 보기 를 할수있따.

    • 현재 위치에서 파일목록들을 보여준다.

    • 옵션을 추가해서 디테일정보를 가져올수있다. -a , -l, -al 세가지 옵션

    • -a : 숨긴파일 표시 (파일명 앞에 .이 붙음)

    • -l : 파일 권한들, 소유자, 생성일...등등표시

    • -al : 위 옵션 둘다

  2. cd change directory라는 의미이고 , 디렉토리로 이동 을 할수있다.

    • 현재위치에서 하위폴더로 이동할수있다.
    • cd ~ 가 의미하는것은 홈 디렉토리(현재 사용자의 개인화 파일들이 있는 디렉토리)
    • cd / 루트 디렉토리 (시스템의 최상위 디렉토리)
    • cd . 현재 디렉토리
    • cd .. 부모 디렉토리
    • pwd 명령어로 현재 디렉토리를 확인할 수 있다.
    • tab키를 이용해서 자동완성이 가능하다.
    • 파일이름에 공백이있으면 \ 역슬레시+공백을 이용해야하고 ,제일편한것은 tab키를이용한 자동완성
  3. touch 빈 파일 생성

  4. mkdir 디렉토리 생성

  5. cat 텍스트형태의 파일 확인

  6. mv 파일 및 디렉토리 옮기기 [file_or_dir] [target_dir]

    • 이름바꾸기도 이 명령어로 가능하다. [file_or_dir] [new_name]
  7. cp 복사 [file] [target_dir] : 파일복사

    • cp -r [folder] : 폴더복사
  8. rm 삭제 : 삭제에 대한 경고가없고, 즉시삭제되어 휴지통에 들어가지않는다.

    • rm [filename] : 파일삭제
    • rm -r [dirname] : 폴더 삭제
  9. sudo 관리자권한으로 실행하기. (명령문 가장 왼쪽에 붙여서 사용)

    • package manager를 이용하는데 (우분투리눅스 : apt등등.) 그때 쓴다.
    • sudo는 가능한 적게 사용한다.
    • 가능한한 user권한으로 해결할 수 있어야한다.

권한?

sudo로 파일생성할경우 소유자가 root가 된다.

이때 파일을 수정해서 저장하려고하면 (현재 root로그인이 보통은아니니까..)

현재 사용자는 이파일의 소유자가 아니다.

그래서 chown 명령어를 이용해서 소유자을 변경해준다.

  • change owner 소유자 변경

sudo chown [변경할소유자:변경할소유그룹] [파일명]

더 공부해보면 좋을 내용 chmod ( 권한 변경 )

그리고 rwx rwx rwx등 read , write, excutable(실행이던가) 해서 읽고 쓰기에대한 권한들을

8진수 표현식으로 나타내기도 하고 , 실제로 그런 권한의 프리셋같은느낌으로 많이 칭한다.

자주사용하게될 CLI 프로그램

  1. 버전관리 시스템 git (아마 docker도 여기포함아닌가?)
  2. Package Manager (프로그램 추가/삭제)
    • 우분투 : apt
    • macOs : Homebrew ( 맥은뭐 많이쓰는거 몇개더있을껀데 )
    • windows : chocolatey
  3. 텍스트 에디터 : vim, gedit
  4. 클라우드 서비스 관리 : AWS CLI
profile
front-back / end developer / Let's be an adaptable person

0개의 댓글