-
[산대특] 파티션 포맷, 명령어들 설명 및 실습[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux 2024. 8. 22. 18:22
0822
더보기파티션 포맷 실습
센토스에 하드 하나 새로 추가
sdb 현재 손을 안대서 인식만 되고 파티션이 안되어 있다.
파티션을 하고 포맷을 진행한다.sdb 전체를 다 쓴다는 뜻.
나눌려면 size 옵션을 넣는다.
Command (m for help): w
해서 저장아까는 1이 없었음. 파티션해서 생김.
[root@centos7-10-1 centos]# mkfs.ext4 /dev/sdb1
뒤에껄 포맷하겠다.
[root@centos7-10-1 centos]# mkdir /SDB[root@centos7-10-1 centos]# mount /dev/sdb1 /SDB
[root@centos7-10-1 centos]# ls /SDB/
lost+found
[root@centos7-10-1 centos]# umount /dev/sdb1 OR umount /SDB
두개 같은거여서 둘 중 하나 하면된다.
[root@centos7-10-1 centos]# ls /SDB/
[root@centos7-10-1 centos]#
암것두 안나온다.자동/고정 마운트 실습
이제 자동 마운트를 배우겠다.
auto mount => fstab
[root@centos7-10-1 centos]# nano /etc/fstab
장치 식별자 UUID터미널 하나 더 열어서
저장공간의 아이디를 알려줘라
[root@centos7-10-1 centos]# blkid
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="0707adfc-e454-4760-ae6e-90145dac824b" TYPE="xfs"
/dev/sda2: UUID="9xhu9K-g1V8-v1fE-8YEZ-ExPg-c3w4-Zav1Z4" TYPE="LVM2_member"
/dev/sdb1: UUID="c9717cd6-463a-4084-b2ae-1f91fff132e6" TYPE="ext4"
/dev/mapper/centos-root: UUID="7a1dfd99-e511-419a-9fe3-25962163550c" TYPE="xfs"
/dev/mapper/centos-swap: UUID="12bb6aee-f093-4a53-8467-4e9bad8fa78c" TYPE="swap"
이 터미널 킨 상태로 nano 편집
UUID 를 사용하는 것이 오류의 소지가 없다.
컴퓨터가 인식한 /dev/sdb1 의 이름 == UUID
뒤의 0 0 설명 접은글 바깥에서이제 저장하고 닫으면 마운트를 하지 않아도 자동으로 마운트가 된다.
[root@centos7-10-1 centos]# init 6 / shutdown -r now +1
리붓의 다양한 명령어디시 확인해보면 잘 마운트 되어 있다.
/etc/fstab
에서 마운트할 장치를 설정해줄 수 있다.
blkid 로 마운트 대상의 UUID 를 알아내고
UUID=c9717cd6-463a-4084-b2ae-1f91fff132e6 /SDB ext4 defaults 0 0
으로 적어준다.
UUID 부분은 /dev/sdb1 의 UUID 이고,
/SDB 같은 경우 마운트 될 마운트 포인트다.
ext4 는 swap , iso9660 과 같이 파일 시스템을 작성하고,
default 자리에는 마운트 옵셥 작성이 가능하다. (auto, noauto, ro, rw 등 대부분 defaults 사용)
첫 번째 0 에는
백업을 수행하는 1 / 백업 수행하지 않는다의 0 이 오고
두 번째 0 에는
fsck 로 파일시스템을 검사하지 않는 0 / 파일시스템만 검사하는 1 / 파일시스템 이외의 영역을 검사하는 2 가 온다.
Linux 시스템이 부팅될 때
■ /etc/inittab(런레벨),
■ /etc/fstab(자동 마운트),
■ /etc/rc.local(부팅 직전 작업),
■ /etc/grub(2).cfg(부팅 관련) 파일이 중요한 역할을 하게 된다.더보기/etc/rc.local 실습
일반 사용자가 루트 작업할 때 이런식으로 명령어를 사용한다.
[root@centos7-10-1 centos]# nano /etc/rc.local
쉬뱅 샤방 시뱅
쉬이~뱅 샤방샤방 씨뱅! => #! 읽는 법[root@centos7-10-1 centos]# su - centos
Last login: Thu Aug 22 09:26:29 KST 2024 on :0
[centos@centos7-10-1 ~]$ pwd
/home/centos[centos@centos7-10-1 ~]$ nano /etc/rc.local
명령어를 실행될 것을 지시한다.
시작할 때 /home/centos 에 bak 파일이 있는데, 이것을 실행해
위치 지정. 저 디렉터리의 bak 파일을 시작할 때 실행하라.
이제 bak.sh 의 명령어 파일을 만들어야 한다.
루트 권한으로 다시 들어가서 수정 후 저장[root@centos7-10-1 centos]# su centos
[centos@centos7-10-1 ~]$ pwd
/home/centos
[centos@centos7-10-1 ~]$ nano bak.sh=> bash 스크립트 파일을 만들거다
date 라는 명령어를 쳤을 때. 명령어를 $() 안에 쓰면 환경변수. 변수로 보겠다.$2, $3 은 date 를 환경변수로 받아서 넣는거.
2, 3 부분이 저기
x는 푸는거 c combine 묶는거c 는 뒤에있는 것을 묶어서 앞으로 가져와라
/tmp 를 압축해서 /home/centos/bak/아래에 $fname 이라는 변수로 만들어라cp 명령어
cp A B A를 복사해서 B
mv A B A의 이름을 B 식으로도 가능하지만
tar cvfz A B 로 하면 B를 묶어/압축 하여 A를 만들 수 있다.
du -h /tmp 하면 /tmp 디렉터리의 사용량을 보임
du -hT /tmp 하면 /tmp 디렉터리의 크기를 보임더보기위 실습과 이어서 진행
[centos@centos7-10-1 ~]$ mkdir bak
[centos@centos7-10-1 ~]$ ls /tmp | wc -l
49
항목 개수 명령어 word count -list
[centos@centos7-10-1 ~]$ du -h /tmp
disk uses[centos@centos7-10-1 ~]$ chmod +x bak.sh
실행파일 권한을 주어 실행파일로 만듦.
[centos@centos7-10-1 ~]$ su -c 'shutdown -r now'
>rootoorbak.sh 은 센토스에 있는 일반 사용자인데,
루트 안에 있는 /etc/rc.local 의 실행권한이 없어서 실행권한을 줘야 한다.
[root@centos7-10-1 centos]# chmod +x /etc/rc.local
init 6[root@centos7-10-1 centos]# ls bak
backup-Aug22.tar.gz
하면 백업하여 tar로 압축되어 제대로 마운트 포인트에 마운트 된 것이 보인다.
uname -a 혹은 -r 으로 Linux 시스템이 사용중이 커널 정보를 확인할 수 있다.
전체적으로 이 커널 버전은 64비트 아키텍처에서 실행 중인
CentOS 7 시스템의 3.10.0-1160 커널이라는 것을 알 수 있다.
centos7-10-1:
이 부분은 호스트 이름(시스템의 네트워크 이름)을 나타낸다.3.10.0-1160.el7.x86_64:
이 부분은 커널 버전을 나타내며, 보다 자세히 분석하면 다음과 같이 나눌 수 있다:3: 메이저(Major) 커널 버전입니다.
메이저 버전은 커널의 중요한 변화나 대규모 업데이트를 나타냅니다.10: 마이너(Minor) 커널 버전입니다.
마이너 버전은 상대적으로 작은 기능 추가나 버그 수정이 포함된 업데이트를 나타냅니다.
0: 패치(Patch) 버전입니다. 이 숫자는 일반적으로 버그 수정이나 보안 패치 등을 나타냅니다.
1160: 특정 커널 빌드 번호입니다.
이 숫자는 특정 커널 소스의 빌드(컴파일) 횟수나 리비전을 나타낼 수 있습니다.
el7: 이 부분은 커널이 특정 배포판에 맞게 패키징되었음을 나타냅니다.
여기서 "el7"은 "Enterprise Linux 7"을 의미하며, 이 커널이 Red Hat 계열의 CentOS 7 또는 RHEL 7용으로 빌드되었음을 나타냅니다.
x86_64: 이 부분은 시스템의 아키텍처를 나타냅니다. x86_64는 64비트 x86 아키텍처(일명 AMD64)를 의미합니다.tar 압축을 푸는 명령어
~.tar.gz tar xvfz ~.tar tar xvf ~.tar.xz unxz ~ 한 뒤 > tar xvf 명령어 설명을 보는 man 명령어 사용시 보이는 숫자의 의미
ex) man ls 하면 vi 화면으로 설명이 뜨는데 좌측 상단을 보면 LS(1) 식으로 보인다.
man 페이지는 ls(1), fdisk(8) 이런식의 카테고리로 나눠져 있다.
1 User Commands 2 System Calls 3 C Library Functions 4 Devices and Special Files 5 File Formats and Conventions 6 Games etc 7 Miscellanea 8 System Administration tools and Daemons 꼭 man 이 아니어도 다른 명령어로도 명령어에 대한 설명서를 볼 수 있다.
ex) ls
s --help, info ls, whatis ls, apropos ls
그리고 명령어의 디렉터리는 일반적으로 Linux 안에 /usr/share/doc/ 에서 볼 수 있다.
환경변수 내용 보는 법
echo $환경변수
ex)
echo $HOSTNAME
centos7-10-1
PS1 는 쉘 프롬프트의 환경변수이다.
더보기man 및 환경변수 실습
[root@centos7-10-1 centos]# man fdisk
[root@centos7-10-1 centos]# man ls
[root@centos7-10-1 centos]# ls /usr/share/doc/
하면 좌르르륵
[root@centos7-10-1 centos]# echo $PS1
[\u@\h \W]\$
[root@centos7-10-1 centos]# echo $HOSTNAME
centos7-10-1
[root@centos7-10-1 centos]# echo $HOME
/root
[root@centos7-10-1 centos]# SAVE=$PS1
[root@centos7-10-1 centos]# PS1="I love you:]\$"
I love you:]$ls
ab.patch bak b.txt Documents LINUX.txt Music Public Templates
a.txt bak.sh Desktop Downloads linx.txt Pictures ROOT Videos
I love you:]$
이런식으로 환경변수 변경도 가능하다.
I love you:]$PS1="[\T][\u@\h \w][\d]$"
[11:04:19][root@centos7-10-1 /home/centos][Thu Aug 22]$
T = time d = 오늘의 날짜
[11:04:19][root@centos7-10-1 /home/centos][Thu Aug 22]$su
하면 되돌아감
[root@centos7-10-1 centos]# nano $HOME/.bashrc
들어가서 맨 아래다가이렇게 하면 고정이 된다.
[root@centos7-10-1 centos]# source $HOME/.bashrc
약발 넣기
[11:07:27][root@centos7-10-1 /home/centos][Thu Aug 22]$
하면 이렇게 된다.
다시 나노에서 주석 처리하고 source 로 약발 먹이고
reboot
하면 되돌려진다.alias 별명을 생성할 땐
ex)
alias fw=’firewall-config’ > source .bashrc
이런식으로 별명 지정 후 변경 적용 하면 된다.
사용자별로($HOME) .bashrc 파일은 현재 프롬프트에서의 변경을 이후에 적용되는 파일
사용자별로($HOME) .bash_profile 파일은 새로 로그인 해서 프롬프트를 받을 때 변경이 적용되는 파일
사용자별로($HOME) .bash_history 파일은 해당 사용자가 입력했던 명령어들을 보임
더보기alias 실습지정해주고 싶은 사용자의 bashrc 로 가서
alias 지정해주고 alias fw=’firewall-config’ 식으로
fw 로 방화벽 설정 켜보기 함.더보기
자잘한 실습
[root@centos7-10-1 ~]# touch abcd abad addb adbb adfd adcdef bacdef
ab 로 시작하고 d 로 끝나면서 그 사이에 한글자 아무거나 있는거 보여줘
디렉터리의 속성
[root@centos7-10-1 ~]# ls -dl /etc/
drwxr-xr-x. 148 root root 8192 Aug 22 11:08 /etc/
파일의 속성
[root@centos7-10-1 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2368 Aug 13 16:35 /etc/passwd
history 입력했던 명령어를 보이는 명령어
[root@centos7-10-1 ~]# history
202 ls -l /etc/passwd
203 history
[root@centos7-10-1 ~]# !202
ls -l /etc/passwd
-rw-r--r--. 1 root root 2368 Aug 13 16:35 /etc/passwd
[root@centos7-10-1 ~]# history -d 202
202* historyhistory -d
203 ls -l /etc/passwd
204 history -d 202
205 history
[root@centos7-10-1 ~]# history -c
[root@centos7-10-1 ~]# history
1 history
# ldd = ls -dl, ll = ls -l
[root@centos7-10-1 ~]# ldd /usr/bin/install
linux-vdso.so.1 => (0x00007ffdb4497000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f1a4995b000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f1a49752000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f1a4954d000)
libc.so.6 => /lib64/libc.so.6 (0x00007f1a4917f000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f1a48f1d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f1a48d19000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1a49b82000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1a48afd000)
=> 는 링크되어 있단 뜻
CP
복사할 때는 cp 를 사용하는데
a (속성유지), r (recursive(순환,반복) : 디렉터리 복사),
p (소유권 등 유지), R (하위 디렉터리까지 복사)
==> cp -arp /dev/null /etc/passwd : 크기가 없어지고 파일_명은 남은 채 삭제
cp -arp /dev/zero /etc/passwd : 0으로 채워 크기가 유지된 채 파일_명은 남고 내용 없음<= Degaussing (가우스) 기법으로 부름
shred -uv /etc/passwd : 복구 불가능 하게 삭제
rm -rf /etc/passwd : 복구가 가능한 상태로 삭제디렉터리의 이동
cd 도 있지만 pushd, popd 를 이용해서 일시적으로 디렉터리를 이동시킨 뒤 불러올 수 있다. (시험에 가끔 나옴)
같은 디렉터리 내에서 mv A B => 이름변경
다른 디렉터리 => 이동
디렉터리의 생성
mkdir ABC
mkdir -p XYZ/QWE => 새로운 파일을 만들 때, 그 파일의 하위 디렉터리도 같이 만들려면 -p 옵션을 꼭 써야 한다.
디렉터리의 삭제
rmdir ABC
rmdir -p XYZ/QWE => 단 디렉터리가 비어있을 때만 가능.
=> rm -rf XYZ/QWE 하면 파일과 함께 디렉터리도 삭제된다.
여러 확장자를 동시에 변경할 때에는 rename A B
더보기cp 와 삭제 실습
[root@centos7-10-1 ~]# ls /etc/init*
/etc/inittab
/etc/init.d:
functions netconsole network README
[root@centos7-10-1 ~]# cp -arp /etc/inittab /tmp/inittab.bak
재밌는거 알켜주신데
[root@centos7-10-1 ~]# cat /tmp/inittab.bak
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
ㅎㄷㅁ
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#
[root@centos7-10-1 ~]# cp -f /dev/null /tmp/inittab.bak
cp: overwrite ‘/tmp/inittab.bak’? yes
[root@centos7-10-1 ~]# cat /tmp/inittab.bak
[root@centos7-10-1 ~]#
삭제가 되었다.
뭔가를 지울때
파일은 있는데 내용은 없다.
[root@centos7-10-1 ~]# head /tmp/inittab.bak
[root@centos7-10-1 ~]# ls -l /tmp/inittab.bak
-rw-r--r--. 1 root root 0 Aug 22 11:30 /tmp/inittab.bak
[root@centos7-10-1 ~]# cp -f /dev/null /tmp/inittab.bak
cp: overwrite ‘/tmp/inittab.bak’? yes
[root@centos7-10-1 ~]# cp -arp /etc/passwd /tmp/passwd.bak
[root@centos7-10-1 ~]# cat /tmp/passwd.bak
[root@centos7-10-1 ~]# diff /etc/passwd /tmp/passwd.bak
[root@centos7-10-1 ~]#
원본 대조했는데 아무것도 나오지 않는다면 똑같다는 뜻이다.
파일에 0으로 채운다. 내용만큼
[root@centos7-10-1 ~]# cp -f /dev/zero /tmp/passwd.bak
cp: overwrite ‘/tmp/passwd.bak’? yes
^C
[root@centos7-10-1 ~]# ls -l /tmp/passwd.bak
-rw-r--r--. 1 root root 11387584512 Aug 22 11:35 /tmp/passwd.bak하면 안나온다.
[root@centos7-10-1 ~]# cp -arp /etc/passwd /tmp/passwd.bakk
[root@centos7-10-1 ~]# cat /tmp/passwd.bakk
shred 쉬리드 --help
shred: /tmp/passwd.bakk: pass 1/3 (random)...
shred: /tmp/passwd.bakk: pass 2/3 (random)...
shred: /tmp/passwd.bakk: pass 3/3 (random)...
shred: /tmp/passwd.bakk: removing
shred: /tmp/passwd.bakk: renamed to /tmp/00000000000
shred: /tmp/00000000000: renamed to /tmp/0000000000
shred: /tmp/0000000000: renamed to /tmp/000000000
shred: /tmp/000000000: renamed to /tmp/00000000
shred: /tmp/00000000: renamed to /tmp/0000000
shred: /tmp/0000000: renamed to /tmp/000000
shred: /tmp/000000: renamed to /tmp/00000
shred: /tmp/00000: renamed to /tmp/0000
shred: /tmp/0000: renamed to /tmp/000
shred: /tmp/000: renamed to /tmp/00
shred: /tmp/00: renamed to /tmp/0
shred: /tmp/passwd.bakk: removed
[root@centos7-10-1 ~]# ls -l /tmp/passwd.bakk
ls: cannot access /tmp/passwd.bakk: No such file or directory[root@centos7-10-1 centos]# cp -arp /etc/passwd /etc/passwd.bakkk
[root@centos7-10-1 centos]# shred -v /etc/passwd.bakkk
[root@centos7-10-1 centos]# ls -l /etc/passwd.bakkk
-rw-r--r--. 1 root root 4096 Aug 22 12:01 /etc/passwd.bakkk
크기와 파일이 살아있다.
[root@centos7-10-1 centos]# cat /etc/passwd.bakkk이렇게 지우면 완벽하게 지워진다.
[root@centos7-10-1 centos]# rm -rf /etc/passwd.bakkk
[root@centos7-10-1 centos]#
pushd, popd[root@centos7-10-1 tmp]# cd ../home/centos/
올라갔다 그 아래 홈 그 아래 센토스
이렇게 이동 말고 디렉터리에서
[root@centos7-10-1 centos]# pushd /tmp
/tmp /home/centos
지금 너 /home/centos 에 있으면서 /tmp 아래에도 있어
[root@centos7-10-1 tmp]# pwd
/tmp
[root@centos7-10-1 tmp]# mkdir TMP
[root@centos7-10-1 tmp]# popd
/home/centosw. GPT
shred: 이 명령어는 파일의 데이터를 여러 번 덮어써서 안전하게 삭제하는 데 사용됩니다. 이렇게 하면 파일의 원래 내용을 복구하기 매우 어렵거나 불가능하게 만듭니다. 0으로 채운뒤 삭제함
-u (또는 --remove): 이 옵션은 shred가 파일을 덮어쓴 후 해당 파일을 삭제하도록 지시합니다.
-v (또는 --verbose): 이 옵션은 명령어가 실행되는 동안 상세한 출력을 화면에 보여줍니다.
/etc/passwd: 이 파일은 리눅스 시스템에서 모든 사용자 계정 정보를 포함하는 매우 중요한 파일입니다.Heap 메모리와 Stack 메모리는 프로그램이 실행될 때 메모리를 관리하는 두 가지 주요 영역입니다.
각 영역은 특정한 목적과 특징을 가지고 있습니다.
Stack 메모리 구조 :
Stack 메모리는 LIFO(Last In, First Out) 방식으로 관리됩니다. 즉, 가장 나중에 추가된 데이터가 가장 먼저 제거됩니다.
용도 :
주로 함수 호출과 관련된 데이터를 저장하는 데 사용됩니다.
예를 들어, 함수의 매개변수, 지역 변수, 리턴 주소 등이 Stack에 저장됩니다.
자동 관리 :
함수가 호출되면 필요한 메모리가 Stack에 할당되고, 함수가 종료되면 그 메모리가 자동으로 해제됩니다.
크기 제한 :
Stack 메모리의 크기는 일반적으로 고정되어 있으며, 제한된 크기를 초과하면
"Stack Overflow"라는 오류가 발생할 수 있습니다.
속도 :
매우 빠릅니다. 메모리 할당과 해제가 간단하고 예측 가능하기 때문에 성능이 뛰어납니다.Heap 메모리 구조 :
Heap 메모리는 자유롭게 할당 및 해제할 수 있는 메모리 영역입니다.
메모리 할당이 필요한 시점에 개발자가 직접 요청할 수 있습니다.
용도 :
주로 동적으로 할당된 데이터를 저장하는 데 사용됩니다.
예를 들어, 런타임 중에 크기가 결정되는 객체나 배열이 Heap에 저장됩니다.
수동 관리 :
Heap 메모리는 개발자가 직접 할당하고 해제해야 합니다.
잘못된 관리로 인해 메모리 누수(memory leak)나 잘못된 참조(dangling pointer) 같은 문제가 발생할 수 있습니다.
크기 유연성 :
Heap의 크기는 프로그램 실행 중에 동적으로 변할 수 있으며, 가용 메모리 범위 내에서 거의 제한 없이 사용할 수 있습니다.이 두 메모리 영역은 서로 보완적인 역할을 하며, 상황에 맞게 적절히 사용하는 것이 중요
더보기디렉터리 생성
mv 이동 실습
rename 실습
[root@centos7-10-1 centos]# touch 123.txt 234.lst 345.txt파일 이름이 뭐던 확장자가 뭐던 txt 로 된 애들은 bak 으로 바꿔라 .
리다이렉트
좌측의 작업이 우측 결과 >
좌측의 작업이 우측의 결과에 추가 >>
Vice Versa 역으로 <더보기리다이렉트 실습
덮어쓰기
요게 추가
우분투로 간다.
우분투는 pts 2번
[centos@centos7-10-1 ~]$ sort -r < root.txt > sorted.txt | cat -n sorted.txt
하면 어떤 사람은 cat 내용이 나오고 어떤 사람은 나오지 않는다.sort
파일을 읽어 정렬해주는 명령어. sort -r 하면 내림차순
ASCEND : 소 => 대 : 오름차순
DESCEND : 대 => 소 : 내림차순head / tail file_name 하면 해당 파일의 첫번째부터 10줄/끝에서부터 10줄을 읽는다. -3 하면 줄만 읽는다.
링크
복잡한 파일명이나 경로를 단순화시키는 링크 - ln 을 사용
링크는 원본, 하드 링크본, 소프트 링크 본 중에서 어느 하나에 변경이 있으면 모두 적용
하드 링크 ln 원본 링크된_것 소프트 링크(Symbolic link) ln -s 원본 링크된_것 절대 경로 와 상대 경로
무조건 / 부터 시작되는 경로로 지정하는 경로 => 절대 경로
현재 위치를 기준으로 지정하는 경로 => 상대 경로
더보기경로 실습
[centos@centos7-10-1 ~]$ pwd
/home/centos
[centos@centos7-10-1 ~]$ cd /tmp/
[centos@centos7-10-1 tmp]$ cd /home/centos/
[centos@centos7-10-1 ~]$ cd ../../tmp
[centos@centos7-10-1 tmp]$ cd ../home/centos
[centos@centos7-10-1 ~]$소프트 링크 실습
IM original
Yes you ar => origin
IM original => cp
IM original => sym
Yes you ar
IM original => hard
Yes you arCP 빼곤 다 들어가 있다.
Readlink file_name 해서 현재 링크된 file_name의 원본을 볼 수 있다.
더보기readlink 실습
[root@centos7-10-1 centos]# readlink origin.txt.sym
origin.txt
[root@centos7-10-1 centos]# mkdir LINKS
[root@centos7-10-1 centos]# which grub2.cfg
/usr/bin/which: no grub2.cfg in (/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/centos/.local/bin:/home/centos/bin)
[root@centos7-10-1 centos]# which firewall-config
/usr/bin/firewall-config
[root@centos7-10-1 centos]# which /etc/passwd
/usr/bin/which: no passwd in (/etc)
[root@centos7-10-1 centos]# ln -s /usr/bin/firewall-config LINKS/fw
[root@centos7-10-1 centos]# ln -s /etc/passwd LINKS/pw
[root@centos7-10-1 centos]# ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 LINKS/ens33file 은 파일의 종류를 보인다.
더보기file 실습
Hash
인터넷/다른 사람에게서 파일을 다운받거나/받았을 때
무결성을 확인할 때 md5sum, sh512sum, … 등의 해쉬를 인증해주는 도구
Hash 는 Integrity(무결성)을 보장
Encrypted(암호화)는 데이터를 은닉하는 기능
더보기Hash 실습
[root@centos7-10-1 centos]# md5sum --help
쳤을 때 설명이 나왔으니 해당 명령어 있는거[root@centos7-10-1 centos]# echo "IM PAUL" > paul.txt
[root@centos7-10-1 centos]# md5sum paul.txt
3e1c41e99dadf727271151599c6cbf7d paul.txt
[root@centos7-10-1 centos]# nano paul.txt
에서 . 하나 추가 후 저장
[root@centos7-10-1 centos]# md5sum paul.txt
f2df8756530407be4fa59792181db1e4 paul.txt
다시 해시를 요청하면 다른 해시 값을 준다.
=> 상대방은 파일에 손을 댔다고 판단 한다.
[root@centos7-10-1 centos]# rdate -s time.bora.net
시간 맞추기
[root@centos7-10-1 centos]# date --set='22 Aug 2024 15:14'
Thu Aug 22 15:14:00 KST 2024
이런식으로도 가능하다.
[root@centos7-10-1 centos]# clock -r ## hardware time <= on CMOS
Thu 22 Aug 2024 03:15:42 PM KST -0.319999 seconds
[root@centos7-10-1 centos]# clock -s ## software time
시간 맞추기
[root@centos7-10-1 centos]# clock -w ## sofrware time set to hardware timedate = 로컬시간
radate = 원격시간
rdate -s time.bora.net 해서 원격 time.bora.net 과 시스템 시간 일치시킬 수있다.
clock -r 해서 CMOS 하드웨어 시간 보기
clock -s 해서 Software 시간 보기 < - date --set='22 Aug 2024 15:14'
clock -w 하면 소프트웨어 시간을 하드웨어 시간과 일치시킬 수 있다.
cal 달력을 볼 수 있다.
ex)
Linux 에서의 인쇄 명령어
- lpd , lpr , lprm 과 lpq 가 있다.
Linux/특히 UNIX 에서는 프린터 설정이 매우 까다롭다.
Windows 머신에 프리터를 설치해두고 Samba라는 nmb 모듈을 통해서 프린터를 공유해서 사용하는 방식이 대부분.
p(line printer) ~ 명령어는 프린터에서 사용되는 명령어들을 볼 수 있다.
lpd 프린터 데몬, lpr 인쇄 명령어, lprm(remove) 프린팅 잡 삭제,
lpq(queue) 프린팅 잡 대기열 보기 등이 있다.=>Linux에서 네트워크 프린팅에는 IPP 프로토콜을 사용한다.
type
명령어의 종류를 알려주는 명령어.
Linux 명령어는 쉘 내부(builtin) 명령어, 쉘 외부 명령어,
그리고 Alias가 있는데 type 명령어로 해당 명령어가 어디에 속하는지 알 수 있다.
더보기type 실습
[root@centos7-10-1 centos]# type pwd
pwd is a shell builtin ##내장되어 있는
[root@centos7-10-1 centos]# type top
top is /usr/bin/top
[root@centos7-10-1 centos]# type ll
ll is aliased to `ls -l --color=auto'lsof 와 pidof
실행중인 파일이나 프로세스(CPU 작업) 번호를 보이는 명령어이다.
lsof :
현재 사용중인 파일 목록, 소유자, PID(process ID), size, type 등을 보임
pidof :
프로세스 번호 확인
‘명령어 &’ 는 백그라운드로 해당 명령어를 실행시켜준다.
더보기lsof 실습
[root@centos7-10-1 centos]# lsof -c ls
8428 이라는 프로세스 가 보인다.
새로운 터미널을 열어
프로세스 강종이 가능하다.
다시 실행시키고
하면 프로세스 번호 확인 가능하다.
SCP
cp 명령어에 보안을 가미한, ssh를 설치하면 실행할 수 있는 파일 복사 명령어 scp
내 것의 abc. txt 파일을 상대에게 보낼 때 :
scp /home/centos/abc.txt rocky@192.168.100.135:/home/rockky/식으로 하고
상대방 xyz.lst 파일을 받아/가져 온다면 :
scp rocky@192.168.100.135:/home/rocky/xyz.lst . (현재디렉터리)
scp rocky@192.168.100.135:/home/rocky/xyz.lst /temp (디렉터리 지정)더보기SCP 실습
디렉터리는 r 옵션
touch
touch abc.txt 으로 빈 파일 생성 가능.
find 는 파일이나 디렉터리를 조건을 주면서 찾아준다.
=> find 시작위치 옵션 찾고자하는파일
atime ±n n days 전후에 액세스한 파일 mtime ±n n days 전후에 변경된 파일 amin ±n n minutes 전후에 액세스한 파일 cmin ±n n minutes 전후에 변경한 파일 -type : 디렉터리 d와 파일 f를 지정해서 찾을 대상의 객체 종류 지정
=>이외에도 l, s, b 등이 있는데 심볼릭 링크(l), 소켓(s), 블록장치(b) 타입 찾기 가능
empty : 비어있는 파일이나 디렉터리로 -size 0k 옵션과 같음
name "abc.txt" : 이름이 abc.txt인 파일, -name "*.txt"식도 가능
newer "abc.txt" : "abc.txt" 파일보다 최신에(이후에 생성된) 파일
perm 777 : 권한이 777인 파일
size 1024k : 크기가 1024k인 파일, 범위로 지정하고자 한다면 \( -size 10M –o -size 12M \)(10~12M)식으로 사용
(-o 는 and의 의미)
user paul : 소유자가 paul인 파일
또한
find ~ 해서 원하는 파일/디렉터리(들)을 찾은 뒤 뒤에
-exec 명령어 {} \; 를 붙이면 처리해준다. \;는 ;이 문장을 끝났다는 표시를 나타낸다
-regex 명령어 해주면 잦은 결과에 대해서 정규표현식을 적용할 수 있다.
==> \n(개행 담줄로 ㄱ) , \;(문장의 끝) , \!(아니야) , \t(tab) 등은 n, ;, ! 가 의미를 가지는 부호라는 뜻이다.
stat file_name 하면 해당 파일의 Access, Modify, Change를 보인다.
더보기find 실습
[root@centos7-10-1 centos]# touch centt.lst
[root@centos7-10-1 centos]# touch ubuntt.txt
[root@centos7-10-1 centos]# find . -newer "centt.lst"
.
./.cache/tracker/meta.db-wal
./.cache/tracker/meta.db-shm
./.local/share/tracker/data/tracker-store.journal
./.local/share/gvfs-metadata
./.local/share/gvfs-metadata/root
./.local/share/gvfs-metadata/root-ec4db9a7.log
./ubuntt.txt
[root@centos7-10-1 centos]# find . -newer "centt.lst" -type f
./.cache/tracker/meta.db-wal
./.cache/tracker/meta.db-shm
./.local/share/tracker/data/tracker-store.journal
./.local/share/gvfs-metadata/root
./.local/share/gvfs-metadata/root-ec4db9a7.log
./ubuntt.txt
[root@centos7-10-1 centos]# find /home/ -type f -user centos -size 0k
[root@centos7-10-1 centos]# find /home/ -type f -user centos -size 0k -exec ls -l {} \;
파일이 없는 애들을 찾아봐라, 찾아진 얘네들은 {} 안에 들어가라
그리고 앞에 ls -l 속성을 보여라[root@centos7-10-1 centos]# find /home/centos/ -name "*.txt" -type f -exec tar -cvf CENTT.tar {} \; && ls /home/centos/
너어 텍스트 파일을 찾아. 찾은 것을 {} 로 넣어. tar 로 묶어서 CENTT.tar 파일로 만들어라.
그런 다음 걔네들을 보여봐이런 명령어를 통해 삭제, 복사, 압축 등등을 할 수 있다.
txt 가 아닌거 찾아주
[root@centos7-10-1 centos]# find /home/centos/ -iname pASsword -exec stat {} \;
대소문자 무시. ignore name
password 인 것을 찾아 stat 스테이트 상태를 보여라
[root@centos7-10-1 centos]# find /home/centos/ -iname "*.tXT" -type f -exec stat {} \;
stat 실습
[root@centos7-10-1 centos]# find / -type f -regex '^/etc/p[a-f]*$'
카렛트 ^ 시작 /etc/아래 p로 시작되고, a-f 까지만 있고 뒤에
레귤러 익스프레션
너어 루트부터 찾아
[root@centos7-10-1 centos]# find / -type f -regex '^/etc/p[a-b]*$'
find: ‘/run/user/1000/gvfs’: Permission denied
[root@centos7-10-1 centos]# umount /run/user/1000/gvfs
[root@centos7-10-1 centos]# find / -type f -regex '^/etc/p[a-f]*$'
안나와잉으어어어엉ㄺ!
'[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정 > Linux' 카테고리의 다른 글
[산대특] 리눅스의 명령어의 바다 탐색 2 (1) 2024.08.26 [산대특] 리눅스의 명령어의 바다 탐색 (2) 2024.08.25 [산대특] Software Compile, Patch, Samba, SMB, 파티션 포맷 (0) 2024.08.21 [산대특] Internet 오류시 점검, 커널과 커널 컴파일(Kernel Compile) (0) 2024.08.20 [산대특] VNC, 방화벽, 시스템 시간, > >>, ifconfig/iptables, FQDN, wireshark, promisc, (0) 2024.08.19