※ - : 약자 

    -- : 단어 전체

 

  • 컴퓨터 종료

$ shutdown -P now

or

$ halt(process가 종료되지 않아도 강제 종료)

or

$ init 0(run-level)

or

$ poweroff

 

  • 재부팅

$ reboot

 

  • 로그아웃

$ logout

or

ctrl + d

 

  • 가상 콘솔 이동

ctrl + alt + F1~6

 

  • 런 레벨

'init' 명령어 뒤에 붙는 숫자를 런레벨이라 함

0 - Power Off

1 - Rescue(시스템 복구 모드)

2 - Multi-User(사용하지 않음)

3 - Multi-User(텍스트 모드)

4 - Multi-User(사용하지 않음)

5 - Graphical(그래픽 모드)

6 - Reboot

런레벨 모드를 확인하려면 /lib/systemd/system 디렉터리(rocky 9 기준)의 runlevel?.target 파일을 확인

centos에서 부팅 시 텍스트 모드로 바꾸기

# systemctl set-default multi-user.target

centos에서 부팅 시 그래픽 모드로 바꾸기

# systemctl set-default graphical.target

 

  • 명령어 기록 보기

$ history

 

  • 에디터 사용

$ vim test.txt

dd : 한 행 삭제

yy : 한 행 복사

p : 붙여넣기

6dd : 여섯 행 삭제

6yy : 여섯 행 복사

set number(set nu) : 각 행에 번호 붙이기

::10 : 10번째 행으로 커서 이동

 

  • 명령어 매뉴얼 보기

$ man ls : ls 명령어의 매뉴얼을 보여줌

 

  • 마운트

$ df : 마운트 된 장치 목록 확인

$ mount 장치명 : 마운트

$ mount 장치명 디렉터리명 : mount point에 마운트

$ umout 장치명 : 마운트 해제

 

  • 경로

. : 현재 디렉터리

.. : 부모 디렉터리

/ : root 디렉터리

$ ls(listd의 약자) : 현재 경로 내에 파일 목록을 보여줌(-l : 자세하게. -a : 숨김 파일까지, -i : inode값)

$ cd(change directory의 약자) 디렉터리명 : 해당 디렉터리로 경로 이동

$ rm(remove의 약자) 파일명 : 해당 파일 삭제

$ rmdir 디렉터리명 : 해당 디렉터리 삭제

$ mkdir(make directory의 약자) 디렉터리명 : 해당 디렉터리로 새로운 디렉터리 생성

$ pwd : 현 경로 확인

$ cp(copy의 약자) 복사할 파일명 또는 디렉터리명 복사될 파일명 도는 디렉터리명: 해당 파일이나 디렉터리를 복사

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

$ mv(move의 약자) 이동할 파일명 또는 디렉터리명 이동될 파일명 또는 디렉터리명 : 파일과 디렉터리 이름을 변경하거나 위치 이동

$ 에디터 파일명 : 해당 파일을 해당 에디터로 편집, 파일이 없을 경우 생성

 

  • 출력

$ cat 파일명 : 파일 내용 출력

$ tail 파일명 : 파일 내용의 뒷부분 출력(-n num : 뒷부분의 n번째 줄까지 출력)

$ head 파일명 : 파앨 내용의 앞부분 출력

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

$ less 파일명 : more과 비슷하지만 기능이 더 확장된 명령

$ watch -n num "cat 파일명" : num sec마다 갱신

$ 명령어 | grep 문자 : 문자가 포함된 행만 명령어 수행

 

  • 사용자와 그룹

/etc/passwd 파일에 사용자가 정의되어 있음(사용자 이름 : 암호(암호화) : 사용자ID : 그룹 ID : 전체 이름 : 홈 디렉터리 : 기본 셸)

/etc/shadow 파일에 비밀번호가 암호문으로 정의되어 있음

/etc/group 파일에 정의되어 있음(그룹명 : 비밀번호 : 그룹 ID : 그룹에 속한 사용자명)

