A. 파일 위치 검색

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

  • 옵션 
    • -name
    • -user(소유자)
    • -newer(전, 후)
    • -perm(허가권)
    • -size(크기)
  • action
    • -print
    • -exec (외부명령 실행)

exec 옵션
exec 옵션 결과

 

B. 시스템 설정

네트워크 = nmtui

방화벽 = ufw

서비스 설정 = rcconf

 

해당 파트는 추후에 업데이트 예정

 

 

C. 작업예약

cron

  • 주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정
  • 관련된 데몬(서비스)은 crond, 관련 파일은 /etc/crontab
  • /etc/crontab 형식
    • 분 시 일 월 요일 사용자 실행명령
    • 예시) 00 05 1 * * root cp -r /homr /backup

at

일회성 작업을 예약

예시)

at <시간>

at 3:00 am tomorrow -> 시간 설정

cp -r /home /back up -> 예약 명령 설정

ctrl + D -> at 설정 모드 나오기

 

확인 = at -l 

취소 = atrm <작업번호>

 

 

D. 네트워크 관련

네트워크 장치 명령어

ifconfig [랜카드 이름] = 네트워크 설정 정보

ifdown [랜카드 이름] = 네트워크 장치 정지

ifup [랜카드 이름] = 네트워크 장치 가동

 

 

nm-connection-editor

- 네트워크와 관련된 대부분의 작업을 이 명령어에서 수행

- GUI 기반 명령어 (텍스트 모드는 nmtui)

 

systemctl [start/stop/restart/status] network

 

 

네트워크 기본 정보가 설정된 파일

/etc/NetworkManager/system-connections/유선 연결 1

-> GUI 

 

/etc/network/interfaces

-> 텍스트

 

 

DNS 설정파일

/etc/resolv.conf

-> 영구적으로 DNS 서버 정보를 변경하려면

/etc/network/interfaces 파일을 직접 편집해야 함

 

 

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

/etc/hosts

 

E. 프로세스, 데몬, 서비스

1. 파이프

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

 

2. 필터

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

-  grep, tail, wc, sort, awkm sed 등

- 주로 파이프와 같이 사용

 

3. 리디렉션

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

- ls -l > list.txt

 

4. 프로세스

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

 

Foreground Process

- 실행하면 화면에 나타나서 사용자와 상호작용을 하는 프로세스

- 대부분의 응용프로그램

 

Background Process

- 실행은 되었지만, 화면에는 나타나지 않고 실행되는 프로세스

- 백신 프로그램, 서버 데몬 등

- &을 붙이면 백그라운드에서 동작함

  예시) gedit &

 

프로세스 번호

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

 

작업 번호

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

 

부모 프로세스와 자식 프로세스

- 모든 프로세스는 부모 프로세스를 가지고 있다. 

- 부모 프로세스를 kill 하면, 자식 프로세스도 자동으로 kill 된다. 

 

프로세스 관련 명령

ps

- 현재 프로세스의 상태를 확인하는 명령어

- ps -ef | grep [프로세스 이름] 을 주로 사용함

 

kill

- 프로세스를 강제로 종료하는 명령어

- kill -9 [프로세스 번호] = 강제종료

 

pstree

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

 

5. 서비스

- 시스템과 독자적으로 구동되어 제공하는 프로세스를 말한다. 

- 예로 웹 서버, DB 서버, FTP 서버 등이 있다.

- systemctl [start/stop/restart] 서비스 이름 

- 서비스의 실행 스크립트 파일은 /lib/systemd/system/ 디렉터리에

  서비스이름.service란 이름으로 확인할 수 있다. 

- 부팅과 동시에 서비스의 자동 실행 여부를 지정할 수 있다.

  터미널에서 systemctl list-unit-files 명령을 실행하면

  현재 사용과 사용안 함을  확인할 수 있다.

- 또는 rcconf 명령으로 설정할 수도 있다. 

 

6. 소켓

