Today I Learn - 12

이정빈·2021년 2월 23일
0

클라우드 엔지니어

목록 보기
13/53
post-thumbnail

Linux의 기초

Redhat Enterprise Linux (RHEL) (상용)
CentOS : RHEL의 클론
Fedora Linux : Redhat에서 새로운 기능/제품을 테스트하기 위한 용도로 사용

CentOS Stream : RHEL과 Fedora의 중간 정도의 포지션

리눅스는 단일 트리 파일시스템 구조를 가짐 ( / )

프롬프트에 $ 기호가 있을 경우 $ : 일반 사용자 권한
프롬프트에 # 기호가 있을 경우 # : 관리자 권한(root)

GUI : Graphical User Interface (그래픽 환경)
CLI : Command Line Interface (명령줄 환경)
TUI : Text User Interface (텍스트 환경)

=================================================

운영체제
유닉스 - Unix (Unics)

  • 켄 톰슨, 데니스 리치 - 멀틱스(Multics)

운영체제의 역할

  • 하드웨어(입출력장치, 기억장치, 처리장치(Cental Process Unit))
  • 하드웨어와 사용자 사이에 위치
  • 커널(Kernel) : 운영체제에서 하드웨어쪽에 닿아있는 부분
  • 인터페이스(Interface) : 사용자가 운영체제를 사용할 수 있도록 되어 있는 구조
    => 유닉스/리눅스 : 쉘(셸) Shell
  • 사용자의 어플리케이션 : 사용자가 동작시키는 프로그램

하드웨어 - 커널 - 쉘 - 응용프로그램

리눅스 - 유닉스의 오픈소스 버전

  • 리누스 토발즈

배포판(Distribution) - 리눅스 커널을 토대로 각자 개발된 개별적인 리눅스 모델

서버

  • 메인프레임
  • 서버
  • 데스크탑

==========================================

쉘(Shell)을 다루는 방법

  • 리눅스의 구조를 이해
  • 여러가지 경우에 사용하는 명령어

명령어

  • 대부분의 명령어들은 파일형태로 존재
  • 주로 실행 가능한 파일들의 위치: /usr/bin, /usr/sbin (bin: Binary- 기계어 코드)
  • 도움말 참고할 수 있음(매뉴얼): man
  • 파일 형태로 존재하지 않는 명령어도 있음 : 쉘 내장 명령어

쉘의 종류

  • 리눅스의 기본 쉘: bash (Bourne Again SHell)
  • 유닉스의 기본 쉘: sh (Bourne Shell)
  • 기타 다양한 쉘 종류 : csh(C Shell), ksh(Korn Shell), zsh (Z Shell)

=============================================

ls : 파일/디렉토리 목록을 확인
주요 옵션

  • l : Long List 개체의 상세정보 확인
    ex) drwxr-xr-x. 2 user user 6 Feb 23 21:17 Desktop
    포함되는 정보
    d: 개체의 종류를 나타냄 (d: 디렉토리, - : 일반 파일(텍스트 데이터, 실행파일), c : 캐릭터 장치 파일, b : 블록 장치 파일, l : 심볼릭 링크)
    rwxr-xr-x : 권한에 대한 정보(소유자/소유그룹/기타), 각 권한은 읽기/쓰기/실행(r/w/x)
    그 뒤 숫자
    . : ACL(Access Control List) 존재 여부
    2 : 하드 링크의 개수
    앞user : 소유자
    뒤user : 소유그룹
    6 : 파일의 크기
    Feb 23 21:17: 파일이 수정된 시간
    대부분의 운영체제에서 사용하는 파일과 관련된 시간정보
    M: Modified (파일의 내용을 수정)
    A: Access (접근)
    C: Change (파일의 속성 정보 변경) / Create (생성)
    Desktop: 개체의 이름

-a : 숨김파일 표시
리눅스/유닉스의 숨김파일: 파일명 맨 앞자리를 .으로 생성
-A : 숨김파일 표시 “.”, “..” 항목을 미표시
-F : 각 개체의 유형을 표시 (일반 파일/ 디렉토리)
-R : Recursive. 디렉토리 및 그 디렉토리 내부의 디렉토리 내 개체 정보까지 표시

절대경로/상대경로
절대경로: 개체의 디렉토리 구조상 위치를 절대적인 기준에 따라 작성. 절대적인 기준은 최상위 디렉토리( root 디렉토리, /)
상대경로: 개체의 디렉토리 구조상 위치를 상대적인 기준(현재 위치)에 따라 작성

