블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
쉘스크립트 (5)
임베디드리눅스 (0)
리눅스명령어 (11)
웹프로그래밍 (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

'리눅스/리눅스명령어'에 해당되는 글 11건

  1. 2012.06.14 VI 명령어 7
  2. 2012.02.15 리눅스 기본 명령어 3
  3. 2012.02.15 awk 6
  4. 2012.02.15 리눅스 퍼미션 permission 1
  5. 2012.02.15 vlan vconfig 3
  6. 2012.02.15 sysctl 명령어 2
  7. 2012.02.14 insmod, rmmod, lsmod, modprobe 3
  8. 2012.02.14 test 명령어 3
  9. 2012.02.14 at 와 crond 명령어 2
  10. 2012.02.13 grep 명령어 와 활용 7

 

 

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
, |

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
, |
vlan은 우분투에서 vlan 패키지로 vconfig라는 프로그램을 제공하게 된다.

$ vconfig
'vconfig' 프로그램은 현재 설치되어 있지 않습니다.  다음을 입력하여 이를 설치할 수 있습니다:
sudo apt-get install vlan

$ sudo apt-get install vlan
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
  vlan
0개 업그레이드, 1개 새로 설치, 0개 지우기 및 2개 업그레이드 안 함.
40.3k바이트 아카이브를 받아야 합니다.
이 작업 후 180k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://kr.archive.ubuntu.com/ubuntu/ lucid/main vlan 1.9-3ubuntu3 [40.3kB]
내려받기 40.3k바이트, 소요시간 0초 (242k바이트/초)
전에 선택하지 않은 vlan 패키지를 선택합니다.
(데이터베이스 읽는중 ...현재 185765개의 파일과 디렉토리가 설치되어 있습니다.)
vlan 패키지를 푸는 중입니다 (.../vlan_1.9-3ubuntu3_i386.deb에서) ...
man-db에 대한 트리거를 처리하는 중입니다 ...
vlan (1.9-3ubuntu3) 설정하는 중입니다 ...

$ vconfig
Expecting argc to be 3-5, inclusive.  Was: 1

Usage: add             [interface-name] [vlan_id]
       rem             [vlan-name]
       set_flag        [interface-name] [flag-num]       [0 | 1]
       set_egress_map  [vlan-name]      [skb_priority]   [vlan_qos]
       set_ingress_map [vlan-name]      [skb_priority]   [vlan_qos]
       set_name_type   [name-type]

* The [interface-name] is the name of the ethernet card that hosts
  the VLAN you are talking about.
* The vlan_id is the identifier (0-4095) of the VLAN you are operating on.
* skb_priority is the priority in the socket buffer (sk_buff).
* vlan_qos is the 3 bit priority in the VLAN header
* name-type:  VLAN_PLUS_VID (vlan0005), VLAN_PLUS_VID_NO_PAD (vlan5),
              DEV_PLUS_VID (eth0.0005), DEV_PLUS_VID_NO_PAD (eth0.5)
* FLAGS:  1 REORDER_HDR  When this is set, the VLAN device will move the
            ethernet header around to make it look exactly like a real
            ethernet device.  This may help programs such as DHCPd which
            read the raw ethernet packet and make assumptions about the
            location of bytes.  If you don't need it, don't turn it on, because
            there will be at least a small performance degradation.  Default
            is OFF.

$ sudo modprobe 8021q

$ lsmod | grep 8021q
8021q                  18564  0 
garp                    6284  1 8021q

$ sudo vconfig add eth0 10
Added VLAN with VID == 10 to IF -:eth0:-

$ sudo ifconfig eth0.10 10.0.0.1 netmask 255.255.255.0

$ ifconfig
eth0.10   Link encap:Ethernet  HWaddr 00:e0:91:0b:75:8c  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:91ff:fe0b:758c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:2110 (2.1 KB) 

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

awk  (6) 2012.02.15
리눅스 퍼미션 permission  (1) 2012.02.15
sysctl 명령어  (2) 2012.02.15
insmod, rmmod, lsmod, modprobe  (3) 2012.02.14
test 명령어  (3) 2012.02.14
Posted by GUCCI
, |
sysctl 명령어는 커널 runtime 시에 커널의 파라미터를 변경할 때 사용
시스템의 /proc/sys 디렉토리밑에 있는 커널 매개변수를 제어

사용
sysctl [option] 파일명 or 파일명=값

옵션
-a : 현재 커널 매개변수와 값을 보여줌
-p : sysctl 환경변수파일 (default : /etc/sysctl.conf)의 설정 상태 표시
-n : 특정키에 대한 값을 보여줌
-w variable=value : 변수에 값을 설정
-A : 테이블형태로 설정가능한 파라미터를 보여줌 

예문
현재 커널의 매개변수값을 출력
sysctl -a


리눅스마스터1급 2차 14회 15번 문제
sysctl 을 이용해 /proc/sys/net/ipv4/icmp_echo_ignore_all 값을 설정
sysctl -w net.ipv4.icmp_echo_ignore_all=1

sysctl 이 /proc/sys 이하의 디렉토리 밑에 있는 커널 매개변수를 제어하는데,
/proc/sys/net/ipv4/icmp_echo_ignore_all 의 경우 기본 /proc/sys 를 제외하고
net 부터 . 으로 디렉토리를 구분하여 변수명으로 설정된다.
/proc/sys/net/ipv4/icmp_echo_ignore_all 의 설정은

net.ipv4.icmp_echo_ignore_all 변수가 된다

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

리눅스 퍼미션 permission  (1) 2012.02.15
vlan vconfig  (3) 2012.02.15
insmod, rmmod, lsmod, modprobe  (3) 2012.02.14
test 명령어  (3) 2012.02.14
at 와 crond 명령어  (2) 2012.02.14
Posted by GUCCI
, |
insmod : 모듈 적재. 커널 디렉토리를 뒤져서 해당 모듈을 적재한다


■ 형식 : insmod [옵션] [오브젝트파일]

■ 옵션
  -k : autoclean 을 사용하여 적재



■ rmmod : 모듈 삭제

■ 형식 : rmmod [옵션] [모듈]

■ 옵션
  -r : 의존관계에 있는 모듈을 한번에 삭제



■ lsmod : 적재된 모듈 출력(/proc/modules 를 참조한다)

■ 형식 : lsmod [옵션]

■ 옵션
  -V : lsmod 버전 출력



■ modprobe : 모듈 적재. depmod에 의해 갱신된 modules.dep에서 찾아 적재한다. insmod와 달리 해당 커널 디렉토리로 갈 필요없이 아무위치에서나 모듈을 적재할수 있다. 또한 의존성이 필요한 모듈이나 먼저 실행되어야 할 모듈이 있다면 그 모듈부터 적재하고 해당 모듈을 적재한다

■ 형식 : modprobe [옵션] [오브젝트파일]

■ 옵션
  -k : autoclean 을 사용하여 적재
  -r : 모듈 삭제



■ depmod :
 의존성 검사를 한뒤 modules.dep 파일을 갱신한다. kernald나 modprobe를 실행하기 전엔 꼭 depmod -a를 사용하는 습관을 들인다

■ 형식 : depmod [옵션]

■ 옵션



■ modinfo : 모듈 정보 확인

■ 형식 : modinfo [모듈명]



* autoclean

autoclean라는 플레그를 사용하면 커널 데몬(kerneld)에 의해 일정시간 사용하지 않는 모듈을 삭제한다. 단 커널 컴파일시 kerneld 지원 여부를 물을때 Y를 해야 사용 가능

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

vlan vconfig  (3) 2012.02.15
sysctl 명령어  (2) 2012.02.15
test 명령어  (3) 2012.02.14
at 와 crond 명령어  (2) 2012.02.14
grep 명령어 와 활용  (7) 2012.02.13
Posted by GUCCI
, |
이름
test - 화일 유형을 점검하고 값을 비교한다. 
개요
test [표현식] 
test {--help,--version} 
설명
이 맨페이지는 GNU 버전의 test 를 다룬다. 대부분의 쉘은 같은 이름, 같은 기능의 내장 명령을 지니고 있을 것이다. 
test 조건 표현식의 평가에 따라 0 (참) 또는 1 (거짓)의 상태를 반환한다. expr. 은 단항식(unary) 또는 이항식(binary)가 될 수 있다. 단항식은 보통 화일의 상태를 조사하는데 사용된다. 문자열 연산잔와 수치 비교 연산자도 있다. 


-b 화일 
만약 화일 이 존재하며 블럭 장치이며 참. 
-c 화일 
만약 화일 이 존재하고 문자 장치이면 참. 
-d 화일 
만약 화일 이 존재하고 디렉토리이면 참. 
-e 화일 
만약 화일 이 존재하면 참. 
-f 화일 
만약 화일 이 존재하고 보통의 화일이면 참. 
-g 화일 
만약 화일 이 존재하고 set-group-id 이면 참. 
-k 화일 
만약 화일 이 ``sticky'' 비트 설정을 가지고 있으면 참. 
-L 화일 
만약 화일 이 존재하고 심복릭 링크이면 참. 
-p 화일 
만약 화일 이 존재하고 명명된 파이프이면 참. 
-r 화일 
만약 화일 이 존재하고 읽기 가능이면 참. 
-s 화일 
만약 화일 이 존재하고 0 보다 큰 크기를 갖으면 참. 
-S 화일 
만약 화일 이 존재하고 소켓이면 참. 
-t [fd] 
만약 fd 가 터미널 상에서 오픈된 것이면 참. 만약 fd 가 생략되면 기본값은 1 ( 표준출력 )이다. 
-u 화일 
만약 화일 이 존재하고 set-user-id 비트 설정을 가지면 참. 
-w 화일 
만약 화일 이 존재하고 쓰기가능이면 참. 
-x 화일 
만약 화일 이 존재하고 실행가능이면 참. 
-O 화일 
만약 화일 이 존재하고 유효 사용자 ID의 소유이면 참. 
-G 화일 
만약 화일 이 존재하고 유효 그룹 ID의 소유이면 참. 
화일1 -nt 화일2
만약 화일1 이 (수정일에 의거하여) 화일2보다 최근에 생겼다면 참. 
화일1 -ot 화일2
만약 화일1 이 화일2보다 오래된 것이면 참. 
화일1 -ef 화일2
만약 화일1 과 화일2 이 같은 장치, 같은 아이노드 번호를 갖는다면 참. 
-z 문자열 
만약 문자열의 길이가 0 이면 참. 
-n 문자열 
string
문자열 의 길이가 0 이 아니라면 참. 
문자열1 = 문자열2
두 문자열이 같으면 참. 
문자열1 != 문자열2
두 문자열이 같지 않으면 참. 
! 표현식 
표현식 이 거짓이면 참. 
표현식1 -a 표현식2
표현식1 과 표현식2 가 둘 다 참이면 참. 
표현식1 -o 표현식2
표현식1 또는 표현식2 둘 중 하나라도 참이면 참. 
인수1 OP 인수2 
여기서 OP 는 다음 중 하나이다. -eq, -ne, -lt, -le, -gt, 또는 -ge. 이러한 수치 이항 연산자들은 각각 만약 인수1이 인수2보다 같거나, 같지 않거나, 작거나, 작거나 같거나, 크거나, 크거나 같을 때 참을 반환한다. 인수1 와 arg2 는 양의 정수, 음의 정수 또는 문자열 의 길이를 평가하는 -l 문자열 표현식이 될 수 있다. 

옵션
GNU test 가 단 한 개의 인수로 시작하면 다음 옵션이 인식된다: 
--help 
표준출력으로 사용법을 출력하고 정상적으로 종료한다. 
--version 
표준출력으로 버전정보를 출력하고 정상적으로 종료한다.

[출처] [리눅스 명령어] test|작성자 holyruby

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

sysctl 명령어  (2) 2012.02.15
insmod, rmmod, lsmod, modprobe  (3) 2012.02.14
at 와 crond 명령어  (2) 2012.02.14
grep 명령어 와 활용  (7) 2012.02.13
ln 명령어 심볼릭,하드  (4) 2012.02.13
Posted by GUCCI
, |

1. at

특정 시간에 특정 job을 자동으로 실행하고자 할 때 사용

at [-m] [-r job] [-t time] [date]

-m : job 이 끝난 후 사용자에게 메일을 보냄

-r : queue 에서 전에 스케쥴되었던 job을 제거

-t time : 명령어를 실행할 시간 지정

date : 명령어를 실행할 날짜 지정

 

# date
Wed Mar  4 10:16:32 KST 2009

#
# at 10:16 am 2009-03-05        // 2009년 3월 5일 오전 10시 16분에 at 작업 등록
at> touch /mylinux/attest1
at> <EOT>                          // ^D
job 4 at 2009-03-05 10:16
#

# at 15:00 2009-03-05            // 2009년 3월 5일 오후 3시에 at 작업 등록
at> touch /mylinux/attest2
at> <EOT>
job 5 at 2009-03-05 15:00
#

# atq         // at 작업 확인
5       2009-03-05 15:00 a root
4       2009-03-05 10:16 a root
#
# at -r 4    // at 작업 중 4번 작업 삭제
# atq
5       2009-03-05 15:00 a root

#
# atrm 5    // at 작업 중 5번 작업 삭제. at -r 과 동일
# atq
#

 

/etc/at.deny (솔라리스에선 /etc/cron.d/at.deny)

at를 실행하는 사용자를 제한할 수 있다.

at.deny 에 등록된 사용자가 at 를 사용할 경우 다음의 메시지를 뿌리며 사용을 제한한다.

 

$ at 10:00 pm
You do not have permission to use at.

 

/etc/at.allow (/etc/cron.d/at.allow)

이 파일은 존재하진 않지만 root가 이 파일을 만들어 특정 사용자에게만 at를 실행할 수 있도록 할 수 있다.

at.allow, at.deny 가 둘다 존재할 경우 at.allow를 먼저 읽은 후 at.deny를 읽는다.

 

at.deny, at.allow 파일 둘다 존재하지 않을 경우 root 만이 at 작업을 실행할 수 있다.

 

2. crond

일정한 시간에 정기적인 작업을 수행하고자 할 때 사용

6개의 필드로 구성되어 있으며 각 필드는 Spacebar 나 tab으로 구분

minute hour day month weekday command

-> 10 3 * * 0 /usr/lib/newsyslog

-> 매주 일요일 3시 10분에 /usr/lib/newsyslog 실행

minute : 0-59 | hour : 0-23 | day : 1-31 | month : 1-12, January-December | weekday : 0-6 (0 : sunday)

 

# crontab -e           // crontab 을 추가하기 위해 실행
no crontab for root - using an empty one
30 * * * * echo "crontab test no 1" > /mylinux/crontest
30 */2 1-10 3,4,5 * echo "crontab test no 2" >> /mylinux/crontest
crontab: installing new crontab
#
# crontab -l           // 등록된 crontab 확인
30 * * * * echo "crontab test no 1" > /mylinux/crontest
30 */2 1-10 3,4,5 * echo "crontab test no 2" >> /mylinux/crontest
#

# vi /var/spool/cron/root       // 등록한 crontabl 이 저장된 파일. 개별적으로 crontab을 지울 땐 여기서 지우면 된다.
30 * * * * echo "crontab test no 1" > /mylinux/crontest
30 */2 1-10 3,4,5 * echo "crontab test no 2" >> /mylinux/crontest
# crontab -r           // 등록된 crontab 을 모두 삭제
# crontab -l
no crontab for root

 

/etc/cron.deny (솔라리스 : /etc/cron.d/cron.deny)

root 가 /etc/cron.allow 파일을 만들어 특정 사용자에게 crontab 명령을 실행할 수 있도록 제한할 수 있다.

cron.deny 파일이 비어 있고, cron.allow 파일이 없다면 모든 사용자에게 crontab 을 허용하게 된다.

# vi /etc/crond.deny

ikssun

wq!

# su ikssun
$ crontab -e
You (ikssun) are not allowed to use this program (crontab)
See crontab(1) for more information

 

만약 crontab 을 아무 인수(-e, -l, -r) 없이 실행했을 경우 ctrl+c 를 눌러 종료해야 한다.

ctrl+d 를 눌러 종료했을 경우 기존의 crontab 파일이 빈 파일로 overwrite 되기 때문이다.

[출처] [Linux] at 와 crond|작성자 토토로

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

sysctl 명령어  (2) 2012.02.15
insmod, rmmod, lsmod, modprobe  (3) 2012.02.14
test 명령어  (3) 2012.02.14
grep 명령어 와 활용  (7) 2012.02.13
ln 명령어 심볼릭,하드  (4) 2012.02.13
Posted by GUCCI
, |

grep 명령어는 지정한 파일 내에서 특정 문자열을 검색할 때 사용하는 명령어 입니다.

 

명령어 위치 : /bin/grep

 

사용형식 : grep [옵션] 검색할문자열

 

예1) 지정된 파일 내에서 특정문자를 찾기

