5. 소프트웨어 설치

5.1_ 개념 및 사용법

① 프로그램 설치의 개요

  • c 언어 -> tar로 압축하여 배포,
  • 레드햇 : 기본(RPM), 온라인 (YUM)
  • 데비안 : 기본(Dpkg), 온라인 (apt-get, apt)
  • 수세 : 기본(YaST), 온라인(zypper, zypp)

② 소스 설치법

  • 압출 풀기 -> 디렉터리 이동 -> configure -> make -> make install
  • tar, gcc, make필요
  • configure
    • 사용자들이 자신의 환경에 맞도록 손쉽게 수정 O
    • 시스템에서 찾아냄
    • makefile만듦
  • make 
    • 소프트웨어 컴파일하는 유틸리티
    • 타겟과 의존성 관련 작업
    • 실행 파일 만듦
  • make install 
    • 컴파일된 실행파일을 지정한 속성으로 지정된 디렉터리에 설치
  • cmake
    • make의 대체 프로그램
    • 멀티플랫폼 지원
    • make 과정 수행 X
    • 다양한 플랫폼 지원
    • 독자적인 설정 스크립트 이용
    • 타임스탬프를 통해 파일 내용 변화 알 수 있다
    • 평행 빌드 지원
    • 크로스 컴파일 가능
    • Dart, CTest, CPack 포함

③ 패키지 설치법

  • RPM 개요
  • 데비안 패키지 관래의 개요

 

5.2_ 소프트웨어의 설치 및 삭제 

① tar와 압축관련 유틸리티

  • tar
    • -c : 하나로 묶어 새로운 tar만듦
    • -x : 푼다
    • -v : 대상이 되는 파일 보여줌
    • -f 파일명 : 이름 지정, -쓰면 표준 입출력됨
    • -r : tar파일 뒤에 파일 추가
    • -t : tar파일 안에 묶여 있는 파일의 목록 출력
    • -h : 심볼릭 링크가 가리키고 있는 원본 파일 저장
    • -C : 디렉터리 변경할 때
    • -p : 파일 생성 되었을 때, 권한 그대로 유지
    • -P : 맨 앞의 \를 포함해서 절대 경로 관련 정보 유지 (--absolute-path)
    • -Z : 예전 유닉스 계열 표준 앞축 파일인 tar.Z에 사용
    • -z : gzip 관련 옵션, tar.gz에 사용
    • -j : bzip2 관련 옵션, tar.bz2에 사용
    • -J : xz 관련 옵션, tar.xz에 사용
  • compress, uncompress
  • gzip, gunzip
    • -d : 압출 풀 때
    • -1 : 압출 시간 줄임, 압축률 떨어짐 --fast
    • -9 : 압축 최대로 압축, 시간 많이걸림, 압출률 좋음
    • -c : 결과를 표준 출력으로 보낼 때, tar와 병행해서 작업할 때
    • -l : 압축 파일에 대한 정보 출력
  • bzip2, bunzip2
  • xz, unxz

② rpm 사용법

  • rpm 사용법의 개요
  • 설치 및 갱신 모드
    • -i : 새로운 패키지 설치, 이전 있으면 설치 X
    • -U : 업그레이드할 때 사용
    • -F : 이전 버전이 설치 되어 있는 경우만 설치
    • -v : 메시지 자세히 보여줌
    • -h : 설치 상황을 "#" 기호로 표시
    • --force : 강제로 설치할 때
    • --nodeps : 의존성 관계 무시하고 설치, 강제로 설치
  • 제거모드
    • -e : 삭제, 의존성 갖는 패키지는 삭제 안함
    • --nodeps : 의존성 가져도 삭제
  • 질의 모드
    • -q : 질의시 꼭 사용
    • -i : 설치된 패키지 정보 출력
    • -l : 설치한 파일 정보 출력
    • -a : 설치된 모든 패키지 목록
    • -p 패키지 명 : rpm 패키지이 파일에 대한 정보 보여줌
    • -f 파일명 : 지정한 파일의 설치한 패키지 이름 출력
    • -d : 해당 패키지의 문서 파일 출력
    • --queryformat : 질의의 결과를 원하는 형태로 출력할 때, printf와 유사
  • 검증 모드

