스크립트 만들어 게을리 살자 (1)

매뉴얼
리눅스가 아무리 쓰기 쉬워져도 "어렵다"고 느끼게 되는 건 어쩔 수 없나보다.
아무래도 윈도우 쓰는 사람이 한국에 워낙 많고, 처음에 그걸로 시작하고 자연스럽게 뇌리에 박히게 되니
지금까지는 윈도우에서 하는 걸 리눅스에서도 할 수 있다. 이런 식으로 많이 얘기하게 됐다.

그래봤자 결국 윈도우가 만들어 놓은 패턴에 리눅스가 끌려가는 꼴이 될뿐. 그렇게 해서는 당장 사람들을 끌어들일 수는 있어도 곧 부딪치게 되는 크고 작은 낯선 상황에 다시 윈도우로 돌아가는 걸 막을 수는 없다. 리눅스를 쓰면 뭐가 좋은지, 리눅스만의 독특한게 뭐가 있는지 이런 걸 많이 얘기할 수 있으면 좋겠다.

이런 생각은 했지만 그 동안 내 스스로 그런 걸 많이 뽑아 놓진 않았는데, 최근에 활용한 것 중 생각나는 걸 얘기해보면, imagemagick 프로그램을 이용해 한방 명령으로 이미지 파일을 조작하는게 있었다. 보통 GUI(마우스로 클릭해서 머든지 다하는 방식)이 CUI(명령을 타이핑하는 방식)보다 뛰어난 거라고 생각하지만, 컴퓨터에 익숙해지면 질수록 GUI보다 CUI가 편하고 강력하다.

유닉스 시스템의 철학은 "작고, 단순하게" 만드는 것이다. 그리고 그것들이 유연하게 작동해서, 서로 긴밀하게 결합하는게 특징이다. 그래서 프로그램 하나 하나는 단순한 기능만 갖고 있는 듯하지만, 그것들을 조금만 주루룩 연결해보면, 왠만한 거대한 프로그램이 하는 것을 넘는 일들을 해낸다. 그런 거대한 프로그램들은 유연하지 못해서, 나머지 부분은 사람이 다 직접 삽질로 보충해줘야하지만, 유닉스 시스템의 작은 프로그램들은 적절히 옵션을 사용하고, 결과값을 서로에게 잘 전달하면 얼마든지 그런 빈 곳을 채워갈 수 있다.

예로, imagemagick 프로그램 패키지의 "convert"라는 명령어를 활용하면, 우리가 포로샵을 열고 클릭 클릭 클릭 클릭... 해서 할 일을, 옵션을 포함한 한 줄의 명령어로 처리할 수 있다. 이미지 크기를 바꾸는 작업을 생각해 보자.

$ convert -resize 640x480 *.png

이 명령어는 지금 디렉토리에 있는 모든 PNG 이미지 파일들을(*.png) convert 하는데, 뭘 하냐면 크기를 조정한다 (-resize). 그 크기는 640x480이다. 라는 말이다. 저 한줄이 생소해 보이겠지만 몇번 보다보면 전혀 "이해할 수 없는" 어려운 것은 아닐것.

이런 명령어가 뭐가 좋을지 생각해보자.
난 포로샵은 잘 못 다루고 김프(GIMP)라는 리눅스용 프로그램도 썩 잘 다루는 건 아니다. 그래서 단축키도 잘 몰라서 일일히 클릭클릭, 쭈~우욱 끌고, 다시 클릭 클릭 이런 식으로 작업을 해야하는데, 이게 한 두장이면 몰라도 열장 이상의 이미지를 고치려면 짜증이 이만저만이 아니다. 아무리 편리한 GUI프로그램도 고칠 이미지 숫자가 늘어나면 마찬가지의 반복 삽질. 처음 몇번은 재밌는 작업일 수 있지만 계속 반복해서 같은 걸 하는건, 내가 기계인지 사람인지 알 수 없고, 창의적인 활동을 하고 있다는 생각도 안난다. 웩. 그냥 짧게 말해 "지겨워진다"!

