
1. 프로그램설치
1) dpkg
dpkg는 Debian 계열의 리눅스 배포판에서 패키지를 설치하고 관리하기 위한 기본적인 도구 중 하나이다. 이 도구는 Debian, Ubuntu, Mint 등에서 사용된다. dpkg를 사용하여 패키지를 직접 설치하고 관리할 수 다.
- 패키지설치
sudo dpkg -i 패키지.deb
.deb 확장자를 가진 패키지 파일을 설치
-패키지 삭제
sudo dpkg -r 패키지이름
패키지를 삭제한다. 단, 이 명령어는 패키지에 의존하는 다른 패키지를 제거하지 않는다.
- 패키지 강제 삭제
sudo dpkg --force-all -r 패키지이름
의존성 문제를 무시하고 패키지를 삭제한다.
-패키지 정보
dpkg -l 패키지이름
2) apt-get
dpkg의 문제점은 파일을 직접 설치하다 보니까 의존성, 업데이트 관리가 안되는 것이다. 따라서 이를 해결하기 위해서 apt-get을 이용한다.
패키지들은 인터넷 저장소에 저장되고, apt-get 명령어를 이용하여 이 저장소에 액세스할 수 있다. 저장소에는 다양한 소프트웨어 패키지들이 버전별로 관리된다.

- 우분투 패키지 저장소
우분투는 다양한 패키지를 제공하는 패키지 저장소를 관리한다. 이 저장소들은 /etc/apt/sources.list 파일에 있는 URL을 통해 접근한다.
- Main (메인):
- 유형: 우분투 공식 지원, 무료
- 설명: 우분투에서 직접 지원하며 무료로 제공되는 주요 패키지를 포함.
- Universe (유니버스):
- 유형: 우분투 공식 지원 아님, 무료
- 설명: 우분투에서 직접 지원하지 않지만 커뮤니티에 의해 관리되며 무료로 제공되는 패키지를 포함.
- Restricted (리스트리티드):
- 유형: 우분투 공식 지원, 유료
- 설명: 우분투에서 직접 지원하며 제한된 라이선스를 가진 소프트웨어를 제공한다.
- Multiverse (멀티버스):
- 유형: 우분투 공식 지원 아님, 유료
- 설명: 우분투에서 직접 지원하지 않으며, 제한된 라이선스를 가진 소프트웨어를 제공한다.
우분투 미러 사이트:
우분투 미러 사이트는 패키지 저장소의 복사본을 호스팅하며, 사용자는 가장 가까운 미러를 통해 패키지를 다운로드할 수 있다. 미러를 설정하려면 /etc/apt/sources.list 파일에서 주소를 변경하면 된다.
- 미러 주소 확인 및 변경:
- apt-get 명령어
명령어 | 기능 |
apt-get install [패키지 이름] | 패키지를 설치(-y 옵션을 주면 확인과정 없이 설치) |
apt-get update | 패키지 목록을 최신 상태로 업데이트 |
apt-get upgrade | 현재 시스템에 설치된 패키지를 최신 버전으로 업그레이드 |
apt-get remove [패키지 이름] | 패키지를 삭제 |
apt-get autoremove | 더 이상 필요하지 않은 패키지를 자동으로 삭제 |
apt-get clean [패키지 이름] apt-get autoclean |
다운로드한 패키지의 파일을 삭제 |
- 패키지 정보 및 의존성 확인
apt-cache show [패키지 이름] | 패키지의 상세 정보를 표시 |
apt-cache depends [패키지 이름] | 패키지가 의존하는 다른 패키지들을 표시 |
apt-cache rdepends [패키지 이름] | 패키지를 의존하는 다른 패키지들을 표시 |
2. 파일 압축과 묶기
1) 파일 압축
.xz, .bz2, .gz, .zip은 각각 리눅스 시스템에서 사용되는 압축 확장자이다. 각 확장자의 특징은 다음과 같습니다:
- .xz (XZ):
- 특징:
- 높은 압축률을 제공하며, .gz나 .zip에 비해 압축된 파일 크기가 작음.
- 압축 및 해제 속도는 상대적으로 느림.
- 주로 Linux에서 사용되며, 특히 소스 코드 압축 등에 많이 쓰임.
- 압축 명령어: xz [파일명]
- 압축 해제 명령어: xz -d [파일명.xz]
- 특징:
- .bz2 (Bzip2):
- 특징:
- 높은 압축률을 가지며, .gz에 비해 더 효율적인 압축을 제공.
- 압축 및 해제 속도는 .gz보다는 느림.
- 주로 소프트웨어 배포 및 데이터 백업에서 사용.
- 압축 명령어: bzip2 [파일명]
- 압축 해제 명령어: bzip2 -d [파일명.bz2]
- 특징:
- .gz (Gzip):
- 특징:
- 상대적으로 높은 압축률을 가지면서도 압축 및 해제 속도가 빠름.
- 주로 리눅스 시스템에서 사용되며, 텍스트 파일 및 로그 파일 등을 압축하는 데에 많이 쓰임.
- 압축 명령어: gzip [파일명]
- 압축 해제 명령어: gzip -d [파일명.gz]
- 특징:
- .zip:
- 특징:
- 플랫폼 간 호환성이 높아서 Windows, Linux, macOS 등 다양한 운영 체제에서 지원.
- .zip 파일은 일반적으로 압축 및 해제 속도가 빠름.
- 주로 파일 및 디렉터리를 압축하고 압축 해제하는 데에 널리 사용.
- 압축 명령어: zip [새로운파일이름.zip] [압축할 파일이름]
- 압축 해제 명령어: unzip [파일명.zip]
- 특징:
2) 파일 묶기
리눅스에서 압축과 묶기는 서로 다른 프로그램으로 수행한다. "tar"는 리눅스 및 UNIX 계열 시스템에서 파일을 묶거나 옵션에 따라서 압축하는 데 사용되는 명령줄 유틸리티이다. "tar"는 "tape archive"의 약자이며, 초기에는 자료를 테이프로 백업하기 위한 목적으로 사용되었다. 현재는 여러 파일과 디렉터리를 하나의 아카이브 파일로 묶거나, 압축하여 저장하거나 전송하는 데에 널리 사용된다.
- tar 명령어 옵션
동작:
- c: 묶기 (Create)
- x: 풀기 (Extract)
- t: 경로 확인 (List)
옵션:
- f: 파일 지정
- v: 과정 출력 (verbose)
- J: xz 압축과 함께 사용 (tar + xz)
- z: gzip 압축과 함께 사용 (tar + gzip)
- j: bzip2 압축과 함께 사용 (tar + bzip2)
1. 묶기
tar cvf archive.tar /directory
"/directory" 안에 있는 파일들을 archive.tar라는 이름으로 묶는다. 이때 압축 옵션은 없기 때문에 모으기만 하지 압축은 시행을 안한다.
2. 묶기 + 압축
tar cvfz archive.tar.gz /directory
"/directory" 안에 있는 파일들을 archive.tar.gz라는 이름으로 묶고 gzip형태로 압축한다.
3. 압축 해제
tar -xvfz archive.tar.gz
archive.tar.gz를 압축해제 한다.
3. 네트워크 관련 명령어, 파일
1) ifconfig
ifconfig 명령어는 네트워크 인터페이스의 현재 상태를 확인하고 설정하는 데 사용되는 유닉스 및 리눅스 명령어이다.

