본문 바로가기
IT 인프라/리눅스, 가상화

[Linux] Window, Linux OS 기본 개념과 명령어

by 전재혁 2024. 3. 4.

◈ OS 기본 개념 ◈

 

-H/W와 사용자 사이에는 명령 해독기라는 것이 존재

(사용자가 마우스, 키보드 등의 입력 장치로 하는 동작

명령 해독기를 거쳐 모니터와 같은 출력장치에 출력된다.)

※CMD (명령 프롬프트)가 명령 해독기에 속함.

 

GUI (Graphical User Interface)– Window,맥 OS등 그래픽. 즉 마우스, 키보드 등의 입력장치가 하는 동작을 그래픽 상에 나타내 주는 인터페이스

 

CLI (Command Line interface)- Linux의 터미널(Bash, Zsh등), 명령프롬프트(cmd.exe)등 키보드. 즉 텍스트 커맨드만으로 명령어에 따라 작업을 수행

리눅스의 경우 보통 Ubuntu 버전을 주로 사용

리눅스 기본이 되는 주요 명령어 50가지와 같은 의미의 CMD(명령프롬프트) 명령어

ex ( ls ↔ dir 일 때 리눅스는 ls 명령어 명령프롬프트는 dir 명령어 )

 

ls ↔ dir

ex) ls –a dir /a : 숨김 파일을 포함하여 모든 파일 표시

ls –l ↔ dir /l : 각 파일에 대한 자세한 정보 표시

ls –R dir /R : 현재 디렉토리와 하위 디렉토리의 모든 파일과 디렉토리 표시

ls –h: 파일 크기를 인간이 읽을 수 있는 형식으로 표시합니다.

pwd (Print Working Directory) ↔ dir /q : 현재 디렉토리의 절대 경로를 인쇄

cd (Change Diretory) : 디렉토리 이동

ex) music 디렉토리로 이동하고 싶다. cd music 입력

mkdir (Make Directory) : 디렉토리를 만들고 싶을 때 사용

mv (move) ↔ move : 파일이나 디렉토리를 다른 위치로 이동

ex) "my-file.txt"라는 파일 "my-directory"라는 디렉토리 이동하려면

mv my-file.txt my-directory

cp (Copy) ↔ copy : 파일이나 디렉토리를 다른 위치로 복사

ex) copy my-file.txt my-directory

(my-file.txt 파일 my-directory로 복사)

rm (remove) ↔ del : 파일이나 디렉토리를 삭제

ex) copy my-file.txt my-directory

touch fsutil : 파일의 수정 시간을 업데이트

ex) touch my-file.txt / fsutil file createnew my-file.txt 0

ln (Link) ↔ mklink : 파일이나 디렉토리에 대한 링크를 만듬

ex) ln my-file.txt my-link / mklink my-link my-file.txt

cat (concatenate) ↔ type : 파일 내용을 표준 출력

ex) cat my-file.txt / type my-file.txt

clearcls : 터미널의 내용을 지움

ex) clear / cls

echo : 지정된 문자를 출력

ex) echo 안녕하세요

less type : 텍스트 파일내용을 한 번에 한 페이지씩 출력

ex) less my-file.txt / type my-file.txt

manhelp : 명령 사용법 알려줌

-k: 키워드로 명령을 검색합니다. ex) man –k ls (ls 명령사용법 알려줌)

-f: 파일 이름으로 명령을 검색합니다. ex) man –f man (man이라는 파일 이름으로 검색)

-s: 섹션 번호로 명령을 검색합니다. ex) man -s 1 ls (1번 섹션에 있는 명령 검색)

ex) help dir

unamesysteminfo : 시스템 이름과 H/W 정보 표시

whoamiwho : 현재 로그인한 사용자의 이름을 표시

tarzip : 파일과 폴더를 하나의 파일로 묶음

ex) tar -cf [archive_file] [files]

ex) zip -r archive.zip

grepfindstr : 파일에서 문자열을 찾는 데 사용

ex) grep –i [options] [search pattern] [files] (지정된 파일에서 search pattern을 찾음)

-i: 대소문자 구분 없이 검색

ex) findstr /i "hello" (현재 디렉토리의 모든 파일에서 “hello”을 찾음)

headGet-Content : 파일의 처음 몇 줄을 표시

ex) head –n 5 myfile / Get-Content -First 5 myfile

tail Get-Content : 파일의 마지막 부분을 출력

ex) tail -n 5 myfile / Get-Content -Last 1 myfile

diffFC : 두 파일 간차이점을 비교

ex) diff myfile1 myfile2 / FC myfile1 myfile2

cmp : 두 파일 간의 내용 비교 후 다른 점만 출력

comm : 두 파일의 차이점을 비교

-첫 번째 파일의 줄만 출력 –1 옵션

-두 번째 파일의 줄만 출력 –2

-두 파일의 공통 줄만 출력 -3

ex) comm –3 myfile myfile

sort : 텍스트 파일의 줄을 정렬할 때 사용

exportexport: 환경 변수를 현재 세션에 내보냄

ex) export PATH -> PATH 환경 변수를 현재 세션에 내보냄

 

zip zip : 여러 파일과 디렉토리를 하나의 압축 파일로 묶음 (zip 확장자로 저장됨)

ex) zip [options] archive.zip file1 file2 directory1 directory2

ex) zip archive.zip * (현재 디렉토리의 모든 파일 압축)

unzip unzip : zip 파일 압축 해제

ex) unzip archive.zip

ssh ssh : 보안 원격 접속

ex) ssh [options] username@hostname

