IT/리눅스마스터1급

Linux_리눅스 history특징 / 디렉토리구조

알콩달콩아빠 2022. 9. 19. 15:02
728x90
반응형

리눅스 history특징 / 디렉토리구조

- 오라클 가상 머신 사용

- CentOS6

 

<history특징 / 디렉토리구조>

 

#1 쉘에 대한 이해와 명령어에 대한 이해
쉘이란 명령어 해석기로써 커널과 사용자 중간에 위치해서 사용자가 입력한 명령어를 해석해서 커널에 전달한다.

커널은 쉘에서 전달받은 명령어로 하드웨어를 제어한다.

사용자 -> 쉘 -> 커널 -> 하드웨어

쉘의 종류 : Bash Shell, Bourne Shell, Korn Shell, C Shell, TC Shell

가장 많이 사용되는 리눅스 쉘
Bourne Shell 을 기반으로 하며 C Shell 과 Korn Shell 의 장점을 결합해서 명령어 히스토리,
명령어 완성기능 명령어 치환, 명령행 편집등을 지원하고 POSIX와도 호환된다.

 

- 명령행 편집 기능 ( ^ : Ctrl )
^a : 명령행의 처음으로 이동
^e : 명령행의 끝으로 이동
^w : 명령행 왼쪽 단어 삭제
^u : 명령행 전체 삭제
^k : 명령행 오른쪽 전체 삭제
 ^r : 명령행 히스토리 검색

 

- 히스토리 기능
이전에 사용했던 명령어를 기억하는 기능으로 방향키로 이전 명령어를 확인할 수 있다.
위 방향키  : 이전 명령어
아래 방향키 : 다음 명령어
history : 기억하고 있는 명령어 전체 출력

 


history : 기억하고 있는 명령어 최근 개수만큼 출력

 


-> history 5 : 최근 명령어 5개 출력
-> !번호 : 번호에 해당하는 명령어 실행

-> !! : 이전 명령어 실행

 


