linux

linux - 기본

sysman 2020. 11. 25. 15:17

 

 

 

 

 

<runlevel>

system runlevel type

0 - halt 시스템종료

1 - single user mode 싱글유저모드(시스템복구, 관리자 비밀번호 변경)

2 - multiuser 멀티유저가능(단 nfs 사용불가)

3 - full multiuser 멀티유저가능(모든 기능 사용 가능)

4 - unused 이후를 위해 예약된 번호

5 - full multiuser, graphical 그래픽모드를 지원하는 멀티유저

6 - reboot 재부팅

 

# runlevel  //확인

# init 3 //tui (text ui mode)로 변경

# who -r //현재 runlevel 확인

# systemctl get-default //  모드확인 

#systemctl set-default //  모드 설정

 

TUI 모드설정 

init 3

systemctl set-default multi-user.target

systemctl get-default

shutdown -r 0

 

GUI 모드설정

init 5

systemctl set-default graphical.target

systemctl get-default

shutdwon -r 0

 

 

 

cli 절대경로 표시  
#vi ~/.bash_profile 
export PS1='[\u@\h $PWD ]\\$' 
set -o vi 
:wq! 

#source ~/.bash_profile 
로그아웃 후 다시 접속

 

hostname 변경

#hostname <host이름> (임시변경)

#hostname controller.example.com

# hostname   //확인

 

#CentOS 6 (영구변경)

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

HOSTNAME=myhost

#CentOS 7 (영구변경)

[root@localhost ~]# hostnamectl set-hostname myhost

 

언어변경

 

현재 사용중인 언어확인

# echo #LANG

#locale

 

현재 지원 되는 언어 종류 확인

# locale -a

# locale -a | grep -i kr

 

임시적 언어변경

#export LANG=C; echo $LANG

# export LANG=ko_KR.euckr

 

 

영구적 언어변경

#localectl set-locale LANG='변경할 언어'

#localectl set-locale LANG=ko_KR.utf8

#cat /etc/locale.conf

로그 아웃, 로그 인

 

 

[참고] BASH : 명령어 해석기

ls 라는 명령어 하나만의 결과를 보기 위해서도 하드디스크, 키보드, 모니터등 여러 가지 장치를 제어해야 하는데 bash를 통한 명령어가 명령어 해석이 된 다음 커널에서 각종 장치를 제어하여 결과를 출력해준다.

 

<CTRL + U>

명령어 라인 전체를 지워 주는 역할을 갖는다.

 <CTRL + W>

명령어 라인상에 마지막 단어를 지워주는 역할을 갖는다.

단어의 구분은 공백으로 한다

 

# find / -name core -type f <CTRL + W>

# find / -name core -type <CTRL + W> <CTRL + W>

# find / -name <CTRL + W>

# find / <CTRL + U>

 

<CTRL + S>, <CTRL + Q>

명령어 출력 결과가 긴 경우 출력 화면을 멈춰 놓거나, 계속 진행한다.

# du –a /

<CTRL + S> /* stop */

<CTRL + Q> /* quit, 원래 상태로 빠져 나오기 */

<CTRL + S>

<CTRL + Q>

<CTRL + C> /* 정지와 복귀를 반복해보다가 빠져나온다 */

 

# shutdown -c /* 종료 취소 */

 

도움말

# man ls

# man –k calendar  //-k는 키워드 옵션

# whatis passwd

# man –s 5 passwd

# man ls | col –b > ls.txt

# info ls

# which ls

# whatis ls

 

알리아스

alias ls='ls --color=auto'  //알리아스 설정

/usr/bin/ls   

alias(별칭) 명령어를 간편하게 사용하기 위해 사용한다

(선언) # alias ls='ls -h --color=tty'

(확인) # alias

(해제) # unalias ls

# alias lsf='ls -l | grep "^-"' /* 파일인 경우 속성 정보에 -로 표시 */

# alias lsd='ls -l | grep "^d"'/* 디렉토리인 경우 속성 정보에 d로 표시 */

 

 

 

OS 릴리즈 정보 확인

#hostnamectl //자세한 정보 나옴

# ls /etc/*release

/etc/centos-release

/etc/os-release

/etc/redhat-release > /etc/centos-release의 링크파일