httpd.conf 파일안에서 root 라는 단어를 찾아보겠습니다.

#grep root httpd.conf

  #httpd as root initially and it will switch.

위 와같은 결과가 출력되고 출력된 행안에 root 라는 단어가 포함되어 있는것을 확인 할 수 있습니다.

 

 

 

예2) 지정된 파일 내에서 특정문자가 포함된 행의 개수 출력하기

 특정문자가 포함된 행을 보여주는 것이 아니라 특정문자를 포함하고있는 행의 개수를 알고 싶다면

 -c 옵션을 사용하면 됩니다.

 httpd.conf 파일 내에 root 라는 단어를 포함하고 있는 행의 개수를 출력해 보겠습니다.

#grep -c root httpd.conf

 1

위의 결과를 보듯이 httpd.conf 파일 내에는 root를 포함하고 있는 행의 개수가 1개 임을 알 수 있습니다.

 

 

 

예3) 지정된 파일 안에서 특정문자가 포함되지 않은 행만 검색하기

지정된 파일안에서 특정문자가 포함되지 않은 행을 검색하려면 -v 옵션을 사용하면 됩니다.

test1.txt 에서 windows 라는 문자를 포함하지 않는 행을 검색해 보도록 하겠습니다.

우선 tset1.txt 파일 안의 내용을 살펴보도록 하겠습니다