- 서비스는 항상 가동되지만, 소켓은 외부에서 특정 서비스를 요청할 

경우에 systemd가 구동시킨다. 그리고 요청이 끝나면 소켓도 종료된다.

- 그래서 소켓으로 설정된 서비스를 요청할 때는 처음 연결되는 시간이

앞에서 설명한 서비스에비교했을 때 약간 더 걸릴 수 있다.

- 왜냐면 systemd가 서비스를 새로 구동하는데 시간이 소요되기 때문이다.

이와 같은 소켓의 대표적인 예로 텔넷 서버를 들 수 있다. 

- 소켓과 관련된 스크립트 파일은 /lib/systemd/system/ 디렉터리에

[소켓이름].socket 이름으로 존재한다. 

 

 

F. 응급복구

- 시스템이 부팅이 되지 않을 경우에 수행

- 몇몇의 문제를 해결할 수 있다.

 

예시) root 비밀번호 분실 시

 

1. 부팅시 esc 누른다.

2. ubuntu 사용자 선택 후 e 누른다.

3. GRUB  편집창에서 제일 아래로 내리면 아래와 같은 linux 행이 보인다. 

4. end 키를 누르면 ro 끝으로 가는데 init=/bin/sh를 입력한다. (아래 그림 참조)

root 비밀번호 분실 시

5. ctrl + x 부팅

6. 루트 사용자로 접속이 된다. 

7. 패스워드를 그냥 바꾸려면 안된다.

    왜냐면 응급모드는 sda2가 읽기전용으로 마운트 되기 때문이다.

8. mount -o remount, rw /    명령어를 통해 읽기 쓰기로 재마운트 한다. 

9. passwd로 패스워드 바꾸면 된다. 

 

당연하지만 실제 운영할 때는 GRUB 편집 창 접근시에도 아무나 접근 못하게 패스워드를 설정한다.

 

G. GRUB 부트로더

- 부트 정보를 사용자가 임의로 변경해 부팅할 수 있다. 

- 다른 여러가지 운영체제와 멀티부팅을 할 수 있다. 

- 대화형 설정을 제공하여 커널의 경로와 파일 이름만 알면 부팅이 가능하다. 

 

GRUB2의 장점

- 셀 스크립트를 지원함으로써 조건식과 함수를 사용할 수 있다. 

- 동적 모듈을 로드할 수 있다. 

- 그래픽 부트 메뉴를 지원하며, 부트 스플래시 성능이 개선되었다. 

- ISO 이미지를 이용해 바로 부팅할 수 있다. 

 

GRUB2 설정 방법

- /etc/default/grub 파일과 /etc/grub.d/ 디렉터리의 파일을 수정한 후

grub-mkconfig 명령어를 실행해 설정한다. 

- /boot/grub/grub.cfg 설정파일을 직접 변경하면 안된다. 

 

/etc/default/grub 파일

/etc/default/grub 파일

 

- GRUB 화면 설정파일

vi /etc/default/grub

 

- GRUB 유저 추가 및 패스워드 설정

vi /etc/grub.d/00_header

맨아래로 내려가서 

 

cat << EOF

set superusers="원하는 유저이름"

password "적은 이름"  [비밀번호]

EOF

 

둘 중 뭐든 수정한 내용있으면

update-grub 명령어 입력 후 재부팅

 

 

H. 모듈, 커널 컴파일

커널의 개념

 

커널 = 리눅스의 엔진과 같다. 

커널이 시간이 지나갈수록 요구하는 기능이 많아져 크기가 커졌다. 

더 커지는 것을 방지하기 위해 필요할 때만 쓸 기능은 모듈로 뺐다. 

 

모듈 = 필요할 때마다 호출하여 사용되는 코드

 

 

커널 컴파일

커널 컴파일 순서

 

커널 컴파일 = 기존의 엔진을 새로운 엔진으로 교체 혹은 기존의 엔진을 그대로 두고 새로운 엔진 추가를 하는 것