③ yum

  • yum의 개요
    • 의존성 문제 해결
  • 사용법
    • yum [옵션] [코멘드] [패키지_파일명]
    • 옵션
      • - y : 모든 질의 예스
      • - v : 자세한 정보 출력
    • command
      • list [항목] : 전체 패키지에 대한 정보 출력
        • 기본값 all
      • info [패키지] : 패키지에 대한 정보 출력
      • check - update : 'yum list updates'와 같다.
      • updata [패키지명] : 패키지 업뎃할 때
      • install [패키지] 
      • serch [문자열] : 문자열이 포함된 패키지 찾아줌
      • remove, erase
      • groupinstall
      • clean [값] : all, packages, rpadb, dbcache 삭제할 때
      • history : yum 명령 이력

④ dpkg 사용법

  • 사용법
  • 옵션

⑤ apt -get 

  • 개요
    • 데비안 리눅스 
    • yum과 유사
    • 의존성과 충돌성 해결
      • /etc/apt/source.list 관리
    • ATP 라이브러리 이용
    • 시냅틱, 앱티튜드 이용하기도 함
  • 사용법

4. 에디터

4.1_에디터의 종류

① 에디터의 개요

  • 에디터란
  • 리눅스 에디터
    • X 윈도 : gedit
    • 유닉스 : vi

② 에디터의 종류 및 특징

  • PICO
    • 유닉스 기반
    • 이메일 클라이언트 프로그램에 통합되어 배포
    • 소스의 수정 불가
    • 복제 버전 : nano (마우스 가능)
  • emacs
    • 리처드 스톨만 
    • 확장성, 유연성
    • 기능이 너무 많음, 대응하는 LISP를 코드 불러오는데 오래걸림
    • 초보자 사용 어렵
  • vim
    • vi편집기와 호환
    • 다양한 색상
    • 히스토리 기능, 확장된 정규 표현식 문법, 강력한 문법 강조 기능, 다중 되돌리기, 다국어 지원, 문법 검사
    • GUI 기반 :  gVim

 

4.1_에디터의 활용

① pico

  • pico 시작하기
  • pico 이동하기 ctrl+
    • a : 현재 커서가 위치한 줄의 처음으로
    • e : 현재 커서가 위치한 줄의 끝으로
    • p : 커서를 윗줄로
    • n : 커서를 아랫줄로
    • b : 커서를 뒤(왼)로
    • f : 커서를 앞(오)으로

② emacs

  • 시작과 종료하기
  • 커서 이동하기

③ vi

  • 시작하기
    • 명령 모드 : i, a, o, l, A, O
    • 입력 모드 : input mode, insert mode
    • ex 명령 모드 : ':'키 입력했을 때
  • 사용법
    • - r : 손상된 파일 복구
    • +[num] : 파일을 열면서 커서를 지정한 num번째 줄로 이동
      • +값만 입력하면 커서를 마지막 줄로 이동시킴
  • 커서 이동하기
    • h : 왼
    • j : 아
    • k : 위
    • l : 오
    • w : 다음 단어의 처음
    • - : 앞 줄의 첫 문자
    • ^ : 줄의 첫 문자
    • $ : 줄의 맨 끝
    • + : 다음 줄의 첫 문자
    • 0 : 첫 번째 열로
    • G : 젤 끝줄로
    • nG : n번째 행으로
    • gg : 파일의 처음
    • ( : 문장의 처음
    • ) : 다음 문장의 처음
    • { : 문단의 처음
    • } : 다음 문단의 처음
    • H : 화면의 첫 줄
    • M: 화면의 중간
    • L : 화면의 끝
    • ctrl + b : 한 화면 위로
    • ctrl + f : 한 화면 아래로
    • ctrl + u : 반 화면 위로
    • ctrl + d : 반 화면 아래로
    • e : 다음 단어의 맨 뒤로 (오)
    • b : 단어 맨 앞으로
    • z[Enter] : 현재 커서가 위치한 줄을 화면의 첫 줄로
    • n% : n퍼센트에 해당하는 줄로 이동
    • :0 : 줄의 처음으로 이동
    • :$ : 줄의 제일 끝
  • 복사 및 붙이기
  • 삭제하기
  • 되돌리기 및 패턴 검색
  • ex 명령 모드
  • ex 명령 모드와 특수 문자
  • 문자열 치환
  • vi 환경 설정
  • 관련 파일 : exrc

