Time for Security

블로그 이미지
제가 교육을 받으며 이해한 보안 지식을 복습하고, 정리해가는 작은 블로그입니다.
by 하꼬방
  • Total hit
  • Today hit
  • Yesterday hit

'보안 지식 창고/[리눅스]'에 해당되는 글 10건

  1. 2017.07.31
    [리눅스] vi 옵션 설정 2
  2. 2017.07.30
    [리눅스] 디렉토리 구조
  3. 2017.07.29
    [리눅스] /etc/passwd 및 /etc/shadow 파일
  4. 2017.07.28
    [리눅스] 퍼미션 이해
  5. 2017.07.26
    [리눅스] vi 편집기
  6. 2017.07.25
    [리눅스] 파일 및 디렉토리 검색
  7. 2017.07.24
    [리눅스] 하드링크 및 심볼릭링크
  8. 2017.07.23
    [리눅스] 디렉토리 및 파일 내용 변경
  9. 2017.07.21
    [리눅스] 디렉토리 및 파일 보기
  10. 2017.07.19
    [리눅스] 유닉스의 특징

 안녕하세요.


 오늘의 포스팅은 vi 옵션에 관한 내용입니다.


 매번 그때 그때마다 설정하기 귀찮으셨다면 오늘부터는 편안해지실거에요.


 바로 시작해보도록 하겠습니다. 


 vi 옵션을 설정해주는 파일은 vimrc입니다.


 아래의 사진처럼 똑같이 경로를 입력해주세요.



 숨겨진 파일이므로 꼭 .을 입력해주도록 합니다. 


 위와 같이 입력해 vi 로 들어오셨다면 다시 아래와 같은 내용을 입력합니다.


 각각 어떤 기능을 하는 지 설명해드리겠습니다.


 1 syntax on : 흑백인 소스에 색이 입혀집니다.


 2 set nu : vi에서 라인을 출력합니다.


 3 set ts=4 : 텝 사이즈를 4로 고정합니다.


 4 set sw=4 : 쉬프트 넓이를 4로 고정합니다.


 5 set ai : 자동 들여쓰기를 합니다.


 6 set cindent : c언어의 문법으로 봅니다.


 7 set smartindent : 검색시 대소문자를 구별하지 않습니다.


 8 set hlsearch : 검색시 검색한 패턴을 표시합니다.


 9 filetype on : 파일 타입을 확인합니다.


 이제 vi를 몇 번 써보셔서 알겠지만 위의 설정은 거의 표본이 되는 설정입니다.


 처음부터 설정되어 있다면 굉장히 편리합니다.


 한번 확인해 볼까요?



 passwd 파일을 vi 편집기로 열어봅시다.



 별다른 설정없이도 처음부터 보기 편하게 설정이 되어있음을 확인할 수 있습니다.




 여기까지 vi 옵션 설정이었습니다.


 무심코 지나갈 수 있는 부분이지만 섬세히 설정해준다면 더욱 편안한 리눅스를 경험할 수 있답니다. 

AND

 안녕하세요.


 이번 포스팅은 root 디렉토리에서 ls 명령어를 입력할 시 나오는 기본 디렉토리들의 역할에 대해 설명하는 시간입니다. 

 


 위의 사진과 같이 root 디렉토리에는 수 많은 디렉토리가 존재합니다.


 본인이 직접 만들어주시지 않아도 처음부터 있는 기본 디렉토리들입니다.


 bin은 windosw의 system32에 해당하는 폴더로 실행할 수 있는 명령어 저장 디렉토리입니다.


 예를 들면 전에 배웠던 cat, vi, mkdir, touch등을 들 수 있겠습니다.


 boot는 부트로더와 부팅에 필요한 필수적인 파일을 저장합니다.


 이 디렉토리가 손상되면 리눅스가 부팅되지 않습니다.


 dev는 시스템 디바이스 파일들을 저장하는 디렉토리로 시스템에 있는 모든 장치가 파일로 표현됩니다.


 etc는 시스템이나 프로그램의 환경설정 파일들이 저장된 디렉토리로 시스템 관리에서 가장 많이 사용되는 디렉토리입니다.


 home은 계정들의 홈 디렉토리입니다.


 media는 cd-rom, dvd 등과 같은 이동식 디스크들이 마운트 되는 곳입니다.


 lib은 라이브러리 디렉토리로 프로그램이 동작할 때 필요한 공유가 있는 곳입니다.


 mnt는 NFS와 같은 파일 시스템이 임시로 마운트 되는 디렉토리입니다.


 opt는 응용 프로그램을 설치하는 디렉토리입니다.


 한마디로 애드온 소프트웨어 패키지 디렉토리라고 볼 수 있겠습니다.


 proc은 실행중인 프로세스의 정보, CPU, 메모리 등의 시스템 정보를 가지고 있는 디렉토리입니다.


 sbin은 시스템 관리자용 명령어입니다.


 ifconfig, reboot, shutdown, mount 등의 명령어가 이곳에 속하게 됩니다.


 srv는 서비스 디렉토리로 ftp, http, cvs 등의 데이터가 저장되는 디렉토리입니다.


 sys는 리눅스 시스템이 필요로하는 파일이 저장되어 있는 디렉토리입니다.


 tmp는 임시로 파일을 만들고 삭제하는 디렉토리입니다.


 usr은 일반 사용자들을 위한 프로그램이 들어있는 디렉토리입니다.


 var는 수시로 업데이트 되는 파일들이 들어있는 디렉토리입니다.




 정말 간단히 알아보았는데요.


 이중에서 etc, proc, var, usr은 침해사고를 분석하는데 있어서 가장 중요한 디렉토리입니다. 


 처음부터 이 모든 디렉토리에 대해 자세히 알고 넘어가면 지루하기 때문에 이번 포스팅은 여기서 마치도록 하겠습니다.

AND

 안녕하세요.


 이번 포스팅은 리눅스의 패스워드 관련 파일의 내용을 살펴보는 것입니다.


 사용자가 사용하는 패스워드는 파일에 저장되는데요.


 어디에 저장되고 어떤 형태로 저장되는 지 알아봅시다. 



 시스템에 등록된 사용자 정보를 저장하는 파일은 passwd 입니다.


 이 파일은 /etc 밑에 있습니다.


 어떤 형식으로 되어있는 지 한 번 확인해볼까요?


 저번에 배웠던 cat 명령어를 이용해봅시다.



 본인이 처음에 등록하지 않은 사용자 정보도 많이 있을텐데요.


 이들은 프로그램을 운영하는데 있어서 필수적인 요소들입니다.


 저는 test라는 사용자를 따로 만들었었는데, 어떤 내용이 있나 확인해봅시다.


 이 파일엔 최근에 만든 사용자일수록 가장 밑에 있기 때문에 맨 밑을 보시면 됩니다.


 각 필드를 살펴보도록 하겠습니다.

 

필드

설명 

USER

 사용자의 이름을 나타냅니다. 

x

 사용자의 패스워드를 저장하는 필드입니다. 

UID

 시스템에서 사용자를 식별하는 번호입니다. 

GID

 시스템에서 그룹을 식별하는 번호입니다. 

GECOS

 주석 필드입니다. 