/서울시/서초구/서초동/100번지/3층 : 절대경로 방식
서초동/100번지/3층 : 상대경로 방식

절대경로 상대경로 구분방법
경로가 /로 시작하면 무조건 절대경로
경로가 /로 시작하지 않으면 무조건 상대경로

. : 현재 위치를 의미
.. : 현재 디렉토리의 상위 디렉토리

리눅스 주요 디렉토리 구조
bin : /usr/bin = /bin, 실행파일이 존재하는 위치. 일반 권한으로 실행하는 파일들
dev : device. 리눅스 시스템의 장치 파일들이 위치(b, c)
home : 홈 디렉토리. 사용자별로 자신만이 사용할 수 있는 공간
proc : 임시 디렉토리. 자동적으로 생성되고 관리되므로 직접 수정 금지
run : 런타임 데이터가 존재하는 위치
tmp : 임시 디렉토리. 데이터가 유지되는 임시 디렉토리 /tmp, /var/tmp 등을 사용
var : 변경 가능한 데이터들이 위치. 데이터는 유지. 로그 데이터가 저장됨 /var/log
boot : 부팅(Booting), 즉 시스템을 구동시키기 위해 필요한 정보가 저장
etc : 리눅스 시스템 및 응용프로그램의 설정을 저장
lib : 라이브러리 , 모듈 등이 저장
root : root 사용자의 홈디렉토리 (/home/root가 아님)
sbin : 시스템 관리작업용 실행파일
usr : 프로그램 설치 등 경우에 저장되는 경로

=================================================

cd : Change Directory. 현재 작업 경로를 변경
cd [변경할 경로] : 절대/상대경로 모두 사용가능
cd : 옵션/인자(Arguments) 없이 실행할 경우. 현재 사용자의 홈 디렉토리로 이동
cd ~ : 홈 디렉토리로 이동
cd ~[사용자이름] : 지정한 사용자의 홈 디렉토리로 이동 (root 사용자)
root 사용자는 특권(Privilege)를 가지고 있음 - 권한이 없는 개체에도 접근 가능
cd - : 이전 경로로 이동

date: 현재 날짜, 시간 정보 확인
id : uid(시스템에서 사용자를 식별하기 위한 일련번호), 소속되어 있는 그룹 정보 출력
w : 현재 접속된 사용자 정보를 출력. CPU 사용량 등 부가 정보를 함께 출력
who : 현재 접속된 사용자 정보를 간략히 출력 (이름, 접속시간, 접속경로)
whoami : 현재 로그인된 사용자 이름 반환
uname : 시스템 정보 출력

cat : 파일 내용 출력

==============================================

리다이렉션(방향재지정)

리눅스에서 명령어를 사용할 때, 표준 입력, 표준 출력을 사용함 (stdin, stdout)
리다이렉션을 사용하여 입력 또는 출력의 방향을 변경할 수 있음

: 앞 명령어의 출력을 표준 출력(화면)이 아닌 지정한 파일로 출력 (Overwrite)
< : 앞 명령어에 뒤 파일의 내용을 입력으로 전달

: 앞 명령어의 출력을 지정한 파일로 출력 (Append)
2> : 표준 에러의 방향 재지정
표준 출력: 화면에 출력되는 내용 (stdout)
표준 입력: 키보드로 입력하는 내용 (stdin)
표준 에러: 명령어에서 발생한 에러 (stderr)

파이프라인(Pipeline)
리다이렉션을 사용하여 한 명령어의 실행결과 출력을 다른 명령어로 전달할 경우, 명령어의 결과를 저장할 파일이 생성되고, 명령을 두번 실행하여야 함
파이프라인을 사용할 경우 앞 명령의 실행 결과 출력을 뒤 명령의 입력으로 전달 가능
파이프라인 사용시 파일이 생성될 필요가 없음
[명령어1] | [명령어2] : 명령어1에서 화면에 출력할 표준 출력 내용이 명령어 2의 표준입력으로 전환됨

/dev/null : 데이터를 리다이렉션을 통해 버릴 수 있는 특수 장치 파일
/dev/zero : 끊임없이 0 데이터를 출력하는 특수 장치 파일

===============================================

파일 내용 출력 명령어
cat
more : 텍스트 데이터를 페이지 단위로 출력
less : more와 유사하나 Page Up/Down 키 사용가능, 맨 아래까지 출력 후 정지, q 눌러 종료
head : 위에서 지정된 줄 까지 출력
tail : 끝에서 지정된 위치까지 출력

이해하기 어려웠지만 어찌저찌 해내긴 했다. 까먹지 않도록 복습을 잘 해야겠다.

profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글