자, 백장의 이미지 크기를 변경해야 한다고 하자. 어떻게 할 것인가? 내가 알기로 어떤 프로그램도 "지금 디렉토리에 있는 모든 특정한 규칙을 갖는 파일들의 크기를 얼마로 한꺼번에 바꿔주라"라는 내 뜻을 알아서 이해하고 처리해주진 못한다. (혹시 그런게 있으면 알려주삼). 난 이미지 갯수만큼 반복해서, 한 이미지의 크기를 변경하는 작업을 계속 해줘야 한다. 이걸 백번 할 수 있을까? 이게 과연 컴퓨터가 인간을 편리하게 한건가 아니면 괜히 전에는 생각도 안하던걸 하게 돼서 더 피곤해진 건가? 하지만 리눅스를 쓰고 있다면 이런 일은 껌도 아니다.

$ convert -resize 640x480 *.png

이 명령어 한번 쳐 주고, 그냥 기다리면 그뿐이니까. 그 동안에 만화 한컷을 더보고, 블로그 한 줄을 더 보고, 음악에 귀기울이고, 재미난 일 하나를 더 떠올리며 웃을 수 있다. 컴퓨터는 이래야 되는거 아닌가?

이야~ 좋네. 하지만 생각해보니 뭔가 부족한게 있다. 위의 명령어는 대상 이미지가 모두 폭이 넓은 경우를 생각하고 있고, 이미지 크기가 640x480 보다 작은 경우는 크기를 키운다. 그런데 내가 정말로 원하는 것은, "폭이 넓은 이미지가 640x480보다 크면, 그 크기를 640x480으로 조정하고, 위 아래로 길쭉한 이미지가 폭이 640보다 넓으면 640x??? 사이즈로 바꾸는 것"이다. 더 작은 이미지는 그냥 내버려 두기로 한다.

너무 많은 걸 바라나? 역시 편해지면 질수록 인간은 게을러진다. 하지만 게으른 인간이 세상을 좋게 만든다. 부지런한 인간은 그냥 자기 스스로 뭐든 해버리니 세상을 굳이 바꿀 필요가 없다. 그러니 더 게을러지자. 위의 복잡한 인간의 욕구는 역시 한번의 명령으로 처리되게 할 수 있다. 어떻게? 사실은 여러 명령어를 쳐야 되는데, 그런 명령어들을 묶어 하나의 명령어로 만드는 방법이 있으니 그게 바로 "쉘 스크립트"짜기. 스크립트를 짜면, 복잡한 명령의 조합을 새로운 나만의 명령어로 만들어 두고, 나중에 계속 다시 활용할 수 있다. 잠깐 건너뛰어서, 위의 욕구 - "폭이 넓은..." 을 수행해주는 명령어를 img_resize 라는 이름의 스크립트 파일로 만들어 두었다고 하자. 그러면 내일이고, 다음달이고, 내년이고 언제든지, 또 다시 그런 작업을 해야할때, 명령행에

$ img_resize 640x480 *.png

이런 식으로 치면 모두 끝이 나버린다. 어떤가요? 삶이 참 아름다워지지 않나요? 한번 삽질해서 스크립트를 만들어두면, 이제는 그 반복노동으로부터 자유로워진다.

그럼, 이런 스크립트를 어떻게 만들 수 있을까? 길어졌으니 다음편에.

ps. 그러고 보니 노조에 일이 있군요. 밤 늦게 이어서. -_-
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2007/07/12 20:01 2007/07/12 20:01
Trackback Address :: http://blog.jinbo.net/h2dj/trackback/475
Tracked from | 2007/09/10 19:59 | DEL
지각생님의 [스크립트 만들어 게을리 살자 (1)] 에 관련된 글. 게으르게 사는 짤막 팁.지난달에 썼어야 했던 지각 원고를 쓰고 있는데, 화면 캡처를 위해 vmware 가상머신으로 리눅스를 돌려 캡처를 했지요. 그냥 다른 프로그램 안쓰고 "Print Screen"키를 누른 후 윈더우 그림판에서 붙여 넣는 식으로 했습니다. 그리고 이제 원하는 부분만 잘라야 하는데 하다보니 아 이게 슬슬 지겨워 집니다. 이게 캡처된 이미지. 제가 원하는
로이 2007/07/13 00:07 URL EDIT REPLY
스크립트는 재산과도 같죠..ㅋㅋ
지각생 2007/07/13 00:59 URL EDIT REPLY
재산 공유합시다 :)
달군 2007/07/13 13:14 URL EDIT REPLY
오 멋진데!
지각생 2007/07/13 19:41 URL EDIT REPLY
ㅎㅎ 바로 2편 쓰기 시작~
Name
Password
Homepage
Secret