HOME

 사용자의 홈 디렉토리를 절대경로로 나타냅니다. 

SHELL

 사용자가 기본으로 사용할 쉘을 나타냅니다. 


 조금 더 자세히 살펴보도록 할까요?


 USER 필드는 시스템에서 유일해야하며 사용자가 로그인할 때 사용합니다.


 x 필드는 본래 사용자의 패스워드가 있었지만 보안상의 이유로 shadow 파일로 옮겨갔습니다.


 조금 후에 살펴보도록 하겠습니다.


 UID 필드에서 0번은 root사용자를 의미하며 1000번 미만은 시스템 사용자 계정으로 예약되어 있고, 일반 사용자는 1000번부터 사용하게 됩니다. GID의 경우도 이와 동일합니다.


 GECOS 필드는 General Electric Comprehensive Operationg의 약자로 사용자 계정에 대한 주석을 기재한는 곳입니다.


 HOME과 SHELL은 위의 설명으로 충분하다고 생각됩니다.


 다음은 위에서 살짝 언급했었던 shadow 파일에 대해 알아보도록 하겠습니다.


 이 파일은 사용자의 패스워드를 해시패스워드 형태로 저장하고 패스워드에 대한 속성을 저장하기 위한 파일입니다.


 전의 passwd 파일은 복호화가 쉬운 암호화 알고리즘을 사용하였기 때문에 변경되었습니다.



 마찬가지로 cat 명령어로 shadow 파일을 살펴보도록 하겠습니다.


 이 파일 역시 etc 밑에 있답니다.



 복잡한 숫자와 영어가 보일텐데요.


 하나씩 필드에 대해 알아보겠습니다.


필드

설명 

USER

 사용자의 이름을 나타냅니다.

HASH

 해시 알고리즘을 사용하여 생성된 패스워드가 저장됩니다. 

LASTCHANGE

 마지막으로 패스워드를 변경한 날짜를 의미합니다. 

MIN

 패스워드 변경 후 최소 사용 기간을 의미합니다. 

MAX

 패스워드 변경 후 최대 사용 기간을 의미합니다. 

WARNING

 만료일이 되기 전 사용자에게 경고 메시지를 출력하는 설정입니다. 

INACTIVE

 패스워드가 만료되고 지정된 기한 안에 패스워드를 변경하지 않으면 사용자 계정이 잠금 상태로 변경됩니다. 

EXPIRE

 사용자 계정의 만료일을 지정합니다. 

BLANK

 예약된 필드로 아직 사용하지 않습니다. 


 이 부분은 정보보안기사 자격증 시험에 상당히 자주 출제되는 부분입니다. 


 시험의 특성상 같은 문제는 내지 않는다고 공표하였지만 형식이 같지만 않을 뿐 돌려서 돌려서 이 내용을 문제로 자주 출제합니다.


 자격증을 준비하시는 분은 꼭 알고 넘어가셨으면 좋겠습니다.




 여기까지 리눅스 패스워드 파일에 관한 포스팅이었습니다.


 다음에는 더욱 더 알찬 내용으로 찾아뵙겠습니다.

'보안 지식 창고 > [리눅스]' 카테고리의 다른 글

[리눅스] vi 옵션 설정  (2) 2017.07.31
[리눅스] 디렉토리 구조  (0) 2017.07.30
[리눅스] 퍼미션 이해  (0) 2017.07.28
[리눅스] vi 편집기  (0) 2017.07.26
[리눅스] 파일 및 디렉토리 검색  (0) 2017.07.25
AND

 안녕하세요!


 오늘은 리눅스에서 파일 및 디렉토리의 권한을 줄 때 사용되는 퍼미션에 대해 포스팅하겠습니다.


 리눅스를 공부하다보면 퍼미션은 필수인데요.


 제대로 이해하지 못하거나 잘못이해하고 있는 경우가 많은 것 같아서 포스팅을 하게 되었습니다.


 그럼 바로 시작해보도록 하겠습니다. 



 좌측은 디렉토리의 퍼미션, 우측은 파일의 퍼미션입니다.


 umask가 022인 경우로 예제를 한 번 만들어보았습니다.


 사실 디폴트 umask값이 022이기 때문이기도 합니다.


 모두들 책에서 한 번정도 봤을 법한 그림일거에요.


 777에서 022를 빼서 퍼미션이 755가 되고, 666에서 022를 빼서 644가 되죠.


 이렇게 보면 당연하고, 이해를 전부 한 것 같지만 아래의 예를 보겠습니다.


 

 umask가 055일때 파일의 퍼미션은 어떻게 될까요?


 위에서 이해한대로 666에서 055를 빼주어 611이 될까요?


 답을 먼저 말씀드리면 'No'입니다. 


 왜 그럴까요?


 빼기가 아닌걸까요?


 밑으로 넘어가 이해를 돕도록 해보겠습니다.



 아까 처음에 봤던 예시를 이진수로 바꾸어 보았습니다.


 그리고 한 번 생각해보도록 할게요.


 umask가 왜 umask인지 의미를 생각해보면 이해하기 쉽습니다.


 얼굴에 착용하는 마스크처럼 통과시키고 통과시키지 못하고를 떠올려보시면 간단합니다.


 umask가 1이면 가로막는 것이고, 0이라면 통과시키는 것입니다.


 위의 숫자가 1, 아래의 숫자가 0이라면 그 1은 통과예요.


 위의 숫자가 1, 아래의 숫자가 1이라면 1은 통과하지 못하는 겁니다.


 반대로 위의 숫자가 0이라면 처음부터 통과고 umask고 생각할 필요없이 0입니다.


 조금 이해가 되시나요? 


 한 번 더 다른 표현으로 이해를 해볼게요.


 

 이진수를 읽기, 쓰기, 실행 권한으로 바꾸어 보았습니다.


 위에 w, 즉 읽기 권한이 있는데, umask에서 w로 막고 있습니다.


 이렇게 될 경우 w는 통과하지 못하게 되는거죠.


 r과 x는 umask가 없기 때문에 그대로 밑으로 통과하게 되는 거에요.


 확실히 이해가 되셨겠죠? 


 처음에 풀어보았던 문제를 다시 한 번 풀어볼게요.



 맨 앞의 rw-는 umask값이 없기 때문에 그대로 통과됩니다.


 두번째의 rw-는 umask값이 r과 x입니다.


 r은 막혀서 내려오지 못하고, w는 그대로 통과되죠.


 x는 어떨까요?


 처음부터 없었던 권한이기 때문에 umask값의 유무는 전혀 중요하지 않게 되는거죠.


 세번째는 두번째와 동일해요.


 따라서, 문제의 답은 622였습니다.




 리눅스에 입문하게 되면서 배우는 퍼미션, 그 단원에서 빼기의 의미를 잘 못 생각하시는 분이 의외로 많기 때문에 준비한 포스팅이었습니다.


 책의 저자는 리눅스에 능통한 분들이기 때문에 당연하다고 생각하실 수 있지만 입문자에게는 헷갈릴수 있고, 더 심하면 생각해본적도 없을 수 있습니다.


 여기까지 포스팅을 마치겠습니다. 