ifconfig 명령어의 출력에서 eth0는 네트워크 인터페이스이며 다음은 주요 출력 내용에 대한 설명이다.
- eth0:
- flags=4163: 인터페이스의 현재 상태를 나타내는 플래그. 여기서는 UP(활성화), BROADCAST(브로드캐스트 지원), RUNNING(동작 중), MULTICAST(멀티캐스트 지원) 플래그가 설정되어 있음을 나타낸다.
- mtu 9001: Maximum Transmission Unit(최대 전송 단위)로, 한 번에 전송 가능한 최대 데이터 크기
- inet 172.31.29.101: IPv4 주소. 이 인터페이스의 IP 주소는 172.31.29.101이다.
- netmask 255.255.240.0: 서브넷 마스크. 이 경우, 172.31.29.101이 속한 서브넷은 255.255.240.0 마스크를 사용.
- broadcast 172.31.31.255: 브로드캐스트 주소. 이 주소를 사용하여 동일한 네트워크에 있는 모든 시스템에 데이터를 보낸다.
- inet6 fe80::8b4:e1ff:fe30:bbfb: IPv6 주소
- ether 0a:b4:e1:30:bb:fb: MAC 주소
- RX packets 283087 / bytes 222861467:
- RX packets: 수신된 패킷의 수
- bytes: 수신된 바이트 수
- RX errors 0 / dropped 0 / overruns 0 / frame 0:
- RX errors: 수신 중에 발생한 에러의 수.
- dropped: 드롭된 패킷의 수
- overruns: 오버런(Overrun)이 발생한 횟수
- frame: 프레임 에러의 수
- TX packets 166397 / bytes 29003434:
- TX packets: 전송된 패킷의 수
- bytes: 전송된 바이트 수
- TX errors 0 / dropped 0 / overruns 0 / carrier 0 / collisions 0:
- TX errors: 전송 중에 발생한 에러의 수.
- dropped: 드롭된 패킷의 수
- overruns: 오버런(Overrun)이 발생한 횟수
- carrier: 캐리어 에러의 수
- collisions: 충돌 횟수
2) nslookup
nslookup은 네임 서버 조회를 수행하는 명령어로, 주로 DNS(Domain Name System) 정보를 검색하고 확인하는 데 사용된다. DNS는 호스트 이름을 IP 주소로, 또는 IP 주소를 호스트 이름으로 매핑하는 데 사용되는 분산 데이터베이스 시스템이다. nslookup을 사용하면 특정 도메인에 대한 DNS 정보를 확인하고 관련된 IP 주소 및 기타 정보를 얻을 수 있다.
DNS 서버를 직접 설정하려면 "/etc/resolv.conf"의 내용을 수정하면 된다. 하지만 로그아웃하면 초기화되기 때문에 영구적으로 변경하려면 /etc/network/interfaces 파일을 편집해야 한다.
- 168.126.63.1
168.126.63.1는 Korea Telecom의 무료 및 공개 DNS 서버의 IP 주소이다.
nslookup 명령어를 통해 프롬프트에 진입하고 DNS를 임시로 168.126.63.1로 설정한다.

