블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

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

  1. 2013.02.01 YUM
  2. 2012.06.14 VI 명령어 7
  3. 2012.04.27 cygwin 에 objective-c 컴파일 환경 셋팅 vim 추가 1
  4. 2012.02.15 리눅스 기본 명령어 3
  5. 2012.02.15 awk 6
  6. 2012.02.15 리눅스 퍼미션 permission 1
  7. 2012.02.15 swap swapon swapoff 2
  8. 2012.02.15 klogd syslogd 1
  9. 2012.02.15 start-stop-daemon 1
  10. 2012.02.15 portmap 데몬 2

YUM

리눅스 / 2013. 2. 1. 12:00

1. YUM이란?

  - Yellowdog Updater Modified의 약자로 rpm기반의 자동 업데이트 프로그램이자 패키지를 설치,

     삭제하는 도구이다.

  - 인터넷을 통해 RPM 파일이 저장된 저장소에서 설치하려고하는 RPM파일과 해당 파일이 의존성

    을 가지는 다른 RPM 파일까지 모두 다운로드한 후 자동으로 설치

  - YUM에서 저장소의 URL은 /etc/yum.repos.d/에 저장

  - 패키지 파일을 임시로 저장하는 위치는 /var/cache/yum 하위 디렉토리. 설치 후 자동삭제

 

 

 

2. 사용법

   - 리눅스에 설치된 패키지 목록 확인

yum list installed

   - 특정 패키지가 설치되어있는지 확인

yum list installed [패키지명]

   - 패키지 설치

yum install (-y) [패키지명] <- 주로사용

   - 패키지 업데이트

yum update (-y)

   - 업데이트 가능한 패키지 목록 보기

yum check-update

   - 패키지 삭제

yum remove [패키지명]

   - 패키지 정보 확인

yum info [패키지명]

 

 

   - RPM파일을 yum명령어로 설치

yum install <rpm파일이름>

'리눅스' 카테고리의 다른 글

cygwin 에 objective-c 컴파일 환경 셋팅 vim 추가  (1) 2012.04.27
swap swapon swapoff  (2) 2012.02.15
klogd syslogd  (1) 2012.02.15
start-stop-daemon  (1) 2012.02.15
portmap 데몬  (2) 2012.02.15
Posted by GUCCI
, |

 

 

Command mode(명령 모드) - vi의 기본모드이며 vi를 실행하면 뜨는 기본화면이다.

Edit mode(입력 모드) - a, i, o등을 누르면 이동하는 모드이며 내용 입력 또는 C코딩이 가능하다.(오른쪽 아래에 --Insert-- 가 뜬다.)

Last line mode(실행 모드) - 입력모드에서 저장종료, 강제종료 등의 명령어를 입력하는 모드이다.(:, /, ? 등의 명령으로 동작)

 

<vi 에디터 명령어>

 

1. vi 시작 명령어

 명령어

명령어 동작 설명 

 vi [file name]

파일 열기, 작성 

 vi +18 [file name]

 18행으로 파일 열기

 vi +/"문자열" fn

 "문자열"의 처음 발생 단어부터 열기

 vi -r [file name]

 손상된 파일 회복

 view [file name]

 읽기 전용으로 파일 열기

 

2. vi 커서 이동 명령어

 명령어

명령어 동작 설명 

 h(←)

 왼쪽으로 커서 이동

 j(↓)

 아래로 커서 이동

 k(↑)

 위로 커서 이동

 l(→)

 오른쪽으로 커서 이동

 w

 오른쪽 한 단어의 끝 부분으로 커서 이동

 e

 오른쪽 한 단어의 앞 부분으로 커서 이동

 b

 왼쪽 한 단어의 앞 부분으로 커서 이동

Enter

 한 행 아래로 커서 이동

 Back space

 한 문자 왼쪽으로 커서 이동

 Space bar

 한 문자 오른쪽으로 커서 이동

 ^

 행의 맨 왼쪽으로 커서 이동

 $

 행의 맨 오른쪽으로 커서 이동

 H

 화면의 맨 위로 이동

 M

 화면의 중간으로 이동

 L

 화면의 맨 아래로 이동

 "숫자"G

 "숫자"만큼 지정한 줄로 커서 이동

 

3. 문자, 행 삽입 명령어

 명령어

명령어 동작 설명 

 a (종료 : esc)

 커서 오른쪽에 문자 삽입

 A (종료 : esc)

 커서 오른쪽, 행의 끝에 문자 삽입

 i (종료 : esc)

 커서 왼쪽에 문자 삽입

 I (종료 : esc)

 커서 왼쪽, 행의 처음에 문자 삽입

 o (종료 : esc)

 커서 아래에 행 삽입

 O (종료 : esc)

 커서 위에 행 삽입

 

4. 텍스트 변경 명령어

 명령어

명령어 동작 설명 

 cw (종료 : esc)

단어 변경 

 cc (종료 : esc)

 행 변경

 C (종료 : esc)

 커서 오른쪽의 행 변경

 s (종료 : esc)

 커서가 위치한 문자열 대체

 S (종료 : esc)

 커서가 위치한 라인의 문자열 대체

 r

 커서 위치 문자를 다른 문자로 대체

 r-Enter

 행 분리

 J

 현재 행과 아래 행 결합

 xp

 커서 위치 문자와 오른쪽 문자 교환

 ~

 문자형(대, 소문자) 변경

 u

 이전 명령 취소

 U

 행 변경 사항 취소

 :u

 이전의 최종 행 취소

 .

 이전 최종 명령 반복

 

