본문 바로가기
DGB

Linux Fundamental

by 철없는민물장어 2024. 1. 11.
728x90

리눅스 주요 구성

  • 커널
  • 데몬
  • 애플리케이션
  • 데이터 파일
  • 설정 파일

1. 커널 (Kernel): 
   - 리눅스의 핵심 부분입니다.
   - 시스템의 모든 기본 기능을 제어하며, 하드웨어와 소프트웨어 간의 통신을 관리합니다.
   - 프로세스 관리, 메모리 관리, 장치 드라이버, 시스템 호출 및 보안 기능 등을 포함합니다.
   - 사용자와 직접 상호작용하는 부분이 아니라, 시스템과 하드웨어 사이의 중개자 역할을 합니다.

2. 데몬 (Daemon):
   - 백그라운드에서 실행되는 프로세스로, 사용자의 직접적인 개입 없이 특정 서비스나 작업을 수행합니다.
   - 예를 들어, 웹 서버 데몬, 파일 공유 데몬, 프린트 서버 데몬 등이 있습니다.
   - 시스템이 부팅될 때 자동으로 시작되는 데몬도 있고, 필요에 따라 수동으로 시작할 수 있는 데몬도 있습니다.

3. 애플리케이션 (Application):
   - 사용자가 직접 사용하는 프로그램들을 말합니다.
   - 텍스트 편집기, 웹 브라우저, 게임, 개발 도구 등 다양한 애플리케이션이 존재합니다.
   - 사용자와 직접적인 상호작용을 하는 소프트웨어로, 사용자의 요구를 만족시키기 위한 목적으로 설계됩니다.

4. 데이터 파일 (Data Files):
   - 시스템이나 애플리케이션이 사용하는 파일들입니다.
   - 문서, 이미지, 데이터베이스, 로그 파일 등 다양한 형태의 데이터가 저장됩니다.
   - 사용자의 작업 결과물이나 시스템의 운영 정보가 이 파일들에 기록됩니다.

5. 설정 파일 (Configuration Files):
   - 시스템이나 애플리케이션의 동작 방식을 정의하는 파일들입니다.
   - 이 파일들은 보통 텍스트 형식으로 되어 있으며, 사용자나 관리자가 시스템의 행동을 조정하고자 할 때 수정됩니다.
   - 예를 들어, 네트워크 설정, 서비스의 동작 방식, 사용자 권한 등을 정의하는데 사용됩니다.

 

1. .bashrc: 유저환경변수
   - `.bashrc` 파일은 개별 사용자의 홈 디렉토리에 위치합니다 (예: `/home/username/.bashrc`).
   - 이 파일은 Bash 쉘을 시작할 때마다 실행되며, 주로 사용자의 쉘 환경을 설정하는 데 사용됩니다.
   - 여기에는 별칭(alias), 함수, 변수, 쉘 프롬프트, 기타 쉘 관련 설정이 포함될 수 있습니다.
   - 이 파일은 각 사용자가 개별적으로 수정하여 자신만의 환경을 설정할 수 있습니다.

.bashrc에서 별칭 추가 등 환경 설정 가능하다

 

2. /etc/profile: 시스템환경변수
   - `/etc/profile` 파일은 시스템 전체에 적용되는 글로벌 환경 설정 파일입니다.
   - 이 파일은 시스템에 로그인할 때 실행되며, 모든 사용자에게 영향을 미칩니다.
   - 시스템 환경 변수, 로그인 쉘의 초기 설정 등을 정의하는데 사용됩니다.
   - 일반적으로 시스템 관리자만이 이 파일을 수정합니다.

간단히 말해서, `.bashrc`는 개별 사용자의 Bash 쉘 세션에 대한 설정을 담당하고, `/etc/profile`은 시스템 전체에 대한 초기 쉘 환경 설정을 관리합니다. 두 파일 모두 쉘 환경을 사용자 정의하는 데 중요한 역할을 하며, 특히 리눅스에서 Bash 쉘을 사용하는 사용자에게 중요합니다.


소켓

 

소켓(socket)은 네트워크 상에서 데이터를 교환하기 위한 엔드포인트(end-point)입니다. 컴퓨터 네트워킹에서 소켓은 두 프로그램이 네트워크를 통해 데이터를 주고받을 수 있도록 하는 메커니즘을 제공합니다. 일반적으로, 소켓은 IP 주소와 포트 번호의 조합으로 구성됩니다. 이를 통해 네트워크 상의 다른 장치와의 특정한 접점을 만들어, 데이터 통신을 가능하게 합니다.

소켓 프로그래밍은 네트워크 통신을 위한 애플리케이션을 개발할 때 사용되는 기술입니다. 이는 TCP/IP 프로토콜을 사용하여 인터넷이나 LAN(지역 네트워크) 상의 다른 컴퓨터와 통신할 수 있게 해줍니다.

소켓의 두 주요 유형은 다음과 같습니다:

1. **스트림 소켓 (TCP 소켓)**: Transmission Control Protocol (TCP)을 사용합니다. 이는 연결 지향형 서비스로, 데이터가 순서대로 정확하게 전송되는 것을 보장합니다. 전화 통화와 비슷하게, 양쪽 통신 당사자 간에 안정적인 연결이 설정되고 유지됩니다.

2. **데이터그램 소켓 (UDP 소켓)**: User Datagram Protocol (UDP)을 사용합니다. 이는 비연결 지향형 서비스로, 데이터의 신속한 전송을 보장하지만 순서나 정확성은 보장하지 않습니다. 일방적인 라디오 방송과 유사한 방식으로 작동합니다.


man

 

특정 명령어의 매뉴얼을 확인할 때 man 명령어를 사용할 수 있다.

man [옵션] [명령어명]