이후에 "www.naver.com" 도메인 주소의 IP를 확인 할 수 있다.

3) ping
ping은 네트워크 상태를 확인하고 호스트 간의 연결을 테스트하기 위한 명령어 중 하나이다. 주로 ICMP(Internet Control Message Protocol) 패킷을 사용하여 목표 호스트로 데이터를 보내고, 목표 호스트가 이를 수신하고 응답하는 데 걸리는 시간을 측정한다.
ping [ip 혹은 url]
4) /etc/network/interfaces
/etc/network/interfaces는 Debian 계열 및 Ubuntu와 같은 일부 Linux 시스템에서 네트워크 인터페이스를 설정하는 데 사용되는 설정 파일 중 하나이다. 이 파일은 네트워크 구성과 관련된 정보를 정의하고 관리하는 데 중요한 역할을 한다.
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
해당 파일의 내용 중에서 저 내용을 통해 IP,netmask, gateway를 설정, 확인 할 수 있다.
5) /etc/hosts
/etc/hosts는 호스트 이름과 IP 주소를 매핑하는 로컬 시스템 파일로, 주로 호스트 이름을 IP 주소로 변환하기 위해 사용된다. 이 파일은 로컬에서 도메인 설정을 간단하게 해준다.
/etc/hosts 파일의 기본 형식은 다음과 같다
<IP 주소> <호스트 이름>
예를 들어
127.0.0.1 localhost
192.168.1.1 mycomputer
이 예제에서 127.0.0.1은 로컬 루프백 주소(localhost)를 나타내고, 192.168.1.1은 mycomputer 호스트 이름을 해당 IP 주소로 매핑한다. "/etc/hosts" 파일은 로컬 시스템에서만 작동하며, 네트워크를 통한 다른 시스템 간의 호스트 이름 해결에는 영향을 미치지 않는다.
4. 프로세스 관리
1) pstree
pstree 명령어는 프로세스의 계층 구조를 트리로 표시한다. 이를 통해 부모 프로세스와 자식 프로세스 간의 관계를 시각적으로 파악할 수 있다(옵션으로 -p하면 pid도 표시)
pstree -p
2) ps
ps 명령어는 현재 실행 중인 프로세스 정보를 제공한다. ps -ef 명령어를 통해 모든 프로세스의 전체 리스트를 확인할 수 있다. grep 명령어를 사용하여 특정 프로세스를 찾을 수 있다.
ps -ef | grep [프로세스 이름]
3) 프로세스 강제종료
프로세스 관리에서 가장 중요한 부분 중 하나는 비정상적으로 동작하는 프로세스를 종료하는 것이다. kill 명령어를 사용하여 특정 프로세스를 종료할 수 있다. 이때 "-9" 옵션은 강제로 프로세스를 종료하는데 쓰인다. pkill 명령어는 프로세스 이름을 기반으로 종료시킨다.
kill -9 [프로세스 ID]
pkill [프로세스 이름]
4) 작업관리
리눅스에서 작업 관리는 백그라운드 또는 포그라운드에서 실행 중인 프로세스를 관리하는 것을 의미한다. 여러 명령어와 도구를 사용하여 작업을 시작, 중지, 백그라운드 또는 포그라운드로 전환하고, 현재 실행 중인 작업을 모니터링할 수 있다.
다음 명령어를 실행시킨다. 의미는 다음과 같다.
yes > /dev/null &
- yes 명령어:
- yes 명령어는 무한히 "y"를 출력하는 명령어이다.
- > 리디렉션 연산자:
- >는 리디렉션 연산자로, 명령어의 출력을 지정된 파일로 리디렉션한다.
- /dev/null:
- /dev/null은 리눅스 및 Unix 시스템에서 특별한 파일로, 모든 데이터를 버릴 때 사용한다. 즉, 이 파일로 출력하면 아무것도 저장되지 않는다.
- & 백그라운드 실행:
- &는 명령어를 백그라운드에서 실행하도록 하는 기호이다. 이를 사용하면 해당 명령어가 프롬프트를 차지하지 않고 실행된다.
그러면 해당 프로세스의 PID가 출력된다.

