기본 콘텐츠로 건너뛰기

4월, 2025의 게시물 표시

리눅스에서 MySQL 및 PostgreSQL 데이터베이스 설치 및 관리

리눅스에서 데이터베이스 설치 및 관리 (MySQL/PostgreSQL) 안녕하세요, mj입니다! 오늘은 리눅스에서 MySQL과 PostgreSQL 데이터베이스를 설치하고 관리하는 방법에 대해 알아보겠습니다. 데이터베이스는 애플리케이션의 핵심 요소로, 올바르게 설치하고 관리하는 것이 중요합니다. 1. MySQL 설치하기 MySQL은 가장 널리 사용되는 오픈 소스 데이터베이스 중 하나입니다. 다음은 Ubuntu에서 MySQL을 설치하는 방법입니다. 1.1. MySQL 설치 명령어 sudo apt update sudo apt install mysql-server 1.2. 설치 확인하기 설치가 완료되면 다음 명령어로 MySQL 서버가 정상적으로 실행되고 있는지 확인할 수 있습니다. sudo systemctl status mysql 1.3. MySQL 보안 설정 설치 후 보안 설정을 진행해야 합니다. 다음 명령어를 입력하여 보안 설정을 시작합니다. sudo mysql_secure_installation 1.4. 예시: 데이터베이스 생성 MySQL에 접속하여 새로운 데이터베이스를 생성해 보겠습니다. mysql -u root -p CREATE DATABASE sample_db; 출력 결과: Query OK, 1 row affected 2. PostgreSQL 설치하기 PostgreSQL은 강력한 기능을 제공하는 오픈 소스 데이터베이스입니다. 다음은 Ubuntu에서 PostgreSQL을 설치하는 방법입니다. 2.1. PostgreSQL 설치 명령어 sudo apt update sudo apt install postgresql postgresql-contrib 2.2. 설치 확인하기 PostgreSQL 서버가 정상적으로 실행되고 있는지 확인합니다. sudo systemctl status postgresql 2.3. PostgreSQL 사용자 및 데이터베이스 생성 PostgreSQL에 접속하여 새로운 사용자 및 데이터베이스를 생...

리눅스에서 MySQL 및 PostgreSQL 데이터베이스 설치 및 관리

리눅스에서 데이터베이스 설치 및 관리 (MySQL/PostgreSQL) 안녕하세요, mj입니다! 오늘은 리눅스에서 MySQL과 PostgreSQL 데이터베이스를 설치하고 관리하는 방법에 대해 알아보겠습니다. 데이터베이스는 애플리케이션의 핵심 요소로, 올바르게 설치하고 관리하는 것이 중요합니다. 1. MySQL 설치하기 MySQL은 가장 널리 사용되는 오픈 소스 데이터베이스 중 하나입니다. 다음은 Ubuntu에서 MySQL을 설치하는 방법입니다. 1.1. MySQL 설치 명령어 sudo apt update sudo apt install mysql-server 1.2. 설치 확인하기 설치가 완료되면 다음 명령어로 MySQL 서버가 정상적으로 실행되고 있는지 확인할 수 있습니다. sudo systemctl status mysql 1.3. MySQL 보안 설정 설치 후 보안 설정을 진행해야 합니다. 다음 명령어를 입력하여 보안 설정을 시작합니다. sudo mysql_secure_installation 1.4. 예시: 데이터베이스 생성 MySQL에 접속하여 새로운 데이터베이스를 생성해 보겠습니다. mysql -u root -p CREATE DATABASE sample_db; 출력 결과: Query OK, 1 row affected 2. PostgreSQL 설치하기 PostgreSQL은 강력한 기능을 제공하는 오픈 소스 데이터베이스입니다. 다음은 Ubuntu에서 PostgreSQL을 설치하는 방법입니다. 2.1. PostgreSQL 설치 명령어 sudo apt update sudo apt install postgresql postgresql-contrib 2.2. 설치 확인하기 PostgreSQL 서버가 정상적으로 실행되고 있는지 확인합니다. sudo systemctl status postgresql 2.3. PostgreSQL 사용자 및 데이터베이스 생성 PostgreSQL에 접속하여 새로운 사용자 및 데이터베이스를 생...

리눅스에서 SSH 키 생성 및 관리: 보안 강화 방법

리눅스에서 SSH 키 생성 및 관리 안녕하세요, mj입니다. 오늘은 리눅스에서 SSH 키를 생성하고 관리하여 보안을 강화하는 방법에 대해 알아보겠습니다. SSH(Secure Shell)는 원격 서버에 안전하게 접속할 수 있는 프로토콜로, SSH 키를 사용하면 비밀번호 없이도 안전하게 인증할 수 있습니다. SSH 키란? SSH 키는 공개 키 암호 방식을 사용하는 인증 방법입니다. 두 개의 키, 즉 공개 키와 개인 키로 구성됩니다. 공개 키는 서버에 저장되고, 개인 키는 클라이언트에서 안전하게 보관됩니다. 이 두 키는 서로 연결되어 있어, 개인 키로 서명된 메시지는 공개 키로 검증할 수 있습니다. SSH 키 생성 방법 리눅스에서 SSH 키를 생성하는 방법은 다음과 같습니다. 터미널을 열고 아래의 명령어를 입력하세요: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 위 명령어를 실행하면, 다음과 같은 출력 결과를 볼 수 있습니다: Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): 키 파일의 저장 경로를 입력하거나 기본값을 사용하면, 개인 키와 공개 키가 생성됩니다. 아래와 같은 결과가 나옵니다: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: SHA256:abc1234567890 your_email@example.com The key's randomart image is: +---[RSA 4096]----+ | .o. | | o.o. . | | o..+o . | | .o+oEo...

리눅스에서 사용자 그룹 관리하는 방법