AND

 안녕하세요!


 이번 포스팅은 vi 편집기입니다.


 vi 편집기는 윈도우의 메모장 같은 프로그램입니다.


 vi는 visual editor의 약자입니다.


 이번에 배울 vi 편집기는 특히 리눅스를 처음 사용해 보시는 분에게는 완전 낯선 부분입니다.


 메모장처럼 생겨서 메모장이지 않은... 마우스를 사용했던 메모장과는 다르게 오로지 키보드로 사용을 해야하기 때문에 상당히 애먹는 부분입니다.


 하지만 모든 명령어에 익숙하다면 훨씬 더 편하다고 말하더군요.


 저는 아직 거기까지는 모르겠습니다.


 그럼 포스팅을 시작하도록 하겠습니다. 


 먼저 vi를 실행시켜 줍니다.



 실행법은 vi (파일명)입니다.


 여기서 저는 파일명을 test.txt라고 했는데 아무거로나 하셔도 상관없습니다.


 아시리라 믿지만 리눅스에서 . 뒤에 확장자처럼 보이는 것은 확장자가 아닙니다. 


 여러 파일을 분간하기 위해 사용할 뿐입니다.


 저는 텍스트 파일임을 알려주기 위해 눈에 익숙한 .txt를 사용하였습니다.



 그렇게 되면 이런 메모장과 비슷한 화면이 보여집니다.


 이 화면은 현재 커멘드 모드입니다.


 vi에는 총 3가지의 모드가 있는데요.


 그 중 하나입니다.


 여기서 i를 눌러봅니다.



 이 모드는 에디트 모드입니다.


 파일을 수정할 수 있는 모드예요.


 메모장처럼 글씨를 쓸 수 있는 모드라고 생각하시면 됩니다.


 아무 글씨나 써주세요.


 그 이유는 파일을 저장한 후 다시 켯을 때 제대로 저장이 되어 있나 확인해보기 위함입니다. 



 esc를 누른 후, :wq라고 입력해주시면 원래 입력하던 곳이 아닌 맨 밑에 글씨가 써지게 되는데요.


 이 모드가 바로 라스트 라인 모드입니다.


 :wq는 write하고, quit을 한다는 의미입니다.


 저장후 종료라는 말이라고 생각하시면 됩니다.


 더 자세한 명령어는 뒤에서 설명하도록 하겠습니다.



 vi 명령어로 파일을 다시 열어주시면 아까 전 그 내용이 그대로 임을 확인할 수 있답니다.


 아까와 같이 i를 눌러 here을 써줍시다.



 방금 커서가 있던 곳의 앞에서부터 써집니다.


 처음의 상황으로 돌아가 a를 눌러주시고 here을 써줍니다.



 커서의 뒤에 here이 써지는 것을 확인할 수 있어요.


 처음에는 커서 위치도 헷갈리고, i와 a가 복잡하시겠지만 조금 익숙해지시면 능숙하게 다루실 수 있을거에요!


 다시 처음의 상황으로 돌아가 a를 눌러주시고 here을 써보세요.



 커서 밑에 줄에 here이 써지는 것을 확인할 수 있답니다.


 입력할 수 있는 큰 단축키는 이렇게 i, a, o 입니다.


 그 외의 명령어도 한 번 보고 넘어 갈게요.


명령어 

설명 

a

 텍스트 뒤에 커서를 위치시키고 입력을 받습니다. 

A

 텍스트가 위치한 줄의 가장 뒷부분에 커서를 위치시키고 입력을 받습니다. 

i

 텍스트가 앞에 커서를 위치시키고 입력을 받습니다.

I

 텍스트가 위치한 줄의 가장 앞부분에 커서를 위치시키고 입력을 받습니다. 

o

 커서가 위치한 줄의 아래에 새로운 줄을 추가하여 커서를 위치시키고 입력을 받습니다. 

O

 커서가 위치한 줄의 위에 새로운 줄을 추가하여 커서를 위치시키고 입력을 받습니다. 


 처음부터 전부 외울 필요는 없다고 생각해요.


 하지만 알고 넘어가는 것과 모르고 넘어가는 것은 많이 다르겠죠?


 다음은 커멘드 모드에서 커서를 이동하는 명령어를 살펴보겠습니다.


 이 부분은 정리된 표만으로 충분하다고 생각해 표만 올립니다.


키 조합 

커서 이동 설명 

h, 왼쪽 화살표, 백스페이스 키 

 왼쪽으로 한 칸 이동 

j, 아래쪽 화살표 

 한 줄 아래로 이동 

k, 위쪽 화살표 

 한 줄 위로 이동 

l, 오른쪽 화살표, 스페이스 키 

 오른쪽으로 한 칸 이동 

w 

 한 단어 앞으로 이동 

b 

 한 단어 뒤로 이동 

e 

 현재 단어의 끝으로 이동 

$ 

 한 줄 끝으로 이동 

0(숫자) 

 한 줄의 시작으로 이동 

Enter 키 

 한 줄 아래로 이동 

G 

 파일의 제일 마지막 줄로 이동 

1G 

 파일의 제일 첫 번째 줄로 이동 

:n 

 n번째 줄로 이동 

nG 

 n번째 줄로 이동 

Ctrl + F 

 화면 사이즈만큼 다음 화면으로 이동 

Ctrl + D 

 화면 사이즈의 절반만큼 다음 화면으로 이동 

Ctrl + B 

 화면 사이즈만큼 이전 화면으로 이동 

Ctrl + U 

 화면 사이즈의 절반만큼 이전 화면으로 이동 

Ctrl + L 

 화면 재 갱신 


 w, b, G 정도 암기해두시고 가면 편리할거에요! 



 다음 실습을 위해 몇 글자 더 적었습니다.


 이번엔 삭제에 관련된 명령어입니다.


 마찬가지로 표를 먼저 확인할게요.


명령어 

기능 

R

 ESC 키를 입력할 때 까지 커서가 위치한 부분의 오른쪽부터 텍스트를 대체하여 입력합니다. 기존에 있던 내용은 삭제됩니다. 

C

 텍스트를 입력 후 ESC 키를 입력할 대 까지 커서가 위치한 부분으로부터 줄의 끝 부분까지 삭제되고 입력한 텍스트로 대체됩니다. 

s

 커서가 위치한 부분의 글자를 삭제한 후 입력합니다. 

x

 커서가 위치한 부분의 글자를 삭제합니다. 

dw

 커서가 위치한 부분부터 한 단어를 삭제합니다. 

dd

 커서가 위치한 줄을 삭제합니다. 

D

 커서가 위치한 부분부터 해당 줄의 끝부분까지 삭제합니다. 

:n,nd

 n번째 줄부터 n번째 줄까지 삭제합니다. 


 경험상 dd와 x를 자주 이용해요.


 여기서 R과 C가 설명이 조금 헷갈릴 수 있을 것 같아 화면으로 준비했습니다.


 먼저 R 입니다.


 R은 한마디로 한글에서 insert 키를 눌러 수정 상태가 되었다고 보면 돼요.



 이렇게 line위를 바로 덮어 쓸 수 있답니다.


 다음은 C 입니다.


 C도 R과 비슷한데 커서 뒤의 줄을 전부 삭제 후 입력해주는 명령어입니다.


 아래 화면에서 확인하실 수 있습니다.



 다음은 수정과 관련된 명령어입니다.