$ useradd 사용자명 : 사용자명으로 새로운 사용자를 추가(/home 디렉터리 밑에 사용자명의 디렉터리가 생성됨)

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

$ usermod 옵션 원하는 속성을 가진 사용자명 변경할 사용자명: 사용자의 속성을 변경(-u : 사용자, -g :그룹, -d : 홈 디렉터리, -s : 셸 지정)

$ userdel 사용자명 : 사용자를 삭제(추가로 /home 디렉터리 밑에 사용자명의 디렉터리까지 삭제해주어야 함)

$ whoami : 현재 사용자를 출력

$ su 사용자명 : 계정 전환

$ groupadd 그룹명 : 그룹명으로 새로운 그룹 추가

$ groupmod 옵션 그룹명 그룹명 : 그룹의 속성을 변경

$ groups : 현재 사용자가 속한 그룹 확인

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

$ groupdel 그룹명 : 그룹 삭제

$ gpasswd 그룹명 : 그룹 암호 설정

$ id 사용자명 : 사용자의 UID, GID 확인

 

  • 소유와 허가권

파일 유형 파일 허가권 링크 수 파일 소유자 이름 파일 소유 그룹이름 파일 크기 마지막 변경 날짜/시간 파일 이름

ex. -rw-r--r-- 1 root root 0 7월6일 17:23 sample.txt

파일 유형 : 디렉터리일 경우에는 d, 일반적인 파일일 경우에는 -가 표시

파일 허가권 : 3개씩 끊어서 읽음, 첫 번째는 소유자의 파일접근권한, 두 번째는 그룹의 파일접근권한, 세 번째는 그 외의 사용자의 파일접근권한, 숫자로도 표시 가능(8진수)

$ chmod 파일 허가권 파일 또는 디렉터리 : 파일 허가권 변경 명령어

파일 소유권 : 파일을 소유한 사용자와 그룹을 의미

$ chown/chgrp 사용자명 또는 그룹명 파일 : 파일의 소유권을 바꾸는 명령어(chown은 사용자, 그룹 모두 가능, chgrp은 그룹만 가능)

파일 링크 : 하드 링크(모두 같은 inode1을 사용)와 심볼릭 링크(새로운 inode2를 만들고 데이터는 원본 파일을 연결하는 효과) 두 가지가 있음

inode : 파일 또는 디렉터리에 대한 정보(일종의 인덱스)를 가진 데이터

$ ln basefile hardlink : 하드 링크 파일 생성(원본 파일 삭제 시에 해당 파일이 원본이 됨)

$ ln -s basefile softlink : 소프트 링크 파일 생성

 

  • rpm(패키지 매니저)

redhat package manager

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

-U : 패키지가 설치/업그레이드

-v : 설치과정의 확인

-h : 설치진행과정을 #마크로 화면에 출력

삭제 : rpm -e 패키지이름

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

rpm 파일 위치는 df 명령어로 cdrom의 위치를 확인

의존성 문제가 있음 -> 해결하기 위해 yum 등장

 

  • yum(패키지 매니저)

yellowdog updater modified

설치 : yum install 패키지이름
rpm 파일 설치 : yum localinstall rpm파일이름.rpm

업데이트 가능한 목록 보기 : yum check-update

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

삭제 : yum remove 패키지이름

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

 

  • dnf

yum의 단점을 개선

사용 방법은 동일

 

  • 파일 압축

xz 파일명 : .xz로 압축, 해제

bzip2 파일명 : .bz2로 압축, 해제(-d)

bunzip2 파일명 : 해제

gzip 파일명 : .gz로 압축, 해제(-d)

gunzip 파일명 : 해제

 

  • 파일 묶기

tar 옵션 파일 파일 : .tar로 묶음 파일을 만들어 주거나 묶음을 풀어줌(-c : 묶기, -x : 풀기, -t : 경로확인, -v : 과정 보이기, -f : 파일, -J : tar+xz, -z : tar+gzip, -j : tar+bzip2)

 

  • 파일 위치 검색

