2009년 6월 19일 금요일

리눅스/솔라리스 각종 TIP

제목: [UNIX] 솔라리스 루트 패스워드 복구법

내용:

STEP1: Solaris OS CD를 CDROM 드라이브에 넣은후 컴퓨터를 킨다.
STEP2: 메모리 체크가 끝난후 STOP+A 를 누른다.
STEP3: ok boot cdrom -sw
STEP4: csh
STEP5: setenv TERM sun
STEP6: mount /dev/dsk/c0t3d0s0 /mnt --> t3는 boot disk의 SCSI ID 번호
STEP7: vi /mnt/etc/shadow 파일을 오픈한다.
STEP8:
           root:asweB0Fxxxxxx:9974:::::: (예제) 를 다음과 같이 바꿔준다.
           root::9974:::::
:wq!
STEP9: reboot
잠시후 기다리면 부팅후 루트 패스워드를 물어 볼것이다.

이때 새로운 패스워드를 입력하면 오케이!!

 

 

제목: [UNIX] MAN 페이지를 직접 작성하고 싶으세요?

내용:


우리는 유닉스를 사용하면서 매뉴얼 페이지를 가끔 참조하게 된다.
그러면서도 우리들 자신도 그러한 매뉴얼 페이지를 만들어 자신의 프로그램을 위해
등록해보고 싶은 경우가 있을 것이다.
다음에 쓰는 내용은 이러한 매뉴얼 페이지를 직접 여러분이 만들어 볼 수 있도록
명료하면서도 단순하고 필요한 내용만을 언급하고 있다.
Here we go~

시스템에 저장된 매뉴얼은 보통 몇가지 섹션으로 나뉘어져 있다.
예를 들어 사용자 명령어들(ls, cat등등)은 1번 섹션이고 시스템 콜은 2번 섹션이다.
다음은 그것들의 리스트이다.

                    BSD           System V     Xenix
사용자 명령           1                1          u_man
시스템 콜             2                2          p_man
라이브러리 루틴       3                3          p_man
I/O 와 특수파일들     4                7          p_man
관리자를 위한 파일들  5                4          a_man
게임들                6             6또는 1       u_man
기타 잡다한것         7                5          anything goes
관리자를 위한 명령    8                8          a_man
유지관리를 위한 명령  8               1M          u_man 또는 a_man
지역명령(local cmd)   l(문자)          *
절대명령              o                *

예를 들어 'ls'(사용자명령)에 관한 매뉴얼을 보려면 다음의 두가지 방법이 있다.

$ man ls
$ man -s 1 ls

특히 가끔 특정 함수(예를 들어 uname)에 대한 매뉴얼을 보고 싶을 경우가 있는데 이때
우리는 그 함수에 대한 매뉴얼이 아니라 사용자 명령인 'uname'의 매뉴얼을 보여주는
때가 있다. 이때 우리는 두번째의 방법으로 매뉴얼을 볼 수 있다.

$ man -s 2 uname

그럼 매뉴얼 페이지의 소스를 보자.
--------------------------------------------------
.\" bbspasswd's manual page
.TH bbspasswd 1 "2 Jun, 1997" "안창선의 소프트웨어"
.SH 이름
sysopmgt \- tina호스트 프로그램의 user id 관리 프로그램
.SH 사용법
.B bbspasswd
.RI [-pinsct]
.PP
.br
.SH 설명
.I bbspasswd는 tina호스트 프로그램에서
user id를 관리해 주는 프로그램입니다.
user id의 비밀번호나 회원 이름등을 편리하게
변경할 수 있습니다.
.br

.SH 옵션
.TP
.B \-p userid password
회원의 패스워드를 변경합니다.
.TP
.B \-i userid chageid
회원의 ID를 변경합니다.
.TP
.B \-n userid chagename
회원의 이름을 변경합니다.
.TP
.B \-s userid jumin-number
회원의 주민번호를 변경합니다.
.TP
.B \-c userid pager
회원의 호출번호를 변경합니다.
.TP
.B \-t userid pager
회원의 유저 타입을 변경합니다.

.br
.SH BUGS
버그요? 없시요.
.br
.SH 만든이
안창선
kabin@coresw.co.kr
------------------------------------------------
매크로 설명
.TH : 매뉴얼 페이지의 타이틀이다.
.SH : 섹션 해딩을 나타내는데 각 섹션별로 하나씩을 준다.
.TP : 포맷 옵션이다.
.LP : 섹션에서 패러그랩 사이에서 사용된다.
위의 페이지를 실제로 직접 보는 명령은 nroff -man을 사용하면 된다.
즉...

$ nroff -man man.1

일단 매뉴얼이 만들어 졌으면 이것을 여러분이 원하는 섹션에 넣어줘야 한다.
예를 들어 man.1이라면 /usr/man/man1 디렉토레에 넣고
catman 프로그램을 이용하여 등록 시켜 주면 된다.


위의 매뉴얼 소스를 위의 명령으로 보면 다음과 같은 내용을 보여준다.
--------------------------------------------------
bbspasswd(1)                                         bbspasswd(1)


이름
      sysopmgt - tina호스트 프로그램의 user id 관리 프로그램

사용법
      bbspasswd [-pinsct]


설명
      bbspasswd는  tina호스트 프로그램에서 user id를 관리해 주는
      프로그램입니다.   user  id의  비밀번호나   회원   이름등을
      편리하게 변경할 수 있습니다.


옵션
      -p userid password
             회원의 패스워드를 변경합니다.

      -i userid chageid
             회원의 ID를 변경합니다.

      -n userid chagename
             회원의 이름을 변경합니다.

      -s userid jumin-number
             회원의 주민번호를 변경합니다.

      -c userid pager
             회원의 호출번호를 변경합니다.

      -t userid pager
             회원의 유저 타입을 변경합니다.

BUGS
      버그요? 없시요.

만든이
      안창선
kabin@spm.co.kr

 

제목: [UNIX] 지정한 파일외의 모든파일을 지우기

내용:

지정한 파일외에 다 지우기..
가령 디렉토리 안에..
report report_1 report_2 report_3
report_4 report_5 print_1 print_2

위같은 파일이 있씁니다.
저는 report 는 나두고 다지우고
싶습니다.
그냥은 하나씩 rm 을써서
하나씩 지우다가 report 만 안지우면 되겠지만 한번의 명령어로 지우려면 다음과 같이 하면 되겠죠..

rm -f `ls |grep -v '^report$'`

이렇게 하면 report 만 남습니다.

이건 역인용부호 `` 즉 명령어 치환에 의해 가능한것입니다. ls를 써서 파일목록이 출력되면 파이프를 통해 grep의 입력으로 들어가겠죠.. 그다음 grep의 출력이 역인용부호(``)를 이용해서 결과를 rm 으로 전달 되는것입니다.
참고로
rm 의 -f 붙인이유는 어차피 지울꺼니 확실히 지우자구요. :-) 겁나시는분은 -i 로 교체.
grep의 -v 옵션은 매치되지 않는 패턴을 찾는 옵션입니다. 반전이라고 해도 틀리지는 않겠습니다. :-)
grep의 ^은 앞부분을 말하는거구
$은 뒤를 명시해주는거죠..
grep 정규식을 이용하면 정확히 파일을 구별해서 지울 수가 있겠군요..

 

