본문 바로가기

Linux

Linux 개념

- Linux 는 무료 오픈소스 운영체제라서 IoT 시대의 OS에 가장 적합

 

-  Tab 누르면 파일 이름 자동완성

 

-  상대경로 : 현재 디렉토리에 따라 결과가 달라짐

Ex) cd . . >> 여기서 ..은 현재 디렉토리의 부모 디렉토리를 의미

-  절대경로 : 어디에 있건간에 그 주소가 맞음

Ex) cd /home/ubuntu

 

-  Man 명령어 입력 후에 무언가를 찾고 싶을 때는 '/'를 치면 검색 기능 가능

검색하고 검색어 순서대로 보고 싶으면 'n'을 눌러주면 된다.

나갈때는 'q'

 

-  명령어 option에서 '-'는 축약형을 의미, '--'는 풀네임을 의미

 

-  리눅스/유닉스에서 숨김파일은 앞에 . 이 붙는다.

 

-  Sort : 파일 정렬을 의미

 

-  Super user = root user

 

-  Package = application, app, program을 의미

Ex) ls, mkdir

 

-  Package manager는 아이폰에서 app store와 같은 역할을 한다.

Ex) homebrew, apt

 

-  Git : 버전 관리 시스템, 오픈소스가 아주 많음.

 

-  Pipeline : 한 개 명령의 실행결과를 다른 명령의 입력으로 주고,

하나의 프로그램의 결과를 다른 프로그램의 입력으로 주고,

하나의 프로세스의 출력을 다른 프로세스의 입력으로 주는 것

 

-  | : 파이프라고 함

 

-  IO Redirection : 원래 출력 결과는 화면이어야하는데, 파일 내용 안에 저장해서 출력하는 것

(명령어 : '>' == '1>') > 방향을 바꿀 수 있다는 의미

 

-  프로그램 : 컴퓨터에 저장되어있는 것

-  프로세스 : 실행되어있는 상태의 프로그램

 

-  Stream : input과 output이 흘러들어서 나가는 것

 

-  Kernel VS Shell

  • Kernel : hardware를 직접적으로 제어
  • Shell : 사람이 입력하여 이 명령어를 kernel이 이해할 수 있는 방식으로 변경해서 kernel 에 전달
    (shell 쉘의 경우에는 다양한 종류가 있어서 선택 가능)

-  Zsh(지셸) VS bash

  • Zsh : bash가 가지고 있지 않은 기능을 가짐
  • Bash : 기본적으로 탑재

-  Built-in command : cd / ls 이런 정해진 명령어

 

-  쉘 script : 배우들이 어떤 순서대로 움직여야 하는지 적혀있는 것처럼 순차적으로 실행되어야 하는 세트를 적어놓은 것

 

* : 와일드카드로서 모든 것을 의미

 

/bin 에는 기본 명령어들이 존재

Ex) echo, bash 등

 

#! /bin/bash : bin 밑에 있는 bash라는 프로그램에 의해 해석이 되어야 함을 의미

 

X : executable 실행가능한

 

/bin : User binaries=컴퓨터에서 실행가능한 프로그램(실행프로그램)을 의미

즉, 사용자들이 사용하는 명령어들이 존재

 

/sbin : system binaries

Ex) reboot

 

/etc : configuration files

Ex) wget

 

/var : variable files 내용이 바뀔 수 있는 특성 존재

Ex) log들

 

/tmp : 임시파일들이 저장 (껐다키면 사라짐)

 

/home : 사용자들의 디렉토리(/home/leeyounhyung)

 

/usr : 내가 설치하는 프로그램들은 대체로 여기로 저장됨

 

-  Storage / Memory(RAM) / Processor(CPU)

Storage에 실행되지 않은 프로그램이 있고, 프로그램을 실행시키면 Memory에 올라오게 됨. Memory에 적재가 된 프로그램을 CPU가 읽어서 처리하게 됨

  • Program : Mkdir, rm같은 command들은 /bin이나 /sbin (storage) 에 저장되어있는 파일
  • Process : Memory에 저장되어 실행되고 있는 프로그램
  • Processor : 그 Process를 처리하는 것

