[Linux && Terminal]

박영준·2020년 10월 27일
0
post-thumbnail

리눅스란

  • 라이너스 토발즈가 개발한 Unix 기반 운영체제
  • 오픈소스 (무료!)
  • 다양한 이유로 서버는 linux 기반으로 운영됌
  • 구글에서 배포하는 안드로이드 역시 리눅스의 한 갈래

서버

  • 안정적

  • 유연성 (오픈소스 -> 사용자가 소스코드를 변경가능)

  • 무료! -> 어른들의 사정... -> 오픈소스 활성화 -> 풍부한 생태계

  • 원래 CLI(Command Line Interface) 기반

  • 사용자들을 위해 GUI(Graphic User Interface) 기능 추가

  • 서버(로컬 서버, AWS(아마존) 등에 설치된 인스턴스 등)에 설치된 리눅스 환경을 사용할 수 있음 (매우 중요!)

  • 서버의 다양한 동작들을 매뉴얼하게 조작할 수 없음. 쉘 스크립트를 사용한 파이핑, 스케줄링, 유저 그룹 및 파일/폴더에 대한 권한 설정 등.

  • 그렇기 때문에 개발자들에게(특히 직접적으로 서버, 인프라를 구축해야 하는 백엔드 개발자들에게) 아주아주 중요

  • 맨 앞에 d가 오면 폴더

  • 맨 뒤에 x가 오면 실행파일

FHS(Filesystem Hierarchy Standard)

! [notion://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F94faebcc-06c8-4ee9-80a9-ff956457def7%2FUntitled.png?table=block&id=b08225b9-1184-4fe0-a4c9-58eaec8f9f0e&width=1100&userId=8c505054-cf03-4eef-b553-2ba9578bb8a0&cache=v2]

각 폴더별 특징

  • /
    • 루트 폴더. 최상위 경로. / 기호로 접근할 수 잇다.
  • /bin & /sbin
    • 윈도우 : C드라이브/windows/system32 폴더
    • Binary의 약자. OS의 최소한의 구동을 위해 필요한 프로그램이 들어있는 폴더. cat, chmod, chown, cp, date, echo, kill, ln, ls, mkdir, etx 와 같은 기초적인 프로그램들이 포함.
    • sbin 폴더는 bin과 유사하지만 오직 루트유저 전용 프로그램 포함.
  • /boot
    • 윈도우 : C드라이브/windows/system32 폴더, boot.ini
    • 부트로더 같이 시스템 부팅에 필요한 파일들이 위치.
  • /home
    • 윈도우 : C드라이브/Users/사용자명 ⇒ 바탕 화면, 다운로드, 내 문서
    • 유저의 공간. 가장 빈번하게 사용하게 되는 경로. Home 디렉토리 이외의 다른 디렉토리 들은 주로 system directory 라고 하는데, 즉 리눅스의 운영과 관리에 관련한 파일들이 존재하는 디렉토리들. ~ 기호로 접근할 수 있다.
  • /usr
    • 윈도우 : C드라이브/Users/사용자1
    • user의 약자. 각 유저 이름에 해당하는 폴더이름이 존재. 각 폴더마다 bin, sbin, shared, lib과같이 각 유저들이 사용할 수 있는 폴더가 생성되어 있음. 각각의 유저별로 다른 파티션으로 존재하기 때문에 다른 사용자들이 사용할 수 있도록 마운트할 수 있지만 이 경우 수정할 수는 없음.
  • /etc
    • etc 폴더에는 시스템 전체에서 사용하는 설정 정보 등 엑스트라 데이터들이 저장됨.
  • /cdrom
    • 윈도우 : E, F 드라이브
    • cdrom을 위한 마운팅 포인트. 잘 사용되지 않음.
  • /media & /mnt
    • Media는 OS에서 자동으로 마운팅해주는 포인트, Mnt는 사용자가 직접 마운트하는 경로로 사용됨. 예를 들어 컴퓨터에 USB꽂아 OS에 자동으로 마운팅된다면 주로 Media 폴더, 외부에 있는 디스크등을 직접 명령어를 통해 마운트한다면 Mnt 디렉토리에 위치하게 됨.
  • /dev
    • device의 약자. 모든 것은 파일이다 라는 모토에 맞게 키보드, 마우스, 프린터등과같은 디바이스들은 파일 또는 디렉토리의 형태로 dev 폴더 안에 존재. 읽기 쓰기도 가능하며 디렉토리 어디서든 접근 가능.

Path

  • / : root 디렉토리
  • ~ : home 디렉토리
  • 절대 경로 : Absolute path는 이름 그대로 절대적 경로. 경로를 표현하는 방식이 root 디렉토리 부터 시작한다는 점에서 "완전한"의 의미에 더욱 가까움. (ex. /home/eun/bin)
  • 상대 경로 : Relative path. 현재 자신의 위치를 기반으로 움직이는 경로. (ex. cd ..)
    • . : 현재 경로
    • .. : 상위 경로

Configs

  • 리눅스에서는 주로 파일을 통하여 설정(config). (ex. .bashrc, .zshrc)

  • shell 설정 파일을 비롯한 많은 설정 파일들이 대부분 유저의 home(~) 디렉토리에 있음.

  • . 으로 시작하는 파일 및 디렉토리는 숨김파일로 간주(dot file)

  • lsa 옵션을(all) 주어야지만 볼 수 있음.

  • alias(별칭, "다른 방법으로") : 일종의 사용자 지정 단축 명령어 (.zshrc, .bashrc 등에 등록)

    alias myip="ipconfig getiadder en0" # macOS
    alias myip="hostname -I" # ubuntu

많이 쓰는 명령어

profile
React, React-Native Developer

0개의 댓글