Day 3-유닉스 기본 명령어, vi 에디터

2019. 11. 20. 10:40Security/리눅스

* 같은 네트워크내 서버에 접속하는 방법

 

네트워크에 들어가서 주소창에 \\192.168.10.11(서버의 IP주소)\를 치고 들어가면

이런 식으로 서버에 접속해서 파일을 받을 수 있는데 이러한 일련과정을 간소화 하고 싶다면

해당 파일 우클릭 -> 네트워크 드라이브 연결 -> 마침을 누르면

이런 식으로 네트워크 위치가 드라이브로 추가되어 있어서 앞으로는 Z드라이브로 접속하면 된다.

 

* 유닉스 기본 명령어

 

ln : 링크파일(윈도우에서는 바로가기) 생성. "ln [옵션] 원본파일 링크파일"의 형태로 사용

-s : soft link 생성(디렉토리의 경우 soft link만 가능)

-f : 대상이 존재하는 경우 지우고 link파일 생성(오류날 가능성이 높아서 거의 사용하지 않음)

 

ex)

ln -s /home/data data : /home/data에 있는 파일을 data라는 바로가기로 생성

 

- 심볼릭 링크와 하드 링크의 차이

심볼릭 링크 : 별도의 inode를 가지며 원본 파일의 위치정보만 가지는 단축 아이콘. 일종의 바로가기

하드 링크 : 원본 파일과 동일한 inode를 가져서 원본 파일이 삭제되도 사용 가능. 

 

echo aa > 1.txt : aa라는 문자열을 1.txt에 저장

ln 1.txt 2.txt : 1.txt라는 원본 파일을 2.txt라는 하드 링크 파일로 생성(-s 따로 없으면 하드링크 파일로 생성)

ls -li *.txt : 확장자가 .txt인 파일을 아이노드와 같이 출력(하드링크라서 1.txt와 2.txt의 아이노드 값이 같음)

ln -s 1.txt 3.txt : 1.txt라는 원본 파일을 3.txt라는 심볼릭 링크 파일로 생성

ls -li *.txt : 확장자가 .txt인 파일을 아이노드와 같이 출력(3.txt는 원본 파일은 1.txt를 가리키고 있음)

rm -rf 1.txt : 1.txt 삭제

ls -li *.txt : 원본 파일이 죽은 3.txt 파일은 고스트 파일로 출력됨.

 

more : 화면 출력을 화면 단위로 제어. 내용이 많아서 화면을 넘어갈때 사용

| : 앞 명령의결과를 뒤쪽 명령의 입력 값으로 이용

ex) ls -al | more : ls -al의 결과를 화면 단위로 제어해서 출력

 

grep : 출력 문자열중 원하는 단어나 글자가 포함된 라인만 출력

ex) ls -al | grep conf : conf란 단어가 포함된 라인을 출력

cat -n /etc/passwd | grep ftp : /etc/passwd 에서 ftp이라는 문자열이 포함된 라인을 라인 번호화 함께 출력

evn | grep HOME : HOME이라는 문자열이 포함된 환경변수를 출력

 

head, tail : 파일의 일부분을 출력. 각각 앞 뒤에서 10 라인씩 출력(거의 사용 안 함)

-n : 지정한 라인만큼 출력
-c : 지정한 byte 만큼 출력
-f : tail에서만 사용, 실시간 추가되는 내용도 출력
주로 log 정보 확인 시 사용한다.

 

find : 파일시스템에서 조건에 만족하는 파일을 검색한다(거의 사용 안 함)

형식 : find [검색경로] [검색조건1] [검색조건2] ...

-name : 파일명으로 검색(와일드카드 문자 사용)

-perm : 특정 퍼미션을 가진 파일 검색

-empty : 크기가 0인 파일 검색

-user : 지정 사용자가 소유한 파일
-group : 지정 그룹이 소유한 파일
-nouser : 소유자가 없는 파일
-nogroup : 그룹 소유자가 없는 파일
-type 검색하고자 하는 파일의 종류 지정 ex)b(block), c(char), d(dir), l(slink)
f(regular)

-mount 마운트된 파일 시스템만 검색

find /var/ -name *.conf : var 디렉토리에서 확장자명이 conf인 파일 찾아서 출력

find /var/ /etc/ -name d??????.conf :  var디렉토리와 etc디렉토리에서 'd******.conf'로 지정된 파일 출력

find /dev/ -name sd* -type b : dev디렉토리에서 'sd'로 시작되는 타입이 b(블락)인 파일을 찾아서 출력

 