-  환경변수 $PATH에는 여러가지 주소들이 저장되어있음. 이 주소들을 순서대로 가면서 원하는 파일을 찾아줌

 

-  Daemon : 항상 실행되고 있음

Ex) Server

 

- server - client(컴퓨터)

 

-  부팅시 자동으로 프로그램 실행하고 싶다면 아래의 디렉토리에 링크를 걸면 됨

  • CLI 방식 > /etc/rc3.d
  • GUI방식 > /etc/rc5.d

-  cron : 정기적으로 명령을 실행시켜주는 도구

Ex) 정기적으로 백업, 정기적으로 이메일보냄

 

-  일반user/super user 차이

  • Sudo : super user가 하는 일

-  리눅스에서 permission은 file과 디렉토리에 대한 할 수 있게하거나 할 수 없게 하는 권한을 의미

>> 권한 : Read/ Write / Execute

 

-  리눅스 권한 위치 : - / 사용자(user) / 그룹(group) / 다른사용자(other)

(파일-,디렉토리d 구분)

 

-  숫자를 사용하면 권한 한꺼번에 변경 가능

Ex) chmod 111 perm.txt

IP address는 inet 뒤에 나옴

 

-  Localhost = 127.0.0.1 은 동일한 것이고, localhost는 자기 자신을 가리키는 주소

 

-  Web browser가 요청한 인터넷 주소는 web server에 가게 되고, web server는 /etc/apache2(만약 apache를 사용한다면)의 설정파일들로부터 정보를 가져오게 됨. 그 설정 파일에는 웹 서버에 대한 html 문법이 들어있어서 그걸 띄움. 그걸 response로 줘서 web browser에서 그 내용을 띄움

 

-  Document Root : Web page를 찾는 최상위 디렉토리를 의미 (변경 가능)

 

-  서버쪽에서 문제 해결의 핵심을 log가 어디있는지 찾고, log를 확인하는 것

 

-  SSH : 원격제어를 가능하게 함

 

-  Ssh 서버는 설치해야하는데 요즘에는 대부분 설치되어 나옴.

설치방법) openssh-server을 설치해야함.

명령어) sudo apt-get install openssh-server sudo serveice ssh start

 

-  Ssh 원격을 사용해서 접속할 때도 server-client 개념이 들어감.

 

-  Port : web - 22 / port - 80

 

-  Well-known port : 0~1024번 포트까지

 

-  1024~65000번 포트 > 아무거나 써도 가능

 

-  ISP : Internet Service Provider ex) KT

 

-  공유기가 라우터다.

 

-  포트포워딩 : 공유기(라우터)에 있는 포트를 사용하여 서버 외부에 있는 사용자가 공유기에 접 속한 특정 기기에 접속할 수있도록 연결해주는 것

 

-  Defualt gateway : router의 IP 주소

명령어) ip route 치면 default via 뒤에 나오는 것

 

-  DNS : Domain Name Server

 

-  Host : 인터넷에 참여하고 있는 각각의 컴퓨터 한 대 한 대를 의미

-  Host들이 모여있는 것 > network > network들이 모여있는 것 > internet

 

-  Rsync(remote sync) : 원격으로 서로 독립되어 있는 애들끼리 동기화하는 것 (copy, backup에 유리)

-  Sync : 동기화하다

-  Rsync : 증분적으로 백업해서 굉장히 효율적임

 

-  공개키, 비공개키를 이용해서 자동으로 로그인을 하면 원격으로 cron이나 rsync와 같은 업데 이트를 할 수 있음

 

-  명령어 연결어

  • ; 앞의 명령어가 실패해도 다음 명령어 실행
  • && 앞의 명령어가 성공했을때 다음 명령어 실행
  • & 앞의 명령어를 백그라운드로 돌리고 동시에 뒤의 명령어를 실행

-  리눅스에서는 0은 명령어 실행 성공 / 0이 아닌 값은 명령어 실행 실패를 의미

'Linux' 카테고리의 다른 글

Linux 명령어  (0) 2024.05.26
Linux 꿀팁  (0) 2024.05.26
Linux 기타  (0) 2024.05.26
계정 관련 명령어  (0) 2024.05.26
Zombie Process  (0) 2024.05.26