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

시작하는 법

cron은 일종의 데몬이다. 즉 한 번 실행되면 시스템에 상주하며 필요할 때마다 동작한다. 비슷한 예로 웹서버도 일종의 데몬으로 웹페이지에 대한 요청이 들어올 때만 작동한다. 데몬 크론은 crond라는 이름을 갖는데, 설정 파일 혹은 crontab에 기록된 날짜나 시간이 될 때까지 기다린 다음 동작을 시작한다. cron : 리눅스에서 스케줄을 등록하는 방법 더보기

BASH – find 명령 사용법

find

GNU find는 디렉토리 트리를 따라 각각의 파일 이름을 주어진 표현식들에 적용하여 매칭되는 결과를 프린트하거나 이를 이용해 별도의 명령을 실행할 수 있다.

사용법

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]

BASH – 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를 새로 설치한 노트북에서는 우분투원이 정상적으로 동작함. 우분투 9.04에서 차근 차근 업그레이드 해 온 집/사무실의 데스크탑에서는 동일한 문제 발생

4. 해결책

우분투원 클라이언트를 재설치한다.

5. 재설치 절차

1) 우분투 원 클라이언트의 연결을 끊고 관련 프로세스를 종료함.

이 때 버전에 따라 죽일 수 있는 프로그램이 약간 다르지만, 대략 아래와 같이 명령을 입력해 본다. 실행되고 있지 않은 프로그램은 당연히 죽일 수 없으므로, 에러 메시지가 출력될 것이다.

$ u1sdtool -q

$ killall ubuntuone-syncdaemon

$ killall ubuntuone-login

$ killall ubuntuone-preferences

$ killall ubuntu-sso-login

2) 저장된 키 토큰 삭제

메뉴의 “시스템 > 기본설정”에서 암호 및 암호화 키 설정을 실행하여 키 항목 중, Ubuntuone (이라고 깔끔하게 나올 수도 있고 무슨무슨 토큰이라고 길게 나올 수도 있음) 관련한 항목을 오른쪽 버튼으로 클릭하여 ‘삭제’한다.

3) 설정 및 캐시 삭제

우분투원에서 사용하던 캐시 및 설정 들을 모두 삭제한다.

$ sudo rm -rf  ~/.local/share/ubuntuone

$ rm -rf ~/.cache/ubuntuone

$ rm -rf ~/.config/ubuntuone

4) 우분투원 폴더 정리

기존 우분투원 폴더는 이름을 변경한다. (필요없으면 삭제해도 좋다)

$ mv ~/Ubuntu\ One ~/Ubuntu\ One_bak

5) 우분투원 삭제

우분투 원을 진짜로 삭제한다.

$ sudo apt-get purge ubunutone-client* python-ubuntuone-storage*

6) 우분투원 설치

삭제가 완전히 끝나면 재설치 한다

$ sudo apt-get install ubuntuone-client* python-ubuntuone-storage*

6. 우분투 원 다시 시작

설치가 끝나면 메뉴의 “시스템 > 기본설정”에서 “우분투 원”을 선택해서 실행하면, 우분투원 환경 설정 프로그램이 실행되면서 계정 설정창이 뜬다. 여기서 우분투원 사이트에 접속하는 메일주소와 패스워드를 입력한 후 환경 설정 프로그램에서 ‘장치들’ 탭에서 [연결] 버튼을 클릭해 준다.

비로소 연결이 완료되면 다른 장치들이 해당 탭에 표시되고, 동기화가 시작된다. 다음 명령으로 우분투원의 상태를 점검할 수 있다.

$ u1sdtool -s

만약 정상적으로 우분투원이 동작하지 않는 것으로 보인다면, 재부팅한 후에는 정상적으로 동작한다. (적어도 나는 그랬음)