3. 프로세스 관리

3.1_ 개념 및 유형

① 프로세스 개요

  • 프로세스란
  • 프로세스의 생성
    • fork : 복사본 형태의 프로세스 실행
    • exec : 원래 프로세스를 새로운 프로세스로 대체하는 형태
    • 부팅-> init 최초의 프로세스 발생, PID 1 
  • 프로세스의 종류
  • 멀티태스킹과 작업 전환

② 시그널과 데몬

  • 시그널
    • 프로세스끼리 통신
    • 목록 : kill -l 확인 가능
    • 시그널 번호 - 순서
      • SIGHUP : 터미널에서 접속 끊길 때, 재시작 할 때
      • SIGINT : 키보드에서 옴, 실행 종료 (ctrl + c)
      • SIGQUIT : 실행 중지 (ctrl + \)
      • SIGKLL : 무조건 종료
      • SIGTERM : 정상 종료
      • SIGCONT : 정지된 프로세스 다시 실행
      • SIGSTOP : 입력된 정지 시그널
      • SIGTSTP : 실행 정지후 다시 실행 계속하기 위해 대기 (ctrl + z)
  • 데몬
    • 백그라운드에서 실행
    • 실행 방법
      • standalone : 부팅 시에 실행
        • 메모리에 상주
        • ps 명령으로 확인 가능
      • inet
        • 요청이 들어 왔을 때 관련 프로세스 실행

 

3.2_ 프로세스 유틸리티

① 프로세스 관련 명령어

  • ps 
    • 동작 중인 프로세스의 상태를 출력해 주는 명령
    • 옵션 계열
      • System V : (dash, -)사용
      • BSD : 대시 사용 X
      • GNU : 두 개의 대시 
    • ps [option]
    • 옵션 
      • a : 터미널과 연관된 프로세스 출력
      • u : 프로세스의 소유자를 기준으로 출력
      • x : 터미널에 종속되지 않는 프로세스 출력
      • l : 프로세스의 정보를 길게 보여줌, 우선순위와 관련된 (RPI, NI)값 확인
    • 옵션 항목
      • USER : BSD 계열, 프로세스 소유자의 이름
      • UID : SYSTEM V 계열, 프로세스 소유자의 이름
      • PID : 프로세스의 식별 번호
      • %CPU : CPU 사용 비율 추정치 (BSD)
      • %MEM : 메모리 사용 비율의 추정치 (BSD)
      • VSZ : K단위 또는 페이지 단위의 가상메모리 사용량
      • RSS : 실제 메모리 사용량
      • TTY : 프로세스와 연결된 터미널
      • STAT : 현재 프로세스의 상태 코드
      • START : 프로세스 시작 시간 or 날짜
      • TIME : 총 CPU 사용 시간
      • COMMAND : 프로세스의 실행 명령행
      • STIME : 프로세스가 시작된 시간 혹은 날짜(Sys V)
      • C, CP : 짧은 기간 동안의 CPU사용률
      • F : 프로세스의 플래그 (1:exec 호출 없이 fork된 경우 / 4 : 슈퍼유저 권한 사용자)
      • PPID : 부모 프로세스의 PID
      • PRI : 실제 실행 우선순위
      • NI : nice 우선 순위 번호 
    •  STAT의 주요 값
      • R ( Runnig) : 실행 중 혹은 실행될 수 있는 상태 
      • S ( Sleeping) : 인터럽트에 의한 sleep 상태, 특정 이벤트가 끝나기를 기다리는 상태
      • D ( Disk wait) : 디스크 I/O에 의해 대기하고 있는 상태
      • T ( Traced or stopped) : 정지된 상태
      • W : paging 상태
      • Z ( Zombie) : 작업이 종료되었거나 부모 프로세스로 부터 회수되지 않아 메모리를 차지하고 있는 상태
      • X : 죽어있는 상태, 상태값으로 볼 수 X
      • < : 우선순위가 인위적으로 높아진 상태
      • N (Nice) : 다른 사용자에 의해 인위적으로 우선순위가 낮아진 상태
      • L : 메모리 안에서 페이지가 잠금된 상태
      • s : session Leader
      • I : 멀티 쓰레드 상태
      • + : 포어그라운드 프로세스 그룹
  • pstree
  • top
  • kill
    • 특정한 시그널 보내는 명령
    • 옵션 없이 실행 : 15신호 보냄
    • kill [옵션] [시그널] [PID or %Job_number]
      • - l : 시그널의 종류 출력
      • - s signal : 시그널의 이름 지정
      • - 9 : 강종
  • killall
  • jobs
  • fg
    • fg [%잡 넘버]
    • fg 잡 넘버
  • bg
    • 포어그라운드 실행 중인 프로세스 + ctrl +z  하면 사용 가능
  • nice
    • 프로세스의 우선순위 변경
    • NI값 설정 ( 작을 수록 우선순위 ↑)
    • 일반 사용자 : 증가만 가능
    • root : 감소 가능
    • 옵션 
      • -n 값, - 값, --adjustment=값 : NI 값을 지정한 NI값과 증감, 값 지정 안하면 10지정됨
        • ex) nice -10 bash 
        • nice -- adjustment = 10
        • nice bash
  • renice
  • nohup