리눅스에서 사용자 그룹 관리하기 안녕하세요, mj입니다. 오늘은 리눅스에서 사용자 그룹을 생성하고 관리하는 방법에 대해 알아보겠습니다. 사용자 그룹이란? 사용자 그룹은 여러 사용자를 묶어 관리할 수 있는 기능으로, 권한을 일괄적으로 부여하거나 관리할 수 있는 장점이 있습니다. 예를 들어, 특정 그룹의 사용자에게만 파일 접근 권한을 부여할 수 있습니다. 사용자 그룹 생성하기 리눅스에서 사용자 그룹을 생성하기 위해서는 groupadd 명령어를 사용합니다. 다음은 그룹을 생성하는 예시입니다. sudo groupadd developers 위 명령어는 "developers"라는 이름의 그룹을 생성합니다. 예시: 여러 그룹 생성하기 sudo groupadd designers - 디자이너 그룹 생성 sudo groupadd testers - 테스터 그룹 생성 sudo groupadd admins - 관리자 그룹 생성 sudo groupadd marketing - 마케팅 그룹 생성 sudo groupadd sales - 영업 그룹 생성 사용자 그룹에 사용자 추가하기 그룹 생성 후에는 usermod 명령어를 사용하여 사용자를 그룹에 추가할 수 있습니다. 예를 들어, "mj" 사용자를 "developers" 그룹에 추가하는 방법은 다음과 같습니다. sudo usermod -aG developers mj 위 명령어에서 -aG 는 추가 모드로, 기존 그룹에 사용자를 추가하는 역할을 합니다. 예시: 여러 사용자 그룹에 추가하기 sudo usermod -aG designers mj - 디자이너 그룹에 mj 추가 sudo usermod -aG testers mj - 테스터 그룹에 mj 추가 sudo usermod -aG admins mj - 관리자 그룹에 mj 추가 sudo usermod -aG marketing mj - 마케팅 그룹에 mj 추가 sudo use...

리눅스에서의 파일 시스템 마운트하기 - mj의 블로그

리눅스에서의 파일 시스템 마운트하기 안녕하세요, mj입니다! 오늘은 리눅스에서 파일 시스템을 마운트하는 방법에 대해 알아보겠습니다. 파일 시스템 마운트는 데이터 접근을 위해 특정 디렉토리에 파일 시스템을 연결하는 과정입니다. 이 글에서는 마운트의 기본 개념과 함께 실습 예제를 통해 자세히 설명하겠습니다. 1. 파일 시스템 마운트의 기본 개념 파일 시스템 마운트는 리눅스 운영 체제에서 외부 저장 장치나 파티션의 데이터를 사용할 수 있도록 하는 과정입니다. 기본적으로, 리눅스는 모든 파일을 트리 구조로 관리하며, 이를 위해 각 파일 시스템을 특정 디렉토리에 연결해야 합니다. 2. 마운트할 장치 확인하기 먼저, 마운트할 장치를 확인해야 합니다. 이를 위해 lsblk 명령어를 사용할 수 있습니다. 이 명령어는 현재 시스템에 연결된 블록 장치의 목록을 보여줍니다. lsblk 예시 출력 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 95G 0 part / └─sda2 8:2 0 5G 0 part [SWAP] sdb 8:16 0 200G 0 disk └─sdb1 8:17 0 200G 0 part 3. 마운트 포인트 생성하기 마운트할 장치의 데이터를 연결할 디렉토리인 마운트 포인트를 생성합니다. 일반적으로 /mnt 또는 /media 디렉토리 아래에 생성합니다. sudo mkdir /mnt/mydisk 4. 파일 시스템 마운트하기 이제 실제로 파일 시스템을 마운트합니다. 다음 명령어를 사용합니다. sudo mount /dev/sdb1 /mnt/mydisk 예시 출력 마운트가 성공적으로 완료되면 출력이 없거나 다음과 같은 메시지가 나타납니다: (no output) 5. 마운트 확인하기 마운트...

리눅스 시스템 모니터링 도구: 성능 최적화를 위한 필수 가이드

리눅스에서의 시스템 모니터링 도구 안녕하세요, mj입니다. 오늘은 리눅스에서 시스템 모니터링을 위한 다양한 도구를 소개해드리겠습니다. 시스템의 성능을 최적화하고 안정성을 높이기 위해서는 모니터링이 필수적입니다. 그럼 시작해볼까요? 1. top top 명령어는 실시간으로 시스템의 프로세스와 자원 사용량을 모니터링할 수 있는 도구입니다. CPU 사용률, 메모리 사용량, 프로세스 상태 등을 확인할 수 있습니다. top 출력 예시: top - 15:30:01 up 2:36, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.0 us, 0.5 sy, 0.0 ni, 98.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 7972.0 total, 1320.0 free, 1945.0 used, 5657.0 buff/cache 2. htop htop 은 top 의 확장판으로, 더 직관적인 인터페이스를 제공합니다. 프로세스를 종료하거나 우선순위를 변경하는 등의 작업도 쉽게 할 수 있습니다. htop 출력 예시: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 mj 20 0 162928 12232 8596 S 0.7 0.2 0:00.01 bash 3. vmstat vmstat 는 시스템의 메모리, 프로세스, 입출력, CPU 활동 등을 모니터링할 수 있는 도구입니다. 주기적으로 시스템의 성능을 확인하고 문제를 진단하는 데 유용합니다. vmstat 1 5 출력 예시: procs ----------- memory---------- --- swap-- ----- io---- system-- -...

리눅스에서 파일 시스템 마운트하는 방법과 과정

리눅스에서 파일 시스템 마운트하기 안녕하세요, mj입니다! 오늘은 리눅스에서 파일 시스템을 마운트하는 방법에 대해 알아보겠습니다. 리눅스에서 파일 시스템을 마운트하는 과정은 매우 중요하며, 이를 통해 외부 장치나 다른 파티션에 접근할 수 있습니다. 시작해 볼까요? 1. 마운트의 기본 개념 마운트(mount)는 운영체제에서 파일 시스템을 특정 디렉토리에 연결하는 작업을 의미합니다. 이를 통해 사용자는 해당 파일 시스템에 있는 파일 및 디렉토리에 접근할 수 있습니다. 리눅스에서는 일반적으로 /mnt 또는 /media 디렉토리를 사용하여 마운트를 수행합니다. 2. 마운트할 장치 확인하기 먼저, 마운트할 장치를 확인해야 합니다. 이를 위해 lsblk 명령어를 사용합니다. lsblk 출력 예시: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 500G 0 disk ├─sda1 8:1 0 100G 0 part / ├─sda2 8:2 0 400G 0 part /mnt/data 3. 파일 시스템 마운트하기 이제 mount 명령어를 사용하여 파일 시스템을 마운트할 수 있습니다. 다음과 같은 형식으로 명령어를 입력합니다: sudo mount /dev/sda2 /mnt/data 위 명령어는 /dev/sda2 를 /mnt/data 에 마운트합니다. 마운트 후 df -h 명령어로 확인할 수 있습니다. df -h 출력 예시: Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 15G 80G 16% / /dev/sda2 400G 100G 300G 25% /mnt/data 4. 마운트 해제하기 마운트를 해제하려면 umount 명령어를 사용합니다. 다음과 같은 형식으로 입력합니다: sudo umount /mnt/data 마운트 해제 후 다시 df -h ...

