[Linux] 우분투 apm설치 완벽본

출처 :


아래의 ftp link 는 제대로 동작하지 않을 수도 있다.

관련 package 를 구해서, 같은 작업을 하면 된다.


1. WOL TEST


2. 기본 툴 설치

 - zlib설치
    1) ftp://ftp.superuser.co.kr/etc/zlib-1...
    2) ./confiugre
    3 )make
    4) make install

 - libpng 설치
    1) ftp://ftp.superuser.co.kr/etc/libpng-1...
    2) cd 압축푼 디렉토리
    3) cp scripts/makefile.linux makefile
    4) make test
    5 )make install
   
  - freetype 설치
    1) ftp://ftp.superuser.co.kr/etc/freetype....
    2) cd 압축푼 디렉토리
    3) ./configure
    4) make
    5) make install

  - jpeg 설치
    1) ftp://ftp.superuser.co.kr/etc/jpegsrc.v6b..
    2) cd 압축푼 디렉토리
    3) ./configure --enable-shared --enable-static
    4) make
    5) mkdir /usr/local/man/man1
    6) make install

  - gd 설치
    1) ftp://ftp.superuser.co.kr/etc/gd....
    2) cd 압축푼 디렉토리
    3) ./configure
    4) make
    5) make install

  - libxml2 설치
    1) ftp://ftp.superuser.co.kr/etc/libxml2-...
    2) cd 압축푼 디렉토리
    3) ./configure
    4) make
    5) make install


