[쿠버네티스 2주차] 리눅스 기본 문법

신현식·2023년 1월 1일
0

구름_Linux

목록 보기
3/22
post-thumbnail

리눅스 특징

리눅스(Linux)는 컴퓨터 운영체제의 한 종류이자 커널 자체를 의미한다. 리눅스(Linux)는 무료 오픈소스 운영체제로, 완전 무료 정책이기 때문에 그 어떠한 금액도 필요로 하지 않는다. 웹서버로 리눅스를 사용하는 가장 큰 이유이다. 서버 위에 그려지는 프로그램 또는 플랫폼 등을 이용하는 사용자에게는 보여지지 않는 부분이 되면서, 개발자 사용자 모두에게 친숙한 GUI(Grapical User Interface)가 아닌 CLI(Command-Line Interface) 방식으로 정착하게 되었다. 아무래도 서버에게 중요한 건 속도이다보니, GUI를 써봤자 무겁고 속도저하를 일으킬 요인일 뿐이라는 것이다.

📌 Linux 구조

리눅스는 크게 커널, 셸, 디렉토리로 3가지로 구성되어 있다.

  • 커널(kernel)
    커널은 운영체제의 핵심으로 메모리관리, 프로세스 관리, 장치 관리등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행한다.

  • 셸(shell)
    사용자가 입력한 문장을 읽어 요청을 실행하며 커널이 명령어를 해석해 결과를 수행한 후 결과를 다른 프로그램이나 커널로 전송한다.
    즉 사용자와 커널의 중간다리 역할을 수행한다. 리눅스는 bash셸을 기본으로 사용한다.

  • 디렉터리
    파일을 가지고 있거나 또 다른 디렉터리를 가지고 있는 그룹을 의미하며 파일 시스템에 의해 관리되고 있다.

🎈 디렉터리 계층 구조

  • 리눅스에서 효율적으로 관린하기 위해 디렉터리를 트리구조로 계층적으로 구성하였다. 모든 디렉터리의 출발점은 루트(/)디렉터리이다.
  • 실습에서 home, usr, etc, tmp, var 등을 주로 사용하였다.

📌 디렉터리 종류 및 경로

작업 디렉터리

  • 현재 사용중인 디렉터리를 작업 디렉터리 or 현재 디렉터리라고 한다.
  • 현재 디렉터리는 ' . ' 기호로 표시한다.
  • 현재 디렉터리의 위치는 pwd 명령으로 확인가능하다.

홈 디렉터리

  • 각 사용자에게 할당된 디렉터리로 처음 사용자 계정을 만들때 지정된다.
  • 사용자는 자신의 홈 디렉터리 아래에 파일이나 서브 디렉터리를 생성하며 작업가능하다.
  • 홈 디렉터리는 ' ~ '기호로 표시한다. ex) ~user1

절대경로(Absolute Path)

  • 항상 root(/) 디렉토리부터 시작하는 경로를 뜻한다.
  • 현재 나의 위치와 상관없이 항상 정확한 경로 전달한다.
  • 특정 위치를 가리키는 절대 경로명은 항상 동일하다.

상대경로(Relative Path)

  • 이름 그대로 상대적인 경로를 의미하며 루트(/) 이외의 문자로 시작한다.
  • 현재 내 위치인 디렉터리를 기준으로 서브 디렉터리로 내려가면 그냥 서브 디렉터리명을 추가한다.
  • " . 과 .. " 이 두가지 심볼이 중요하다. 현재 디렉터리를 기준으로 .는 현재 디렉토리를, 상위 디렉터리로 가려면 ..를 추가한다.
  • 상대경로명은 현재 디렉터리가 어디냐에 따라 달라진다.

리눅스 기본 명령어 - 디렉터리

clear

  • 셸 화면을 깨끗하게 만들어 준다.

현재 디렉터리 확인하기

cd

  • 지정한 디렉터리로 이동한다.
  • 절대경로 및 상대경로 둘다 가능하다.

