리눅스 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 [정보보안공부:티스토리]
'IT > 리눅스마스터1급' 카테고리의 다른 글
CentOS 7에 데스크탑 환경을 설치하는 방법은 무엇입니까? (0) | 2022.09.23 |
---|---|
리눅스 Strace를 이용한 디버깅 (0) | 2022.09.19 |
[CentOS 7] Linux NFS 구축하기 / 리눅스 서버 클라이언트 디렉터리 (0) | 2022.09.17 |
CentOS 7 에 원격 접속을 위한 xrdp 설치 (0) | 2022.09.08 |
리눅스에서 공백없이 파일을 보는 방법 (0) | 2022.08.02 |