또한 jobs 명령어를 치면 다음과 같이 yes 프로세스가 Running 되어 있다고 나온다. 맨 앞의 숫자 "[1]"은 작업번호가 1이라는 뜻이다.(참고로 백그라운드에서 실행되는 시스템 관련 프로세스는 안나온다.)

jobs 명령어는 현재 쉘에서 실행 중인 작업을 확인할 수 있다. bg 명령어는 작업을 백그라운드에서 실행하고, fg 명령어는 작업을 포그라운드로 가져올 수 있다.
fg [작업 번호] # 포그라운드로 가져오기
bg [작업 번호] # 백그라운드로 전환
5) 서비스와 소켓
서비스와 소켓은 systemd에서 제공하는 기능으로, 서버 및 네트워크와 관련된 백그라운드 작업을 관리할 수 있다.
"/lib/systemd/system/"에서 .service 파일은 서비스에 대한 설정을 포함하고, .socket 파일은 소켓에 대한 설정을 포함한다.
systemctl list-unit-files
위 명령어를 사용하여 현재 활성화된 서비스와 소켓을 확인할 수 있다.
정리
1. 프로그램 설치
- dpkg:
- 패키지 설치: sudo dpkg -i 패키지.deb
- 패키지 삭제: sudo dpkg -r 패키지이름
- 패키지 강제 삭제: sudo dpkg --force-all -r 패키지이름
- 패키지 정보: dpkg -l 패키지이름
- apt-get:
- 패키지 설치: apt-get install [패키지 이름]
- 업데이트 및 업그레이드: apt-get update, apt-get upgrade
- 패키지 삭제: apt-get remove [패키지 이름]
- 불필요한 패키지 자동 삭제: apt-get autoremove
2. 파일 압축과 묶기
- 파일 압축:
- .xz, .bz2, .gz, .zip 확장자 설명 및 사용법
- 파일 묶기:
- tar 명령어로 파일 묶기 및 압축:
- 묶기: tar cvf archive.tar /directory
- 묶기 + 압축: tar cvfz archive.tar.gz /directory
- 압축 해제: tar -xvfz archive.tar.gz
- tar 명령어로 파일 묶기 및 압축:
3. 네트워크 관련 명령어, 파일
- ifconfig:
- 네트워크 인터페이스 상태 확인: ifconfig
- nslookup:
- DNS 정보 조회: nslookup [도메인] [DNS 서버 주소]
- ping:
- 호스트 간 연결 테스트: ping [ip 또는 url]
- /etc/network/interfaces:
- 네트워크 설정 파일
4. 프로세스 관리
- pstree:
- 프로세스 계층 구조 트리: pstree -p
- ps:
- 실행 중인 프로세스 정보: ps -ef | grep [프로세스 이름]
- 프로세스 강제 종료:
- kill -9 [프로세스 ID], pkill [프로세스 이름]
- 작업 관리:
- yes > /dev/null &, jobs, fg [작업 번호], bg [작업 번호]
- 서비스와 소켓 확인:
- systemctl list-unit-files
'컴퓨터 > 운영체제' 카테고리의 다른 글
Ubuntu - 5. 원격으로 서버 접속(Telnet, SSH) (0) | 2023.12.15 |
---|---|
Ubuntu - 4. 하드디스크 마운트, RAID(Redundant Array of Independent Disks) (0) | 2023.12.10 |
Ubuntu - 2. 우분투(리눅스) 기본 사용법1 (0) | 2023.12.07 |
Ubuntu - 1. 우분투 개요 (0) | 2023.12.04 |
운영체제 -프록시 서버 (0) | 2023.11.05 |