리눅스에서 DNS 설정 및 관리 방법

안녕하세요, mj입니다! 오늘은 리눅스에서 DNS를 설정하고 관리하는 방법에 대해 알아보겠습니다. 리눅스에서 DNS란? DNS(도메인 네임 시스템)는 도메인 이름을 IP 주소로 변환해주는 시스템입니다. 리눅스에서 DNS 설정은 웹사이트 운영이나 네트워크 관리에서 중요한 역할을 합니다. 1. DNS 서버 설치하기 리눅스에서 DNS 서버를 설치하려면 다음 명령어를 사용하세요: sudo apt-get install bind9 설치가 완료되면 /etc/bind/named.conf.options 파일을 수정하여 DNS 서버의 옵션을 설정합니다. 2. DNS 레코드 설정하기 DNS 레코드는 도메인의 IP 주소와 관련된 정보를 저장하는 데 사용됩니다. 예를 들어, 다음과 같은 A 레코드를 설정할 수 있습니다: example.com. IN A 192.0.2.1 위의 설정은 example.com 도메인을 192.0.2.1 IP 주소에 매핑합니다. 3. 예시: 다양한 DNS 레코드 아래는 다양한 목적별 DNS 레코드의 예시입니다: A 레코드: example.com. IN A 192.0.2.1 AAAA 레코드: example.com. IN AAAA 2001:db8::1 CNAME 레코드: www.example.com. IN CNAME example.com. MX 레코드: example.com. IN MX 10 mail.example.com. TXT 레코드: example.com. IN TXT "v=spf1 include:_spf.example.com ~all" 4. DNS 서비스 재시작 DNS 설정을 변경한 후에는 서비스를 재시작해야 합니다. 다음 명령어를 실행하세요: sudo systemctl restart bind9 5. DNS 설정 확인하기 설정이 제대로 되었는지 확인하기 위해 dig 명령어를 사용할 수 있습니다: dig example.com 위 명령어를 입력하면 DNS 레코드 정보를 확인할 수...

리눅스에서 MySQL 및 PostgreSQL 설치 및 관리 방법

리눅스에서 MySQL 및 PostgreSQL 설치 및 관리 방법 안녕하세요, mj입니다! 이번 포스팅에서는 리눅스 환경에서 MySQL과 PostgreSQL을 설치하고 관리하는 방법에 대해 알아보겠습니다. 데이터베이스는 현대 웹 애플리케이션에서 매우 중요한 역할을 하며, 이를 효과적으로 관리하는 것은 개발자에게 필수적인 스킬입니다. 1. MySQL 설치 및 관리 1.1 MySQL 설치 MySQL을 설치하기 위해서는 먼저 패키지 목록을 업데이트한 후, MySQL 서버를 설치합니다. 아래의 명령어를 사용하세요: sudo apt update sudo apt install mysql-server 설치가 완료되면, MySQL 서비스가 자동으로 시작됩니다. 다음 명령어로 상태를 확인할 수 있습니다: sudo systemctl status mysql 1.2 MySQL 보안 설정 MySQL 설치 후, 보안 설정을 위해 다음 명령어를 실행합니다: sudo mysql_secure_installation 이 과정을 통해 루트 비밀번호 설정, 익명 사용자 제거, 원격 루트 로그인 비활성화 등을 설정할 수 있습니다. 1.3 데이터베이스 및 테이블 생성 MySQL에 접속한 후, 데이터베이스를 생성하는 방법은 다음과 같습니다: mysql -u root -p CREATE DATABASE testdb; USE testdb; CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100)); 위 명령어로 'testdb'라는 데이터베이스와 'users'라는 테이블을 생성합니다. 1.4 데이터 삽입 및 조회 테이블에 데이터를 삽입하고 조회하는 방법은 다음과 같습니다: INSERT INTO users (name, email) VALUES ('홍길동', 'hong@example.com'); SELECT *...

리눅스에서 Apache와 Nginx로 웹 서버 설치하기

리눅스에서 Apache와 Nginx로 웹 서버 설치하기 안녕하세요! mj입니다. 오늘은 리눅스에서 Apache와 Nginx를 사용하여 웹 서버를 설치하는 방법에 대해 알아보겠습니다. 1. Apache 웹 서버 설치하기 Apache는 가장 널리 사용되는 웹 서버 중 하나로, 설치가 간편하고 다양한 기능을 제공합니다. 1.1 Apache 설치 sudo apt update sudo apt install apache2 위 명령어를 사용하여 Apache를 설치합니다. 설치가 완료되면, 다음 명령어로 Apache를 시작할 수 있습니다. sudo systemctl start apache2 sudo systemctl enable apache2 1.2 Apache 기본 페이지 확인 웹 브라우저에서 http://your_server_ip 를 입력하여 Apache 기본 페이지가 표시되는지 확인합니다. 성공적으로 설치되었다면, 다음과 같은 화면이 나타납니다: 1.3 Apache 설정 파일 수정 설정 파일은 /etc/apache2/apache2.conf 에 위치합니다. 필요한 경우 해당 파일을 수정하여 서버 설정을 조정할 수 있습니다. sudo nano /etc/apache2/apache2.conf 2. Nginx 웹 서버 설치하기 Nginx는 빠르고 가벼운 웹 서버로, 높은 성능을 자랑합니다. 다음은 Nginx 설치 방법입니다. 2.1 Nginx 설치 sudo apt update sudo apt install nginx Nginx 설치 후, 다음 명령어로 시작합니다. sudo systemctl start nginx sudo systemctl enable nginx 2.2 Nginx 기본 페이지 확인 웹 브라우저에서 http://your_server_ip 를 입력하여 Nginx 기본 페이지를 확인합니다. 성공적으로 설치되었다면 다음과 같은 화면이 나타납니다: 2.3 Nginx 설정 파일 수정 Nginx의 설정 파일은 /etc/nginx/n...