^r : (reverse-i-search)`': 입력하려는 명령어가 입력했던 명령어중 일치하면 오른쪽에 입력했던 명령어를 알려준다.

 


-> $HOME/.bash_history ( .bash_history파일에 있는 내용 )
-> 메모리 ( history 명령시 나오는 내용 )

환경변수 : 쉘에서 특수하게 쓰이는 변수

히스토리 관련 환경변수
HISTCONTROL : 중복되는 명령어 기록 유무
HISTFILE : 히스토리 파일 경로
HISTFILESIZE : 히스토리가 저장되는 파일 크기
HISTSIZE : 히스토리에 저장되는 명령어 개수

-> 리눅스 서버가 공격당하면 history파일에 기록이 담겨있다.
-> HISTFILE=/dev/null : 공격자는 이렇게 사용한다. ( 히스토리에 저장되지 않게 하기위해 )

 

 

#2 명령어의 이해
내용 : 명령어의 이해

명령어 :  <tab> <tab> 을 두번 치면 사용할 수 있는 명령어의 전체 개수가 나온다.  a ~ z

명령어가 들어있는 디렉토리 :
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
/usr/X11R6/bin

 

프롬프트 : 사용자의 명령어를 기다리면서 대기하는 표시

 

 

-> PS1="원하는형식"으로 프롬프트를 변경 할 수 있다.


프롬프트의 구조
[root@localhost ~]#
  |       |     | |
  |       |     | +- 계정종류 (# -> 관리자, $ -> 일반유저)
  |       |     +--- 디렉토리 경로명
  |       +--------- 호스트명(FQDN : hostname.domainname ex)www.naver.com, ftp.daum.net )
  +----------------- 로그인 계정명

프롬프트 변경하기
프롬프트는 환경변수 PS1에 담겨있다.
\u : 계정명
\h : 호스트명
\W : 현재 위치 (마지막 경로만 표시)
\t : 시간
\H : 호스트명.도메인명
\w : 현재 위치 (경로 전체 표시)
\\$ : 계정에 따라 # or $ 로 표시

 

명령어 사용법
- 옵션이 없이 사용하는 방법
$ 변수명=값 명령어 <엔터>
ex) ls

- 옵션을 사용하는 방법
$ 변수명=값 명령어 <옵션> <엔터>
ex) ls -l

명령어의 옵션은 - or -- 로 이루어져 있다.
-  일반적인 옵션
-- GNU 롱옵션

옵션중에는 인자가 필요한 경우와 인자가 필요없는 경우 두 가지로 나눈다.
- 옵션의 인자가 있는 경우
- 옵션의 인자가 없는 경우

 

#3 리눅스 디렉토리 구조와 경로의 이해
- 디렉토리 구조의 이해
디렉토리 구조
/               최상의 루트디렉토리
|-- bin         기본적인 실행 명령어가 있는 디렉토리 (일반유저가 실행할 수 있는 명령어가 들어있다.)
|-- boot        부팅에 관련된 파일을 저장하고 있는 디렉토리 
|-- dev         장치(device) 파일을 저장하고 있는 디렉토리
|-- etc         환경설정 파일을 저장하고 있는 디렉토리
|-- home        일반 사용자의 홈디렉토리가 모여있는 디렉토리
|-- lib         프로그램(C, C++등)에 필요한 각종 라이브러리가 있는 디렉토리 (32bit)
|-- lib64       프로그램(C, C++등)에 필요한 각종 라이브러리가 있는 디렉토리 (64bit)
|-- lost+found  부팅시 파일시스템에 문제가 생길 경우 fsck명령어로 복구할 때 사용되는 디렉토리, 파티션 마다 하나씩 존재
|-- media       USB / DVD 마운트를 위한 디렉토리 
|-- misc        시스템 아키텍처에 독립적인 자료들이 저장되는 디렉토리
|-- mnt         플로피, CD-ROM등 마운트를 위한 디렉토리
|-- net
|-- opt         애드온 소프트웨어를 설치할 수 있는 디렉토리
|-- proc        가상 디렉토리로써 실행중인 프로세스나 현재 시스템의 정보를 보여준다. (HDD 에 존재하지 않고 메모리에 있는 것임)
|-- root        관리자(root 사용자)의 홈디렉토리
|-- sbin        시스템관리자용 명령어가 들어있는 디렉토리
|-- selinux     SELinux 에 관련된 디렉토리 (보안 관련)
|-- srv         서비스 디렉토리로 ftp,http,cvs 등의 데이터 존재
|-- sys         시스템이 필요로하는 파일들이 있는 디렉토리
|-- tmp         임시 파일들이 저장을 위한 디렉토리
|-- usr -- bin  <-- 명령어 (일반유저 실행 O)
|        -- sbin <-- 명령어 (일반유저 실행 O,X)
|        -- local  <-- 소프트웨어 설치시 이 디렉토리에 저장
|            -- bin  <-- 명령어 (일반유저 실행 O)
|            -- sbin <-- 명령어 (일반유저 실행 X)
|        -- X11R6/bin <-- Xwindow 실행 명령어
`-- var         log파일등 수시로 업데이트 되는 파일들이 있는 디렉토리
         -- log  각종 log파일이 저장되는 디렉토리

 

 

-> pwd를 이용해 자신이 현재있는 곳의 위치를 알 수 있다.

 

- 절대경로와 상대경로
파일을 표현하는 방법으로 두 가지가 존재한다.
절대경로 :  / 디렉토리에서 시작해서 파일을 표현
상대경로 : 현재 디렉토리에서 시작해서 파일을 표현
.  : 현재 디렉토리를 표현하는 문자
.. : 상위 디렉토리를 표현하는 문자
/  : 최상위 디렉토리를 표현하는 문자

 

 

-> 위의 경로는 절대경로로 해당위치를 표현했고 아래의 경로는 상대경로로 해당위치를 표현했다.

-> 현재 위지가 /root였기 때문에 .. 을이용해 / 최상위 루트디렉토리도 이동후 etc 디렉토리 passwd파일을 나타낸다.

출처: https://sungpil94.tistory.com/178 [정보보안공부:티스토리]

728x90
반응형