백괴대학:본관/리눅스 강의/3/3강
백괴사전, 내용 없는 백과사전
- CEMENT98:어서 오세요. 환영합니다.
- 혹자:아놔. 문제가 갑자기 튀어나오면 어째요?
- CEMENT98:거 봐요, 시험 본다고 했지요? 하여간 교수 말 안 믿다가... ㅋㅋ 그럼 3강 시작하지요.
차례 |
[편집] 텍스트 다루기
[편집] cat, more, tail
- 혹자: cat? 고양이?
- CEMENT98:냐아. 아니지요. cat을 입력하면 텍스트 내용을 보는 것이지요.
$cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync (중략) liveplayer:x:1000:1000:liveplay,,,:/home/liveplayer:/bin/bash gameuser:x:1001:1001:,,,:/home/gameuser:/bin/bash
- 두번째구멍:이게 뭡디까?
- CEMENT98:뭐긴요. /etc/passwd의 내용을 볼 수 있습니다. 여기에 -n을 붙이면...
$ cat -n /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3 bin:x:2:2:bin:/bin:/bin/sh
4 sys:x:3:3:sys:/dev:/bin/sh
(중략)
32 liveplayer:x:1000:1000:liveplay,,,:/home/liveplayer:/bin/bash
33 gameuser:x:1001:1001:,,,:/home/gameuser:/bin/bash
- 누: 와우 줄 수가 보인다! 그럼 n은 number인가요?
- CEMENT98:뭐 그런 셈이죠. 아하하.
- CEMENT98:그런데, 내용이 길어지면 어떻게 될까요?
$cat /var/log/dmesg [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 2.6.38-11-generic (buildd@allspice) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) ) #48-Ubuntu SMP Fri Jul 29 19:02:55 UTC 2011 (Ubuntu 2.6.38-11.48-generic 2.6.38.8) [ 0.000000] Command line: root=/dev/sda3 ro (그리고 뭔가 끝도 없이 나온다. 아니, 끝은 있구나.)
- 두번째구멍: 뭐가 이렇게 많아!!
- CEMENT98: 이거 첫 부분 볼 수 있는 사람?
- 두번째구멍: 당연히 못 보죠! 아, gedit 열면 되겠구나.
- CEMENT98: 이봐 지금 GUI상이 아니라 CUI상으로 하는 것 묻는 것이거든요? 이 때는... more라는 명령어가 있다고요!
- CEMENT98: more는 말 그대로 엔터를 치면 '더' 볼 수 있다는 뜻이지요.
- 혹자: 아하..(엔터를 광클한다) 이거 언제까지 광클해야 하는데요!!!
- CEMENT98: 저번에 man은 뭘로 빠져나간댔죠?
- 누: q. 어. 진짜 q 누르니까 빠져나오네요. -_-;
- CEMENT98: 비슷한 명령어로 less가 있습니다. less는 아예 man처럼 새로운 프로그램이 실행됩니다. 위 아래 조작 등이 가능하지요.
- 두번째구멍: 와우. 정말이네. 그런데 끝부분만 조금 보고 싶으면 ... 은 그냥 cat 쓰면 되나?
- CEMENT98: 아하하. tail이 있습니다. 말 그대로 꼬리만 자르고 나오죠. -n으로 출력할 줄 수를 지정할 수 있습니다.
$ tail -n 3 /var/log/dmesg [ 19.396217] type=1400 audit(1315617327.653:10): apparmor="STATUS" operation="profile_load" name="/usr/bin/evince" pid=844 comm="apparmor_parser" [ 19.401799] type=1400 audit(1315617327.663:11): apparmor="STATUS" operation="profile_load" name="/usr/sbin/cupsd" pid=854 comm="apparmor_parser" [ 19.478591] forcedeth 0000:00:07.0: irq 43 for MSI/MSI-X $_
- 두번째구멍: 깔끔해서 좋네요.
- CEMENT98:그럼요. 다른 것은 몰라도, cat은 꼭 기억하시기 바랍니다!
[편집] grep
- CEMENT98:이번에는 정말로 정말로 중요한 명령어인 grep을 배워보도록 하겠습니다.
- CEMENT98:그 전에 파일 하나 만들어보시겠어요? 아직 redirection이니 vi니 뭐니 하나도 안 배웠으니까, gedit이나 kwrite 같은 것 열어보세요.
- CEMENT98:그리고 아래 내용을 컨트롤 씨 브이로 복사 붙여넣기합니다. 파일명은 linux로, 홈 디렉터리(/home/계정명)에 저장하세요!
멍청이 너 리눅스를 배우다
뭐가 뭔지 하나도 모르고 리눅스를 배우다
멍청하게도 시키는대로 다 따라한다 카더라
아무튼 강의를 따라가며 grep이라는 명령어를 배우다
그래서 이 문장을 그대로 컨트롤 씨 브이 신공으로 입력하다
뭐, 아님 말고. 알 게 뭐야
- 혹자:왜 내가 멍청이임여 -_-
- CEMENT98:ㅋ. 아무튼 이거 이상하게 고쳐 쓰다 작동하지 않아도 책임 안 집니다.
$grep 리눅스 linux
멍청이 너 리눅스를 배우다
뭐가 뭔지 하나도 모르고 리눅스를 배우다
$_
- 두번째구멍:그러니까 linux라는 문서에서 리눅스라는 단어가 들어간 줄을 찾는 것이죠?
- CEMENT98:빙고. 그렇다면 '리눅스'라는 단어는 몇 번째 줄에 있을까요?
- 혹자:설마 이것도 아까처럼 -n을 지른다거나...
1:멍청이 너 리눅스를 배우다
2:뭐가 뭔지 하나도 모르고 리눅스를 배우다
- 두번째구멍:어 되네...
- CEMENT98:맞추셨습니다. 꽤나 응용력이 있는 학생이군요. 칭찬하겠습니다.
| grep의 자세한 옵션을 보시려면 오른쪽 구석탱이에 있는 글 보기를 클릭하십시오.→ |
|---|
$grep GREP linux $_
$grep -i GREP linux 아무튼 강의를 따라가며 grep이라는 명령어를 배우다
$grep -w 리눅스 linux $_
$grep -w 리눅스를
멍청이 너 리눅스를 배우다
뭐가 뭔지 하나도 모르고 리눅스를 배우다
$grep -v 리눅스 linux 멍청하게도 시키는대로 다 따라한다 카더라 아무튼 강의를 따라가며 grep이라는 명령어를 배우다 그래서 이 문장을 그대로 컨트롤 씨 브이 신공으로 입력하다 뭐, 아님 말고. 알 게 뭐야
위 명령에서, "멍청"이라는 단어가 없는 줄을 행 숫자와 함께 출력하여 보시오. |
- CEMENT98: grep에 대한 것은 여기까지 하시요. :)
[편집] 와일드 카드
- ^: 라인의 시작
- $: 라인의 끝
- .: (grep에서) 한 글자 (ex. a..b = axyb, a39b 등등)
- ?: (일반적으로) 한 글자 (ex. a..b = axyb, a39b 등등)
- *: 모든 글자(ex. a* = a, abc, ax57 등등)
- +: 모든 글자(ex. a+ = abc, ax57 등등, 위와 같으나 이 상황에서 a는 제외)
- CEMENT98:특히 *는 많이 쓰니까 별표 쫙! 라인의 시작과 라인의 끝은 vi 파트에서도 할 것이니 기억해두면 좋지요!
- 누:헐키. 교수님. 이렇게 줄줄이 써놓기만 해도 돼요?
- CEMENT98:이건 그냥 정리만 해 두는 게 나을 것 같아서요. -.-
- CEMENT98:그럼 이번에 배운 것은 아래에 정리되어 있으니까
- CEMENT98:참고하세요~*
- 누:참고하세요~, 참고하세요~!, 참고하세요~~, 참고하세요~^^, 참고하세요~ㅡㅡ, 참고하세요~ㅗ 등등
- CEMENT98:ㅋㅋ 헐키 너님 천재임. 자 그럼 이 표만 보고 쉬었다가 다시 진행합시다.
| 명령어 | 의미 | 파라미터(옵션) |
|---|---|---|
| cat | 파일 내용을 본다. |
|
| more | 파일의 맨 위부터 내용을 보이며 Enter를 치면 그 아래 내용도 조금씩 보여준다. q로 빠져나온다. | - |
| less | 파일의 맨 위부터 내용을 보이긴 하나 위/아래 등 조절이 가능하여 더 편리하다. q로 빠져나온다. | - |
| tail | 파일의 맨 아래로부터 n줄까지의 내용을 보여준다. |
|
| grep | 파일에서 원하는 텍스트가 있는 줄을 찾는다. |
|
[편집] find
- 누:그런데 교수님, 원하는 파일은 어떻게 찾나요?
- CEMENT98:강의안을 충실히 보고 온 학생이군요. 그래서 find 명령어에 대해 설명하려고 합니다.
- 두번째구멍:find 파일명 하니까 걍 되는데요.
- CEMENT98: find -name 파일명 해야 먹히는 것이 보통인데, 오픈수세는 find 파일명 이렇게 이름을 찾는군요.
- CEMENT98:아무튼 보통은 다음과 같이 -name을 쳐 주어야 합니다.
$find -name girlfriend
- 혹자:아 또 여친... 없는 사람 서러우니까 그만두세요.
- CEMENT98: 뭐, 이름만 여친인데요. -name이잖아요?
- CEMENT98:혹은 파일 타입도 결정할 수 있지요.
$find -type d
- CEMENT98:d는 Directory(디렉터리), f는 File(파일), l은 symbolic Link(심볼릭 링크)입니다.
- 두번째구멍:심볼릭 링크?
- CEMENT98:아차, 아차. 심볼릭 링크는 일종의 바로가기라고 생각하시면 됩니다. ln -s 링크시킬파일 링크파일명로 만들 수 있지요.
- CEMENT98:그리고 아직 안 배웠고, 다음에 알아볼 것이지만 권한을 알아보는 옵션은 -perm이랍니다. permission의 약자죠.
- 두번째구멍:어디서 퍼온것도 아니고 펌.. 아니 펆~이라니.
- CEMENT98:뭐..뭐...뭔가요 휑 -_-;;; 그리고 -print는 내용물 출력입니다만, 생략해도 별다른 문제는 되지 않습니다.
- CEMENT98:그리고 그 다음에는... exec를 알아볼까요? 알고 있던 명령어 있죠? 뭐 있었죠?
- 혹자:find.. 아니 아니 ls, cd, mv, rm ...
- 두번째구멍:오늘 배운 cat! grep!
- CEMENT98:물론 rm같은 것도 있지만 위험하니 문제가 되지 않는 ls를 한 번 써 볼까요?
$find -type f -exec ls {}\;
- 두번째구멍:이거 끝에 {} \; 붙여야 해요?
- CEMENT98:네. 필요합니다. 없으면 실행 안 돼요!
- 두번째구멍:으아니 왜 이리 뭐가 많음!!!
- CEMENT98:후후. 중지시키려면 ctrl+c를 쓰세요. 명령어 창에서는 복사가 아니라, 그냥 강제 종료를 의미하거든요.
- 누:뭐야. 학생 컴퓨터 혹사시키는 나쁜 교수 같으니라고!
- CEMENT98:어? 그 정도면 혹사도 아닐 텐데요? 아무튼, ls라는 명령어를 건 것입니다. 이런 명령어 내리지 않은 것을 다행으로 아세요. 뭐, 권한은 없겠지만.
$find / -exec rm -rf {} \;
- 혹자:rm -rf라면? 으악!!!
- CEMENT98:그렇습니다. rm -rf와 같은 명령어지요. 후후.
- CEMENT98:그렇다면 아래는 find의 옵션을 정리한 표니 잘 알아두세요. 아까는 잠깐잠깐 필요한 이야기만 해서, 그것과 조금 다를 수 있습니다.
| 옵션 | 설명 |
|---|---|
| find -name girlfriend | 이름이 girlfriend인 것 찾기 |
| find -type 타입 | 지정한 파일 형식 찾기
(b=블록 특수 파일, c=문자 특수 파일, d=디렉터리, f=일반 파일, l=심볼릭 링크) |
| find -perm 권한 | 특정 권한이 있는/없는 파일 찾기(다음 강의에서 권한을 다룰 것입니다.) |
| find -atime +7 | 7일 이내 접근한 파일 찾기 (+가 아니라 그냥 날짜로 찾을 수 있음) |
| find -ctime +7 | 7일 이내 파일의 상태가 변경된 파일 찾기 (+가 아니라 그냥 날짜로 찾을 수 있음) |
| find -mtime +7 | 7일 이내 수정된 파일 찾기 (+가 아니라 그냥 날짜로 찾을 수 있음) |
| find -exec 명령어 {} \; | 명령어 실행( {} \;는 필수로 붙여주어야 함) |
- CEMENT98:어차피 man find 하면 다 나오지만, 알 게 뭐야. 이외에도 '잔뜩' 있으니 구경하시거나 말거나.
[편집] 링크
- CEMENT98:여러분 윈도 바로가기 알죠?
- 누:네... 바탕화면에 바로가기 만들기라거나...
- CEMENT98: 아 그건... 있다 이야기하죠. 링크에는 소프트 링크, 즉 심볼릭 링크와 하드 링크가 있습니다. 아까 말한 게 심볼릭 링크죠.
- 두번째구멍:소프트웨어와 하드웨어도 아니고...
- CEMENT98:대충 그런 셈이었겠습니다. ㅋ 소프트 링크.. 흔히 심볼릭 링크라고 하는 것은 바로가기입니다.
$ln -s 대한게임국.txt 대한민국.txt
- CEMENT98: 그럼 대한민국.txt를 실행시키면 대한게임국.txt를 실행하게 되는 셈이죠.
- 누:아하. 넘겨주기!
- CEMENT98: 네. 백괴사전에 비유하자면 넘겨주기 문서인 셈입니다. :) 원본이 삭제되면 그 링크는 못 쓰죠. 그 점도 비슷하네요.
- CEMENT98: 그렇다면 하드 링크는 무엇일까요? 이건 바로가기가 아니라, 아예 내용을 복제합니다.
$ln cement98.txt windowscement98.txt
- 누: cp요???
- CEMENT98: 아뇨. 그와는 다른 의미로, 아예 내용이 동기화된다고 생각하면 됩니다.
- CEMENT98: 그러니까 windowscement98.txt을 반달하면 cement98.txt도 반달이 되고, windowscement98.txt에 내용을 추가하면 cement98.txt의 내용도 추가됩니다.
- 혹자: 와우.ㅋ
- CEMENT98: 그리고 이것은 심볼릭 링크와 달리 둘 중 하나가 날아가도 내용이 보존됩니다. 중요한 내용은 하드 링크를 걸어두는 것이 좋겠죠.
- CEMENT98: 참고로 서로 다른 파티션에는 하드 링크가 걸리지 않습니다. 즉 윈도로 치면 c:\abcd와 d:\abcd간 하드 링크가 되지 않는다는 것이지요. 이유는 아이노드 중복...
- 누: 아이노드요???
- CEMENT98: 이크 -_-;;; 범위를 벗어나버렸네요. 뭐, 그래도 이유는 짚고 넘어가볼까요. 예를 들어 너님 학번이 12345입니다. 그러면 하드링크된 학생 학번도 12345가 됩니다.
- CEMENT98: 그런데, 저 학교에는 12345라는 학번을 가진 다른 학생이 있을 수 있단 말입니다. 결국 학번 중복으로 복제 fail이고, 이를 막기 위해 하드링크 생성 불가... 뭐 이런 개념이죠. ;;
[편집] 압축
- 두번째구멍:tar? 뭘 타요?
- CEMENT98:말장난도 적당히 해야 잼있음요 -_-
- CEMENT98:원래 압축에는 gzip, bzip이라는 명령어가 있습니다.
- CEMENT98:하지만 뭐, 우리는 조금 더 실용적으로 나가자는 차원에서 그 부분은 생략하고, 혹시 x.tar.bz이라는 확장자 들어봤나요?
- 누:아 그거! 리눅스용 파일은 죄다 tar.gz로 줌 -_-;
- CEMENT98:그것은 tar이라는 묶음 파일에서 gz, 즉 gzip 압축까지 했다는 의미입니다! 리눅스에서는 흔히들 이렇게 쓰지요.
- 누:어. tar는 걍 묶음이었음? 켁.
- CEMENT98: 네. 그리고 gzip대신 압축률을 더 높이기 위해 속도가 다소 떨어지더라도 bzip2를 쓰는 경우가 있는데요, 이 때는 z 대신 j를 써주시면 됩니다.
- CEMENT98:그래서 물론 zip으로 압축도 가능하긴 합니다만, 보통 리눅스에서는 tar.gz을 애용합니다.
- CEMENT98:그렇다면 이것만 외우세요. v는 자세한 내용 보기니 빼먹어도 됩니다.
$tar -cvzf test test2 test/ test/tess test/test test/tes3 test/tttttt test/tesb $tar -xvzf test test2 test/ test/tess test/test test/tes3 test/tttttt test/tesb
- CEMENT98:tar -cvzf는 압축하는 것, tar -xvzf는 압축을 푸는 것, 그렇다면 c와 x의 의미는 대충 감이 잡히죠?
- 혹자:c는 묶는 것, x는 파일 추출요.
- CEMENT98:똑똑한 학생이로군요. 정답입니다.
- CEMENT98:저 옵션의 의미는 이 밑에 있습니다.
| 옵션 | 의미 |
|---|---|
| c(create) | 새 저장 파일을 만듦 |
| x(extract) | 묶음에서 파일 추출 |
| v(verbose) | 처리중인 파일이 무엇인지 보여줌 |
| z(gzip/ungzip) | gzip으로 압축/압축 해제한다. |
| j(bzip2/unbzip2) | bzip으로 압축/압축 해제한다. |
| f(file) | 저장 파일 지정 |
- CEMENT98:자 그럼 다음으로 후루루 후딱 넘어가도록 하지요. ㅋ
[편집] REDIRECTION, PIPE
[편집] redirection
- CEMENT98:우리 ls 명령어를 쳤을 때, 이것이 화면에 나타났지요?
$ls autumn_css chrome.svg test 그림 .svg 비디오 제목없음.xcf autumn_html chrome2.svg test2 다운로드 사진 bin public_html 공개 문서 서식 chrome.png suse.jpg 그림 .png 바탕화면 음악
- CEMENT98:너님들 ls 어떻게 입력하셨지요?
- 두번째구멍:키보드로 치지 뭘로 쳐요. -_-;
- CEMENT98:그리고 Enter를 쳤다는 것도 빠지면 안 되겠죠. 그렇다면 이 그림이나 음악 바탕화면 autumn 어쩌고 등등은 어디로 나온 것이죠?
- 누:당연히 터미널이죠.;;
- CEMENT98:그렇습니다. 키보드로 터미널에 직접 입력한 후 Enter를 입력하였으며, 그 결과물이 터미널로 출력되었지요.
- CEMENT98:그렇다면 이것을 재미나게 변형해보겠습니다. 아까 grep에 쓰던 그 문서 있죠? 재탕합니다.
- 누:아. 젭라 rm으로 지워버렸는데
- CEMENT98:그럼 다시 위에서 gedit이나 kwrite로 컨트롤씨브이 하세요.
- $cat < linux
멍청이 너 리눅스를 배우다
뭐가 뭔지 하나도 모르고 리눅스를 배우다
멍청하게도 시키는대로 다 따라한다 카더라
아무튼 강의를 따라가며 grep이라는 명령어를 배우다
그래서 이 문장을 그대로 컨트롤 씨 브이 신공으로 입력하다
뭐, 아님 말고. 알 게 뭐야
- CEMENT98:cat linux와의 차이를 설명해보실 분?
- 누:똑같아 보이는데... linux라는 파일로부터 결과물을 입력받았다는 정도인가? -_-;
- CEMENT98:그렇습니다. 별 차이 모르겠다 하더라도 원리적인 면에서 기억해두면 좋겠지요.
- CEMENT98:그렇다면 이번에는 표준 출력을 바꿔보겠습니다!
$ls > a $_
- 두번째구멍:아무 일도 없어요.
- CEMENT98:그렇다면 cat a 해보실래요?
$cat a autumn_css chrome.svg test 그림 .svg 비디오 제목없음.xcf autumn_html chrome2.svg test2 다운로드 사진 bin public_html 공개 문서 서식 chrome.png suse.jpg 그림 .png 바탕화면 음악 $_
- 누:오잉? 이거 신기한뎈?
- CEMENT98:바로 그것입니다! ls의 결과물이 a로 쏙~ 들어가버렸지요.
- CEMENT98:사실은 표준 출력이 바뀐 것입니다. 본래 터미널로 찍혀야 할 것이 a라는 파일로 찍혀버린 것이죠.
- CEMENT98:셸마다 차이가 있지만, 이 입출력 변경은 대체로 다음과 같은 의미를 지니고 있습니다. 주로 bash를 쓰니 대부분 아래가 맞을 겁니다.
- <: 너님 내 입력 가져가셈요
- <<:너님 입력인데 기존 내용 다음에 추가요
- >: 너님 내 출력 다 가져가셈요
- >>: 너님 출력인데 기존 내용 다음에 추가요
- 1>:에러 아닌 것(표준 출력) 가져가셈요
- 2>:에러난 것(표준 에러 출력) 가져가셈요
- CEMENT98:그렇다면, find /etc -name resolv.conf 2>/dev/null은 무엇일까요?
- 두번째구멍:오류가 나면 /dev/null에 쓴다는 건데?
- CEMENT98:맞습니다. 여기에서 /dev/null은 블랙홀과 같은 역할을 하지요. 이렇게 하면 permission denied와 같은 귀찮은 메시지를 안 볼 수 있습니다.
- 누:으앗. 좋다. ㅋ
- CEMENT98:그리고 표준 입력과 표준 출력을 강조하기 위해 "-"를 이용하는 경우가 있습니다. 예를 들어 cat - > a.txt 처럼요~
- 누: 그래서 -는 어디에 쓰이는데요?
- CEMENT98: 은근히 쓰입니다. 예를 들어볼까요? vim을 입력하면 그냥 vim이 실행되죠?
- 혹자:...?? 이거 어떻게 써요?
- CEMENT98: 아 그건 나중에 강의할 것이고, 일단은 :q 해봐요. 이미 거기다 뭐 썼으면 :q!를 하시던가.
- CEMENT98: 그리고 이번에는 vim -를 입력합니다.
빔: 표준입력에서 읽는 중...
- CEMENT98: 아무거나 쓰고 Ctrl+D를 눌러보실까요?
- 누: 헐퀴;; 아까 쓴게 vim에 찍혀 나옴... 이런 거였구나 ;;;
- CEMENT98: 그러합니다. 빠져나오는 방법은 위에서 말한 것과 같습니다. :)
×
입력
| ||
| ┃┗━━━━━━▶ | 제 3의
출력 장소 |
|
| ▼ | ||
출력(터미널)
|
- ▲ redirection의 의미(입출력 장소 변경, 이 그림에서는 출력 장소를 변경하는 것을 나타낸다.)
- CEMENT98그렇다면 다음에는 PIPE를 나가볼까요~
[편집] pipe
- 두번째구멍:파이프? 관?
- CEMENT98파이프는 |를 의미합니다. \에다 shift 누르면 나오는 | 말입니다.
- 누:쳇. 알아요. 그런데 이거 평소에 안 쓰지 않나?
- CEMENT98:무슨 말씀. 백괴 문서 편집 안 한 사람같은 소리 하지 마세요.
- CEMENT98:아니 꼭 백괴 문서가 아니더라도, 이건 의외로 유용하게 쓰이고 있다고요. 이건 결과물을 그대로 넘겨주는 것입니다.
- 혹자:넘겨준다? 상상이 안 가는데.
- CEMENT98:그렇다면, 다음과 같이 해 보세요.
$cd /etc $ls -l
- 두번째구멍:꽤 많네요..;;;
- CEMENT98:요걸 more로 조금씩 조금씩 들여다보면 좋을 턴데 말이죠. 바로 이 때 파이프를 소환합니다.
$ls -l | more 합계 2400 drwxr-xr-x 5 root root 4096 8월 6 07:33 ConsoleKit -rw-r--r-- 1 root root 2875 12월 5 2007 DIR_COLORS (중략) -rw-r--r-- 1 root root 279 2월 19 2011 alsa-pulse.conf --More--
- 두번째구멍:와우 ls에 more가 붙으니... 편하긴 하겠군요.
- CEMENT98:PIPE는 결과값을 넘겨줍니다. 예를 들어
$newyear 봉만이
- CEMENT98:라고 출력되는 명령어, 혹은 프로그램이 있다 가정하면... 다음과 같이 할 시
$newyear | person
- CEMENT98:아래 그림과 같은 효과를 보게 될 것입니다.
- 두번째구멍:새해 봉만이 받으세요. 네요 ㅋ
- CEMENT98:그렇습니다. 후후. 게다가 이것은 여러 번 결과값을 넘겨주기도 가능하지요.
$ps x | grep ? | more 2777 ? Ss 0:00 /bin/sh /usr/bin/startkde ko_KR.utf8 2845 ? Ssl 0:00 ibus-daemon --xim -d (중략) 4157 ? S 0:00 /usr/bin/kactivitymanagerd --More--
- 누:와우 더 많이도 할 수 있겠지...
- CEMENT98:물론이죠. 과제 낼까요? 파이프 5개 이상 들어가는 명령어 만들기!
- 누:(절레절레!)
- CEMENT98:어, 가능한데요... 이번에 배운 redirection과 pipe는 꼭! 알아두세요. 정말로 정말로 유용합니다.
- CEMENT98:이번에는 퀴즈는 안 내겠습니다. 재탕하면 되지만, 저도 특수함수 짜고 문제 내기 피곤하거든요. 대신 과제가 있습니다.
- 누: ㅇ<-<
- find만을 이용해 /var/log의 boot.log를 제외한 boot-날짜.log를 모두 삭제하는 명령어 만들기
- 단, boot로 시작하는 log 파일은 boot.log와 boot-날짜.log만 있다고 가정한다.
- /etc/passwd에서 /sbin/nologin이 포함된 줄을 홈 디렉터리의 z라는 파일로 출력하기
- CEMENT98:3개 내려다 2개 내는 것입니다!
- 누: 켁... 저거 보기만 해도 ... ;;; 아무튼 해 오겠습니다!
- /과제에 추가하러 가기>>