② 스케줄링과 cron

  • 스케줄링
    • at, cron
  • cron
    • 시스템 운영에 필요 : /etc/crontab (주기적으로 실행)
    • 사용자 : crontab에 실행
    • 필드
      • 분, 시, 날, 월, 요일, 사용자 이름, 명령어
  • crontab
    • vi가 실행됨
    • 옵션 
      • - l : 내용 출력
      • - e : 작성하거나 수정
      • - r : 내용 삭제
      • - u : root사용자가 특정 사용자의 crontab파일 다룰 때 사용

 

 

2. shell

2.1_ 셸의 개념 및 종류

① 셸의 개념과 특징 - 순서

  • Bourne Shell 
    • 기본 셸
  • C 셸
    • c 언어 기반
    • 히스토리, 별명, 작업 제어
    • 편집 기능 X
  • tcsh
    • C 셸 통합
    • csh기능 강화
    • 명령어 완성 기능, 명령행 편집기능
  • ksh
    • 본 셸 확장
    • 작업 제어, 앨리어스, 히스토리 기능, vi 및 emacs 스타일 명령행 편집 기능, 명령행 완성 기능
  • bash
    • 본 셸 기반
    • 리눅스의 표준 셸
    • 명령어 : sh와 호환
    • ksh + csh 기능 참고
      • 명령어 히스토리, 명령어 완성, 히스토리 치환, 명령어 편집 지원
    • POSIX와 호환됨

② 셸의 확인과 변경

  • 셸의 확인
    • echo $SHELL
      • 로그인 후 사용중인 셸 확인
    • chsh -l
      • /etc/shells 파일 안의 셸들 나열
      • 셸 목록 확인
    • cat /etc/shells 
      • 현재 시스템에서 사용 할 수 있는 셸들 확인
    • etc/passwd
      • 로그인 시 부여되는 셸 정보 확인
  • 셸의 변경
    • chsh

 

2.2_셸 환경 변수

① 셸 변수와 환경 변수

  • 셸 변수
    • 변수명=값
  • 환경 변수

② 주요 환경변수

  • 주요 환경변수
    • HOME
    • PATH
    • LANG : 언어
    • TERM : 로그인한 터미널 종류
    • PWD : 사용자의 현재 작업 디렉터리
    • SHELL : 로그인 셸
    • USER : 사용자의 이름
    • DISPLAY : X 윈도우에서 프로그램 실행시 출력되는 창
    • PS1 : 프롬포트 변수
    • PS2 : 2차 프롬포트 변수
    • HISTFILE : 히스토리 파일의 절대경로
    • HISTSIZE : 히스토리 파일에 저장되는 명령어의 개수
    • HISTFILESIZE : 히스토리 파일의 파일 크기
    • HOSTNAME : 시스템의 호스트명
    • MAIL : 도착한 메일이 저장되는 경로
    • TMOUT : 사용자가 로그인한 후 일정기간동안 작업안할때, 로그아웃 시키는 초
    • UID : 사용자 UID
  • 환경변의 사용 및 변경
    • 프롬포트 형식
      • \d : 요일 월 일 형태로 날짜 표시
      • \h : 호스트 이름 표시
      • \s : 사용 중인 셸 이름 표시
      • \t : 24시 형태의 현재 시간 표시
      • \T : 12시 형태의 현재 시간 표시
      • \@ : 12시 형태의 현재 시간에 AM/PM 추가 표시
      • \u : 현재 사용자의 이름
      • \w : 현재 작업 디렉터리의 절대경로
      • \W : 현재 작업 디렉터리의 전체 경로 중 마지막 디렉터리만
      • \! : 현재 명령의 히스토리 넘버
      • \\ : \를 표시