리눅스에서 프로세스 우선순위 조정하기: nice와 renice 명령어 사용법

리눅스에서 프로세스 우선순위 조정하기 안녕하세요, mj입니다! 오늘은 리눅스에서 프로세스의 우선순위를 조정하는 방법에 대해 알아보겠습니다. 시스템 관리에서 프로세스의 우선순위를 적절히 설정하는 것은 매우 중요합니다. 이러한 작업을 수행하기 위해 사용할 수 있는 두 가지 주요 명령어는 nice 와 renice 입니다. 1. nice 명령어 nice 명령어는 새로운 프로세스를 시작할 때 우선순위를 설정하는 데 사용됩니다. 기본적으로 프로세스는 우선순위 0으로 시작하며, nice 값을 조정하여 우선순위를 높이거나 낮출 수 있습니다. nice 명령어의 기본 구문은 다음과 같습니다: nice -n [우선순위] [명령어] 여기서 우선순위는 -20에서 19까지의 값을 가질 수 있으며, -20은 가장 높은 우선순위를 의미하고 19는 가장 낮은 우선순위를 의미합니다. 예시: nice 명령어 사용하기 우선순위 10으로 프로세스 시작하기: nice -n 10 sleep 60 이 명령어는 60초 동안 대기하는 프로세스를 우선순위 10으로 실행합니다. 우선순위 -5로 프로세스 시작하기: nice -n -5 myscript.sh 우선순위 -5로 myscript.sh 스크립트를 실행합니다. 기본 우선순위로 프로세스 시작하기: nice myprogram 우선순위 0으로 myprogram을 실행합니다. 우선순위 15로 프로세스 시작하기: nice -n 15 longrunningtask 우선순위 15로 긴 작업을 실행합니다. 우선순위 0으로 sleep 명령어 실행하기: nice sleep 30 기본 우선순위로 30초 동안 대기합니다. 2. renice 명령어 renice 명령어는 이미 실행 중인 프로세스의 우선순위를 변경하는 데 사용됩니다. 이 명령어를 사용하면 특정 프로세스의 우선순위를 쉽게 조정할 수 있습니다. renice 명령어의 기본 구문은 다음과 같습니다: renice [우선순위] -p [프로세스ID] 프로세스 ID는...

리눅스 방화벽 설정: iptables로 안전한 시스템 만들기

안녕하세요, mj입니다! 오늘은 리눅스에서 iptables를 사용하여 방화벽을 설정하는 방법에 대해 알아보겠습니다. iptables란? iptables는 리눅스에서 패킷 필터링과 NAT(Network Address Translation)를 위해 사용되는 방화벽 관리 도구입니다. 이를 통해 네트워크 트래픽을 제어하고 시스템을 보호할 수 있습니다. iptables 기본 구조 iptables는 규칙 체인(chain)으로 구성되어 있으며, 각 체인은 여러 규칙(rule)을 포함합니다. 기본적으로 INPUT, OUTPUT, FORWARD의 세 가지 체인이 있습니다. iptables 설치 대부분의 리눅스 배포판에는 기본적으로 iptables가 설치되어 있지만, 설치가 필요할 경우 다음 명령어를 사용할 수 있습니다: sudo apt-get install iptables # Ubuntu/Debian 계열 sudo yum install iptables # CentOS/RHEL 계열 기본 규칙 설정 기본적으로 모든 트래픽을 차단하고 필요한 서비스만 허용하는 것이 좋습니다. 다음은 기본 규칙을 설정하는 예시입니다: sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT 예시 1: SSH 접속 허용 SSH 서비스를 허용하려면 다음 명령어를 사용합니다: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT 출력 결과는 없습니다. 규칙이 성공적으로 추가된 경우, iptables 상태를 확인하면 됩니다. 예시 2: HTTP/HTTPS 트래픽 허용 웹 서버를 운영하는 경우, HTTP 및 HTTPS 트래픽을 허용해야 합니다: sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ...

리눅스에서 RAID 설정하기 - 데이터 보호와 성능 향상

리눅스에서 RAID 설정하기 안녕하세요, mj입니다. 오늘은 리눅스에서 RAID를 설정하는 방법과 그 장점에 대해 알아보겠습니다. RAID(중복 배열 독립 디스크)는 여러 개의 하드 드라이브를 묶어 데이터의 안전성과 성능을 향상시키는 기술입니다. RAID의 장점 데이터 보호: RAID는 데이터 손실을 방지합니다. 성능 향상: 여러 디스크에서 데이터를 동시에 읽고 쓸 수 있습니다. 확장성: 필요에 따라 디스크를 추가하여 용량을 늘릴 수 있습니다. 신뢰성: 하드웨어 고장 시에도 데이터 접근이 가능합니다. 유연성: 다양한 RAID 레벨을 통해 요구사항에 맞게 설정할 수 있습니다. RAID 설정 방법 리눅스에서 RAID를 설정하기 위해서는 mdadm 이라는 도구를 사용합니다. 다음은 기본적인 RAID 1 설정 방법입니다. 1. 필요한 패키지 설치 sudo apt-get install mdadm 2. 디스크 준비 RAID에 사용할 디스크를 확인합니다. 예를 들어, /dev/sdb와 /dev/sdc를 사용할 것입니다. sudo fdisk -l 3. RAID 배열 생성 RAID 1 배열을 생성합니다. sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc 4. 파일 시스템 생성 RAID 배열에 파일 시스템을 생성합니다. sudo mkfs.ext4 /dev/md0 5. RAID 배열 마운트 RAID 배열을 마운트합니다. sudo mount /dev/md0 /mnt RAID 설정 예시 아래는 RAID 설정의 예시입니다. RAID 0 예시 속도 향상: 두 개의 디스크에 데이터를 나누어 기록 예시 명령어: sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc RAID 1 예시 미러링: 두 개의 디스크에 동일한 데이터 저장 예시...

