Time for Security

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

'디렉토리'에 해당되는 글 4건

  1. 2017.07.25
    2017.07.25 교육 09일차 - 디렉토리 구조 및 확장 권한
  2. 2017.07.23
    [리눅스] 디렉토리 및 파일 내용 변경
  3. 2017.07.21
    [리눅스] 디렉토리 및 파일 보기
  4. 2017.07.18
    2017.07.18 교육 04일차 - 간단한 명령어 학습

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


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


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


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


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


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


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


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


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


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



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

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

 푹푹찌는 더위가 계속되는 와중에 4일차를 맞이하게 되었습니다.

 이런 식의 더위가 몇 달간 더 이어지게 될텐데... 걱정이되네요.

 건물 안의 강의실은 시원하지만 건물 복도는 찜통이군요... 


 오늘은 교재의 2장을 나갔습니다.

 '디렉토리 및 파일 보기'와 '디렉토리 및 파일 내용 변경'이라는 내용이었습니다.

 기초로 본다면 리눅스 환경 설치 다음 순위가 되겠네요.


 아, 그리고 진도는 어제도 2장, 오늘도 2장인데요.

 어제는 이런 저런 설치 때문에 2장뿐이 나가지 못했을 거라 생각했지만 오늘도 같았습니다. 그 이유는 학교에선 휙휙 나갔던 부분을 하나 하나 꼼꼼히 강사님께서 수업을 해주십니다.


 살짝 지루한 듯 하다가도 어느덧 강의를 듣고 있다보면 이 명령어가 이런 기능까지 가능했었구나 싶어집니다.

 그만큼 강사님의 내공이 대단하신 것 같아요! 정말 좋아요. 


 앞으로 대략 3주간은 리눅스에 대해 학습하게 될 것 같습니다.


 무엇을 배우던 기초가 탄탄해야 응용도 할 수 있기 때문에 나중을 위해 기초가 구멍 뚫리지 않게 열심히 배워봐야겠습니다. 



▶ 이 블로그의 [리눅스] 디렉토리 및 파일 보기 보러가기

이 블로그의 [리눅스] 디렉토리 및 파일 내용 변경 보러가기

이 블로그의 [리눅스] 하드 링크 및 심볼링 링크 보러가기

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