목차

     

     

     

     

    시작 화면

    우분투 리눅스 시작화면

     

     시작 화면에서 맨 아래줄만 읽어보자. ubuntu@ip-172-31-24-185:~$ 라고 표시 되어있다.
    @ 앞에 있는 값이 ubuntu 는 사용자 이름이다. 윈도우 운영체제에서도 처음 시작할 때, 여러 사용자를 만들어서 사용할 수 있는것 처럼 리눅스에서도 여러 사용자를 만들어 사용할 수 있다. 그 중에서 기본 사용자의 이름을 ubuntu 로 지정해 준것이다.

    • @ 뒤에 있는 값인 ip-172-31-24-185 는 호스트의 이름, 즉 컴퓨터의 이름을 의미한다. 기본 값으로 우리가 대여한 해당 컴퓨터의 IP 주소로 이름이 지어진다.
    • ~ : 현재 들어와있는 경로를 의미한다. ~ 라는 경로는 사용자의 홈 디렉토리를 의미한다.
    • $ : 사용자의 명령 입력을 기다린다는 표시이다.

     리눅스 환경에서는 각 사용자에게 할당된 디렉토리가 있다. 그 디렉토리를 홈 디렉토리 라고 부른다.

    홈 디렉토리의 경로는  /home/{사용자명}  이다. 사용자의 이름이  ubuntu 인 경우  /home/ubuntu  가 홈 디렉토리인 것이다.
    이 때, 홈 디렉토리의 경로를 간결하게 표현하기 위해  로 표현한다.


     

    기본 조작법 및 파일과 디렉토리

    ctrl + 방향키

    ctrl + 방향키로 space 로 띄어진 단어 단위로 커서를 이동시킬 수 있다.

     

     

    ctrl + c

    리눅스에서 ctrl + cEsc 와 비슷한 작업 중단, 작업 취소 역할을 한다. 실행 중인 프로그램을 종료할 때도 ctrl + c 를 사용하고, 

    특정 작업을 중단할 때도 ctrl + c 를 이용한다.

    명령어를 입력 중에 ctrl + c 를 이용해 작업을 취소하면 ^C 라는 표시가 남는다.

    ctrl + c : 작업 취소

     

     

    clear

    clear 를 입력하면 터미널 화면을 깔끔하게 지워준다.

     

     

    복사하기 / 붙여넣기

     윈도우 환경에서 조작하는 터미널에서는 복사/붙여넣기가 ctrl + c, ctrl + v 로 동작하지 않는다.

    • 복사하기 : Ctrl + Insert
    • 붙여넣기 : Shift + Insert

     

     


     

    우분투 리눅스의 기본 디렉토리 구조

    리눅스에서 파일(file), 디렉토리(directory)의 의미

     윈도우나 맥에서 얘기하는 파일(file) 과 폴더(folder)의 개념이 리눅스에서는 조금 다르다.

    • 리눅스에서는 폴더(folder)라고 부르지 않고, 디렉토리(directory)라고 부른다.
      윈도우에서의 폴더(folder)와 리눅스에서의 디렉토리directory)는 완전히 같은 개념이라고 생각해도 된다.
    • 리눅스에서는 모든 것을 파일(file)로 간주한다.
      윈도우에서는 파일(file)과 폴더(folder)가 별개의 개념이었지만, 리눅스에서는 모든 것을 파일(file)로 간주한다.
      • 일반 파일 : 텍스트, 동영상 파일 등
      • 디렉토리 파일 : 윈도우에서의 폴더와 같은 개념

     

    리눅스의 기본 디렉토리 구조

    우분투 리눅스 기본 디렉토리 구조

     

    • 리눅스의 최상위에 있는 디렉토리( / )를 보고 루트 디렉토리라고 한다.
      • 루트 디렉토리 안에 리눅스에 관련된 모든 파일들을 담고있다.
      • 루트 디렉토리를 보고 최상위 디렉토리라고도 부른다.
    • 리눅스에서 경로를 표현할 때는 슬래시 ( / )를 활용하여 경로를 간단하게 표현한다.
      • ex) 루트 디렉토리에 있는, var 폴더 안에 있는, log 폴더 → /var/log
    • 리눅스에는 기본적으로 구성되어 있는 파일들이 존재한다.
      • /bin, /opt, /boot

     

     


     

    디렉토리 조회, 이동 명령어

    현재 디렉토리 경로 조회 ( pwd : print working directory )

    pwd : 리눅스 환경에서 현재 내가 위치한 경로를 조회한다.

     

     

    디렉토리 이동 ( cd )

    cd 이동할 경로 : 지정한 경로로 경로를 이동한다.

     

    cd .. : 현재 디렉토리 경로에서 상위 디렉토리 (..) 로 이동

     

     

    현재 디렉토리 내부에 있는 파일 조회 ( ls )

    ls : 현재 디렉토리 내부의 파일을 조회한다.

     

     

    ls -l : 현재 디렉토리 파일 조회(ls) + 자세한 정보 조회 (-l)

     맨 왼쪽 정보에서  d 로 시작하는 파일을 디렉토리를 의미하고  로 시작하는 파일은 일반 파일을 의미한다.

     

     

    숨김 파일 조회 (ls -a)

    윈도우나 맥에서 숨김 파일이 존재하듯 리눅스에서도 숨김 파일이 존재한다.

    리눅스에서는 ( . ) 으로 시작하는 파일명을 가진 파일은 자동으로 숨김 파일로 인식해 처리된다.

     

    ls -a : 숨김 파일 조회

     

     

     


     

    리눅스 명령어들의 공통적인 패턴 - 옵션(Option)

     위에서 ls 라는 명령어 뒤에  -l -a  와 같은 문자를 덧붙여 사용했다. 여기서  -l , -a  와 같이 하이픈 ( - ) 으로 시작하는 명령어를 리눅스에서는 옵션(Option) 이라고 부른다.

     

    옵션(Option)의 특징

    1. 옵션(option)은 short option 과 long option 으로 2가지 형태를 가진다.
      • 일반적으로 short option 은 하이픈 한 개 ( - ) 로 시작하고, long option 은 하이픈 두 개 ( -- ) 로 시작한다.
    2. 여러 옵션을 함께 사용할 수 있다.
      • 하나의 명령어에서 여러 옵션을 함께 쓸 수 있다. (  ls -l -a  )
      • short option 과 long option 을 같이 쓸 수 있다. (  ls -l --all  )
      • 옵션끼리는 순서가 상관없다. (  ls -a -l  ls -l -a  )
      • short option 은 묶어서 한 번에 쓸 수 있다. (  ls -a -l  ls -al  ls -la  )
    3. 모든 옵션은 명령어마다 다르다.
      •  ls 에서  -a 옵션이 작동한다고 해서, mkdir 명령어에  -a  옵션이 동일하게 동작한다는 보장이 없다. 
        옵션은 명령어마다 다르게 구성되어 있다.

     


     

    상대 경로, 절대 경로란?

    • 절대 경로 : 루트 디렉토리를 기준으로 파일 위치를 표현한다.
      • 경로가 반드시  로 시작한다.
    • 상대 경로 : 현재 디렉토리를 기준으로 파일 위치를 표현한다.
      • 경로가  /  이외의 문자로 시작한다.
      •  .  이 현재 디렉토리 경로를 의미한다.
      •  ..  이 상위 디렉토리 경로를 의미한다.

    예시

    1.  cd /log 
      • 루트 디렉토리( / ) 에 있는 log 디렉토리로 접근 
    2.  cd log 
      • 현재 디렉토리에 있는 log 디렉토리로 접근
    3.  cd ./log 
      • 현재 디렉토리 ( . ) 에 있는 log 디렉토리로 접근
    4.  cd ../log 
      • 상위 디렉토리 ( .. ) 에 있는 log 디렉토리로 접근

     


     

    파일 및 디렉토리 생성 / 삭제 ( touch, mkdir, rm )

    일반 파일 생성 (빈 파일 생성)

     touch [파일명] : 파일명으로 빈 파일 생성

     

    디렉토리 생성

     mkdir [디렉토리명] : 디렉토리명 으로 디렉토리 생성

     

    파일 삭제

     rm [파일명]  : 파일명 이름의 파일 삭제

     

    디렉토리 삭제

     rm -r [디렉토리명] : 디렉토리명 이름의 디렉토리 삭제

     -r ( = --recursive )   -r  옵션이 있어야 디렉토리를 삭제할 수 있다. 디렉토리 내부 파일까지 삭제 한다.

     

    파일 & 디렉토리 삭제

     rm -rf [파일명]  :  파일이든 디렉토리든 삭제한다.

    •  -f  :  강제 삭제 (엑세스 권한이 없는 파일도 강제로 삭제하는 옵션). 편의상 이 옵션을 추가해서 삭제 명령어를 입력하는 경우가 많다.

     


     

    파일 및 디렉토리 복사 / 이동 / 이름 변경 ( cp, mv )

     

    파일 복사

     cp [복사할 파일] [복사할 위치 or 복사할 파일명] 

     연습) 현재 디렉토리의 a.txt 파일을 ./box 경로로 복사

    cp 명령어 연습

     

    연습2) a.txt 파일을 현재 경로에 b.txt 파일로 이름을 바꿔 복사

    cp 명령어 연습2

    연습3) a.txt 파일을 ./box 경로에 b.txt 파일로 이름을 바꿔 복사

    cp 명령어 연습3

     

     

    디렉토리 복사

     cp -r [복사할 디렉토리] [복사할 위치 or 복사할 디렉토리명] 

     디렉토리를 복사할 때, -r 옵션을 넣지 않으면 에러가 발생한다.

     

    연습4) box 디렉토리를 현재 경로에 box2 디렉토리로 이름을 바꿔 복사

    cp 명령어 연습4

     

     

    파일 및 디렉토리 이동

     mv [이동할 파일] [이동할 위치] 

    연습) 현재 디렉토리에 있는 a.txt 파일을 ./box 디렉토리로 이동

    mv 명령어 연습

     

    파일 및 디렉토리 이름 변경

     mv [이름 바꿀 파일] [변경할 파일명]  : mv 명령어는 이름을 변경할 때도 사용된다.

    연습2)box 라는 파일(디렉토리)을 new-box 라는 이름으로 변경

    mv 명령어 연습2

     

     


     

    파일 작성/조회 할 때 자주 사용하는 명령어

    텍스트 에디터 ( vim )

     윈도우나 맥에서 파일에 코드를 작성할 때, vscode, IntelliJ 와 같은 프로그램을 활용했을 것이다.
    이런 프로그램을 보고 텍스트 에디터(Text Editor) 라고 부른다.

     

     리눅스에서도 코드를 작성해야 하는 경우가 있는데, 리눅스 환경에서 최적화된 텍스트 에디터( vim, nano, emac 등등 ) 를 주로 사용한다. 아래에서 vim 에디터 의 기본 사용법을 알아보자.

     

     

    파일 생성 ( + vim 열기 )

    $ vi app.txt  

    app.txt 라는 파일을 생성하고 vim 에디터를 연다.
    app.txt 파일이 존재한다면 app.txt 를 vim 에디터로 연다.

     

     

    app.txt 를 생성하고 vim 에디터를 처음 열었을 때, COMMAND 모드로 설정되어 있어 텍스트를 입력할 수 없다.
    INSERT 모드로 들어가야 텍스트를 입력할 수 있다.

     

    키보드로  i  를 눌러 INSERT 모드로 전환

     

    텍스트를 입력 후 Esc 를 누르면 다시 COMMAND 모드로 전환된다.

     

     :wq 를 입력하면 저장 후 vim 을 종료한다.

    app.txt 생성

     

     

    수정한 텍스트가 없어서 vim 만 종료하고 싶다면 :q  입력하면 된다.

    파일을 수정 중 저장하지 않고 종료하려면  :q!  를 입력하여 강제 종료하면 된다.

     

     

    파일을 수정 중 비정상 종료 되었을 때

    기존 app.txt 파일을 열어서 텍스트를 일부 수정 중 터미널 창을 새로고침하여 다시 접속 한 뒤 vim 으로 app.txt 를 열어보자.

     

     

    s아래와 같은 메시지가 뜬다

    수정 중 비정상 종료시 메시지

    • (R)ecover : r 버튼을 누르고 Enter 를 누르면 이전에 편집한 내용을 복구한 뒤, 이어서 파일을 수정할 수 있다.
    • (D)elete it : d 버튼을 누르면 이전에 편집한 내용을 복구하지 않고, 기존 파일에서 수정할 수 있게 된다.
    • (Q)uit : q 버튼을 누르면 아무 작업도 하지 않고 그냥 vim 을 종료한다.

    하지만 이 메시지를 다시 띄우지 않도록 하려면  .swp  라는 확장자를 가진 파일을 지워줘야 한다.
    이 파일은 vim 에서 편집 중이던 작업 내용을 임시 저장해서 비정상 종료 시 복구할 수 있도록 한다.

     

    vim 으로 파일을 다시 수정 후  .swp  파일을 지워주도록 한다.  .swp  파일은 숨김 파일이므로  ls -a  로 조회해야 한다.

    .swp 파일 삭제

     

     

    이 외의 vim 명령어는 아래의 링크를 통해 필요할 때마다 알아보자.

     

    Vim Cheat Sheet

    Tip 특정 범위를 지정하기 위해 다음과 같은 문자들을 사용할 수 있습니다. e.g. :.,$d - 현재 행 부터 끝까지 :.,1d - 현재 행 부터 처음까지 :10,1d - 10 번째 행 부터 처음까지

    vim.rtorr.com

     

     


     

    파일에 작성된 내용 보기 ( vim, cat )

    파일에 작성된 내용 보는 방법

    1.  vim  활용 : vim 으로 해당 파일을 열어 작성된 내용을 확인한다. 특히 텍스트의 양이 많은 파일을 볼 때 vim 을 활용한다.
    2.  cat  명령어 활용 :  cat  명령어는 파일 내용을 출력한다. 텍스트의 양이 적은 파일을 확인할 때 사용한다.

     

    텍스트 양이 많은 파일을 읽을 때, 자주 사용하는 편의 기능 (vim)

    1. 파일 내용의 맨 끝을 보고 싶은 경우
      • Command 모드에서  G ( Shift + g ) 입력하기
    2. 파일의 내용의 맨 처음을 보고 싶을 경우
      • Command 모드에서  gg  입력하기
    3. 한 페이지씩 스크롤 내리기
      • Command 모드에서  Ctrl + f  입력하기 (forward)
    4. 한 페이지씩 스크롤 올리기
      • Command 모드에서  Ctrl + b  입력하기 (bacckward) 

     

     

    + Recent posts