디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

리눅스를 공부 둘째날

펔끄유갤로그로 이동합니다. 2013.01.12 23:58:40
조회 350 추천 0 댓글 13


프로그래밍도 많이 해보지 못한채 리눅스를 하는것이 어리석을 수도 있지만


깊게 하는것도 중요하지만 두루두루 접해보는것도 중요하다고 생각하기에 리눅스를 맛보고자 하는것이 내가 리눅스를 시작하게된 계기이다.

나의 목표는 쉘 프롬프트를 마스터할 생각도 없고 커널 시스템을 크게 만져볼 생각 까진 갖고 있지 않다.

단지 겉을 핥아 보고 싶을 뿐이다. 일단 나의 목표를 지금 까지 짜본 프로그램중 가장 큰 프로그램을 리눅스 epoll로 짜보는것을 목표로 삼았다.

리눅스의 접속은 해당 컴퓨터에서 직접접속하거나 텔넷 SSH(Secure SHell)이라는 프로그램일 이용해서 원격 텍스트 터미널 모드로 접속하는 방법이 이있다.

직접 접속했을때 우분투에서는 컨트롤+알트+T로 CentOS는 클릭 몇번으로 쉘 프롬프트를 사용할수 있는 터미널을 열수가 있다.

쉘 프롬프트는 MS-DOS와 비슷한 모양으로 생겼고 [계정@리눅스시스템이름]$ 과같은 프롬프트가 보이게 된다.


리눅스에서 거의 모든 장치와 자료의 처리 단위는 파일로 되어있다. 파일은 자료 저장의 논리적인 기본 단위이며 내용 이름 속성 등의 정보를 가지고 있다.

리눅스의 파일 시스템은 파일과 디렉토리들이 계층적으로 구성된 구조를 가지고 있으며 MS-DOS등과 유사하지만 하나의 루트(root)디렉토리만을 가지는 단일한 파일 시스템이다.

최상위 루트 디렉토리는 '/'자체이며 다음 계층은 '/home'등으로 표현할수 있다. 또한 모든 디렉토리는 '.'(현재) , '..'(상위 디렉토리)라는 특수한 디렉토리를 포함한다고 하는데 아직까지 윈도우즈랑 별로 차이가 없는것 같다. 윈도우즈도 폴더 파일검사하면 '.' , '..' 있던데

루트 바로 아래의 디렉토리들은 특별한 의미를 가지고 있으며 리눅스 파일 시스템의 표준 경로를정의한 FHS(Fulesystem Hierarchy Standard)에서 찾아볼 수가 있다.

----------------------------------------------------------------------------------------------------------------------------------------------

/ (root;루트)

가장 최상위 디렉토리라 하고, 모든 디렉토리의 시작점이다.


/bin (binaries)

필수적인 명령 바이너리들이며 단일 사용자 모드에서 사용하고 모든 사용자의 권한 부여되어 있다.

(예; cat, ls, cp.)


/boot

부트 로더 파일; 설치할 때 별도의 파티션에 저장하고 kernel, initrd 부팅과 관련된 파일들이 저장되어 있다.


/root

루트 사용자의 홈디렉토리이다.

</blockquote>

/sbin (system binaries)

<blockquote dir="ltr" style="color: rgb(102, 102, 102); font-family: 굴림체; font-size: 12px; line-height: 16px; margin-right: 0px;">

시스템 바이너리 명령어.

(예; ip, mount)


/etc

리눅스 시스템에서 편집 가능한 텍스트 파일로 구성된 환경설정 파일과 확장도구와 관련된 바이너리파일과 디렉토리가 포함되어 있다.

 

/mnt (mount;마운트)

외부 장치인 FDD, ODD등과 같은 저장장치를 불러와 끼워 넣는 임시로 사용되는 디렉토리이고, 외부 저장 장치를 불러들이면 /mnt/에 하위 디렉토리를 생성하여 수동으로 마운트 한다.

 

/media

FHS version 2.3부터 적용되었고, 새로나온 마운트 지점이다. FDD, ODD, USBDISK 등 외부장치를 GUI상에서 자동으로 /media/하위에 폴더가 생성되고 마운트된다.


