✅네이버클라우드 캠프/개발일기

[네이버클라우드캠프] 4일차. Linux 패키지 관리, 웹 서버 구성 (ubuntu포함)

우동한그릇 2023. 4. 27. 20:25
반응형

Dev with GPT
4days Feed back

 

난, root다. #이다. 이제 관리자다.
사용자,패키지,프로세스 등 시스템 자원을 관리해야한다.
실수가 없으면 배움도 없다.

★ 셸,디스크 파티션, 디렉토리 리눅스 명령어
각각의 명령어는 셸 확인, 디스크 용량 확인, 디렉토리 용량 확인, 패키지 목록 확인, Bash 내장 명령어 목록 확인, 히든파일 확인 등 다양한 기능을 수행하는 명령어입니다.
 

명령어 내용
echo $SHELL 현재 사용 중인 셸 확인
df -h 디스크 파티션 별 용량 확인
du /etc -sh /etc 디렉토리 용량 확인
du -sh ~blue blue가 사용하는 디렉토리 용량 확인
dnf list | more Fedora 기반 Linux 배포판에서 설치 가능한 패키지 목록 확인
compgen -b | paste - - - - - 사용 가능한 모든 Bash 내장 명령어를 나열 (읽은 데이터를 5개씩 끊어서 열 단위로 출력)
.b 히든파일 속성을 가진 파일

 
[실습]

 


패키지 관련 명령어 모음

★ dnf 패키지 관리자 명령어
▶ 시스템 업그레이드, 패키지 설치/삭제, 패키지 정보 조회 등 다양한 명령어입니다.
 

명령어 설명
dnf upgrade -y 시스템 업그레이드
dnf install httpd httpd 웹서버 설치
di httpd httpd 웹서버 설치
dnf list 설치된 패키지 목록 조회
dnf list 설치된 패키지 개수 조회
dnf remove 패키지 삭제
dnf info 패키지 정보 조회
dq mysql mysql 패키지 설치 확인

 
★ 설치된 패키지 목록 확인
 리눅스 시스템에 설치된 모든 패키지를 확인할 수 있는 명령어입니다.
 

명령어 설명
dnf list Linux 시스템에 있는 DNF 패키지 관리자의 기본 리포지토리에서 사용 가능한 모든 패키지를 나열
dnf list| wc -l 기본 리포지토리에서 사용 가능한 총 패키지 수 출력
dnf list -installed 설치된 패키지 목록 출력
dnf list -installed | grep 패키지이름 설치된 패키지 중 특정 패키지 정보 검색 (여기서는 "tree" 패키지를 예시로 들었습니다.)

 
★ yum 명령어와 실행 파일 경로, 간단한 설명
▶ 명령어의 실행 파일 경로와 간단한 설명을 출력하는 명령어입니다.
 

명령어 설명
which yum yum 명령어의 실행 파일 경로 출력
whatis yum yum 명령어의 간단한 설명 출력
whatis dnf dnf 명령어의 간단한 설명 출력
which dnf dnf 명령어의 실행 파일 경로 출력
ll /usr/bin/dnf dnf와 yum은 dnf-3의 심볼릭 링크이며, 해당 경로에서 확인 가능함

 
[실습]

 
 
★ tree 패키지 설치와 삭제
dnf 패키지 관리자를 사용하여 tree(예시) 패키지를 설치하고 삭제하는 방법을 확인할 수 있는 명령어입니다.
 

명령어 설명
dnf info tree tree 패키지 정보 출력
pstree 현재 실행중인 프로세스들을 트리 구조로 출력
di tree tree 패키지를 설치
i tree tree 패키지를 설치
dnf list -installed | grep tree 설치된 tree 패키지 정보 출력
tree / 루트 디렉토리를 기준으로 디렉토리 구조를 tree 구조로 출력
dnf -y remove tree tree 패키지 삭제 (-y 옵션은 모든 질문에 대해 yes로 답하는 옵션)

 
[실습]