/etc/system-release

# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)

 

password Recovery( 접속 시에 복구)

1.시스템 재부팅

2. 아무키나 눌러서 부트 로더 카운트다운을 중지

3. 수정에 해당하는 e 키를 입력

4. 커널명령줄 linux16 라인의 끝으로 이동

5. rd.break 입력후 ctrl + x 입력

6. 아래 코드 창의 명령어를 순서대로 입력

# mount -o remount,rw /sysroot

# chroot /sysroot

# cd /etc

# mv passwd- passwd

# mv shadow- shadow

# touch /.autorelabel  

# exit

# exit

 

> .autorelable파일은 SELINUX가 동작하면서 발생하는 컨텍스트 값을 초기화 시켜주며 재작성한다. 만약 SElNUX가 활성화 되어 있는 서버에서 해당 명령어를 입력하지 않으면 기존의 파일이 변경되지 않기 때문에 비밀번호를 입력해도 접속이 불가능하다

 

[EX] 관리자 비밀번호 강제 변경

변경절차 (패스워드 복구)

시스템 재부팅

아무키나 눌러서 부트 로더 카운트다운을 중지

수정에 해당하는 e 키를 입력

커널명령줄 linux 라인의 끝으로 이동

...rhgb quiet rd.break 입력후 ctrl + x 입력

아래 코드 창의 명령어를 순서대로 입력

# mount -o remount,rw /sysroot

# mount | grep sysroot  //rw 되어 있는지확인

# chroot /sysroot 

# passwd

New password: 입력

retry password: 입력

# touch /.autorelabel  //selinux update

# exit

# exit

 

패스워드 입력시 아래처럼 해도됨

echo root | passwd --stdin root 

test 시

echo $RANDOM | passwd --stdin root

 

데몬 설치 확인

rpm -qa | grep chrony

 

 

시간설정

수동 설정 :timedatactl set-time “2020-03-03 16:44:44”

 

hostname 변경

cat /etc/hostname

hostnamectl set-hostname server1.example.com

 

ntp 설정(centos 8 기준)

rpm -qa | grep chrony

vi /etc/chrony.conf

# pool~~ //주석처리

server time.bora.net iburst

 

service chronyd restart (= systemctl restart chronyd)

timedatectl set-ntp true

 

timedatectl //확인

chronyc sources -v //확인

 

 

 

 

Clock

# timedatectl

■ Software clock

# date

■ Hardware Clock

# hwclock --show

HW-OS 시간 동기화

# hwclock --systohc /* System Time -> Hardware Clock */

# hwclock --hctosys /* Hardware Clock -> System Time */

 

 

 

bash built-in command < 이 내용이 나온다면 이 명령어는 bash 내장 명령어. 확인 ?

명령어는 크게 쉘 내장 명령어, 쉘 외장 명령어

쉘 내장 명령어 = bash shell에 같이 존재하는 명령어

쉘 외장 명령어 = /usr/bin /usr/sbin.. 특정 디렉토리에 설치 되어 있는 명령어

 

절대경로 

cd /home/test/

상대경로

cd ../.. 

root@a # cd ~fedora  // /home/fedora 이동

root@a # cd ~/fedora // /root/fedora 이동

 

사용자가 /etc 디렉토리에서 작업을 하다가 /home/user01 디렉토리로 이동하는 경우 상대경로나 절대경로를 사용하는 경우는 불편하게 된다. 이런 경우 이전 디렉토리로 바로 이동하기 위해서 "cd - " 명령어를 사용한다.

 

ls 명령어 옵션

-a : 모든 파일 표시, 여기에는 숨김 파일(점(.)으로 시작하는 파일)도 표시한다.

-l : 디렉토리가 지정되는 경우 디렉토리의 내용을 자세히 보여준다. 또한 파일의 내용 이 지정되는 경우 파일의 속성 정보를 자세히 보여준다. 파일 종류, 링크 수, 소유자명, 그룹명, 파일 크기, 최종 수정일 및 용량, 파일명 표시한다.

-R : 해당 디렉토리와 서브디렉토리의 모든 내용을 표시

-F : 디렉토리인 경우에는 디렉토리 "/"표시를 하고 실행 파일인 경우는 뒤에 "*"표시를 한다.

