![](https://seokwoo.kim/wp-content/uploads/2023/09/linux-cli.png)
리눅스 기본 명령어 – Basic Linux Command
Linux 기반 시스템을 효율적으로 사용하고 운용하기 위해 알아야 할 몇 가지 기본 Linux 명령이 있습니다.
리눅스 기본 명령:
ls: 현재 디렉터리의 파일과 디렉터리를 나열합니다.
- 예: ls -l(자세한 목록), ls -a(숨겨진 파일 포함), ls -lh(사람이 읽을 수 있는 파일 크기).
CD: 디렉토리를 변경합니다.
- 예: cd /path/to/directory(절대 경로), cd 디렉토리(상대 경로), cd ..(한 디렉토리 위로 이동).
pwd: 현재 작업 디렉터리를 인쇄합니다(현재 디렉터리의 경로 표시).
mkdir: 새 디렉터리를 만듭니다.
- 예: mkdir 디렉토리_이름.
rm: 파일과 디렉터리를 제거합니다.
- 예: rm file.txt(파일 제거), rm -r 디렉토리(디렉토리 및 해당 내용 제거).
cp: 파일 및 디렉터리를 복사합니다.
- 예: cp file.txt 목적지_디렉토리(파일 복사), cp -r 디렉토리 목적지_디렉토리(디렉토리 및 해당 내용 복사).
mv: 파일 및 디렉터리를 이동하거나 이름을 바꿉니다.
- 예: mv file.txt new_location/file.txt(파일 이동), mv file.txt new_name.txt(파일 이름 바꾸기), mvdirectory new_location/directory(디렉토리 이동).
cat: 파일의 내용을 표시합니다.
- 예: 고양이 파일.txt.
less: 대화형으로 파일의 내용을 봅니다.
- 예: file.txt를 줄입니다.
head: 파일의 처음 몇 줄을 표시합니다.
- 예: head -n 10 file.txt(처음 10줄 표시)
tail : 파일의 마지막 몇 줄을 표시합니다.
- 예: tail -n 5 file.txt(마지막 5줄 표시)
grep: 파일에서 패턴을 검색합니다.
- 예: grep “pattern” file.txt(파일에서 패턴 검색)
chmod: 파일 권한을 변경합니다.
- 예: chmod +x script.sh (파일에 실행 권한 추가)
chown: 파일이나 디렉터리의 소유자를 변경합니다.
- 예: chown user:group file.txt(파일의 소유자 및 그룹 변경)
sudo: 슈퍼유저(관리자) 권한으로 명령을 실행합니다.
- 예: sudo apt-get install package_name(패키지 관리자를 사용하여 패키지 설치)
Linux 중급 명령:
찾기: 다양한 기준에 따라 파일 및 디렉터리를 검색합니다.
- 예: find /path/to/search -name “*.txt”(.txt 확장자를 가진 모든 파일 찾기).
grep: 파일 내에서 패턴을 검색합니다.
- 예: grep “pattern” file.txt(파일에서 패턴 검색)
sed: 텍스트 수정을 위한 스트림 편집기입니다.
- 예: sed ‘s/foo/bar/’ file.txt(file.txt에서 “foo”를 “bar”로 교체).
awk: 데이터를 추출하고 조작하기 위한 텍스트 처리 도구입니다.
- 예: awk ‘{print $1}’ file.txt(file.txt에서 각 줄의 첫 번째 필드를 인쇄합니다).
sort: 텍스트 파일의 줄을 정렬합니다.
- 예: file.txt 정렬(file.txt의 줄을 알파벳순으로 정렬)
uniq: 정렬된 파일에서 중복된 줄을 제거합니다.
- 예: uniq file.txt(file.txt에서 중복된 줄 제거).
wc: 단어, 줄, 문자 및 바이트 수입니다.
- 예: wc -l file.txt(file.txt의 줄 수 계산).
tar: 파일을 tarball(압축 파일)로 보관합니다.
- 예: tar -czvf archive.tar.gz files/ (“files” 디렉토리의 압축된 tarball 생성).
gzip: 파일을 압축합니다.
- 예: gzip file.txt(file.txt를 압축하여 file.txt.gz 생성).
gunzip: gzip 파일의 압축을 푼다.
- 예: gunzip file.txt.gz(file.txt.gz 압축 해제).
wget: 웹에서 파일을 다운로드합니다.
- 예: wget https://example.com/file.txt(URL 에서 file.txt 다운로드).
ssh: Secure Shell — 네트워크를 통해 다른 시스템에 원격으로 연결합니다.
- 예: ssh user@hostname(원격 시스템에 연결)
scp : 네트워크를 통해 호스트 간에 파일을 안전하게 복사합니다.
- 예: scp file.txt user@remote:/path/to/destination (file.txt를 원격 시스템에 복사).
du: 파일 및 디렉터리 디스크 사용량을 추정합니다.
- 예: du -sh 디렉토리(디렉토리의 전체 크기를 사람이 읽을 수 있는 형식으로 표시).
df: 파일 시스템 디스크 공간 사용량을 보고합니다.
- 예: df -h(마운트된 모든 파일 시스템의 디스크 공간 사용량을 사람이 읽을 수 있는 형식으로 표시)
Linux 고급 명령:
rsync: 로컬 시스템과 원격 시스템 간의 파일과 디렉터리를 동기화합니다.
- 예: rsync -avz source/ Destination/(소스 디렉터리의 내용을 대상 디렉터리에 동기화).
scp: 네트워크를 통해 호스트 간에 파일을 안전하게 복사합니다.
- 예: scp -r user@remote:/path/to/source/ /path/to/destination/ (원격 시스템과 로컬 시스템 간에 파일 및 디렉터리를 반복적으로 복사).
ssh-keygen: 보안 인증을 위해 SSH 키 쌍을 생성합니다.
- 예: ssh-keygen -t rsa -b 4096(4096비트 RSA 키 쌍 생성)
화면: 단일 SSH 세션 내에서 여러 터미널 세션을 생성하고 관리합니다.
- 예: screen(새 스크린 세션 시작), screen -r(분리된 스크린 세션 재개).
top: 시스템 프로세스와 리소스 사용량을 실시간으로 모니터링합니다.
- 예: top(실시간 프로세스 정보 표시).
htop: 향상된 UI를 갖춘 대화형 프로세스 뷰어입니다.
- 예: htop(htop 프로세스 뷰어 실행).
cron : 반복 작업을 예약합니다.
- 예: crontab -e(사용자의 crontab 파일 편집), crontab -l(사용자의 crontab 항목 나열).
systemctl: 시스템 서비스와 데몬을 제어하고 관리합니다.
- 예: systemctl start service_name(서비스 시작), systemctl stop service_name(서비스 중지).
Journalctl: 시스템 로그를 보고 관리합니다.
- 예: Journalctl -u service_name(특정 서비스에 대한 로그 표시), Journalctl -f(실시간으로 로그 추적).
dd: 파일과 디스크 이미지를 변환하고 복사합니다.
- 예: dd if=/dev/sda of=image.img bs=4M(/dev/sda 디스크의 이미지 생성)
lsof: 열려 있는 파일과 프로세스를 나열합니다.
- 예: lsof -i :port_number(특정 포트를 사용하는 프로세스 나열)
tcpdump: 네트워크 트래픽을 캡처하고 분석합니다.
- 예: tcpdump -i eth0 port 80(eth0 인터페이스에서 HTTP 트래픽 캡처)
nc: Netcat — 네트워크 연결을 통해 데이터를 읽고 쓰는 데 사용되는 네트워크 유틸리티입니다.
- 예: nc -l -p port_number(특정 포트에서 수신 연결 수신)
strace: 실행 중인 프로그램의 시스템 호출 및 신호를 추적합니다.
- 예: strace -p process_id(특정 프로세스의 시스템 호출 추적)
chroot: 특정 명령이나 프로세스의 루트 디렉터리를 변경합니다.
- 예: chroot /new_root_directory 명령(다른 루트 디렉터리로 명령 실행)
Linux 네트워킹 명령:
ifconfig: 네트워크 인터페이스를 표시하거나 구성합니다.
- 예: ifconfig eth0(eth0 인터페이스에 대한 정보 표시).
ip: 라우팅, 네트워크 장치 및 주소를 표시하거나 조작합니다.
- 예: ip addr show(네트워크 인터페이스의 IP 주소 표시).
ping: ICMP 에코 요청을 지정된 네트워크 호스트로 보냅니다.
- 예: ping google.com ( google.com 에 ICMP 에코 요청 보내기 )
Traceroute: 네트워크 호스트로 가는 경로 패킷을 인쇄합니다.
- 예: Traceroute google.com ( google.com 에 대한 경로 추적 )
netstat: 네트워크 연결 정보, 라우팅 테이블 및 네트워크 인터페이스 통계를 표시합니다.
- 예: netstat -tuln(수신 포트 표시).
ss: 소켓을 조사하는 유틸리티입니다.
- 예: ss -tunap(TCP 및 UDP 소켓과 관련 프로세스 표시)
dig: DNS 서버를 쿼리하기 위한 DNS 조회 유틸리티입니다.
- 예: google.com을 검색합니다( google.com 에 대한 DNS 조회 수행 ).
호스트: DNS 서버를 쿼리하기 위한 DNS 조회 유틸리티입니다.
- 예: google.com을 호스트합니다( google.com 에 대한 DNS 조회 수행 ).
wget: 웹에서 파일을 다운로드합니다.
- 예: wget https://example.com/file.txt(URL 에서 file.txt 다운로드).
컬: 다양한 프로토콜을 사용하여 데이터를 전송하기 위한 명령줄 도구입니다.
- 예: 컬 https://example.com (웹페이지의 콘텐츠 검색).
ssh : Secure Shell — 네트워크를 통해 다른 시스템에 원격으로 연결합니다.
- 예: ssh user@hostname(원격 시스템에 연결)
scp: 네트워크를 통해 호스트 간에 파일을 안전하게 복사합니다.
- 예: scp file.txt user@remote:/path/to/destination (file.txt를 원격 시스템에 복사).
iptables: IPv4 패킷용 방화벽 관리 도구입니다.
- 예: iptables -L(현재 방화벽 규칙 표시)
ip6tables: IPv6 패킷용 방화벽 관리 도구입니다.
- 예: ip6tables -L(현재 IPv6 방화벽 규칙 표시)
Route: IP 라우팅 테이블을 표시하거나 조작합니다.
- 예: Route -n(라우팅 테이블 표시)
Linux 성능 명령:
top: CPU 사용량, 메모리 사용량, 실행 중인 프로세스 등을 포함한 실시간 시스템 정보를 표시합니다.
- 예: 상단
htop: 향상된 UI를 갖춘 대화형 프로세스 뷰어로 자세한 시스템 모니터링을 제공합니다.
- 예: htop
vmstat: CPU 사용량, 메모리 활용도, I/O 통계를 포함한 가상 메모리 통계를 보고합니다.
- 예: vmstat
iostat: 장치 및 파티션에 대한 CPU 및 I/O 통계를 보고합니다.
- 예: iostat
sar: 시스템 활동 정보를 수집, 보고 또는 저장합니다.
- 예: sar -u(CPU 사용량 표시)
free: 메모리 사용량 및 통계를 표시합니다.
- 예: 무료
ps: CPU 및 메모리 사용량을 포함하여 현재 프로세스의 스냅샷을 보고합니다.
- 예: ps aux
pidstat: CPU, 메모리, I/O 사용량을 포함한 프로세스에 대한 통계를 보고합니다.
- 예: pidstat
dstat: 여러 성능 지표를 결합하는 다목적 리소스 통계 도구입니다.
- 예: dstat
perf: 시스템 동작을 분석하고 조사하기 위한 강력한 성능 프로파일링 도구입니다.
- 예: perf Record -p PID(특정 프로세스에 대한 성능 데이터 기록)
strace: 실행 중인 프로그램의 시스템 호출 및 신호를 추적합니다.
- 예: strace -p PID(특정 프로세스에 대한 시스템 호출 추적)
가동 시간: 시스템 가동 시간 및 로드 평균을 표시합니다.
- 예: 가동 시간
lsof: 열려 있는 파일과 프로세스를 나열하며 리소스 사용량을 식별하는 데 유용합니다.
- 예: lsof -i(네트워크 연결 나열)
netstat: 네트워크 연결 정보, 라우팅 테이블 및 네트워크 인터페이스 통계를 표시합니다.
- 예: netstat -s(네트워크 통계 표시)
iotop: 프로세스 및 디스크의 I/O 사용량 정보를 모니터링합니다.
- 예: 아이오톱
Linux 문제 해결 명령:
dmesg: 하드웨어 및 드라이버 문제에 대한 정보를 제공할 수 있는 시스템의 커널 링 버퍼 메시지를 표시합니다.
- 예: dmesg
Journalctl: systemd 로그를 포함한 시스템 로그를 보고 관리합니다.
- 예: 저널ctl
lsmod: 로드된 커널 모듈을 나열합니다.
- 예: lsmod
lspci: 시스템에 연결된 PCI 장치를 나열합니다.
- 예: lspci
lsusb: 시스템에 연결된 USB 장치를 나열합니다.
- 예: lsusb
lsblk: 블록 장치(디스크)에 대한 정보를 나열합니다.
- 예: lsblk
fdisk: 디스크 파티션 테이블을 표시하거나 조작합니다.
예: fdisk -l(디스크 파티션 나열)
blkid: UUID 및 파일 시스템 유형과 같은 블록 장치 속성을 인쇄합니다.
- 예: 블키드
ifconfig: 네트워크 인터페이스를 표시하거나 구성합니다.
- 예: ifconfig
ip: 라우팅, 네트워크 장치 및 주소를 표시하거나 조작합니다.
- 예: IP 주소 표시
ping: ICMP 에코 요청을 지정된 네트워크 호스트로 보냅니다.
- 예: google.com ping
Traceroute: 네트워크 호스트로 가는 경로 패킷을 인쇄합니다.
- 예: 경로 추적 google.com
netstat: 네트워크 연결 정보, 라우팅 테이블 및 네트워크 인터페이스 통계를 표시합니다.
- 예: netstat -tuln
ssh: Secure Shell — 네트워크를 통해 다른 시스템에 원격으로 연결합니다.
- 예: SSH 사용자@호스트 이름
sudo: 슈퍼유저(관리자) 권한으로 명령을 실행합니다.
- 예: sudo 명령