태그 보관물: linux

shell – expansion

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

Continue reading “shell – expansion” »

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

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