-i : 해당 파일의 inode 번호를 표시한다.

-n : 파일의 소유자와 그룹을 숫자로( UID : GID )표시한다.

-d : 찾고자 하는 디렉토리에 관한 정보만을 표시한다.

ls 명령어에서 이정도는 알아두자.

l 자세하게 출력

a 모든파일 출력(숨김파일 포함)

i inode 번호 출력

h 용량을 사람이 보기 편하게 변경하여 출력

t 시간순 정렬

u 접근시간 으로 변경

r 역방향 정렬때 사용(t옵션과 같이 쓴다.)

F 파일형식 확인

 

-|rw-:r--:r--|.|1|root|root|0|11월 26 1605|file1

- : 파일의 형식을 보여준다. ls에서 많이 나타나는 파일의 형식

- 일반파일

실행파일, 데이터 파일, 로그, 왠만한 것들은 모두 일반 파일로 분류

d 디렉토리

디렉토리(폴더)

장치파일: /dev : c 캐릭터 파일

b 블록 파일

rw-r--r-- 파일의 권한 

.보안적인 요소 : ACL 권한이 포함이 되어 있는지의 유무

. -> ACL이 설정 되어 있지 않다.

+ -> ACL이 설정 되어 있다.

1 링크 디스크에 존재하는 파일에서 몇개의 접근 지점이 존재하는가?

root : 개인 소유자

root : 그룹 소유자

0 : 용량

11월 26 16:05 : 수정 시간

file1 파일 이름 접근을 위해서 사용해야 하는 오브젝트

 

<ls 관련>

#ls -lr // ls -l 반대로 역순으로 출력됨

#ls -ld //디렉토리출력

#ls -l | wc -l  //파일갯수

# ls -lR /test /* -R: Recursive, 하위 디렉토리까지 */

 

삭제 명령어

-f : 강제로 파일을 지우고 삭제할 파일이 없을 경우에도 아무런 메시지를 보여주지 않는다.

-i : 파일을 삭제할 것인지 사용자에게 물어봄

-r, -R : 일반파일이면 그냥 지우고 디렉토리일 경우 그 하위경로와 파일을 모두 지움

-v : 삭제되는 파일의 정보를 보여줌

#rm -rf dir

#rm -rf t.txt

 

 

디렉토리 생성  

#mkdir -P /a/b/c    //하위디렉토리까지 생성

# mkdir dir1 /* 현 디렉토리에 dir1 디렉토리 1개 생성 */

# mkdir dir1 dir2 /* 현 디렉토리에 dir1, dir2 디렉토리 2개 생성 */

# mkdir -p dir3/dir2/dir1 /* dir3 디렉토리 안에 dir2를 생성하고 dir2 안에 dir1을 생성 */

 

# mkdir dir1 /* 현 디렉토리에 dir1 디렉토리 1개 생성 */

# mkdir dir1 dir2 /* 현 디렉토리에 dir1, dir2 디렉토리 2개 생성 */

# mkdir -p dir3/dir2/dir1 /* dir3 디렉토리 안에 dir2를 생성하고 dir2 안에 dir1을 생성 */

 

 

복사

-a : 원본 파일의 속성, 링크 정보를 유지 하면서 복사

-b : 복사할 대상을 덮어쓰거나 지울 때를 대비해서 백업 파일 만듦 백업파일의 파일명 뒤에는 ~가 표시된다.

-d : 심볼릭 파일 자체를 심볼릭 정보와 함께 복사할 때 사용

-f : 복사할 파일이 존재할 때 삭제하고 복사

-i : 복사할 파일이 존재하는 경우 복사할 것인지 물어봄

-l :디렉토리가 아닌 경우 복사 대신 하드 링크로 만듦

**-p :** 원본 파일의 소유, 그룹, 권한, 허용 시간을 보존한 채로 복사

**-r :** 서브 디렉토리 내에 있는 모든 파일까지 통째로 복사

-s : 디렉토리가 아닌 경우 복사 대신 심볼릭 링크로 만듦

-u : 대상 파일보다 원본 파일이 새로운 것일 때 복사

-v : 복사 상태를 보여줌

 

# cp -r dir1 dir2 // -r :디렉토리 하위 파일까지 복사 옵션

# ls -lR

