콘텐츠로 건너뛰기
Home » linux

linux

SED 사용법

sed는 Stream EDitor의 약자로 매우 컴팩트한 명령 체계를 이용하여 텍스트를 파싱하고 변형하는 (고대의) 텍스트 편집 도구이다. sed는 그 전신이 되는 ed의 스크립팅 체계를 기반으로 하고 있다. vim과 같이 편집될 텍스트를 화면상에 보면서 내용을 작성/수정하는 개념의 텍스트 편집기가 개발되기 이전의 텍스트 편집기이다.

요즘의 텍스트 편집기라 하면 (일례로 메모장을 떠올려보면), 텍스트 편집기를 사용해서 텍스트 파일의 일부분을 수정하는 과정은 1) 텍스트 편집기 프로그램을 실행하고 → 2) 편집할 텍스트 파일을 열고 → 3) 커서를 움직여 편집할 위치로 이동해서 → 4) 내용을 지우거나 삽입하는 식으로 편집하고 → 5) 그 파일을 다시 저장하는 식으로 작업하고, 이것은 현대의 대부분의 사용자에게 가장 익숙한 방법일 것이다.

더 보기 »SED 사용법

cron : 리눅스에서 스케줄을 등록하는 방법

 cron 설정방법

cron 설정 방법을 알아보던 중에 아래의 훌륭한 글을 발견하고 간단하게 번역해보았다.

http://www.unixgeeks.org/security/newbie/unix/cron-1.html

cron 이란?

cron은 유닉스 사용자로 하여금 특정한 명령이나 스크립트를 지정한 시간/날짜에 자동으로 실행하게 해주는 프로그램의 이름이다. 이는 주기적으로 시스템 백업 스크립트를 실행하는 등 시스템 관리자에 의해 많이 사용되며, 그 외에도 특정한 작업을 스케줄링하기 위해 사용될 수 있다. 최근에는 자동으로 인터넷에 접속해서 이메일을 다운로드 받는 등의 용도로 쓰이기도 한다.

무슨 주기적으로 이메일을 다운로드 받냐고 하는 의문이 들 수 있는데, 이 글의 원문이 쓰여진 시점이 1999년이다.

시작하는 법

cron은 일종의 데몬이다. 즉 한 번 실행되면 시스템에 상주하며 필요할 때마다 동작한다. 비슷한 예로 웹서버도 일종의 데몬으로 웹페이지에 대한 요청이 들어올 때만 작동한다. 크론 데몬은 crond라는 이름을 갖는데, 설정 파일 혹은 crontab에 기록된 날짜나 시간이 되면 지정된 작업을 수행한다. 이 작업에는 특정 주기마다 실행될 스크립트를 모은 디렉토리내의 작업들 혹은 개별 명령이 적용될 수 있다.

더 보기 »cron : 리눅스에서 스케줄을 등록하는 방법

GNU find 명령 사용법

GNU find는 디렉토리 트리를 따라 각각의 파일 이름을 주어진 표현식들에 적용하여 매칭되는 결과를 프린트하거나 이를 이용해 별도의 명령을 실행할 수 있다. 간단한 파일 찾기 명령이라고 생각할 수 있지만, find는 실제로 엄청 다양한 일을 할 수 있으며 쉘을 통한 시스템 관리에 있어서 가장 유용하고 필수적인 도구라 할 수 있다. 실제로 grep의 경우 이를 drop in으로 대체하려는 프로젝트들도 많이 있지만, GNU find의 경우에는 이를 100% 커버할 수 있는 대체품이 아직 나오지 않은 상황이다. fd라는 툴이 빠른 속도와 편의성을 개선하여 인기를 얻고 있지만 모든 기능을 대체할 수는 없다.

참고로, GNU find는 그 이름에 있어서 너무 일반적인 동사를 사용하고 있어서 관련 자료를 찾으려 할 때 상관없는 문서가 너무 많이 검색된다. 이 때에는 “GNU find”라고 검색하는 것이 도움이 될 것이다. 이 글의 이후에서는 find를 쓰도록 할 것이다. 또한 윈도에서도 find.exe 라는 도구가 포함되어 있는데, 이것은 grep 처럼 파일에서 텍스트를 검색하는 도구이다. msys를 설치하면 윈도 명령 프롬프트에서도 GNU find를 사용할 수 있지만, 둘의 이름이 갖기 때문에 한쪽의 이름을 바꿔둬야 한다.