find 경로 옵션 조건 action : 기본 파일 찾기(-name, -user : 소유자, -newer : 전, 후, -perm : 허가권, -size : 크기, -print : 디폴트, -exec : 외부명령 실행)

ex. find /home -name "*.swp" -exec rm {} \;

※ \ : 외부 명령어의 끝을 의미

 

  • cron

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

관련된 데몬(서비스)은 crond, 관련 파일은 /etc/crontab

/etc/crontab ex. minute hour day of month month day of week 명령어

$ crontab -e : crontab 편집

$ crontab -l : crontab에 있는 내용 출력

$ systemctl restart cond : crontab 설정 후 관련된 데몬을 재부팅

 

  • at

cron은 주기적 반복 작업 예약, at은 일회성 작업 예약

$ at hour: minute am or pm

at> 명령어

ctrl + d

$ at -l : 설정된 작업 확인

 

  • 파이프

두 개의 프로그램을 연결해주는 연결통로의 의미

"|" 문자를 사용함

ex. ls -l /etc | more

 

  • 필터

필요한 것만 걸러주는 명령어

grep, tail, wc, sort, awk, sed 등

주로 파이프와 같이 사용

ex. ps -df | grep bash

 

  • 리다이렉션

표준 입출력의 방향을 바꿔줌

ex. ls -l > list.txt

>이 하나면 이어쓰기, >> 덮어쓰기

 

  • 프로세스, 데몬

하드디스크에 저장된 실행코드(프로그램)가 메모리에 로딩되어 활성화된 것

포그라운드 프로세스 : 실행하면 화면에 나타나서 사용자와 상호작용을 하는 프로세스

백그라운드 프로세스 : 실행은 되었지만, 화면에는 나타나지 않고 실행되는 프로세스

프로세스 번호 : 각각의 프로세스에 할당된 고유번호

작업 번호 : 현재 실행되고 있는 백그라운드 프로세스의 순차번호

모든 프로세스는 부모 프로세스를 가지고 있음

부모 프로세스를 kill하면, 자식 프로세스도 자동으로 kill 됨

$ ps -ef | grep 프로세스 이름 : 해당 프로세스의 상태를 확인하는 명령어

$ kill -9 프로세스 번호 : 프로세스를 강제로 종료하는 명령어

$ pstree : 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여줌

$ jobs : 진행중인 프로세스 확인

$ fg : 백그라운드 프로세스를 포그라운드 프로세스로 전환(jobs에서 + 표시된 프로세스가 우선)

$ bg : 포그라운드 프로세스를 백그라운드 프로세스로 전환(전환 전에 ctrl + z로 suspend 상태로 만든 후 진행)

 

  • 루트 비밀번호 분실 시

재부팅

grub에서 e 버튼

linux6에서 end 버튼

rghb 전까지 지우고 init=/bin/bash

재부팅

bash shell 진입됨

# mount -o remount rw / -> 재마운트

# passwd root -> 패스워드 변경

재부팅

 

  • grub 설정

$ vim /etc/default/grub

timeout = 3 -> grub에서 3초 대기 후 실행

$ grub2-mkconfig -o /boot/grub2/grub.cfg

 

  • 커널 업그레이드

$ uname -a 로 버전 확인

www.kernel.org에서 커널 버전 다운

압축 해제

해당 폴더로 경로 이동

$ make mrproper -> 커널 초기화(폴더 안에서)

$ make xconfig -> 커널 설정 파일(filesystem:ntfs 선택)

$ make dep

$ make clean -> 기존정보 삭제

$ make bzImage

$ make; make modules; make modules_install; make install -> 설치(; : 여러 명령어 한번에 실행)

'🔐 [정보보안] 모의해킹 침해대응 전문가 취업캠프 > Server' 카테고리의 다른 글

[Linux] Telnet, SSH  (0) 2023.09.12
[Linux] 디스크 관리  (0) 2023.09.12
[Linux] 리눅스 개요  (0) 2023.08.30
[Server] 환경 설정  (0) 2023.08.29
[Server] 하이퍼바이저  (0) 2023.08.29