drwxr-xr-x 2 root root 4096 Jan 26 11:36 dir1

drwxr-xr-x 2 root root 4096 Jan 26 11:37 dir2

./dir1: total 0

-rw-r--r-- 1 root root 0 Jan 26 11:36 file1

-rw-r--r-- 1 root root 0 Jan 26 11:36 file2

./dir2: total 0

-rw-r--r-- 1 root root 0 Jan 26 11:37 file1

-rw-r--r-- 1 root root 0 Jan 26 11:37 file2

 

mv

-b : 복사할 대상을 덮어쓰거나 지울 때를 대비해서 백업 파일 만듦

-f : 복사할 파일이 존재할 때 삭제하고 복사

-i : 복사할 파일이 존재하는 경우 복사할 것인지 물어봄

-u : 대상 파일보다 원본 파일이 새로운 것일 때 복사

-v : 파일 옮기기 전의 과정을 보여 줌

 

file

[root@server1 /root/temp ]$ls -F 
f1  f2  f3@ 
[root@server1 /root/temp ]$file * 
f1: ASCII text 
f2: empty 
f3: symbolic link to f1

 

touch file{1..100} //파일 100개 만듬

 

inode 변경 없이 file 내용 및 용량 0으로 지움

# > file1

 

stat [file] //파일메타정보

stat file.txt

 

cat 명령어

-e : 제어 문자를 ^ 형태로 출력하며 끝에 $를 추가

-n : 줄번호를 공백을 포함하여 화면 왼쪽에 나타냄

-s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리

-v : 행바꿈 문자, tab를 제외한 제어문자를 ^ 형태로 출력

-E : 각 행 끝에 $ 문자 출력

-T : tab 문자를 출력

-A : -vET 옵션과 동일

# cat file1 /* file1 파일 내용을 출력 */

# cat file1 file2 /* file1, file2 파일 내용을 출력 */

# cat -n file1 /* file1 파일내용을 줄번호와 함께 출력 */

# cat file1 file2 > file3 /* file1, file2 출력 결과를 file3에 저장 */

 

바이너리 파일을 cat 명령어로 보는 경우 비프(bepp)음이 계속 나오게 되며 이러한 경우 터미널 창을 종료 해야 함.

ex) # cat /bin/ls /* 바이너리 파일은 cat으로 열지 않는다 */

# strings -f /bin/ls

미니멀 버전 : # dnf -y install binutils

 

more명령어

-e : 제어 문자를 ^ 형태로 출력하며 끝에 $를 추가

-n : 줄번호를 공백을 포함하여 화면 왼쪽에 나타냄

-s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리

-v : 행바꿈 문자, tab를 제외한 제어문자를 ^ 형태로 출력

-E : 각 행 끝에 $ 문자 출력

-T : tab 문자를 출력

-A : -vET 옵션과 동일

#more file1

#CMD | more

#ps -ef |more

#rpm -qa | more

 

head 명령어

-n (숫자) : 위쪽 행에서부터 출력할 행수를 지정

-c (숫자) : byte 수 만큼만 출력

head file

head -5 file

 

tail 명령어

-c (숫자) : 끝에서부터 지정된 수만큼의 바이트에 해당하는 정보를 보여준다.

**-f :** 파일의 크기가 변할때마다 추가된 정보를 출력한다.

-F : 위 -f옵션의 경우 파일크기가 변하여 5Mbytes 정도 되면 확장자에 숫자를 붙여 백업파일을 생성하고, 다시 본 파일은 0byte 부터 저장된다. 그래서 tail -f 파일명으로 실행중인 명령이 멈춰버린다는 문제가 생겨 재실행시켜줘야 하는 번거로움이 있다. -F옵션을 사용하면 이런 재실행문제 및 용량변화로 인한 문제를 걱정하지 않아도 된다. -f옵션때와 마찬가지로 Ctrl+C로 빠져나올 수 있다.

-(숫자) : 끝에서부터 지정된 수만큼의 줄을 보여준다.

-q : 출력결과에서 맨 윗줄에 입력파일명을 표시하지 않게 설정한다.

-v : -q와 반대로 출력결과에서 맨 윗줄에 입력파일명을 항상 표시해준다.

--help : 도움말을 보여준다.