*cmd(명령 프롬프트)에서는 선행 조건이 필요함. SSH 클라이언트 (Putty, Openssh등) 설치 후 ssh 클라이언트의 경로를 환경 변수 PATH에 추가

ex) set PATH=%PATH%;C:\Program Files\Putty

serviceservice : 서비스를 시작, 중지, 다시 시작, 일시 중지, 상태 확인

ex) service <service name> <action>

pstasklist : 현재 프로세스를 표시

-옵션 a: 모든 프로세스, e: 사용자 프로세스, f: 각 프로세스에 대한 자세한 정보

-옵션 /v: 각 프로세스에 대한 자세한 정보, /s: 지정된 컴퓨터의 프로세스, /m: 지정된 프로세의 모듈

kill and killalltaskkill : 프로세스 ID 또는 프로세스 이름으로 프로세스를 종료시킴

ex) kill [-s signal] [-p <pid>]

- signal 옵션

SIGTERM(15): 정상 종료

SIGKILL(9): 강제 종료

SIGHUP(1): 연결이 끊어졌다고 알림

- taskkill 옵션

/pid: IP 지정

/im: 이름 지정

/f: 강제 종료

dffsutil : 파일 시스템의 사용량 표시

- df 옵션

-a: 모든 파일 표시

-t: 지정한 파일 유형만 표시

ex) fsutil volume diskfree C:

mountsubst : 파일 시스템을 특정 위치에서 사용 가능하게 만듬

ex) mount [options] <device> <mountpoint>

ex) subst D: C: (D 드라이브에서 C 드라이브 내용 액세스 가능)

chomdicacls : 파일 또는 디렉토리 권한을 변경

ex) chmod [options] mode file

ex) icacls <file or directory> (권한 표시)

icacls <file> /grant <user or group>:(OI)(CI)(M) (권한 변경)

chowntakeown, icacls : 파일, 디렉토리 소유자 변경

ex) chown [options] owner:group file

ifconfig ipconfig : 네트워크 구성을 표시하고 IP 주소, 마스크 및 브로드캐스트 주소 설정, 인터페이스 활성화 또는 비활성화

ex) ifconfig eth0 (eth0 현재 구성 표시)

ex) ifconfig eth0 192.148.1.1 netmask 255.255.255.0 (eth0 ip 주소, 마스크 설정)

cmd(명령 프롬프트)에서는 if -> ip로만 바꿔주면 됨

traceroute tracert : 호스트에 도달하는 데 사용되는 경로를 추적

ex) traceroute google.com ( google.com에 도달하는 데 사용되는 경로를 추적)

ex) tracert google.com

wgetcurl : 웹에서 파일 다운로드 (http, https, ftp 프로토콜 지원)

ex) wget http://example.com/file.zip

ex) curl http://example.com/file.zip

ufw : 우분투와 데비안 기반 OS에서 사용되는 간단한 방화벽

ex) sudo ufw enable

iptables : 방화벽을 관리하는 데 사용 (패킷 허용, 거부, 수정)

ex) sudo /sbin/service iptables start (활성화)

ex) sudo /sbin/service iptables stop (비활성화)

ex) sudo /sbin/service iptables status (상태 확인)

ex) sudo /iptables –A input –p tcp - -dport 80 –j ACCEPT (특정 포트 열기)

ex) sudo /iptables –A input –p tcp - -dport 80 –j DROP (특정 포트 닫기)

㊶ apt, pacman, yum, rpm : 모두 리눅스에서 패키지를 관리하는 명령어

apt: 데비안 및 우분투 리눅스 배포판에서 사용

pacman:아치 리눅스 배포판에서 사용

yum: 레드햇 엔터프라이즈 리눅스(RHEL), 페도라 및 센트OS 리눅스 배포판에서 사용

rpm: 레드햇 리눅스 배포판에서 사용

●각 명령어는 설치, 업그레이드, 제거 및 패키지 관리와 같은 다양한 작업을 수행●

sudo (Superuser do) 관리자 권한 실행 : 다른 사용자 또는 그룹의 권한으로 명령을 실행

cal (calendar)date, time: 캘린더를 보여줌.

ex) cal 입력 시 현재 날짜가 속한 달의 달력이 나옴

ex2) cal 2023 입력 시 해당 연도의 달력이 출력 됨

aliasX : 명령어의 별칭을 만듬. 즉, 긴 명령어의 경우 alias를 사용하여 명령어 세트를 별칭으로 지정해두고 그 별칭을 사용함으로써 작업의 효율성을 높힐 수 있음.

ex) alias 11=’1s –l’ (ls –l의 별칭을 11로 만듬)

dd : 데이터를 읽고 쓰는 데 사용되는 유용한 명령어

ex) dd if=input_file of=output_file (파일 복사)

ex2) dd if=/dev/zero of=/dev/sdX bs=1M count=1 (하드 드라이브 초기화)

ex3) dd if=/dev/urandom of=/home/user/file.txt bs=1M count=1 (파일 생성)

ex4) dd if=/home/user/file.txt of=/home/user/new_file.txt bs=1M count=512

(파일 크기 조정)

whereis : 명령의 경로를 찾음

ex) whereis ls (ls의 명령의 경로를 찾음)

whatis : 명령어의 간단한 설명을 표시

ex) whatis ls (ls 명령어의 설명을 표시)

top : 프로세스의 현재 상태를 보여줌

top 명령어는 5초마다 화면을 자동으로 업데이트 함. q 키를 눌러 종료 가능

useradd and usermod : 새로운 사용자 계정을 만듬 (기존 사용자 계정 수정)

ex) useradd [options] username

passwd : 사용자 계정의 암호를 변경

ex) passwd [username] (username은 암호를 변경할 사용자의 이름)