ㅡㅡ; 쩝..잘 될랑가 몰겠지만...일단 해보고...
sudo apt-get update
sudo apt-get install linux-restricted-modules-$(uname -r) #Okay if it is already installed
sudo apt-get install xorg-driver-fglrx
sudo depmod -a
sudo aticonfig --initial
sudo aticonfig --overlay-type=Xv

sudo shutdown -r now

이것만으로 설치가 되었고 fgl_glxgears 실행결과 잘 동작했다고 하는데 난 왜 안되는겨어어어어어~

댓글을 달아 주세요

Learning Grub

STUDY/ㄴ LINUX 2007.05.09 13:45 |

Learning Grub (메뉴얼)

-멀티부팅을 보다 편리하게.(Ver 0.5)    

시작하며…


이 글은 본인이 이틀간 시행착오를 거치며 지인들의 도움을 받아 설정하게 된 내용을 정리한 것입니다. Debian에 기초해 작성되었으며 다른 배포본을 사용하는 경우 직접 컴파일을 해주거나 해당 패키지를 설치해 주어야 합니다.

Grub(Grand Unified Bootloader)의 정확한 명칭은 GNU Grub 입니다. GNU Grub는 무료 부트 로더로서 다양한 파일 시스템을 지원해 줍니다. GNU Grub는 OS의 커널을 직접 읽어 들이기 때문에 Linux의 LILO 1024실린더 제한을 해결할 수 있습니다.(LILO 최신 버전은 이 문제가 해결되었음) 따라서 8G가 넘는 partition에도 Linux를 설치할 수 있으며, 기타 다양한 운영체제를 사용할 수 있습니다..

또, GNU Grub 부팅 디스크를 작성해 놓으면 MBR 손상으로 인한 운영체제 기동 실패시 이를 복구 할 수 있는 매우 유연한 부트관리자 입니다. GNU Grub는 이러한 장점으로 몇몇 배포본에 LILO를 대신해 표준 Bootloader로 채용되었습니다. 자세한 사항은 아래 링크에서 확인하시기 바랍니다. 

more..

댓글을 달아 주세요

사용자 삽입 이미지

우분투 7.04 (Festy Fawn)에 기본으로 탑재되어있는 베릴


기고가 자키 그린리스는 우분투(Ubuntu) 리눅스를 설치하는데 몇 가지 문제가 있었다. 그래서 그에 대한 답을 얻기 위해 개발자 중 한 사람과 이야기해 보기로 했다.


최근 우분투 리눅스를 살펴보기로 마음을 먹은 나는 디폴트로 세팅된 패키지와 구성으로 설치하는 과정 중에 나타나는 몇 가지 문제점을 발견하였다. 그래서 우분투 리눅스의 대표에게 구성 및 디폴트 패키지와 관련된 문제들을 이메일로 물어보기로 결심했다.

아래에 제프 워와 한 이메일 인터뷰가 나타나있다. 제프 워는 우분투리눅스(UbuntuLinux)의 핵심 개발팀의 한 멤버이다. 받은 이메일의 다른 부분은 편집하지 않았고 레이아웃만 조금 고쳤다. 관련된 섹션은 함께 묶었고, 읽기 편하게 하기 위해 이메일 클라이언트가 추가하는 형식을 제거하였다. 이 형식으로 주고 받은 이메일의 길이가 미국 편지 사이즈 기준으로 여섯 페이지에 달했다. 이메일에 언급된 부분들에 대한 참조를 위해 필요한 URL도 덧붙여 놓았다.

설치 문제
설치 과정 중에 겪은 문제들은 꽤 간단해 보인다. 진짜 문제는 내가 실제로 우분투 리눅스를 설치할 때 따라야 하는 순서들에 있었다.

브리지 뱃져(Breezy Badger)판 우분투 리눅스에 내장된 파티셔닝 소프트웨어는 건드리지 않아야 하는 파티션을 무시하지 못했다. 나는 컴퓨터에 여러 리눅스 배포판을 설치해 멀티 부팅 시스템을 가지고 있는데, 우분투에 들어있는 소프트웨어 버전은 메인 하드 드라이브에 데비안이 생성한 파티션을 읽지 못했다. 결국, 우분투 리눅스를 설치하기 위해서 시스템의 메인 하드 드라이브를 삭제해야만 했다.

우분투 리눅스가 빛 좋은 개살구처럼 보이고, 그들의 개발자 팀에 의해 내려진 결정들이 오히려 내가 우분투가 기능적인 면이 심각하게 빠져 있다는 느낌을 계속해서 가지게 했다. 그들은 하드웨어 지원을 넓히려고 노력했지만, 아직도 그러한 소프트웨어들은 특히나 지원하기로 되어 있는 하드웨어와도 여전히 충돌을 일으키고 있다. 랩톱 유틸리티 패키지는 랩톱 컴퓨터의 델 배터리를 훼손시킨다. 이 소프트웨어는 델(Dell) 랩톱과 충돌을 일으키지만 랩톱 유틸리티들은 반드시 필요하기 때문에, 배터리를 사용하거나 리눅스의 다른 배포판을 사용할 때 랩톱 성능이 75% 정도 감소하는 것을 받아들여야만 한다. 데스크톱 시스템에 랩톱 툴을 요구하는 것은 전혀 이치에 맞지 않는다.

데스크톱 시스템에 존재하지 않는 하드웨어 지원을 요구하는 로직 때문에 나는 설치에 실패하였다. 따라서 하드웨어 지원이 선택적인 것이 되어야 한다. 하드웨어에 대한 지원 요구 이면에 있는 실제적 문제는, 심지어 실제로 그러한 지원이 존재하지 않는 경우에도 아무런 이유없이 시스템의 자원을 낭비한다는데 있다. 어떤 패키지에 의해 라이브러리가 요구되면, 라이브러리는 램을 할당받아야 하며 패키지를 실행하면 그 라이브러리가 램에 로드된다.

어떤 파티션이 사용되지 않았다면, 그것은 스왑 파티션으로 사용될 수도 있지만, 할당된 램은 애플리케이션이 끝날 때까지 해제되지 않고, 모든 마우스 클릭이 라이브러리에 제공되는 기능을 호출하는지를 확인하게 된다. 이때 존재하지도 않는 하드웨어를 지원하는데 CPU 타임이 낭비되게 된다. 만약 당신이 그 라이브러리가 제공하는 함수를, 그것이 지원하는 하드웨어 없이 호출했다면, 당신은 에러 메시지만을 보게 될 것이다.

정말 말이 안 되는 문제는 설치된 모든 패키지를 업데이트 해야 하는 요구조건이다. 심지어 그 패키지들 중 하나가 시스템이 허락하기만 한다면 곧 삭제될 것이라 하더라도 일단은 업데이트를 먼저 해야 한다.

내가 두 번째로 최악이었던 브라우저를 지우려고 했을 때, 우분투 리눅스를 망가뜨리지 않고서는 못 지운다는 것을 알고는 경악을 금치 못했던 상황을 생각해 보라. 나는 파이어폭스(Firefox)를 사용하지 않는다. 왜냐하면 그 유저 인터페이스를 싫어했기 때문에 만약 인터넷 익스플로러가 필요하면, 크로스오버 오피스(Crossover Office)나 와인(WIne)을 통해 설치하려고 할 것이다. 파이어폭스는 인터넷 익스플로러처럼 보이고, 느껴지게 하려고 고안되었지만, 그것은 내가 그것을 사용하지 않기에 충분할 정도로 나빴다.

나는 개인적으로 우분투의 기본 GUI를 사용하지 않을 것이다. 왜냐하면 그놈(GNOME)은 MS 서버와 연결되어 있지 않을 때 올바로 동작하지 않기 때문이다. 리눅스만 사용하는 나의 상황에서 이것은 앞서 말한 랩톱 유틸리티들이나 블루투스 유틸리티들과 같은 것을 사용하는 것과 마찬가지로, 분명한 자원의 낭비이다.

제프워가 말하는 우분투 리눅스 설치의 주요 이슈와 특징

시냅틱(Synaptic)은 루트 패스워드를 받아들이지 않을 것이다. 대체 시작할 수 없다면, 좋은 GUI가 무슨 소용이란 말인가?
우분투에서, 우리는 루트 계정을 사용하지 못하도록 했다. 그리고 대신에 완전한 sudo 기능을 가지는 첫 번째 유저 계정을 제공한다. 따라서 당신은 관리자 도구를 사용하려고 할 때 단지 당신의 계정 패스워드를 입력하기만 하면 된다. 당신은 설치프로그램이 루트 패스워드를 물어보지도 않는다는 것을 알게 될 것이다. :-)

설치프로그램은 관리자 패스워드를 물어보았고 나는 4글자의 패스워드를 입력했었다. 그리고 2개의 다른 패스워드를 입력했는데, 하나는 루트를 위한 것이었고, 하나는 비 관리자 유저를 위한 것이었다.
혹시 "전문가용"을 설치하였나? 그것은 추천할 만하지 못하다. 왜냐하면 그것은 시간 낭비이기 때문이다.

아니다. 단지 설치 프로그램을 실행시켰을 뿐이다.
만약 단순히 설치 프로그램을 실행시켰다면, 당신에게 루트 패스워드를 물어보는 일은 없었을 것이다.

Bluez 유틸리티들이 요구되는가? 왜 요구되는가? 나는 블루투스 관련 장치는 아무것도 가지고 있지 않고, 따라서 그것은 순전히 시스템 자원의 낭비이다.
우리는 많은 컴퓨터 하드웨어를 지원하고 그것들을 사용할 수 있도록 도구도 제공한다. 만약 블루투스 관련 하드웨어가 없다면, 어떠한 자원도 낭비되지 않을 것이다. 왜냐하면 그것들이 사용되지 않기 때문이다(물론, 디스크 상에서 공간을 차지하기는 하겠지만 그다지 많은 양이 아니다.).

다시 말하지만, 우리는 많은 컴퓨터 하드웨어를 지원한다. 이것은 정말, 아주 정말 작은 패키지이다. 심지어 우리가 포함하는 그 어떤 랩톱 하드웨어 지원 유틸리티들보다 작다. 따라서 우리는 이것을 "멍청한" 행동으로 생각하지 않는다. 만약 당신이 그 패키지에서 필요로 하는 하드웨어가 없다면 그것은 사용되지 않을 것이다.