/usr

일반 사용자들이 사용가능한 유틸리티 및 응용프로그램이 포함되어 있다.


/usr/X11R6

X 윈도우 버전 11 릴리즈6; X 윈도우 시스템에 사용되는 모든 파일들이 저장되어 있고, 시스템의 개발과 설치를 좀 더 쉽게 하기 위해서 전체 시스템 디렉토리 구조에 통합되지 않고 독자적인 구조를 가진다.


/lib (library;라이브러리)

프로그램들의 각종 라이브러리들이 존재하며, 대부분 공유 라이브러리로 파일의 크기를 줄여서 실행할 때 풀어서 사용한다.


/home

<blockquote dir="ltr" style="color: rgb(102, 102, 102); font-family: 굴림체; font-size: 12px; line-height: 16px; margin-right: 0px;">

시스템 계정에 사용자들의 홈 디렉토리와 ftp, www등과 같은 서비스 디렉토리들이 저장된다. 이곳의 디렉토리와 파일들은 시스템에서 사용되지 않는다. 단일 사용자 또는 원격 지점에서 시스템을 접근하여 사용하는 사용자들의 공간이다.(별도의 파티션)

</blockquote>

 

/dev (device;장치)

시스템의 각 장치들에 접근하기 위한 장치 드라이버들이 저장되어 있고, 접근하면 많은 파일들이 있지만 물리적인 용량을 갖지 않는 가상 디렉토리이다.

 

일반적으로 HDD, FDD, ODD, 루프백 장치 등이 존재한다.


/proc

시스템의 각종 프로세스, 프로그램 정보, 그리고 하드웨어적인 정보들이 저장된다. 이 디렉토리는 가상 파일 시스템으로 /dev 디렉토리와 마찬가지로 하드 디스크상에 물리적인 용량을 갖지 않는다.

즉 실제로 존재하지 않고 파일들은 하드 디스크에 저장되지 않고 커널에 의해서 메모리에 저장된다.

 

- 디렉토리안에 파일들은 현재의 시스템 설정을 보여주는 것이다.

 

/proc/1

/proc/cpuinfo

/proc/devices

/proc/dma

/proc/filesystems

/proc/interrupts

/proc/ioports

/proc/kcore

 

현재 시스템에서 사용중인 메모리의 실제 이미지이다. 이 파일은 실제 메모리의 내용을 모두 가진 것처럼 보이지만 프로그램이 필요로 하는 부분의 이미지만을 필요할 때 만들어 제공한다.


/var

시스템에서 사용되는 빠르게 변화하는 동적인 파일들이 저장된다. 각종 시스템 로그 파일, 사용자 로그인에 대한 보안기록, 그리고 만약 시스템에 메일 서버를 운영한다면 사용자들에게 전송도니 메일들을 임시로 저장한다.


/tmp

임시 파일을 저장한다.

----------------------------------------------------------------------------------------------------------------------------

기본 명령어중에 man이 있는데 man[-s] 파일명1 파일명2 같은 형식을 취하며 각종 시스템 명령어들의 도움말을 출력한다.

기본형식이 파일명이라고 해서 내가생각하는 파일에 대한 도움말일줄 알았지만 앞서 말했듯이 리눅스 시스템 명령어도 파일인가 보다.

따라서 man ls라고 하면 ls라는 시스템 명령어의 도움말을 출력해준다. 꼭유용하니 다 읽어보라는데 너무 길다.


명령어중에 ls라는 명령어는 파일 시스템상의 파일 목록을 보여준다. -a -C -l -R -i -u -r같은 옵션을 선택할수 있다.
-a 도트로 시작되는 이름을 가진 파일도 보여줌 
-C 가로 순서로 나열 출력
-l 각 파일들에 대한 자세한정보
-R 현 디렉토리의 내용은 물론 서브 디렉토리 내용까지
-i 파일의 inode 번호를 보여줌

    - '파일이나 폴더의 정보를 저장'하는 자료 구조체를 의미한다.

    - 각 파일의나 폴더마다 하나의 inode를 가지고 있다. 

    - UNIX 계열의 FileSystem에서만 사용한다.(UNIX, LINUX에서 사용)

    - 리눅스의 'ls' 명령어가 inode 내용을 출력해 주는 명령어 이다.

