05. (실습) 리눅스 커맨드를 파이썬으로 구현
tail -f
- 파일의 마지막 부분을 출력하는 명령
- -f 옵션: 추가된 데이터를 연속해서 출력
$ tail -f -> $ py_tail
wc
- 문자, 단어, 라인 수를 출력하는 명령
$ wc -> $ py_wc
실습: https://github.com/go4real/linux_campus/blob/main/Part3/Ch08_03/ssh_by_id.md
[실습] 리눅스 커맨드 파이썬으로 구현
tail -f 구현하기
1. 파이썬 스크립트 작성
+ vim py_tail
#!/usr/bin/python3
import sys
import time
def tail(filename):
with open(filename) as f:
f.seek(0,2)
while True:
line = f.readline()
if not line:
time.sleep(0.1)
continue
yield line
filename = sys.argv[1]
for line in tail(filename):
print(line)
2. 실행 권한 부여
chmod +x py_tail
3. /usr/local/bin 디렉토리로 이동
sudo cp py_tail /usr/local/bin
4. 테스트
py_tail /var/log/auth.log
wc 구현하기
1. 파이썬 스크립트 작성
+ vim py_wc
#!/usr/bin/python3
import sys
import time
def wc(filename):
chars = words = lines = 0
with open(filename) as f:
for line in f:
lines += 1
words += len(line.split())
chars += len(line)
print("{} {} {} {}".format(lines, words, chars, filename))
filename = sys.argv[1]
wc(filename)
2. 실행 권한 부여
chmod +x py_wc
3. /usr/local/bin 디렉토리로 이동
sudo cp py_wc /usr/local/bin
4. 테스트
wc py_tail
py_wc py_tail