하지만 그렇다면 그것은 의존적인 것이 되어서는 안 된다. 설치하는 것이 추천되는 것으로 되어야지, 반드시 설치해야 할 패키지여서는 안 된다. 그것을 설치하라고 요구하거나 설치하는 데 실패하는 배포판은 거의 없다. 그리고 그 패키지를 사용하는 하드웨어가 없을 때, 그 패키지를 지우는 것이 가능해야만 한다. 랩톱 유틸리티들이 설치되도록 요구함으로써 당신은 유저들이 너무 무지해서 그들의 하드웨어들이 무엇인지 알 리 없다고 말하는 격이다.
아니다. 우리는 유저들이 어리석다고 말하는 것이 아니다. 우리는 유저들이 많은 자세한 사항들에 대해서는 신경 쓰지 않는 것에 대해 이해하고 있다. 그들은 단지 동작하기만을 바라는 것이다. 우분투가 「유일한」 하나의 CD에 담겨 있는 것을 기억하기 바란다. 우리는 애플이나 MS, 그리고 다른 리눅스 배포판에 비해 그 용량을 최소로, 반면 놀라울 정도의 하드웨어 지원, 그리고 많은 컴퓨터 이외의 경험을 제공하려고 노력하고 있다.

또한, 우리는 기본 데스크톱 프로그램 전체를 CD 한 장에 담았다. 다른 대부분의 리눅스 배포판은 3장 혹은 그 이상이다. 우리는 사용의 용이성과 광범위한 하드웨어 지원 그리고 쓸데없는 기능들을 최소화시키는 것 사이에서 균형을 잘 맞추었다고 본다.

Bluez 패키지는 블루투스 정치에 연결하기 위한 것이 아니라면, 다른 어떤 소프트웨어에서도 필요하지 않다.
사실, 블루투스 서브 시스템과의 인터페이스에 사용되는 라이브러리들은 하드웨어의 통합성을 제공하기 위해 수많은 애플리케이션이 사용한다. 이것의 좋은 예로, nautilus-sendto가 있는데, 이 작은 애플리케이션이 이메일, 인스턴트 메시지, 블루투스 등등을 이용하여 파일 매니저로 부터 파일을 보낼 수 있도록 한다.

아니? 도움말 시스템과 우분투 데스크톱은 bluez 유틸리티들을 필수로 해놓았으며 그것은 지워지지 않는다. 하드웨어를 지원한다는 것은 좋다. 하지만 전체 GUI가 필수로 해놓는 꼭 필요한 라이브러리는 아니다.
당신은 라이브러리에 의존할 수 없다. 만약 그렇게 한다면, 스택에서 마술처럼 꺼낼 수 있다. 만약 당신이 레퍼런스를 알고 있다면, 이것은 마치 젠가를 하는 것과 같다(젠가는 나무 조각들로 이루어진 큰 탑에서 조각들을 하나씩 꺼내다가 무너지면 지는 게임이다.).

파이어폭스는 필수 요구사항인가? 나는 파이어폭스를 싫어한다. 그리고 앞으로도 사용하지 않을 것이다. 따라서 당연히 그것을 설치하려고 하지 않을 것이다.
우리는 되도록이면 많은 유저들에게 유용할 수 있는 최소한의 소프트웨어들을 설치한다. 파이어폭스는 브라우저 기술에서 표준이고, 그래서 설치하게 된 것이다. 많은 기술적인 이유들 때문에, 그것은 삭제될 수 없다. 왜냐하면 시스템에 있는 다른 소프트웨어들이 파이어폭스의 렌더링 엔진을 사용하고 브라우저 자체로부터 아직까지 분리되지 못했다.

참고로 말하자면, 나는 보통 직접 리눅스시스템을 구축하여 사용한다. 그리고 파이어폭스는 당신이 그렇다고 말하는 소프트웨어에 필요하지 않다.
렌더링 엔진은 우리의 시스템에 있는 도움말 브라우저나 다른 소프트웨어들이 사용한다.

게코(Gecko)의 렌더링 엔진은 따로는 사용할 수 없다. 언제부터 그랬나? 그것은 처음부터 소스섹션과는 분리되어 있었다.
분리된 라이브러리 인터페이스로서는 사용할 수 없다. XULrunner가 Mozilla.org에 올라갔을 때, 우리는 그것을 사용하기 위해 렌더링 엔진을 사용하는 모든 소프트웨어를 다시 확인할 가능성이 크다. 이때가 되면 파이어폭스는 더 이상 필요조건이 되지 않을 것이다.

하지만 게코는 파이어폭스에만 국한되지 않고 소스에서 독립적인 아카이브이다.
다시 말하지만, XULrunner가 배포될 때까지, 렌더링 엔진은 분리된 라이브러리 인터페이스에서 사용될 수 없다(심지어 XULrunner가 배포 된다고 하더라도, 게코를 사용하지는 않을 것이다. 전체가 XUL 스택을 이용할 것이다.).

나는 파이어폭스가 완전한 기준이라고 생각하지 않는다. 차라리 시몽키(Seamonkey)가 기준이라고 생각한다(시몽키는 바로 그 정확하게 일치하는 렌더링 엔진을 사용하고 보다 강력한 인터페이스와 많은 도구를 제공한다. 이것은 모질라의 새로운 버전이다.).
그것은 당신의 기호이다. 하지만, 파이어폭스가 시몽키보다 많은 시장을 점유한 데에는 큰 이유가 있다. 내가 보기에는 당신이 당신의 기술을 가지고 이리저리 만드는 것을 좋아하는 것처럼 보인다. 대부분의 컴퓨터를 사용하는 인구는 당신이나 혹은 나와 같지 않다는 것을 유념하기 바란다.

모질라의 사이트에 따르면, XULrunner가 사용 가능하다고 하는데..
아직 안정적이지가 않다. 우리는 우분투 6.10 버전에서나 채택하게 될 것 같다.

랩톱 유틸리티들이 데스크톱 시스템에서 필요조건인가? 이것이야 말고 정말 멍청한 것 아닌가?
또 말하지만 우리는 많은 하드웨어를 지원한다. 이것은 아주 정말 작은 패키지로 다른 어떤 랩톱 하드웨어 지원 유틸리티들보다도 작은 크기이다. 따라서 우리는 그것을 "완전히 멍청한 짓"으로 여기지 않는다. 그 패키지를 필요로 하는 하드웨어를 당신이 가지고 있지 않다면 그 패키지는 사용되지 않을 것이다.

콘솔 상에서 vim을 가지고 작업하는 중에 바깥 시스템 파일을 수정하는 방법이 없는데 이것은 마치 루트 계정이 GUI에서 완전히 막혀 있는 것처럼 보인다.
당신은 sudo 뿐 아니라 그래픽 애플리케이션이 필요하면 그것을 사용할 수 있다. 하지만 우리는 그것을 권장하지 않는다. 사용 가능한 관리자 도구가 많이 있다. 우리는 우리의 유저들에게 시스템 파일을 편집하도록 강요하는 데에는 전혀 관심이 없다.

sudo 단일 유저가 모든 것을 다 하기 때문에 이것은 심각하게 흠이 있는 보안 모델이다. 나는 항상 관리자 목적으로 루트 계정을 사용한다.
유감스럽게도, 그것은 흠이 있는 보안 모델이 아니다. 우리는 보안 문제에 매우 주의를 기울였다. 그리고 이것은 대형 서버 배포와 단계적 권한이 필요한 접근법에 알맞은 종류의 구성이다. 이것이 데스크톱 시스템의 요구조건들에 매우 깔끔하게 들어 맞는다는 것을 인정할 것이다. 루트에 관한 모든 개념이 다른 배포판을 사용하는 유저들에게 짐을 준다는 것은 조금 실망스럽다. 당신은 맥 OS X가 우분투와 매우 비슷한 접근법을 사용하는 것을 알게 될 것이다.

그러나 시스템 관리자 패스워드를 GUI로 되어 있는 시스템 관리자 도구에 입력할 방법이 없다. 나는 관리자와 같은 보통 유저들이 좋은 보안 모델만큼 좋은 능력을 가진다는 말에는 반대한다. 이 방법 때문에 윈도우 컴퓨터에 불량 하드웨어와 소프트웨어들이 판을 치고 있기 때문이다.
우분투가 그렇게 동작하지는 않는다. 유저는 그들이 관리자 작업을 수행할 때에는 반드시 가지고 있어야 하는 sudo 권리를 가지고 있는 상황에서만 관리자이다. 유저는 일반적인 사용에 있어서는 불필요할 정도로 많은 특권을 가지지 않는다. 루트 패스워드를 가지고 입력해야 하는 패스워드가 다르게 되는 것이 성격적으로 다른 것이 아니다. 우리는 이것에 대해 오랫동안 힘들게 생각해 보았다. 그리고 우리는 보안 문제에 대해서 매우 보수적인 접근법을 택했다. 궁극적으로, 이것이 유닉스 시스템이 통상적으로 동작하기에 최선이다. 전문 시스템 관리자들 역시 같은 것을 말할 것이다.

"유일한 관리자가 모든 것을 하는 것"이 모든 윈도우 컴퓨터가 관리자 모드로 돌아가는지에 대한 이유이다. MS는 아직 좋은 멀티유저 OS를 만들지 못했다. 당신은 지금 이러한 보안 모델을 사용함으로써 리눅스를 MS의 하자 있는 멀티 유저 모델을 따라가고 있는 꼴이다.
왜 당신이 말한 것이 그러한 경우에 해당되지 않는지 앞뒤 글을 읽어보기 바란다. 시행중인 안 좋은 아이디어들에 대한 예를 보고 싶다면 린스파이어(Linspire)를 보기 바란다. 린스파이어에서는, 사용자 계정이 옵션이다. 그리고 디폴트의 단일 유저 구성에서 모든 것이 루트로 구동된다. 이것이 바로 윈도우가 망쳤던 "모든 사람이 관리자 모드로 로그인 하는 것"의 예이다.

루트 계정은 사용되기 위해서 있다. 따라서 sudo는 보안 측면에서 위험을 안고 있다. 세큐니아(Secunia)의 고문단은 컴퓨터 종료 시에 sudo가 완벽하게 해제되지 않아서 시스템이 공격당하기 쉽게 된다고 했다. 이것은 세큐니아가 우분투에 대해 실제로 보고했던 것이다. 나는 여전히 sudo를 루트 계정 대신에 사용하는 것이 보다 안전하다는 데에는 동의할 수 없다.
유감스럽다. 하지만, 나는 당신이 그것을 사실인 것처럼 말할 만큼의 지식적 깊이가 있다고는 생각하지 않는다. 물론 당신의 의견은 당신에게는 받아들여지겠지만.