[출처] 

-u 엑세스한 날짜 순서
-r 정렬 역순

ls -a -i이런식으로 연결하면 도트있는파일까지 inode 번호를 볼수 있다.

cp는 파일복사로 -a -R -b -P -d -f의 옵션을 갖는데 명령어 하나하나마다 옵션졸라 많다 이걸 어떻게 외우지...

 rm는 파일삭제 mv는 파일 이동 mkdir은 디렉토리 생성 rmdir은 디렉토리 삭제 chmod는 파일 속성 모드 변경

ln은 파일 링크 생성으로 두개의 파일 사이에 링크를 만들어 하나의 파일을 두개 이상의 이름으로 접근 가능하게 한다. 바로가기 같은 기능인가보다.

find 파일 검색까지가 기본 명령어이다.

내부 명령어로는 현재 작업 디렉토리를 알려주는 pwd 페뜨 워킹 디렉토리 준말인가보다. 

작업 디렉토리 변경 cd MS-DOS랑 같다. 백그라운드 작업 목록 jobs 스티븐잡스 성님 ㅠㅠ 실행중 프로세스는 포그라운드, 백그라운드 작업으로 실행되는데 포그라운드는 키보드같은 표준입력을 받아들이며 쉘을 붙잡지면 백그라운드가 실행되는 동안 쉘은 다른 용도로 사용할수 있다고 한다.

포그라운드는 쉘과 함께 동작하는건가보다. jobs를 입력했는데 아무것도 표시되지 않는다.

책에서는 sleep 100 &이라는 명령어를 두번 입력하고 jobs를 입력했는데 따라해보니 출력이되었다.
sleep 100 &
[1]3409 
sleep 100 &
[2]3415
jobs
[1] + Running sleep 100 &
[2] - Running sleep 100 &
이렇게 표시되는데 앞의 숫자가 작업숫자 뒤에가 프로세스 번호라고한다 -l이라는 파일명을 추가하면 프로세스명까지 볼수있다.

kill 프로세스 삭제 명령어로 현재 수행중 프로세스에게 시그널을 보데 프로세스를 죽인다 으앙 주금 ㅠㅠ

kill [-signalID]PID형식을 갖고 있으며 시그널 아이디를 지정하지 않으면 15번 디폴트 시그널아이디를 보내서 종료시킨다고 한다.

시스템 로그아웃은 시그널 아이디 1번의 HUP(hang up)시그널이 시스템에 전달되어 실행중 모든 프로세스를 종료시키고 로그아웃한다고 한다.


텍스트 처리 명령어 중 파일생성은 touch와 cat이 잇다옹
touch명령은 파일 수정 시간을 갱신하는 명령이지만, 파일이 존재하지 않을경우 파일을 생성한다.

cat명령어는 표준 출력 재지향 기호 ">"와 함께 쓰면 키보드로 입력 받은 내용을 파일로 저장할수 있다고 한다,
cat > catTest.txt
Hello LINUX

라고 쓰코 컨트롤+D를 입력하면 파일이 저장되고 쉘로 돌아오게 된다.

이밖에도 vi 파일 편집기등 다양한 프로그램을 통해 파일을 만들수 있다고 한다.

책에서는 vi 편집기 +gcc로 코딩한다는데 언제쯤 그걸하게될수있을지 궁금하다 이책이 별론가 아직 한뭉태기는 더해야 프로그래밍을 하는것 같다.

내용 출력은  cat  [-bnuv] 파일명으로 볼수있다.

페이지 단위 파일 출력은 more또는 less 파일명으로 볼수있다. 옵션으로페이지 전방 스크롤 한줄 스크롤 역방향스크롤 문자열 검색등을 줄수있다.


파일 시작 끝부분 출력은 head, tail이며 10라인 출력이 기본이고 옵션으로 라인 블록 문자 또는 추가되는 라인을 지속적으로 보여주는 옵션을 줄수있다. 주로 시스템 로그등을 추적할때 쓴다고 한다.