위는 /부터 시작하여 절대경로명을 사용해 home 디렉터리로 이동한 것이고 밑은 현재 usr/lib 디렉터리에 있음으로 이를 기준으로 상대경로명을 사용하여 home 디렉터리로 이동한 것이다. 홈 디렉터리를 나타내는 기호인 ~를 사용하여 홈 디렉터리로 이동할 수 있다.

pwd

  • 현재 디렉터리의 절대경로를 출력한다.

ls

  • 디렉터리의 내용을 출력한다.

    주요 옵션
    ls -al(ll도 가능): 숨겨진 파일까지 모두 포함하여 모든 파일의 상세내용 확인
    ls -a: 숨긴 파일 확인
    ls -l 파일 : 숨겨진 파일을 제외한 파일의 상세내용 확인

    ls -F : 파일의 종류 표시
    (/:디렉터리, @: 심벌릭 링크(원본 파일을 대신하여 다른 이름으로 파일명을 지정한 것, 윈도의 바로가기와 비슷함)
    *: 실행파일(바이너리 형태로 데이터가 저장되어 있음) 표시없음: 일반파일(각종 텍스트 차일, 실행파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일))

    ls -dl 디렉터리명 : 디렉토리 자체의 자세한 정보를 확인

    ls -l 디렉터리 경로(/tmp) : 지정한 디렉터리의 내용 출력

    ls --help: 사용가능한 옵션을 보여준다.

디렉터리 생성 & 제거

mkdir

  • 디렉터리를 생성한다. 디렉터리는 한개 or 여러개씩 만들 수 있다.
    또한 -p 옵션을 사용하면 디렉터리명으로 지정한 경로 중 중간단계의 디렉터리가 없을 경우 자동으로 중간 단계 디렉터리를 생성한 후 최종 디렉터리를 생성한다.

rmdir

  • 디렉터리를 삭제한다. 디렉터리가 비어있지 않으면 그 디렉터리는 삭제 불가능하다. 또한 -p 옵션을 사용하면 지정한 디렉터리를 삭제하며, 그 디렉터리의 부모 디렉터리가 빈 디렉터리일 겨우 부모 디렉터리도 자동으로 삭제한다. rm -r를 더 자주 사용한다.

리눅스 기본 명령어 - 파일

파일내용 출력

cat

  • 파일의 내용을 출력한다. -n 옵션을 사용하면 행번호를 붙여서 출력한다.

more

  • 파일 내용을 화면 단위로 출력한다. 아직 출력되지 않은 내용이 더 있으면 화면 하단에 남은 파일 %가 표시된다. (space bar: 다음 화면 출력, enter: 한 줄씩 스크롤, /문자열: 해당 문자열 검색, q: 종료 , ctrl+c: 강제 종료)

less

  • 파일 내용을 화면단위로 출력한다. 또한 스크롤이 되어 지나간 내용도 확인 가능하다. 방향키가 없다면 hjkl로 이동이 가능하다.

stat 파일명

  • 파일의 구체적인 정보를 알 수 있다. 접근시간, 수정시간 등

파일 복사

cp

  • 파일이나 디렉터리를 복사한다.

  • /etc/hosts 파일을 현재 디렉터리에 text1 파일로 복사함

  • 왼쪽에서 오른쪽으로 복사, 오른쪽이 디렉터리면 디렉터리 안에다 복사

  • 파일을 해당 디렉터리 아래에 복사(t 디렉터리에 text1 파일 복사)

  • 원본 파일과 다른 이름으로 복사

  • 여러개의 파일을 지정가능하며 마지막 인자는 반드시 디렉터리여야함, 이 경우 마지막에 지정한 디렉터리로 앞서 지정한 파일들을 모두 복사됨

  • -r옵션을 이용하며 첫번째와 두번째 인자에 모두 디렉터리를 지정하면 원본 디렉터리 아래에 있던 모든 내용도 함께 복사됨