③ 배시셸의 주요 기능과 관련 파일

  • history
    • 히스토리 리스트에 있는 명령어들 출력됨
    • 명령어들 : .bash_history파일에 추가 기록됨
    • 로그아웃 -> 메모리에 기억된 명령의 목록 파일에 저장
    • 명령문
      • !! : 마지막에 사용한 명령 실행
      • !n : n번째 사용한 명령 실행
      • !-n : 사용한 명령 목록을 역으로 해서 
      • !문자열 : 가장 최근에 사용한 명령 중에 '문자열'로 시작하는 명령 찾아 실행
      • !?문자열? : '문자열' 포함하고 있는 명령 찾아 실행
      • ^문자열1^문자열2 : '문자열 1을 문자열2로 대체한 후 실행
    • 환경변수
      • HISTSIZE
      • HISTFILESIZE
      • HISTFLE
      • HISTCONTROL
      • HISTTIMEFORMAT
  • alias
    • 별명
    • unalias : 해제
      • ex) alias ls = 'ls -alF' : ls라고 명령 실행-> 'ls -alF' 실행 되도록
    • 셸 관련 파일 및 디렉터리
      • /etc/profile : 시스템 전체 적용, 시작관련 프로그램 설정
      • /etc/bashrc : 시스템 전체 적용, alias와 함수를 설정
      • ~/.bash_profile : 개인 사용자 환경설정, 시작프로그램, 로그인 시 읽어드림
        • 사용자가 PATH같은 환경변수 수정 시 사용
      • ./~bashrc : 개인 사용자, alias와 함수들 있음, alias 이 파일에서 설정
      • ~/.bash_logout : 개인 사용자가 로그아웃할 때
      • /etc/profile.d :  일반 사용자의 alias 설정 등과 관련된 스크립트 존재

2. 리눅스 운영 및 관리

1. 파일 시스템 관련 명령

 

1.1_ 권한 및 그룹 설정

① 명령어

  • chmod
    • 파일이나 디렉터리에 접근할 수 있는 허가권을 설정
    • 문자모드
      • 권한
        • r, w, z
      • 사용자
        • u, g, o, a
      • 설정
        • +, -, =
    • 숫자모드 ( 8진수)
    • 옵션
      • - R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 접근 권한 변경 (--recursive)
  • chgrp
  • umask

② 특수 권한

  • Set- UID
  • Set - GID
  • sticky-Bit
  • 특수 권한의 확인
  • 특수 권한의 설정

 

 

1.2_ 파일 시스템의 관리

① 리눅스의 파일 시스템

  • minix
  • ext
  • ext2
  • ext3
  • ext4
  • Reiserfs
  • XFS
  • JFS
  • xiafs
  • msdos
  • umsdos
  • vfat
  • isofsnfs
  • smb
  • ncpfs
  • sysv
  • proc

② 관련 명령어

  • mount
  • umount
    • 마운트 된 파일 시스템을 해제시켜줌
  • eject
    • CD-ROM, DVD 등과 같이 이동식 보조 기억장치의 미디어를 꺼낼 때 사용
    • 자동으로 언마운트 작업 수행함
  • fdisk
  • mkfs
  • mke2fs
  • fsck
    • 리눅스 파일 시스템을 검사하고 수리하는 명령
    • 손상된 디렉터리나 파일을 수정할때 임시로 /lost+found디렉터리에 작업 수행
      • 정상적인 복구가 되면 사라짐
  • e2fsck
  • df
  • du

③ 관련 파일

  • /etc/fstab