3. MYSQL 설치
 
 1) wget ftp://ftp.superuser.co.kr/mysql/mysql....
 2) 압축 풀고 해당 디렉토리로 이동
 3)./configure --prefiex=/usr/local/mysql--localstatedir=/usr/local/mysql/data --with-charset=euckr--enable-thread-safe-client
 4) make
 5) make install
 6) cd /usr/local/mysql/bin
 7) ./mysql_install_db   (/usr/local/mysql/data 과 생성되었는지 확인)
 8) useradd -M mysql
 9) chown -R mysql:mysql /usr/local/mysql/data
 10) /usr/local/mysql/bin/mysqld_safe &  (실행)
 11) cd /usr/local/mysql/bin
 12) ./mysqladmin -u root password 원하는비번
 13) ./mysql -u root -p mysql
 


 4. 아파치 설치

 1) wget ftp://ftp.superuser.co.kr/apache/httpd...
 2) 압축풀고 해당 디렉토리로 이동
 3) vi server/mpm/prefork/prefork.c
 4) DEFAULT_SERVER_LIMIT 1280
 5) vi server/mpm/worker/worker.c
 6) DEFAULT_SERVER_LIMIT 20
 7) ./configure --prefix=/usr/local/apache2 --enable-so --with-rpm=worker
 8) make
 9) make install
 10) vi /usr/local/apache2/conf/httpd.conf
      - DocumentRoot "/var/www/html"
      - Userdir www
      - <Directory /home/*/public_html> 주석해제 public_html -> www
      - DirectoryIndex index.html index.htm index.php index.php3 index.cgi
      - AddType application/x-httpd-php .php .phtml
      - AddType application/x-httpd-php-source .phps
 11) /usr/local/apache2/bin/apachectl start
 
 

 5. PHP 설치

 1) wget ftp://ftp.superuser.co.kr/php/php-...
 2) 압축풀고 해당 디렉토리로 이동
 3)./configure --with-apxs2=/usr/local/apache2/bin/apxs--with-mysql=/usr/local/mysql --with-freetype-dir --with-zlib-dir--with-jpeg-dir --with-gd --disable-debug
 4) make
 5) make install
 6) 컴파일이 끝난 디렉토리에 php.ini-dist 파일을 cp php.ini-dist /usr/local/lib/php.ini


6. PHP ZendOptimizer 설치

 1) wget ftp://ftp.superuser.co.kr/ZendOptimizer/Zend...
 2) 압축 풀고 해당 디렉토리로 이동
 3) ./install.sh
 4)OK -> EXIT -> Yes -> (/usr/local/Zend) OK ->(/usr/local/lib) OK -> Yes -> (/usr/local/apache2/bin)OK -> OK-> YES
 
 
 6. PHP 동작 확인 테스트
 <?
 phpinfo();
 ?>
 
 
 
 7. 부팅시 APM 자동 실행 설정

1) vi /etc/rc.d/rc.local
   - touch /var/lock/subsys/local (default)
   - /usr/local/mysql/bin/mysqld_safe & (add)
   - /usr/local/apache2/bin/apachectl start (add)
 
 
 
 8. 웹ssh설정
 
  1) vi /etc/ssh/sshd_config
      - Allowusers root 아이디1 아이디2


 9. vsftp설정
 
 1) vi /etc/vsftpd/vi vsftpd.conf
    - anonymous_enable=NO
    - local_enable=YES
    - ftp_banner=Welcome to ~~~
    - chroot_list_enable=YES
    - chroot_local_user=YES
 2) vi /etc/vsftpd/chroot_list 생성
       root
       setf
       아이디
       아이디2

 3) 쉘 권한이 없는 사용자에게 ftp사용권한
     - vi /etc/pam.d/vsftpd
         -- #auth       required     pam_shells.so (주석처리)      
      
 
 
10. 크론 설정

 1) crontab -e
 2) 5 * * * * touch /root/pgh_pgh12345


11. 시작 메세지 설정
     /etc/issue.net
     /etc/motd


12. 삼바 설정
 1) /etc/rc.d/init.d/smb stop
 2) vi /etc/samba/smb.conf
     - security = user
     - [아이디]
         comment = 어쩌고저쩌고
         path = /home/아이디
         valid users = 아이디
         writeable = yes
         browseable = yes
         printable = no
         create mask = 0750
         
  3) smbpasswd -a 아이디
 


13. 보안설정

--------------------not sure ---------------
su  유저에 관하여
chmod 4750 /bin/su
/etc/group내의 wheel그룹에 관리자계정 등록
(예 : wheel:x:10:root,papa)
chown root:wheel /bin/su
chattr +i /bin/su

원위치
chattr -i /bin/su
chmod 4755 /bin/su
passwd
----------------------------------------------

명령어 제한
chmod 750 /usr/sbin/useradd
chmod 750 /usr/bin/top
chmod 750 /sbin/fdisk
chmod 750 /sbin/mkfs
chmod 750 /sbin/fsck

chown root:wheel /usr/sbin/useradd
chown root:wheel /usr/bin/top
chown root:wheel /sbin/fdisk
chown root:wheel /sbin/mkfs
chown root:wheel /sbin/fsck

chattr +i /usr/sbin/useradd
chattr +i /usr/bin/top
chattr +i /sbin/fdisk
chattr +i /sbin/mkfs
chattr +i /sbin/fsck



14. quota 설정

 1) vi /etc/fstab
 2) LABEL=/home /home ext3 defaults,quotauser 1 2
 3) touch /home/quota.user
 4) chmod 600 /home/quota.user
 5) mount -o remount /home
 6) cd /home
 7) touch quota.user
 8) chmod 600 quota.user
 9) quotacheck -a -m
 10) truncate. Can's save ....
 11) quotacheck -a -m
 12) convertquota -u /home
 13) edquota -u 아이디
 14) soft, hard(단위 kilobyte)
 15) 명령어
       - edquota -u 아이디
       - repquota -a 현재사용현
       - user02 사용자의 설정을 user01과 같게 하는 명령어로
       - edquota -p  user01 user02


15. 위키설치

16. webssh

17. gallery


 마운트
 mount -t ext3 /dev/hdc /win

aptitude update
aptitude dist-upgrade




useradd abc -g linux
를 하게되면 abc 라는 아이디는 linux 그룹에 속하게 생성이 됩니다.


그룹변경
usermod -g 새그룹이름 사용자ID


소유자|소유그룹 변경
                (소유자:소유그룹)
chown -R neopgh:neopgh test_dir/

by achoho | 2008/05/06 16:42 | 開發者の夢 | 트랙백 | 덧글(0)

[Linux] Shell 관련...

system programming 을 A 를 받았건만, 6년 이상 안쓴 탓인가.. 이게 다 무슨소린지 어디서 들어 본듯한 느낌 뿐이로군..


출처 : naver 지식in

1. 쉘프로그램에서 #!/usr/bin/sh 의미가 뭔가요...
(#!/usr/bin/sh 안적어줘도 다 되던데 이걸 왜 적는거죠? )

Answer>
/usr/bin 디렉토리는 유닉스나 리눅스에서
실행가능한 시스템 프로그램들이 위치하느 곳입니다.
셀프로그래밍 할때 위와 같이 적어주는 것은
절대경로를 전처리하는 것입니다.
쉽게 말해서 이제 쉘 프로그램을 하는 것이니까
아래부터는 쉘프로그램의 구문문법으로 확인하라는 것입니다.
구문분석시 말이죠!


2. 리눅스에 bash, sh 차이가 뭔가요?
Question>

쉘 프로그래밍할때

#!/bin/bash 로하나 #!/bin/sh 로하나 똑같습니다.

거기다 리눅스에는 bash도있고 sh도 있죠?

쉘은 다른데 왜 오류가 안나는걸까요^^?

Answer>
잠시 역사공부를 하면요,

sh 이 먼저 만들어진 shell 입니다.

그 후에 sh 을 기반으로 여러가지 기능이 더 추가된 bash 가 만들어졌구요.

bash 에서는 sh 의 기능을 많이 포함하고 있다보니,

sh 에도 동작하는 건 , bash 에서도 잘 동작합니다 ^^

sh에는 없고 bash 에는 있는 기능을 사용한 경우에는 

#!/bin/sh 로 할 경우에는 당연히 오류나 의도한 것과는 다른 결과가 나옵니다

man bash 라고 입력하시면 bash 의 다양한 기능들을 보실 수 있습니다.  



3. #!/usr/bin/ksh 무슨뜻인지 모르겠어요..
Question>
혼자 vi공부좀 해볼려고 노력중인데요...

처음 시작 하는 대에  #!/usr/bin/ksh 이런 행이 있던데...

무슨뜻인지요???

혼자 찾다보니 csh라는것도 있던데.. ksh랑 무엇이 다른것인가요??

갈켜주세요......

Answer>

1. 쉘 프로그램인 경우 대부분 #!/usr/bin/ksh 와 같은 절로 시작하게 됩니다.

이 의미는 이 쉘프로그램은 /usr/bin/ksh 쉘로 돌려야 한다는 것을 의미합니다.

여러 종류의 쉘(csh, ksh, bash, sh 등등)이 있으며 각각 문법이 다르기 때문에 어떤 쉘로 해당 쉘프로그램을 돌릴 것인지를 지정하는 부분입니다.

 

2. sh, csh, ksh, bash 등 많은 쉘이 있습니다. sh은 초기의 쉘이며 쉘 혹은 본쉘이라고 불립니다. csh 은 C언어와 비슷하게 닮았다고 해서 붙어진 이름입니다. 내부의 사용문법이 C언어와 비슷하다고 합니다. 요즘 많이 사용하는 ksh는 콘쉘이라고 불리며 대다수의 OS에서 지원하고 있습니다. 편의성이 많이 늘어난 쉘입니다.

 

리눅스에서 기본으로 채택된 bash은 본어게인쉘이라고 하며 csh 과 ksh의 장점을 가지는 쉘입니다.

 

by achoho | 2008/05/05 02:32 | 트랙백 | 덧글(2)

[Linux] tar & gz & bz2

--== tar 사용하기

[root@h200 backup]# tar cvfz back.tar *
-- tar [옵션] [tar로 생성될 파일명] [압축할 파일명] 이렇게 사용한다.

[root@h200 backup]# tar cvf back1.tar group passwd
-- 파일을 선택하여 묶을 경우 한칸띄우고 파일명을 나열한다.

[root@h200 backup]# tar rvf back1.tar group1
-- 이미 묶여진 tar파일에 추가로 묶을경우 r을 사용하면 된다.

[root@h200 backup]# tar tvf back1.tar
-rw-r--r-- root/root 674 2005-05-27 19:40:38 group
-rw-r--r-- root/root 1622 2005-05-27 19:40:06 passwd
-rw-r--r-- root/root 674 2005-05-27 19:40:58 group1
-- tar로 묶은 파일의 내용을 보고자 할경우 t를 사용하면 된다.

[root@h200 backup]# tar f back1.tar --delete group1
-- tar로 묶은 파일에서 하나를 삭제할 경우 f를 사용 [tar명] --delete [삭제할 파일명]
[root@h200 backup]# tar tvf back1.tar -- 다시 확인시 파일이 빠져 있다.
-rw-r--r-- root/root 674 2005-05-27 19:40:38 group
-rw-r--r-- root/root 1622 2005-05-27 19:40:06 passwd

[root@h200 backup]# tar xvf back.tar
-- tar파일을 풀때는 x를 사용한다.


--== gzip 사용하기

[root@h200 backup]# gzip [gz로 생성될 파일명] -- gz으로 압축
[root@h200 backup]# gunzip [gz 파일명].gz -- gz 압축풀기


--== bzip2 사용하기

[root@h200 backup]# bzip2 -v [bz2로 생성될 파일명] -- bz2으로 압축 '-v'옵션은 압축결과를 보여준다.
[root@h200 backup]# bunzip2 [bz2 파일명].bz2 -- bz2 압축풀기
[root@h200 backup]# tar xfj [bz2 파일명].bz2 -- tar와 bz2를 한번에 같이 풀기

--== tar와 gz 한번에 풀기
[root@h200 backup]# tar cvfz test1.tar.gz * ; tar xvfz test1.tar.gz -C /opt/aaa
-- 현재폴더안의 파일 모두를 tar로 묶고 gz로 압축하여 그 파일을 /opt/aaa폴더안에 tar와 gz를 푼다. 여기서 -C옵션은 지정한 폴더로 풀어라는 명령이다.


--== 텍스트기반 인터넷을 사용하기 위한 패키지 설치
[root@h200 rpms]# rpm -Uvh lynx-2.8.5-11.i386.rpm --nodeps
-- 마운트후 lynx-2.8.5-11.i386.rpm 패키지를 찾아서 위처럼 설치한다.

[출처] tar & gz & bz2|작성자 ㅅㅅㄴ

by achoho | 2008/05/04 18:28 | 트랙백 | 덧글(0)

[Linux] RPM, apt-get install, 그리고 Ubuntu

1. RPM (퍼온글)

[강좌] RPM 사용하기  


1. RPM이란?


RPM은 Redhat Package Manager의 약자로 아주 간편하고 사용하기 편한 패키지 관리자이다. 현재 국내에서 배포된 많은 리눅스들이 레드햇을 기반으로 하고 있어 사용의 범위가 넓다.

 

이번 강좌에서는 RPM을 사용하는 방법에 대해서 다루려한다. 이번 강좌에서는 RPM을 만든다거나 하는 고급(?)에 대해서는 다루지 않고 설치와 제거, 패키지 설치여부 등 간단한 기능만을 설명하도록 하겠다.

 

레드햇리눅스 7.2를 기준으로 RPM버전은 4.0.4-7x이다. 참고하기 바란다.

 

2. RPM 파일구조


RPM의 파일구조는 '패키지이름-버전-릴리즈번호.소스여부.시스템.확장자'로 되어 있다.

 

예를 들어서 설명하자면.
gcc-2.96-98.i386.rpm

* gcc - 패키지의 이름
* 2.96 - 패키지의 버전
* 98 - 패키지의 릴리즈 번호, 패키지가 몇 번째로 만들어진 것인지를 나타낸다. 똑같은 프로그램으로 다시 패키지 하여도 릴리즈는 올라간다.
* i386 - 시스템, 어떤 시스템에서 쓰이는 것인지를 나타내는 것이다. 'i386', 'i686'등은 인텔계열의 시스템에서 'sparc' SUN의 스팍 시스템용이고 'alpha' 라면 알파 시스템용이다.
* 혹 네 번째 필드에 src라고 적혀있으면 그것은 소스 RPM이다. 바이너리 패키지를 만들기 위해서 필요하다. 일반적으로 많이 사용하는 편은 아니다.
* rpm - 확장자

 

3. RPM 설치하기


rpm으로 설치하는 기본방법은 '-i' 옵션을 사용하는 것이다.

rpm -i gcc-2.96-98.i386.rpm

이런 식인데 이런식의 사용은 별로 좋지 못하다. 다음과 같은 방법을 사용하도록 한다.

rpm -Uvh gcc-2.96-98.i386.rpm

이렇게 사용하면 같은 패키지의 이전버전의 RPM이 설치되었는지 확인하고 만약 설치가 되어있다면 업그레이드를 한다. 물론 설치가 되어있지 않은 경우 설치를 한다.

 

4. RPM 제거하기

 

rpm -e gcc-2.96-98.i386

간단하게 'e' 옵션을 사용한다.

 

5. RPM 패키지 찾기

 

rpm -q gcc

간단하게 'q' 옵션을 사용한다. 이 경우 패당 패키지가 설치되어 있을 경우 패키지의 버전, 릴리즈등이 나온다.

 

6. 다양한 옵션 사용하기

 

6-1. 설치시의 옵션들


* --nodeps : 의존성을 무시하고 설치하도록 하는 옵션이다. RPM은 어떤 패키지가 깔려있을 경우 혹은 깔려있지 않은 경우 설치가 되는 않는 경우가 있다.

* --force : 강제로 설치하도록 한다. 현재의 패키지에 포함된 파일이 이미 다른 패키지에 의해 설치되어 있을 경우 충동이 나는데 이때 이 옵션으로 설치가 가능하다. 이 옵션은 이미 있는 파일을 덮어 쓰지 않는다.

* --replcaefiles : 위에서 이미 있는 파일을 덮어 쓰려면 이 옵션을 사용한다. 위험하니 주의 요망!!

* --oldpackage : 새로운 패키지를 지우고 옛날 버전의 패키지로 교체할 때 이 옵션을 사용한다.

* --percent : 설치과정을 퍼센트로 표시해 준다.

* --replacepkgs : 같은 패키지가 설치되어 있어도 설치한다.

* --test : 설치하지 않고 충동이 있는지 검사한다.

* --excludedocs : 문서 파일은 설치하지 않는다.

 

6-2. 제거시의 옵션들


설치 옵션에서 '--nodeps', '--noscripts', '--test' 세가지만 사용한다.

 

6-3. 찾기시의 옵션들


찾을 때에는 '-q' 옵션과 함께 사용한다. 예를 들어 '-a' 라는 옵션은 '-qa' 식으로 사용된다.

* -a : 모든 패키지를 찾는다.

* -f [파일] : [파일]을 포함하는 패키지를 찾는다.

* -p [패키지 파일] : 패키지 파일을 찾는다.

* -i : 패키지의 정보를 출력한다.

* -R : 패키지가 의존하고 있는 파일 또는 패키지 목록을 출력한다.

* -l : 패키지에 속한 파일을 출력한다.

* -s : 패키지에 속한 파일들의 상태를 출력한다.

* -d : 문서 파일만 출력한다.

* -c : 설정 파일만 출력한다.

* --scripts : 설치, 제거과정에서 스크립트가 포함되어 있을 경우 출력한다. 이 옵션은 따로 사용한다.

 

7. 네트웍으로 설치하기

 

RPM은 네트웍으로 설치가 가능하다. RPM 패키지의 위치만 정확하게 안다면 말이다.
예를 들어 다음과 같이 사용이 가능하다.

rpm -Uvh ftp://ftp.comager.com/gcc-2.96-98.i386.rpm

 

8. 마치면서

 

RPM은 참 편리한 패키지 관리자이다. 현재 많은 패키지들이 RPM으로 제작되어 배포되고 있으며 up2date를 통해서 지속적으로 업그레이드가 가능하다.  





2. apt-get (퍼온글)


우분투를 처음 설치하고는 SSH나 텔넷을 설치하려고 자료를 찾아보는데 apt-get 명령으로 다 하는 것이었다. 그런데 아무리

sudo apt-get install telnetd  

요렇게 쳐봐도 도무지 설치가 되지 않는것이었다.

 

자료를 한참 더 찾아보고 공부해보니 apt-get을 사용하기 전에 설정을 좀 해줘야 한다는 것이다.

말하자면 apt-get 명령을 실행하면 이 명령이 인터넷에서 자료를 가져오는데 이때 참조하는 것이

sources.list 파일이고 여기에 서버들의 주소를 저장해두게 되는 것이다.

그런데 한번 이렇게 쳐보니

sudo vi /etc/apt/sources.list

과연 안에 모든 내용이 주석으로 막혀 있었다. 이러니 명령이 실행이 안되지.

 

## sources.list

## General comments about the sources.list file

#deb http://kr.archive.ubuntu.com/ubuntu feisty main restricted

#deb-src http://kr.archive.ubuntu.com/ubuntu feisty main restricted

.....

.....

 

- #으로 시작되는 줄은 주석이다.

- deb : 이 저장소들은 바이너리나 이미 컴파일된 패키지들을 담고 있다. 대부분의 사용자에게 요구된다.

- deb-src : 이 저장소들은 패키지의 소스 코드를 담고 있다. 개발자들에게 유용하다.

- 주소란엔 주소를 넣는데 미러 사이트목록을 참조하여 넣는다.

- feisty : 배포판의 이름이나 버전.

- main & restricted : 섹션이름이나 컴포넌트. 스페이스로 구분하여 여러 섹션 이름을 사용할 수 있다.

- universe & Multiverse : 추가 소프트웨어 저장소

등의 의미를 가진다고 하고,,

이것은 기본적으로 다음과 같은 형태를 취한다.

 

deb http://host/debian (또는 /ubuntu) distribution section1 section2 section3
deb-src http://host/debian (또는 /ubuntu) distribution section1 section2 section3

그리고 대개는 다음의 내용이 sources.list 에 기본으로 들어가 있다.

# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-l‘:rX<qî

 

첫번째 deb는 공식적인 아카이브를 가리키고 두번째는 non-US 아카이브이고 세번째는 데비안 보안 업데이트를 가리킨다. 고 되어있구만... (이 참조 문서는 데비안 것이니 데비안으로 되어있다.)

 

텍스트로 직접 수정해도 되지만 x윈도우의 노틸러스로 수정할 수도 있다.

http://gamza.tistory.com/21 에 설명되어 있다.

위의 것처럼 Daum의 미러로 설정해 보았더니 아래처럼 sources.list의 소스가 수정된다.

 

deb http://ftp.daum.net/ubuntu/ gutsy main universe restricted multiverse

deb-src http://ftp.daum.net/ubuntu/ gutsy universe main multiverse restricted #Added by software-properties

 

마지막으로 source.list 파일을 변경한 후에는

 

sudo apt-get update

 

를 실행하여야 한다. 이렇게 해야 수정한 소스가 적용이 되어서 APT가 사용하게 된다.

 

 

* 공부하는데 참고한 자료.

"APT HOWTO" 데비안 프로젝트

Gustavo Noronha Silva kou@debian.org, 한국어 번역: 양유성 yooseong@debian.org


+ apt-get 의 사용예.

apt-get update <- 최신버전의 패키지 목록을 얻어온다.
apt-get upgrade <- 현재 설치된 모든 패키지를 최신버전과 비교해서 업그레이드

apt-get install [패키지명] <- 패키지설치 apache* 이렇게 와일드문자 입력도 가능
apt-get remove [패키지명] <- 패키지 삭제. 허나 완전히 삭제는 아니다.
apt-get autoremove [패키지명] <- 패키지를 자동 삭제, 의존성이있어서 설치시에 따라설치된것들까지 삭제




3. Ubuntu 에서의 RPM

# apt-get install alien

레드햇계열에서 사용하는 rpm파일을 실행하는것은 우분투에서는 권장하지 않는단다.
따라서 rpm파일을 deb파일로 변환해주는 alien이라는것을 설치한다.

예를들어 file.rpm을 deb파일로 변환하고싶다면
# alien -k --scripts file.rpm

실행해주면 자동으로
같은경로에
file.deb파일이 생성완료~~


# dpkg -i file.deb

by achoho | 2008/05/04 18:19 | 開發者の夢 | 트랙백(1) | 덧글(0)

[Linux] Vi 편집기에서 제어 문자 ^M 제거 하기.

^M 문자 제거하기

IBM 호환 PC에서 작성된 파일을 유닉스의 vi로 열게 되면 ^M문자가 줄의 끝마다 붙어있다.
이 문자는 PC에서 엔터키를 입력한 부분을 나타내게 된다.

어떻게 하면 vi를 사용하여 텍스트 파일에 있는 ^M 문자를 제거할 수 있을까?

:1,$ s'^M''g


간단하지만 문제는 ^M 문자를 어떻게 입력할 것인가이다. ^(hat)과 M을 차례대로 입력하면
되지 않느냐 생각들겠지만 이 문자는 제어문자로 두개가 함께쓰여 하나의 문자를 나타낸다.

컨트롤키를 누른 상태에서 v와 m을 누르면 위의 문자를 입력할 수 있다.


이제 위의 명령에 대해 설명을 하자면..

vi에는 3가지 모드가 있다. 명령모드, 입력모드,
라인모드가 그것인데

명령모드 : 내용편집 명령을 수행하는 상태
입력모드 : 문자를 입력할 수 있는 상태
라인모드 : ex 에디터(라인에디터)의 명령을 입력할 수 있는 상태. 보통 :으로 시작함

따라서 위의 명령어는 라인모드에서 사용하는 명령어 이며
1,$ : 위치지정 1라인부터 $(마지막라인을 의미)라인까지
s : substitute
' : 항목을 구분해주는 구분자( / 를 사용해도 됨).
g : 한라인에 여러번 나타나는 경우 모두 변경. 일반적으로 이 옵션을 주지 않으면 맨처음 나타나는 놈만 변경된다.

추가적으로 위치지정할때
. : 현재라인
숫자 : 숫자번째 라인


g가 들어갈 자리에는
c : 변경여부를 묻는다.


한가지 더!. 아래의 방법으로도 똑같은 결과를 얻을 수 있다.
:%s/^M//g <<--- 이렇게 하면 간단합니다


출처 :

http://blog.naver.com/goindole?Redirect=Log&logNo=9884044

http://okjsp.pe.kr/bbs?act=VIEW&seq=36348&bbs=bbs4&keyfield=content&keyword=&pg=0

by achoho | 2008/05/02 23:44 | 開發者の夢 | 트랙백 | 덧글(0)

[Linux] Ubuntu 각종 설정.

1. 한글입력 되게 하기
 - nabi 설치 : sudo apt-get install nabi

 - 설정 :

    홈폴더에서

    vi .gnomerc     (없으면 만든다)

    export LANG="ko_KR.UTF8" (unicode locale 사용)

    export XMODIFIERS="@im=nabi" (입력기를 nabi 로 설정)

    export GTK_IM_MODULE=xim

 - 우분투를 최신 version 으로 update 하면 위의 작업 없이도 그냥 입력이 된다. -_-

2. samba 설치
 - 설치 : sudo apt-get install samba
 - id 만들기 : sudo smbpasswd -a userid
 - 설정 : /etc/samba/smb.conf 에서 설정한다.
            간단히 home 공유 하려면 위해서는, home 관련 주석 풀고, writable = yes 하면 된다.
 - samba 재시작 : sudo /etc/init.d/samba restart

3. ssh 서버 설치
 - 설치 : sudo apt-get install ssh
 - 설정 파일 : /etc/ssh/sshd_config
 - 공유기를 사용한다면!!! ssh 는 22번 TCP port 를 사용하니 해당 port 를 설정 하면 된다.


by achoho | 2008/05/02 23:39 | 開發者の夢 | 트랙백 | 덧글(0)

중국 천문산 (천문동)

가봐야겠다.
저 계단 다 걸어다니려면, 몸부터 좀 만들고 ^^
천국으로 가는 길이라...









by achoho | 2006/04/27 11:26 | tourist's attractio | 트랙백 | 덧글(1)

[Afternote-Film] 우주전쟁.




 

다코다패닝, 다코다패닝 해서 얼마나 연기를 잘할까.. 했는데, 비명하나는 일품이었다.

"상황이 다급해 시키는대로 따라해줬으면 하는 아빠의 상황에, 최고로 적절하게 짜증이 폭발할 정도의 정말 괴로운" 비명을 잘도 질러준다. (비명의 수식어가 좀 긴가;; )

머, 별로라고 하는 이야기를 많이 들은것 때문에 별 기대없이 봐서랄까..

의외로 재미있었다. 임신한 아내가 잠든게 다행이다. 이런건 태교엔 안좋아.. 구럼.. 구럼.. ^^

 

by achoho | 2006/03/06 00:01 | 트랙백 | 덧글(0)

wow ... onyxia ...



wow (World of Warcraft).

최고의 레벨만이 도전할 수 있는 그것도 혼자서는 안되고 아주 여러명이 모여야 가능한 onyxia(오닉시아)라는 거대용이 뒤에서 잠자고 있다.

2005년 상반기는 저 게임에 미쳐서 산것 같다. 디아블로2 이후 지루하고 재미없었던 게임들로 시간을 보내던 내게는 정말 최고의 선물이 아니었을까... 하면서도 아내에게는 최악의 선물이었겠지... 하는 생각을 한다.

언제까지 이 게임에 미쳐있을까... 이젠 좀 정신차릴때도 됐는데 ^^.

너무 재밌다. wow~

by achoho | 2005/06/07 01:58 | games... | 트랙백 | 덧글(0)

초등학교 시험장면


어느 인터넷 사이트에 올려져 있는 이 사진을 보고,
참 옛날사진이구나... 하고 생각했다.

하지만, 유심히 사진을 들여다 보면, 내가 국민학생 일때도 이랬다.
어쩌면 그 당시의 사진일 수도 있겠구나 하는 생각을 했다.

쓰리쎄븐의 신기한 잠금장치(?)가 있는 저 가방과
시험때 저렇게 세워놔야 하는 ... ^^

그립다....

by achoho | 2005/06/06 02:52 | 身邊雜記 | 트랙백(1) | 덧글(0)

◀ 이전 페이지 다음 페이지 ▶