명령어

기능 

cw

 커서가 위치한 부분의 단어 끝까지 변경하여 덮어쓰기 합니다. 

r

 커서가 위치한 부분의 글자 하나를 대체합니다. 

J

 커서가 위치한 부분의 아랫줄의 내용을 커서가 위치한 줄로 이동시킵니다. 

xp

 커서가 위치한 부분의 글자와 오른쪽의 글자의 위치를 변경합니다. 

~

 커서가 위치한 부분의 글자의 대소문자를 변경합니다. 

u

 명령어 실행 전으로 되돌립니다. 

U

 커서가 위치한 줄의 모든 변경사항을 변경이전으로 되돌립니다. 

.

 바로 전에 입력한 명령어를 재실행합니다. 


 자주 쓰이는 명령어는 r, u정도 되겠습니다.


 vi에 익숙하지 못한 사용자는 자주 Ctrl + Z 로 되돌아가려고 할텐데요.


 그때마다 화면이 이상하게 개지기 마련입니다.


 u라는 명령어는 Ctrl + Z와 같은 기능이므로 꼭 기억해주세요! 


 다음은 커멘드 모드에서 패턴을 검색하고 변환하는 명령어입니다.


명령어 

기능 

/string

 현재 화면에서 다음 화면 순으로 단어를 검색합니다. 

?string

 현재 화면에서 이전 화면 순으로 단어를 검색합니다. 

n

 단어를 검색한 상태에서 다음 검색 결과를 확인합니다. 

N

 단어를 검색한 상태에서 이진 검색 결과를 확인합니다. 

:%s/(바꿀 단어)/(새 단어)/g

 찾아 바꾸기 입니다. 


 이 중에서 맨 마지막 찾아 바꾸기에 대해 조금 더 알아보도록할게요.


 만약 line을 line/jul로 바꾸고 싶다면


 :%s/line/line/jul/g 일까요?


 정답은 밑에서 확인해보도록 하겠습니다.



 글씨가 깨져 잘 안보이기 때문에 다시 써드리면


 :%s/line/line\/jul/g 입니다.


 C언어에서 특수문자를 출력하고 싶을 때와 상황을 같게 생각하시면 됩니다.


 \라는 문자를 사용하면 그 뒤 문자는 특수 행동을 하지 않습니다.


 아래는 변환 결과 출력 화면입니다.



 다음은 복사 및 붙여넣기 명령이입니다.


 마우스로 클릭이 되지 않다보니 상당히 불편한데요.


 리눅스에서는 보통 줄 단위로 복사를 하게 됩니다.


명령어 

기능 

yy

 한 줄을 복사하여 임시 버퍼 공간에 저장합니다. 

p

 임시 버퍼 공간에 저장된 텍스트를 커서의 아랫줄에 붙여 넣습니다. 

P

 임시 버퍼 공간에 저장된 텍스트를 커서의 윗줄에 붙여 넣습니다. 

:n,n co n

 n번째 줄부터 n번째 줄까지 복사하여 n번째 줄의 아래에 붙여 넣습니다. 

:n,n m n

 n번째 줄부터 n번째 줄까지 잘라내어 n번째 줄의 아래에 붙여 넣습니다. 


 다음은 라스트 라인 모드에서 저장 및 종료하는 명령어입니다.


명령어 

기능 

:w

 수정한 파일을 저장합니다. 

:w (파일명)

 수정한 파일을 다른 이름으로 저장합니다. 

:wq

 수정한 파일을 저장 후 종료합니다. 

:x

 수정한 파일을 디스크에 저장한 후 종료합니다. 

ZZ

 수정한 파일을 디스크에 저장한 후 종료합니다. 

:q!

 수정한 파일을 저장하지 않고 종료합니다. 


 전부 많이 쓰이는 명령어이므로 잘 외워두세요!


 마지막으로 환경 변수 활성화 및 비활성화 명령어입니다.


 라스트 라인 모드에서 실행할 수 있습니다.



먼저 가장 잘 쓰이는 :set nu 입니다.



 화면에 줄 번호를 출력해줍니다.


 매우 편리한 기능이에요!


 다음은 :set list 입니다.



 이 기능은 아래 화면처럼 숨겨진 기호를 표시해줍니다.


 줄의 끝이나 tab 등을 표시해줍니다.



 다음은 :set showmode 입니다.


 이 명령어는 초기에 미리 설정되어 있습니다.


 아까 위에서 보신 에디트 모드로 들어갔을 때 하단에 INSERT가 보이는 것이 이 때문입니다.



 반대로 :set noshowmode를 해주시면 없앨 수 있어요.


 전 아직 왜 없애는 기능이 있는 지 모르겠습니다.


 저 표시가 있어야만 안심하고 vi를 쓸 수 있다고 믿고 있답니다.



 중요한 명령어만 살펴보았지만 표로 한 번 더 정리해보았습니다.


명령어 

기능 

:set nu

 화면에 줄 번호를 출력합니다.

:set nonu

 화면에 줄 번호를 숨깁니다. 

:set ic

 검색시 대소문자를 구분하지 않습니다. 

:set noic

 검색시 대소문자를 구분합니다. 

:set list

 숨겨진 기호들을 표시합니다. 

:set nolist

 숨겨진 기호들을 표시하지 않습니다.

:set showmode

 vi 편집기의 현재 모드를 표시합니다. 

:set noshowmode

 vi 편집기의 현재 모드를 표시하지 않습니다. 

:set

 vi 편집기의 모든 환경변수를 출력합니다. 

:set all

 vi 편집기의 모든 환경변수를 활성화합니다. 




 여기까지 vi 편집기 명령어에 대한 포스팅이었습니다.


 이 외에도 많은 명령어가 있지만 이정도만 알아두셔도 vi 편집기를 사용하시는 데는 충분할거에요!


 저는 다음에 또 다른 포스팅으로 찾아뵙겠습니다. 