#cat test1.txt

Centos linux
user name
system123

microsoft windows

 

test1.txt 파일에서 windows라는 문자가 존재하지 않는 행만 검색하고 싶다면 다음과 같이 하면 됩니다.

#grep -v windows test1.txt

Centos linux
user name
system123

위의 결과처럼 windows라는 문자가 존재하는 행을 제외한 모든행이 출력 되었습니다.

 

 

 

예4) 지정된 파일 내에서 대소문자 구분없이 특정문자 검색하기

리눅스시스템에서는 기본적으로 대소문자를 구분합니다. 하지만 대소문자의 구분 없이 검색하고 싶다면 -i 옵션을 사용하면 됩니다.

-i 옵션을 설명하기 위해서 test2.txt 라는 파일을 사용하도록 하겠습니다

우선 test2.txt 파일안의 내용을 살펴보도록 하겠습니다.

#cat test2.txt

I am system engineer
Linux is open source software

test2.txt 파일은 위와 같은 두행을 가지고 있습니다.

-i 옵션을 사용하지 않고 linux라는 단어를 검색해 보도록 하겠습니다.

#grep linux test2.txt

 

위와같이 아무런 결과가 나오지 않습니다.

이번엔 -i 옵션을 사용해보도록 하겠습니다.

#grep -i linux test2.txt