사용법

<strong>find</strong> [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

더 보기 »GNU find 명령 사용법

BASH의 문자열 확장에 관해

셸 스크립트를 사용하면서, 가장 헷갈리는 부분 중 하나가 문자열 값들이 어떻게 확장되는가 하는 점이다. 여기서는 조금 자세하게 엔터키를 누르는 그 순간에 어떤 ‘마법’이 벌어지는지 보려고한다. 몇 가지 간단한 예제들에서도 이 현상은 우리가 알지 못하는 사이에 쓰고 있는 셈인데, 이를테면 echo 같은 명령에서 이것이 일어난다.

확장 (expansion)

명령을 입력하고 엔터를 누르는 매 순간에 bash는 우리의 명령을 수행하기 이전에 몇 가지 텍스트 관련 처리를 먼저 하게 된다. 이미 echo * 등의 명령에서 어떻게 단순한 글자가 변경되는지를 본 적이 있다. 예를 들어 *는 쉘에서 여러가지 의미를 가지게 된다. 이것이 실제로 벌어지는 것을 우리는 확장(expansion)이라 부른다. 확장을 통해 우리가 무언가를 입력하고, 그것은 다시 다른 무언가로 확장된 후, 실제 명령은 그것을 통해 수행된다. 이를 들여다보기 위해 echo 명령을 좀 더 살펴보자. 이는 아주 단순한 빌트인 명령으로 그저 텍스트를 화면에 출력한다.

$ echo this is a test
this is a test

간단하다. 넘겨지는 모든 인자가 출력된다. 다음은 어떤가?

$ echo *
Desktop Document ls-output.txt Music Pictures Public Templates Videos

더 보기 »BASH의 문자열 확장에 관해

20101104 :: 우분투원 클라이언트 재설치하기

사실 문제해결 레시피에 적을만한 내용이지만, 귀찮은 관계로 이 곳에 올립니다. 우분투 원이 뭔지, 클라우드 스토리지 관련한 이야기를 좀 하고 싶은데, 요즘은 너무 바쁜 관계로 메모 형식으로 남깁니다. 1. 증상 우분투원 설정 프로그램이 정상적으로 뜨지 않고, 우분투원 폴더가 동기화 되지 않음 2. 상태 확인 터미널을 열고 다음 명령으로 상태 확인 $ u1sdtool -s 여기서 로컬과 서버의 root가 서로 다르다는 알 수 없는 이야기를 하고 있으며 error : 1 이므로 문제가 있는 상황. 3. 다른 케이스 우분투 10.04를 새로 설치한 노트북에서는 우분투원이… 더 보기 »20101104 :: 우분투원 클라이언트 재설치하기

20101027 :: 우분투 리눅스에서 아이폰 테더링하기

아이폰을 사용하면서 한 가지 아쉬웠던 것 들 중 하나는 윈도나 맥이 아니면 테더링을 할 수 없었다는 것이었습니다. 아이폰 자체가 업무 등에 도움이 되기는 하지만 정작 노트북을 가지고 다니면서 네트워크에 접속해야 할 필요가 있는 경우에는 아이튠즈가 설치된 윈도가 참 아쉽다는 생각을 했었지요. 요 문제로 KT 다니는 아는 동생에게 물어보았더니, 애플이 안해주면 어쩔 수 없다고 ㅠㅠ 하더군요. 하지만 우분투에서도 아이폰 테더링용 드라이버가 나와있더군요. 애플이 공식적으로 배포한 것은 아닌 듯 합니다. 아 여기서 오픈소스의 위력을 새삼 또 깨닫게 되네요. 테더링 드라이버 설치 아이폰… 더 보기 »20101027 :: 우분투 리눅스에서 아이폰 테더링하기

20101010 :: [회상] 우분투 리눅스를 재설치한 사연

하지말라면 하지 말자 역시, 하지말란 건 하면 안되는 것이었나 봅니다. 우분투 10.04를 잘 쓰고 있었고, 게다가 이 버전은 장기지원판으로 상당한 안정성을 자랑하고 있었습니다만, 몇 일 전 우분투 10.10의 개발버전 (알파인지 베타인지는 정확히 기억이 나지 않는 군요)이 배포된다는 소식을 듣고 또 몹쓸 “최신 버전 선호 사상”이 돋아나는 바람에 사고를 치고 말았습니다. sudo update-manager -d 네, 뭣도 모르고 그 위험하다는 배포판 업그레이드를 감행해 버린 것이었습니다. 사실 상 우분투 10.04 버전도 알파2 상태에서 업그레이드를 감행했으나, 의외로 상당히 안정적으로 동작해주었고 (당시에는 무선랜이 안잡힌다던가 하는… 더 보기 »20101010 :: [회상] 우분투 리눅스를 재설치한 사연

20100608 :: 리눅스에서 아이폰 동영상 인코딩하기 (ffmpeg)

지난 포스팅에서 문제가 되었던 부분은 결국 극복을 못했습니다. 워드프레스가 RC 버전이라 생긴 문제인지.. 암튼 계속 이어나갑니다. Medibuntu의 힘을 빌리다. Medibuntu 라는 Ubuntu의 사촌쯤 되는 배포판이 있습니다. 미디어 처리에 특화된 녀석으로 온갖 비디오, 오디오 코덱들을 많이 가지고 있는 녀석입니다. 이 녀석을 사용하면 아이폰용 동영상을 거뜬히 인코딩할 수 있다고 합니다. 그렇다고 사용하고 있는 우분투 배포판을 미디분투로 변신 시킬 필요는 없습니다. 다만 코덱 설치와 관련하여 Medibuntu의 저장소(repository)만 살짝 빌려올 생각입니다. 이 부분은 우분투 공식 문서 사이트를 참조하여 설치하도록 합니다. (해당 링크의 페이지에서 Adding… 더 보기 »20100608 :: 리눅스에서 아이폰 동영상 인코딩하기 (ffmpeg)

20010607 :: 리눅스에서 아이폰 동영상 인코딩하기 (ffmpeg) – 예고편

아이폰으로 동영상을 볼 생각 저 보다 먼저 아이폰을 산 지인들의 이야기를 들어보면 다들 “16기가로는 좀 부족해요”라는 의견이 압도적이었습니다. 그래서 저도 32기가짜리를 샀습니다만… 80여개의 어플을 설치하고 100곡이 넘는 음악과 예닐곱편의 팟캐스트 동영상을 넣어 다니지만 고작 3기가 가량 썼을 뿐이더군요. 흠… 동영상을 넣어다니면서 볼 생각은 못했습니다. 가뜩이나 배터리 사정도 넉넉치 않은 아이폰에… 굳이 동영상을 이동하면서 볼 이유는 없을 것 같았거든요. 근데 최근에 드라마 ‘개인의 취향’을 너무 재밌게 봤는데, 이 녀석을 아이폰에 넣어 다녀 보고 싶었습니다. 아이폰용으로 동영상을 인코딩하는 방법은 H.264 / AAC… 더 보기 »20010607 :: 리눅스에서 아이폰 동영상 인코딩하기 (ffmpeg) – 예고편

20100427 :: 플래시 플레이어 10.1로 업그레이드 하기

Flash on Linux 리눅스에서 가장 신경이 많이 쓰이는 부분 중 하나는 바로 플래시가 사용된 웹사이트를 이용하는 순간입니다. 윈도 플랫폼에서는 비교적 성능도 나쁘지 않고 많이 안정된 상태이지만 리눅스 버전의 플래시 플레이어가 돌기 시작하면 대부분의 웹사이트에서는 CPU 사용률이 VirtualBox를 통해 윈도를 실행했을 때 보다도 더욱 미친 듯이 뛰어 오르기 시작합니다. 그러다 뻗어버리기도 하지요. 다행히 파이어폭스 3.6.3(4?)에서부터는 플러그인을 독립적인 프로세스로 실행하여 플래시가 죽더라도 웹 브라우저를 다시 시작해야 하는 불상사는 발생하지 않습니다만, 여전히 불안정하지요. 최신 버전 플래시로 업그레이드하기 게다가 요즘은 많은 웹사이트에서 파일 업로드… 더 보기 »20100427 :: 플래시 플레이어 10.1로 업그레이드 하기