5. 택스트 삭제 명령어

 명령어

명령어 동작 설명 

커서가 있는 문자 삭제 

 5x

 커서가 있는 위치부터 5개의 문자를 삭제

 dw

 현재 커서가 있는 한 단어 삭제

 dd

 커서가 있는 라인 삭제

 5dd

 커서가 있는 라인부터 5개의 라인 삭제

 db

 커서의 위치에서 거꾸로 한 단어 삭제

 D

 커서 오른쪽 행 삭제

 :5,10d

 5-10번째 행 삭제

 

6. 복사 및 이동 명령어

 명령어

명령어 동작 설명 

 yy

행 yank 또는 복사 

 Y

 행 yank 또는 복사

 P

 yank되거나 삭제된 행 현재 행 위에 삽입

 p

 yank되거나 삭제된 행 현재 행 아래에 삽입

 :1,2 co 3

 1-2행을 3행 다음으로 복사

 :4,5 m 6

 4-5행을 6행 위로 이동

 

7. 행 번호 설정 명령어

 명령어

명령어 동작 설명 

 :set nu

행 번호 표시 

 :set nonu

 행 번호 숨기기

 

8. 행 찾기 명령어

 명령어

명령어 동작 설명 

 G

파일의 마지막 행으로 가기 

 21G

 파일의 21번째 행으로 가기

 ctrl + G

 현재의 filename과 line수를 알려줌

 

9. 탐색 및 대체 명령어

 명령어

명령어 동작 설명 

 /검색할 문자열/

 오른쪽 아래 방향으로 문자열 검색

 ?검색할 문자열?

 왼쪽 위 방향으로 문자열 검색

 n

 문자열의 다음으로 계속 검색

 N

 문자열의 이전으로 계속 검색

 :g/search-string/s//replace-

 각 발생 탐색 후 확인하고 대체

 string/gc

 

 :s/str/rep/

 현재 행의 str을 rep로 대체

 :1,.s/str/rep/

 1부터 현재 행의 str을 rep로 대체 파일

 :%s/str/rep/g

 전체 str을 rep로 전부 대체

 :.$/aaa/bbb/

 커서의 위치로부터 파일의 끝까지 있는 모든 aaa를 bbb로 대체

 :! [file name]

vi열린 상태에서 외부명령어 실행 

 

10. 화면정리 명령어

 명령어

명령어 동작 설명 

 ctrl + I

불필요한 화면 정리 후 다시 표시 

 

11. 파일 명령어

 명령어

명령어 동작 설명 

 :r [file name]

커서 다음에 파일 삽입 

 :34 r [file name]

 파일을 34번째 행 다음에 삽입

 :e [file name]

파일 열기 

 

12. 보관 및 종료 명령어

 명령어

명령어 동작 설명 

 :w

 변경사항 저장

 :w [file name]

 버퍼를 파일로 보관

 :wq

 변경사항 보관 후 vi 종료

 :ZZ

 변경사항 보관 후 vi 종료

 :q!

 변경사항 보관하지 않고 종료

 :q

 수정한 파일을 저장하지 않고 vi 종료

 :e!

 수정한 것을 무시하고 다시 편집상태로

 

'리눅스 > 리눅스명령어' 카테고리의 다른 글

리눅스 기본 명령어  (3) 2012.02.15
awk  (6) 2012.02.15
리눅스 퍼미션 permission  (1) 2012.02.15
vlan vconfig  (3) 2012.02.15
sysctl 명령어  (2) 2012.02.15
Posted by GUCCI
, |

cygwin 체크 항목

gcc-core: C compiler    C 컴파일러 

gcc-g++: C++ compiler   C++ 컴파일러 (선택 사항)
gcc-objc: ObjC compiler Objective-C 컴파일러


vi editor

vim: Vi IMproved - enhanced vi editor



test


smaple code 작성후 컴파일

gcc hellowold.m -o hello -l objc 

'리눅스' 카테고리의 다른 글

YUM  (0) 2013.02.01
swap swapon swapoff  (2) 2012.02.15
klogd syslogd  (1) 2012.02.15
start-stop-daemon  (1) 2012.02.15
portmap 데몬  (2) 2012.02.15
Posted by GUCCI
, |

1. which 

  which 명령어는 환경변수 PATH에 설정되어 있는 경로 내에서 해당 명령어의 경로를 확인 하는 명령어입니다. which 명령어의 형식을 다음과 같습니다.

 

< 사용 방법 >

# which [명령어]

 

2. date

  date 명령어는 서버의 현재 시간과 날짜를 확인하거나 설정하는 명령어입니다. date 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# date

# date [MMDDhhmmYY]

 

3. cal

  cal 명령어는 간단한 달력을 보여주는 명령어입니다. 옵션을 사용하지 않으면 현재의 달을 출력해 줍니다.

 

< 사용 방법 >

# cal

# cal [option] 년도 

option : -j(구 태양력으로 출력)

           -y(현재 년도의 모든 달력을 보여줌)

 

4. hwclock

  하드웨어 시간을 확인하거나 리눅스와의 시간을 동기화 시킬 때 사용합니다. hwclock 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# hwclock [option] 

