주요 운영체제를 사용하는 경우 간접적으로 쉘과 상호작용하고 있다. Ubuntu, Linux Mint 또는 기타 Linux 배포판을 실행하는 경우 터미널을 사용할 때마다 쉘과 상호작용한다.
Linux를 이해하기 위해선 다음을 알아야한다.
- kernel
- shell
- terminal
커널
커널은 시스템의 모든 것을 완벽하게 제어하는 컴퓨터 운영체제의 핵심인 컴퓨터 프로그램이다. Linux 시스템의 다음 리소스를 관리한다.
- 파일 관리
- 프로세스 관리
- I/O 관리
- 메모리 관리
- 장치 관리 등
쉘
쉘은 사용자가 운영 체제 서비스를 사용할 수 있도록 인터페이스를 제공하는 특수 사용자 프로그램이다. 쉘은 사용자로부터 사람이 읽을 수 있는 명령을 받아들이고 커널이 이해할 수 있는 것으로 변환한다. 키보드와 같은 입력 장치 또는 파일에서 읽은 명령을 실행하는 명령 언어 인터프리터이다. 쉘은 사용자가 로그인하거나 터미널을 시작할 때 시작된다.
쉘은 크게 두가지로 분류된다.
💩command line shell
쉘은 CLI를 사용하여 사용자가 액세스할 수 있다. linux/macOS에서는 terminal이라는 특수 프로그램이나 window OS에서는 command prompt라는 특수 프로그램을 제공하여 'cat', 'ls'와 같이 사람이 읽을 수 있는 명령을 입력한 후 실행된다. 그런다음 결과는 사용자에게 터미널에 표시된다. CLI로 작업하는 것이 초보자에게는 많은 명령어를 암기하기에 어려울 수 있다. 하지만 CLI는 매우 강력하며 사용자가 명령을 파일에 저장하고 함께 실행하여 반복적인 작업을 쉽게 자동화할 수 있다. 이러한 파일을 일반적으로 windows에서는 배치파일이라고 하고 linux/mac에서는 쉘 스크립트라고 한다.
💩graphical shell
그래픽 쉘은 창 열기, 닫기, 이동 및 크기 조정, 창 간 포커스 전환과 같은 작업을 허용하여 GUI를 기반으로 프로그램을 조작하는 수단을 제공한다.
리눅스 시스템에서 사용할 수 있는 몇가지 쉘이 있다. 각 쉘은 동일한 작업을 수행하지만 서로 다른 명령을 이해하고 서로 다른 내장 기능을 제공한다.
💩BASH(bounce again shell)
리눅스 시스템에서 가장 널리 사용되는 쉘이다. 리눅스 시스템및 mac OS에서 기본 로그인 쉘로 사용된다. window OS에도 설치할 수 있다.
💩CSH(c shell)
C 쉘 구문과 사용법은 C 프로그래밍 언어와 매우 유사하다.
💩KSH(korn shell)
Korn Shell은 POSIX Shell 표준 사양 등의 기반이기도하다.
일반적으로 쉘은 대화형이다. 사용자가 명령을 입력으로 받아 실행한다. 그러나 우리는 많은 명령을 일상적으로 실행하기를 원하므로 터미널에 매번 모든 명령을 입력해야한다. 쉘은 또한 파일에서 명령을 입력으로 받을 수 있으므로 이러한 매
⌨Command
// basic
pwd : Current Directory
cd : Change Directory
ls : Folder List
ls -la : Hidden Folder List
mkdir : Make Folder
rmdir : Remove folder
echo : Print
cp : Copy
rm : Remove
mv : Move
locate : Search by File or Folder Name
updatedb : Update DB
passwd : Change Password
man : Command Manual
// permission
su : SuperUser
sudo : SuperUser Do
ls -l : File Permission List
chmod : change Permission
//
cat : 파일을 읽고 내용을 출력
pwd
현재 위치한 디렉토리
ls
폴더 리스트 보기
ls -l
긴형식 폴더 리스트 보기
좌측에 있는 단어들(d/rwx/r-x/r-x)은 각각 의미하는 것이 있다.
-: file
d: directory
r: read
w: write
x: execute
- or d / 파일소유자 권한 / 파일을 보유한 그룹 구성원 권한/ all user 권한
echo
문자열을 터미널에 출력
cp
copy
mv
move (복사가 아닌 이동이기 때문에 만들지 않고 물리적으로 이동함)
rm
remove
locate
파일명으로 찾기
updatedb
locate(/var/lib/plocate/plocate.db)에서 사용하는 바이너리 데이터베이스는 매일 한번 업데이트 cron 하기때문에 새파일을 찾지 못할 수 있다.(: No such file or directory) 그럴경우 updatedb 한 다음 locate 명령을 다시 실행해야한다.
passwd
password 변경
man
command manual
cat
1. 단일 파일 읽기
2. 다중 파일 읽기
3. 행번호
4. file 생성
5. 파일을 다른 파일로 복사
6. 여러파일을 병합
7. 이미 존재하는 파일에 쓰기
왼쪽이 좋은예(줄바꿈하고 나가야됨)
su
현재 디렉토리나 사용자 환경을 변경하지 않고 다른 사용자로 쉘을 호출한다.
sudo
루트 사용자로 로그인하지 않고도 작업을 완료할 수 있도록 일시적으로 권한을 상승시킨다.
chmod
파일 시스템 객체(파일, 디렉토리)의 액세스 권한(모드)을 변경하기 위해 사용되는 명령 및 시스템 호출
adduser
사용자 추가
추가된 거 확인
Ref
'네트워크 보안 > 보안' 카테고리의 다른 글
[Pentesting] Metasploit (01) (0) | 2021.12.28 |
---|---|
[Pentesting] MetaSploit (00) (0) | 2021.12.27 |
[Contents] Google Dorking (0) | 2021.12.27 |
[Pentesting] Burp Suite 설치하고 Openvpn 설정 (0) | 2021.12.26 |
[Linux🐧] Virtual Machine 설치 (0) | 2021.09.20 |