리눅스에서의 스왑 공간 관리 | mj의 블로그

리눅스에서의 스왑 공간 관리 안녕하세요, mj입니다! 오늘은 리눅스에서 스왑 공간을 생성하고 관리하는 방법에 대해 알아보겠습니다. 스왑 공간은 메모리 부족 시 시스템 성능을 유지하는 데 중요한 역할을 합니다. 스왑 공간을 효율적으로 관리하는 방법을 통해 시스템의 안정성을 높일 수 있습니다. 스왑 공간이란? 스왑 공간은 물리적 RAM이 부족할 때, 디스크의 일부를 메모리처럼 사용하는 공간입니다. 스왑 공간이 시스템에서 어떻게 작동하는지 이해하는 것이 중요합니다. 스왑은 주로 두 가지 형태로 존재합니다: 스왑 파일과 스왑 파티션입니다. 스왑 공간 생성하기 1. 스왑 파일 생성 스왑 파일을 생성하는 방법은 다음과 같습니다: sudo fallocate -l 1G /swapfile 위 명령어는 1GB 크기의 스왑 파일을 생성합니다. 파일 크기는 필요에 따라 조정할 수 있습니다. 2. 스왑 파일에 대한 권한 설정 생성한 스왑 파일의 권한을 설정합니다: sudo chmod 600 /swapfile 3. 스왑 영역 설정 스왑 파일을 스왑 영역으로 설정합니다: sudo mkswap /swapfile 4. 스왑 활성화 스왑 파일을 활성화합니다: sudo swapon /swapfile 5. 부팅 시 자동 활성화 설정 부팅 시 자동으로 스왑 파일이 활성화되도록 /etc/fstab 파일에 추가합니다: /swapfile none swap sw 0 0 스왑 공간 확인하기 현재 스왑 공간을 확인하려면 다음 명령어를 사용합니다: swapon --show 또는 free -h 스왑 공간 관리 팁 효율적인 스왑 공간 관리를 위한 몇 가지 팁은 다음과 같습니다: 스왑 공간 크기를 시스템 메모리에 맞게 조정하세요. 스왑 사용량을 모니터링하여 필요 시 조정하세요. 스왑 파일과 스왑 파티션을 혼합하여 사용할 수 있습니다. 서버의 부하에 따라 스왑 공간을 동적으로 변경하세요. 스왑 공간을 최적화하여 성능 저하를 방지하세요. 결론 리눅...

리눅스 메모리 관리: free와 top 명령어 활용하기

리눅스에서의 메모리 관리: free와 top 안녕하세요, mj입니다. 오늘은 리눅스 시스템에서 메모리를 효율적으로 관리하는 방법에 대해 알아보려고 합니다. 특히 free 와 top 명령어를 중심으로 설명하겠습니다. 이 두 가지 도구는 시스템의 메모리 사용 현황을 실시간으로 모니터링하고 분석하는 데 매우 유용합니다. 1. free 명령어 free 명령어는 시스템의 메모리 사용량을 간단하게 확인할 수 있는 도구입니다. 이 명령어를 사용하면 현재 사용 중인 메모리와 사용 가능한 메모리의 양을 알 수 있습니다. 예시 1: free 명령어 기본 사용법 free -h 위 명령어를 실행하면, 메모리 사용량이 인간이 읽기 쉽게 표시됩니다. 출력 예시: 총 메모리: 16G 사용 중: 8G 여유: 7G 버퍼/캐시: 1G 예시 2: 메모리 사용량 상세 확인 free -m 메모리 사용량을 메가바이트 단위로 표시합니다. 출력 예시: 총 메모리: 16384 사용 중: 8192 여유: 7168 버퍼/캐시: 1024 예시 3: 매 초마다 메모리 상태 확인 watch free -h 매 초마다 메모리 상태를 갱신하여 확인할 수 있습니다. 2. top 명령어 top 명령어는 시스템의 프로세스와 메모리 사용 현황을 실시간으로 보여주는 도구입니다. 이 명령어를 사용하면 CPU 사용량, 메모리 사용량, 실행 중인 프로세스 등의 정보를 종합적으로 확인할 수 있습니다. 예시 1: top 명령어 기본 사용법 top 위 명령어를 실행하면, 실시간으로 시스템 상태를 모니터링할 수 있습니다. 출력 예시: PID USER PR NI VIRT RES SHR S %C...

리눅스에서 소스 코드 컴파일하기 - mj의 개발 블로그

리눅스에서 소스 코드 컴파일하기 안녕하세요! mj입니다. 오늘은 리눅스에서 소스 코드를 컴파일하는 방법에 대해 알아보겠습니다. 소스 코드를 컴파일하는 과정은 기본적인 개발 작업 중 하나로, 이 과정을 통해 프로그램을 실행 가능한 형태로 변환할 수 있습니다. 1. 컴파일이란? 컴파일은 소스 코드를 기계어로 번역하여 실행 파일을 생성하는 과정입니다. 이 과정은 보통 C, C++, Java 등의 언어에서 필요합니다. 2. 리눅스에서 소스 코드 컴파일하기 리눅스에서 소스 코드를 컴파일하는 데 가장 많이 사용되는 도구는 GCC (GNU Compiler Collection) 입니다. GCC를 사용하여 소스 코드를 컴파일하는 기본적인 방법은 다음과 같습니다. 2.1. GCC 설치하기 먼저, GCC가 설치되어 있는지 확인합니다. 터미널을 열고 다음 명령어를 입력합니다: gcc --version 만약 설치되어 있지 않다면, 다음 명령어로 설치할 수 있습니다: sudo apt install build-essential 2.2. 간단한 C 프로그램 컴파일하기 다음은 간단한 C 프로그램을 작성하고 컴파일하는 예제입니다. #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } 위 코드를 hello.c 라는 파일에 저장한 후, 다음 명령어로 컴파일합니다: gcc hello.c -o hello 컴파일이 성공적으로 완료되면, 다음 명령어로 프로그램을 실행할 수 있습니다: ./hello 출력 결과: Hello, World! 3. 다양한 언어의 컴파일 예제 다양한 프로그래밍 언어에서의 컴파일 예제를 살펴보겠습니다. 3.1. C++ 프로그램 컴파일하기 #include <iostream> int main() { std::cout << "Hello, C++ W...