문자열 검색 grep, 문자열 개수 출력 wc.

파일 비교 diff, cmp, comm이 있다.
diff는 파일간 다른점 같은점 비교하여 보여준다 첫째 파일 줄번호, 둘째 파일 상태 및 줄수로 표시된다.
1a1이면 첫번째 파일, 추가상태, 1번째줄 순서라고 한다 .a 말고 d와 c도있으며 삭제, 변경의 의미이다.

cmp는 두파일이 같은가를 비교하며 comm은 3개의 열로 각 파일의 다른줄과 같은 줄을 표시한다.

파일 묶음 tar은 유닉스의 표준 아카이브 유틸리티 프로그램이다.

파일 압축 및 해제는 gzip, gunzip, zcat, bzip2, bunzip2, bzcat 이있다.

gzip보다 압축효율이 더좋은알고리즘을 사용하는것이 bzip2,bunzip2라고한다.

파일속성결정 file파일이 어떤형태인지 알아내고 파일이 텍스트 문서인지 실행 가능한파일인지 아니면 데이터파일인지를 파악한다. 에디터를 사용해서 보거나 수정할수 있는 파일인가 알아보는데 사용한다고 한다.


좀만 더하면 vi에디터를 사용할수 있는 페이지가 다가오는데 하루에 한번씩 올려야 작심 삼일이 되지 않고 의지를 이어갈수 있을꺼 같아서 여기까지 하고 못본 무한도전 보고 그래야겠다.

도서관에 있는 책하나 가져온건데 잘못가져온건지 싶은 생각도 들고 막그럼 ㅠㅠ vi에디터랑 gcc컴파일러로 C작성하는거 맞는건지도 의심스러움 ㅠㅠ