제목: [UNIX] 유닉스사의 Snoop 명령어를 이용하여 TCP/UDP-IP 패킷을
모니터링하는 예


내용:

예제1)
snoop -x 0 HOST1 HOST2 to HOST1 udp

(설명1)
HOST1과 HOST2상의 UDP패킷의 내용을 화면에 디스플레이 해줌.
단, HOST2 --> HOST1으로 전송되는 UDP패킷의 내용만을 디스플레이함.

(결과1)
      fifa -> newton.uri-net.co.kr UDP D=5000 S=2000 LEN=260

          0: 0050 04c0 0647 0050 da8d 7ef6 0800 4500    .P...G.P..~...E.
         16: 0118 0c86 4000 ff11 ca50 cbef 061d cbef    ....@....P......
         32: 0602 07d0 1388 0104 e302 8000 1312 0000    ................
         48: 6540 0607 2801 8280 7f7f 7e7f 7f80 8080    e@..(.....~.....
         64: 8080 8081 807f 807f 8080 807f 807f 7f81    ................
         80: 8180 8182 8182 8181 8180 8181 8080 8080    ................
         96: 807f 7f80 7f7f 7f7f 7f7f 7f7f 8080 7f7e    ...............~
        112: 7e7f 7f7f 8080 8080 8080 8181 8282 8181    ~...............
        128: 8181 8280 807f 8080 7f7f 7e7e 7f7e 7f80    ..........~~.~..
        144: 8081 8080 8080 8080 8180 8080 8080 807f    ................
        160: 807f 8081 8080 7f7f 8080 8082 8280 8180    ................
        176: 8081 8081 8180 8081 8080 8080 807f 7f7f    ................
        192: 7e7f 7f7e 7f80 8080 8080 8180 8181 8181    ~..~............
        208: 8080 7f7f 7e7f 7f7e 7f7f 807f 8080 8081    ....~..~........
        224: 8181 8283 8181 8181 8081 8281 807f 7e7f    ..............~.
        240: 7f7f 807f 8080 807f 8080 8080 8080 8080    ................
        256: 7f7f 7e80 8181 8080 7f80 8180 807f 807f    ..~.............
        272: 8080 7f80 8081 8182 8181 0000 0000 0000    ................
        288: 0000 0000 0000                             ......

 

 

제목: [UNIX] Find 명령어의 자세한 사용법

내용:

@ 용도
--> 사용자가 제시한 속성을 만족하는 file을 찾아 내어, 이를 화면으로 출력하거나,
이러한 file에 특정한 명령을 수행한다. 이러한 find 명령어는 file system을 감시하
는데 뿐만 아니라, 하나의 subdirectory내에서 특정한 file을 찾아내거나, directory
아래에 특정한 내용을 담고 있는가등 다양한 기능을 수행하는 막강한 명령어이다.

@ 사용법
--> find 경로명 수식

find 명령어는 pathname-list에 있는 각 경로로부터 directory 계층구조에 따라 재귀
적으로 내려가면서, 논리적인 expression을 만족하는 file들을 찾는다. 단, symbolic
link는 보통 화일과 같이 검색된다.
ex) 만약 /etc/chown -> ../usr/etc/chown 일때, find /etc -uname chown -print하면
./chown 라고만 출력된다. ( ./chown -> ../usr/etc/chown이라고 출력되지 않는다란
소리다.)

-name 화일명
: 지정한 화일 이름에 해당하는 화일이 담겨 있는 디렉토리를 찾아준다. 이때 화일
이름에는 와일드 카드 문자인 *,?를 사용 가능하다.

-type 화일형태
: 지정한 화일 형태와 맞는 화일을 찾아준다. 화일 형태에는 5가지가 있는데 f는 일반
화일, b는 block special file, c는 character special file, d는 디렉토리, p는 파이
프이다.

-user 사용자 ID
: 뒤에 지정한 사용자가 권한을 가지고 있는 화일을 찾아준다.

-group 그룹 ID
: 뒤에 지정한 그룹이 권한을 가지고 있는 화일을 찾아준다.

-mtime n
: 마지막으로 수정된 날이 정확히 n일 전인 화일을 찾아준다. 여기서 n을 명시할 때,
-n이라고 표기하면 n일 전부터 지금까지를 의미하고, +n이라고 표시하면 n일을 포함
해서 그 이전에 수정된 화일을 찾아준다.
ex)                 n                      현재
   ----------------------------------------->
   |--    +n    -- |------     -n     ------|

-exec 명령어
: shell 명령어를 실행해 주는 옵션으로서 명령어 뒤에는 반스시 \; 기호를 붙혀 주어
야 한다. ;기호 앞에 \를 붙여주는 이유는 ; 기호가 shell 특수 문자이기 때문이다.
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

-print
: 화일이나 디렉토리가 발견되었으면 이 옵션에 의해서 그 화일이나 디렉토리가 담겨
있는 디렉토리가 화면에 나타난다.

@ 예제 ------------------------------------------------------------------------
ex) 1. 만약 imdw@cs.sejong.ac.kr이라는 몬자열을 포함하는 모든 화일을 찾으려면
--> #find / -exec grep "
imdw@cs.sejong.ac.kr" {} \;
   참고로 여기서 {}는 현재의 경로명으로 대체된다.
   
   2. 만약 모든 화일중에서 core와 확장자가 .c인 화일을 모두 찾아서 지워주려면
--> #find / \( -name core -o -name "*.c" \) -exec rm {} \;
   참고로 \는 alias나 특수문자를 단순한 character로 사용해야 할 시 alias나 특수
   문자 앞에다 적어준다.
-------------------------------------------------------------------------------

 

제목: [UNIX] anonymous ftp를 설치하고 싶다

내용:

ftpd의 메뉴얼을 보면 잘 나와있지만, 간단히 설치하려면 ftp://ftp.math.fsu.edu/pub/solaris/ftp.anon를 root디렉토리에서 실행하시면 됩니다. Solaris 2.5 이상에서는 아래의 작업으로 두개의 파일을 더 복사해 주시면 됩니다.(~ftp를 ftp가 설치된 디렉토리라고 가정합니다.)

% cp /devices/pseudo/tl@0:ticlts ~ftp/dev/ticlts
% chmod 666 ~ftp/dev/ticlts
% cp /usr/lib/libmp.so.* ~ftp/usr/lib

 

제목: [UNIX] 로컬시스템의 X 프로그램을 실행했는데 display를 열수없다

내용:

같은 시스템이더라도 telnet이나 su로 한번 거쳐서 접속한 경우에는 아래와 같은 에러가 발생합니다.

Error: Can't open display: unix:0


이때는 su나 telnet전에 xhost + localhost등을 입력해 주고, su나 telnet후 DISPLAY환경변수를 localhost:0.0으로 설정하시면 됩니다

 