tar : 여러 개의 파일을 하나의 파일로 압축. 단 용량은 줄어들지 않고 묶이는 기능만 수행

형식 : tar [옵션] [압축파일명] [대상]

-c : 압축

-x : 압축 해제

-v : 작업 내용을 출력

-z : gzip를 이용해서 압축(또는 압축 해제)

-j : bzip2 이용

-f : 파일명을 지정

-p : 퍼미션 유지

 

mkdir -p ./aa/a/ : 현재 디렉토리 밑에 aa 디렉토리, 그 하위에 a디렉토리 생성(./는 현재 디렉토리(복습 내용))

echo 1 > ./aa/a.txt : echo 1이라는 명령 결과를 현재 디렉토리 밑에 aa디렉토리 밑에 a.txt로 저장

echo 2 > ./aa/a/a.txt : echo 2라는 명령 결과를 현재 디렉토리  밑에 aa디렉토리 밑에 a디렉토리 밑에 a.txt로 저장

tar cvfz aa.tar.gz aa : aa디렉토리를 aa.tar.gz라는 이름으로 압축(작업 내용을 출력하고 gzip을 이용)

rm -rf aa : aa 디렉토리 삭제

ls : 현재 디렉토리 목록을 출력

tar xvfz aa.tar.gz : aa.tar.gz 파일을 압축 해제(작업 내용을 출력하고 gzip을 이용)

ls -R aa/ : aa디렉토리의 하위 내용까지 모두 출력

 

gzip : 용량을 줄이는 압축 프로그램

gzip a.txt : a.txt.gz로 압축

 

clock : 리눅스 시스템에 탑재된 BIOS의 시간을 출력하거나 변경

형식 : clock [옵션]

-r : BIOS의 시간을 읽어 표준 출력으로 출력

-w : 시스템의 시간으로 이용 시간을 변경

-s : BIOS의 시간으로 시스템의 시간을 변경

 

date : 지정한 포맷으로 시스템의 시간을 출력

 

rdate : 인터넷 상 제공되는 서버에서 시간 정보를 받아 시간을 출력하거나 시스템의 시간을 재설정

형식 : rdate [옵션] [시간 제공 서버 주소]

-p : 타임 서버에서 제공된 시간을 출력

-s : 타임 서버에서 제공된 시간으로 사용중인 시스템의 시간을 재설정

rdate -p time.bora.net : time.bora.net 서버의 시간 정보를 출력

rdate -s time.bora.net : time.bora.net 서버의 시간으로 사용중인 시스템의 시간을 재설정

clock -w : 시스템의 시간으로 이용 시간을 변경 

 

vi 에디터 

 

vi의 실행 : vi 에디터는 반드시 파일명을 추가해서 실행

형식 : vi 파일명

 

vi의 모드 : 에디팅 모드와 편집 모드가 다름(윈도우와 다름)

- 명령 모드 : 입력 이외 편집 작업

- 입력 모드 : 데이터 입력 및 수정

- 실행 모드 : 파일 저장, 종료

vi의 모드 변경 방법

 

명령 모드 -> 삽입 모드

i : 커서 위치 부터 입력(숙련자가 아니면 i만 사용하는 것을 권장)

a : 커서 다음 칸에 입력

o : 커서 아래 새로운 라인을 삽입 후 입력

I(엘) : 커서가 위치한 라인 맨 앞에 입력

A : 커서가 위치한 라인 맨 뒤에 입력

 

명령 모드 -> 실행모드

:

 

삽입 or 실행 모드 -> 명령모드

ESC키

 

삽입 모드 -> 실행 모드

불가능

 

vi 명령모드

 

-이동

G : 문서의 맨 끝으로

Ctrl+F : 아래로

Ctrl+B : 위로

 

-삭제

x : 글자 삭제

dd : 라인 삭제

 

-검색

/문자열 : 문자열 검색

n : 검색상태에서 순방향으로 재검색

N : 검색상태에서 역방향으로 재검색

 

-환경변수

형식 : set [환경변수] [값]

nu : 라인번호 표시

 

vi 실행모드

 

:wq : 저장 후 종료

:q! : 저장하지 않고 종료

 

*개념 및 용어 정리

 

MAC주소(물리적 주소) : 16진수를 사용하고 8비트씩 6자리 총 48비트로 구성, 편의상 8비트씩 6자리로 구분하여 표기한다. 앞에 3자리는 제조사 코드. 뒤에 3자리는 기기 고유코드이다.

ex)AB-CD-EF-12-34-56 

 

인증서 : 공개 키 암호 방식에서의 공개키