AND

 안녕하세요.


 오늘의 포스팅은 파일 및 디렉토리를 검색하는 방법에 대한 것입니다.


 찾는 파일 및 디렉토리가 어디에 있든 명령어만 확실히 알고 있다면 찾을 수 있답니다.


 그럼 포스팅을 시작하도록 할게요! 



 첫번째 명령어는 grep 입니다.


 어원은 유닉스 ed의 비슷한 기능을 수행하는 g/re/p에서 유래되었다고 합니다.


 global / regular expression / print 에서 각각의 머릿글자를 따 온 것이며 이것은 ed 텍스트 편집기에서 쓰이는 연속적인 지시어라고 하네요. 


 사용법은 grep (옵션) (패턴) (파일명 및 디렉토리명) 입니다.


 위 실습을 보면 /etc/passwd 안에서 root라는 패턴을 찾는 경우입니다.


 이 grep 명령어는 다양한 옵션이 있는데 지금부터 알아보도록 하겠습니다.



 첫번째는 -n입니다.


 이 명령어는 찾은 패턴이 몇번째 줄에 있나 그 라인도 출력해주는 명령어입니다.


 나중에 직접가서 찾기 편하겠죠?



 다음은 -v입니다.


 이것은 검색 패턴을 제외하고 검색하는 명령어에요.


 쓸일이 딱히 없어 보이지만 처음에 검색한 상황에서 무언가를 제외하고 싶을 때 사용하면 상당히 유용하답니다.



 다음은 -l입니다.


 이것은 해당 패턴 라인을 출력해주는 것이 아닌 매칭되는 패턴이 있는 파일 이름을 출력해주는 명령어입니다.


 어디에 내가 원하는 것이 있는 지 찾아보기 편리한 명령어입니다.



 다음은 -c입니다.


 검색 패턴과 매칭된 라인 개수를 출력해주는 명령어입니다.


 너무 많은 검색 결과가 나왔을 때 그 라인 수를 세기에 적합하군요.



 다음은 -w입니다.


 -w를 사용하게 되면 순수 그 단어만 찾게 됩니다.


 예를 들어 위의 실습에서 sh에 관한 패턴을 찾았는데요.


 보시면 bash, shutdown, sshd가 검색되었는데, -w 명령어를 사용하게 되면 이들은 검색되지 않습니다.


 왜냐하면 순전히 sh로만 되어있는 문자열을 검색하기 때문이죠!


 꽤 많은 명령어를 봤기 때문에 표로 한번 정리하고 넘어가볼까요? 


옵션 

설명

-i 

 검색 패턴 대소문자 무시 

-l 

 매칭되는 패턴이 잇는 파일 이름 출력 

-n 

 매칭되는 줄 번호 표시 

-v 

 검색 패턴을 제외하고 검색 

-c 

 검색 패턴과 매칭되는 줄 개수 출력 

-w 

 해당 패턴만 검색 


 그리고 정규표현식을 이용해 패턴을 검색할 수도 있습니다.


 익숙해지기만 하면 굉장히 편리한 표현입니다.


 사실 이 표현을 모른다면 검색 명령어를 쓰기 어렵습니다.


 표로 함께 이해해보겠습니다.

 

메타 문자 

용도 

예제 

결과 

^ 

 줄의 시작 지정 

 ^solaris 

 solaris로 시작하는 줄 

$ 

 줄의 마지막 지정

 solaris$ 

 solaris로 끝나는 줄 

. 

 한 문자 대치

 s...s 

 s로 시작하고, 5개의 아무문자 후, s로 끝남 

* 

 아무것도 없거나 여러 문자 대치 

 [a-z]* 

 소문자로 시작하는 모든 문자 도는 아무것도 없음 

[] 

 패턴 중 한 문자 대치

 [Ss}olaris 

 Solaris 또는 solaris 

[^] 

 패턴 중 제외할 한 문자

 [^a-r]olaris 

 첫 문자가 a에서 r까지 제외하고 s에서 z까지 오는 문자 


 헷갈리신다면 더 자주보고 계속 사용해 익숙해지는 방법밖에 없습니다.



 다음은 egrep입니다.


 기본적으로 grep 명령어와 사용법이 같구요.


 다른 점은 grep 명령어의 기능에 추가로 확장 정규 표현식을 지원한다는 것입니다.


메타 문자 

용도 

예제 

결과 

+ 

 특정 문자 앞에 하나 이상의 문자 있음 

 [a-z]+tion 

 tion 문자 앞에 소문자의 문자 있음 

x|y 

 x 또는 y

 root|admin 

 root 또는 admin 

(abc|def) 

 abc 또는 def (문자열)

 Ha(ve|ing) 

 Have 또는 Having 


 위의 표 메타 문자 정도가 더 추가되었습니다.


 위의 실습에서는 b(a|o)를 사용했기 때문에 ba가 포함되는 혹은 bo가 포함되는 단어가 검색되신 것을 볼 수 있습니다.


 다음은 fgrep입니다.


 이 명령어는 위의 정규표현식 문자를 정규표현식이 아닌 문자 그대로 인식하는 명령어입니다.


 파일 및 디렉토리의 내용에 정규표현식의 문자 패턴을 검색할 때 사용합니다.


 다른 특이점은 없습니다. 



 마지막으로 find 명령어입니다.


 단어 그대로 무언가를 찾을 때 쓰는 find입니다.


 사용법은 find (경로) (조건) (동작) 입니다.


 경로는 검색을 시작할 경로를 지정해줍니다.


 조건은 검색 조건을 지정해주고, 동작은 파일 검색 후 동작을 지정하는 역할을 합니다.


 위의 실습은 root 디렉토리에서 파일이름이 hosts인 파일을 찾는 예시입니다.


 find 명령어의 조건을 표로 정리해보았습니다.

 

조건 

설명 

-name 

 특정 파일 이름 지정 

-type 

 검색할 파일 종류 지정 

-perm 

 특정 권한을 가진 파일 검색 

-user

 특정 사용자가 소유한 파일 검색 

-size [+|-]n 

 파일의 특정 크기 검색 

-atime [+|-]n 

 파일에 접근한 시간 검색 

-mtime [+|-]n 

 파일을 수정한 시간 검색 


 몇가지 참고하실 점을 말씀드리면 특정 파일 이름을 지정시에 당연히 메타문자는 사용 가능합니다.


 그리고 검색할 파일 종류는 d의 경우 directory, f의 경우 file입니다.


 여러 형식을 사용할 수 잇습니다.


 다음은 동작입니다.


 동작

설명

-print 

 터미널에 검색한 파일의 경로와 이름을 표시 

-ls 

 터미널에 검색한 파일의 경로와 이름뿐만 아니라 자세한 정보 표시 

-exec command {} \; 

 검색한 파일에 특정 명령 수행 

-ok command {} \; 

 -exec 결과와 비슷하나, 특정 명령을 대화형으로 진행 




 여기까지 파일 및 디렉토리 검색 방법에 대한 포스팅이었습니다.


 간단한듯 암기해야할 부분이 상당히 많은 부분입니다.


 특히 정규표현식 메타문자는 쉽게 익숙해지지 않는 부분입니다.


 하지만 몇 번 사용해보고 반복적으로 학습하신다면 금새 익숙해진 자신을 볼 수 있을거에요.


 다음 포스팅에서 또 만나도록 해요. 