제목: [UNIX] 부팅할 때 마다 어떤 일을 수행하려면

내용:

Solaris에는 시작 스크립트가 /etc/init.d 에 모여있습니다. 이 스크립트는 대부분 구성이 아래와 같이 되어있습니다.

#!/bin/sh
...
case "$1" in
"start")
# daemon 띄우는 명령어
;;
"stop")
# daemon 죽이는 명령어
;;
*)
# 사용설명
;;
esac

이와 같이 작성해 두시면 실행할때는 start인자를, 실행중인 프로세스를 죽일때는 stop인자를 사용하실 수 있습니다.


또한 Solaris는 /etc/rcX.d(X는 S, 0, 1, 2, 3)에서 필요한 스크립트를 수행합니다. 만일 Single User모드로 부팅했다면 /etc/rcS.d에 있는 파일들을, 보통때는 모두다 수행합니다. 따라서 이들중 한 디렉토리에 SXXfilename(XX는 원하는 두자리 숫자, filename은 임의의 이름)이라는 파일을 /etc/init.d에 만들어 둔 스크립트에 하드링크를 해 두면 됩니다. rc 프로세스는 숫자가 작은 스크립트부터 차례로 수행해 줍니다.


그리고 SunOS 4.1.x에서는 /etc/rc.* 파일에 적어넣어면 됩니다. 일반적으로 rc.local에 적는 경우가 많습니다.


그리고 그냥 스크립트를 작성하면 root권한으로 수행됩니다. 하지만 몇몇 프로그램의 경우에는 root가 아닌 일반 유저의 권한으로 수행되어야 하는 경우가 있는데 이때는 su명령을 사용하시면 됩니다. 만일 /some/where/daemon을 nobody권한으로 수행하고 싶다면 시작 스크립트에 아래와 같이 적어주면 됩니다. ( 서진수님이 정리해 주셨습니다.)

su nobody -c '/some/where/daemon'

 

제목: [UNIX] CDE 로긴(dtlogin) 설정법

내용:

다음과 같은 문제를 생각해 보죠.

처음 CDE를 설치할 때 영문으로 설치를 했습니다. 나중에 한글환경을 쓰려고 CDE에서 ko로 설정을 했는데 한번뿐이고 다시 로그아웃을 하면 영문으로 돌아갑니다. CDE의 기본언어를 설정하려면 어떻게 하면 되나요?
이경우 여러가지 방법이 있지만 다음의 방법을 이용해 보세요. 우선 /etc/dt/config디렉토리를 만듭니다. (만일 디렉토리가 있다면 만들지 마세요.) 그다음 /usr/dt/config/Xconfig를 만든 디렉토리로 복사합니다. (/usr/dt/config/Xconfig는 수정하시면 안됩니다.) 그리고 /etc/dt/config/Xconfig중에서 Dtlogin*language의 값을 ko로 바꾸시고 저장할 후에 dtconfig -reset을 실행하면 됩니다.

또한 CDE를 설치하면 기본적으로 dtlogin이 뜹니다. 이 화면대신에 원래 로긴화면을 사용하려면 dtconfig -d 와 같이 입력하시면 됩니다. 만일 CDE로긴화면이 뜨게 하려면 dtconfig -e 와 같이 입력하시면 됩니다.

 

제목: [UNIX] 자동 .cshrc와 .profile등의 파일생성법

내용:

/etc/skel 디렉토리에 복사하고 싶은 파일들을 만들어 두고(local.profile, local.cshrc, local.login)
useradd나 admintool로 계정을 만들면 됩니다.

/etc/skel/local.cshrc 파일의 예
----------------------------------------------------------------------------
# @(#)cshrc 1.11 89/11/29 SMI
umask 022
set path=(/usr/sbin /usr/bin /usr/local/bin /bin /usr/openwin/bin /usr/ccs/bin /
usr/ucb/bin /opt/Acrobat4/bin /opt/netscape)

if ( $?prompt ) then
       set history=32

setenv OPENWINHOME /usr/openwin
setenv PATH $OPENWINHOME/bin:$OPENWINHOME/bin/xview:$PATH
setenv LD_LIBRARY_PATH $OPENWINHOME/lib:/usr/lib:

setenv MOZILLA_HOME /opt/netscape

setenv MANPATH /usr/local/kde/man:/usr/dt/share/man:/usr/openwin/share/man:/usr/
local/man:$MANPATH
setenv MANPATH /usr/local/man:/usr/dt/share/man:/usr/openwin/man:/usr/man:/opt/s
amba/man:$MANPATH

#-------------------------------------------------------------
# OPENH323
setenv PWLIBDIR /opt/openH323/pwlib
setenv OPENH323DIR /opt/openH323/openh323
#-------------------------------------------------------------

#-------------------------------------------------------------
# QT Setup
setenv QTDIR /usr/local/qt
setenv PATH $QTDIR/bin:$PATH
setenv MANPATH $QTDIR/doc/man:$MANPATH
setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH
#-------------------------------------------------------------

#-------------------------------------------------------------
# KDE Setup
setenv KDEDIR /usr/local/kde
setenv MANPATH /usr/local/kde/man:$MANPATH
setenv PATH $KDEDIR/bin:$PATH
setenv LD_LIBRARY_PATH=/usr/local/kde/lib:$LD_LIBRARY_PATH
#-------------------------------------------------------------

endif
set filec

alias   a               'alias'
a       setprompt       'set prompt="[`hostname`:$cwd]# "'
a       cd              'cd \!*; setprompt'
a       dir             '/bin/ls -als | more'
a       h               'history \!* | more'

setprompt
----------------------------------------------------------------------------

 

제목: [UNIX] 루트(ROOT) 패스워드를 잊었을때

내용:

CD-ROM으로 부팅하셔서 하드디스크의 /etc/shadow 파일의 비밀번호부분을 지우시면 됩니다. / 파티션이 /dev/dsk/c0t0d0s0인경우에 아래와 같은 작업을 하시면 됩니다.

ok boot cdrom -s
..
# mount /dev/dsk/c0t0d0s0 /mnt
# TERM=sun;export TERM
# vi /mnt/etc/shadow
# sync; reboot

 

제목: [UNIX] 다른 시스템의 테잎 드라이버를 이용하려면

내용:

여러가지 방법이 있겠지만, 가장 간단한 방법은 rsh를 이용하는 방법입니다. 먼저 테입드라이버가 있는 시스템에 .rhosts파일을 만들어서 다른 시스템에서 rsh로 접속할 수 있게 한후 테입드라이버가 없는 시스템에서 다음과 같이 입력하시면 백업할 수 있습니다.

% tar cvf - [파일들] | rsh [테입드라이버가 있는 시스템] dd of=/dev/rmt/0

만일 테입으로 부터 파일을 풀려고 하면 아래와 같이 입력하시면 됩니다.
% rsh [테입드라이버가 있는 시스템] dd if=/dev/rmt/0 | tar xvf -

 

제목: [UNIX] 백업 하는법