오늘은 끝

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 모태 솔로도 구제해 줄 것 같은 연애 고수 스타는? 운영자 25/07/21 - -
AD 곧 휴가!! 홈캉스, 바캉스 SALE 운영자 25/07/21 - -
343730 오늘의 자바 nom nom 3탄. 이클립스설치방법.txt [2] Kyle(220.244) 13.01.22 102 0
343729 ㅅㅂ 일부러 악플달라케도 맘이 아파서 안되겟다 돌대갈(211.36) 13.01.22 73 0
343728 자바스크립 vs 자바의 .split.txt [5] Kyle(220.244) 13.01.22 170 0
343727 애들 c언어를 알려주게 됬어요 ㅜㅜ [9] sdf(210.223) 13.01.22 211 0
343724 고등학교 수학 공부중인데 수학은 필수인것같다-ㅁ-;; [3] 초ㅂ(211.224) 13.01.22 184 0
343722 아무래도 난 대학 하나로만 소멤 서류 붙은 것 같다 [2] ghj(183.101) 13.01.22 330 0
343721 형들 System32에 관해 좀 도와줘 [7] 프갤맨(124.197) 13.01.22 153 0
343720 패킷이 단편화되면 쪼개지잖아 ? [23] 빡쳐(1.219) 13.01.22 265 0
343716 아 난 존나 끈기가 없다 [12] 베세ㄱ스다갤로그로 이동합니다. 13.01.22 187 0
343715 C++에서 함수가 [1] ㅇㅇ(222.112) 13.01.22 64 0
343710 아 목아프다 [5] 정수정•‿•갤로그로 이동합니다. 13.01.22 122 0
343709 쓸대없는 sqlite 를 php5 에서 지울순 없나요? [1] Kyle(220.244) 13.01.22 75 0
343708 ㅎㅎㅎ예비 치킨집사장이 질문좀합니다 ㅎㅎ [3] ㅡㅡ(59.15) 13.01.22 117 0
343707 아까소멤전화한다던애 어디갔냐 [28] ㅇㅇㅇ(117.111) 13.01.22 413 0
343706 C 질문좀요 [1] 이힝(119.194) 13.01.22 47 0
343704 쓰레드.suspend() 할 때 마지막 라인까지는 처리 하도록 보장하는 [10] C#(124.216) 13.01.22 146 0
343703 에휴 븅신들 XSS 연구할시간에 [1] exploit갤로그로 이동합니다. 13.01.22 134 0
343702 webhacking.kr 여기 문제풀고싶은데여.. [4] ㅁㄴ(175.215) 13.01.22 145 0
343701 C의 printf로 NSObject * 타입 출력할 수 있음? [3] ㅁㄴㅇ(119.202) 13.01.22 73 0
343700 경찰서 가려면 인젝션 배워야됨? [1] 인젝션(222.116) 13.01.22 103 0
343699 어제 사일런트힐 묵시룩 봤음 [1] 이모군(175.114) 13.01.22 54 0
343698 애들이 경찰서 가볼려고 기를 쓰네.. [1] ㅇㅇ(58.102) 13.01.22 110 0
343696 ㅎㅎ ㅠㅠ개초보(218.153) 13.01.22 96 0
343695 sql injection 공부할게여 [25] ㅁㄴ(175.215) 13.01.22 291 0
343694 포기선언 [7] ㅁㄴ(175.215) 13.01.22 182 0
343693 sa ㅁㄴ(175.215) 13.01.22 33 0
343692 test ㅁㄴ(175.215) 13.01.22 34 0
343691 test [4] ㅁㄴ(175.215) 13.01.22 91 0
343690 test [1] ㅁㄴ(175.215) 13.01.22 54 0
343689 리팩토링은 말이지 [2] 화휴갤로그로 이동합니다. 13.01.22 66 0
343688 asdftest [2] ㅁㄴ(175.215) 13.01.22 58 0
343687 test ㅁㄴ(175.215) 13.01.22 31 0
343686 test [11] ㅁㄴ(175.215) 13.01.22 119 0
343684 님들아 디시메인해킹어찌함니까? [1] ㅁㄴ(175.215) 13.01.22 117 0
343683 나도씨발 태그갑처럼되고싶다고! ㅁㄴ(175.215) 13.01.22 68 0
343681 인스톨실드 가격 [4] ㅁㄴㄻㄹ갤로그로 이동합니다. 13.01.22 153 0
343680 태그갑처럼 할려면 어떻게해야함?? 막 디시갤러리이름바꾸고 태그지맘대로하는 [4] ㅁㄴ(175.215) 13.01.22 141 0
343679 횽들UDK collision 질문점 [1] 8〓э---갤로그로 이동합니다. 13.01.22 88 0
343678 안경을 안쓴지 7일째... 책 글자 시야가 5cm 늘어났다. [9] 상상(175.123) 13.01.22 1726 0
343676 test ㅁㄴ(175.215) 13.01.22 52 0
343674 test [5] ㅁㄴ(175.215) 13.01.22 138 0
343673 자바스크립트로 x86 instruction 시뮬레이팅해서 리눅스 포팅한것 [3] classical(119.195) 13.01.22 130 0
343672 야 나 화났다 [6] 기생충(110.70) 13.01.22 309 0
343671 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ이러다가 소멤 발표 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [3] 123123(182.209) 13.01.22 205 0
343669 ㅋㅋㅋ아까 소멤 붙었다는새끼는뭐지?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [4] 123123(182.209) 13.01.22 209 1
343668 고구마s라는 카페가지마셈 [8] 11(175.215) 13.01.22 180 0
343667 밑에 다형성 질문한 넘인데 이 코드가 이해가 안가 [4] q(1.217) 13.01.22 80 0
343666 삼성소멤 발표 또 연기됐네 [16] 수원지원자(121.137) 13.01.22 390 1
343665 플래시로 만든 C 인터프리터 [3] 토페갤로그로 이동합니다. 13.01.22 130 0
343664 c++ 공부하는중인데 가상함수랑 다형성 내가 이해한거 맞는지좀 봐줄래 [9] (1.217) 13.01.22 179 0
뉴스 [뚜벅이 맛총사] 권율x연우진x이정신이 뜨면 이탈리아 골목도 카페다! '빈티지 스트릿' 메인 포스터 대공개! 디시트렌드 07.21
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2