Kali Linux 기초 Part. 1 CLI

2025. 3. 18. 10:28보안/Linux

Kali Linux 기초 가이드는 normaltic 강의를 참고하여 제작하였습니다.

 

1. CLI 란?

CLI (Command Line Interface, 명령줄 인터페이스)는 텍스트 명령어를 입력하여 컴퓨터를 조작하는 방식의 인터페이스다.

쉽게 말해, GUI(Graphical User Interface, 그래픽 인터페이스) 없이, 터미널에서 명령어를 입력하여 시스템을 제어하는 방법

 

2. CLI를 쓰는 이유?

가장 큰 이유는 효율성 이다.

그래픽으로 화면을 만들어서 표시하고, 처리하는 건 많은 자원이 듬 (컴퓨터가 일을 많이 해야됨), 하지만 글자만 입력해서 명령을 하면, 결과를 화면에 글자만 출력한다면 그래픽으로 표현하는 엉청난 일을 생략이 가능함, 그래서 컴퓨터가 더 가볍고 빨라짐, 그래서 서버들은 보통 GUI를 탑재 하지 않고 CLI를 이용해서 운용함

또다른 이유로, 작업 속도가 굉장히 빨라진다.

예를들어, Windows에서 a라는 파일을 찾아서 b 폴더로 이동시킨다고 하면, 직접 폴더를 뒤져가며 찾아서, b라는 폴더에 마우스로 드래그를 해야한다. 하지만 CLI방식으로 명령을 내린다면 명령어 1줄로 명령이 가능하다.

CLI가 처음에 익히기 힘들지만 익숙하다면, 그만큼 작업속도를 굉장히 높힐 수 있음.

그리고, 해킹할 대상이 GUI를 지원하지 않을 경우 오직 텍스트로만 명령을 내릴 수 있는데, CLI 명령을 내릴 줄 모르면 해킹을 못하게 됨

 

3. CLI 와 GUI의 차이점

구분 CLI (명령줄 인터페이스) GUI (그래픽 인터페이스)
사용 방법 명령어 입력 (텍스트 기반) 마우스 클릭, 아이콘 조작 (그래픽 기반)
속도 빠름 (고급 사용자에게 유리) 느림 (초보자에게 유리)
유연성 스크립트 & 자동화 가능 반복 작업이 불편함
시스템 조작 깊이 있는 제어 기능 제한적인 기능
사용 예시 Linux 터미널, Windows CMD, PowerShell Windows 바탕화면, macOS Dock, Ubuntu GNOME

 

 

4. CLI의 장점

  1. 빠르고 가벼움
    • 마우스로 클릭하는 GUI보다 명령어 입력이 더 빠름
    • 저사양 컴퓨터에서도 빠르게 실행됨
  2. 원격 서버 관리 기능
    • CLI를 사용하면 원격 서버에서 접속해서 SSH, 터미널을 통해 관리 가능
    • 예: AWS, 리눅스 서버 점속
  3. 자동화 및 스크립트 실행 가능
    • 반복적인 작업을 스크립트로 자동화 가능
    • 예: for 루프를 이용해 여러 파일을 한 번에 처리
  4. GUI 없이도 조작 가능 (서버 환경에 필수)
    • 서버는 대부분 GUI 없이 CLI 환경에서만 실행됨
    • Kail Linux에서도 보안 실습 시 CLI를 적극 활용 해야함

 

5. CLI에서 사용하는 기본 명령어 (Linux 터미널 기준)

지금 까지 CLI에 대해서 알아 봤는데, 직접 해봐야 실력이는다. 먼저 Kali Linux를 실행 하자.

 

이 화면이 나오게 되는데 빨간색 박스에 있는 검은색 사각형 아이콘을 클릭해 주자.

이 화면이 나오게 되는데 이 화면이 바로 CLI 이다 !

이제 명령어를 입력해 보자.

ifconfig

입력 하게 되면 IP주소를 확인할 수 있습니다.

다른 명령어도 입력해 보자.

 

이 화면을 깨끗하게 하고 싶으면 아래의 명령어를 입력하면 된다.

clear
Ctrl + L

 

Ctrl + L 단축키를 이용해서 간편하게 지울 수도 있다.

깨끗하게 지워진 것을 확인할 수 있다.

 

다른 명령어도 입력 해보자.

id

결과를 보면 root라는 글자가 보일 것이다.

아까 로그인 할때 root로 로그인했고 그 계정으로 명령어를 입력해서 표시된 것이다.

 