내용:

여러 가지 명령어가 있지만, 가장 기본적인 tar에 대해 말씀드리겠습니다. 만일 /home 디렉토리 이하의 파일들을 /dev/rmt/0에 백업받으려 한다면 다음과 같이 입력하시면 됩니다.

% tar cvf /dev/rmt/0 /home

나중에 백업한 내용을 restore하시려면 /에서 다음과 같이 입력하면 됩니다.


% tar xvf /dev/rmt/0


tar를 사용하는경우 원하는 파일만을 restore하려면 아래와 같이 사용하시면 됩니다. (man tar에서 가져옴)

% tar xvf /dev/rmt/0 `tar tf /dev/rmt/0 | grep 'pattern'`

이 외에도 restore하고자 하는 파일의 리스트를 파일로 만들고(e.g list), 다음과 같이 사용하셔도 됩니다.
% tar xvf /dev/rmt/0 -I list

 

제목: [UNIX] Tape의 내용을 삭제하려면

내용:

Tape의 내용을 삭제하려면 mt명령을 사용하시면 됩니다. 만일 Tape드라이버의 장치파일이름이 /dev/rmt/0 라면 아래와 같이 입력하시면 됩니다.


$ mt -t /dev/rmt/0 erase

 

제목: [UNIX] 다른 시스템의 CD-ROM를 이용하려면

내용:

만일 두대의 컴퓨터 A, B가 있는데, A에는 CD-ROM 드라이버가 있고, B에는 없어서 B에서 A의 CD-ROM 드라이버를 이용하고 싶다면, A에서는 /etc/rmmount.conf 의 마지막에 아래와 같이 추가하고 vold 데몬을 다시 실행한 후

share cdrom*  -o ro=B

B에서는 /cdrom에 사용하고 싶다면


% ln -s /net/A/cdrom /cdrom

와 같이 연결해 두시면 됩니다.


참고로 Solaris에서는 CD-ROM이나 floppy등은 vold(1M)가 관리합니다. 만일 어떤 사용자가 CD를 넣으면 vold는 그 일을 감지하고 rmmount(1M)를 호출해서 다시 마운트해줍니다. rmmount(1M)는 CD나, floppy와 같은 장치들을 마운트할 때 사용하는데, 그 설정파일은 /etc/rmmount.conf입니다. 자세한 내용은 rmmount.conf와 rmmount의 메뉴얼을 참조하세요.

 

제목: [UNIX] 네트웍으로 root접속이 가능하게 하려면

내용:

기본적으로 Solaris 2.x에서는 네트웍으로 접속하고 root로 로긴하면 아래와 같은 메세지를 출력하고 접속이 안됩니다.

login: root
Password:
Not on system console
Connection closed by foreign host.

Solaris 2.x는 기본적으로 root사용자는 console에서만 로긴이 가능합니다. (su는 제외) 이것을 console이외에서도 가능하게 하려면 /etc/default/login에서 CONSOLE=/dev/console에 주석을 달면 됩니다.
참고로 CONSOLE=/dev/console의 의미는 root는 /dev/console에서만 login이 가능하다는 의미입니다. 만일 root사용자로 로긴이 불가능하게 하려면 CONSOLE= 와 같이 해 두면 됩니다. (하지만 이 설정은 기본적으로 설치된 in.telnetd등에만 해당됩니다. 만일 ssh등을 사용한다면 이 파일과 상관없이 root계정으로 로긴이 가능합니다.)

 

제목: [UNIX] 사용자마다 특정크기만큼만 하드디스크를 할당하는 방법

내용:

/etc/vfstab에서 quota를 설정하고자 하는 파일시스템의 마운팅 옵션에 rq를 지정한다.

$ cat /etc/vfstab
..
/dev/dsk/c0t2d0s6 /dev/rdsk/c0t2d0s6 /home ufs 1 yes rq
..

quota를 설정할 파일시스템에 quotas라는 파일을 만든다.

$ touch quotas
$ chmod 600 quotas

각 사용자에게 quota를 할당하기 위하여 edquota라는 명령을 사용한다.

$ edquota louis
fs /home blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)

여기에서 할당하고자 하는 양만큼 soft와 hard부분에 적어준다. 만일 20MB를 할당하려면 아래와 같이 해준다. (만일 quota를 제거하고자 한다면 0을 적어주면 된다.)
fs /home blocks (soft = 20000, hard = 20000) inodes (soft = 0, hard = 0)

만일 다수의 사용자에게 같은 양의 quota를 할당하려면 하나의 사용자만 할당하고 복사할 수 있는데 아래는 louis 사용자의 quota설정을 aaa, bbb, ccc 사용자에게도 똑같이 할당하는 예제이다.

$ edquota -p louis aaa bbb ccc

 

제목: [UNIX] 부팅시 rpcbindkeyserv 에러메시지 안나게 하는법

내용:

[증상]
starting rpc services: rpcbindkeyserv: failed to generate host's netname
when establishing root's key.
keyserv done.

[해결]
10/1999 이전 버젼의 Solaris7 시스템에서 이런 증상이 발생하며,
이는 버그임으로 밝혀졌다(BugId 4194687). 그러나 이러한 증상으로 말미암아 시스템에는
특별한 악영향을 주지 않음이 또한 밝혀졌다.
그러나, 매번 부팅시 마다 이러한 메시지를 보는것은 짜증나는 일이 아닐수 없다.
자, 이 메시지가 발생하지 않도록 해보자.
간단하다. /etc/defaultdomain 파일을 신규 생성하고, 해당 시스템의 도메인명(예, urinet.co.kr)을 그 파일의 첫줄에 한줄 써주면 OK!.

 

제목: [UNIX] man(매뉴얼) 페이지를 깨끗하게 프린트하기

내용:


매뉴얼 페이지를 깨끗하게 저장하기.

우리는 가끔씩 유용한 매뉴얼 페이지를 redirect하여 저장하여 프린트 해보고자
하는 경우가 있다.
그러나 보통.. 다음과 같은 명령은 깨끗하지 못한(?) 매뉴얼 페이지를 캡춰하게
된다.

$ man ls > ls.doc

즉, escape sequence까지 모두 캡춰 되기 때문에 이것을 vi등으로 보면 온통
깨져 있게 된다.

이것을 방지하여 캡춰하는 방법은 col명령을 이용하는 것이다.
다음과 같이 해보라.

$ man ls | col -b > ls.doc

그러면 아주 깨끗한 매뉴얼 페이지를 볼 수 있을 것이다.

또다른 방법은 다음과 같다.
[ anonymous ] in KIDS
글 쓴 이(By): 아무개 (Who Knows ?)
날 짜 (Date): 1998년02월14일(토) 14시42분53초 ROK
제 목(Title): Re: man 페이지 화일로 잡으려면?..

man page의 소스를 먼저 찾으십시오.

예를 들어 ls 같은 것은 보통 /usr/man/man1/ls.1이 소스입니다.

man 명령은 이 소스화일을 포맷해서 보여주는 것입니다.