나는 su를 한 명의 유저(나의 계정)만 사용할 수 있도록 해 놓았다. 그런데 나 조차도 그것을 거의 사용하지 않고, 다른 유저들은 su를 사용하도록 허용되지 않는다. 적어도 나에게는 시스템 관리자는 일반적인 사용으로부터 철저히 독립되어 있다.
그 말은 sudo에도 똑같이, 그러나 매우 작은 수준으로 적용된다. 이것이 바로 왜, 안전한 단계적 작업 기반 권한에 관심 있어 하는 시스템 관리자가 그것을 선택하는지에 대한 이유이다. 그 말은 일반적으로 틀린 말이다. 그리고 우리가 미리 구현해 둔 다른 규칙들 때문에 우분투에서 역시 완전히 틀린 말이다. 예를 들어 tty당 타임아웃이 그렇다. sudo는 우리의 프로그램에서 독립적인 루트 계정과 패스워드를 가지는 것에 비해 보안 위험이 많지 않다. 그리고 사실 일반적인 경우에는 위험을 감소시켜 준다. 우리는 윔(whim)에서는 아직 이것을 하지 않았다.

다른 패키지와 작업하기 전에 강제 업데이트를 해야 한다? 당신은 MS 소속인가? 패키지를 가지고 무슨 일을 하기 위해서는 반드시 업데이트를 해야 하는가? 일정한 업데이트 알림이 항상 있는가? 이것은 리눅스만 사용하는 지금, 내가 전혀 생각하지 않는 MS적인 것이다.
나는 당신이 무엇에 대해서 언급하고 있는지 확실치 않지만, 만약 그것이 설치 후 업데이트에 관한 것이라면, 가장 최신 버전의 보안 프로그램과 버그를 고친 것을 사용하도록 하는 것이 우리의 프로그램을 사용하는 유저에 대한 예의라고 생각한다. 우리는 또한 유저들이 언제 업데이트가 가능한지를 알려주고 있다. 왜냐하면, 유저들이 그들의 시스템을 항상 최신의 것으로 유지하는데 가장 중요한 역할을 맡고 있고, 무엇을 하고 있는지 가장 잘 이해하고 있기 때문이다. 유저가 모르게 그것을 하는 것은 좋지 않을 수 있다. 나는 왜 당신이 이것을 MS적인 행동이라고 말하는지 모르겠다. 이것은 현대의 OS 보안에서 매우 중요한 기능이다.

내가 몇 개의 소프트웨어를 더 설치하고 싶었다. 업데이트를 하라고 해서 업데이트를 하려고 했지만, 업데이트도 하기 전에 설치해야 하는 소프트웨어가 너무 많아서 짜증이 났다. 왜 사람들이 모든 업데이트 프로세스를 거치도록 강요하는가? 단지, 보다 많은 패키지를 추가하기 위해서? 이 두 가지 방법 다 시간을 절약하지는 않는다. 필요치 않은 패키지를 삭제할 수 있도록 하려고? 나는 내가 지우고자 하는 프로그램을 지우기 바로 전에 업데이트를 할 것이다. 이것이 시간의 낭비가 아니고 무엇인가?
대퍼(Dapper)가 배포되었을 때를 생각해 보라. 나는 그것이 당신이 가지고 있는 문제를 해결해 줄 수 있다고 생각한다. 이 문제가 그리 큰 것이 아니라 할지라도, 만약 긴 안목에서 보았을 때, 당신이 리눅스를 데스크톱에서 사용하는 것 자체를 싫어하게 될지도 모르기 때문에, 당신 입장에서는 이 문제가 실상 작다고만 볼 수는 없을지도 모른다.

알림 : 업데이트를 알리는 팝업 창은 짜증 나는 것이다. 그리고 MS는 그런 짜증나게 하는 일을 가장 잘한다. 우분투는 이런 MS의 방법을 고스란히 이어받아 매 30초 마다 업데이트가 시작될 때까지 팝업창이 나타나게 한다. 매우 MS스러운 일이다.

사용할만한 어떤 소프트웨어도 당신이 윈도우 서버에 연결되어 있지 않다면, libsmb를 요구하지 않는다. 어떤 좋은 리눅스 데스크톱 애플리케이션도 설치될 때, 윈도우 서버 연결을 요구하지 않는다. 그래서 나는 GNOME을 설치하지 않았다. GNOME은 이런 리눅스 데스크톱을 위해 smb 스택을 요구할 만큼 어리석다.
모든 대형 리눅스 데스크톱 시스템은 윈도우와 삼바(Samba) 파일공유를 사용한 기능을 제공한다. 우리는 그것이 우리의 많은 유저들이 가장 많이 사용하는 것이라고 생각하기 때문에 그들이 일상의 작업에 완전한 리눅스 기반 네트워크를 사용하건, 윈도우 컴퓨터를 사용하건 간에 그것을 지원한다.

여전히 당신은 90%는 쓸데없는 소프트웨어의 강제적 설치가 옳다고 주장하고 있는가? 그것은 시스템에 쓸모없는 것이다. 랩톱 유틸리티, bluez-utils, 삼바 서버 스택은 당신이 랩톱을 쓰거나, 블루투스 장치를 가지고 있거나, 혹은 윈도우 웍스테이션을 가지고 서버를 구동시키지 않는다면 모두 쓸데없는 것이다. 삼바 서버 스택이 gnome의 잘못이지, 우분투의 잘못이 아니라는 것은 알고 있다. 나는 개념에 대해서도 비판하고 있는 것이다.
우리는 삼바 서버를 올리지 않았다. 그리고 GNOME은 그것을 필요로 하지 않는다. 만약 GNOME에 대해서 이야기하고 싶다면, 나에게 알려주기 바란다. 나는 지난 5년간 관리프로그램을 제작해왔다.

나는 그것이 시스템에 있어 쓸모없는 것이라는 의견에 동의하지 않는다. 그것은 매우 작은 공간만 차지하고, 대부분의 유저들은 그것을 신경 쓰지 않는다. 그것이 어떤 속도도 느려지게 하지 않고, 누군가의 작업을 방해하지도 않는다. 당신이 매우 세세한 것이 관심이 있기 때문에 당신이 눈치를 챈 것뿐이다. 하지만, 나는 당신이 계속해서 그것을 신경 쓸 것이라고는 생각하지 않는다.

그래서 GNOME 애플리케이션이 리눅스만 사용하는 환경에서 필요치 않는 도구들을 사용한다는 뜻인가. 그렇다면 GNOME 자체는 리눅스만 사용하는 환경에서 자원을 낭비하는 도구를 사용한다. 그것들이 애플리케이션의 추가 때문에 더 많은 자원의 낭비를 요한다는 것은 놀라운 일이 아니다.
당신이 개념을 잘못 잡았다고 생각한다. 우선, 우리는 우분투를 리눅스만 사용하는 환경을 위해서 디자인하지 않았다. 또 그러한 환경은 매우 드물기도 하다. 우리는 우리의 유저들이 마주치는 매일의 작업 환경을 위해서 만들었다. 그리고 이것은 각기 다른 시스템의 전체 스택을 공동으로 이용 가능하도록 하는 것이 필요하다는 것을 의미한다. 기술적인 용어로, 만약 당신이 smb 지원을 사용하지 않았을 때, 어떠한 자원도 낭비되지 않는다는 것이다. smb 지원은 사실상 분리된 프로세스 바깥에서 돌아가는 프로그램에 의해 제공된다. 따라서 당신이 그것이 필요 없다면, 실행하지 않으면 되는 것이다.

유감스럽게도, 나는 당신이 이러한 말다툼을 계속하는 것에 관심이 있다면, '자원' 대신에 보다 관련된 용어를 사용하기 시작할 필요가 있다고 생각한다.

미안하다. 어떠한 데스크톱 소프트웨어도 삼바 서버 스택을 사용할 가치가 없다면 필요로 하지 않을 것이다. 왜 데스크톱이 서버가 되어야 하는가?
데스크톱에서 돌아가는 서버 스택은 필요치가 않다.

나는 libsmb의 설명을 다시 읽어보았다. 윈도우 서버에 연결할 수 있게 한다고 내가 처음에 언급했던 것과는 달리 그것은 윈도우 데스크톱을 연결할 수 있도록 하는 서버 스택이다.
아니다. Libsmb 클라이언트는 CIFS/SMB 프로토콜을 사용하기 위한 또 다른 소프트웨어에 대한 인터페이스이다. 그것은 실제로 삼바 서버가 로컬 컴퓨터에서 돌아가는 것을 요구하지 않는다. 삼바 패키지는 우리의 데스크톱 제품의 디폴트 설치 패키지가 아니다.

GNOME과 관련된 나의 문제는 libsmb클라이언트가 아니라 libsmb이다. 이것은 서버 스택이고 분명히 GNOME을 요구한다.
libsmb와 같은 것은 없다. 그리고 다시 말하지만 당신이 언급하고 있는 것은 삼바 데몬이 아니다. 삼바 데몬은 데비안과 우분투를 위한 것으로 삼바 패키지에 들어 있다. 당신이 CIFS/SMB 서비스를 사용하기 위해, GNOME 파일 매니저나 vfs를 통해 삼바 데몬을 구동시킬 필요가 전혀 없다.

왜 패키지가 권고 사항이 아니라 강제사항인가? 만약 그것이 강제 사항이라면, 시스템은 그 패키지들 없이는 제대로 기능 하지 않을 것이다. 이것은 도움말 시스템, 데스크톱이 그러할 것이라는 것을 의미한다.
아니다. 예를 들어보면, 우리가 nautilus-sendto라는 프로그램을 구현했는데, 이것은 매우 작은 크기로, 파일 매니저를 위해 파일을 보내는 기능을 하는 것이다. 이것은 에볼루션(Evolution), GAIM, 그리고 블루투스 장치들과 함께 동작한다. 따라서, 당신은 이메일이나 인스턴트 메시지로 혹은 당신의 전화에 파일들을 보낼 수 있다. 그렇게 하기 위해 블루투스 라이브러리를 사용한다.