리눅스에서 `;`, `&`, `<`, `<<`, `>`, `>>`는 명령어를 작성할 때 사용되는 특수 문자로, 각각 다음과 같은 기능을 수행합니다:

1. **; (세미콜론)**: 
   - 여러 명령어를 연속해서 실행하고자 할 때 사용합니다.
   - 첫 번째 명령어가 완료된 후 두 번째 명령어가 실행됩니다.
   - 예: `command1; command2`

2. **& (앰퍼샌드)**: 
   - 명령어를 백그라운드에서 실행하게 합니다.
   - 쉘은 명령어 실행 후 즉시 다음 명령어 입력을 기다립니다.
   - 예: `command &`

3. **< (리다이렉트 입력)**: 
   - 파일의 내용을 명령어의 입력으로 사용합니다.
   - 파일의 데이터를 명령어에 전달합니다.
   - 예: `command < file`

4. **<< (히어 도큐먼트)**:
   - 사용자가 입력한 라인을 명령어의 입력으로 사용합니다.
   - 종료 문자를 만날 때까지 계속 입력을 받습니다.
   - 예: `command << END`

5. **> (리다이렉트 출력)**:
   - 명령어의 출력을 파일로 보냅니다.
   - 기존 파일이 있으면 덮어씁니다.
   - 예: `command > file`

6. **>> (출력 추가)**:
   - 명령어의 출력을 파일 끝에 추가합니다.
   - 기존 파일 내용은 유지하면서 새로운 내용을 추가합니다.
   - 예: `command >> file`


Primary shell prompt 

PS1

 


which: 시스템 경로(PATH) 상에서 실행 가능한 명령어의 위치를 찾습니다.
   - 예시: `which ls`는 `ls` 명령어의 전체 경로를 출력합니다.

 

find: 파일 시스템에서 파일이나 디렉토리를 찾습니다.
   - 예시: `find /home -name "example.txt"`는 `/home` 디렉토리와 그 하위에서 "example.txt"라는 이름의 파일을 찾습니다.

 

grep: 파일 내용이나 다른 명령어의 출력 중에서 특정 패턴이나 단어를 찾습니다.
   - 예시: `grep "Hello" example.txt`는 "example.txt" 파일에서 "Hello"라는 단어가 포함된 줄을 찾아서 출력합니다.

   - 예시: `ps -ef | grep ssh` 이 명령어는 현재 실행 중인 모든 프로세스 목록에서 SSH 관련 프로세스를 필터링하여 보여줍니다.


managing user

 

관리자 권한을 얻는 방법들

  • sudo -i
  • sudo su
  • su -

 

useradd: 계정 추가

useradd michael
passwd michael

michael 계정을 추가하고 패스워드를 설정해주면 사용할 수 있다.

 

userdel: 계정 삭제

sudo userdel michael

 


파일 타입

1. 일반 파일 (Regular File):
   - 텍스트, 바이너리, 데이터 등의 내용을 저장합니다.
   - 대부분의 문서와 프로그램 파일이 이 카테고리에 속합니다.

2. 디렉토리 (Directory):
   - 파일과 다른 디렉토리를 포함할 수 있는 컨테이너입니다.
   - 폴더라고도 불리며, 파일 시스템의 구조를 조직하는 데 사용됩니다.

3. 심볼릭 링크 (Symbolic Link):
   - 다른 파일이나 디렉토리를 가리키는 파일입니다.
   - 바로 가기 또는 소프트 링크라고도 하며, 원본 파일을 참조합니다.

4. 블록 디바이스 (Block Device):
   - 하드 드라이브, CD-ROM 같은 저장 미디어를 표현합니다.
   - 데이터를 고정 크기의 블록으로 관리합니다.

5. 문자 디바이스 (Character Device):
   - 키보드, 마우스와 같은 입력/출력 디바이스를 표현합니다.
   - 데이터를 문자 단위로 전송합니다.

6. FIFO (First In First Out):
   - 파이프라고도 하며, 프로세스 간 통신에 사용됩니다.
   - 한 프로세스가 데이터를 쓰면 다른 프로세스가 읽을 수 있습니다.

7. 소켓 (Socket):
   - 네트워크 통신에 사용되는 파일 타입입니다.
   - 프로세스 간의 데이터 교환에 사용됩니다.

file명령어를 이용하면 파일의 타입을 알 수 있다.

file [옵션] [파일명]



예를 들어, `file example.txt` 명령어는 "example.txt" 파일의 타입을 표시합니다. 이 명령어는 파일의 확장자나 이름에 관계없이 파일의 실제 내용을 기반으로 파일 타입을 결정합니다.

 


디렉토리 생성

 

-p: parent옵션을 추가하면 필요한 하위 디렉토리도 함께 생성한다

mkdir -p os/linux/ubuntu

 

디렉토리 제거

rmdir -p os/linux/ubuntu

rm -rf os

rmdir -p옵션으로 경로상에 있는 디렉토리를 모두 삭제할 수 있다

또는 rm -rf옵션으로 상위디렉토리를 삭제하면 하위디렉토리까지 모두 삭제할 수 있다.

 


linux server 

apache설치하고 확인해보기

 

sudo apt upgrade
sudo apt install apache2

 

설치가 끝났다면 apache상태확인

systemctl status apache

active: running인지 확인함.

 

 

네트워크는 브릿지,NAT, NAT네트워크 등 타입 있음

 

우분투 서버에 고정아이피 지정하기

https://github.com/swacademy/fss/blob/main/Docker-Container/Lab.%20VirtualBox%EC%97%90%20Ubuntu%20Server%20%EC%84%A4%EC%B9%98%20%EB%B0%8F%20%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95.pdf

73라인

 

728x90

댓글