Linux 개념 및 명령어 복습

Date:     Updated:

카테고리:

태그:

Linux 개념과 명령어 정리

1. 리눅스란?

  • 유닉스(Unix)를 기반으로 한 오픈 소스 운영체제(OS)
    • 운영체제 : 사용자가 컴퓨터를 쉽게 사용할 수 있게 하는 소프트웨어
      • 리눅스, 윈도우, 맥OS 등의 운영체제가 있다.
  • 컴퓨터 역사상 가장 많은 참여자가 관여하고 있는 오픈소스로 누구나 개발에 참여하고 코드를 볼 수 있는 프로젝트


2. ✅ 리눅스의 핵심 특징

특징 설명
오픈 소스 누구나 소스 코드를 열람, 수정, 배포 가능
유닉스 계열 유닉스와 호환되는 구조로 설계되어 신뢰성과 안정성 보장
멀티유저 여러 사용자가 동시에 하나의 시스템에 접근 가능
멀티태스킹 여러 개의 task(작업)를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있는 기능
CLI 중심 명령줄 기반 환경(Bash shell 등)에서 작업 수행
높은 보안성 사용자 권한 분리와 방대한 커뮤니티 지원으로 빠른 보안 패치 제공


3. 🧱 리눅스 구조

linux구성요소

(1) 프로그램(터미널)

  • 사용자가 사용하는 소프트웨어
  • 리눅스 시스템에는 다양한 응용 프로그램이 포함되어 있으며, 텍스트 편집기, 개발 도구 등이 있음
  • 터미널은 사용자가 시스템과 상호작용하기 위한 인터페이스
    • 사용자가 입력한 명령어를 시스템에 전달하고, 시스템의 출력을 사용자에게 보여주는 역할
    • 즉, 사용자와 시스템 사이의 커뮤니케이션 창구 역할을 수행


(2) 셸

  • 사용자와 운영체제 간의 인터페이스로, 명령어 해석기
  • 터미널을 통해 입력된 명령어를 해석하여 커널에게 전달하는 역할을 수행
  • 운영체제에서 사용되는 언어와 사용자가 사용하는 언어는 다르기 때문에 사용자가 입력한 명령어를 커널이 이해할 수 있는 형태로 변환하고, 실행 결과를 다시 사용자에게 표시함

대표적인 셸의 종류:

  • sh(Bourne Shell) : 유닉스 시스템에서 가장 초기에 사용된 셸. 간단한 스크립팅과 명령어 실행 기능을 제공
  • bash(Bourne Again Shell) : sh의 확장 버전. 리눅스와 맥OS에서 가장 널리 사용되는 셸. 사용자 친화적인 기능과 스크립팅 기능이 강화되어 있음
  • zsh : bash의 기능을 포함하면서 사용자 편의성을 더욱 고려한 셸. 맞춤법 검사, 강력한 플러그인 및 테마 지원으로 많은 사용자에게 사랑받고 있음


(3) 커널

  • 운영체제의 핵심
  • 프로세스, 메모리, 파일, 장치 등 시스템의 모든 하드웨어와 소프트웨어 리소스 즉, 컴퓨터의 모든 자원을 관리함
  • 프로세스 관리, 메모리 관리, 장치 드라이버들과의 통신, 시스템 호출 등의 기본적인 시스템 서비스를 제공
  • 사용자 또는 프로그램이 요청한 작업을 하드웨어가 수행할 수 있도록 지시함


4. 🐧 리눅스 배포판(Distro)

  • 리눅스는 다양한 배포판(Distribution)으로 제공됨
배포판 특징
Ubuntu 데스크탑과 서버 모두에 인기, 사용자 친화적
CentOS / Rocky / AlmaLinux RHEL 계열로 서버 환경에 최적
Debian 안정성과 호환성이 뛰어나 서버용으로 많이 사용
Arch Linux 고급 사용자용, 커스터마이징에 강함
Kali Linux 보안 테스트 및 해킹 실습에 특화


5. 리눅스 명령어

📁 (1) 파일 및 디렉토리 관련 명령어

명령어 설명
ls 현재 디렉토리 내용 보기 (ls -l, ls -a)
cd 디렉토리 이동 (cd /home, cd ..)
pwd 현재 디렉토리 경로 출력
mkdir 디렉토리 생성 (mkdir newdir)
rm 파일/디렉토리 삭제 (rm file.txt, rm -r dir)
cp 파일 복사 (cp a.txt b.txt)
mv 파일 이동 또는 이름 변경 (mv old.txt new.txt)
touch 빈 파일 생성 (touch file.txt)
find 파일 검색 (find . -name “test.txt”)
tree 폴더 구조 트리 형태로 출력 (sudo apt install tree)

📄 (2) 파일 내용 확인 및 편집

명령어 설명
cat 파일 내용 전체 출력
more, less 긴 파일 페이지 단위로 출력 (less file.txt)
head, tail 처음 또는 마지막 몇 줄 보기 (head -n 10 file.txt)
nano, vim, vi 터미널 기반 텍스트 편집기

🔧 (3) 시스템 정보 및 관리

명령어 설명
uname -a 커널/시스템 정보 확인
top, htop 실시간 시스템 상태 (메모리, CPU 등)
free -h 메모리 사용량 확인
df -h 디스크 사용량 확인
*du -sh ** 디렉토리별 용량 확인
uptime 시스템 작동 시간 및 부하 확인
whoami 현재 사용자 이름 출력
id 사용자 ID, 그룹 정보 확인

🧍 (4) 사용자/권한 관련

명령어 설명
sudo 관리자 권한으로 명령 실행 (sudo apt update)
chmod 권한 변경 (chmod +x script.sh)
chown 소유자 변경 (chown user:group file)
adduser, userdel 사용자 추가 / 삭제
passwd 비밀번호 변경

📦 (5) 패키지 관리

Ubuntu / Debian (APT 기반)

명령어 설명
sudo apt update 패키지 목록 최신화
sudo apt upgrade 설치된 패키지 업그레이드
**sudo apt install <패키지명>** 패키지 설치
**sudo apt remove <패키지명>** 패키지 제거

CentOS / RHEL (YUM 기반)

명령어 설명
sudo yum install 패키지 설치
sudo yum update 패키지 업데이트

🌐 (6) 네트워크

명령어 설명
ping 주소 연결 확인 (ping google.com)
ifconfig, ip a IP, 네트워크 인터페이스 확인
netstat -tuln 포트 열림 상태 확인
curl, wget 웹 요청 / 파일 다운로드

🔁 (7) 기타 유용한 명령어

명령어 설명
history 실행한 명령어 기록 보기
alias 별칭 설정 (alias ll=’ls -alF’)
crontab -e 주기적 작업 자동 실행 설정
**man <명령어>** 명령어 매뉴얼 보기 (man ls)

IT 카테고리 내 다른 글 보러가기

첫 번째 글입니다 가장 최근 글입니다

댓글 남기기