Linux

InSeok·2022년 7월 1일
0

TIL

목록 보기
5/51

학습목표


  • 리눅스 터미널 실행및 기본적인 명령어 사용
  • 절대경로와 상대경로의 차이
  • 텍스트에디터 nano를 이용한 파일 수정및 저장
  • 패키지와 apt 패키지 매니저
  • 사용 권한과 소유자, 사용권한 변경

배운 내용


  • Input source : 입력을 담당하는 키보드나 마우스를 입력 소스

  • Output source : 작성된 프로그램에 의해 시각적 출력을 담당하는 모니터나 청각적 출력을 담당하는 스피커를 출력 소스

  • I/O(Input/Output) : 컴퓨터를 조작하기 위한 입력과 출력

  • CLI를 이용해 서버 컴퓨터로 접속을 요청하면, 서버 컴퓨터는 요청한 컴퓨터의 출력 소스(모니터)를 이용 → 개발자들은 서버 컴퓨터에 직접 찾아갈 필요 없이, 자신의 모니터로 서버 컴퓨터와 소통

  • 대부분의 서버 컴퓨터는 무료로 이용할 수 있는 Linux 운영체제가 설치되어있다.

  • 컴퓨터를 조작하기 위한 입력과 출력

  • 리눅스 기본 명령어

    • pwd(print working directory): 현재 위치를 확인하는 명령어

    • mkdir(make directories): 새로운 폴더를 생성하는 명령어

    • ls(list): 특정폴더의 하위 폴더나 파일의 목록을 출력하는 명령어

      • ls -l : 폴더나 파일의 포맷, 소유권한 전부 표현
        • 가장왼쪽에 출력되는 글자중 d는 디렉토리, -로 출력되는 경우 파일의미
      • ls -a : (all) 숨어있는 폴더나 파일을 포함한 모든항목 출력
    • open (macOS): 현재 폴더를 파일 탐색기로 여는 명령어

    • cd(change directory): 폴더에 진입하는 명령어, 파일 진입 X

    • touch: 새로운 파일을 생성하는 명령어

    • cat: 파일의 내용을 터미널에 출력하는 명령어

    • rm: 폴더나 파일을 삭제하는 명령어

      • rm은 단일 파일만 삭제 가능
      • r(디렉토리 삭제), f(강제) 옵션 사용하여 폴더 삭제가능
        • rm -rf 폴더명
    • mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어

      • 이동 : mv + [폴더나 파일의 이름][도착 폴더의 이름]
      • 이름 변경 : mv + [변경할 폴더/파일 이름][변경하고자하는 파일이름]
    • cp(copy): 폴더나 파일을 복사하는 명령어

      • cp [원본파일][복사할 파일 이름 혹은 경로]
    • sudo: 임시로 관리자 권한 가져옴

    • chmod : 폴더나 파일의 읽기, 쓰기, 실행 권한 변경 가능

      Access classOperatorAccess Type
      u(user)+ (add access)r(read)
      g(group)- (remove access)w (write)
      o(other= (set exact access)x (execute)
      a (all)
    • ex) chmod g-r filename : 그룹의 읽기 권한 삭제

      • chmod o=rw filename : other 읽기쓰기 권한 부여
      • chmod a= filename: 모두 권한삭제
    • 8진수 표기

    • read: 4 / Write 2 / Execute 1

      • ex) chmod 744 filename : -rwxr—r—
    • head +옵션(-n lines) + 파일명 시작부터

    • tail + 옵션(-n lines) + 파일명 끝부터

    • more + 옵션 + 파일명

      • 옵션 : -n → n에 입력한 값만큼 끊어서 화면에 출력
        • n : n에 입력한 행부터 화면에 출력
      • enter 한줄 씩 ,spacebar 한 화면씩 출력
    • less + 파일명

      • 한번에 보여지는 만큼만 출력
    • : 실행결과를 파일로 저장

    • ex) ls > ls.txt 입력시 ls 명령어의 실행결과가 ls.txt파일에 저장

    • 응용 : echo 이메일주소 > ls.txt → 이메일 주소를 화면에 출력하는 대신 ls.txt파일에 저장

    • echo : echo명령어 뒤의 내용을 화면에 출력

    • 명령어 -h or - -help : 각 명령어에 포함된 옵션 확인 가능

    • whoami : 현재 로그인된 사용자 확인

    • grep : text를 찾는 커맨드

      • grep “root” /etc/passwd
      • 경로에서 root라는 글자를 찾아!
  • 디렉토리 = 폴더

  • 명려여어 옵션 -r 과 -f

    • r(recursive) 재귀 : 특정행동을 순환적으로 반복
    • f(force) 강제 : 어떤행위 강제로 집행
  • CLI에서는 명령어와 폴더의 이름을 공백(space)로 구분

  • 특정 명령어의 옵션을 사용하는 경우에는 -를 이용해 옵션을 입력

  • 옵션을 뜻하는 대쉬(dash, -) 뒤에 오는 옵션의 순서는 기능에 영향 X

  • 폴더 또는 파일의 이름에 공백(띄어쓰기)이나 특수문자가 있으면, 백슬래시(\)를 이용해 적용

  • 디렉토리 키워드

    • /: 루트 디렉토리
    • ~: 홈 디렉토리
  • 터미널(CLI Command-Line-Interface)

  • 프롬프트(Prompt) : CLI의 명령줄 대기모드를 가리키는 것으로써, 터미널 화면에서 글자가 입력되는 한 줄의 공간

  • GUI와 CLI는 하나의 컴퓨터를 동일하게 조작하지만, 보이는 모습만에 차이가 있다.

  • CLI로 생성한 폴더나 파일은 GUI로 확인할 수 있고, GUI로 작업한 내용도 CLI에서 확인가능

  • 사용자는 폴더의 형태로 존재, 사용자 권한은 [username] 폴더 내에서만 자유롭게 사용가능

  • 사용자 폴더의 경로(Path)는 ~/로 표시

  • 컴퓨터가 파일을 옮기는 방법

  1. 파일의 내용을 잠시 저장한다.
  2. 원래 위치의 파일을 삭제한다.
  3. 도착 폴더에 1에서 저장한 내용으로 새로운 파일을 생성
  • 폴더나 파일의 이름의 내용과 위치가 같고, 이름만 다른 경우 폴더나 파일을 삭제하고 새롭게 작성하는 대신, 폴더나 파일의 이름만 변경합니다.

  • 컴퓨터가 파일을 옮기는 방법

    1. 파일의 내용을 잠시 저장한다.
    2. 도착 폴더에 1에서 저장한 내용으로 새로운 파일을 생성한다.
  • 공격자가 좋지 않은 의도로 작성한 코드는, 사용자가 입력하는 내용을 공격자에게 전달하도록 작성되어 있습니다. 이렇게 좋지 않은 의도로 작성된 코드를 악성코드(Malicious Code)라고

  • 둘 이상의 프로그램이 충돌을 일으키면 블루 스크린이 나타납니다

  • 두 프로그램이 하나의 시스템(운영체제)을 놓고 다투는 과정을 프로그램 충돌(Conflict)

  • 과거의 윈도우에서는 예상치 못한 프로그램의 충돌로 인해 시스템이 마비될 때, 컴퓨터가 화면에 블루 스크린을 출력

  • 사용자 계정 컨트롤(UAC, User Account Control)은 시스템을 관리하는 관리자와, 일상적으로 PC를 사용하는 사용자를 구분

    • 사용자가 모르는 사이에 시스템 설정을 변경하는 악성코드가 실행될 때, 접근 권한을 막아 사용자를 보호
  • 관리자는 프로그램을 설치하거나 변경 또는 삭제하는 권한을 가지고 있고, 사용자는 프로그램을 실행할 수 있지만, 변경할 수 없도록 제한된 권한을 가지고 있습니다.