--version : 버젼 정보를 보여준다.

tail /etc/file

tail -5 /etc/file

tail -f /var/log/messages

 

[EX3] 서버를 실시간적으로 모니터링

[TERM1] # top (# gnome-system-monitor)

[TERM2] # tail -f /var/log/messages (# gnome-system-log)

# tail -f /var/log/messages | grep -i DHCP

# tail -f /var/log/messages | grep -i DNS

# tail -f /var/log/messages | grep oracle

# tail -f /var/log/messages | grep wasuser (특정 서비스에 대한 모니터링)

또 다른 활용방안

# cat /var/log/messages | egrep –i '(warn|err|alert|emerg)'

 

wc 명령어

파일 내의 문자수, 단어 수 그리고 라인수를 확인하고자 할 때 사용한다. wc 명령어를 사용하여 프로세스의 수, 시스템에 설치된 패치의 수, 시스템에 설치된 패치의 수 등을 확인 할 때 사용 할 수 있다. wc 명령어에 -l 옵션은 쉘스크립트나 파일에 대한 무결성 체크 등 많은 곳에서 활용이 가능하다

-c : 문자수만 출력, -l:라인수만 출력, -w:단어수만 출력, -L:가장 긴줄 한줄만 출력

#wc -l /etc/passwd

#ps -ef | wc -l

# cat /etc/passwd | wc -l

#rpm -qa | wc -l

 

데이터 수집

#ps -ef | grep httpd | wc -l

#df -h | tail -1| awk '{print$5}'

#cat /var/log/messages | grep 'START:telnet' | wc -l

 

디스크 용량

#df –k

# df –k /

# df -k / | tail -1

# df -k / | tail -1 | awk '{print $5}' > df.count

# cat df.count

8%

# df -k / | tail -1 | awk '{print $5}' | awk -F% '{print $1}' > df.count

# cat df.count

8

명령어 형식 = awk [option] [-F] ['{script}'] # cd /test

# touch file1 file2 file3

# ls -l | grep "^-" | awk '{print "vi "$9}'

vi file1

vi file2

vi file3

 

yum과 dnf차이 없음, centos8로 넘어오면서 생김

rpm -qa  | grep telnet //설치된 파일 확인
dnf list | grep  telnet //설치할 파일 확인

dnf repolist  //리포지토리 리스트

 

 

w 명령어

시스템에 login한 사용자가 어떤 명령어를 실행하고 있는지 알아보는 명령어이며, /proc 디렉토리로 부터 사용자에 대한 정보와 실행중인 명령어에 대한 정보를 추출해 낸다.

#w 

# while true

> do

> echo

> echo "============`date`============"

> w user01

> sleep 2

> done

 

차이점 관리자 비밀번호 유무
su - // 관리자 비밀번호를 알려줘야 함
sudo  //관리자 비밀번호 알려줄 필요없다

 

awk 명령어

awk 명령어를 사용하기 전에 꼭 알아두어야 할 것은 기본적으로 탭 또는 공백으로 구분되는 각각의 단어들을 하나의 변수로 처리한다는 것이다. 탭과 공백을 무시하고 특정문자 콜론(:)이나, 세미콜론(;) 콤마(,) 등을 구분문자로 사용하고자 한다면 -F 옵션을 사용하면 된다.

 

명령어 형식 = awk [option] [-f] ['{script}']

touch file1 file2

#ls -l | grep "^-" | awk '{print "vi "$9}'

vi file1

vi file2

 

# alias pps='ps -ef | head -1 ; ps -ef | grep $1' /* $1 : 첫번째 인자(Argument) */

# pps sshd (# pps syslogd, sshd는 인자)

# vi ~/.bashrc (# gedit ~/.bashrc)

alias pps='ps -ef | head -1 ; ps -ef | grep $1'

# . ~/.bashrc (# source ~/.bashrc)

# pps syslogd

 

 

 

# ls # cd # pwd # passwd # useradd # rm # cp # mv # date # touch # mkdir # rmdir # id # cat # ps # bash # su - # echo # more # man # clear # ln # tree # dnf # chmod # chown # umask # which # where is # whereis # alias # histroy # stat # file # > # 2> # < # ssh # scp # sftp # script # tree # vi # uname # systemctl # exit # export # ^c # ^d # export # poweroff # init # reboot # shutdown # ping # telnet # ifconfig # head # tail # who # last # lastb # w # while true > do action > done # df # du # sort # tee # mail # wall # grep # find

 

