linux & terminal

2022. 4. 7. 18:37
  • 목차
    • 운영체제
    • 리눅스
    • 리눅스 핵심개념
    • 터미널 명령어
    • Quiz

1. 운영체제(OS)

  • 컴퓨터를 사용하게 해주는 프로그램
    • 0,1밖에 모르는 컴퓨터를 , 사용자가 편하게 사용할 수 있도록 중간에서 도움을 주는 프로그램
  • ex)window,macos,linux

  • 사용자의 명령(코딩)은 터미널(쉘) > 커널 > 하드웨어 순으로 전달된다
    • 터미널에서 실행되는 프로그램이 '쉘'임. 쉘은 사용자 입장에서 명령을 내리는 곳이라고 보면 됨
    • 쉘의 종류 : zsh(맥북)...
    • 커널 : 하드웨어에 직접적으로 명령을 전달하는 곳

 

  • 리눅스를 쓰는 이유
    • 오픈소스 > 누구나 자유롭게 사용가능 + 자유로운 커마 및 배포도 가능
    • 멀티테스킹 및 멀티스레드 > 여러명이 동시접속해도 동시작업이 가능
    • 서버쪽은 99%이상이 리눅스

 

  • 리눅스의 종류
    • 우분투 , centos , android
    • 사용방법에 따라도 CLI와 GUI로 나눌 수 있음
      • CLI : 터미널. 까만환경에 하얀 글
      • GUI : 흔히 쓰는 노트북과 비슷
      • GUI가 더 편하긴 하지만, 결국 서버관리의 영역에서는 CLI를 사용해야 한다.
      • 또한 CLI는 GUI에서 할 수 있는 걸 모든 걸 할 수 있으나, 반대로 GUI가 CLI의 모든 걸 하지는 못한다.

 

리눅스의 핵심개념

  • 리눅스의 파일 구조

  • root : 최상위 경로. 모든 리눅스는 여기서부터 시작됨
    • '/' 로 표시할 수 있음. 즉 리눅스에서 시작되는 경로는 모두 '/'로 시작되는데 이게 root로부터 시작한다는 뜻임
  • home : 윈도우로 치면 c드라이브와 같은 유저의 공간. 다른 위치로 자유롭게 이동할 수 있음
    • '~'로 접근이 가능
    • 터미널을 처음 켰을 때 위치가 보통 home임
  • bin : linux가 실행될 때 필요한 기본적인 명령어들이 저장되어 있음
  • usr : 배포판을 위한 설정이 담겨져 있음.

 

리눅스의 경로

  • 리눅스는 반드시 경로에 대한 정보를 가지고 작업을 진행함
    • 절대경로 : 최상위 경로로부터 시작됨 ex) /home/eun/bin.. 
    • 상대경로 : 현재 내가 있는 위치로부터 시작됨 ex) cd ..
      • .은 현재경로, ..는 상위경로

 

환경변수

  • os가 구동되는데 필요한 변수
  • 터미널에 env라고 치면 현재 os에 구동되고 있는 환경변수들을 볼 수 있음
  • 환경변수 예시
    • path : 여기에 경로를 담아두면 , 그 경로까지 직접가지 않아도 명령어를 실행시킬 수 있음 ex) os가 구동될때 필요한 bin명령어를 여기에 담아두면 , bin폴더까지 가지 않아도 됨
    • home : home디렉토리의 경로
    • 그외에도, 비밀번호 같은 것들을 환경변수에 담아둠. 코드에 실제로 담아두면 바로 털릴 수 있으니까, 프로그램으로 하여금 환경변수에 접근해서 비밀번호를 얻을 수 있도록 함

 

Config파일(dot 파일)

  • 리눅스에서는 주로 파일을 통하여 설정
  • .으로 시작되는 파일을 dot파일이라고 하며, 이는 숨김파일로 간주함
  • ex) .zshrc

 

터미널 명령어

  • pwd(print working diectory) : 현재 내가 있는 위치를 출력
  • ~ : home directory로 이동. 근데 만약 안되면(버전마다 다를 수 있음) 'cd ~' 와 같이 하면 됨
  • cd : 경로이동. 뒤에 절대경로든 상대경로든 뭐든 ㄱㅊ
    • cd ..
    • cd / : 루트로 이동
    • cd ~ : home으로 이동
  • ls : 현재 내 위치에 있는 파일 목록 출력
    • ls + 경로 : 해당 경로에 있는 파일목록
  • mkdir (현재 경로에)디렉토리 폴더 생성
    • cd로 특정경로로 이동한 후, 'mkdir (이름)'으로 생성
  • touch : 파일 생성
    • touch test.md
  • vi/vim : 파일을 편집할 수 있는 에디터를 활성화
    • vi : 리눅스에서 제공하는 파일 편집기
    • vi + 파일명,경로. 이때 만약에 , 없는 파일명or경로로 가면 새로 파일이 생성되면서 편집기가 열림(q!로 나가면 그냥 파일 사라지면서 나가짐)
      • 입력하면 편집화면으로 바뀌는데, 'i'를 누르면 편집을 시작할 수 있음. 편집이 끝나면 'esc'로 종료
      • 작업이 끝나면 저장해야함 >> ':w + enter '
      • 다시 원래 있던 터미널로 >> :q
      • 저장과 동시에 나가려면 wq
      • 그냥 저장안하고 강제로 나가려면 !q
  • cp : 복사
    • cp + 복사하려는 파일(경로+파일) + 복사한 파일을 넣을 경로
  • rm : 파일 삭제
    • rm + 삭제하려는 파일(경로+파일)
  • mv : 파일 이동 / 파일 이름 변경
    • mv + 이동하려는 파일 + 이동시킬 경로
    • mv + 바꾸려는 파일이름 + 변경시킬 파일 이름
      • 바꿀 파일이름이 현재 위치에 없을 경우에만 적용됨
  • rm-r : 디렉토리 삭제
    • 그냥 rm만으로는 directory를 지울 수 없다(경고가 뜸)
    • rm-r + 지우려는 디렉토리
    • rm-rf * : f는 강제, *는 모든것 . 즉 현재 위치에서 이걸쓰면 모든게 경고도 없이 다 날라감