일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- btmp
- MySQL
- M2
- LOS 5번
- ubuntu
- 1819 (HY000):
- docker compose
- XAVIS
- Lord of SQL Injection
- blind SQLi
- mocOS
- utmp
- sql injection
- sqli
- Kail Linux
- 가상머신 os
- los.rubiya.kr
- UTM
- Error Based SQL Injection
- No module named ‘requests’
- 2002(HY000)
- str_replace함수
- SQL i
- ModuleNotFoundError: No module named ‘requests’
- 우분투
- Lord of SQLinjection
- SQLi wargame
- Union SQL Injection
- Python requests 설치
- goblin 3번
- Today
- Total
klaus
[KDT-DAY_12] Linux (feat. 명령어) 본문
0.들어가기
- 지난시간에는 연산 부호를 공부
[+] 정규 포현식
touch doc1 doc2 doc3 docA docB docC docD main.c main.o calc.c 파일생성
- 대괄호 [ ]
ls doc[1AC]
ls doc[1-6]
ls doc[B-F]
ls *.[co]
확장자가 c나 o인 경우
- 중괄호 {}
touch doc{ument,draft} && mkdir {fall,winter,spring}report
중괄호를 사용하여 파일과 디렉터리 만들기
ls doc?
==> doc으로 시작하는 파일보기
ls *report
리포트로(report) 끝나는 파일 보기
- >
2 > &
https://knight76.tistory.com/3087
[+] cut
- 필요한 부분만 추출하는 명령어
[실습]
head - 2와 같은 경우 두줄 또는 10자리를 표기한다고 할 때, 콜론(:)으로 구별하였다.
만약, cut을 사용하여 열의 구분하여 화면에 출력하고 싶을 때, 아래와 같이 사용할 수 있다.
- cat /etc/passwd |cut -d":" -f1,6,7 | sort -r | cat -n >user_pass.txt
> sort -r 역순 정렬
> cat -n 줄표기
> user_pass.txt 파일에 저장하여라
[+] cmp / comm
- 파일을 비교해주는 명령어 < == >diff
[실습]
- cmp
- comm
- 비교를 할 때, 처음 파일을 기준으로 하나의 문자열이 있을 때마다 \t를 해준다
- diff
[+] grep, fgrep, egrep, pgre
- 정규 표현식 패턴으로 검색해주는 명령어
패 턴 | 설 명 |
[aeiou] | |
^카레트? 시작 $ 끝
[실습] httpd 파일을
grep -n "httpd" httpd.conf
==>httpd.conf 파일에 줄을 붙여서
cat -n httpd.conf |grep "httpd"
grep -c "httpd" httpd.conf
=> httpd가 포함된 줄수는?
grep -v "httpd" httpd.conf |wc -l
==> httpd포함되지 않은 줄은?
grep -c "httpd" test.txt
grep -n "httpd" test.txt
grep -v "httpd" test.txt
grep ^# testt.txt
grep -v ^$ testt.txt
== > 빈 줄($)을 빼고 출력
grep -v ^# testt.txt |grep -v ^$ == grep ^[^#$] testt.txt
==> 주석으로 시작하고 끝
grep ^[^root] /etc/passwd
= root (문자별 r.o.o.t라는 문자)로 시작하는 열을 출력
grep -n ^[^#$] testt.txt
grep -n(줄번호) ^(부정) [^(시작) #(주석시작)$(빈줄)] [파일이름]
즉, 주석과 빈 줄로 시작되지 않는 실제 내용만 줄 번호를 붙여서 보이는 것
==> ^[ ] 부정 의미
- fgrep -i "RoOt" /etc/passwd /etc/group /etc/shdow
- pgrep bash == pidof bash
- egrep -e ^root /etc/passwd
==> /etc/passwd에서 첫번째로 root시작하는 것을 찾음
[+] tr
- 파일에서 문자열을 변환시키는 명령어
[실습]
head -1 /etc/passwd |tr root ROOT
소문자 root를 대문자로 표기하여라
grep 'root' /etc/passwd |tr 'root' 'admin'
[+] 클래스 사용법
tr [:lower:] [:upper:] == tr 'a-z' 'A-Z'
== > 소문자를 대문자료 변경하여라 (입력값을)
echo 'my name is 12345' |tr -d [:alpha:]
== 문자를 삭제하고 출력되도록
[:digit:] : 문자만 출력하기
[+] awk
- 패턴 검색과 처리를 위한 명령어
[실습]
-F 필드 구분자
[+] sed (stream editor)
파일을 갈무리해서 보이는 명령어 (변경도 가능)
sed [OPTION] {script-only-if-no-other-script} [input-file]
[실습]
sed -n '2p' abc.txt
2p줄만 출력
sed -n '2,5p' abc.txt
2번줄부터 5번 줄만
sed -e '1a\Z' abc.txt | cat -n
==> 첫번째 줄 뒤에
sed -e '$a\FF' abc.txt
==> abc.txt파일에 마지막 줄에 FF를 추가한다.
sed G abc.txt | cat -n
G는 공백라인을 넣는다.
- sed -e 's/b/x/g abc.txt | cat -n ==> /g를 모든 줄에서 라는 의미
- sed -e 's/c/k/' abc.txt |cat -n ==> c를 K로 변경하여라
- sed -e '2s/b/k/g' abc.txt |cat -n
=> 두번째만 변경된다.
- sed -e '2,5s/b/k/g' abc.txt | cat -n
2~5번까지 b가 있으면 k로 변경하여라
- sed -e '4d' abc.txt | cat -n
==> 4번째 줄을 지워라
- sed -e '2,5s/b/ /g' abc.txt | cat -n
/ / 공백을 넣어 줄 수도 있다.
sed -e '2,5s/b/ /g' abc.txt | cat -n
sed -n '2,4p' abc.txt | cat -n
sed -n '2,4p' abc.txt | cat -n
sed -n '/[^Bb]/p' abc.txt | cat -n
= Bb로 시작하지 않는 것을 찾을 때
sed -i '1a\ZZ' abc.txt | cat -n
-i 옵션은 내용을 추가해서 저장하여라 라는 옵션
이번에는 cat -n이 실행되지는 않았음(
[혼자 실습]
1) head –5 /root/initial-setup-ks.cfg | cat –n
==> /root/initial-setup-ks.cfg 파일의 위에 부터 줄의 번호를 붙여 5줄을 화면에 출력하여라.
2) 단어/어구 변경은 's/바뀔_단어/바꿀_단어/' 형식이다.
> sed -e 's/System/SYSTEM/g' /root/initial-setup-ks.cfg | head
=>모든 System이 SYSTEM으로 변경됨
sed -e '1,5s/System/SYST/g' /root/initial-setup-ks.cfg | head
=>1~5줄 내에서만 SYSTEM이 SYST로 바뀜
sed -e 's/SYSteM/SYSTEM/gi' /root/initial-setup-ks.cfg | head
=>대소문자 구별하지 않고 SYSTEM으로 변경 == sed -e 's/[Ss]ystem/SYSTEM/g' /root/initial-setup-ks.cfg | head
3) 단어/어구 삭제는 '패턴/d' 형식이다.
sed -e 's/System/(공백)/gi' /root/initial-setup-ks.cfg | head
=>"System" 단어가 있으면 삭제
sed -e 'd' /root/initial-setup-ks.cfg | head
=> 모든 문자 및 문자열을 삭제하여라(Delete) 즉, 아무것도 표기되지 않음.
sed -e '4d' /root/initial-setup-ks.cfg > /home/centos/initial-setup-ks.cfg.bak
=>4번째 줄을 지우고 /home/centos/아래 initial-setup-ks.cfg.bak으로 저장한다.
=>sed -i '4d' /root/initial-setup-ks.cfg 한 것과 동일하다.
=>diff /root/initial-setup-ks.cfg /home/centos/initial-setup-ks.cfg.bak 해서 차이 나는 곳을 본다.
sed -e '3,$d' /etc/passwd | head
=>3줄부터 끝줄까지 삭제
sed -e '1,10d' /etc/passwd | head
=>1~10줄까지 삭제
sed -e '/^#/d' /etc/httpd/conf/httpd.conf | head -20
=>주석#으로 시작되는 줄만 삭제. ^#이 부호라는 의미로 전후에 /~/을 붙였다.
sed -e '3,7s/sbin/(빈칸)/g' /etc/passwd | cat –n
=>3~7줄에서 sbin만 삭제
sed -e '/^$/d' /etc/httpd/conf/httpd.conf | cat –n
=>공백 줄만 삭제
sed -e '/^$/!d' /etc/httpd/conf/httpd.conf | cat –n
=>공백 줄만 삭제하지 않음
sed -e '3,7d' /etc/passwd | head | cat –n
=>3~7줄만 빼고 보임
sed -e '/root/d' /etc/passwd | cat –n
=>root가 포함된 줄만 삭제
sed -e '/^#$/d' /etc/httpd/conf/httpd.conf | sed -e '/^$/d' | cat –n
=>주석#과 빈 줄을 모두 삭제
=>sed -i '/^$/d' /etc/httpd/conf/httpd.conf && sed '/^#/d' /etc/httpd/conf/httpd. conf && cat -n /etc/httpd/conf/httpd.conf
=>빈 줄과 주석#을 제외하고 저장함
몇 줄 안으로 들여쓰기 # 줄을 지운다면
sed '\/#/d' [파일 위치]
sed '\/#/d' /etc/httpd/conf/httpd.conf 와 sed '/^[*]#/d' /etc/httpd/conf/httpd.conf를 사용할 수 있다.
split - b 22 /etc/passwd PASSS
파일을 분할해주는 명령어
줄로 나누는 경우 split -l 10 /etc/passwd PASSS
[+] 소유권과 허가권
chmod
허가권(권한) 변경하는 명령어
- 허가권은 파일의 소유자/그룹/기타로 액세스하도록 설정할 수 있다.
문자식 변경은 읽기(r) 쓰기(w) 실행(x)순으로 할수있고 권한의 추가 및 삭제는 + -로 할수 있다.
==> 새롭게 파일 디렉터리를 생성하면 기본적으로 권한은 파일666, 디렉터리 777권한
수치로 권한을 지정할 수 있다. 읽(4) 쓰(2) 실(1)
하위 디렉터리까지 적용하기(-R) 는 mkdir -p /xyz/ABC 생성하고
chmod -R 222 /XYZ 으로 권한을 부여하였을 때 하위 디렉터리까지 변경되는 것을 확인할 수 있다.
[+]chown
소유권 변경
-R, --recursive operate on files and directories recursively
[실습]
특수파일
/dev/sdb1은 cat /proc/partitions
proc는 가상파일 시스템에서 인식한 각 블록장치의 메인과 마이너의 넘버를 확인할 수있다.
sdb0 hdd / sr0 cd-rom
tty 콘솔
Named pipe
socket file
temporary file
내일은 편집기!
'수업 > KDT' 카테고리의 다른 글
[KDT-DAY_14]Linux (feat. 사용자 권한, 그룹, 정보) (0) | 2023.01.12 |
---|---|
[KDT-DAY_13] Linux (feat. 편집기, 권한) (1) | 2023.01.11 |
[KDT-DAY_11] Linux 명령어 (0) | 2023.01.09 |
[KDT-DAY_10] Linux (feat.명령어) (0) | 2023.01.06 |
[KDT-DAY_9] Linux (feat. 커널, Xwin) (0) | 2023.01.05 |