<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 |