option : -r(하드웨어 시간 확인)

           -w(하드웨어 시간을 시스템 시간과 동기화)

           -s(시스템 시간을 하드웨어 시간과 동기화)

 

5. rdate

  rdate 명령어는 원격지의 타임서버로부터 날짜와 시간 정보를 받아와 보여주거나 시스템의 시간을 동기화 시키는 명령어입니다. rdate 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# rdate [option] [timeserver] 

option : -p(타임서버의 시간 출력)

           -s(타임서버와의 시스템 시간 동기화)

 

6. time

  time 명령어는 명령어 실행 시간에 대해 매우 자세한 통계를 보여줍니다. time 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# time [명령어 실행] 

ex) # time ls -l

 

7. id

  id 명령어는 사용자정보인 UID와 GID, 사용자가 속해있는 그룹을 출력하는 명령어입니다. id 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# id [user_name]

 

8. logname

  시스템에 로그인한 사용자 명을 출력합니다. logname 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# logname

 

9. w

  w 명령어는 서버에 접속한 사용자의 접속 정보와 작업에 대해 정보를 확인하는 명령어입니다. w 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# w [option] [user_name] 

option : -h(head 정보를 출력하지 않음)

           -s(login time, JCPU, PCPU 정보를 생략하고 간단히 출력)

           -f(IP 주소정보를 생략 후 출력)

 

10. who

  who 명령어는 현재 시스템에 로그인한 모든 사용자를 보여주는 명령어입니다. w 명령어처럼 자세한 정보를 출력하는 것은 아니고 간단하게 사용자의 계정과 터미널, 로그인 시간 등을 출력합니다. who 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# who [option] 