그다음 groff -man /usr/man/man1/ls.1 > ls.man.txt

하면 됩니다.

좀더 잘 포맷된 결과를 원하면 groff 를 사용할 수도 있습니다.

자세한 것은 groff 매뉴얼을 보세요.

 

 

제목: [UNIX] 특정 사용자의 모든 프로세스를 죽이려면?

내용:

특정 사용자와 관련된 모든 프로세스를 죽이려면?

방법은 여러가지가 있지만 내가 사용하는 간단한 방법을 소개한다.
kill명령을 ps 명령과, grep류의 프로그램과, 강력한 awk 또는 cut등을
을 이용해 프로세스 ID를 간단하게 죽일 수 있다.

이용하면 간단하게 위의 일을 처리할 수 있다.

% kill `ps -ef | grep 특정ID | awk '{print $2}'`

설명을 하지만 kill다음에 나오는 `은 `와 ` 사이에서 실행되는 결과값을
되돌린다는 것을 의미하며 따라서 ps -ef(BSD계열에선 -aux)을 통해
grep으로 들어간 프로세스 테이블 리스트들은 특정ID에게 소유된 것만
걸러 지게 되고 awk를 통해 프로세스 리스트의 두번째 컬럼 부분의
프로세스 ID가 다시 걸러 지게 되며, 최종적으로 이 값이 kill에
전달된다.

흑은 다음과 같이 해도 됩니다.

 

제목: [UNIX] 디렉토리 이동을 편하게 CDPATH 환경변수!

내용:

디렉토리 이동을 편하게 CDPATH 환경변수!

우리는 쉘 상에서 많은 작업을 하게 되는데 특정 프로그램을 인스톨 하거나
다른 디렉토리에서 작업한 다음에 완전히 다른 디렉토리로 빈번히 옮겨가야
하는 경우가 있다. 여기서는 이러한 작업을 보다 쉽게 해줄 수 있는 방법을
소개한다.

CDPATH환경변수(sh, ksh, bash), 또는 csh의 cdpath 쉘변수를 특정 디렉토리로
설정하면 현재 어느 디렉토리에 있는지에 상관없이 cdpath(CDPATH)에 지정되어
있는 디렉토리의 하위디렉토리명을 찾아서 그 디렉토리로 CWD(현재디렉토리)를
옮겨 준다. 예를 들어 보면 다음과 같이 CDPATH(cdpath)가 지정되어 있다고
가정하자.

% set cdpath=(~ ~/src /usr/local/etc)

보통 우리는 /usr/local/etc/httpd라는 디렉토리로 가기 위해 일일이

% cd /usr/local/etc/httpd

이렇게 해 주어야 하지만 cdpath를 위에처럼
설정해 놓으면 단지 다음과 같은 명령을 통해 그 디렉토리로 옮겨갈 수 있다.

% cd httpd

그리고 본쉘(bourne)에서의 CDPATH는 다음과 같이 설정한다.

$ CDPATH=:$HOME:$HOME/src:/usr/local/etc
$ export CDPATH

위에서 CDPATH 지정할때 앞부분에 ':'를 넣었는데 이것은 PATH변수를 지정할때는
없는 것인데, 현재 디렉토리를 지칭한다.

 

 

제목: [UNIX] 특수한 C 쉘 변수들

내용:

특수한 C 쉘 변수들

C 쉘에서는 특별한의미를 갖는 변수들이 있다. 그들 변수에는 어떠한 것이
있으며 어떠한 역할을 하는지 알아 보도록 한다.

변수    의미
--------------------------------------------------------------
cdpath      디렉토리 리스트가 저장되며 cd명령은 지정된 디렉토리 이외에
           cdpath 리스트에 저장된 디렉토리의 하위디렉토리에서도
           cd명령에 파라메터로 전달된 아규먼트 디렉토리가 있는지
           검색한다.
echo        이 변수가 셋팅되면 각 명령마다 쉘은 사용자가 실행시킨 명령라인
           을  다시한번 보여준며, 각 명령마다 쉘 변수가 변경될 경우 그 쉘변
           수의  내용도 함께 보여준다.
filec       특정 파일명이 완성 기능을 한다. 예를 들어 파일명의 일부만 입력하
           고  ESC를 입력하면 자동적으로 뒤쪽 나머지 파일명이 자동 입력된다.
           또한 파일명의 앞쪽 일부분만 입력후 CTRL+D를 누르며 그 파일명으로
           시작하는 파일의 리스트를 출력한다.
complete    filec과 같은 역할을 한다.
cwd         현재 디렉토리의 절대 path를 가지고 있으며 이 변수를 셋팅하는
           명령은 cd, pushd, popd 명령이다.
hardpaths   심볼릭 링크상에서의 cd명령의 에러를 fix시켜준다.
histchars   !문자나 ^문자등 히스토리 문자를 다른 문자로 셋팅할 수 있다.
history     쉘이 저장하는 히스토리의 갯수를 저장한다.
savehist    사용자가 로그아웃할 경우 저장할 히스토리의 갯수를 저장한다.
ignoreeof   CTRL-D를 눌러 로그아웃하는 기능을 끈다.
mail        새로운 메일이 왔을때 알려주는 기능을 한다.
noclobber   파일을 덮어쓰게되는 경우를 방지해 준다.
noglob      termcap파일에 정해져 있는 특수 문자들이 쉘에 의해 해석되는 것을
           방지해 준다.
nonomatch   다음의 명령을 실행해 보자.
           rm *.o core
           만약 .o로 끝나는 파일이 없을 경우엔 core파일도 지워지지 않고
           No such file 이라는 뜻의 메시지만 나오게 된다. 그러나
           nonomatch 변수를 설정해 놓으면 *.o파일이 없을 지라도 core이
           있는지 쉘이 체크해 보고 있으면 그 파일은 삭제 시킨다.
notify      백그라운드 프로세스의 상태를 바로바로 보여준다. 즉 백그라운드
           프로세스그 동작을 멈춘다든지, 작업이 끝났다든지 했을경우
           사용자에게 통보해 준다.
path        이 변수에 디렉토리 리스트를 설정해 놓은면, 사용자가 입력한
           명령이 이 변수에 속한 디렉토리마다 있는지 찾아서 있으면
           실행해 준다.
user        사용자 명을 보관한다.
prompt      사용자 프롬프트를 보관한다.
status      명령의 종료 상태를 보관한다.
time        이 변수의 특정 시간이 지정되어 있을 경우, 만약 사용자가 입력한
           명령이 이 변수에 지정된 시간보다 많은 CPU시간을 소배했을 경우
           사용자에게 그 통계 수치를 알려 준다.
--------------------------------------------------------------------------

 

제목: [UNIX] 환경변수의 설정

내용:

프로그램이나 쉘 스크립트에서 {환경변수를 설정하고, 디렉토리를 변경하는것}을 하
       는 방법은? 그리고 그러한 것이 현재의 쉘에 어떠한 영향을 줄 수 있는가?

     일반적으로,  적어도 특별한 준비 없이그것은 불가능하다. 자식 프로세스가 생성되면
     그것은 부모의 변수와 현재 디렉토리를 상속 받는다. 자식 프로세스는 이들 모든 값을
     변경할 수 있다. 그러나 그 변화가 부모 쉘에는 영향을 미치지 않는다. 왜냐하면 자식은
     원래의 데이터의 복사본을 변경한 것이기 때문이다.

     몇몇 특별한 준비가 가능하다. 만약 부보가 그 출력물을 읽고 그것을 부모 자신의
     변수를 변경하는 명령으로 해석 할 수 있다면 여러분의 자식 프로세스는 변경된 변수를
     써 보낼 수 있다.

     또한, 쉘은 자식 프로세스에서가 아니라 현재의 쉘 context에서 다른 쉘 스크립트를
     실행하기 위해 준비될 수 있다. 이렇게 되면 그 변화는 원래의 쉘에 영향을 미칠 수 있다.

     예를 들어, 만약 여러분의 "myscript"라는 이름의 C 쉘 스크립트를 가지고 있다고 하면:

       cd /very/long/path
       setenv PATH /something:/something-else

     또는 같은 Bourne 또는 Korn쉘 스크립트인 다음을 가지고 있다고 하면

       cd /very/long/path
       PATH=/something:/something-else export PATH

     그리고 myscript를 여러분의 쉘에서 실행하면 여러분의 쉘은 fork하고나서
     그 스크립트를 서브프로세스에서 실행할 것이다. 그 서브프로세스는 또한 그 쉘을
     실행하고 있다; "cd"명령이 보여질 때 그것은 그 자신의 현재 디렉토리를 바꾸고
     "setenv"명령을 만나게 되면 그 자신의 환경변수를 바꾸게 된다. 그러나 둘다
     여러분이 타이핑 하고 있는 그 쉘(말하자만 여러분이 쓰고 있는 login쉘)의 현재
     디렉토리에는 영향을 주지는 않는다.

     fork없이 그 스크립트를 실행하기 위해 로그인쉘을 얻기 위해서는 여러분은
     "." 명령이나(Bourne이나 Korn쉘에서) 또는 "source"명령(C쉘에서)을 사용해야 한다.
     예를 들어 다음과 같이 타이핑 한다.

       . myscript

     위는 Bourne 이나 Korn 쉘에서 하는 것이고 C쉘에서는

       source myscript

     과 같이 한다.

     만약 여러분이 하고자 하는 일이 단지 디렉토리나 환경변수를 변경하려는 것이라면
     C쉘의 shell alias나 Bourne/Korn쉘의 쉘함수를 사용하면 간단하다.
     "프롬프트에 현재 디렉토리명을 넣으려면?" 섹션을 보면 몇몇 예제가 있다.

     xtm@telelogic.se(Thomas Michanek)에 의한 더 자세한 답변이 다음에 있다.
     ftp.wg.omron.co.jp in /pub/unix-faq/docs/script-vs-env

 

제목: [LINUX] 자동 사용자 환경변수 설정

내용:


개별 사용자를 위한 설정
새로운 사용자가 처음 로그인 했을 때를 위해 몇 가지 설정 파일들을 준비해 두는 것이 좋다. .bashrc, .bash_profile, .bash_logout, inputrc, less, xinitrc, fvwmrc, fvwm2rc95, Xmodmap, Xdefaults, jedrc, joerc, emacs 파일들을 /etc/skel에 두도록 하자.

 

 

제목: [LINUX] 프롬프트(bash) 모양 변경하기

내용:


--- bash script에 사용가능한 옵션들 ---
\t 현재 시간을 HH:MM:SS 형식으로 보여준다.
\d 날자를 "요일 월 일" 형식으로 보여준다.
\s 쉘의 이름을 보여준다.
\w 현재 작업디렉토리를 완전경로로 보여준다.
\W 현재 작업디렉토리의 이름을 보여준다.
\u 현재 사용자의 사용자명
\h 호스트이름
\! 이 명령의 히스토리 번호
\nnn 8진수 nnn에 해당하는 문자
\[ 비출력문자의 시퀀스를 시작한다.
\] 비출력문자의 시퀀스를 마친다.

(예제) PROMPT 설정변경
[.bashrc] 파일에 다음의 내용을 추가한다.
export PS1="[\h:\w]# "
[결과]
[P6:/home/hongyk]# <-- 이와같은 프롬프트가 만들어짐

제목: [LINUX] 사용자 계정 추가/삭제하기

내용:


/etc/passwd 와 /etc/shadow 파일의 내용을 수정하면 가능하다.

(예제)
passwd 파일의 내용
hongyk:x:511:511::/home/hongyk:/bin/bash

 

제목: [LINUX] 리눅스 다중부팅 하기(Window2000/NT)

내용:


리눅스로 부팅한뒤
dd if=/dev/hda7(리눅스 설치 파티션) of=/bootsect.lnx bs=512 count=1

이러면 512바이트짜리 부트부분이 파일로 만들어집니다.
이걸 이용합니다.
이걸 윈도우 파티션에 복사를 하죠..
c드라이브에 복사를 합니다.

그리고 윈도우를 위해 boot.ini를 고칩니다.

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
C:\BOOTSECT.LNX="WOW Linux Paran v7.1"

이렇게 해주면 윈도우즈 부팅시 고를 수 있습니다.

 

제목: [LINUX] gzip/gunzip 잘 사용하기

내용:


(1) 압축하기
tar cvf - dir1 | gzip > dir1.tar.gz
tar cvzf dir1.tar.gz dir1

(2) 압축풀기
gunzip dir1.tgz | tar xvf -
tar xvzf dir1.tgz

 

제목: [LINUX] 리눅스 LILO 오류가 발생했다구?

내용:


다음과 같은 일련의 과정을 실행하면, 왠만한 오류는 해결된다.
1) 리눅스 부팅 디스크로 부팅을 한다.
(부팅디스크가 없다구?. 그래서 ? 나더러 어쩌라구@#$%&@#!@)
2) 다음과 같이 입력한다. boot: vmlinuz root=/dev/hda7
3) 부팅이 잘되었을경우 root로 로그인하여 다음의 작업을 한다.
   (1) 기존의 리로를 삭제( /sbin/lilo -u ( 혹은 -U ) )
   (2) 새로운 리로를 생성( /sbin/lilo )
4) bootsect.lnx 이미지 생성
   dd if=/dev/hda7(리눅스 설치 파티션) of=/bootsect.lnx bs=512 count=1
5) bootsect.lnx 이미지를 window2000의 루트 디렉토리로 복사(C:)

휴~~ 끝났다. 재부팅하면 하드디스크로 시원하게 부팅할거예엽...^^

 

제목: [LINUX] 이상한 이름의 파일을 지우는방법

내용:


하이픈(-)으로 시작하는 파일명을 삭제하려고 보통때처럼 rm 커맨드를 실행하면 rm 커맨드는 인수를 파일명으로 해석하지 않고 옵션으로 착각하게 됩니다. 예를 들어, 다음과 같이 -file이라는 파일을 삭제하려고 해도 에러가 나서 삭제할 수가 없게 된다.
#rm -file
rm: invalid option -- l
그러면 파일명 앞에 ./를 붙여서 상대패스로 파일명을 지정하여 삭제하시면 됩니다.
#rm ./-file
또는 하이픈을 중복해 사용하면 이것 이후로는 옵션이 아니라는 의미가 되므로 “-file”을 파일명으로 해석합니다.
#rm -- -file

다음은 파일명에 공간이 있는 경우, 큰따옴표(”)로 파일명을 묶으면 삭제할 수 있습니다.
#rm “blank file”

마지막으로 물음표(?)가 들어간 파일의 경우 와일드 카드 ("?", "*")를 사용하여 신중히 삭제하시면 됩니다.
와일드 카드를 사용하면 실수가 있게 마련인데, rm 명령어에 “-i” 옵션을 붙여서 대화형식으로 신중히 삭제 하십시요.
#rm -i *xls??

 

제목: [LINUX] 부팅시 출력되는 메시지 보기

내용:


간단히 Shift+PgUp/Dn 키를 눌러 지나간 화면을 볼수 있습니다.

또한 부팅시 출력되는 메시지는 /var/log/dmesg 파일에 매번 기록이 됩니다.

 

제목: [LINUX] 시스템에 대한 정보를 알고 싶습니다

내용:
/proc 디렉토리 아래 파일을 출력해 봄으로써 간단한 정보를 알수있습니다.

* 몇가지 소개를 합니다.
/proc/cpuinfo        : cpu 정보
/proc/pci            : pci 정보
/proc/interrupts    : 사용중인 irq 정보
/proc/dma            : 사용중인 dma 채널
/proc/ioports        : 사용중인 i/o 포트 정보
/proc/filesystems    : 현재 사용가능한 화일 시스템
/proc/meminfo        : 현재 사용중인 메로리
/proc/partitions    : 현재 사용중인 파티션
/proc/swaps          : 현재 사용중인  스왑 파티션 정보
/proc/version        : 현재 사용중인 커널 버전
/proc/devices        : 현재 사용중인 드라이버
/proc/cmdline        : 현재 사용중인 부트 이미지

 

제목: [LINUX] 현재 디렉토리의 디스크 용량 확인

내용:


디렉토리를 비롯한 파일들이 차지하고 있는 디스크 용량을 출력하는 명령으로 'du'가 있습니다.
/usr 디렉토리의 용량을 확인하고 싶다면, 다음과 같은 명령어로 쉽게 알수 있습니다.

#du -h /usr  (h 옵션은 우리가 알아 보기 쉬운 단위로 출력합니다.)

 

제목: [LINUX] su 명령어로 root가 되기

내용:
'su' 와 'su -' 는 차이가 있습니다.
전자의 경우 직접 root 유저로서 로그인했을 때와는 달리 현제 유저의 환경을 그대로 물려받은 채 root의 권한을 가집니다. 이로 인해 PATH의 설정도 원래의 유저와 동일하게 되어 있으므로 관리자 커맨드가 놓여있는 /sbin이나 /usr/sbin 등은 PATH에 포함되어 있지 않게 됩니다.
후자의 경우는 직접 root 유저로서 로그인했을 때와 동일한 환경으로 초기화가 되므로 /sbin이나 /usr/sbin 등도 패스에 들어있게 됩니다

 

제목: [LINUX] root의 비밀번호를 잊어버렸어요

내용:


리눅스 싱글 모드로 부팅하신후 프롬프트 상태에서 passwd를 실행하신 후, 새로운 패스워드를 입력하십시요.

 

제목: [LINUX] 언마운트를 실행하면 Device is busy라는 메시지

내용:


가끔 언마운트를 하려고 하면 device is busy라는 메시지만 보일뿐 언마운트가 되지 않는 경우가 종종 발생합니다.
이는 언마운트를 하려는 해당파일 시스템에서 작동되는 프로세스가 있기에 있기 때문인데, 해당 프로세스를 종료하거나 kill 명령을 사용하여 강제로 죽여줌으로써 해결할수 있습니다.
다음 명령은 해당 파일시스템의 프로세스를 모두 kill 시킵니다.

# fuser -km /mnt/cdrom

 

제목: [LINUX] X 윈도우를 다시 설정

내용:
XFree86의 설정을 변경 한다는 것은 결국 /etc/X11/XF86Config 파일을 편집하는 것입니다. 이 파일을 쉽게 편집할 수 있게끔 보통 다음과 같은 프로그램들이 제공됩니다. 레드헷에서 제공하는 Xconfigurator와 XFree86에 포함된 F86setup 그리고 텍스트 기반의 XF86config 유틸리가 있습니다

 

제목: [LINUX] 텔넷(telnet) 접속시 출력되는 메시지를 변경

내용:


텔넷을 이용하여 접속을 할 때 출력되는 메시지는 /etc/issue.net 파일을 참고하고, 부팅할 때 보여주는 메시지는 /etc/issue 파일을 참고합니다. 하지만 현제의 배포판은 부팅시 issue.net과 issue 파일을 매번 새로 작성하도록 구성되어 있습니다. 그러므로 issue.net 과 issue 파일을 변경하는건 시스템을 재부팅하고 나면 아무런 의미가 없어집니다.
/etc/rc.local 파일을 열면 /etc/wow-release 파일을 참고하여 issue.net과 issue 파일을 새로 작성하도록 스크립트가 있으므로 이 부분을 모두 주석처리 하던지, 스크립트를 고쳐야만 출력메세지를 바꿀수 있습니다

 

제목: [LINUX] 리눅스 부팅디스켓 만들기

내용:
#fdformat /dev/fd0 : 플로피 디스켓을 로우레벨 포멧합니다.

#mkfs -t ext2 /dev/fd0 : ext2 파일 시스템으로 포멧합니다.

#mkbootdisk --device /dev/fd0 커널버전 : 커널버전에 해당하는 부팅디스켓을 만듭니다

 

제목: [LINUX] X 윈도우 시스템에 등록된 한글 폰트 확인하기

내용:


xlsfonts | grep ksc 명령을 통해 현제 사용가능한 한글폰트 목록을 볼수 있습니다.

X윈도우 시스템에서 한글이 깨져 보일경우 위의 명령을 통해 한글 폰트가 로딩되어 있는지 검사하시기 바랍니다

 

제목: [LINUX] 화면을 캡쳐하고 싶습니다

내용:


XV 라는 프로그램이 있습니다. XV는 X-Window 상에서 작동하는 이미지 뷰어와 편집기의 기능을 제공합니다. 다양한 형식의 파일포맷이 사용 가능하며, 파일간 변환도 가능합니다.
쉐어웨어로 레드헷 6.1까지는 기본적으로 포함되어 있었지만, 6.2로 버전업 되면서 아쉽게 빠지게 되었습니다.
http://freshmeat.net 에서 xv 다운 받아 설치하시기 바랍니다.

 

제목: [LINUX] X 윈도우에서 휠마우스를 사용할 수 있습니까

내용:
와우 리눅스 6.2에서는 휠마우스를 사용하기 위하여, imwheel 패키지가 포함되어 있습니다.
imwheel 패키지가 설치 되어 있는지 확인 하신후, /etc/X11/XF86Config 파일의 Pointer section 부분을 아래와 같이 변경하십시요.

Section "Pointer"
   Protocol    "imps/2"        <- PS2 방식의 휠마우스
   Device      "/dev/mouse"    <- 마우스 장치명
   ZAxisMapping 4 5            <- 휠마우스를 위한 추가 라인

 

제목: [LINUX] root 계정으로 telnet 과 ftp 에 접속하기

내용:


이것은 보안상 root 계정의 접속을 허용하지 않는 것입니다.
텔넷이나 FTP에서는 사용자 인증시에 패스워드를 텍스트형태 그대로 네트웍에 흘러보내게 됩니다. 이는 같은 네트웍 상의 시스템이 루트 패스워드를 그대로 알아낼 수 있다는 얘기가 됩니다.
최소한의 보안 정책으로 원격에서 루트로 접속 하는 것을 막아 놓은 것입니다.
일반 유저로서 접속하신 후 su 명령을 통해 root를 사용하십시요.

 

제목: [LINUX] 실행파일이 실행이 안되요

내용:
파일의 이름앞에 ./ 를 붙여주십시요.
매번같이 이런 작업이 불편하시다고요?. 그럼 다음과 같이 해보십시오.
자신의 홈 디렉토리의 .bash_profile 에 정의되어 있는 PATH에 ./ 를
추가 시킵니다. 에디터로는 간단히 vi를 사용하면 되며, PATH=$PATH:$HOME/bin:과 같이 되어 있는것을 PATH=$PATH:$HOME/bin:./ 과 같이 ./ 를 추가합니다.
물론, 현재 바꾼 설정이 그대로 적용되는 것은 아니기 때문에, 다시 한번
로그인 하거나, bash를 한번 더 실행시키면 됩니다. 만약, 루트라면 이런것들에 대한 사용자들의 질문을 지속적으로 받을수 있습니다. 따라서, 이런
설정들을 /etc/skel에 들어있는 .bash_profile 파일을 수정함으로써 새로운 사용자 ID를 만들때 바로 적용되도록 할수 있습니다

 

제목: [LINUX] ls시 컬러로 출력되는 폰트를 흑백으로 바꾸기

내용:


리눅스에서는 파일 유형에 따라 컬러를 구별합니다. 이런 설정은 ~/bash_profile에 들어있기 때문에 자신의 홈 디렉토리로 이동해서 .bash_profile을 수정합니다. 수정해야 할 부분은 alias='ls --color=auto'
부분으로, 여기서 --color=auto부분을 없애주면 됩니다. 물론 이경우도 설정이 바로 적용되지 않으므로 bash를 다시 한번 실행시킵니다. 만약, 많은 사람들이 쓰는 서버를 관리한다면 /etc/skel의 ./bash_profile에 이설정을 반영해 놓으면 편리할 것입니다.

 

제목: [LINUX] 파일을 지울때 물어봄없이 지우는 방법

내용:
파일을 지울 때, 필요한 파일을 잘못 지워본 사람이라면 이렇게 일일이 물어보는 것이 별로 귀찮지 않겠지만, 때로는 이 옵션이 귀찮을 때도 있습니다. 이는 파일을 지울 때만 나오는 메시지도 아니며, 있는 파일에 복사할 경우나 파일을 옮겼는데 기존의 파일이 존재할 경우에도 출력됩니다. 이옵션은 ~/bashrc에서 정의되며, alias='rm -i'와 같이 되어 있을것입니다. 즉, rm명령을 실행하면 자동으로 rm -i가 실행되기 때문에 파일을 지울 때마다 그 메시지를 보게되는 것입니다. 따라서, 이줄을 지워준다면 다음부터 그런 메시지를 보지 않을수 있습니다

 

제목: [LINUX] 리눅스 부팅 디스켓을 만드는 또다른 방법

내용:


dd if=/dev/fd0 of=dos.boot
dd if=dos.boot of=/dev/fd0

 

제목: [LINUX] 사용자 계정의 백업및 복구

내용:
여러가지 방법을 통하여 가능합니다. 가장 간단한 방법을 /etc/passwd 파일을 수정하는 것입니다. 리눅스에서는 사용자가 추가되면 /etc/passwd, /etc/group에 그 정보를 기록합니다. 그리고 쉐도우 시스템을 사용하는 경우에 /etc/shadow에도 패스워드 정보를 저장하도록 되어 있습니다. 따라서, /etc/passwd, /etc/shadow, /etc/group 파일만 백업해두면 사용자 계정에 대한 정보를 보관할수가 있으며, 이 파일에서 특정 사용자들에 대한 부분만을 다른 서버의 같은 파일에 추가하게 되면 계정을 옮길수 있습니다. 단, 주의해야 할점은 내부적으로 사용자를 구별하는 UID가 겹치지 않아야 된다는 점입니다.

 

제목: [LINUX] 리눅스 콘솔로 로그인하기

내용:


리눅스에서는 실행 레벨이라는 개념이 있는데, 이는 /etc/inittab 파일에서 설정합니다. 만약 X-Window로 바로 로그인한다면, 실행 레벨이 5로 되어 있다는 말이며, /etc/inittab파일에는 다음과 같이 id:5:initdefault:라고 되어 있는 줄을 볼수 있을것입니다. 따라서 보통의 콘솔로 로그인 하기를 원한다면 실행 레벨 3을 선택하면 됩니다.

 

제목: [LINUX] CDROM를 사용할때마다 마운트하는것이 불편

내용:


마운트에 대한 정보가 담겨 있어서, 편하게 마운트를 할수 있는 설정파일은 /etc/fstab입니다. 다음과 같은 형식으로 되어 있는데 cdrom부분이 있는 경우에는 mount /dev/cdrom이나 mount /mnt/cdrom과 같이 옵션없이 마운트할수 있습니다.

 

 

제목: [LINUX] 시스템이 부팅할때 특정프로그램을 실행하도록

내용:


/etc/rc.d/rc.local 이라는 파일안의 내용이 부팅될때 자동으로 실행됩니다.

 

제목: [LINUX] 로긴시 나오는 메시지를 바꾸자

내용:


로컬로 접속하는 경우에는 /etc/issue, 네트웍을 경유할 경우에는 /etc/issue.net의 파일을 보여주게 되어 있습니다. 따라서, 이두개의 파일을 수정하면 메시지를 바꿀수 있습니다.
그러나, 기본적으로 재부팅할때마다 default issue로 바뀌게 되어 있으므로 그 부분을 수정하더라도 재부팅을 하면 예전과 같은 내용이 나옵니다

 



출처 IT강국 Corea--깨어나라 Corea!! | 활력찾기
원본 http://blog.naver.com/seobs114/100012577746

댓글 없음:

댓글 쓰기