④ Disk Quota

  • 디스크 쿼터의 개요
  • edquota
  • quotaon/quotaoff
  • repquota
  • quota
  • setquota
  • 사용자 쿼터 설정하기
  • 그룹 쿼터 설정하기

2.3_ 인터넷 서비스의 설정

① 리눅스 네트워크 설정

② 인터넷 접속을 위한 설정

  • 인터넷 접속의 개요
  • 넷마스크와 게이트웨이 주소
  • 넷마스크 값과 호스트 수
  • 네트워크 인터페이스 설정 방법
    • GUI 기반 네트워크 설정
    • 텍스트 기반 유틸리티 사용 방법
    • 명령어 이용하는 방법
    • 네트워크 관련 파일을 이용하는 방법

③ 관련 명령어

  • ifconfig
    • ip주소, 넷마스크 주소, MAC주소 설정하고 확인
  • route
    • 라우팅 테이블 정보 출력하거나, 관리
  • netstat
    • 네트워크 연결 상태 출력
    • 라우팅 테이블, 네트워크 인터페이스 상태, 캐스커레이드 연결 상태, 멀티캐스트 멤버 정보 출력
    • netstat [옵션] [address_family_option]
      • -a : 모든 소켓 정보를 출력함
      • -n : 숫자값 표시 -> www대신 80
      • -p : 소켓에 대한 PID와 프로그램명 출력
      • -r : 라우팅 테이블 정보 출력
    • 결과
      • LISTEN : 소켓 열고 기다림
      • SYS-SENT : 클라가 원격 호스트에게 연결 요청
      • SYN_RECEIVED : 클라이언트에게 확인 메시지 받기 전
      • ESTABLISHED : 3웨이 완료 된 후 , 서로 연결 상태
      • FIN-WAIT1 : 소켓 닫히고 연결 종료되는 상태
      • FIN-WAIT2 : 연결은 종료된 상태, 원격 호스트로 부터 종료되었다는 정보 기다림
      • CLOSE-WAIT : 원격 호스트 종료된 상태, 소켓을 종료하기 위해 기다림
      • CLOSING : 확인 메시지가 전송 도중 분실
      • TIME-WAIT : 당분간 소켓 열어둠
      • CLOSED : 소켓 연결 종료
      • LAST_ACK : 원격 호스트 종료, 소켓도 닫힌 상태, 마지막 ACK 패킷 기다림
      • UNKNOWN : 소켓 상태 확인할 수 없음
  • arp
    • 현재 들어와 있는 호스트에 대한 정보알 수 있음
  • mii-tool
    • 보통 네트워크의 상태를 점검하고 설정하는 유틸리티
    • 이더넷 카드에 연결된 케이블의 상태 확인할 수 있음
  • ethtool
    • 이더넷 카드 설정 정보를 출력 or 변경
  • ip
    • 이더넷 장치, ip 주소, 라우팅 정보 등의 설정 정보를 출력하거나 변경
  • ss
    • 소켓 상태를 출력해주는 명령
    • netstat명령과 유사
    • TCP 상태 정보에 많이 정보 제공

 

④ 네트워크 관련 파일 

  • /etc/sysconfig/network
    • 네트워크 사용 유무
    • 호스트명 설정
    • ㅔ이트웨이 주소 설정 -> ifcfg-eth0에 기록됨
    • 게이트웨이 장치 파일 설정
    • nis 도메인 이름 등 기록 됨
  • /etc/sysconfig/network-scripts 디렉토리
    • 네트워크 인터페이스 환경 설정과 관련된 파일
    • e디바이스 명, 프로토콜, ip주소, 게이트 웨이, DNS주소
    • 첫 번째 이더넷 카드 : ifcfg-eth0
    • 두 번째 이더넷 카드 : ifcfg-eth1
  • /etc/resolv.conf
    • 네임 서버 설정(DNS서버)
  • /etc/hosts
    • ip 주소와 호스트명을 매핑시켜 데이터 베이스처럼 사용하는 파일

 

2.2_ 인터넷 서비스의 종류