★ Apache 웹 서버 시작과 홈페이지 문구 변경 방법
Apache 웹 서버를 시작하고, 방화벽을 해제하여 로컬호스트에 접속하고, 홈페이지 문구를 변경하는 명령어입니다.
 

  1. Apache 웹 서버 시작하기: systemctl start httpd
  2. 방화벽 해제하기: systemctl stop firewalld
  3. 127.0.0.1에 접속하기: 웹 브라우저에서 "http://127.0.0.1" 입력
  4. 홈페이지 문구 바꾸기: cd /var/www/html -> echo "테스트페이지출력" >> index.html

 
[실습]

 


★ SQLite3 데이터베이스 생성 및 사용하기
▶ sqlite3 데이터베이스에 대한 명령어들로, sqlite3 설치 후 데이터베이스 파일 열고, 테이블 생성 및 데이터 추가, 조회 등을 수행할 수 있는 명령어입니다.
 

명령어 설명
dnf install sqlite -y sqlite3 설치
sqlite3 sqlite3 실행
.open myDB 데이터베이스 파일(myDB) 열기
create table score(name, kor, mat, eng); score 테이블 생성
insert into score values("kim", 40, 50, 60); score 테이블에 데이터 추가
insert into score values("chio", 50, 90, 30); score 테이블에 데이터 추가
.mode col 콜론(:) 모드로 전환
.head on 컬럼명 표시
select * from score; score 테이블의 모든 데이터 조회

 
[실습]


★ tar와 sqlite3 설치 및 실행
tar 패키지를 이용해 파일 압축을 해제하고, sqlite3 데이터베이스 관리 프로그램을 설치하고 실행하는 방법입니다. configure, make, make install 명령어를 사용하여 소스 코드를 컴파일하고 설치할 수 있는 명령어입니다.
 
1. tar 설치 및 압축 해제 후 폴더 들어가기

2. sql 압축 해제 파일 실행하여 설치

  • 설치 위치 확인 및 지정: ./configure --prefix=/sql
  • 컴파일 실행 명령어: make
  • 설치: make install
  • 설치한 위치로 이동: cd /sql
  • 설치한 파일 확인: ls [bin..include..lib..share]
  • 실행: /bin/sqlite3

3. 설치 경로 설정 후 설치하여 실행

  • 설치 경로 설정 후 설치: ./configure --prefix=/zs3 && make && make install
  • 설치한 위치로 이동: cd /zs3/bin/
  • sqlite3 실행: ./sqlite3

 

명령어 설명
wget 인터넷상의 웹 서버에서 파일을 다운로드
dnf install sqlite -y sqlite3 설치
sqlite3 sqlite3 실행
.open myDB 데이터베이스 파일(myDB) 열기
.mode col 콜론(:) 모드로 전환
.head on 컬럼명 표시
select * from score; score 테이블의 모든 데이터 조회

 

GPT에게 질문했던 내용 

수업도중 configure 명령어로 경로 설정을 했지만 설치 위치를 찾을 수 없어 헤매였다.
GPT에게 도움을 받아 절대경로로 설치를 하였다는 것을 알았고. 상대경로를 설정해주어야
작업 중인 현재 폴더에 저장된다는 것을 배웠다.

 
★ 리눅스 프로세스에 명령어
리눅스 운영체제에서 실행 가능한 프로세스 관련 명령어와 프로세스 정보를 다루는 명령어입니다.
 

명령어 설명
ps ef grep httpd
pstree -p 현재 실행 중인 프로세스들의 계층 구조를 보여줍니다.
-p 옵션은 각 프로세스의 PID(Process ID)를 함께 출력합니다.
top 현재 실행 중인 프로세스들의 상태를 실시간으로 모니터링하며,
프로세스 상태, CPU 사용률, 메모리 사용률, 실행된 CPU 시간 등 다양한 정보를 제공합니다.
PID 프로세스 ID
USER 프로세스를 실행한 사용자
PR 프로세스 우선순위
NI 프로세스 우선순위 변경 값
VIRT 가상 메모리 크기
RES 실제 사용 중인 메모리 크기
SHR 공유 메모리 크기
S 프로세스 상태 (R: 실행 중, S: 대기 중, Z: 좀비 프로세스, T: 정지된 프로세스)
%CPU CPU 사용률
%MEM 메모리 사용률
TIME+ 프로세스가 실행된 CPU 시간
COMMAND 프로세스를 실행한 명령어

 
[실습]