Linux is open source software

linux라는 문자를 검색했지만 -i 옵션을 사용하였기 때문에 Linux 가 포함된

Linux is open source software 라는 행이 출력 됩니다.



개인적으로 보통 grep 명령어를 아래와 같이 특정 문서를 출력하면서 연결 명령어로 주고 사용했었다.

 

cat [파일명] | grep [찾고자하는 문자열]

 

이러면 통상 아래와 같이 출력된다.

 

[찾고하는 문자열을 포함하는 라인의 문자열]

...

 

그런데 다른 사람들의 사용법을 보니 내가 사용하는 사용법보다 더 유용한 것같아 여기 정리해본다.

 

특정 폴더내에서

grep -i [찾고자하는 문자열] [디렉토리경로/*]

 

여기서 -i 옵션은 대소문자 구분을 무시하는 명령어이다.

 

디렉토리 경로는 지정하지 않으면 해당 경로내의 파일들만 검색한다.

 

[검색된 파일명]:[찾고하는 문자열을 포함하는 라인의 문자열]

...

 

아래와 같이 사용해도 유사한 검색 결과를 얻을 수 있다.

 

find . -type f -print | xargs grep [찾고자하는 문자열]

 

위와 같이 하면 해당 경로와 하위 경로내의 파일들을 검색하여 해당 문자열이 있는 파일을 보여준다.

 

아마 find 명령어때문에 해당 경로내의 모든 하위 경로의 파일을 검색해주는 것 같습니다.

 

[검색된 파일명]:[찾고하는 문자열을 포함하는 라인의 문자열]

...


 

[출처] grep 명령어 활용|작성자 영화5사랑

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

sysctl 명령어  (2) 2012.02.15
insmod, rmmod, lsmod, modprobe  (3) 2012.02.14
test 명령어  (3) 2012.02.14
at 와 crond 명령어  (2) 2012.02.14
ln 명령어 심볼릭,하드  (4) 2012.02.13
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함