만약 당신이 블루투스 라이브러리를 없앤다면, nautilus-sendto는 삭제될 것이다. 이것이 바로 동작하는 방식이다. 블루투스 라이브러리가 사용되거나 메모리에 로드되는 그 시간만이 nautilus-sendto가 호출되는 때다. 그러나 당신이 시스템에 블루투스 하드웨어를 가지고 있으면 부팅될 때 실행되는 매우 낮은 수준으로 블루투스를 지원하는 데몬들도 있다. 따라서 당신이 블루투스 하드웨어를 가지고 있지 않은 상황에서는 이러한 기능을 제공하는 어떠한 자원, 예를 들어 램과 같은 자원도 사용되지 않는다.

우리가 우분투에 소프트웨어 강제사항으로 포함하기는 했지만 사용하지 않는 프로그램들이 많이 있다.

그 말이 바로 우분투가 GNOME을 사용하기 때문에, 세 가지 네트워크 스택이 있다는 것이다. 대부분의 네트워크 카드를 위한 커널 레벨 스택, libsmb 스택 그리고 GUI를 위한 bluez-utils 스택
이것은 대답하기가 힘들다. 왜냐하면, 당신이 전혀 관련 없는 것들까지도 섞어서 말하고 있기 때문이다. 당신이 위에서 언급한 예는 같은 소프트웨어 카테고리에 들지 않는다. 따라서 그 세 가지를 모두 가지는 것이 낭비이고 쓸모없다고 말할 수 없다. 그것들은 모두 매우 다른 기능을 제공하고 있고, 컴퓨터 바깥의 하드웨어 지원과 상호 운영성과 같은 당연한 이유로 디폴트로 설치된다. @
원문 : http://articles.techrepublic.com.com/5100-10877_11-6066271.html?tag=search
출처 : ZDNet

댓글을 달아 주세요

1. 이미지 구하기
   PC (Intel x86) alternate install CD  *이미지 다운// 이걸로 정했다.
2. 이미지 굽기
   각종 CD-Write 툴로 다운받은 이미지 굽기
3. CD를 넣고 CD-ROM 부팅
4. 나머지는 모 시키는대로 하면.. ㅋㅋ
5. * 중요 : 우분투 root 계정 획득하기
   $ sudo -s
   password : ....
   #
//젠장 데비안 계열은 이거부터가 다르다. 한참 헤맸다.
  1) 한글 및 한글전환키 설정
  # apt-get install nabi
  # apt-get install imhangul nabi
  # export LANG=ko_KR.eucKR
  # export XMODIFIERS="@im=nabi"
 
  2) X-Windows 해상도 설정(해상도 맞지 않는분만...)
 
  # dpkg-reconfigure xserver-xorg
       
        설치 화면 -> 주요 부분 설정
        - HorizSync 30 - 111  <- 값
        - VertRefresh   50 - 160  <- 값   
 
6. 필수 패키지 설치
//이것도 다르다.
 
 # apt-get install ssh         / 보안 텔넷 ex) # ssh 192.168.0.2
 # apt-get install vsftpd      / 범용 FTP서버
       
7. 설치 후 관리
 
 # apt-get upgrade        / 기존 패키지 UP
 # apt-get update          / 새로운 패키지
 
1). 패키지 캐쉬 갱신 및 자동 업그레이드
 # apt-get update ; apt-get upgrade
 
2). 원하는 패키지 찾기
# apt-cache  serach 파일명
 
3). 패키지 삭제
# apt-get remove 패키지명
또는 # dpkg -P 패키지명
 
4).CD-ROM 목록 추가
# apt-cdrom add
 
5). 개별 패키지 설치
# apt-get install 파일명
 
6). 원하는 패키지 찾은 다음 정보 출력
# apt-cache show 파일명
 
7). 의존성 검사 수행후 패키지 업그레이드
# apt-get dist-upgrade
 
8.) dselect에서 선택한 패키지의 설치 및 삭제
 
# apt-get dselect-upgrade
 
우분투(데비안)에서 A.P.M 설치 및 활용:
 
참고 사이트 : http://kldp.org/                   리눅스 KDLP  
                   http://www.debian.org/       데미안
                   http://debianusers.org/       한국데미안사용자모임
                   http://www.ubuntu.or.kr/     한국우분투사용자모임

[edit]1. Apache2 + PHP5 + MySQL + GD 설치 #
(Sarge의 경우부터는, apache2로 바뀌고 조금 다를 수 있지만, 설치에큰어려움은없으실겁니다.)
----------------------------------------------------------------------------------------
1. apt-get install 이나 dselect 를 사용하여 다음 패키지들을 설치합니다.
   순서 중요함... 자동 설치! 그대로 따라 치세요...!
   1)# apt-get install mysql-common    <- 최신버전이라 나오면 다음~!
   2)# apt-get install mysql-server
   3)# apt-get install apache2
   4)# apt-get install php5
   5)# apt-get install php5-mysql
2. apache2 설치시에 apacheconfig 를 실행시키겠냐고 물어보는데, 기본적인 설정을 해주는 작업입니다. y를 눌러 기본값을 입력해 줍니다.
3. php5, php5-mysql 를 설치시에는 gd.so 와 mysql.so 를 php.ini 에 포함시킬 것인지 물어보는데, y를 눌러 포함시킵니다.
4. mysql 설치시에는 mysql 제거시 db 파일들도 제거할 것인가를 물어봅니다. 디폴트는 no 입니다.  깨끗한 삭제를 원하면, yes 를 선택합니다.
   (혹시, 버전업시 데이타들이 지워질 우려도 있으므로 no를 선택하는 것이 좋습니다.)
[edit]2. Apache2 + PHP5 + MySQL 기본 설정 #
[edit]각종 파일 위치 및 기본 정보 #
----------------------------------------------------------------------------------------
Apache 설정파일 : /etc/apache/httpd.conf          /etc/apache2/apache2.conf : 아파치 2.x 대
웹문서루트              : /var/www                        /var/www/apache2-default/
Apache 로그파일         : /var/log/apache            /var/log/apache2
Apache 데몬 계정과 그룹 : www-data www-data
PHP 설정파일            : /etc/php5/apache/php.ini      /etc/php5/apache2/php.ini
MySQL data 파일 위치    : /var/lib/mysql
* MySQL mysqld.sock 위치  : /tmp/mysqld.sock        /var/run/mysqld/mysqld.sock
[edit]httpd.conf 설정 (Apache2 + PHP5 + CGI) # Sarge(Apache 2.x 버전을 사용)의 경우부터는 httpd.conf대신 /etc/apache2/apache2.conf가 기본 설정파일입니다.
* 사용자 계정 생성 후 계정 사용 관련
  # /etc/apache2/apache2.conf
   UserDir public_html # 주석 삭제
----------------------------------------------------------------------------------------
1. php 연동 ** 우분투에서는 참고만... **
아래의 설정은 위 설치 파일 중 php5-mysql 포함되어있다... ** 참고만... **
설정파일 중에서 아래부분의 주석을 풀어줍니다.
LoadModule php5_module /usr/lib/apache2/libphp5.so
php 확장자가 가능하도록 주석을 풀고 확장자를 추가시킵니다.
AddType application/x-httpd-php .php .inc .php4 .php5 .html .htm  (원하는 확장자들을 추가하십시오)
AddType application/x-httpd-php-source .phps
* 제로보드 설치시
# vi /etc/php5/apache2/php.ini 내
register_globals = Off => On 수정
----------------------------------------------------------------------------------------
Sarge(Apache 2.x 버전을 사용)의 경우부터는 apache2.conf외에도 /etc/apache2/mods-enabled/ 에 php5.load 와 php5.conf 로 존재합니다. 각각 확인해 보세요.
----------------------------------------------------------------------------------------
2. CGI 사용 가능하게 하기
데비안 아파치에서는 기본적으로 httpd.conf 파일에서 cgi 설정을 하여도 보안상 문제로 웹문서루트가
아닌 일반 사용자 디렉토리에서는 cgi 사용이 불가능합니다. suEXEC 라는 프로그램을 사용하여 일반사용자의
cgi 사용을 막아놨기 때문입니다. 그래서 편법이지만 suEXEC 프로그램이 작동을 못하도록 /usr/lib/apache
밑에 있는 suexec 프로그램의 이름을 바꿉니다.
(보안상 좀더 확실한 방법을 하고 싶으신 분들은 아래 관련문서의 cgiwrap 을 사용하는 방법을 참고하세요.)
※ 관련문서 - http://debianusers.org/stories.php?story=01/04/21/9879940
Options에 ExecCGI 를 추가하여 웹문서루트에서 cgi 를 작동하게 합니다.
<Directory /var/www/>
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
    Options Indexes Includes FollowSymLinks MultiViews ExecCGI
