관리 메뉴

Today is Present.

01 리눅스 시스템관리 기초실무 본문

리눅스 학습

01 리눅스 시스템관리 기초실무

MorningPhys 2020. 11. 30. 00:26

# 로그인 공지사항 관리하기

/etc/issue : 콘솔 접속 시도시 보여줄 메시지 파일 (로그인 전)

/etc/issue.net : 원격접속시 보여줄 메시지 파일 (로그인 전)

/etc/motd : 로컬접속, 원격접속 로그인 후 보여줄 메시지 (로그인 후)

 

 

# 커널 버전 및 배포판버전 확인하는 방법

[root@localhost ~]# uname -a

[root@localhost ~]# uname -r

 

[root@localhost ~]# cat /proc/version

[root@localhost ~]# cat /proc/sys/kernel/osrelease

[root@localhost ~]# rpm -qa | grep kernel

 

# 설치된 전체 패키지를 확인하는 방법

[root@localhost ~]# rpm -qa | grep kernel

[root@localhost ~]# rpm -qa | wc -l # wc 명령어는 단어, 문자, 행의 개수를 반환하는 명령어

 

# 특정 패키지가 설치되어있는가 확인하는 방법

[root@localhost ~]# rpm -qa | grep samba

 

# 특정 패키지에 의해서 어떤 파일들이 설치되었는가를 확인하는 방법

[root@localhost ~]# rpm -ql vsftpd-2.0.7-1.fc10.i386

 

# 특정파일이 어떤 패키지에 의해 생성되었는가를 확인하는 방법

[root@localhost ~]# rpm -qf /bin/ps

 

# 각각의 패키지 설명과 함께 설치된 전체 패키지리스트 확인하는 방법

[root@localhost ~]# rpm -qa --queryformat "%{NAME} : %{Summary}\n"

[root@localhost ~]# rpm -qa --queryformat "%{NAME} : %{Summary}\n" | more

[root@localhost ~]# rpm -qa --queryformat "%{NAME} : %{Summary}\n" > rpm_list.txt

 

# 쉘프롬프트 모양을 바꿔보자

[root@localhost ~]# env # 환경변수 확인하는 명령어

[root@localhost ~]# echo $PS1 # PS1 변수의 값을 확인한다.

[\u@\h \\]\\$

 

# PS1 변수의 값

[ : "[" 자체를 그대로 나타냄

\u : 현재 사용자를 의미함

@ : "@" 기호 자체를 나타냄

\h : 현재 시스템의 호스트명을 의미함

\H : 현재 시스템의 도메인명 표시함

\W : 현재 위치의 절대경로가운데 현재 디렉토리명만 나타냄

\w : 현재 디렉토리의 전체 절대경로를 모두 표시함

] : "]" 자체를 그대로 나타냄

\\$ : root(UID가 0이면) 이면 #을 표기하고 일반사용자라면 $을 표시함

 

# PS1 변수에 사용되는 기호들

\t : 24시간제로 현재시간을 표시함, 즉 "HH:MM:SS"

\T : 12시간제

\@ : 12시간제로 현재시간을 "오전/오후" 형식으로 표시함

\d : 현재 날짜를 나타냄

\s : 현재 사용중인 쉘의 이름을 나타냄

\v : 사용중인 bash 의 버전

\V : 사용중인 bash의 배포, 버전+패치수준으로 버전을 상세히 표시함

\# : 접속한 순간부터 사용한 명령어의 번호를 1번부터 차례대로 표시함

 

# PS1 변수를 변경하는 방법

[root@localhost ~]# echo $PS1

[\u@\h \W]\\$

[root@localhost ~]# export PS1 = "[\y@\h \w]\\$

 

# 쉘프롬프트 모양을 한번 바꿔서 지속적으로 계속 사용하기

[root@localhost ~]# cat /home/morphys/.bashrc

[root@localhost ~]# vi /home/morphys/.bashrc

편집하여 맨 끝에 다음을 추가한다.

PS1 = "[\y@\h \W]\\$

 

# 리눅스 시스템이 외부의 ping 에 응답하지 않도록 설정하는 방법