지금 까지 명령어들을 입력해 봤는데 앞으로 해킹하면서 마우스를 움직이는 것보다 키보드로 명령어들이 더 친숙해 져야 한다. 하나하나 익숙해 질때까지 복습해보록 하겠다. 마지막으로 간략하게 기본 명령어들을 정리하고 포스팅을 마치겠다.

 

6. CLI 기본 명령어 (Linux 터미널 기준)

 

📂 파일 및 디렉토리 관련 명령어

명령어 설명 예제
ls 현재 디렉토리 파일 목록 보기 ls -l (상세 정보 포함)
cd 디렉토리 이동 cd /home/user
pwd 현재 디렉토리 확인 pwd
mkdir 새 디렉토리 생성 mkdir new_folder
rm 파일 삭제 rm file.txt
rm -rf 폴더 삭제 (주의!) rm -rf folder_name
cp 파일/폴더 복사 cp file.txt backup.txt
mv 파일/폴더 이동 또는 이름 변경 mv old.txt new.txt
touch 빈 파일 생성 touch newfile.txt
find 특정 파일 검색 find / -name file.txt
locate 빠르게 파일 찾기 (먼저 updatedb 실행 필요) locate password.txt
tree 디렉토리 구조 출력 tree /home/user

 

 

📜 파일 내용 확인 및 편집

명령어 설명 예제
cat 파일 내용 출력 cat file.txt
less 긴 파일을 한 화면씩 보기 less log.txt
head 파일의 처음 10줄 출력 head file.txt
tail 파일의 마지막 10줄 출력 tail file.txt
nano 터미널에서 파일 편집 nano file.txt
vim Vim 에디터 실행 vim file.txt
echo 문자열 출력 또는 파일에 저장 echo "Hello" > file.txt

 

 

🖥 시스템 정보 확인 명령어

명령어 설명 예제
whoami 현재 사용자 확인 whoami
id 사용자 ID 및 그룹 확인 id username
uname -a 시스템 정보 확인 uname -a
df -h 디스크 용량 확인 df -h
du -sh 특정 디렉토리 크기 확인 du -sh /var/log
uptime 시스템 가동 시간 확인 uptime
hostname 현재 호스트 이름 출력 hostname
env 환경 변수 확인 env

 

🌐 네트워크 관련 명령어

명령어 설명 예제
ip a 네트워크 인터페이스 및 IP 확인 ip a
ifconfig 네트워크 설정 보기 ifconfig eth0
ping 네트워크 연결 확인 ping google.com
netstat -tulnp 현재 열려 있는 포트 확인 netstat -tulnp
ss -tulnp netstat 대체 명령어 (더 빠름) ss -tulnp
curl 웹 요청 보내기 curl http://example.com
wget 파일 다운로드 wget http://example.com/file.zip
traceroute 패킷이 경유하는 경로 추적 traceroute google.com

 

🔍 프로세스 및 서비스 관리

명령어 설명 예제
ps aux 현재 실행 중인 프로세스 보기 `ps aux
top 실시간 CPU & 메모리 사용량 확인 top
htop top보다 보기 좋은 프로세스 관리 툴 htop (설치 필요)
kill 특정 PID 종료 kill 1234
killall 프로세스 이름으로 종료 killall firefox
service 서비스 시작, 중지, 재시작 service apache2 restart
systemctl 시스템 서비스 관리 systemctl restart ssh

 

🔑 사용자 및 권한 관리

명령어 설명 예제
sudo 관리자 권한 실행 sudo apt update
passwd 비밀번호 변경 passwd user
adduser 새 사용자 추가 sudo adduser hacker
deluser 사용자 삭제 sudo deluser hacker
chmod 파일 권한 변경 chmod 755 script.sh
chown 파일 소유권 변경 chown user:user file.txt

 

패키지 관리 (APT 패키지 관리자)

 

명령어 설명 예제
apt update 패키지 목록 업데이트 sudo apt update
apt upgrade 시스템 패키지 업그레이드 sudo apt upgrade -y
apt install 패키지 설치 sudo apt install vim
apt remove 패키지 제거 sudo apt remove vim
dpkg -i .deb 패키지 설치 sudo dpkg -i package.deb

 

 

🚀 기타 유용한 명령어

명령어 설명 예제
history 사용한 명령어 기록 보기 history
clear 터미널 화면 지우기 clear
alias 명령어 단축키 설정 alias ll='ls -l'
date 현재 날짜 및 시간 확인 date
cal 달력 보기 cal
sleep 일정 시간 대기 sleep 5
reboot 시스템 재부팅 sudo reboot
shutdown 시스템 종료 sudo shutdown -h now

 

 

인터넷에서 찾은 기본 명령어들이다. 이 명령어들을 하나씩 입력하면서 직접 실습해보면 도움이 될것이다.