# lsscsi # lspci # fdisk # parted # mount # mkfs # pvcreate # vgcreate # lsvrete # pvs # pvdisplay # vgs # vgdisplay # lvs # lvdisplay # blkid #

 

pwd

ls

# ls -altr /tmp    /* -t : time sort, -r : reverse sort */

 

cd

cd - 이전에 있었던 디렉토리로 돌아감

 

mkdir

rmdir

lsblk  //논리스토리지 정보

mount

df

uname

ps

kill

batch

shutdown

touch

cat

head

tail

cp

mv

comm  // 행 비교

less  //more과 반대로 한페이지씩 볼 수 잇다.(위로 다시 볼수 있음)

ln  //링크 명령어

cmp /비교

 

dd 

디스크 복제 

# 목적지 디스크를 umount  

# dd if=/dev/sda of=/dev/sdb bs=512

디스크 초기화

# dd if=/dev/zero of=/dev/sda

디스크 파티션 삭제

# dd if=/dev/zero of=/dev/sda count=1 bs=512

진행 상황 체크

# iostat -d 2 10

 

alias  //list ->ls -als로 쓸수 있다. 

cal

fortune

history

yes // yes 명령어는 주어진 문자열을 Ctrl + C키로 멈출 때까지 끝없이 출력한다

banner

rev  //글자 거꾸로 바꿔서 출력해서 보여줌

wget

firewall-cmd

traveroute

curl  //명령행 기반 웹 요청 도구. 특히 REST 애플리케이션을 개발 테스트시에 유용

 

find

which

locate

sed //sed는 각 라인을 읽을 때마다 ed에서 사용하던 형식의 대치작업을 실행한다

grep

clear

echo

echo 1111 > file1  //file1에다가 쓰기

echo 2222 >> file1  //file1에다가 추가

 

sort

 

sudo

chmod

chown

man

tar

whatis  //명령어 간단 설명

 