★ 하드디스크 파티션과 관련된 리눅스 파일 시스템의 이해
리눅스에서 하드디스크를 파티션으로 나누고, 주요 파티션과 확장 파티션으로 구분하여 여러 개의 논리 파티션을 생성할 수 있으며, 파티션을 삭제하는 경우 해당 파티션과 속한 논리 파티션이 함께 삭제됩니다.
 

  • 하드디스크는 여러 개의 파티션으로 나눌 수 있으며, 파티션은 주요 파티션(primary partition) 확장 파티션(extended partition)으로 구분된다.
  • 주요 파티션은 최대 4개까지 생성할 수 있으며, 이 중 1개를 확장 파티션으로 지정하여 해당 파티션에서 여러 개의 논리 파티션(logical partition)을 생성할 수 있다.
  • 하나의 하드디스크에 여러 개의 파티션을 나누는 경우, 파티션의 번호는 sdx1, sdx2, sdx3 등의 형태로 표기되며, sdx는 하드디스크의 이름을 나타낸다.
  • 파티션을 삭제하는 경우, 해당 파티션에 속한 모든 논리 파티션도 함께 삭제된다.
  • 또한, 다른 하드디스크에 생성한 파티션은 해당 하드디스크 이름으로 표기되며, sda, sdb 등으로 표기된다.

 
★ VirtualBox의 공유 폴더를 이용한 리눅스 환경 설정과 관련된 명령어
VirtualBox의 공유 폴더를 마운트하고, 디렉토리를 생성하며, 파일 시스템을 확인하고, 파일을 생성하고, 복사하는 등의 작업을 수행하는 리눅스 명령어들입니다.
 

명령어 설명
sudo -i 현재 사용자를 root 권한으로 변경하여, 해당 세션이 끝날 때까지 모든 명령어를 root 권한으로 실행할 수 있게 합니다. (ubuntu)
mount -t vboxsf VirtualBox의 공유폴더를 마운트합니다.
mkdir /yes /yes 디렉토리를 생성합니다.
mount -t vboxsf win /yes win이라는 이름의 공유폴더를 /yes 디렉토리에 마운트합니다.
df -h 현재 마운트된 파일 시스템을 확인합니다.
cd /yes /yes 디렉토리로 이동합니다.
ls win 폴더가 /yes 디렉토리 내부에 있는지 확인합니다.
nl mywin.txt.txt mywin.txt.txt 파일의 내용을 출력합니다.
cat > linux.txt linux.txt 파일을 생성하고, 사용자가 입력한 내용을 파일에 씁니다.
cp -r /etc /yes /etc 디렉토리와 그 하위 디렉토리 및 파일을 /yes 디렉토리 내부에 복사합니다.

 
▶ Rocky에서 ubuntu 처럼 사용하기

s/dnf/apt/g
s는 sed 명령어에서 문자열을 대체하는 데 사용되는 명령어입니다.
g는 sed 명령어에서 발견된 패턴을 모두 대체할 것인지 여부를 결정하는 플래그입니다. 
이를 사용하면 텍스트 에디터 등에서 특정 텍스트를 대량으로 수정할 때 유용하게 사용할 수 있습니다.
dnf -> apf 로 수정됩니다 : Ubuntu 환경에서 Rocky 환경처럼 dnf 로 명령어를 입력해도 대체됩니다.

리눅스 설치 후 초기 vi 설정 (aliases, .bashrc, .vimrc)
리눅스에서 vi 편집기를 사용할 때, 초기 설정을 위해 aliases, .bashrc, .vimrc 파일에 설정 값을 입력하는 방법에 대한 설명입니다.
 

vi .bash_aliases

[명령어]
alias h='history'
alias l='ls -AlF'
alias c='clear'
alias cp='cp -i'
alias mv='mv -i'
alias df='df -h'
alias du='du -sh'
   