괴물을 찾아서

잡기장
아침에 눈을 떴을때, 11시. 무지 피곤하다. 어제는 3시쯤에 잤는데, 컴퓨터와 불을 안끈걸 어찌 기억해 5시쯤에 일어나 다 끄고 다시 잤다. 그렇다더라도 6시간은 더 잔건데. 이렇게 피곤한 거는 분명 꿈 때문이다.


알 수 없는 괴물을 쫓는 알 수 없는 팀의 리더였다.
그 괴물들은 어느 평범한 들판을 지나, 어느 산 중턱에 위치한 한 건물에 있다.
그들은 인간과 비슷하지만 마치 진흙이 흘러내리는 듯하다.

난 먼저 정찰을 나갔다. 어떻게 발견했는지 모르지만 그 건물에 잠입했고,
계단을 내려가니 아래층에
세 개의 문이 있는데 그 중 가운데 문이 비밀통로라는 걸 알고 있다.
(근데 왠지 목욕탕 같다.-_-)
왼쪽, 오른쪽의 문은 복도를 지나 큰 방으로 연결된다.
가운데 문은 지하로 향한다. 내려가는 길의 벽은 온통 빨간색.

그 괴물은 총으로 죽일 수 없다.
어떤 푸르스름한 기운이 도는 특수한 칼로 세 군데의 급소 중 한 곳을 한번에 찔러야 한다.
정수리, 목, 그리고 왼쪽 배 부분.

건물을 빠져나오며 나는 괴물을 상대해야했는데, 둘은 처치한 것 같다. 괴물은 피는 흘리지 않고 그냥 스르륵 사라진다.
힘이 엄청 셀 것 같은데 내가 한방에 모두 처치해서 힘은 확인할 수 없었다. (-_-;)


난 팀원들에게 돌아왔다. 이제 팀을 이끌고 그 괴물들의 아지트로 간다.
가다 보니 모두 흩어지고 나와 누군가만 같이 가고 있다.
배를 타고 강을 내려간다. 조그만 강이고 상류도 아닌 것 같은데 물살이 거세다. 막 물이 배 안으로 튀어들어온다.
둘은 엄청 힘들지만 어케 어케 해서 잘 내려가고 있다.
오른쪽을 바라보니 그 괴물의 산이 보인다.
왼쪽을 바라보니 안보이던 동료들이 강둑 위에서 이쪽을 보며 여기 있다고 손흔들며 알린다.


팀과 합류해 캠핑을 하다보니, 내가 어디로 가고 있는지, 뭐하고 있는지 모르겠다.

도중 도중에 기억이 잘 안나는데 지금 생각하면 영화에서 본 장면을 아주 있는대로 갖다 쓰고 있었던 듯.
결국 괴물의 산에 도착했는지 안했는지도 모른채로, 목마르고 배고파서 잠이 깼다. 깼을때는 꿈이 생생하게 기억나더니 지금은 중간중간 연결이 안된다.
....
이게 뭐지 -_-?
대체 먼꿈인지 모르지만 여튼 무지 피곤하다.
가능하면 늦은 새벽까지 일하지 말고 일찍 자야겠다. -_-;;; 날씨까지 더우니 처집니다요.
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2007/07/12 19:02 2007/07/12 19:02
Trackback Address :: http://blog.jinbo.net/h2dj/trackback/474
개토 2007/07/12 20:18 URL EDIT REPLY
수고하셨어요. 혹시 지구를 구하셨는지도 몰라요.
지각생 2007/07/12 20:25 URL EDIT REPLY
아.. 또야?! :D
Name
Password
Homepage
Secret