AND

 안녕하세요.


 이번 포스팅은 하드링크와 심볼릭링크입니다.


 리눅스하면 빼놓을 수 없는 핵심 개념이죠!


 이 포스팅은 많이 길지는 않을거에요!


 우선 간단히 설명하겠습니다. 


 하드링크든 심볼릭링크든 둘 다 링크입니다.


 단어에서 오는 느낌을 그대로 받는 것이 가장 좋다고 생각하는데요.


 앞선 실습에서는 파일을 복사했었는데 이 개념과는 다릅니다.


 복사되는 순간 두개의 파일은 서로 다른 것이 되는거지만 링크의 경우 하나를 변경하면 다른 하나의 내용도 똑같이 변경되는 거에요.


 먼저 하드링크를 살펴보겟습니다.


 이 하드 링크는 특정 파일이 디스크에 저장되어 있는 위치가 동일한 곳을 가리키고 있는 포인터예요.


 이 링크의 장점은 실제 위치를 똑같이 가리키고 있기 때문에 많은 링크를 만들어도 용량이 더 늘어나지는 않아요.

 


 실습을 위해 fileA를 생성하겠습니다.


 그리고 하드링크를 만들어줄건데요.


 하드링크를 만드는 명령어와 사용법은 ln (하드링크 만든 파일명) (하드링크) 입니다.


 ln은 link의 약자에요!


 하드링크가 된 후는 파일의 색이 바뀐 것을 보실 수 있습니다.


 좀 더 자세히 살펴볼게요.



 여기서 ls에 -i라는 명령어는 inode를 출력해주는 것으로 하드링크 된 파일을 살펴보면 72019830으로 두개의 노드가 서로같은 것을 볼 수 있습니다.


 이처럼 하드 링크는 링크 파일을 많이 만들어도 전부 똑같은 inode를 가지게 돼요.


 다음은 심볼릭 링크입니다.


 이 링크는 쉽게 윈도우의 바로가기를 상상하시면 이해하기 쉽습니다. 


 특정 파일 및 디렉토리를 가리키고 있는 포인터예요!



 심볼링 링크는 좀 전의 하드 링크를 만드는 명령어에 -s를 추가해주시면 돼요.


 ls명령어로 확인을 해보면 링크를 하고 있는 파일을 가리키는 화살표 표시가 보일거에요.


이번에는 inode가 서로 다른 것을 확인할 수 있습니다.



 

 여기까지 하드 링크와 심볼릭 링크에 대해 알아보았습니다.


 다음에 또 다른 내용으로 찾아뵙겠습니다. 

AND

 안녕하세요!


 오늘의 포스팅은 바로 디렉토리 및 파일 내용 변경하기 입니다!


 언제나 그렇듯! 제목이 곧 내용이죠! 하하. 


 이름은 거창하지만 오늘의 내용은 파일이나 디렉토리를 만들고 옮기는 것에 대한 것입니다.


 바로 시작해볼게요!


 먼저 저번에 배운 ls 명령어로 현재 계층에 무엇이 있는 지 알아보겠습니다.


 이번 실습은 새로운 파일과 디렉토리를 만들어주고 계속 확인해 볼 것이기 때문입니다.

 


 원래 있었던 파일들 말고 별 다른 파일은 없군요.


 그럼 파일을 하나 새로 만들어 줍시다.



 파일을 생성하는 명령어 touch 입니다.


 사용법은 touch (파일명) 이에요!


 파일을 생성해주고 ls 명령어로 확인을 해주면 내가 만든 파일이 생긴 것을 볼 수 있습니다.


 이 명령어는 빈 파일을 만들어주는 것이기 때문에 현재 fileA라는 파일안에는 그 무엇도 없습니다.



 다음은 파일을 복사하는 명령어 입니다.

 

 cp라는 명령어고, 사용법은 cp (복사할 파일명) (복사될 파일명) 입니다.


 cp는 copy의 약자입니다.


 마찬가지로 ls 명령어로 확인을 해주게 되면 fileAA가 생성된 것을 보실 수 있습니다.


 말씀드렸듯이 이번 실습에서 ls 명령어는 필수입니다.


 파일이나 디렉토리가 제대로 만들어졌는 지 확인을 해야 알 수 있잖아요? 



 다음은 디렉토리를 만들어 주는 명령어입니다.


 mkdir로 사용법은 mkdir (디렉토리 명)입니다.


 눈치채셨겠지만 mkdir은 make directory의 약자입니다.


 매번 약자를 설명하는 이유는 개인적으로 무작정 암기한 것 보다 이해하고 암기한 것인 더 오래 기억에 남기 때문입니다. 


 약자는 꼭 알아야되는 부분은 아닙니다.


 하지만 알아두면 분명 유용할거라고 생각해요.

 


 이 mkdir을 이용해 계층이 있도록 디렉토리를 한번에 여러개 만들어 주실 수 있습니다.


 위의 화면으로 설명을 드리겠습니다.


 dirB 디렉토리도 원래 없었고, 그 밑에 dirBB 디렉토리도 원래 없었습니다.


 그럴 경우 mkdir dirB후, mkdir dirB/dirBB 혹은 mkdir dirB후, cd dirB하시고, mkdir dirBB해주시지 않고,


 한번에 mkdir -p dirB/dirBB를 해주시면 됩니다.


-p라는 옵션을 꼭 붙혀주셔야 계층적으로 디렉토리를 한번에 만들 수 있답니다.



 ls -l이라는 명령어로 확인을 해보면 자세한 설명이 나오는데요.


 차이점이 느껴지시나요?


 파일은 검정글씨지만 디렉토리는 파랑글씨에요.


 그것 외에도 맨 앞을 보시면 일반 파일은 -인 반면에 디렉토리는 d라고 되어있어요.


 두가지 방법으로 파일 및 디렉토리를 구별할 수 있습니다.



 잠깐 다시 cp 명령어로 돌아와보겠습니다.


 이 cp 명령어는 현재 디렉토리가 아닌 다른 디렉토리에도 파일을 복사할 수 있습니다.


 위의 화면은 fileA 파일을 dirA 디렉토리에 복사하는 과정입니다.


 cd로 디렉토리를 변경하고, ls 명령어로 확인해보시면 fileA 파일이 생성되어 있음을 볼 수 있습니다.

 


 여러개의 파일을 동시에 복사할 수도 있는데요.


 fileB를 만들어 준 후 cp fileA fileB dirA라고 해주시면 fileA와 fileB를 dirA로 복사한다는 의미입니다.


 두개 이상의 파일도 가능합니다.


 위의 화면에서는 중간에 overwrite를 물어보는 데, 덮어쓸것이냐는 물음이에요.


 맨 처음에 fileA를 dirA에 넣어놨기 때문입니다.


 걱정하지 않으셔도 돼요!



 cp 명령어로는 파일뿐만아니라 디렉토리도 복사할 수 있습니다.


 디렉토리를 복사한다는 것은 그 디렉토리 내부의 모든 것을 복사한다는 겁니다.


 윈도우랑 똑같아요!


 실습을 위해 dirB 디렉토리를 만들어줍니다.


 복사 방법은 파일과 동일합니다.


 하지만 다른 점이 하나 있다면 -r 이라는 명령어를 추가한다는 점인데요.


 복사할 디렉토리가 아무것도 가지고 있지않다면 딱히 필요한 명령어는 아닙니다.


 하지만 하나라도 무언가를 가지고 있다면 디렉토리는 복사되지 않아요.


 그때 -r 을 추가해주시면 무조건 복사가 됩니다.



 다음은 복사가 아닌 파일 및 디렉토리를 옮기는 명령어인 mv입니다.


 move의 약자고, 사용법은 mv (옵션) (옮길 파일) (위치) 입니다.


 위의 화면은 fileA 파일은 dirB 디렉토리로 옮기는 것입니다.


 확인해보시면 제대로 이동된 것을 알 수 있어요.


 이동이기 때문에 cp와 다르게 당연히 전에 있던 곳에는 파일이 없어요!



 마찬가지로 디렉토리 역시 옮길 수 있습니다.


 방법은 똑같아요!


 디렉토리 역시 전에 있던 곳에는 디렉토리가 없어집니다.



