Time for Security

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

'리눅스'에 해당되는 글 17건

  1. 2017.08.07
    2017.08.04 교육 17일차 - firewalld
  2. 2017.08.07
    2017.08.03 교육 16일차 - 마스터 서버 & 슬레이브 서버
  3. 2017.08.01
    2017.08.01 교육 14일차 - FTP 및 NFS
  4. 2017.07.31
    [리눅스] vi 옵션 설정 2
  5. 2017.07.31
    2017.07.31 교육 13일차 - 리눅스 기본 설정
  6. 2017.07.30
    [리눅스] 디렉토리 구조
  7. 2017.07.29
    [리눅스] /etc/passwd 및 /etc/shadow 파일
  8. 2017.07.26
    [리눅스] vi 편집기
  9. 2017.07.25
    2017.07.25 교육 09일차 - 디렉토리 구조 및 확장 권한
  10. 2017.07.25
    [리눅스] 파일 및 디렉토리 검색

 이번 교육 일차도 뒤로 밀리게 되었네요...


 블로그를 시작한 지 며칠 되지 않았는데... 벌써 부터...


 좀 더 관심과 책임감을 가지고 활동해야겠습니다. 


 이 날은 firewalld에 대해 학습했습니다.


 firewalld는 CentOS 7부터 사용되는 방화벽 설정 데몬입니다.


 기존에는 iptables를 이용했다면 이제부터는 firewalld로 바뀌었습니다.


 이 외에도 룰을 설정하는 다양한 옵션들이 있는데, 길이가 상당히 길고, 복잡하기 때문에 계속 반복 학습하지 않는 이상 손에 금방 익힐 수는 없을 것 같습니다.


 Snort와 Suricata같은 IDS 및 IPS도 같이 살펴보았는데요.


 Suricata보다는 Snort의 규칙이 조금 더 복잡했습니다.


 오늘을 끝으로 리눅스에 관한 수업은 일단락된 것 같습니다.


 다음주 부터는 윈도우에 관한 수업을 진행하게 될 것 같습니다.


 리눅스 부분은 혼자 공부를 하며 좀 더 다듬어봐야 될 것 같습니다. 

AND

 요즘 너무 피곤한 관계로 제대로 날짜를 못 맞췄네요...


 역시 여름은 여름인가 봅니다. 


 8월 3일에는 마스터와 슬레이브 서버 구축에 대해 배웠습니다.


 아, 그리고 이번주는 제가 책에 대한 언급이 따로 없었었는데, 강사님께서 실전처럼 알려주셔서 그랬을 뿐 진도가 나가고 있는 책이 있었습니다.


 그 책은 바로 이 책입니다.



 지난 책들보다 훨씬 더 심화된 내용을 담고 있는 책입니다. 



 자세히 보시면 화요일부터 실습했던 내용들이 포함되어 있습니다.


 앞으로는 좀 더 주의깊게 교재를 살펴봐야겠습니다.


 강의 시간에 마스터 서버는 함께 구축해보고 슬레이브 서버는 각자 구축해보는 시간을 가졌었습니다.


 이리 헤매고, 저리 헤매며 조금 더 이해를 도울 수 있었던 시간이었던 것 같습니다.

AND

 오늘에서야 드디어 교육일수로 2주가 되는 날입니다.


 교육 생활에는 이제 어느정도 적응이 된 것 같아 한결 편합니다.


 적응이 익숙함이되고, 그 익숙함이 나태함이 되지 않도록 노력해야겠다 다짐하며 하루를 시작하였습니다. 


 오늘은 FTP와 NFS에 대해 배웠습니다.


 항상 이 분야를 공부하며 드는 생각이지만 통신, 그리고 네트워크와 관련된 부분의 이론과 실습은 정말 어려운 것 같습니다.


 네트워크 부분만 제외된다면 몇 배는 쉬워지겠지만 세상을 둘러보면 이제 네트워크가 포함되지 않은 부분을 찾는 것이 더 어려운 것 같네요.


 이번 강사님은 실습을 직접 토의하고, 토론하게 할 시간을 주어 특별한 강의 시간을 보냈던 것 같습니다.


 다음 시간에도 이처럼 직접 공부해보고, 탐구해볼 시간이 있었으면 좋겠습니다.


 어렵고, 짜증이 나기도 하지만 이러한 수업은 더 기억에 많이 남는 것 같기 때문입니다.


 앞으로 남은 리눅스 강의 동안 실력을 더 갈고 닦고 싶습니다. 

AND

 안녕하세요.


 오늘의 포스팅은 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

 또 다른 한 주가 지나고 새로운 주가 시작되었습니다.


 새로운 주의 시작과 함께 새로운 강사님께서 오셨습니다.


 이번 강사님은 굉장히 유쾌하신 분이셨습니다. 


 덕분에 수업의 분위기가 조금 활발히 변한 것 같았습니다.


 마치 고등학교 교실로 돌아온 듯한 느낌을 받았습니다.


 이번주는 아직 일정상은 저번 교재와 같은 교재를 학습하게 될 것 같습니다.



 바로 이 교재로 말이죠.


 물론, 학습 내용은 그 뒤의 내용입니다.


 이번 강사님은 현재 실무자들을 위주로 교육을 담당하고 계셔서 리눅스에 대한 기본 설정을 더 자세히 배웠습니다.


 저번 강사님들도 알고계셨을 수 있지만 좀 더 실무에 맞게 가르쳐주셨습니다.


 3주째 리눅스를 반복 학습하고 있지만 아직 배울 점이 많은 부분 같습니다. 



▶ 이 블로그의 [리눅스] 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

 안녕하세요!


 이번 포스팅은 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

 햇빛은 쨍쨍, 9일차 교육이 진행되었습니다. 


 학교에서 2학년 때 리눅스를 한 번 듣고, 3학년 때 몇몇 실습을 혼자 진행해 본 양 보다 리눅스 교육을 시작하고 7일째되는 이 시간이 리눅스를 더 많이 공부한 것 같아요.


 그만큼 앉은 자리에서 리눅스만 보고 있답니다.


 띄엄띄엄 보는 것이 아닌 하루에 적어도 8시간을 리눅스만 공부하다보니 자연스레 그 지식 또한 향상되는 것 같아요.


 아직 이렇다할 실력은 늘지 않았지만 전에는 어설프게 알고 있던 지식들이 좀 더 확실히 머리에 박힙니다.


 오늘은 root 디렉토리에서 큰 틀로 어떤 구조로 되어있고, 각각은 어떤 역할인지 살펴보고 확정 권한에 대해 배웠습니다.


 이 두가지 모두 알고있는 내용이긴 하지만 개념이 잘 잡혀있지 않고, 책을 보지 않고는 답할 수 없는 내용이 많은 부분이었습니다.


 오늘 내용은 자격증 시험에도 종종 나오는 부분이기 때문에 굉장히 좋았습니다.


 기초를 더 탄탄히 잡아 리눅스를 확실히 이해하는 순간이 왔으면 하네요.


 다음 시간이 더 기대되는 교육 날이었습니다. 



▶ 이 블로그의 [리눅스] 디렉토리 구조 보러가기

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

ARTICLE CATEGORY

전체 (115)
블로그 소개 (1)
KITRI 교육 (95)
보안 지식 창고 (16)
한 잔의 여유 (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