alias h='history' h를 입력하면 사용자의 명령어 입력 내역인 history를 출력합니다.
alias l='ls -AlF' l을 입력하면 현재 디렉토리의 모든 파일과 디렉토리를 자세히(-l) 나열하고(-a), 파일인 경우 실행 권한 여부를 표시합니다(-F).
alias c='clear' c를 입력하면 현재 터미널 화면을 지웁니다.
alias cp='cp -i' cp 명령어 사용 시 덮어쓰기를 할지 물어보도록 합니다.
alias mv='mv -i' mv 명령어 사용 시 덮어쓰기를 할지 물어보도록 합니다.
alias df='df -h' 디스크 사용량을 human-readable한 형태로 출력합니다.
alias du='du -sh' 디렉토리의 용량을 human-readable한 형태로 출력합니다.
source ~/.profile .profile 파일에 정의된 환경 변수 등을 현재 셸에 적용합니다.

 

vi ~/.bashrc

[명령어]
alias h='history'
alias l='ls -AlF'
alias c='clear'
alias cp='cp -i'
alias mv='mv -i'
alias df='df -h'
alias du='du -sh'
alias li='ls -Ali'
alias lh='ls -Alh'

alias di='dnf -y install'
alias dq='dnf list --installed | grep '
alias dc='dnf list --installed | wc -l'
명령어 설명
alias h='history' h를 입력하면 사용자의 명령어 입력 내역인 history를 출력합니다.
alias l='ls -AlF' l을 입력하면 현재 디렉토리의 모든 파일과 디렉토리를 자세히(-l) 나열하고(-a), 파일인 경우 실행 권한 여부를 표시합니다(-F).
alias c='clear' c를 입력하면 현재 터미널 화면을 지웁니다.
alias cp='cp -i' cp 명령어 사용 시 덮어쓰기를 할지 물어보도록 합니다.
alias mv='mv -i' mv 명령어 사용 시 덮어쓰기를 할지 물어보도록 합니다.
alias df='df -h' 디스크 사용량을 human-readable한 형태로 출력합니다.
alias du='du -sh' 디렉토리의 용량을 human-readable한 형태로 출력합니다.
alias li='ls -Ali' l과 동일한 기능을 수행하지만, 출력되는 파일과 디렉토리의 숨김 속성 파일도 포함합니다(-A).
alias lh='ls -Alh' l과 동일한 기능을 수행하지만, 용량을 human-readable한 형태로 표시합니다(-h).
alias di='dnf -y install' di 다음에 패키지 이름을 입력하면 해당 패키지를 자동으로 다운로드 및 설치합니다.
alias dq='dnf list --installed | grep' dq 다음에 패키지 이름을 입력하면 해당 패키지가 설치되었는지 확인합니다.
alias dc='dnf list --installed | wc -l' 시스템에 설치된 패키지의 개수를 출력합니다.

 

vi .vimrc

[명령어]
se nu ai ci si ts=4 sw=4 ruler title showmatch
syntax on
hi comment ctermfg=red

ab P printf(" ");
ab J System.out.println(" ");

 

명령어 요약
1행 줄번호(nu), 자동인덴트(ai), 컬러(ci), 스크롤바(si), 탭간격(ts=4), 스페이스바(ts=4), 상태바(ruler), 제목(title), 일치하는 괄호 표시(showmatch) 설정
2행 문법 강조(syntax on) 설정
3행 주석색깔 설정
4행 P 입력시 printf(" "); 자동 완성
5행 J 입력시 System.out.println(" "); 자동 완성

 


ubuntu linux 설치하기
ubuntu linux 설치. 아래 환경설정과 사진 순서에 따라 진행할 것.

o ubuntu linux

머신이름 : myubuntu
ram : 2g hdd : 30g
precessor : 2개
hostname : pdw

일반사용자 : j,j  #root
#passwd

파티션계획
● 파티션 계획
● C /boot 1G
● D swap 2G
● E /   12G
● F /home 5G
● G /data 나머지 (10G)

 
설치 :

 

반응형