그리고 mv 명령어의 독특한 부분이 있는데요.


그것은 바로, 파일이나 디렉토리를 옮기면서 이름을 바꿀 수 있다는 점입니다.


 위의 화면을 보시면 fileAA를 dirB 디렉토리로 이동시키며 파일의 이름을 fileAAA로 바꿔준 것입니다.



 다음은 삭제 명령어 rm 입니다.


 사용법은 rm (옵션) (삭제할 파일)이며, remove의 약자입니다.


 명령어를 사용해보시면 정말 지울 것인지 한번 물어본답니다.


 윈도우에서도 정말 지울 것이냐고 한번 더 물어보는 것과 똑같아요.



 마찬가지로 디렉토리 또한 지워집니다.


 디렉토리 내부의 모든 것을 지우는 것이기 때문에 모든 파일 혹은 디렉토리에 대해서 일일이 지울 것인지 말것인지를 물어봐요.


 디렉토리를 지우는 명령어는 또 다른 하나 rmdir이 있는데요.


 이 명령어는 디렉토리 밑에 무언가 있으면 절대 지울 수가 없습니다.


 그래서 일부러 설명드리지 않았어요.


 rm이 파일도 되고, 디렉토리도 되기 때문에 더 편하답니다.




 여기까지 디렉토리 및 파일 내용 변경에 대한 포스팅이었습니다.


 긴 글 읽어주셔서 감사합니다.


 다음에는 더 알찬 내용으로 돌아오겠습니다. 

AND

 안녕하세요!

 오늘의 포스팅은 디렉토리 및 파일 보기 입니다.


 우선 저번에 설치한 CentOS 7을 실행시켜 줍니다.

 그리고 터미널을 실행하세요!



 앞으로 자주 보게 될 화면이 될거에요.


 혹시 실습 도중에 이상이 발생할 수 있으니 test 계정에서 root 계정으로 이동해줍니다.



 su - 는 'switch user'로 계정을 바꿔주는 명령어입니다.

 실습을 하며 종종 바꿔주게 될텐데요.

 이 점 때문에 제가 설치 과정에서 비밀번호를 간단하게 만드는 것을 추천했던거에요.

 만약 비밀번호를 복잡하게 설정해주면 매번 복잡한 암호를 입력해야하는데 여간 불편한 점이 아닐겁니다... 장담해요...


 자, 그럼 지금부터 간단한 실습을 진행해보며 명령어들을 살펴볼게요! 


 먼저 pwd 입니다.



 pwd는 print working directiory의 약자로 현재 디렉토리를 출력해주는 명령어입니다.


 지금 실습 상태에서는 /root 디렉토리에 있다는 것을 보여주고 있네요!

 현재 있는 위치가 어디인지 알고 싶을 때 사용하는 명령어입니다.


 다음은 ls입니다.



 ls는 list의 약자로 현재 디렉토리의 내용을 확인하는 명령어입니다.


 이곳에서는 두 개의 파일이 있네요.

 참고로 anaconda파일은 리눅스 설치에 필요했던 파일입니다.


 파일이 너무 조금 밖에 없었으므로 좀 더 사용해보기 위해 cd 명령어를 사용해보겟습니다.



 cd 명령어는 change directory의 약자로 디렉토리를 변경하는 명령어입니다.


 /는 root를 의미하므로 cd /는 현재 디렉토리에서 /로 디렉토리를 변경한다는 뜻입니다.


 다음 실습을 진행하기 전에 현재 디렉토리를 한번 다시 확인해봅니다.



 디렉토리 위치가 cd 명령어로 변경된 것을 확인할 수 있죠?


 그럼, 계속해서 실습을 진행하겠습니다.


 root 디렉토리로 이동해 다시 ls 명령어를 실행하면 굉장히 다양한 파일들이 보입니다.


 그리고 ls 명령어에는 다양한 옵션이 존재하는데요.



 ls -l은 디렉토리의 내용을 자세히 살펴보는 것입니다.


 무엇이 자세히 보이나 살펴 봅시다 



 맨 앞의 l은 파일 종류를 의미하고,

 그 다음의 rwxrwxrwx는 파일의 권한을 나타냅니다.


 1은 생성되어 있는 하드 링크의 갯수를 의미하고,

 첫번째 root는 소유자, 두번째 root는 그룹을 나타냅니다.


 7은 파일의 크기를 나타내고,

 7월 18 09:00은 해당 파일에 대한 마지막 접근 날짜를 의미하며,

 마지막 bin -> usr/bin은 파일의 이름입니다.


 리눅스 초보라면 생소한 단어들이 많을 거에요.

 한 포스팅에서 너무 많은 내용을 알려주면 분명 헷갈릴거에요.


 이번에 설명하지 않고 넘어간 부분은 다른 [리눅스] 카테고리에서 반드시 설명할거에요!

 지금 당장 모른다고 너무 걱정하지 않으셔도 돼요! 

 

 만약 이 명령어를 아래 화면처럼 하나의 디렉토리를 지정해서 사용한다면 그 디렉토리에 관한 내용만 나온답니다.



 ls -a라는 명령어는 숨겨져 있는 디렉토리 및 파일을 보여주는 명령어입니다.


 ls만 입력했을 때 보다 조금 더 많아져 있는 것을 보실 수 있을 겁니다.

 항상 그런 것은 아니고, 당연히 숨긴 디렉토리 및 파일이 있을 경우에만 입니다.

 이것은 당연하겠죠!? 



 그리고 ls -A는 숨긴 디렉토리 및 파일 중 .과 ..을 제외하고 보여주는 명령어입니다.

 .은 현재 디렉토리, ..은 상위 디렉토리를 의미합니다.



 -ls -R은 디렉토리 내부를 보여주면서 범위 내의 하위 목록까지 모두 보여주는 명령어입니다.


 하위 구조가 어떻게 생겼는 지 파악해보고 싶을 때 사용하면 유용하답니다.


 아래 실습에서는 하위 구조를 보기 위해 home 디렉토리로 이동하고 명령어를 사용하였습니다.


 root 디렉토리 밑에서 사용한다는 것은 현재 리눅스의 모든 파일 및 디렉토리를 보겠다는 것이 되므로 시간도 오래걸릴 뿐더러 너무 복잡해요! 



 다음은 ls -F 명령어입니다.


 파일의 종류를 알수 있는 명령어입니다.


 파일 뒤의 기호로 그 종류를 판별할 수 있습니다.


 기호

파일 종류 

 디렉토리 파일 

 실행 파일 

(none) 

 텍스트 / ASCII 파일 

 심볼릭 링크 파일 

 소켓 파일 


 root 디렉토리의 내용을 확인해보기 위해 전 디렉토리로 이동했습니다.


 cd -는 현재 디렉토리로 오기 전의 디렉토리로 이동해주는 명령어입니다.


