CS/운영체제

리눅스 서버 정리(중간고사 범위)

Chae-ri🍒 2024. 10. 24. 00:52

멀티부팅 -> 한 번에 하나의 운영체제만 가동

가상머신 -> 여러 개의 운영체제 가동

 

# 프롬프트는 root 사용자

$ 프롬프트는 일반 사용자

 

root 권한 얻으려면? => su 명령 실행

명령어 모음

시스템 종료 시

poweroff
shutdown -P now
halt -p
init 0

 

시스템 재부팅

shutdown -r now
reboot
init 6

 

shutdown 명령은 뒤에 now가 아니더라도 시간을 지정해줄 수 있음!

shutdown -P +10 => 10분 뒤 종료
shutdown -r 22:00 => 22시에 종료
shutdown -c => 예약된 shutdown 명령을 취소
shutdown -k +15 => 현재 접속한 사용자에게 15분 후에 종료된다는 메시지를 보내지만 실제로 종료하지는 않음

 

로그아웃

logout
exit

 

Ctrl + Alt + F2는 X윈도우 모드 F1 ~ F6으로 가상 콘솔 여러개를 이동하면서 조작 가능

 

런 레벨(Runlevel)

init 명령어 뒤에 붙는 숫자

 

/lib/systemd/system 디렉터리로 가서 ls -l runlevel?.target으로 확인 가능

 

ln -sf로 런레벨 변경

 

자동 완성과 히스토리

tab키 누르면서 파일명 자동 완성할 수 있음

 

도스 키(상하 화살표 키)로 입력한 명령을 다시 나타나게 할 수 있음

history  히스토리 확인
history -c  히스토리 모두 삭제

 

cd : 현재 사용자의 홈 디렉터리로 이동

ls : 해당 디렉터리 내의 파일 확인

cat 파일 : 파일 내용을 화면에 출력

man : 명령어 도움말 출력

pwd : 현재 디렉터리 위치 확인

rm : 파일이나 디렉터리 삭제

. : 현재 디렉터리

.. : 상위 디렉터리

cp : 파일이나 디렉터리를 복사

touch : 크기가 0인 새 파일을 생성, 이미 존재하는 경우 수정 시간을 변경

mv : 파일과 디렉터리의 이름을 변경하거나 위치 이동 시 사용

mkdir : 새로운 디렉터리를 생성

rmdir : 디렉터리를 삭제(단, 비어있어야 함)

head, tail : 텍스트로 작성된 파일의 앞 10행 또는 마지막 10행만 출력

more : 텍스트로 작성된 파일을 화면에 페이지 단위로 출력

less : more와 용도가 비슷하지만 기능이 더 확장된 명령

file : File이 어떤 종류의 파일인지를 표시

clear : 명령창을 깨끗하게 지워줌

 

에디터에는 3가지가 있다.

gedit, vi, nano

 

nano에서 행정보 출력하고 싶을 때 nano -c 파일명 을 치면 된다.

vi 에디터에서 i 또는 a를 입력하면 입력 모드로, :를 입력하면 라인 명령 모드(저장(w), 종료(q), 취소(i) 등)로 실행할 수 있다.

 

vi 에디터 종료 시: ESC + :q + Enter (:q! 일 때는 변경 사항 무시하고 종료 / :wq는 파일 저장 및 종료) 

 

저장하지 않은 채로 비정상적으로 종료됐을 때 해결 사항

ls -a 입력해 파일 확인하고 rm -f .파일명.swp 명령을 입력해 스왑 파일 삭제

 

 마운트(mount) : 물리적인 장치를 특정한 위치(디렉터리)에 연결하는 과정

 

mount: 마운트된 장치 리스트 확인 <-> umount : 마운트 해제

CD/DVD 예시) mount /dev/cdrom

 

리눅스는 다중 사용자 시스템

/etc/passwd 파일에 사용자 정보들이 있음

사용자 이름:암호:사용자 ID:사용자가 소속된 그룹 ID:전체 이름:홈 디렉터리:기본 셸

 

사용자의 비밀번호는 /etc/shadow

그룹은 /etc/group

 

사용자와 그룹 관련 명령어

useradd : 새로운 사용자를 추가 / 옵션) -u: ID 지정, -g: 그룹 지정, -d: 홈 디렉터리 지정, -s: 셸 지정

passwd : 사용자의 비밀번호를 지정하거나 변경

usermod : 사용자의 속성을 변경

userdel : 사용자를 삭제

chage : 사용자의 암호를 주기적으로 변경하도록 설정

groups : 현재 사용자가 속한 그룹을 보여줌

groupadd : 새로운 그룹을 생성

groupmod :  그룹의 속성을 변경

groupdel : 그룹을 삭제

gpasswd : 그룹의 암호를 설정하거나, 그룹의 관리를 수행

 

파일과 디렉터리의 소유와 허가권

chmod : 파일 허가권 변경 명령어

chown, chgrp : 파일의 소유권을 바꾸는 명령어(chown: 소유자 변경, chgrp: 그룹만 변경)

*chown 명령어는 root 사용자만 실행할 수 있음

 

하드 링크와 심볼릭 링크

하드링크 생성 : ln 링크대상파일이름 링크파일이름

심볼릭링크 생성 : ln -s 링크대상파일이름 링크파일이름

심볼릭 파일은 원본 파일이 없으면 연결이 끊어진다.

프로그램 설치를 위한 RPM