F/S > table > inode table inode table? 커널이 디스크에 접근 하여 파일을 액세스 하기 위하여 Access: 파일에 접근한 시간 Modify: 파일이 마지막으로 수정된 시간 Change: *파일의 inode가 변경된 시간* inode는 언제 변경되는가? ``` ls -l 정보가 변경될때

 

 

last 명령어

서버를 이용하는 각 계정사용자들의 로그인 정보를 보여주는 명령어이다. 흔히 관리자는 각 계정별로 서버에 접속한 시간과 IP주소 등을 확인해야 할 경우가 있다. 또한 특정 계정의 서버 접속정보를 확인해야 할 때 에도 마찬가지이다. 다양한 방법으로 사용자들의 로그인정보를 조사한다.

-n : (num) 지정한 num 만큼의 줄만 보여준다.

-f : (file) 지정한 파일에서 정보를 불러온다.

-R : 보여주는 목록에서 hostname(IP주소)필드는 보여주지 않는다.

-a : 보여주는 목록에서 hostname(IP주소)필드를 마지막 필드에 보여준다.

-d : 다른 호스트에서 접속한 것만 보여준다.

-x : shutdown이 일어난 상태나, run level이 바뀐 상태를 보여준다.

#last

#last user01

#last reboot

#last -20

#last -f /var/log/wtmp.0

 

#lastlog 명령어

사용자의 마지막 로그인 정보만을 출력 해준다. lastlog는 /var/log/lastlog라는 파일의 내용을 출력해 준다. 로그인할 때 마지막 로그인 정보가 출력되는데 이때 출력되는 정보가 /var/log/lastlog의 정보이다. 사용자 계정을 지우게 되면 /var/log/lastlog 파일에도 사용자계정에 해당 정보도 삭제된다.

-u : 지정된 사용자의 lastlog 기록을 보여줌

-t : 지정된 날짜기간 안의 로그인 정보만 출력해 준다.

#lastlog

#lastlog -u user01

#lastlog -t 10

 

lastb명령어

접속 실패 로그를 출력해준다. /var/log/btmp파일에 로그가 저장된다. cat이라는 명령어를 통해서 안의 내용을 열어보면 파일의 내용이 제대로 나오지 않는다. 이 파일의 내용을 보기 위해서 우리가 사용하는 명령어가 바로 lastb라는 명령어다. 보통 블루투스 공격(임의의 사용자 계정과 임의의 패스워드로 내 시스템에 접속하려는 것)을 당하는지, 당했는지와 어떤 사용자가 잘못 로그인을 했는지와 같은 정보를 확인 할 수 있다.

-n : (num) 지정한 num 만큼의 줄만 보여준다.

-f : (file) 지정한 파일에서 정보를 불러온다.

-R : 보여주는 목록에서 hostname(IP주소)필드는 보여주지 않는다.

-x : shutdown이 일어난 상태나, run level이 바뀐 상태를 보여준다

#lastb

#lastb -20

 

who 명령어

# who /* 현재 시스템에 접속 중인 모든 사용자 */

# who -r /* 현재 사용자의 Runlevel 확인 */

# who am i /* 로그인한 사용자 정보 확인 */

# who -H /* 헤드라인과 같이 출력 */

# whoami /* 현재 사용자명 확인 , 유효사용자를 확인한다*/

 

 

last | awk '{print $1}' |sort|uniq|wc -l //user 몇명 접속 했는가? uniq: 중복제거한 것, 첫번째 column

 

ip forwarding 찾기

$ for f in /proc/sys/net/ipv4/conf/*/forwarding; do echo $f = `cat $f`; done

 

출력문 저장 명령어 2가지

echo 1111>>file1

echo 2222 | tee -a file1 //-a는 append 옵셥

 

반복출력내용을 파일로 저장

while true

do

echo "==$(date)==" | tee -a file1

w root | tee -a file1

done

 

history 저장

#script -a wlog.script  //이 시점부터 history 나옴

#ls -l

#exit   //script를 끊음

 

history 명령어

지금까지 친 명령어 나옴

#history 

 

user lock 걸때

ps -ef| grep user01 에 있는 -bash의 process id를 끊음

# kill -i xxxx; pass -l user01  //사용자 끊어버리고 lock 걸어버림

 

 

tlog 명령어로 consol 화면을 레코딩함

dnf list | grep tlog

dnf info tlog

dnf install tlog

tlog-rec -w file -o /tmp/tlog.log  //녹화 -w:파일형식 -o:파일경로

ls -l    //액션

exit

tlog-play -i /tmp/tlog.log   //재생

 

exit

현재의 프로세스(현재쉘)를 종료한다.

# exit [Number] /* 값을 지정해준다면 0은 정상종료, 1~255는 비정상 종료 */

bash // 실행

exit 1 //현재 프로세스 1은 exit로 지정

echo $? // 프로세스1 확인

1

 

 

하드링크 소프트링크(심볼릭 링크)

#ln file1 file2    //하드링크, 데이터블럭 공유, 사이즈 동일하게 증가,

#ln -s file2 file3   //소프트링크(항상 777권한 -> 링크파일 권한은 원본파일의 권한을 따르기 때문에 누군가 접근하려면 원본파일 권한변경 필요), 사이즈 작음, 즐겨찾기 같은 것, 원본파일 문제시 링크파일도 문제생김

디바이스 파일

#ls -l /dev | grep '^b'

#ls -l /dev | grep '^c'

rename 명령어

확장자 변경

.conf를 .backup으로 변경

rename .conf .backup /home/touched/*.conf

 

 

/usr/bin/passwd 명령에서 문자열을 읽을 수 있도록 한다. 이 파일은 실행파일 이기 때문에 planetext를 읽는 일반적인 방법으로는 확인이 불가능 하다.
strings /usr/bin/passwd

 

 

 

OS install 깔고 초기화

-cd 뺴기

- /etc/hosts 설정

- > .history or history -c

- rm -rf .ssh/

 

'linux' 카테고리의 다른 글

Centos - telnet 접속  (0) 2020.11.30
centos - ssh에서 root접속 제한  (0) 2020.11.25
redhat - vlans with native vlan setting in linux  (0) 2020.11.24
centos8 - network 설정  (0) 2020.11.24
centos 8 - ssh 포트 변경  (0) 2020.11.24