사용자 디렉토리 부분도 기존 설정부분을 주석(#)처리하고 웹문서루트와 동일하게 설정을 합니다.
<Directory /home/*/public_html>
    Options Indexes Includes FollowSymLinks MultiViews ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
#    <Limit GET POST OPTIONS PROPFIND>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
#        Order deny,allow
#        Deny from all
#    </Limit>
</Directory>
cgi 확장자가 사용가능하도록 AddHandler 의 주석을 제거합니다.
AddHandler cgi-script .cgi .sh .pl
----------------------------------------------------------------------------------------
Sarge(Apache 2.x 버전을 사용)의 경우부터는,
cgi 설정시에 /etc/apache2/Apache2.conf에서의 기본 설정외에도, /etc/apache2/sites-enabled/000-default
파일의 DocumentRoot (/var/www) 의 관련 설정에서, Options 항목에 ExecCGI 를 추가해 주어야 합니다.
: 우디에서는 ExecCGI를 /etc/apache/httpd.conf에 추가했었는데, 사지에서는 ExecCGI를
/etc/apache2/sites-enables/000-default에 추가
----------------------------------------------------------------------------------------
DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews ExecCGI
                AllowOverride None
         ......
suexec 파일은 /usr/lib/apache2/suexec2 로 변경됨.
----------------------------------------------------------------------------------------
3. 한글설정(Sarge-apache2.0버전)
다음명령을 써서 한글언어를 추가 시킵니다.
AddLanguage ko .ko
LanguagePriority ko en da nl et fr de el it ja pl pt pt-br ltz ca es sv
AddDefaultCharset EUC-KR
4. 이제 아파치 데몬을 재가동합니다.
# apache2 -k stop
# apache2 -k start
5. php 가 연동이 잘 되었는지 phpinfo.php 를 만들어 웹문서루트에 저장한뒤 웹브라우저에서 읽어봅니다.
vi /var/www/phpinfo.php
<?
phpinfo();
?>
----------------------------------------------------------------------------------------
[edit]3. MySQL root password 설정 및 사용자 추가 #
MySQL root password 설정
mysqladmin -u root password 'new-password'
MySQL db 사용자 추가방법
1. MySQL에 root로 로그인 합니다.
mysql -u root -p
Enter Password:
2. 새로 추가할 db를 만듭니다.
mysql> create database db_new;   (세미 콜론을 꼭 입력하세요.)
Query OK, 1 row affected (0.06 sec)
3. mysql 기본 데이타 베이스인 mysql 를 선택하여 새로운 사용자 등록을 합니다.
mysql> use mysql;
Database changed
mysql> insert into user values ('localhost','userid',password('userpasswd'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N');
(N은 모두 14개입니다.)
Query OK, 1 row affected (0.04 sec)
mysql> use mysql;
Database changed
mysql> insert into user (host, user, password) values ('localhost','userid',password('userpasswd'));
(전..이렇게 합니다...아무튼 같은 결과임..)
Query OK, 1 row affected (0.04 sec)
4. 이번엔 mysql 에 userid 가 db_new라는 데이타 베이스를 이용한다는 정보를 넣어줍니다.
mysql> insert into db values ('localhost','db_new','userid','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
(Y는 모두 10개입니다.)
Query OK, 1 row affected (0.04 sec)
(cf.) 에러가 나는 경우에는 'Y'의 갯수를 12개로 늘려 보세요...
5. 변경된 설정으로 MySQL을 재시작 합니다.
mysql> exit;
mysqladmin -u root -p reload
mysql>FLUSH PRIVILEGES;
(이렇게 해도, 적용됩니다)
6. mysql 비번 바꾸기
mysql> set password for id@localhost = password('newpasswd');
[edit] MySQL 응용 #
mysql 설정 화일 : /etc/mysql/my.cnf
1. mysql 에서 한글을 사용하기 위해 euc_kr 로 설정한다. : default-character-set=euc_kr
2. 원격 mysql 에 접속하기 위해 주석 처리 한다. #skip-networking
3. mysqld.sock 생성하기
   $ rm /etc/my.cnf   지우기
   $ mysql_install_db 실행
   $ safe_mysqld &    실행
   $ /var/run/mysqld/mysqld.sock 생성
----------------------------------------------------------------------------------------
-데미안계열 패키지 관리-
----------------------------------------------------------------------------------------
alien 이라는 페키지를 사용 deb로 변환 한다.
alien 사용법
rpm 을 deb 패키지로 만들경우
alien -d xxxx.rpm
(설치는 dkpg -i xxxx.deb )
deb 를 rpm 으로 만들경우
alien -r xxxx.deb
dpkg 사용방법
 
1. 패키지에 대한 정보 보기
#dpkg --info file_name
2. 패키지에 들어있는 파일 보기
#dpkg --contents file_name
3. 패키지 설치하기
#dpkg -i file_name
4. 패키지를 풀어헤치기만 하고 설정하지 않기
#dpkg --unpack file_name
5. --unpack으로 풀어헤친 패키지를 설정하기
#dpkg --configure file_name
6. 패키지 삭제하기
#dpkg --remove package_name
7. 설정파일까지 삭제하기
#dpkg --purge package_name
8. 패키지 내의 파일 검색
#dpkg -L package_name
9. 어떤 파일이 어떤 패키지에 들어있는지 알고자 할 때
#dpkg -S 패턴
10. 설치된 패키지 리스트보기
#dpkg -l
 

출처 : http://blog.naver.com/nanocare/150014299699 카이마스님 블로그

댓글을 달아 주세요

엉뚱한 곳만 삽질 하니 뭐가 나오길 하나...
어째튼....잘 잡히던 해상도가 갑자기 안잡혀서 여기저기 눈팅하며 얻은 정보다
우선 어떻게 될지 모르니...어제도 작업하면서 짬짬히 우분투를 만졌는데 정말 해상도 하나 맞추기 이렇게 힘들다니..
에혀 누가 우분투 쉽다고 했어...ㅡ``ㅡ;;;
암튼 일단 xrog.conf파일이 어떻게 될지 모릉께 백업하고
cp /etc/X11/xorg.conf /etc/X11/xorg.conf.070325backup...
엇? 그래도 안돼네? ㅡ````ㅡ;; 다 안고쳐서 그런가?
일단 다 고쳐놓구...

얼마전
sudo apt-get install nvidia-glx ← Nvidia 그래픽 카드를 잡아주기 위한 커맨드
sudo apt-get install nvidia-glx-legacy ← 지포스 2 시리즈 이하의 Nvidia 카드들은 이명령어를 입력한다.
sudo dpkg-reconfigure xserver-xorg ← X의 설정 처음부터 다시 하는 커맨드
sudo dpkg-reconfigure -p high xserver-xorg ← X의 설정중 해상도에 관한 설정만 조정하려면 이 커맨드를 입력

위엣것들로 했다가 dog피 봤다는...ㅡㅡ; 뭐 내가 몰라서 그렇겠지....그래두 누가 우분투 쉽다고 그랬어? 피~쓰...
에혀...이거 다시 해봐야 겠당..

댓글을 달아 주세요

  1. mychatterbox 2007.03.26 10:49 신고 Address Modify/Delete Reply

    http://mychatterbox.tistory.com/entry/ubuntu

    한번 참고해보세요 ^^


윈도우에서 vmware 같은 가상머신을 통해 리눅스 등 다른 운영체제를 깔 수 있다는 것은 많이들 알고 있을 것이다. 나도 첨에 그렇게 리눅스를 접했다. 하지만 vmware 같은 경우는 아직까지 불만족한 퍼포먼스를 보여준다. 베릴을 키지 않아도 리눅스가 버벅되는게 느껴진다. 리눅스가 어떤 것인지 맛보기로 사용할꺼라면 모르지만, 제대로 한번 써보자라는 생각으론 많이 부족하다. 이 때문에 결국 리눅스를 윈도우와 함께 듀얼 부팅으로, 그것도 기본 부팅 체제로 설치하기에 이른 것이다.

반대로 리눅스 상에서 윈도우를 돌리는 것도 가능하다. 이번에 소개할게 바로 그것인데, vmware 가 아닌, VirtualBox 를 이용하는 것이다. VirtualBox 는 같은 가상머신이지만, 먼젓번에 사용했던 vmware 와는 차원이 다른 퍼포먼스를 보여준다. 정말 가상머신인지 리얼머신인지 구분이 안될 정도로 부드러운 사용이 가능하다. 이 정도면 리눅스를 과감하게 메인으로 잡고, 필요한 경우에만 윈도우를 가상머신으로 돌려도 실사용에 지장이 없을 듯 하다. 단지 게임같은 강력한 하드웨어를 필요로 하는 경우는 예외이다.

설치 방법은 아래와 같다.


1. VirtualBox 홈페이지에 가서 호스트(메인으로 쓰고 있는 운영체제)에 맞는 것을 다운받는다.


2. 터미널에서 아래와 같이 입력한다.

sudo dpkg -i VirtualBox_1.3.8_Ubuntu_edgy_i386.deb


3. 인스톨 화면이 뜨면서 몇가지 질문을 받는데, 눈치껏 대답한다.

* 경우에 따라선 아래와 같은 꾸러미가 없다고 설치가 중지된다. 설치해 주고 과정을 재개한다.

sudo apt-get install libxalan110 libxerces27


4. vboxusers 라는 그룹 정보가 만들어지는데, 앞으로 VirtualBox 를 사용하기 위해서는 vboxusers 그룹의 일원이 돼야 한다고 한다. 시스템 - 관리 - [사용자와 그룹] 에서 그룹 관리를 들어가면, 맨 밑에 vboxusers 라는 항목이 보인다. 등록 정보에서 자신의 계정을 그룹 그성원으로 체크한다.


5. 설치가 끝나면, 우분투를 재시작한다. 프로그램 - 시스템 도구에 보면 InnoTek VirtualBox 라는 항목이 보일 것이다. (용량이 10메가 밖에 안되서, 설치 과정이 굉장히 빠르다.)


사용 방법은 vmware 와 흡사하므로, 따로 설명하지 않겠다. 몇가지 주의점만 적어보겠다.

1. ntfs 쓰기 기능을 활성화시켰다면, 윈도우 파티션에 가상 이미지(vdi)를 잡을 수 있다. 특히 Dynamically Expending Image 로 설정하면, 리눅스의 사용 공간을 많이 절약할 수 있다. 윈도우는 기본적으로 하드를 2.5 기가 정도 잡아먹으므로, 적어도 4기가는 잡아줘야 나중에 문제가 적다.

2. 가상머신에서 사운드를 듣기 위해서는 Audio 를 ALSA 로 설정해줘야 한다. (적어도 나의 경우는 그랬다.)

3. 리얼머신이랑 너무 똑같다고, 비디오, 사운드 드라이버 등을 따로 설치하면 안된다. 다이렉트X 를 지원하지 않기 때문에, 설치 중에 오류가 발생한다.

4. 리얼머신과 가상머신 사이의 전환키(Host Key)는 기본적으로 [오른쪽 CTRL] 이다. 나같은 경우는 이미 한자키로 쓰고 있기 때문에 [오른쪽 Menu] 키로 설정하였다. 가상머신에 들어가기 전에 몇가지 단축키는 기억해 두는 것이 좋다.
                                                                                              http://zzzik.tistory.com 에서 퍼옴

댓글을 달아 주세요

  1. 초급엔지니어 2008.12.02 09:28 신고 Address Modify/Delete Reply

    좋은 정보 잘 보고 갑니다.
    VMWare 같은 프로그램이 linux에도 있을 것 같아서 검색하고 있었거든요. 감솨~


많은 고수들이 있다..닮고 싶은 고수들..
아~ 언제쯤에나....
쩝..
길을 잘못 들은건 아닐까? ^^;;;

http://sakuragis.egloos.com
리눅스에서 beryl를 구현하고 싶지만...쩝..하수의 고뇌를 누가 알랴...ㅋㅋ;

댓글을 달아 주세요

  • sudo apt-get install nvidia-glx ← Nvidia 그래픽 카드를 잡아주기 위한 커맨드
  • sudo apt-get install nvidia-glx-legacy ← 지포스 2 시리즈 이하의 Nvidia 카드들은 이명령어를 입력한다.
  • sudo dpkg-reconfigure xserver-xorg ← X의 설정 처음부터 다시 하는 커맨드
  • sudo dpkg-reconfigure -p high xserver-xorg ← X의 설정중 해상도에 관한 설정만 조정하려면 이 커맨드를 입력
  • 댓글을 달아 주세요

    새로받은 따끈따끈한 SULinux 리눅스 설치중..
    ....
    ...
    .
    .
    running install
    running /sbin/loader 에서 그냥 멈추더니 움직일 생각을 안함.

    웹에선 이렇게 함 된다는데..

    you type in "linux ide=nodma" at the boot screen and it installs without a hitch, though I have no idea what that line of code means.

    난 왜 아직꺼정 안돼냐...ㅡ``ㅡ;;

    걍 냅두구 딴지꺼리(?) 하구 있었다...디스쿠 두루이 떳네? ㅡㅡ; 당최 머땀시 안된거야?

    댓글을 달아 주세요

    0.0.0.1 서브 디렉토리까지 파일안의 문자열 모두 검색
    find ./ -name "*" -exec grep 'abc' {} \; -print find . -name -print -exec grep abc {} \; grep -r abc *

    0.0.0.2 haha와 huhu가 동시에 들어있는 행 뽑기
    grep haha foo.txt | grep huhu

    0.0.0.3 찾아서 지우기
    find / -name "*.eml" -exec rm -f {} \;

    0.0.0.4 공사중에 로그인 막기
    시스템을 공사중일 때, root 이외의 다른 사용자를 로그인 못하게 해야 할 때가 있죠? 그럴 때는, /etc/nologin 이라는 파일을 만들어,공사중 또는 Under Construction이라는 공지를 넣으면 됩니다.


    0.0.0.5 크기가 가장 큰 파일, 디렉토리 찾기
    가장 큰 디렉토리를 찾으려면,  du -S | sort -n  

    0.0.0.6 가장 큰 파일을 찾으려면
    ls -lR | sort +4n  

    0.0.0.7 현재 디렉토리의 크기만을 파악할때
    [root@dev2 local]# du -c -h --max-depth=0 * 6.4M apache 35M bin 43M dns 1.7M doc 42k etc 1.0k games 42k geektalkd 1.1M gnuws 1.1M include 41k info 19M jakarta-tomcat-3.2.3 0 jre 15M jre118_v3 25M lib 62k libexec 1011k man 1.3M mm.mysql.jdbc-1.2c 937k sbin 3.8M share 1.8M shoutcast-1-8-3-linux-glibc6 5.2M ssl 159M total

    0.0.0.8 시스템 정보 감추기
    /etc/inetd.conf 파일을 열어서,
    telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

    0.0.0.9 어떤 프로세스가 메모리를 가장 많이 잡아먹고 있는지 알아내기
    ps -aux | sort +4n  또는 ps -aux | sort +5n  

    0.0.0.10 FTP로 들어온 사용자 확인하기
    ftpwho,ftpcount  

    0.0.0.11 원하지 않는 사용자 죽이기
    [root@dream /root]# skill -KILL sunny  
    위의 명령을 내리면 sunny 라는 사용자를 완전히 추방시킬수 있습니다. 그런데 이렇게 완전히 추방시키는게 아니구, 특정 터미널에 접속해있는 사용자만 추방시켜야 할 때도 있겠죠? 그럴때는

    [root@dream /root]# skill -KILL -v pts/14  

    이런식으로 하면 된다 그럼 pts/14 에 연결되어 있는 사용자가 죽게 됩니다.


    0.0.0.12 less 결과를 vi로 보기
    less상태에서 v를 누르면 바로 vi로 감

    0.0.0.13 vi에서 블럭 설정하기
    alt+v 하면, 라인 단위로 블럭 설정을 할 수 있으며, 해제 하시려면 Esc를 누르면 됩니다. 또한 ctl+v를 하시면, 블럭 단위로 블럭을 설정하실 수 있습니다.
    블럭을 설정 하신 뒤,

    삭제를 하려면 x 복사를 하려면 y 붙여넣기는 p


    0.0.0.14 man 페이지 프린트하기
    man -t vi > vi.ps  

    0.0.0.15 ping 무시하기
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

    0.0.0.16 LILO 다시 살리기
    boot : vmlinuz root=/dev/hda6  

    0.0.0.17 특정 사용자 ftp 접근 막기
    /etc/ftpusers 파일에 로그인 네임을 추가하면 됩니다.


    0.0.0.18 X 윈도우에서 TV보기
    리눅스에서 TV보기 위해서는 드라이버 파일과 TV를 보는 프로그램이 필요합니다. 이 글에서는 미지 리눅스 OS에 탑재된 bttv 칩셋을 사용하는 TV 카드를 기준으로 설명합 니다. 만일 커널을 새로 컴파일 하실 분은 반드시 Character devices -> Video For Linux -> BT848 Video For Linux 항목을 모듈화 시키거나 커널에 포함하십시오.
    TV 카드를 리눅스에 인식시키기 위해서 /etc/conf.modules 파일에 다음과 같은 내용을 삽입하고 컴퓨터를 다시 시작합니다.


    alias char-major-81 bttv # 필립스 튜너의 경우 pre-install bttv modprobe -k tuner # 알프스 튜너의 경우 pre-install bttv modprobe -k tuner type=9
    이제 kwintv나 xawtv 등의 TV 시청 프로그램으로 TV를 볼 수 있습니다. 만약 TV 장치를 찾지 못하는 오류가 있다면 bttv driver 디렉토리에 포함된 MAKEDEV 를 실행하십시오.


    0.0.0.19 ls라는 파일이 포함된 rpm패키지 찾기
    일단 ls의 절대경로를 알아야 한다. which lswhich로 알아낸 ls의 절대경로로 rpm질의를 한다.
    rpm -qf /bin/ls [root@piruks /etc]# which ls /bin/ls [root@piruks /etc]# rpm -qf /bin/ls fileutils-4.0i-2mz

    0.0.0.20 현재 rpm패키지의 의존패키지
    rpm -qR 패키지명  

    0.0.0.21 현재 디렉토리크기
    du -h --max-depth=1 .  

    0.0.0.22 바로 이전 디렉토리로 가기
    cd -  

    0.0.0.23 프로세스명으로 프로세스 죽이기
    killall 프로세스명 kill -9 `pidof 프로세스명

    0.0.0.24 하드웨어 시계맞추기
    배포본을 설치하고 나면 시간이 맞지 않는 경우가 많다. 간단히 어느정도 정확한 시간을 설정하는 방법이다.
    [root@dev /down]# rdate -s time.kriss.re.kr [root@dev /down]# clock -w

    0.0.0.25 원격에서 리모트서버의 X application실행시
    X윈도 app를 실행할때 다음과 같은 에러가 나면 조치
    [kang@dev /home/kang] xclock Xlib: connection to "211.222.186.170:0.0" refused by server Xlib: Client is not authorized to connect to Server Error: Can't open display: 211.222.186.170:0.0 export DISPLAY=211.222.186.170:0 xhost +211.222.186.170

    0.0.0.26 링크 파일
    ln -sf 링크할디렉토리 링크로 만들어질 디렉토리  참고로 링크를 걸기만 한다고 접근가능한것은 아니고,링크가 걸린 디렉토리의 퍼미션도 허용으로 바꿔야 한다. 링크로 만들어질 디렉토리는 저절로 생성되고 퍼미션 777로 잡혔음.  ln -sf /www/dir_1/r_photo /www/dir_2/r_photo  

    0.0.0.27 ^M 문자 없애기
    a = 1^M def vartest(a):^M a = a + 1^M return a^M a = vartest(a)^M print a^M
    Unix류 기계에서는 그냥 ^J 하나만을 개행문자로 사용하는데 PC에서는 MJ 이렇게 두 제어문자가 연속으로 사용되어야 개행문자로 받아들이죠. (그래서 PC쪽에서 만들어진 txt문서를 유닉스 기계로 불러와 vi 등을 실행하면
    줄 끝마다 보기싫은 ^M이 붙습니다. 뭐 vi에서 요거 지우는건 간단하지만요.)

    PC에서 Unix에서 작성한 텍스트 문서를 보통 ftp로 받아오거나 하면 워드패드 등에서 봤을 때 전혀 개행이 되어있지 않지요. 하지만 MS Word 등 좀더 강력한 편집기에선 대개 잘 처리해서 잘 보여줍니다.

    위는 간단한 Python 소스입니다. 위의 경우 처럼 ^M문자가 있을때, dos2unix라는 유틸리티를 많이 사용하기도 하죠. 하지만 vi에서 간단하게 모두 삭제할수도 있습니다. dos2unix가 없거나 빠져나가서 지우는게 귀찮을때 좋겠죠. 명령은  :%s/(ctrl+v)M//g  입니다.  (ctrl+v)M  이거는 ctrl과 v를 눌러준후, ctrl키를 떼지 말고 바로 m을 눌러주시믄 됩니다. 위는 정규표현식을 이용한것이고, 형식은  %s/이것을/요걸로/g  입니다 그럼 문서안의 모든 "이것을" "요걸로" 바꾸게 되죠. 단, M의 경우 ctrl+M의 뜻인데 단순히 문자로 M을 바꾸라도 해도 인식을 못하기 때문에, 위처럼  (ctrl+v)M  으로 해주셔야 합니다.


    0.0.0.28 비어있는 행을 찾기
    #grep -n '^$' filename  정규표현 의미 ^ 행의 처음 $ 행의 끝 . 임의의 한 문자
    [...] ... 안의 임의의 한 문자. a-z,0-9 같은 범위도 사용 [^..] .. 안에 없는 임의의 한 문자. 범위 사용가능 r* 0회 이상 r 반복 r+ 1회 이상 r 반복 r? 0 혹은 1회의 r r{n,m} n회 이상 m회 이하 r 반복 r1|r2 r1 혹은 r2 (egrep 만) (r) r 의 정규표현(egrep 만)

    0.0.0.29 기타 명령어 떼
    alias(명령어 간소화하기) apropos(관련된 명령어 찾기) arch(컴퓨터 종류 알기) arp(같은 서브넷의 IP 보여주기) at(작업 시간 정하기) atd(계획성 있는 작업 실행하기) awk(특정 패턴 문자 처리하기) a2p(펄 파일로 바꾸기) badblocks(배드 블럭 검사하기) bc(계산기) biff(메일 수신 소리로 확인하기) bg(후면작업; 배경화면 설정) bind(키나 함수 순서 결합하기) break(루프 빠져나가기) cal(달력보기) builtin(내부 명령어 알아보기) case(조건 처리하기) cat(화면상에서 파일 보기) cd(디렉토리 변경하기) cfdisk(디스크 설정하기) chattr(파일 속성 변경하기) chfn(사용자 정보 변경하기) chgrp(파일, 디렉토리가 속했던 그룹 바꾸기) chmod(파일 권한 바꾸기) chown(파일 주인 바꾸기) chsh(지정된 셸 바꾸기) cksum(CRC값을 점검한다) clear(화면 청소하기) clock(CMOS 시각을 조정하기) cmp(파일 비교하기) colcrt(문자 변환 필터) colrm(열 삭제하기) column(가로 정렬하기) comm(파일 비교 출력하기) command(명령어 알아보기) continue(루프 계속돌기) cp(파일 복사하기) cpio(복사본 만들기) crontab(cron을 관리한다) csplit(파일에 서식, 규칙 정하기) cut(필요한 필드만 출력하기) date(날짜 보기) dd(블럭장치 읽고 쓰기) debugfs(ext2 파일 시스템 디버깅하기) declare(변수 선언하기) df(파일 시스템의 사용량 보기) dirs(디렉토리 목록 표시하기) dmesg(부팅 메시지 보기) dnsdomainname(DNS 이름 출력) domainname(NIS 이름 출력&설정) du(디렉토리와 파일의 용량 파악하기) dumpe2fs(파일 시스템 정보 보기) echo(표준 출력하기) eject(장치 해제하기) elm(메일 관련) enable(내부 명령어 지정) env(환경변수 출력하기) eval(인수 읽기) exec(셸 명령어 실행하기) exit(종료하기) expand(탭을 공백으로 변환하기) export(변수 지정하기) e2fsck(파일 시스템 복구하기) fc(지정된 편집기 받기) fdformat(플로피 디스크 포맷하기) fdisk(파티션 나누기) fg(지정된 작업을 전면 프로세스로 시작하기) file(파일 종류 보기) find(파일 찾기) finger(사용자 정보 알기) fold(정형화하기) fmt(정형화하기) for(반복 실행하기) free(메모리 사용량 알아보기) fsck(파일 시스템 검사하기) fstab(파일 시스템에 대한 고정적인 정보 저장하기) ftp(파일 전송 프로그램) fuser(프로세스 ID 출력) getkeycodes(매핑 테이블 출력하기) grep(특정 문자(열) 검색하기) gzexe(실행 파일 압축하기) gzip(압축하기) halt(시스템 종료하기) hash(기억해 두기; index 역할) head(파일의 앞부분 출력하기) help(도움말 보여주기) host(호스트 정보 보기) history(사용 명령어 목록보기) hostname(서버 이름 알기) id(계정 정보 알기) if(조건문 실행하기) ifconfig(랜카드에 주소 할당하기) imolamod(모듈 설치하기) inetd(인터넷 서비스의 최상위 데몬) init(실행 단계 정하기) ispell(철자법 검사하기) jobs(수행중인 프로세스 알기) kbd_mode(키보드 모드 출력하기) kill(프로세스 죽이기) klogd(커널 로그 데몬) ldd(공유 라이브러리의 의존성 알기) less(페이지 단위로 출력하기) let(정규식 표현하기) lilo(부팅하기) ln(링크하기) locate(패턴에 맞는 파일 찾기) login(로그인하기) logger(시스템 로그 기록하기) logname(사용자 로그인명 보여주기) logout(로그인 셸 종료하기) look(특정 단어 검색하기) losetup(중복 장치 확인하기) lpd(프린트 데몬) lpq(현재 프린트 작업 상태 출력하기) lpr(출력하기) lprm(대기열에 있는 문서 삭제하기) ls(디렉토리 내용보기) lsattr(파일 시스템의 속성 보여주기) lsdev(하드웨어 장치 출력하기) lsmod(모듈 정보 출력하기) mail(메일 관련) make(컴파일하기) man(매뉴얼 보기) mattrib mbadblocks mcd mcopy mdel mdeltree mdir mesg(메시지를 받을 수 있는지 확인하기) mformat minfo mkdir (디렉토리 만들기) mke2fs(파일 시스템 생성하기) mkfs(파일 시스템 만들기) mknod(특수 파일 만들기) mkswap(스왑 영역 지정하기) mlabel mmd mmount mmove mpartition mount(장치 연결하기) more(화면 단위로 출력하기) mrd mren mtoolstest mtype mutt(메일 관련) mv(파일 옮기기) mzip netstat(현재 네트웍 상황 보기) nice(프로세스 우선 순위 변경하기) od(8진수로 파일 보기) passwd(암호 입력하기) pidof(실행중인 프로그램의 프로세스 ID 찾기) pine(메일 관련) ping(네트웍 확인하기) popd(pushd 취소) ps(프로세스 상태 알기) pstree(프로세스 상관관계 알기) pwd(절대경로 보여주기) quota(디스크 한계량 알기) rarp(rarp 테이블 관리하기) rcp(원격 호스트에 파일 복사하기) rdev(루트, 스왑장치, 램 크기, 비디오 모드를 조사하고 설정하기) rdate(네트웍으로 시간 설정하기) reboot(재부팅하기) rmmod(모듈 지우기) readonly(읽기 전용으로 표시하기) renice(프로세스 우선 순위 바꾸기) reset(터미널 초기화하기) restore(다시 저장하기) rlogin(바로 접속하기) rm(파일 지우기) rmdir (디렉토리 지우기) route(라우팅 테이블 추가/삭제하기) rpm(프로그램 추가/삭제) rpm2cpio(rpm을 cpio로 변환하기) rsh(원격으로 명령어 실행하기) rup(호스트 상태 출력하기) rusers(호스트에 로그인한 사용자 출력하기) rwall(호스트 사용자에게 메시지 뿌리기) script(기록하기) set(변수값 설정하기) setup(시스템 관련 설정하기) showmount(호스트의 마운트 정보 보여주기) shutdown(전원 끄기) sleep(잠시 쉬기) source(스크립트 번역하기) split(파일 나누기) ssh(암호화된 원격 로그인하기) stty(터미널라인 설정 보여주기) su(계정 바꾸기) suspend(셸 중단하기) swapoff (스왑 해제하기) swapon(스왑 활성화하기) sync(버퍼 재설정하기) syslogd(로그인 과정 설정하기) tac(거꾸로 보기) tail(문서 끝부분 출력하기) talk(이야기하기) tar(파일 묶기) tcpdchk(tcp wrapper 설정하기) tcpmatch(네트웍 요청에 대해 예측하기) tee(표준 입력으로부터 표준 출력 만들기) telnet(원격접속하기) test(테스트하기) times(셸에서의 사용자와 시스템 시간 출력하기) top(cpu 프로세스 상황 보여주기) tr(문자열 바꿔주기) true(종료 코드 리턴하기) type(유형 보기) ul(밑줄 처리해서 보여주기) ulimit(제한하기) umask(매스크 모드 설정하기) umount(장치 해제하기) unalias(별명 제거하기) uname(시스템 정보 보기) unexpand(공백 문자를 탭으로 변환하기) uniq(중복된 문장 찾기) useradd(사용자 계정 만들기) userdel(계정 삭제하기) usermod(사용자 계정정보 수정하기) unset(설정 변수 해제) uptime(시스템 부하 평균 보여주기) users(로그인된 사용자 보여주기) w(시스템에 접속한 사용자 상황 알아보기) wait(프로세스 기다리기) wall(모든 사용자에게 메시지 보내기) wc(문자, 단어, 라인수 세기) whatis(명령어의 간단한 설명보기) while(루프 명령어) who(사용자 알기) write(콘솔 상에서 간단한 메시지 보내기) xcopy(반복적으로 복사하기) XFree86 ypchfn(NIS에서 사용하는 chfn 명령어) ypchsh(NIS에서 사용하는 chsh 명령어) yppasswd(NIS에서 사용하는 passwd 명령어) zcat(압축 파일 보기) zcmp(압축 파일 비교하기) zforce(강제로 gz 만들기) zgrep(압축 상태에서 grep 실행하기) zmore(압축 상태에서 more 실행하기) znew(.Z 파일을 .gz로 다시 압축하기)

    0.0.0.30 각자가 사용하는 컴퓨터의 정보를 알고 싶을때
    [root ...]#more /proc/cpuinfo  위와 같이 치면 사용자의 컴퓨터 정보를 볼수 있으며,  [root ...]#more /proc/meminfo  라고 치면 사용자의 메모리 정보를 볼수 있습니다.

    0.0.0.31 전체 메일
    먼저 보낼 내용을 텍스트로 파일로 만들어야 합니다.어디에서든지 가능하지요!  [ root@aromi /root]# vi nea  안녕하세요! 저희 서버에서는 웹서버를 오늘부터 시작합니다. 사용자 여러분의 많은 관심과 이용을 부탁드립니다.
    :wq [ root@aromi /root]#
    만약, 한글을 사용하지 못하면 윈도우95에서 먼저 쓴다음에 ftp를 이용해서 올리면 됩니다.
    [ root@aromi /root]# mail -s "[공지]" `cat /etc/passwd|gawk ?F :'{print$1}'`
    [공지]->  라고 쓴 것은 보낼 메일의 제목입니다.  'cat /etc/passwd|gawk -F : '{print$1}''  ->먼저 cat으로 passwd파일의 첫번째 나오는 내용을 출력하라는 소리입니다. nea라는 텍스트파일을 메일의 내용으로 보내라는 내용입니다.

    0.0.0.32 디렉토리만 빠르게 검색
    ls -al | grep "^d"  

    0.0.0.33 호스트 네임 바꾸기
    /etc/HOSTNAME file은 부팅시 /etc/sysconfig/network file 의 HOSTNAME 부분을 참조하여 저장합니다. 호스트 네임을 바꾸고자 한다면 /etc/sysconfig/network file 의 HOSTNAME 부분을 바꿔주면 됩니다.
    [ root@linux /root]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME="linux" GATEWAY="" GATEWAYDEV="" FORWARD_IPV4="yes"
    바꾸신후 시스템을 재부팅 하신거나, #/etc/rc.d/init.d/network restart 명령을 내리시면 됩니다.

    0.0.0.34 틀린명령어 틀린글자만 바꿔서 실행
    # ./configure --prefax=/usr/local/apache  앗, 틀렸습니다. prefax가 아니라 prefix인데... 고쳐야지요...간단하게 화살표키로 왔다갔다 하면서 지워지고 바꿔주면 되겠지만 다른 방법이 있습니다.  # ^fax^fix^  라고 하면...  -> ./configure --prefix=/usr/local/apache  라고 됩니다..

    0.0.0.35 유닉스의 현재 버젼과 종류 그리고 라이센스등을 알려주는 명령어
    [ root@aromi /root]# uname -a  

    0.0.0.36 열려있는 포트 알아내기
    netstat -anp | grep LISTEN  

    0.0.0.37 텔넷 모든 접속자에게 메세지 보내기
    wall 내용...  Ctrl-D  

    0.0.0.38 lsof는 열려있는 파일을 나타내 주는 옵션
    여기에 보안 점검을 위하여, -i 옵션을 사용하면, 현재 열려 있는 포트와 링크되어 있는 서비스 또는 프로그램이 모두 나타나죠. 자신이 열어 놓지 않은 포트가 열려있다던지하면 한번쯤 의심해 봐도 되겠죠?

    0.0.0.39 사용자가 어디에서 무엇을 하는지 알아내기
    w라는 명령어를 사용하시면 된답니다. 이 때,  w [-s]  를 붙여주시면 -s 옵션이 긴 정보 대신에 필요한 짧은 정보만 알려 준답니다.

    0.0.0.40 텔넷 화면 수정
    로그인화면:  /etc/issue.net  로그인후화면:  /etc/motd  

    0.0.0.41 하위 디렉토리 한꺼번에 만들기
    mkdir -p music/koreanmusic/ost  

    0.0.0.42 특정디렉토리의 모든 파일 안의 특정 문자열 치환
    for i in $*; do sed "s/paper/PAPER/g" < $i > $i.new mv -f $i.new $i done <chihwan.sh> find ./(chihwan.sh를 포함하지 않는 디렉토리면) -type f -exec chihwan.sh {} \;

    0.0.0.43 killall 명령 시뮬레이션 (프로세스명으로 죽이기)
    ps aux | grep 프로세스명 | grep -v grep | awk '{ print $w }' | xargs kill -9  
    모든 프로세스 나열
    지정한 프로세스만 뽑아냄
    grep 명령이 포함된 라인 제거
    awk로 두번째 필드만 뽑아냄
    xargs에 의해 걸러진 아이디로 죽임

    0.0.0.44 find와 grep
    find . -name "H20021115.*" -exec grep -l '...;........;110100' {} \;

    0.0.0.45 vi 검색, 치환
    구호스트 서비스 오늘 날짜에서 분류코드가 110100인 파일 찾기 :%s/./\U&/g
    모든문자->대문자 g/^$/d


    0.0.0.46 파일내의 중복되는 행을 제거 : uniq
    입력 파일에서 연속되는 행을 비교하여, 두 번째 이상의 동일한 행들을 제거하고 나머지는 출력파일로 출력 연속되어 표시되지 않으면 동일한 행이 존재할 수 있음.
    sort 명령을 사용하여 정렬한 후 사용하는 것이 타당 사용법uniq [-cdu] [+|숫자] [입력파일 [출력파일]] -c : 각 행이 연속적으로 나타난 횟수를 행의 시작부분에 표시 -d : 연속적으로 반복되는 행만 출력 -u : 연속적으로 반복되지 않는 행만 출력 +숫자 : 행의 처음 '숫자' 만큼의 문자는 무시 -숫자 : 행의 처음 '숫자' 만큼의 필드는 무시


    0.0.0.47 파일의 결합
    여러 개의 텍스트 파일을 하나의 파일로 순차적으로 묶는데 사용
    cat [파일명1] [파일명2] ... > [출력파일명] cat [파일명1] [파일명2] ... >& [출력파일명] cat [파일명1] [파일명2] ... >> [출력파일명] cat [파일명1] [파일명2] ... >>& [출력파일명] cat - [파일명1], [파일명2] .. >> [출력파일명] cat - [파일명1], [파일명2] .. >>& [출력파일명] % cat > file1 파일명 : file1 ^D % cat > file2 파일명 : file2 ^D % cat file1 file2 > file3 % cat file3 파일명 : file1 파일명 : file2 %
    행단위 결합 : paste 여러 파일에 대해여 행간 결합을 수행하거나 하나의 파일에 대해 연속되는 행들을 결합 둘이상의 파일에 대해서 테이블상의 하나의 열과 같이 취급하여 동일한 행번호 끼리 결합

    paste [파일명1] [파일명2].. paste -d리스트 [파일명1] [파일명2] ... paste -s [-d리스트] [파일명] d : 행간 결합시 행간 구분문자들의 리스트 s : 한파일의 연속되는 행을 결합 % cat > paste.data1 홍길동 이순신 김유신 % cat > paste.data2 부산 서울 대구 % paste paste.data1 paste.data2 홍길동 부산 이순신 서울 김유신 대구 % paste -d"\n" paste.data1 paste.data2 홍길동 부산 이순신 서울 김유신 대구 % paste -s -d"::\n" paste.data1 홍길동:이순신:김유신 %
    두 파일을 동일한 필드 값에 따라 행 단위 결합 : join

    관계형 데이터 베이스에서의 join 연산과 동일 키로 사용할 필드에 대해 정렬된 두 파일의 각 행에 대해 동일한 키 값을 갖는 행들을 결합 입력으로 사용될 두 파일은 키 값에 대해 오름 차순으로 정렬되어 있어야 함 출력 결과는 기본적으로 키 값이 먼저 표시되고, 첫번째 파일에서 키를 제외한 나머지 필드, 두번테 파일에서 키를 제외한 나머지 필드가 표시 필드 구분은 공백, 탭, 개행문자가 기본, 연속적으로 나타날 경우 하나로 취급


    % cat > join.data1 98001:서원일: 98002:홍길동: 98003:김유신: 98004:이순신: 98010:이상관: % cat > join.data2 부산:98001:441 울산:98002:89 대구:98003:99 서울:98004:120 김해:98010:44 % join -j1 1 -j2 2 -t: join.data1 join.data2 98001:서원일::부산:441 98002:홍길동::울산:89 98003:김유신::대구:99 98004:이순신::서울:120 98010:이상관::김해:44 % join -j1 1 -j2 2 -o 1.2 1.1 2.1 -t: join.data1 join.data2 서원일:98001:부산 홍길동:98002:울산 김유신:98003:대구 이순신:98004:서울 이상관:98010:김해 %

    0.0.0.48 파일의 암호화 : crypt
    파일을 암호화 하여 키를 알지 못하는 사람은 내용을 볼 수 없도록 함 표준 입출력 사용
    % cat > crypt.data test test 안녕하십니까? ^D % crypt <crypt.data > crypt.data1 Enter key: hello % ls -l crypt* -rw-r--r-- 1 wiseo pro 24 9월 24일 14:47 crypt.data -rw-r--r-- 1 wiseo pro 24 9월 24일 14:48 crypt.data1 % crypt < crypt.data1 Enter key:hello test test 안녕하십니까? %

    0.0.0.49 개행을 제외한 화면내의 보이지 않는 문자 출력
    cat -v http://comp-cse.sch.ac.kr/~pl/lecture/linux/file2.html

    0.0.0.50 화일내의 포함된 특정문자열로 찾아서 내용만 출력하기
    grep -h '20030305......01' ./R00*

    0.0.0.51 특정 파일의 화일명을 비슷하게 여러개 한꺼번에 바꾸기
    ls *.* | awk '{print "mv",$1, $1 }' | sed "s/ \([a-zA-Z0-9]*\)\.\([a-zA-Z0-9]*\)$/ \1\.\_\2/g"
    현재디렉토리의 모든 *.* 파일을 *._* 형식으로 바꾼다.
    더 간단하게 ls *.* | sed "s/\([a-zA-Z0-9]*\)\.\([a-zA-Z0-9]*\)/mv \1\.\2 \1\.\_\2/g"


    --------------------------------------------------------------------------------


    0.0.0.52 어제 날짜 구하기
    $ date -v-1d "+%Y-%m-%d"  [컴퓨터분류]

    0.0.0.53 원하지 않는 사용자 죽이기
    [root@dream /root]# skill -KILL sunny  
    위의 명령을 내리면 sunny 라는 사용자를 완전히 추방시킬수 있습니다. 그런데 이렇게 완전히 추방시키는게 아니구, 특정 터미널에 접속해있는 사용자만 추방시켜야 할 때도 있겠죠? 그럴때는 [root@dream /root]# skill -KILL -v pts/14  

    이런식으로 하면 된다 그럼 pts/14 에 연결되어 있는 사용자가 죽게 됩니다.

    0.0.0.54 UNIX상에서 한글출력이 깨져 나올경우
    유닉스상에서 한글을 stdout출력할 경우 가끔 출력되는 문자들이 몽땅 깨져서 나오는 경우가 있다. 이때부터는 프로그램이 종료된 이후에도 쉘 프람프트를 비롯, 쉘에서 입력하는 모든 커맨드가 깨져서 나온다. 이는 ascii code 로 ^n 에 해당하는 문자가 출력될 때 나오는 현상으로 그 이후로는 MSB가 모두 켜지기 때문이다. 문자가 깨져나오는 이후부터 ascii code 로 ^o 에 해당하는 문자를 출력하면 반대로 된다. 쉘 커맨드 상에서라면, # echo ^v^o  
    라고 해야겠지만 커맨드가 깨져나오므로 shell이 해석을 못한다. 따라서, command line에서 ^v^o를 치고 enter 하면 된다


    0.0.0.55 현재 디렉토리의 대량의 파일을 각자의 파일명가운데에 특정문자 추가하여 바꾸기
    /bin/ls A?????.html | sed 's/A\(.....\)\.html/\1/g' | xargs -t -i mv 'A{}.html' 'A0{}.html'
    /bin/ls는 ls가 보통 -F로 파일 종류 표시(*, @등)까지 하기 때문에 그걸 막기 위한 것이고 xargs의 -t는 트레이스모드이다.
    출처 : http://cafe.naver.com/itsworld/56

    댓글을 달아 주세요

    1. Favicon of http://kamzi.com/blog BlogIcon Uni 2007.02.22 14:05 신고 Address Modify/Delete Reply

      나온김에 리눅스 마스터 자격 갱신도 하구..ㅡㅡ;; 에혀..답답하다아~


    2. 추카추카 2007.02.23 10:58 신고 Address Modify/Delete Reply

      자격갱신시험통과를 축하드립니다~