mv

  • 디렉터리를 이동하거나 디레터리명을 바꿀때 사용한다. mv의 첫번째 인자는 원본 파일명이나 디렉터리명을 지정, 두번째 인자는 목적지 파일명이나 디렉터리명을 지정한다.
  • 파일명 | 파일명: 원본파일의 파일명을 다른 파일명으로 바꿈
  • 파일명 | 디렉터리명: 원본 파일을 지정한 디렉터리로 이동
  • 파일명 | 디렉터리/파일명: 파일이 지정한 디렉터리로 이동하면 파일명도 바뀜
  • 명령어를 사용한 위치로 여러 파일을 가져올 수 있다. 마지막 인자는 디렉터리여야 함
  • 디렉터리 | 디렉터리: 디렉터리가 이동, 두번째 인자가 기존에 있던 디렉터리가 아닐 경우에는 디렉터리 명이 변경됨, 기존에 있는 디렉터리인 경우 원본 디렉터리가 두번째 인자로 지정된 디렉터리 아래로 이동함

    ex)-> mv ./drama ../sbs/action

파일 삭제

rm

  • 파일을 삭제한다. -r 옵션을 이용해 디렉터리를 삭제할 수 있다.

    rm -rf: 디렉터리도 물어보지도 않고 삭제하는 강력한 삭제 명령어, 편리한 명령어지만 실수하면 운영체제에 심각한 피해가 발생한다.

파일 링크

기존에 있는 파일에 새로운 파일명을 붙이는 것을 의미한다. 심벌릭 링크는 원본 파일을 가리키는 새로운 파일을 생성한다. 리눅스 파일은 파일명 + inode + 데이터 블록으로 형성되어 이는데 inode는 파일에 대한 정보를 가지 구조체로 ls -i로 확인 가능하다. 파일 이름이 다르지만 inode가 같다면 같은 파일이다.

ln

  • 파일의 링크를 생성한다.

💡 심벌링 링크 특징(ln -s)

  • 파일의 종류가 l(소문자L)로 표시됨
  • 하드링크의 개수가 하나, 즉 원본파일에 이름을 추가하는 것이 아니다.
  • 파일 이름 뒤에 원본 파일의 이름이 표시된다.(->data1)
  • inode 번호가 원본 파일과 다름, 즉 원본 파일과 심벌릭 링크 파일은 별개의 파일이다.
  • 원본 파일이 삭제되면 심벌릭 링크로 연결할 수 없다.
  • 내용을 출력하면 원본 파일의 내용이 출력된다.

파일 생성

touch 파일명

  • 빈 파일을 생성하거나 수정시간을 변경한다.
  • 파일 크기가 0인 것과 현재 생성 시간을 알 수 있다.
  • 파일의 수정시간이 현재시간으로 변경된 것을 볼 수 있다.

파일 검색

grep 문자열 파일명

  • 지정한 패턴이 포함된 행을 찾는다.
    grep -i 찾는단어 경로: 대소문자 관계없이 단어가 포함된 행을 찾음
    grep -v: 찾는 단어가 없는 행을 모두 출력
    grep -r: 하위 디렉터리까지 모두 포함하여 검색

find

  • 지정한 위치에서 조건에 맞는 파일을 찾는다.
    find -name: 이름을 조건으로 검색
    find -user: 소유자를 조건으로 검색
    find [경로][검색조건] [동작]
  • -exec 명령어 {} \; 검색된 파일에 바로 명령어를 실행
    ex) find /tmp -user user1 -exec rm {} \; -> find 명령어로 찾은 파일의 절대경로가 {}가 있는 위치에 삽입되어 명령이 처리됨
  • -ok 명령어 {} \; 사용자와의 상호대화를 통해서 명령어 실행
    find 명령으로 검색한 파일을 삭제하기 전에 하나씩 확인하고 싶다면 이 명령어 사용
profile
전공 소개

0개의 댓글