① 인터넷 서비스의 종류 및 특징

  • WWW
  • 전자 우편
  • 파일 전송(FTP)
    • tcp/ip 프로토콜 기반으로
  • 텔넷
    • 원격지에 있는 서버에 접속할 수 있는 서비스
  • SSH
    • 네트워크상에 있는 다른 컴퓨터에 로그인하거나
    • 원격 시스템에서 명령 실행, 파일 복사등 가능하게
    • rlogin, rsh, ssh, scp, sftp
  • 삼바
    • 다른 시스템의 디스크나 프린터 등의 자원을 공유할 수 있도록 프로토콜 개발
    • SMB -> CIFS
  • NFS
    • 네트워크 상에서 다른 컴퓨터의 파일 시스템 마운트, 공유
    • 상대방의 파일 시스템 일부를 마치 자기 디렉터리인 것처럼 사용할 수 있게
    • NIS + RPC 프로토콜기반으로 작동
    • rpcbind 데몬을 먼저 실행시켜야함
    • 취약함
  • 기타
    • 유즈넷
    • IRC
    • 고퍼

② 인터넷 서비스의 사용

  • 웹 브라우저
    • 파이어폭스
    • 오페라
    • 크롬
  • 텔넷
    • telnet [옵션] hostname 또는 ip_address [port]
  • ftp
    • 서비스 이용 조건
      • Wu-ftpd, Proftpd, Vsftpd -> FTP 서버 구축
      • 클라이언트 : ftp 패키지 설치
    • ftp Hostname 또는 IP_Address
      • ex) ftp 192.168.123.456
        • 192.168.123.456 서버로 FTP 서비스 요청함
    • 20, 21번 포트
    •  명령어
      • ?, help : 도움말
      • ls
      • put : 로컬의 파일을 원격의 서버로 전송
      • get : 원격 서버의 파일을 로컬로 가져옴
      • size : 서버의 파일 크기 출력
      • mkdir : 서버에 디렉터리 생성
      • rmdir : 원격의 FTP 서버에 있는 디렉터리 제거
      • status : FTP 서버 상태 출력
      • quit : 접속된 FTP 서버에서 빠져나옴
      • mput : 로컬의 여러 개 파일 동시에 보낼 때
      • mget : 로컬에 여러 개 파일 가져 올 때
      • cd : 접속된 서버의 디렉터리를 이동
      • rename : FTP 서버에 있는 파일 이름 변경
      • chmod : FTP 서버에 있는 파일 or 디렉터리 퍼미션(권한) 변경
      • delete : FTP 서버에 있는 파일 삭제
      • mdelete : 여러 개의 파일 동시에 삭제
      • close : 접속 끊을 때
      • open : 새로운 접속
      • lcd : 로컬의 디렉터리 변경
      • hash : 파일 전송 및 다운로드할 때, 진행 상태를 #로 나타냄
      • bi : 파일 전송 모드를 바이너리 모드로 전환
      • passive : FTP 전송 모드를 패시브 모드로 on/off할 때
        • 패시브 모드 : 20번 포트 대신 1024번 이상의 포트 중 시스템에서 예약하지 않은 포트 사용하는 모드
  • SSH
    • 패킷을 암호화하여 안전한 원격 로그인 지원
    • 셸(rsh 대체), 원격 복사 (scp), 안전한 파일 전송(sftp)
    • 인증키 이용하여 인증 파일(~/.ssh/authorizzed_key) 생성 -> 패스워드 입력없이 로그인 가능
      • rlogin 기능 대체
    • ssh [옵션] Hostname 또는 IP_Address
    • 옵션
      •  - l  : 현재 클라이언트 쪽에 로그인한 계정이 아닌 다른 계정으로 접속할 때
        • 서버 주소 앞에 @
      • - p : ssh 서버의 포트번호가 22번이 아닌 다른 포트를 사용할 경우
        • 해당 포트번호 지정할 때
      • ssh 192.168.123.456
        • 192.168.123.456 서버로 클라이언트 계정과 같은 계정인 posein으로 접속 시도
      • ssh luster@192.168.123.456 == ssh - l luster 192.168.123.456
        • 192.168.123.456 서버에 luster라는 계정으로 접속 시도
      • ssh -p 170 192.168.123.456
        • 192.168.123.456 서버의 ssh포트가 170번인 경우 사용

 

+ Recent posts