텍스트에디터 nano

  • nano 파일명 (파일명 없이 실행가능)
  • 나가기 : Ctrl + X
  • 파일열기 : Ctrl + R
  • 파일 저장 : Ctrl + O

절대경로 상대경로

  • 절대경로 : 기준점으로 부터의 절대적인 위치
    • 기준점 : 루트폴더( / ) → Linux 관리자 영역
  • 상대경로 : 특정 폴더나 파일 위치를 현재 위치를 기준으로 나타냄
    • 현재위치한 폴더 : .
    • 상위폴더 : ..
    • 폴더 내부 : /
    • ex) ./hi : 현재 폴더 내부의 hi 폴더

패키지와 패키지 매니저

  • 패키지: 여러 파일을 모아 하나의 파일로 저장하고 있는 압축파일
  • 패키지 구성
    • 프로그램 파일
    • 프로그램 설치 파일
    • 프로그램 설치 설명서
    • 프로그램에 대한 정보를 담은 파일
  • 패키지 매니저는 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구
    • 모든 패키지의 저장소 위치를 저장하고 있음
    • 설치된 모든 프로그램의 업데이트를 확인하거나, 필요 없는 프로그램을 제거하는 데에도 사용
    • apt 명령어
      • 패키지 목록 갱신: apt update(관리자 권한 필요)
        • 패키지를 다운로드할 수 있는 여러 저장소의 최신 정보를 업데이트
        • 새로운 저장소를 추가하거나, 패키지를 설치하기 전, 최신 정보를 갱신
        • 설치된 프로그램이 새로운 버전으로 변경되지 않음
      • 업그레이드 가능한 패키지 목록을 출력: apt list -—upgradable
      • 전체 패키지 업그레이드(버전 업): apt upgrade (관리자 권한 필요)
      • 특정 패키지만 업그레이드(버전 업): apt --only-upgrade install 패키지 이름 (관리자 권한 필요)
      • 패키지 설치: apt install 패키지 이름 (관리자 권한 필요)
      • 설치된 패키지 보기: apt list --installed
      • 패키지 검색: apt search 검색어
      • 패키지 정보 확인: apt show 패키지 이름
      • 패키지 삭제: apt remove 패키지 이름 (관리자 권한 필요)
  • wget : URL을 통해 파일을 다운로드하는 프로그램
  • 복사: (Ubuntu) Ctrl + Shift + C
  • 붙여넣기: (Ubuntu) Ctrl + Shift + V

  • 첫단어 - / d : 파일이면 - , 폴더면 d
  • 그다음 사용자별로 3칸씩 권한 분류, 8진수로도 나타낼수 있다.
    • 소유자 그룹___다른 사용자 그룹
    1. r (read) : 읽기
    2. w (write) : 쓰기(저장)
    3. x (execute) : 실행