리눅스에서 소스 코드 컴파일하는 방법 - mj의 블로그

안녕하세요! mj입니다. 오늘은 리눅스에서 소스 코드를 컴파일하는 기본적인 방법에 대해 알아보겠습니다. 리눅스는 많은 개발자들이 사용하는 운영 체제이며, 소스 코드 컴파일은 소프트웨어 개발의 중요한 과정입니다. 이 글에서는 gcc를 이용한 컴파일 방법을 중점적으로 다루겠습니다. 1. 리눅스에서 gcc 설치하기 먼저, gcc(GNU Compiler Collection)를 설치해야 합니다. 대부분의 리눅스 배포판에서는 기본적으로 설치되어 있지만, 만약 설치되어 있지 않다면 다음 명령어를 사용하여 설치할 수 있습니다. sudo apt update sudo apt install build-essential 2. 소스 코드 작성하기 간단한 C 프로그램을 작성해 보겠습니다. 아래와 같은 내용을 가진 hello.c 파일을 생성해 주세요. #include int main() { printf("Hello, World!\n"); return 0; } 3. 소스 코드 컴파일하기 이제 작성한 소스 코드를 컴파일해 보겠습니다. 다음 명령어를 터미널에 입력합니다. gcc hello.c -o hello 위 명령어에서 -o 옵션은 생성될 실행 파일의 이름을 지정합니다. 이제 hello 라는 실행 파일이 생성되었습니다. 4. 실행 결과 확인하기 생성된 실행 파일을 실행해 보겠습니다. 아래 명령어를 입력합니다. ./hello 출력 결과는 다음과 같습니다: Hello, World! 5. 다양한 컴파일 예시 5.1. 여러 파일 컴파일하기 여러 개의 C 파일을 컴파일하려면 다음과 같이 입력합니다. gcc file1.c file2.c -o output 5.2. 디버깅 정보 포함하기 디버깅 정보를 포함하려면 -g 옵션을 사용합니다. gcc -g hello.c -o hello 5.3. 최적화 옵션 사용하기 코드 최적화를 위해 -O2 옵션을 사용할 수 있습니다. gcc -O2 hello.c -o hello 5.4...

리눅스 시스템 업데이트 및 업그레이드 방법

리눅스에서의 시스템 업데이트 및 업그레이드 안녕하세요, mj입니다! 오늘은 리눅스 시스템을 효과적으로 업데이트하고 업그레이드하는 방법에 대해 알아보겠습니다. 리눅스는 오픈 소스 운영 체제로, 시스템 업데이트와 업그레이드는 보안 및 성능 향상을 위해 매우 중요합니다. 1. 시스템 업데이트란? 시스템 업데이트는 현재 설치된 소프트웨어 패키지를 최신 버전으로 변경하는 과정을 말합니다. 이를 통해 보안 패치와 버그 수정이 이루어집니다. 예시: Ubuntu 시스템 업데이트 sudo apt update sudo apt upgrade 위 명령어는 패키지 목록을 업데이트하고, 설치된 패키지를 최신 버전으로 업그레이드합니다. 2. 시스템 업그레이드란? 시스템 업그레이드는 운영 체제의 전체 버전을 변경하는 과정입니다. 예를 들어, Ubuntu 20.04에서 22.04로의 업그레이드가 이에 해당합니다. 예시: Ubuntu 시스템 업그레이드 sudo do-release-upgrade 위 명령어는 새로운 버전으로 시스템을 업그레이드하는 데 사용됩니다. 3. 리눅스 배포판 별 업데이트 및 업그레이드 방법 1) Debian sudo apt update sudo apt upgrade 2) CentOS sudo yum update 3) Fedora sudo dnf upgrade 4) Arch Linux sudo pacman -Syu 5) openSUSE sudo zypper update 4. 업데이트 및 업그레이드 시 유의사항 업데이트와 업그레이드를 진행하기 전에 데이터 백업을 하는 것이 좋습니다. 또한, 시스템 자원을 고려하여 적절한 시간에 진행하는 것이 바람직합니다. 5. 결론 리눅스 시스템을 업데이트하고 업그레이드하는 것은 보안과 성능을 유지하는 데 필수적입니다. 위에서 소개한 방법들을 통해 쉽게 관리할 수 있으니, 주기적으로 확인하시기 바랍니다. 이 글이 도움이 되셨다면, 언제든지 댓글로 의견 남겨주세요. 감사합니다! mj였습니다!...

리눅스 셸 종류와 선택하기 - 다양한 셸의 특징 비교

리눅스의 셸 종류와 선택하기 안녕하세요! mj입니다. 오늘은 리눅스의 다양한 셸 종류와 각각의 특징을 비교해보려 합니다. 셸은 리눅스에서 명령어를 입력하고 시스템과 상호작용하는 중요한 요소입니다. 각 셸은 고유의 기능과 장점을 지니고 있으므로, 어떤 셸을 선택할지는 매우 중요합니다. 1. Bash (Bourne Again SHell) Bash는 리눅스에서 가장 많이 사용되는 셸입니다. GNU 프로젝트에서 개발되었으며, POSIX 표준을 따릅니다. 주로 스크립트 작성 및 시스템 관리에서 사용됩니다. 특징 명령어 자동 완성 히스토리 기능 배쉬 스크립트로 작업 자동화 예시 배쉬에서 파일 목록을 출력하는 명령어: ls -la 2. Zsh (Z Shell) Zsh는 Bash의 기능을 확장한 셸로, 사용자 정의가 용이하고 다양한 플러그인과 테마를 지원합니다. 개발자와 파워 유저에게 인기가 높습니다. 특징 강력한 자동 완성 기능 테마와 플러그인 시스템 배쉬와의 호환성 예시 Zsh에서 플러그인을 설치하는 명령어: git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh 3. Fish (Friendly Interactive Shell) Fish는 사용자 친화적인 인터페이스를 제공하는 셸로, 문법이 직관적이고 자동 완성이 매우 뛰어납니다. 초보자에게 적합합니다. 특징 직관적인 문법 실시간 자동 완성 다양한 색상과 시각적 요소 예시 Fish에서 환경 변수를 설정하는 방법: set -x MY_VAR "Hello, World!" 4. Ksh (KornShell) Ksh는 Bourne 셸과 C 셸의 기능을 결합한 셸로, 고급 스크립팅 기능을 제공합니다. 주로 기업 환경에서 사용됩니다. 특징 모듈식 스크립팅 배쉬와의 호환성 고급 배열 지원 예시 Ksh에서 배열을 정의하는 방법: set -A myArray 1 2 3 4...