[root@localhost ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0

[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

[root@localhost ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1

 

[root@localhost ~]# sysctl -w net.ipv4.icmp_echo_ignore_all=1
[root@localhost ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1

[root@localhost ~]# sysctl -w net.ipv4.icmp_echo_ignore_all=0

 

# 특정프로세스 확인과 동시에 죽이기

[root@localhost ~]# ps -ef | grep vsftpd

[root@localhost ~]# kill -9 2389

[root@localhost ~]# ps -ef | grep vsftpd

 

방법 1 : killall "프로세스명"

방법 2 : ps -ef | grep "프로세스명" | awk '{print $2}' | xargs kill -9

 

# 리눅스 시스템 제어판 디렉토리 : /etc/sysconfig

 

# 리눅스 콘솔에서 한글사용하는 법

[root@localhost ~]# cat /etc/sysconfig/i18n

LANG="ko_KR.eucKR"

SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.ITF-8:ko_KR:ko"

 

# 기본적인 시스템 정보 확인하기

[root@localhost ~]# uname -a

[root@localhost ~]# uname -s // 운영체제 이름만 확인

[root@localhost ~]# uname -n // 호스트네임 정보만 확인

[root@localhost ~]# uname -r // 커널 버전 확인

[root@localhost ~]# arch // 현재 시스템 HW 아키텍처

[root@localhost ~]# uname -m // 현재 시스템 HW 아키텍처

[root@localhost ~]# cat /proc/version

 

# ls -al 중 디렉토리 리스트만 확인하기

[root@localhost ~]# ls -al | grep "^d"

 

# 설정된 별칭명령어 해제하기

[root@localhost ~]# unalias 별칭명

[root@localhost ~]# unalias -a

 

# 원격접속하는 ssh 명령어 별칭 설정하여 사용하기

[root@localhost ~]# alias server251='ssh -l morphys 192.168.0.251'

[root@localhost ~]# alias ncftp251='ncftp -u morphys 192.168.0.251'

[root@localhost ~]# server251

[root@localhost ~]# cat /root/.bashrc

[root@localhost ~]# vi /root/.bashrc 편집 후 alias 추가하기

 

# 특정문자열에 가장 가까운 명령어 재사용하기

[root@localhost ~]# history 10

[root@localhost ~]# !find    // !문자열

find / -name system-config*

 

# 전문가들이 사용하는 명령어 재사용 방법

"1-n" : 현재 명령행에서 n개수를 뺀 행의 명령어를 가리킨다.

"!?문자열[?]" : "문자열"을 가리키는 가장 최근의 명령어를 가리킨다.

"^문자열 1^문자열 2" : 최근 사용명령어 가운데 "문자열 1" 이 들어가는 명령어를 찾아서 "문자열 1"을 "문자열 2"로 치환하여 재실행한다.

 

# 명령어히스토리와 시스템보안 중 현재 서버에 존재하는 모든 .bash_history 파일 찾기

.bash_history 파일에는 그 사용자가 최근 사용했던 1,000개의 명령어들이 저장되어 있다.

[root@localhost ~]# find / -name .bash_history -exec ls -l {} \;

[root@localhost ~]#

 

# 명령어리스트 다른 파일에 저장하기

[root@localhost ~]# history -w morphys_command.txt

 

# 명령어 재사용하는 가장 쉬운 방법

[root@localhost ~]# ls -l morphys_command.txt

[root@localhost ~]#

[root@localhost ~]# !!

 

# 최근 사용했던 8개의 명령어만 확인하기

[root@localhost ~]# history 8

 

# 저장된 명령어 탐색하여 재사용하는 방법

[root@localhost ~]# history | grep find

80 find / -name system-config-

105 find/ -name system-config*

965 find / -name system-config*

[root@localhost ~]#

[root@localhost ~]# !105

 

# 호스트네임 확인하는 여러가지 방법

[root@localhost ~]# hostid

[root@localhost ~]# hostname

[root@localhost ~]# echo $HOSTNAME

[root@localhost ~]# hostname

centos.net

[root@localhost ~]#

[root@localhost ~]# hostname www.linux.ac.kr

[root@localhost ~]#

[root@localhost ~]# hostname

www.linux.ac.kr

[root@localhost ~]#

 

# 재부팅시 원상 복귀가 된다. 따라서 /etc/sysconfig/network 파일의 HOSTNAME 부분을 변경해야 한다.

[root@localhost ~]# cat /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=www.linux.ac.kr

GATEWAY=192.168.42.103

[root@localhost ~]#

 

# 누가 언제 접속했는가 ? 사용자 접속정보 확인하기

[root@localhost ~]# last  // var/log/wtmp 파일에는 모든 계정사용자들의 접속정보와 부팅정보 있다.

[root@localhost ~]# last 사용자명

 

[root@localhost ~]# last -t YYYYMMDDHHMMSS

[root@localhost ~]# last -t 20140101123031

[root@localhost ~]# last reboot // 시스템 재시작했던 기록만 보여준다.

[root@localhost ~]# last -a  // last 결과 중 IP 주소를 해당 행의 마지막열에 표시

[root@localhost ~]# last -d // 외부 접속 정보만 확인

 

# 시스템 사용자들에 대한 최근 접속정보를 확인

[root@localhost ~]# lastlog // lastlog 는 /var/log/lastlog 파일의 정보에 저장된다.

// /var/log/wtmp  파일은 last 명령어로 확인하고 /var/log/lastlog 파일은 lastlog 명령어로 확인

 

[root@localhost ~]# lastlog -u 사용자ID

[root@localhost ~]# lastlog -b N // 지정한 N일 이전에 접속한 마지막 접속정보만 확인

[root@localhost ~]# lastlog -t 일자 // 최근 명일 전부터 현재까지의 마지막 접속정보 확인

[root@localhost ~]# lastlog -u 사용자ID -b N

[root@localhost ~]# lastlog -u morphys -b 5 // morphys 사용자의 최근 5일 이전부터 현재까지

[root@localhost ~]# lastlog -t 10 // 최근 10일 전부터 현재까지의 접속한 기록

 

# 시스템 관리 작업내용을 모두 텍스트 파일로 자동저장하기 : script and exit

[root@localhost ~]# script

... 작업 ...

[root@localhost ~]# exit

 

[root@localhost ~]# cat typescrypt

 

# 스크립트 파일명 지정

[root@localhost ~]# script command.txt

... 작업 ...

[root@localhost ~]# exit

 

[root@localhost ~]# ls -l command.txt

[root@localhost ~]# cat command.txt

 

# 기존 파일에 추가하여 스크립트 기록하기

[root@localhost ~]# script -a command.txt

... 추가 작업 ...

[root@localhost ~]# exit

 

# 로그인 후 작업내용을 자동으로 저장하기 : .bashrc 파일의 마지막에

script /tmp/./../../working_note.txt 와 같은 형식으로 저장해둔다.

그리고 .bash_logout 파일에는 exit 를 넣어둔다.

 

# 실행파일 또는 바이너리 파일에서 문자열 검색 : strings

[root@localhost ~]# file /etc/mail/access.db

[root@localhost ~]# strings /etc/mail/access.db

 

[root@localhost ~]# file /etc/mail/virtusertable.db

[root@localhost ~]# strings /etc/mail/virtusertable.db | grep .co.kr

admin@picasso.co.kr

webmaster@linux.co.kr

 

[root@localhost ~]# strings /etc/mail/virtusertable.db | grep .net

master@sulinux.net

[root@localhost ~]#

 

[root@localhost ~]# file /var/log/wtmp

/var/log/wtmp: data

[root@localhost ~]#

[root@localhost ~]# strings /var/log/wtmp | grep 192.168.0.251

192.168.0.251

[root@localhost ~]#  

 

# sync 작업을 하지 않고 시스템을 종료하려면

[root@localhost ~]# poweroff -n

 

# 시스템 부팅메시지 확인하는 방법

[root@localhost ~]# vi /var/log/dmesg

[root@localhost ~]# grep CPU /var/log/dmesg

[root@localhost ~]# /bin/dmesg

[root@localhost ~]# dmesg | grep Memory

728x90
반응형