Linux & Terminal

이해용·2022년 5월 5일
0
post-thumbnail

Linux 란?

리눅스(Linux) 는 1991년 9월 17일 리누스 토르발스가 처음 출시한 운영 체제 커널인 리눅스 커널에 기반을 둔 오픈 소스 유닉스 계열 운영 체제 계열이다. 리눅스는 일반적으로 리눅스 배포판 안에 패키지 처리된다.

배포판에는 리눅스 커널과 지원 시스템 소프트웨어, 그리고 라이브러리를 포함하고 있으며 이들 가운데 다수가 GNU 프로젝트에 의해 제공된다. 수많은 리눅스 배포판은 배포판 이름에 "리눅스"라는 단어를 사용하지만 자유 소프트웨어 재단은 GNU 소프트웨어의 중요성을 강조하기 위해 (이름에 일부 논란이 있기는 하지만) GNU/리눅스(GNU/Linux)라는 이름을 사용한다.

1. FHS(Filesystem Hierarchy Standard)

파일 시스템 계층구조 표준(Filesystem Hierachy Standard, FHS)는 리눅스 운영 체제의 주 디렉토리를 정의한다.

FHS Image

1-1. root(/)

  • 루트 폴더. 최상위 경로. / 기호로 접근할 수 있다.

1-2. /home (~)

  • 윈도우 : C드라이브/Users/사용자명 ⇒ 바탕 화면, 다운로드, 내 문서\
  • 유저의 공간. 가장 빈번하게 사용하게 되는 경로. Home 디렉토리 이외의 다른 디렉토리 들은 주로 system directory 라고 하는데, 즉 리눅스의 운영과 관리에 관련한 파일들이 존재하는 디렉토리들. ~ 기호로 곧바로 접근할 수 있다.

1-3. /bin & /sbin

  • 윈도우 : C드라이브/windows/system32 폴더
  • Binary의 약자. OS의 최소한의 구동을 위해 필요한 프로그램이 들어있는 폴더. cat, chmod, chown, cp, date, echo, kill, ln, ls, mkdir, etx 와 같은 기초적인 프로그램들이 포함.
  • sbin 폴더는 bin과 유사하지만 오직 루트유저 전용 프로그램 포함.

1-4. /usr

  • 윈도우 : C드라이브/Users/사용자1
  • user의 약자. 각 유저 이름에 해당하는 폴더이름이 존재. 각 폴더마다 bin, sbin, shared, lib과같이 각 유저들이 사용할 수 있는 폴더가 생성되어 있음. 각각의 유저별로 다른 파티션으로 존재하기 때문에 다른 사용자들이 사용할 수 있도 록 마운트할 수 있지만 이 경우 수정할 수는 없음.

2. PATH

  • / : root 디렉토리
  • ~ : home 디렉토리
  • 절대 경로 : Absolute path는 이름 그대로 절대적 경로. 경로를 표현하는 방식이 root 디렉토리 부터 시작한다는 점에서 "완전한"의 의미에 더욱 가까움. (ex. /home/eun/bin)
  • 상대 경로 : Relative path. 현재 자신의 위치를 기반으로 움직이는 경로. (ex. cd ..)
    - . : 현재 경로
    - .. : 상위 경로
  • 환경 변수
    - OS도 프로그램이기 때문에 OS가 동작하기 위해 변수가 필요
    - env 명령어로 linux의 환경변수 확인
  • $PATH
    - 터미널에서 사용하는 명령어의 경로가 저장되어 있다.
    - 여러 경로를 저장하기 위해 각 경로는 : 으로 구분된다.
    PATH=/Users/apple/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  • 실제 ls 명령어는 /bin 디렉토리 안에 위치해 있다. whereis ls 를 입력해보자. 해당 명령어가 위치해 있는 경로를 별도로 지정해주지 않더라도 어디서든 사용이 가능한 이유 역시 환경 변수 덕분이다.

3. Configs

  • 리눅스에서는 주로 파일을 통하여 설정(config). (ex. .bashrc, .zshrc)
  • shell 설정 파일을 비롯한 많은 설정 파일들이 대부분 유저의 home(~) 디렉토리에 있음.
  • . 으로 시작하는 파일 및 디렉토리는 숨김파일로 간주(dot file)
  • lsa 옵션을(all) 주어야지만 볼 수 있음.
  • alias(별칭, "다른 방법으로") : 일종의 사용자 지정 단축 명령어 (.zshrc, .bashrc 등에 등록)
alias myip="ipconfig getifaddr en0" # macOS
alias myip="hostname -I" # ubuntu

자주 사용하는 Terminal 명령어

명령어설명활용
cdchange directory폴더이동cd(경로)->. .. /usr
lslist segments현재 경로 내 파일 목록 출력ls -al
pwdprint working directory현재 경로 출력
mkdir/rmdirmake directory디렉토리 생성 / 제거
rmremove파일 / 디렉토리 제거rm -rf
cpcopy파일 / 디렉토리 복사
mvmove파일 / 디렉토리 이동
catconcatenate터미널에서 파일 내용 출력
touchtouch파일 생성 및 날짜정보 변경touch readme.md
chmodchange mode파일 / 디렉토리 권한 설정chmod u+x readme.md

참고 및 출처

  • 위코드 강의

https://ko.wikipedia.org/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4
https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C_%EA%B3%84%EC%B8%B5%EA%B5%AC%EC%A1%B0_%ED%91%9C%EC%A4%80
https://www.libresec.me/2020/11/filesystem-hierarchy-standard-archives.html

profile
프론트엔드 개발자입니다.

0개의 댓글