알아두고 있으면 굉장히 유용해요.



 다음은 file 명령어인데요.


 특정파일이 어떤 종류의 파일인지 확인하고 싶을 경우에 사용합니다.


 아래 화면에서 볼 수 있듯이 어떤 종류인지 확실히 알 수 있습니다.



 다음은 cat 명령어입니다.

 concatenate의 약자로 {사슬같이 잇다, 연쇄시키다}라는 뜻이 있는 단어입니다.


 사용법은 cat (파일이름) 입니다.


 이 명령어는 텍스트 파일을 화면으로 출력해주는 것입니다.

 

 모든 내용이 한번에 전부 출력되기 때문에 파일의 내용이 길다면 명령어의 실행이 끝났을 때 보이는 것은 파일의 맨 뒷부분이됩니다.



 그 단점을 보완한 것이 more라는 명령어 입니다.


 사용법은 more (파일이름) 입니다.


 cat과 같이 텍스트 파일을 볼 수 있게되지만 페이지 단위로 보여주게 되어 사용자가 마음데로 오가며 볼 수 있게 해줍니다.


 다음과 같은 키로 자유로이 여행? 할 수 있게 됩니다.


 스크롤 키

설명 

스페이스 

 다음 페이지 표시 

엔터 

 다음 줄 표시 

b 

 이전 페이지 표시 

/패턴 

 특정 문자열 패턴을 검색(내림차순) 

n 

 패턴 검색 후, 다음 패턴을 검색 

q

 명령어 종료 



 다음은 head 명령어입니다.


 사용법은 head [-n] (파일이름) 입니다. (n에는 숫자를 넣어주시면 돼요!)


 앞에서부터 원하는 라인까지의 페이지 내용을 확인할 수 있는 명령어입니다.



 다음은 head의 반대 경우인 tail입니다.


 사용법은 역시 tail [-n] (파일이름) 입니다.


 예상하셨겠지만 해당 파일의 뒷부분에서부터 위로 올라가며 원하는 라인까지 보여주는 명령어입니다.


 head보다 쓸모 없다고 생각할지도 모르겠지만 웹 로그를 저장해두는 파일의 경우 그 끝 부분은 가장 최근 기록이 되기 때문에 head보다 훨씬 자주 사용된답니다. 



 오늘의 마지막 명령어는 wc입니다.


 word count의 약자로 파일의 줄, 단어, 문자수를 확인할 수 있는 명령어입니다.


 사용법은 wc (옵션) (파일이름) 입니다.


 옵션

설명 

-l 

 줄 개수 

-w 

 단어 개수 

-c 

 바이트 개수 

-m 

 문자 개수 



 위의 예시에서 157은 라인수를, 551은 단어수를, 3108은 문자의 개수를 나타내줍니다.


 단독으로 쓰이는 경우는 거의 없으며 다른 명령어들과 연계해서 쓰인답니다.


 예를 들어서 현재 디렉토리의 파일들을 모두 출력해준 것을 한 파일에 저장하고 그 파일에 wc 명령어를 사용하면 그 디렉토리의 파일이 몇개인지 알 수 있는 것으로 응용할 수 있습니다.



 제 실습 예시들을 보시면 매번 명령어가 위에서 부터 시작됨을 확인하실 수 있을텐데요.


 그것은 바로 clear라는 명령어 덕분입니다.



 clear 명령을 사용하게 되면 위 화면에서 아래 화면처럼 깨끗이 지워집니다.


 완전히 지워진 것은 아니고 눈치채셨을 수도 있지만 스크롤을 위로 올리면 좀 전의 화면이 다시 보인답니다.

 


 저는 실습 화면을 깨끗이 유지해주기 위해 사용했지만 여러분들은 실습을 따라하시면서는 사용할 필요는 없습니다.


 정신이 정말 사납다 싶을때만 사용해주시면 돼요!


 그리고 추가적으로! 하나 더 좋은 것을 알려드리면 파일의 경로나 파일명을 입력하실 때 도중에 tab키를 한번 눌러보세요.


 존재하는 경로 및 파일이 있다면 순식간에 완성된답니다.



 길고긴 sshd_config지만 tab키로 단번에 완성할 수 있습니다.



 이 tab키는 리눅스를 하실 때 꾸준히 사용해주시는 게 좋습니다.


 경로나 파일을 찾고 이동하며 에러가 나는 경우가 상당히 많은데요.


 그럴때마다 ls같은 명령어로 일일이 확인하시는 것 보다 tab키로 경로 및 파일의 존재를 확인해주는 편이 훨씬 빠르고 쉽답니다!




 여기까지 오늘의 포스팅이었습니다.

 좀 중구난방으로 설명이 된 것 같은데, 다음 번 포스팅 때는 좀 더 간결하고 알아보기 쉽게 찾아오겠습니다! 


AND

 오늘은 유닉스의 특징에 대해 포스팅을 해보겠습니다. 


 보통의 사용자들이 쓰는 OS는 리눅스일텐데요.

 유닉스는 이 리눅스의 기반이 된 운영체제입니다.


 이 유닉스의 특징은 크게 다섯가지가 있습니다.


 첫째. 높은 이식성과 확장성입니다.


 현존하는 운영체제 중 가장 이식성이 높은 운영체제이며, SPARC, ALPHA, Power PC는 물론 x86과 APM 계열의 시스템에서도 이식이 용이합니다.

 그리고 서버에서 사용되는 CPU 뿐 아니라 임베디드 시스템 등에서도 널리 사용되고 있습니다.


 둘째. 안정성과 신뢰성입니다.


 오랜 기간 발전해 오면서 그 안정성을 인정받고, 위협으로 부터 대응하기 위해 업계 표준의 다양한 보안 기능을 탑재하고 있습니다.


 셋째. 다중 사용자 지원입니다.


 동시에 여러 사람이 동일 시스템에 접속하여 사용할 수 있고, 보통 네트워크를 통해 접속합니다.


 넷째. 다중 작업 지원입니다.


 한 시스템 내에서 동시에 여러 가지 프로그램을 구동할 수 있습니다.


 다섯째. 계층적 파일시스템입니다.


 파일시스템이 계층적 구조로 개발되어 파일을 체계적으로 관리 할 수 있습니다.



 윈도우와 겹치는 내용들도 있지만 유닉스만의 분명한 장점도 보이네요. 


 마지막으로 혹시 궁금할지도 모를 우리가 사용하는 리눅스와 유닉스의 차이점을 보며 포스팅을 끝마치도록 할게요.


 먼저 유닉스는 유료이며 OS의 사이즈가 커 무겁습니다.

 리눅스 또한 일부는 유료지만 무료 버전이 많고, OS의 사이즈가 작아 가볍습니다.
 하지만 리눅스는 아직 개발되는 부분들이 있기 때문에 버전이 모두 다르다는 단점이 있기도 합니다.
 
 무엇보다도 처음 사용자가 리눅스를 택하는 가장 큰 이유는 무료 버전이기 때문일 것 같다는 생각을 해봅니다.



 여기까지 간단한 포스팅이었습니다. 


AND

ARTICLE CATEGORY

전체 (115)
블로그 소개 (1)
KITRI 교육 (95)
보안 지식 창고 (16)
[설치] (1)
[리눅스] (10)
[패킷 트레이서] (1)
[Wireshark] (1)
[네트워크 해킹] (1)
[기타] (2)
한 잔의 여유 (2)

RECENT ARTICLE

RECENT COMMENT

RECENT TRACKBACK

CALENDAR

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

ARCHIVE