option : -m(whoami 명령어와 같음

           -q(로그인명과 로그인한 횟수 출력)

           -i, -u, --idle(로그인한 사용자가 얼마의 시간동안 한가하게 있었는지 출력. '.'은 좀 전까지도 활동을 의미, 'old'는 24시간을 의미

           -w(로그인명 뒤에 사용자의 메시지 상황을 문자로 보여줌. '+' = write 메시지 허가, '-' = write 불허, '?' = 터미널 장치를 찾을 수 없음

           -H(헤더라인 출력)

 

11. whoami

  whoami 명령어는 가상 콘솔을 사용하거나 여러 계정으로 동시에 로그인하고 있는 경우, 현재 시스템을 사용하고 있는 자신이 누구인가를 확인할 때 사용하는 명령어입니다. whoami 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# whoami

 

12. who am i

  위의 whoami 보다는 많은 정보를 출력합니다.

 

13. users

  users 는 현재 접속한 사용자들의 사용자ID 정보를 확인할 때 사용합니다. users 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# users

 

14. finger

  finger 명령어는 사용자 계정에 대한 정보를 확인하고자 할 때 사용하는 명령어입니다. finger 명령어는 지정한 계정 사용자의 정보를 /etc/passwd 파일의 정보가 보여 지는 것으로 UID, 사용자명, 홈 디렉터리, 기본 사용 쉘, 현재의 로그인 정보 등을 알 수 있습니다. finger 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# finger [option] [user_name]

option : -l(기본 값으로 자세한 정보를 출력)

           -p(정보 출력 시 .plan 파일의 내용은 생략)

           -s(간단하게 정보 출력)

 

15. mesg

  write, talk, wall 유틸리티를 통하여 다른 사용자에게 메시지를 보낼 수 있는데, mesg 명령어는 메시지를 받을 것인지 혹은 받지 않을 것인지를 설정하고 또 현재의 상태를 확인하는데 사용하는 명령어입니다. mesg 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# mesg [n|y]

option : -n(메시지 수신 불가)

           -y(메시지 수신 가능)

 

16. write

  write 명령어는 콘솔 상에서 간단하게 상대방에게 메시지를 보낼 수 있는 명령어입니다. write 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# write [user_name] [terminal]

 

17. wall

  wall 명령어는 시스템에 접속해 있는 모든 사용자에게 메시지를 보낼 때 사용합니다. 보통은 시스템 관리자가 점검을 위하여 접속해 있는 사용자들에게 메시지를 보낼 때 사용합니다. wall 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# wall [Message]

 

18. sync

  sync 명령어는 명령어의 실행 결과로 변동된 사항을 적용하기 위해 사용하는 명령어입니다. sync 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# sync

 

19 hostname

  hostname 명령어는 현재 시스템의 HOSTNAME을 확인할 때 사용하거나 변경할 때 사용합니다. hostname 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# hostname [hostname]

 

20. whatis

  whatis 명령어는 지정한 키워드나 명령어의 매뉴얼 페이지를 찾아서 간략하게 보여주는 명령입니다. 특정 명령어가 어떤 명령어인지 간단히 확인할 때 사용하며, 명령어의 사용법 등은 man 명령어를 이용합니다. whatis 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# whatis [명령어]

 

21. man

  man은 명령어에 대한 정보를 확인합니다. 명령어의 이름, 사용방법, 설명, 각종 옵션, 사용환경, 버그, 팁, 제작자 등을 확인할 수 있습니다. man 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# man [option] [섹션] [명령어]

option : -a(man은 기본적으로 첫 번째 발견된 매뉴얼 페이지만을 출력하지만 -a 옵션은 모든 매뉴얼 페이지를 출력)

           -f(whatis 와 같으며 간단히 설명만 출력)

 

22. manpath

  manpath 명령어는 특정 명령어의 man페이지의 위치를 알고자 할 때 사용하는 명령어입니다. manpath 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# manpath [명령어]

 

23. sleep

  sleep 명령어는 사용자가 지정하는 시간만큼 대기하고자 할 때 사용하는 명령어입니다. 명령어의 중간에 함께 사용할 수 있습니다. sleep 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# sleep [n단위]

option : s(초) , m(분) , h(시) , d(하루)

 

24. arch

  arch 명령어는 시스템의 CPU에 대한 정보를 확인하는 명령어입니다. arch 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# arch

 

25. clear

  clear 명령어는 화면을 청소할 때 사용하는 명령어입니다. clear 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# clear

 

26. dd

  dd 명령어는 지정한 블록 크기만큼 파일을 복사할 때 사용하는 명령어입니다. dd는 하드디스크를 복사하거나 스왑 파일을 만드는데도 유용하게 사용할 수 있으며, 테이프 드라이브로 데이터를 백업받을 때도 사용하게 됩니다. dd 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# dd [option] [변수=값]

option : -c(캐릭터, 1byte)

           -w(워드, 2byte)

           -k(키로, 1024bytes)

           -b(블록, 512bytes)

 

27. echo

  echo 명령어는 입력한 문자를 그대로 출력하는 명령어입니다. 환경 변수, 지역 변수들의 내용을 확인할 때 사용하며, 쉘 스크립트 작성 시에 유용하게 사용할 수 있습니다. echo 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# echo [option] [문자열]

option : -n(커서를 한 줄 아래로 내리는 역할을 하는 제어문자(개행 문자)를 출력하지 않음

           -e(문자열에서 다음의 백슬래쉬로 이스케이프 된 문자의 번역을 하도록 함

escape : \a(경고음)

            \b(백스페이스)

            \c(마지막 개행 문자를 사용하지 않음)

            \f(폼 피드)

            \r(캐리지 리턴)

            \t(수평 탭)

            \v(수직 탭)

            \nnn(ASCII 코드가 nnn (8진수)인 문자)

 

28. env

  env 명령어는 사용자의 환경 변수를 출력하는 명령어입니다. env 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# env [option]

option : -u(-u 옵션 뒤에 사용자 명을 지정, 지정된 사용자의 환경변수를 출력)

           -i(환경변수 무시)

           --help(도움말 출력)

           --version(버전 정보 출력)

 

29. source

  source 명령어는 스크립트나 설정 파일들을 수정한 후에 수정된 값이 적용되도록 사용하는 명령어입니다. source 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# source [file_name]

 

30. ulimit

  ulimit 명령어는 시스템 리소스에 대해 최대 한계를 지정할 때 사용하는 명령어입니다. ulimit 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# ulimit [option] [제한]

# ulimit [리소스] [최대치]

option : -a(현재 시스템의 제한 사항을 모두 출력)

           -c(코어 파일의 최대 크기 출력)

           -d(프로세스의 데이트 세그먼트의 최대 크기 출력)

           -f(쉘이 만들 수 있는 파일의 최대 크기 출력)

           -m(상주 설정 최대 크기 출력)

           -s(최대 스택 크기 출력)

           -t(초 단위의 최대 CPU 시간 출력)

           -p(512바이트 블록 단위로 파이프의 크기)

           -n(열 수 있는 파일의 수)

           -u(단일 사용자에게 허용하는 프로세스의 최대 개수)

           -v(쉘에 허용하는 가상 메모리의 최대량)

           -S(소프트 제한 출력)

           -H(하드 제한 출력)

 

31. uname

  uname 명령어는 시스템에 대한 정보를 출력하는 명령어입니다. 하드웨어 타입, 호스트명, 운영체제 릴리즈 번호 등의 정보를 확인할 수 있습니다. uname 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# uname [option]

option : -a(모든 정보 출력)

           -m(하드웨어 타입 출력)

           -n(호스트명 출력)

           -r(운영체제의 릴리즈 번호를 출력)

           -s(운영체제 이름 출력)

           -v(운영체제 버전 출력)

 

32. history

  사용자의 홈 디렉터리에는 .bash_history 파일이 있으며 이 파일에는 사용자가 사용했던 명령어들이 기록되어 있습니다. 이를 확인하는 명령어가 history 이며, 이 명령어를 사용하면 현재까지 사용했던 명령어들의 전체 목록이 출력됩니다. 만일, 명령어의 목록에서 자신이 사용하지 않았던 명령어가 기록되어 있다면 다른 누군가가 침입을 했을지도 모르는 일입니다. history 명령어의 형식은 다음과 같습니다.

 

< 사용 방법 >

# history [숫자] [옵션]

option : -w[파일] (지정한 파일에 history 명령어의 실행 결과를 출력합니다.)

           -a(히스토리 파일에 히스토리 행을 추가합니다.)

           -n(히스토리 파일로부터 현재 히스토리 목록으로 아직 읽어 들이지 않는 히스토리 행을 읽어 들입니다. 현재 bash 세션 시작부터 히스토리 파일에

            가한 행을 말합니다.

           -r(히스토리 파일의 내용을 읽어 현재 히스토리로 사용합니다.

[출처] 리눅스 기본명령어|작성자 몽상가

'리눅스 > 리눅스명령어' 카테고리의 다른 글

VI 명령어  (7) 2012.06.14
awk  (6) 2012.02.15
리눅스 퍼미션 permission  (1) 2012.02.15
vlan vconfig  (3) 2012.02.15
sysctl 명령어  (2) 2012.02.15
Posted by GUCCI
, |

awk

리눅스/리눅스명령어 / 2012. 2. 15. 17:35
1. awk ?
awk는 데이터 양식이나 문서나 혹은 자룔르 처리하여 다른 형태의 문서 또는 결과물을 출력하는데 사용한다.

2. awk 의 구조
  - 시작 (BEGIN) : 입력데이터를 실행하기에 적합한 형태로 바꾸어 주는 단계
  - 실행 (Routine) : 잘 덩리된(정규화된) 데이터를 실제 루틴으로 처리하는 단계
  - 종료 (END) : 데이터가 처리된 후에 결과의 추가 출력

3. awk 의 사용
일반적으로 grep 과 같이 사용된다.

  1. grep 을 이용하여 데이터 파일의 구조 확인
  2. 정규화가 가능하지를 확인하고 sed로 테스트 한후에 awk 가 처리할수 있을정도로 
     정규화되있다면 awk를 사용
  3. sed로 정규화된 양식을 awk 로 처리

■■■■ ■■ ■■■■ ■ ■■■■■■■ ■
■■ ■■ ■■ ■■ ■■■■■■■■■ ■■
■■■■■■■■■■ ■■ ■■ ■■ ■ ■ 

위의 데이터 형식은 아래의 형식으로 바뀌게 된다.
R1  ■■■■                ■■ ■■■■ ■    ■■■■■■■      ■
R2  ■■                     ■■ ■■      ■■ ■■■■■■■■■ ■■
R3  ■■■■■■■■■■ ■■ ■■      ■■ ■                     ■ 
      F1                      F2   F3        F4   F5                    F6
      $1                      $2   $3         $4   $5                    $6

만약 awk 로 위의 데이터를 출력하면

awk '{print $1}' 위의데이터
■■■■
■■
■■■■■■■■■■

이렇게 출력된다.

awk [option] 'script' [file]


4. awk 의 옵션
-Fc : field separator 지정 (c 가 구분자이며 기본은 공백으로 설정)
-v 변수=값 : 스크립트를 실행하기 전에 미리 변수에 값을 지정
-f : 스크립트 파일을 지정


5. awk 의 응용
패턴 {동작}
커맨드 라인에서는 패턴, 동작 전체를 단일 따옴표(')로 묶어야 한다.
 - 패턴만 있는 경우 : 패턴과 일치하는 라인을 화면에 출력
 - 동작만 있는 경우 : 모든 라인이 동작의 대상이 됨

패턴
- /정규식표현/ : 정규식으로 표현된 패턴과 일치 여부
- 비교연산 : 숫자, 알파벳 모두 사용가능
- 패턴 매칭 연산 : ~ 일치하는 부분 , !~ 일치하지 않는 부분
- BEGIN : 첫번째 레코드가 읽혀지기 전에 어떤 동작을 정의
- END : 마지막 레코드가 모두 읽혀진 후에 어떤 동작을 정의

동작
- 동작은 모두 {}로 둘러싸야 한다.

시스템 변수

 시스템 변수  설명 
 FILENAME  현재 파일명 
 FS  입력 필드 구분
 기본 : 공백
 NF  현재 레코드 필드 갯수
 NR  현재 레코드 번호
 OFMT  숫자에 대한 출력 포맷
 기본 : $.6g
 OFS  출력 필드 구분
 기본 : 빈줄
 ORS  출력 레코드 구분
 기본 : newline
 RS  입력 레코드 구분
 기본 : newline
 $0  입력 레코드
 $n  입력 레코드의 N번째 필드
 ARGC  커맨드 라인의 인자 개수
 ARGV  커맨드 라인 인자를 포함하는 배열
 ENVIRON  환경 변수들을 모아둔 관계형 배열
 FNR  NR과 동일
 단지 현재 파일에 적용된다는 점이 다름
 RSTART  지정한 매칭 연산을 만족하는 문자열의 맨 앞부분
 RLENGTH  지정한 매칭 연산을 만족하는 문자열의 길이


연산자

 산술연산자  =, +=, -=, *=, /=, %=
 조건연산자
 (condition)? (true) : (fales)
 논리연산자  ||, &&, !
 패턴연산자  ~, !~
 비교연산자  <, <=, >, >=, !=, ==
 증감연산자  ++, --
 필드참조  $


제어문

문법 자체는 C언어의 제어문과 같다.
 - break
 - continue
 - do { Routine } while (condition)
 - exit
 - for ( init ; condition ; re ) { Routine }
 - if ( condition ) { Routine } else { Routine }
 -  while (condition) { Routine }
 - return 

함수

 - 문자열 함수
 
 함수명 설명 
 gsub(r, s)
 입력 문자열 전부에 걸쳐 정규식표현 r을 문자열 s로
 치환한다.
 gsub(r, s1, s2)
 입력문자열 s2 에서 정규식 표현 r을 문자열 s1 으로
 치환한다.
 index(s1, s2)
 s1에서 s2의 위치를 넘겨준다. 없다면 0
 length(arg)  인자의 길이를 넘겨준다.
 match(s, r)
 문자열 s에서 정규식표현 r과 매칭 되는 부분의 
 위치를 넘겨준다.
 split(string, array[, seperator])
 구분자를 기준으로(기본:공백)해서 지정한 문자열을 
 배열로 만든다.
 sub(r, s) , sub(r, s1, s2)
 gsub 와 동일
  정규식식표현과 일치하는 문자열이 여러개라도 
 처음 한 문자열만 치환
 substr(s, m)
 문자열 s 에서 m번째 위치에서 끝까지 문자열을 
 넘겨준다.
 substr(s, m, n)
 문자열 s 에서 m번째 부터 n번째까지의 문자열을
 넘겨준다
 tolower(string)  대문자를 소문자로 바꾼다.
 toupper(string)  소문자를 대분자로 바꾼다.


- 수학 함수
 
 함수명 설명 
atan2(x, y)
 archtangent 값
cos(x)
 cos 값
exp(x)
 자연대수 e의 제곱
int(x)
 정수형으로 반환
log(x)
 로그
rand()
 0에서 1까지의 랜덤수
sin(x)
 sin 값
sqrt(x)
 제곱근
srand(expr)
 인자를 가진 난수(없으면 시간을 가지고 난수 발생)


- 입출력 함수
 
 함수명 설명 
close(filename)
 지정한 파일을 닫는다.
close(cmd)
 지정한 명령어 파이프를 닫는다.
delete array[element]
 지정한 배열요소를 지운다.
getline()
 다음 레코드를 읽어 들인다.
getline [variable] [< "filename"]
 파일에서 읽어드린다.
next
 다음 레코드를 입력받는다.
print [args] [> "filename"]
 인자를 출력한다
printf "format" [,exp] [> "filename"]
 형식에 맞춰 인자를 출력한다.
sprintf(format [,exp])
 printf와 마찬가지로 사용되지만 값을 
 리턴하기만 하고 출력은 하지 않는다.
system(cmd)
 시스템 내부 명령어를 실행한다.



6. 예문

1에서 10까지 출력
awk 'BEGIN { for (i = 1;i<=10;i++)  print i }'



현재 디렉토리의 파일들이 이름만 출력
ls -al | awk '{print $9}'



연재 디렉토리의 파일 이름중에 소문자 알파벳이 포함된 파일명은 출력하지 않음
ls -al | awk '/^[a-z]/{ print $9  }'



'리눅스 > 리눅스명령어' 카테고리의 다른 글

VI 명령어  (7) 2012.06.14
리눅스 기본 명령어  (3) 2012.02.15
리눅스 퍼미션 permission  (1) 2012.02.15
vlan vconfig  (3) 2012.02.15
sysctl 명령어  (2) 2012.02.15
Posted by GUCCI
, |

1. 퍼미션 정리

 

※ -rw-------  1 root  root       85 Mar 31 11:02 filename

    : 파일유형

     rw- : 파일소유주권한(Owner)

          --- : 파일그룹권한(Group)

               --- : 파일일반권한(Other)

                      1 : 링크수

                         root : 파일소유주

                               root : 파일소유 그룹

                                           85 : 파일크기(Byte)

                                                Mar 31 11:02 : 마지막변경 날짜 / 시간

                                                                    filename : 파일명

 

 

 7

 rwx

 읽기(4) 쓰기(2) 실행(1)

 6

 rw-

 읽기(4) 쓰기(2)

 5

 r-x

 읽기(4) 실행(1)

 4

 r-

 읽기(4)

 3

 -wx

 쓰기(2) 실행(1)

 2

 -w-

 쓰기(2)

 1

 --x

 실행(1)

 0

 ---

 


'리눅스 > 리눅스명령어' 카테고리의 다른 글

리눅스 기본 명령어  (3) 2012.02.15
awk  (6) 2012.02.15
vlan vconfig  (3) 2012.02.15
sysctl 명령어  (2) 2012.02.15
insmod, rmmod, lsmod, modprobe  (3) 2012.02.14
Posted by GUCCI
, |

swap swapon swapoff

리눅스 / 2012. 2. 15. 17:31
1. swap ?
swap 이란 하드디스크를 메모리처럼 사용하는 기법
물리적인 메모리가 모자라면 하드디스크를 메모리처럼 데이터를 기록하여 메모리를 확보
프로그램들을 많이 실행해서 메모리가 부족해지면, 메모리 상에 적재된 프로그램 중 지금 당장 필요하지 않은 프로그램 데이터를 하드디스크에 옮겨서 메모리 공간을 확보

2. mkswap
swap 파티션이나 swap 파일을 생성하는 명령어

사용
mkswap [option] swapfile or swappartition [size]

옵션
-c : swap 파티션 생성시 사용
예문
10240K 사이즈의 /swap_file 생성
mkswap /swap_file 10240

dd 명령으로 swap 파일로 사용할 파일을 용량이 넉넉한 파티션에 생성 후
mkswap 명령으로 해당 파일을 swap 파티션으로 만들어준다.

3. swapon
swap 파티션이나 swap 파일을 구동하는 명령어

사용
swapon [option] swapfile or swappartition

옵션
-a : /etc/fstab 에 있는 swap 을 모두 활성화
-s : swap 파티션의 상태를 보여줌

예문
/etc/fstab 에 있는 swap  모두 활성화
swapon -a


4. swapoff
swap 파티션이나 swap 파일의 구동을 중단시키는 명령어

사용
swapoff swapfile or swappartition

예문
swapoff /swap_file

'리눅스' 카테고리의 다른 글

YUM  (0) 2013.02.01
cygwin 에 objective-c 컴파일 환경 셋팅 vim 추가  (1) 2012.04.27
klogd syslogd  (1) 2012.02.15
start-stop-daemon  (1) 2012.02.15
portmap 데몬  (2) 2012.02.15
Posted by GUCCI
, |

klogd syslogd

리눅스 / 2012. 2. 15. 17:31

 Linux Server에서는 기본적으로 두가지 로그가 있다.

① 커널 로그 : kernel messages 라고 하는 것으로 klogd 라는 데몬에 의해 생성
② 시스템로그 : syslogd 데몬에 의해 생성되는 서비스로그


• klogd와 syslogd의 위치를 보려면 which 명령어를 사용하여 확인하면 된다.
  # which klogd
  /sbin/klogd

  # which syslogd
  /sbin/syslogd


• /var/log 디렉토리에서 시스템의 모든 로그를 기록 및 관리를 한다.
• /etc/syslog.conf 파일에서 시스템 로그파일들의 위치를 지정하고 syslogd가 실행이 될때 참조되는 로그파일 설정파일이다.


• /var/log 디렉토리에서 주요한 로그파일들을 살펴보자.
① /var/log/dmesg : 리눅스가 부팅이 될때 출력되는 모든 메시지를 기록하고 있다.
                                부팅시의 에러나 조치사항 등이 기록된다.
                                dmesg 라는 명령어로도 확인이 가능하다.

② /var/log/cron : 시스템의 정기적인 작업에 대한 로그, 즉 시스템 cron 작업에 대한 기록하고 있는 파일
/etc/디렉토리에는 cron.hourly, cron.daily, cron.monthly 디렉토리들이 있는데 이는 각각 시간별, 일별, 주별, 월별로 정기적으로 운영체제에서 자동실행할 작업스크립트 파일들이 존재하고 있다.
이들 크론작업의 실행에 관련된 내용들이 모두 이 로그파일(/var/log/cron)에 기록된다. 

③ /var/log/messages : 리눅스 시스템의 가장 기본적인 시스템로그파일. 시스템 운영에 대한 전반적인 메시지를 저장하고 있다.
주로 시스템 데몬들의 실행상황과 내역, 그리고 사용자들의 접속정보등의 로그기록내역을 기록하고 있다.

④ /var/log/secure : 원격로그인 정보를 기록하고 있는 로그파일
언제, 누가, 어디에서, 어떻게 접속했는가에 대한 로그를 기록하고 있다.
sshd데몬과 su 관련 실행, telnet 관련 원격접속 등이 기록된다.

⑤ /var/log/xferlog : 리눅스 시스템의 FTP 로그파일로서 proftpd 또는 vsftpd 데몬들의 서비스내역을 기록하는 파일

⑥ /var/log/maillog : sendmail 또는 qmail 등과 같은 메일송수신관련 내역들과 ipop 또는 imap 등과 같은 수신내역들에 대하여 기록



• /etc/syslog.conf 파일은 각각의 로그파일들이 어디에 남겨지는가에 대하여 설명되어 있다. 형식을 보면
   형식 : facility.priority; facility.priority                                                logfile-location
                    A         B             A          B                                                                              C
   → A 서비스(데몬)에 대하여 B의 경우에 해당하는 상황이 발생하였을 때에 C 로그파일에 그 기록을 남겨라

facility : 서비스 이름
priority : 메시지의 우선순위를 의미


• syslogd에서 사용하는 facility의 종류와 의미
*           : 모든 서비스를 의미
auth       : 로그인과 같이 사용자 인증에 과한 메시지
authpriv : 보안 및 승인에 관한 메시지
cron      : crond 데몬과 atd 데몬에 의해 발생되는 메시지
daemon : telnet, ftp 등과 같은 데몬에 의한 메시지
kern       : kernel 에 의한 메시지로서 커널메시지라고함
lpr          : 프린터데몬인 lpd에 의해 발생되는 메시지
mail        : sendmail 또는 pop 또는 qmail 등의 메일에 의해 발생되는 메시지
news      : innd 등과 같은 뉴스시스템에 의해 발생되는 메시지
uucp       : uucp에 의한 시스템에 의한 메시지
user       : 사용자에 의해 생성된 프로세스
syslog    : syslogd에 의해 발생되는 메시지
local0~local7 : 시스템부팅 메시지 기록, 기타 여분서비스에 사용하기 위함


• syslogd에서 사용하는 priority의 종류와 의미
*           : 발생하는 모든 상황에 대한 메시지
debug   : 최하위, 디버깅관련 메시지
info       : 단순한 프로그램에 대한 정보 및 통계관련 메시지
notice   : 에러가 아닌 알림에 관한 메시지
warning : 주의를 요하는 메시지
err        : 에러가 발생한 상황의 메시지
crit        : 급한상황은 아니지만 치명적인 시스템 문제발생 상황의 메시지
alert      : 즉각적인 조치를 취해야하는 상황의 메시지
emerg   : 최상위, 매우 위험한 상황의 메시지, 전체공지가 요구되는 메시지
none     : 어떠한 경우라도 메시지를 저장하지 않음.


• 커널로그데몬과 시스템로그데몬 컨트롤 하기
  /etc/rc.d/init.d/syslog 라는 스크립트 파일을 이용하여 시작/재시작/종료가 가능하다.

  # /etc/rc.d/init.d/syslog restart
  # /etc/rc.d/init.d/syslog stop
  # /etc/rc.d/init.d/syslog start


• 로그모니터링하기 : 로그의 갱신상황이 계속 뜬다.
  # tail -f [로그파일절대경로]


• syslogd 버전 확인
  # syslogd -v


• 서버의 로그파일을 그대로 방치할 경우 파일시스템풀(Filesystem full)이 생길 수 있다. Filesystem full이란 할당된 디스크공간에 여유공간이 모자란다는 의미이다. 그러므로 로그파일을 잘 관리해야한다.

'리눅스' 카테고리의 다른 글

cygwin 에 objective-c 컴파일 환경 셋팅 vim 추가  (1) 2012.04.27
swap swapon swapoff  (2) 2012.02.15
start-stop-daemon  (1) 2012.02.15
portmap 데몬  (2) 2012.02.15
Linux Hotplug  (6) 2012.02.10
Posted by GUCCI
, |

start-stop-daemon

리눅스 / 2012. 2. 15. 16:52
start-stop-daemon은 rc.d 에서 사용하는 녀석인데..
프로그램인지, 스크립트인지는 모르겠다.


간단하게 데몬 프로그램을 실행하고 자동으로 추적해서 죽이는 녀석이다.
service xinetd start / stop / restart 
등의 녀석을 구현해주는 착한 녀석이다.

OPTIONS

-x|--exec executable
    Check for processes that are instances of this executable (according to /proc/pid/exe ). 
-p|--pidfile pid-file
    Check whether a process has created the file pid-file. 
-u|--user username|uid
    Check for processes owned by the user specified by username or uid. 
-g|--group group|gid
    Change to group or gid when starting the process. 
-n|--name process-name
    Check for processes with the name process-name (according to /proc/pid/stat). 

아무튼, -x 로 되어서 제대로 찾지를 못해 죽이지 못하길래
-n 으로 해주었더니 인자에 문제가 있었는지 못죽였다.
아무튼 -n의 경우에는 경로가 아니라 실행파일의 이름만 넣어주면 된다.

예를 들어 /sbin/udhcpc의 경우에는
-name udhcpc 하면 종료해준다.

'리눅스' 카테고리의 다른 글

swap swapon swapoff  (2) 2012.02.15
klogd syslogd  (1) 2012.02.15
portmap 데몬  (2) 2012.02.15
Linux Hotplug  (6) 2012.02.10
리눅스 부팅 과정  (2) 2012.02.10
Posted by GUCCI
, |

portmap 데몬

리눅스 / 2012. 2. 15. 16:51

portmap 데몬은 RPC Program의 Number를 인터넷 Port Number로 변환해 준다.

 

RPC 서버가 start-up 할 때,

그것은 portmap 데몬으로 등록한다.

그 서버가 portmap 데몬에게 어느 port가 listening중이며
어느 RPC program이 그것을 서비스 하는지 알려준다.

그러므로, portmap 데몬은 그 Host에 등록된 모든 port의 위치를 알고

어느 Program들이 이들 Port들에게 Available한지를 안다.

 

한 클라이언트는 각 Program에 대해 call을 시도하는

 portmap 데몬에 단지 한번 문의한다.

그 portmap 데몬은 클라이언트에게 어느 port가 그 call을 보낼수 있는지 알려준다.

그 클라이언트는 미래에 참조될 수 있는 이 정보를 저장해 둔다.

 

표준 RPC 서버들이 정상적으로 inetd 데몬에 의해 start된 이후에,

inetd 데몬이 실행되기전에, portmap 데몬이  반드시 먼저 start되어야 한다.

 

 

 

 

<< portmap daemon을 사용하는 것들 >>

rpc daemon들이 portmap을 사용합니다.

rpc가 선행되어 살아나고, inetd가 살아난다.

 

/etc/rpc에 정의된 rpc daemon들

portmapper      100000  portmap sunrpc
rstatd          100001  rstat rup perfmeter
rusersd         100002  rusers
nfs             100003  nfsprog
ypserv          100004  ypprog
mountd          100005  mount showmount
ypbind          100007
walld           100008  rwall shutdown
yppasswdd       100009  yppasswd
etherstatd      100010  etherstat
rquotad         100011  rquotaprog quota rquota
sprayd          100012  spray
3270_mapper     100013
rje_mapper      100014
selection_svc   100015  selnsvc
database_svc    100016
rexd            100017  rex
alis            100018
sched           100019
llockmgr        100020
nlockmgr        100021
x25.inr         100022
statmon         100023
status          100024
bootparam       100026
ypupdated       100028  ypupdate
keyserv         100029  keyserver
sunlink_mapper  100033
tfsd            100037
nsed            100038
nsemntd         100039
showfhd         100043  showfh
cmsd            100068  dtcalendar
ypxfrd          100069  ypxfr
pcnfsd          150001
nisd            100300  rpc.nisd
nis_cachemgr    100301  nis_cachemgr
nispasswd       100303  rpc.nispasswdd
autofs          100099  automount       #209812
ttdbserver     100083  tooltalk

'리눅스' 카테고리의 다른 글

klogd syslogd  (1) 2012.02.15
start-stop-daemon  (1) 2012.02.15
Linux Hotplug  (6) 2012.02.10
리눅스 부팅 과정  (2) 2012.02.10
/dev/null 2>&1 의 의미  (1) 2012.02.10
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함