보안 실습/linux

linux 다루는 법(기초)

이수민 2023. 1. 24. 00:06

기본적인 shell command와 패키지들을 알려주고자 한다.

해킹란에 적기는 뭐 해서 기타카테고리에 적는다

 

1. io redirection(입출력) < / << / >> / >

linux에는 cat 이라는  command가 있다.

cat은 입력한 값을 그대로 터미널창에 뱉는 명령어이다.(stdin -> stdout)

cat filename을 할때 현재 존재하는 filename에 맞는 file이 있다면 내용을 터미널에 출력하라는 명령을 수행한다.

cat > filename은 단 하나의 기호값 차이지만 그 쓰임새는 다르다.

cat > filename 은 cat으로 입력한 값을 filename에 뱉는 명령어이다.(stdin -> file)

현재 존재하는 파일이라면 파일에 있던 내용을 모두 초기화 하고 새로 작성한다.

또, cat >> filename은 파일에 있던 내용을 초기화 하지 않고 원래 있던 곳에 append한다.(stdin -> file)

여기서 이제 < 라는 부분을 생각해 볼 것이다.

cat < filename 이라는 내용을 친다면

filename이라는 내용을 cat이 입력값으로 받아서 터미널 창으로 뱉는다.(file->stdout)

cat << filename은 쓰임이 약간 다르다

cat << EOF

EOF라는 입력을 받을 때 까진 입력을 계속한다는 의미를 가지고 있다.

 

어떠한 실행파일에서 나오는 표준입출력을

/file > log 에 저장한다고 한다.

여기서 포준오류가 출력되게 하고 싶다면 뒤에 2>1을 더 붙여주면 된다.

 

2. vi, vim 에디터

nano나 gedit, cat같은 편집기가 존재하기는 한다.

하지만 이것들은 굉장히 쓰기가 불편하다.

가장 편하게 쓰이는 편집기가 바로 vi, vim에디터다.

둘 차이라고 하면 vim에디터는 커스텀을 해서 쓸 수 있는 걸로 알고있다.

vim에디터를 사용하면 좀더 예쁘고 컬러풀하게 가독성있는 코드를 작성할 수 있다.

알아야할 명령어

a, i 입력

dd 한줄 삭제

yy 복사

esc 입력 모드 중지

:q! 강제종료 .swp 파일 남지 않음

:q 종료

:wq 작성한 것을 저장 후 종료

:w 저장

 

 

3. 디렉토리 관련 명령어

 

디렉토리 정보 보기

ls(단순 filename)

ls -l(권한 보이기)

ls -al(.swp 파일 같은 숨김파일까지 모두 보이기)

ls 디렉토리명 (현재 디렉토리 밑에 있는 하위디렉토리아래 있는 디렉토리 및 파일들을 보여준다)

이 외에도 S, u, c같은 명령어가 있지만 저 세개를 제일 많이 쓴다.

pwd - 현재 디렉토리 경로

 

디렉토리 이동

cd (home 디렉토리 이동)

cd ~ (home 디렉토리 이동)

cd .. (부모 디렉토리 이동)

cd directoryname (자식 디렉토리 이동)

cd / (root 디렉토리로 이동)

cd - (이전 디렉토리 이동)

 

디렉토리 생성, 삭제

mkdir 디렉토리명 (디렉토리 생성)

rm -d 디렉토리명 (디렉토리 삭제)

rmdir 디렉토리명 (디렉토리 삭제)

 

4. 파일 관련

touch 빈 파일 생성

cat > 파일명 (표준 입력으로 파일 작성)

편집기 사용

 

rm 파일명(파일 삭제)

 

cp 파일명1 파일명2 (파일명1을 현재위치에 있는 파일명2로 복사)

cp 파일명 1 파일명2 파일명3 .... 디렉토리명 (파일 1,2,3.... 들을 현위치에 존재하는 디렉토리명으로 옮긴다)

cp * 디렉토리명 (현 위치에 존재하는 해당 디렉토리로 모든 파일을 이동시킨다.

 

mv 파일명 디렉토리명(현위치에 존재하는 파일을 해당 디렉토리로 이동)

mv 파일명1  파일명2 (파일명1을 파일명2로 이름 바꾸기)

또 여러가지 옵션들이 있는데 (ex. -i, -r) 한번 찾아보길 바란다.

 

 

참고로 디렉토리명이라고 썼을뿐 경로를 적어도 된다.

 

 

5. file 찾기

 

(1) find

 

find 경로 -type f -name "*찾는이름일부"

https://www.tecmint.com/35-practical-examples-of-linux-find-command/

 

35 Practical Examples of Linux Find Command

The Linux Find Command is one of the most important and frequently used command command-line utility to search and locate the list of files and directories.

www.tecmint.com

find를 다루는 35가지 방법 예제

 

(2) grep

 

grep 옵션 "내용"

-> 자세히 찾아보길 추천

 

(3) locate

 

ex) locate *.log

-> 디렉토리가 아닌, DB를 뒤진다. db 내에 파일들을 뒤지는 것. 즉 빠르게 파일을 가져올 수 있다.

locate가 사용하는 db를 m locate

 

(4)whereis

실행파일을 찾아주는 명령어

whereis ls

/bin/ls /usr/share/man/man1/ls.1.gz

 

 

 

번외. linux 정보 확인

id(현재 내가 로그인한 사용자정보)

id 계정명(계정명의 사용자정보)

users(현재 로그인한 아이디 목록)

whoami(현재 로그인한 사용자)

who am i (최초로그인한 정보)

groups(특정 사용자나, 현재 로그인한 사용자가 속한 그룹 정보 표시)

echo $PATH 환경변수 확인

 

ps aux 현재 작동하는 프로세스 확인 (여기에 grep 같은 걸 연계하기 가능)

 

 

~. 이건 해킹할때 적으려던 메모였는데.. 너무 적은 메모라서 일단 여기에도 적어둔다

elf file 정보 읽기 readelf

보호기법 확인 checksec

gdb 명령어 중, catch syscall arch_prctl(fs 값 설정 시 호출되는 함수) 해당 systemcall 이 작동하면 멈춘다.

catch *(0x주소) 해당 메모리의 값이 변하면 실행 중단