리눅스에서의 파일 시스템 이해하기 - mj의 블로그

리눅스에서의 파일 시스템 이해하기 안녕하세요, mj입니다! 오늘은 리눅스의 파일 시스템 구조와 파일 권한에 대해 자세히 알아보겠습니다. 리눅스는 다양한 기능을 제공하는 운영 체제이며, 그 중에서도 파일 시스템은 매우 중요한 역할을 합니다. 이 글을 통해 리눅스 파일 시스템을 이해하고, 파일 권한에 대해 알아보세요. 리눅스 파일 시스템 구조 리눅스의 파일 시스템은 계층 구조로 되어 있습니다. 이 구조는 다음과 같은 주요 디렉토리로 구성됩니다: / (루트 디렉토리) : 모든 파일과 디렉토리의 최상위 위치입니다. /home : 사용자 개인 디렉토리가 있는 곳입니다. /etc : 시스템 설정 파일들이 위치한 곳입니다. /var : 가변 데이터 파일이 저장되는 디렉토리입니다. /usr : 사용자 프로그램이 설치되는 디렉토리입니다. 예시: 주요 디렉토리 탐색 아래의 명령어를 사용하여 각 디렉토리의 내용을 확인할 수 있습니다: ls /home 출력 예시: user1 user2 user3 리눅스 파일 권한 리눅스에서는 파일 권한이 중요합니다. 각 파일은 읽기, 쓰기, 실행 권한을 가질 수 있으며, 이는 소유자, 그룹, 기타 사용자로 나뉩니다. 파일 권한은 다음과 같이 설정됩니다: r : 읽기 권한 w : 쓰기 권한 x : 실행 권한 예시: 파일 권한 확인 및 변경 파일 권한을 확인하기 위해 다음 명령어를 사용합니다: ls -l filename 출력 예시: -rwxr-xr-- 1 user1 group1 1234 Apr 1 12:34 filename 파일 권한 변경 예시 파일 권한을 변경하려면 chmod 명령어를 사용합니다. 예를 들어: chmod 755 filename 이 명령어는 소유자에게 모든 권한을 부여하고, 그룹과 기타 사용자에게 읽기 및 실행 권한만 부여합니다. 리눅스 파일 시스템의 장점 리눅스 파일 시스템은 여러 가지 장점이 있습니다. 그 중 몇 가지는 다음과 같습니다: 유연한 구조: 다양한 파...

리눅스에서의 데이터 백업과 복원 방법

리눅스에서의 데이터 백업과 복원 방법 안녕하세요, mj입니다. 오늘은 리눅스에서 데이터 백업과 복원을 위한 다양한 방법에 대해 알아보겠습니다. 데이터는 언제든지 손실될 수 있기 때문에, 정기적인 백업은 필수입니다. 리눅스에서는 여러 가지 명령어와 도구를 통해 간편하게 데이터를 백업하고 복원할 수 있습니다. 1. 데이터 백업을 위한 기본 명령어 1.1 cp 명령어 가장 기본적인 백업 방법 중 하나는 cp 명령어를 사용하는 것입니다. 이 명령어는 파일이나 디렉터리를 복사합니다. cp -r /source/directory /backup/directory 위 명령어는 /source/directory 의 내용을 /backup/directory 로 복사합니다. 1.2 tar 명령어 tar 명령어는 파일을 아카이브하고 압축하는 데 유용합니다. 다음은 tar를 사용한 백업 예시입니다. tar -czvf backup.tar.gz /directory/to/backup 이 명령어는 /directory/to/backup 를 backup.tar.gz 라는 파일로 압축하여 저장합니다. 1.3 rsync 명령어 rsync 는 파일을 동기화하는 데 매우 유용한 도구입니다. 다음은 rsync를 사용한 예시입니다. rsync -av --progress /source/directory /backup/directory 이 명령어는 /source/directory 의 내용을 /backup/directory 로 동기화합니다. 2. 데이터 복원을 위한 기본 명령어 2.1 cp 명령어를 통한 복원 백업한 파일을 복원할 때도 cp 명령어를 사용할 수 있습니다. cp -r /backup/directory /restore/directory 위 명령어는 /backup/directory 의 내용을 /restore/directory 로 복원합니다. 2.2 tar 명령어를 통한 복원 압축된 tar 파일을 복원할 때는 다음과 같은 명령어를 사용합니다. tar -xz...

리눅스에서의 시스템 모니터링 도구 소개

리눅스에서의 시스템 모니터링 도구 안녕하세요, mj입니다! 오늘은 리눅스에서 시스템 모니터링을 위한 다양한 도구에 대해 알아보겠습니다. 리눅스 시스템 모니터링 도구란? 리눅스 시스템 모니터링 도구는 서버의 성능을 분석하고 문제를 진단하는 데 도움을 주는 소프트웨어입니다. 이러한 도구들은 CPU 사용량, 메모리 상태, 네트워크 트래픽 등을 실시간으로 모니터링할 수 있도록 도와줍니다. 주요 시스템 모니터링 도구 1. top top 명령어는 실시간으로 프로세스와 시스템 성능을 모니터링할 수 있는 도구입니다. 사용 방법은 간단하며, 다음과 같은 정보를 제공합니다: top 출력 예시: top - 00:00:01 up 1 day, 1:23, 1 user, load average: 0.01, 0.03, 0.05 Tasks: 152 total, 1 running, 151 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.0 us, 0.5 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 7980.0 total, 1234.0 free, 4567.0 used, 3180.0 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4560.0 avail Mem 2. htop htop은 top의 대안으로, 사용자 인터페이스가 더 직관적이며, 프로세스를 쉽게 관리할 수 있는 도구입니다. 설치 후 다음과 같이 실행합니다: htop 출력 예시: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 169476 8280 5668 S 0.0 0.1 0:01.23 systemd 2 root 20 0 ...