그대, 가는가

잡기장
그가 대답하지 않습니다.
뭐라고 말을 하려하지만 목에 걸려 나오지 않는 듯합니다.
애타게 불러봅니다.
이렇게 보내기엔 너무 마음이 아픕니다.


 
누군가가 "나를 키운건 8할이 바람이다" 했을때
전 농담으로 "나를 키운건 8할이 이 친구다"라고 했습니다.

그의 평생을 나와 함께 하며 나의 외로움을 덜어주었던 친구.

내가 새로운 길을 발견하고 나아갈때, 든든한 힘이 되어주었던 친구.

그가 언제부턴가 호흡이 거칠어지고, 예전처럼 명석하고, 기민하게 움직여주지 못하는 것을 알면서도
그를 쉬게 해줄 수 없었습니다. 나만 생각하며 계속 이끌기만 했습니다.

그런 그가, 요즘 계속 "힘들다"고 말했는데, 저는 그저 "조금만 더 힘을 내. 친구" 라고 말할 수 밖에 없었죠.
그는 실제로 다시 힘을 내서 내 기대에 부응해줬습니다.
그러나 그것이 그의 마지막일 수 있다는걸 알지 못했습니다.

어제 밤. 그는 드디어 쓰러지고 말았습니다.



너를 위해 변변히 업그레이드 한번 못해준 나를 용서해다오.
돈이 생기면 난 떡볶이 한 접시를 더 사먹었지. 차마 너를 위해 아껴두진 못했다.


너는 이렇게 나의 분신이었는데, 너에게 4년 반은 인간의 60년에 해당하는 것이었는데 그 힘든 시간들을 몰라주었구나

그의 지금 모습입니다. 몸이 더 이상 뜻대로 움직여주지 않습니다. (하드디스크가 맛갔어요 ㅠㅠ 그것뿐 아니고 다른 것도..) 그에게 새 생명을 불어넣어줄 수 있을까요?
하지만 지금의 내겐 너무 벅찬 일입니다. 어쩌면 그의 마지막을 덤덤히 지켜주는게 제가 할 수 있는 얼마 안되는 일일지도.


아.. 비가 신나게 내리는구나. 안녕 친구여~
(노래 : Green Bird)
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2007/07/11 13:29 2007/07/11 13:29
Trackback Address :: http://blog.jinbo.net/h2dj/trackback/472
Tracked from | 2008/05/13 19:26 | DEL
지각생의 [그대, 가는가] 에 관련된 글. 언젠가 사망선고를 받았지만 사흘 후에 부활하셨던 제 단짝 놋북이그만 액정이 깨져버리고 말았어요. 요즘 컴퓨터를 멀리하는 삶을 지향하고 있다는 것을 알고그래서 자신을 구석에 처박아두고 있는거라고 생각했나봅니다.모처럼 가방에 넣고 증산동, 영등포를 거쳐 남산으로 돌아와 보니화면 오른쪽이 ... 당장 다음주에 한국 밖으로 들고나갈 놋북이 필요하고 해서1. 놋북을 한 주간 빌려주실 분2. 쓰시던 중고 놋북을 그냥 주실
나루 2007/07/11 13:32 URL EDIT REPLY
너무 슬픈데요, 안녕...
지각생 2007/07/11 13:33 URL EDIT REPLY
흑... ㅠㅠ
☆디첼라 2007/07/11 13:55 URL EDIT REPLY
쿨럭.. 깜딱 놀랐는뎅.. 그래도 삼가 조의를..
지각생 2007/07/11 14:03 URL EDIT REPLY
이렇게 찾아와주셔서 감사합니다. orz
케산/세르쥬 2007/07/11 19:03 URL EDIT REPLY
놀래라~(가슴을 쓸어내리며)
지각생 2007/07/11 19:48 URL EDIT REPLY
:D
당고 2007/07/13 00:38 URL EDIT REPLY
얼마나 놀랐는지;;;
지각생 2007/07/13 00:59 URL EDIT REPLY
^^;;
Name
Password
Homepage
Secret