RPM : setup.exe와 같은 설치 파일. 확장명은 .rpm 이며 패키지라고 부름

 

설치: rpm -Uvh 패키지파일이름.rpm

삭제: rpm -e 패키지이름

 

이미 설치된 패키지 조회

rpm -qa 패키지 이름 : 시스템에 패키지가 설치되었는지 확인

rpm -qf 파일의 절대경로 : 이미 설치된  파일이 어느 패키지에 포함된 것인지 확인

rpm -ql 패키지이름 : 특정 패키지에 어떤 파일이 포함되었는지 확인

rpm -qi 패키지이름 : 설치된 패키지의 상세 정보

 

아직 설치되지 않은 rpm 파일 조회

rpm -qlp 패키지파일이름.rpm : 패키지 파일에 어떤 파일이 포함되었는지 확인

rpm -qip 패키지파일이름.rpm : 패키지 파일의 상세 정보

 

RPM의 단점 : 의존성 문제 => DNF(또는 YUM)으로 해결

 

DNF : 인터넷을 통하여 필요한 파일을 저장소에서 자동으로 모두 다운로드해서 설치하는 방식(네트워크 연결 필수)

RHEL 7까지 YUM, 그 이후부터는 DNF

저장소의 url은 /etc/yum.repos.d/

 

DNF 기본 설치: dnf install 패키지이름 (dnf -y install 패키지이름으로 치면 사용자의 확인을 모두 yes로 간주하고 바로 설치 진행)

설치된 패키지 중 업데이트 가능한 목록 보기: dnf check-update

업데이트: dnf update 패키지이름

삭제: dnf remove 패키지이름

정보확인: dnf info 패키지이름

 

DNF 고급 사용법

패키지 그룹 설치: dnf groupinstall 패키지그룹이름

패키지 리스트 확인: dnf list 패키지이름

특정 파일이 속한 패키지 이름 확인: dnf provides 파일이름

GPG 키 검사 생략: dnf install --nogpgcheck rpm파일이름.rpm

기존 저장소 목록 지우기: dnf clean all

파일 압축과 묶기

파일 압축 관련 명령

xz : 확장명 xz로 압축하거나 풀어준다.

bzip2 : 확장명 bzip2로 압축하거나 풀어준다. (bzip2 파일명(압축), bzip2 -d 파일명.bz2(압축해제))

bunzip2 : bzip2 -d 파일명.bz2과 같음. 압축 해제

gzip : 확장명 gzip로 압축하거나 풀어준다. (gzip 파일명(압축), gzip -d 파일명.gz(압축해제))

gunzip : gzip -d 파일명.gz와 같음. 압축 해제

 

파일 묶기 관련 명령

tar : 확장명 tar로 묶음 파일을 만들어주거나 묶음을 풀어준다.

   동작: c(묶기), x(풀기), t(경로확인)

   옵션: f(파일), v(과정보이기), J(tar+xz), z(tar+gzip), j(tar+bzip2)

 

find 경로 옵션 조건 action: 기본 파일 찾기

 

시스템 설정

네트워크 설정: nmtui

방화벽 설정: firewall-config

서비스 설정: ntsysv

 

CRON과 AT

cron: 주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정

at: 주기적으로 반복되는 작업을 예약하는 것이지만 일회성 작업을 예약

네트워크 명령어

systemctl <start/stop/restart/status> NetworkManager : 네트워크의 설정 변경한 후, 변경된 내용을 시스템에 적용

ifconfig <장치이름> up 및 ifup <장치이름> : 네트워크 장치를 On시키는 명령어

ifconfig <장치이름> down 및 ifdown <장치이름> : 네트워크 장치를 Off시키는 명령어

ifconfig <장치이름> : 장치의 IP주소 설정 정보를 출력

nslookup : DNS 서버의 작동을 테스트하는 명령어

ping <IP주소 또는 URL> : 해당 컴퓨터가 네트워크 상에서 응답하는지를 테스트하는 간편한 명령어

/etc/NetworkManager/system-connection/ens160.nmconnection : ens160 장치에 설정된 네트워크 정보가 모두 들어 있는 파일

/etc/resolv.conf : DNS 서버의 정보 및 호스트 이름이 들어 있는 파일

/etc/hosts : 현 컴퓨터의 호스트 이름 및 FQDN이 들어 있는 파일

 

네트워크 보안을 위한 SELinux

grubby --update-kernel ALL --args selinux=0 => 비활성

grubby --update-kernel ALL --remove-args selinux => 활성

 

system-config-selinux 명령의 [현재 강제 모드]의 작동 방식

‘강제(Enforcing)’는 시스템 보안에 영향을 미치는 기능이 감지되면 아예 그 기능이 작동되지 않도록 시스템에서 막아줌.

‘허용(Permissive)’은 시스템 보안에 영향을 미치는 기능이 감지되면 허용은 되지만 그 내용이 로그에 남음.

 ‘비활성화(Disabled)’은 SELinux를 사용하지 않음

 

 

uname -r : 커널 버전 확인

make mrproper: 커널 초기화 설정

make xconfig: 커널 환경 설정 진입

 

인터넷 응용 프로그램 - 에볼루션

에볼루션(Evolution)은 MS Outlook과 비슷한 기능을 하는 이메일 클라이언트

메뉴 : [현재 활동] → '프로그램 표시' 아이콘 → '에볼루션'

명령어 : evolution

 

 

728x90