환경 변수

  • 환경변수 : : 프로그램의 동작에 영향을 미치는 값
  • 환경변수 설정을 통해 프로그램이 동작하는 환경 설정 가능

환경변수 임시적용

  • 지역환경변수 : 환경변수를 생성한 특정사용자만 사용가능
    • ex) role=backend → 등호앞뒤에는 공백이 없어야한다. 공백이 있을 경우 값 전체를 따옴표로 감싸주어야한다.
  • 전역 환경 변수 : 모든 사용자가 사용할 수 있는 환경변수
    • export : 새로운 환경 변수 추가
      • ex) export backend=developer
  • echo $변수명 : 환경변수의 값 확인

환경변수 영구 적용

  • 환경변수를 영구적으로 적용하면 터미널을 닫거나 재부팅해도 환경변수가 사라지지 않는다.
  • 지역 환경변수 영구 적용
    • nano .bashrc로 들어가 Alt + / 입력후 맨아래로 내려가서 환경변수 작성하고 저장
    • source .bashrc 입력후 echo $변수명으로 값출력
  • 전역 환경변수 영구 적용
    • 변경하고자 하는 파일 권한 write 있어야한다.
    • nano 파일경로로 들어가서 변수값 저장

어려운 내용(에러)


문제

해결

profile
백엔드 개발자

0개의 댓글