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 웹 서버를 시작하고, 방화벽을 해제하여 로컬호스트에 접속하고, 홈페이지 문구를 변경하는 명령어입니다.
- Apache 웹 서버 시작하기: systemctl start httpd
- 방화벽 해제하기: systemctl stop firewalld
- 127.0.0.1에 접속하기: 웹 브라우저에서 "http://127.0.0.1" 입력
- 홈페이지 문구 바꾸기: 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 설치 및 압축 해제 후 폴더 들어가기
- tar 설치: dnf -y install tar
- wget 명령어를 통해서 다운 : wget https://sqlite.org/2023/sqlite-autoconf-3410200.tar.gz
- tar 파일 압축 해제: tar xf sqlite-autoconf-3410200.tar.gz
- 폴더 들어가기: cd sqlite-autoconf-3410200
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)
설치 :