리눅스에서의 네트워크 진단: ping과 traceroute 사용법

안녕하세요, mj입니다! 이번 포스팅에서는 리눅스에서 네트워크 연결을 진단하는 데 유용한 두 가지 명령어인 ping 과 traceroute 에 대해 알아보겠습니다. ping 명령어란? ping은 네트워크 연결을 테스트하는 데 사용되는 기본적인 도구입니다. 특정 IP 주소나 도메인 이름으로 ICMP 패킷을 보내고, 응답 시간을 측정하여 연결 상태를 확인할 수 있습니다. ping 사용 예시 다음은 ping 명령어의 사용 예시입니다: ping google.com 출력 예시: 64 bytes from lga34s63-in-f14.1e100.net: icmp_seq=1 ttl=116 time=14.5 ms 64 bytes from lga34s63-in-f14.1e100.net: icmp_seq=2 ttl=116 time=14.3 ms 64 bytes from lga34s63-in-f14.1e100.net: icmp_seq=3 ttl=116 time=14.2 ms 위 예시는 google.com에 대한 ping 테스트 결과입니다. 실제 사용 사례 다음은 ping 명령어를 사용한 몇 가지 실제 사례입니다: 로컬 네트워크 진단: ping 192.168.1.1 특정 서버 확인: ping example.com 응답 지연 확인: ping -c 10 google.com 패킷 손실 확인: ping -f 8.8.8.8 TTL 값 확인: ping -t google.com traceroute 명령어란? traceroute는 네트워크 경로를 추적하는 데 사용되는 도구입니다. 특정 호스트까지의 경로를 보여주며, 각 홉(hop)의 응답 시간을 측정합니다. traceroute 사용 예시 다음은 traceroute 명령어의 사용 예시입니다: traceroute google.com 출력 예시: 1 router.local (192.168.1.1) 1.234 ms 2.345 ms 1.456 ms 2 isp-gateway (203.0.1...

리눅스에서 find와 grep으로 파일 검색하기

리눅스에서 find와 grep으로 파일 검색하기 안녕하세요, mj입니다! 오늘은 리눅스에서 파일을 검색하는 두 가지 유용한 명령어인 find 와 grep 에 대해 알아보겠습니다. 이 두 명령어는 파일 시스템 내에서 특정 파일이나 패턴을 찾는 데 매우 유용합니다. 그럼 시작해볼까요? 1. find 명령어란? find 명령어는 파일 시스템에서 파일을 검색하는 데 사용됩니다. 다양한 옵션과 인수를 통해 특정 조건에 맞는 파일을 찾을 수 있습니다. 1.1 기본 사용법 기본적인 find 명령어의 사용법은 다음과 같습니다: find [검색할 디렉토리] [조건] 1.2 예시 아래는 find 명령어의 몇 가지 활용 예시입니다: find /home/mj -name "*.txt" - /home/mj 디렉토리에서 모든 텍스트 파일을 찾습니다. find /var/log -type f -mtime -7 - 최근 7일 이내에 수정된 파일을 찾습니다. find / -user mj - mj 사용자 소유의 모든 파일을 찾습니다. find /tmp -type d -empty - 빈 디렉토리를 찾습니다. find /usr -name "config*" -exec rm {} \; - config로 시작하는 파일을 찾아 삭제합니다. 2. grep 명령어란? grep 명령어는 파일의 내용에서 특정 패턴을 검색하는 데 사용됩니다. 주로 텍스트 파일에서 문자열을 검색할 때 유용합니다. 2.1 기본 사용법 기본적인 grep 명령어의 사용법은 다음과 같습니다: grep [옵션] [패턴] [파일] 2.2 예시 아래는 grep 명령어의 몇 가지 활용 예시입니다: grep "error" /var/log/syslog - syslog 파일에서 "error"라는 단어를 찾습니다. grep -r "TODO" /home/mj/projects - projects 디렉...

tar와 gzip을 이용한 파일 압축 및 해제 방법

tar와 gzip을 이용한 파일 압축 및 해제 방법 안녕하세요, mj입니다! 오늘은 tar와 gzip 명령어를 사용하여 파일을 압축하고 해제하는 방법에 대해 알아보겠습니다. 이 두 가지 도구는 리눅스 환경에서 파일을 효율적으로 관리하는 데 매우 유용합니다. 1. tar 명령어란? tar는 'tape archive'의 약자로, 여러 파일을 하나의 파일로 묶어주는 도구입니다. 주로 백업이나 배포를 위해 사용됩니다. tar로 생성된 파일은 .tar 확장자를 가집니다. 2. gzip 명령어란? gzip은 파일 압축을 위한 도구로, 파일의 크기를 줄여 저장 공간을 절약할 수 있습니다. gzip으로 압축된 파일은 .gz 확장자를 가집니다. 3. tar와 gzip을 이용한 파일 압축 파일을 압축하기 위해 tar와 gzip을 함께 사용하는 방법은 다음과 같습니다. tar -czvf archive.tar.gz /path/to/directory 위 명령어에서 각 옵션의 의미는 다음과 같습니다: -c : 새로운 tar 파일 생성 -z : gzip으로 압축 -v : 진행 상황을 출력 -f : 파일 이름 지정 예시 1: 특정 디렉토리 압축 tar -czvf my_files.tar.gz /home/mj/my_files 출력 결과: my_files/ my_files/file1.txt my_files/file2.txt 예시 2: 여러 파일 압축 tar -czvf archive.tar.gz file1.txt file2.txt document.pdf 출력 결과: file1.txt file2.txt document.pdf 예시 3: 숨겨진 파일 압축 tar -czvf hidden_files.tar.gz /home/mj/.* 출력 결과: .bashrc .gitconfig 예시 4: 압축 파일 이름 변경 tar -czvf new_archive.tar.gz /home/mj/old_files 출력 결과: old_files/ old...