2012년 7월 22일 일요일

리눅스 기본 명령어(2001년)

LILO(LInux LOder) : HDD로 부팅하기 위해서는 반드시 설치해야 한다.
리눅스로 부팅할 때는 부팅 과정이 메시지로 표시.

리눅스를 포함한 유닉스 운영체제의 관리자는 'root'라는 ID를 갖는다. (login:root)
Password:비밀번호 입력. 만약 비밀번호가 틀릴 때는 'Login incorrect' 라는 메시지가 표시.

root로 로그인하면 # 표시가 나타나며 그 외의 사용자로 로그인하면 $ 표시가 나타난다.

리눅스(유닉스)에서는 명령어, 파일 이름, 디렉토리 이름 등에서 대소문자를 구분한다.(꼭! 구분해야 함)

로그아웃(logout) 하려면 'logout'이라고 입력하고 엔터를 누르면 된다. 또는 +를 눌러도 효과는 같다.
로그아웃이란 현재 사용하는 계정으로부터 빠져 나오는 것을 의미.
리눅스는 여러 사람의 계정으로 사용할 수 있기 때문에 사용하다가 다른 계정으로 로그인하기 위해 로그아웃하는 경우가 많다.

컴퓨터를 끌 때는 'shutdown' 명령어를 사용한다.

#shutdown -h now  : 지금 바로 컴퓨터를 종료하라는 명령  ( halt )
#shutdown -r now  :  지금 바로 컴퓨터를 재부팅하라는 명령 ( reboot )

$ halt  : 컴퓨터를 종료하는 명령
$ reboot  : 컴퓨터를 재시작하는 명령

cf. #shutdown -h +30 : 지금부터 30분 후에 시스템 종료하라는 명령
     #shutdown -h 20:30 : 밤 10시 30분에 시스템 종료하라는 명령
     #shutdown -c  : shutdown 명령을 취소할 경우에 사용하는 명령

관리자 패스워드를 잊었을 때는 싱글 모드(윈도우의 안전모드와 비슷함)로 부팅하여 비밀번호를 변경한다.
싱글모드 부팅 방법 : LILO부팅 화면에서 +키를 눌러 'boot:' 프롬프트가 나타나면 "linux single"을 입력한다. (boot:linux single)
패스워드 변경 방법 : 싱글모드에서 'passwd' 명령을 사용하여 root의 비밀번호를 새로 지정한다.
패스워드 변경 후 'reboot' 한다.

비밀번호를 바꾸는 명령어는 'passwd'이다. root로 로그인 했을 때는 다른 계정의 비밀번호도 바꿀 수 있다.
이 때, 형식은 #passwd userid (#passwd npron) 이다.
일반 사용자로 로그인한 경우에는 아무 옵션 없이 'passwd'라고만 입력하여 자신의 비밀번호를 바꿀 수 있다.

부팅할 때 나오는 메시지를 다시 보려면 로그인 후 'dmesg' 또는 'dmesg|more' 명령을 사용하면 된다.

리눅스 운영체제에서도 모든 작업의 기본 단위는 파일과 디렉토리로부터 시작된다.

파일(디렉토리)이름 : 숫자와 문자, 특수 문자 등으로 이루어진다. 파일 이름의 길이에 비교적 제한이 없다.( 최대 255자 )
특히, '.(점)'으로 시작되는 파일이나 디렉토리는 숨김 속성의 파일이다.
리눅스의 파일에는 읽기가능/불가능, 쓰기가능/불가능, 실행가능/불가능 등의 복잡한 옵션이 있으며 파일의 소유자와 소유 그룹이
정해져 있다.

리눅스(유닉스)에는 드라이브 개념이 없다. 모든 파일이나 디렉토리 파티션 등은 '/' 라는 루트 디렉토리 밑에 존재한다.(붙여쓴다.:마운트)


리눅스 주요 디렉토리 설명

/bin  :bin은 binary의 준말. 가장 기본적인 실행 파일들이 들어있다. 일반적으로 많이 사용되는 실행 파일들은 /usr/bin에 들어있다.

/boot  :리눅스 커널을 포함해서 시스템의 시작(부팅)에 필요한 파일이 들어있다.

/dev  :플로피디스크, CDROM, 하드디스크, 직렬/병렬 포트 등과 같은 장치를 연결하는 정보를 담고 있다.

/etc  :리눅스 시스템 전체에 영향을 미치는 환경 설정 파일들이 포함되어 있다.

/home  :리눅스 사용자들의 홈 디렉토리들을 담고 있다.

/lib  :프로그램 또는 프로그래밍 언어가 필요로 하는 라이브러리 파일들을 가지고 있다.

/lost+found  :어떤 이유로 해서 손실되었거나 발견된 파일들이 들어 있다.

/mnt  :CDROM이나 플로피디스크 등을 마운트할 때 사용하는 임시 디렉토리이다.

/opt  :별도로 설치한 소프트웨어를 담기 위한 장소이다.

/proc  :하드웨어에 관한 정보를 담고 있는 파일들이 들어있는 장소이다.

/root  :관리자(root)의 홈 디렉토리. 일반 사용자의 홈 디렉토리는 /home 아래에 있다.

/sbin  :수퍼유저(관리자)만 사용할 수 있는 실행 파일들을 담고 있는 디렉토리.

/tmp  :임시 파일이 저장되는 디렉토리.

/usr  :기본 프로그램이나 라이브러리 등이 들어 있는 디렉토리로 윈도우의 Program Files 폴더와 역할이 비슷하다.

/var  :시스템이나 응용 프로그램의 로그 파일을 주로 담고 있는 디렉토리이다.



리눅스 기본 명령어(1)

pwd(print working directory) : 현재 작업 디렉토리 보기

cd(change directory)  : 다른 디렉토리로 이동하기
cd ~  ( cd  ) : 홈 디렉토리로 이동. (홈디렉토리란 자신의 계정에 부여된 작업 디렉토리를 말한다.)
cd - : 지금의 디렉토리 바로 직전에 작업하던 디렉토리로 이동.
    (ex)cd .. ,  cd ../.. ,  cd ../local 등. 띄어쓰기는 반드시 지켜야 함.


자동 채움 기능 : 명령어 입력 중간에 [Tab] 키를 누르면 전체 명령어가 한 번에 입력된다.

ls(list) : 디렉토리 목록 보기

리눅스에는 파일의 확장자라는 의미가 없다. 따라서 리눅스 실행파일의 경우 특정 확장자로 구분하는 것은 아니다.
단지, 디렉토리 위치에 따라서 특정 파일들의 그룹이 모여 있다. 실행 가능한 파일들은 실행 가능 속성을 가진다.

which : 주로 실행 파일을 찾을 때 사용하며 PATH에 지정되어 있는 파일을 찾아서 보여준다.
    (ex) #which startx

find : PATH와 상관없이 찾고자 하는 파일을 다양한 조건으로 찾아서 보여준다. which 명령으로 찾지 못했을 경우 find로 찾을 수 있다.
    (ex) #find /etc -name XF86Config

mkdir(make directory) :  디렉토리 만들기 명령어.
    (ex) #mkdir /temp

rmdir(remove directory) : 디렉토리 삭제 명령어. 디렉토리 안에 다른 디렉토리나 파일이 있으면 삭제가 되지 않는다.
    (ex) #rmdir /temp

rm(remove) : 파일 삭제 명령어. 여러 개의 파일을 지울 때에는 와일드카드 문자(?,*)를 사용할 수 있다.
    (ex) #rm /temp/test.txt

** rm -rf : rm의 -rf 옵션은 하위 디렉토리까지 무조건 지우라는 뜻. 따라서 조심하지 않으면 모든 자료가 한순간에 날라갈 수도 있다.

도움말 보기 : #명령어 --help 또는  #man 명령어    : 명령어 옵션이나 설명을 볼 때 사용한다.
    (ex) #ls --help ,  #man ls

cp(copy) : 파일을 복사할 때 사용하는 명령어.    (ex) #cp test.txt temp/  ,  #cp test.txt test2.txt

mv(move) : 파일을 이동할 때 사용하는 명령어.    (ex) #mv test.txt temp/

** touch : 비어있는 파일을 하나 생성한다.    (ex) #touch /temp/test.txt

디렉토리를 복사하는 것도 파일을 복사하는 것과 같다. 같은 이름으로 할 것인지 다른 이름을 할 것인지에 따라 끝에 붙이는 /를 조심해야 한다.

useradd(user-adding) : 사용자 계정 추가 명령어이다. 계정 추가는 root만이 할 수 있으며 기본 형식은 "useradd new_id"이다.
    (ex) #useradd tester [-n] ,   #passwd tester

useradd [-u uid_number] [-g group_name] [-d home_directory] [-s shell_commander] user_id
    (ex) #useradd -g users mylinux

사용자가 추가되면 자동으로 사용자 홈 디렉토리와 기본 설정 파일이 함께 생성된다.

** cat /etc/passwd | grep user_id  : 자신이 만든 계정이 올바르게 저장되었는지 확인할 때 사용한다.

useradd -D : 현재 기본으로 설정되어 있는 사용자 추가 내용이 나타난다.

userdel : 사용자 계정을 지울 때 사용하는 명령어이다. 기본 형식은 "userdel user_id"이다.
    (ex) #userdel tester ,  #rm -rf /home/tester  (홈 디렉토리에 중요한 자료가 없다면 확인 후 rm명령으로 홈 디렉토리를 삭제한다.)
    (ex) #userdel -r tester  (홈 디렉토리까지 한 번에 지워준다.)

사용자가 로그인한 상태라면 사용자 삭제 과정이 이루어지지 않는다. 이 때는 로그아웃 시킨 다음에 삭제한다.

개인적으로 사용하는 컴퓨터라고 할 지라도 root 이외의 일반 계정을 만들어 사용하는 것이 좋다. root는 관리 목적으로만 사용하는 것이 좋다.
실수로 중요한 파일을 지우거나 환경 설정을 잘못 변경하여 시스템에 치명적인 손상을 줄 수 있기 때문이다.
일반 사용자 계정은 그런 일을 할 수 있는 권한이 없기 때문에 시스템을 안전하게 운용할 수 있다.

리눅스의 그룹 : 같은 성격의 사용자들을 묶어 동일한 권한을 줄 수 있도록 한 것이다. 그룹의 내용은 /etc/group 파일에 기록되어 있다.

** cat /etc/group (cat : text file view )

groupadd : 새로운 그룹을 추가할 때 사용하는 명령어.
    (ex) #groupadd test

groupdel : 그룹 삭제 명령어.    (cf) /etc/group 파일을 편집해도 된다.
    (ex) #groupdel test

리눅스를 포함한 유닉스 운영환경에서는 모든 파일과 디렉토리에 소유자와 소유자 그룹이 지정되어 있고 파일의 소유자와 소유 그룹,
제3자에 대한 권한이 지정되어 있다.
    소유자 (Owner) :
    권한(Permission) :

    파일종류(-,l + 소유자(owner) + 소유자그룹(group) + 제3자(others)
    readable(읽기권한), writable(쓰기권한), executable(실행권한)의 약자인 "r", "w", "x" 와  "-'(해당권한없음)
    파일의 종류(1자리) : -:파일을 나타냄, d:디렉토리를 나타냄, l:링크를 나타냄, b:블록장치를 의미함, c:캐릭터장치를 의미함.

    (ex) -rwxr-xr-- : 파일이고, 소유자는 읽기 쓰기 실행 가능, 소유자 그룹은 읽기, 실행 가능, 다른 사용자들은 읽기 가능한 권한을 가짐.

** cat /etc/group | grep group_name :  자신이 추가하려는 그룹이 이미 있는지 확인할 때 사용한다.
               *grep : 내용 중에서 일치하는 부분을 잡아 내라는 의미.

chown(change owner) : 파일, 디렉토리의 소유자 변경하는 명령어. 기본 형식은 "#chown new_owner_id ch_file(directory)_name" 이다.
    (ex) #chown mylinux /home/mylinux/.bashrc
    (root 권한으로 파일을 복사하거나 작성한 경우 나중에 사용자가 이 파일을 수정할 수 있도록 해 줄 때 많이 사용한다.)

chgrp(change group) : 파일이나 디렉토리의 소유 그룹을 변경하는 명령어. 기본 형식은 "#chgrp new_group_id ch_file(dir)_name" 이다.
    (ex) #chgrp users /home/mylinux/.bashrc

** chown 으로 chgrp 명령어 기능 수행하기 : #chown mylinux:users /home/mylinux/.bashrc

디렉토리의 소유자를 변경할 때 안에 들어 있는 파일이나 하위 디렉토리 모두 바꾸려고 한다면 -R 옵션을 주면 된다.
    (ex) #chown mylinux:users /home/mylinux/ -R  (/home/mylinux 이하 모든 파일과 디렉토리를 mylinux:users의 소유로 바꾼다.)

리눅스에서는 자신이 소유하지 않은 파일이나 디렉토리의 소유권이나 권한을 변경할 수 없다. 또 사용자 권한이 없는 파일을 실행할 수도 없다.

chmod : 파일의 권한 변경 명령어이다. 기본 형식은 "#chmod permission_value file(directory)_name"이다.
    (ex) #chmod o-rx /temp (others 의 읽기, 실행 권한 박탈 ) ,  #ls -ald /temp
    (ex) #chmod 750 test (-r(4)w(2)x(1)r(4)-x(1)---) (user는 rwx(4+2+1) group는 r-x(4+0+1) others는 ---(0+0+0)
           #ls -al test
chmod 명령에서 권한값은 문자 또는 숫자를 이용하는 두가지 방법으로 지정할 수 있다.

문자를 이용한 방법은 파일의 소유자, 소유그룹, 제3자에 해당하는 문자로 각각 u,g,o(user,group,others)를 사용하며 이 모두를 함께 지정할 때는
a(all)라고 쓴다. 그리고 권한의 부여와 박탈은 + , - 로 표시한다. 참고로, 권한은 r,w,x(readable, writable, executable) 세가지 속성을 가진다.
    (ex) #chmod a+r : 모든 사용자에게 읽기 권한 부여 ,  #chmod a-r : 모든 사용자에게서 읽기 권한 박탈

숫자를 이용한 방법은 중고급 사용자들이 주로 사용하며 사용법은 간단하지만 이해하기가 조금 어렵다. r,w,x의 값이 각각 4(100), 2(10), 1(1)로 주어져
있으며 권한이 r-x이라면 4+0+1(101)=5 가, 권한이 rwx이라면 4+2+1(111)=7 이 권한값이 된다. ( ---는 0+0+0(000)=0 )
    (ex) #chmod 750 /temp

권한과 소유자 변경 실습을 할 때는 주의해야 한다. 중요 파일의 소유자와 권한을 잘못 설정하면 시스템 사용에 문제가 생길 수 있다.



vi 편집기 기본 사용법

vi는 가장 단순하면서도 복잡한 편집기이다. vi는 콘솔 모드 또는 엑스윈도우 환경에서 사용 가능하다. 콘솔 모드에서는 한글 사용이 조금 어렵다.
vi의 변종은 셀 수 없을 정도로 많이 있으며 요즘 가장 많이 사용되는 프로그램은 vim(Vi IMproved)이다.

vi 실행 : $vi ,  $vi ~/.bashrc ,  vi test.txt (글자 입력을 해보자, 할 수 있는가?)

vi 종료 : vi에서 <ESC>키를 누르면 삑 소리가 난다. 이 때  :q 을 입력(화면 하단에 표시)하고 엔터키를 누른다.
             vi가 종료되지 않고 'No write since last change(use ! to override)'와 같은 메시지가 나오면 다시 <ESC>키를 눌러  :q! 를 입력한다.
     반복해서 연습한다. 이 때 사용하는 키는 <ESC>, q , ! , :(콜론)

** 리눅스에는 vi와 EMacs를 가장 대표적인 편집기로 사용한다.

** http://www.linuxkorea.co.kr/main/refer/site.html 에 리눅스 관련 사이트들이 많이 소개(링크)되어 있다.

vi의 두 가지 모드 : 명령 모드, 입력 모드

명령 모드 : <ESC>키를 누르고  :w , :wq , :q , :q! , :wq! 등을 입력하면 현재 편집 중인 파일을 w(write), q(quit), !(override) 할 수 있다.
         파일을 다른 이름으로 저장하려면 <ESC> :w ~/test.txt

입력 모드 : vi 실행 후 <ESC>키를 누르고 <i>키를 누르면 글자를 입력할 수 있다. 이 때 i(insert) 대신 I, a, A, o, O 등이 사용 가능하다.
         i, I, a, A, o, O는 글자 입력 시작 위치가 다를 뿐 그 외는 같다.
         입력 모드로 들어가면 화면 아래쪽에 "-- INSERT --"라는 메시지가 나타난다.

입력 모드에서 <ESC>를 한 번 누르고 이동 키 H(left), J(down), K(up), L(right)를 사용하면 커서를 이동할 수 있다.


리눅스의 설정 파일은 모두 /etc 디렉토리에 들어 있다. 리눅스(유닉스)의 환경 설정 파일들은 모두 텍스트 형식의 파일로 저장된다.
이 말은, 모든 설정 파일은 편집기를 이용해서 편집할 수 있다는 말입니다. 또는 설정 파일 편집 유틸리티를 사용할 수도 있습니다.

/etc/hosts : 리눅스가 설치된 컴퓨터(호스트)에 관한 정보가 들어 있다.

/etc/lilo.conf : 리눅스 로더(LILO) 프로그램의 설정 파일이다. (한 번 편집해 보자)
               이 파일을 수정한 후에는 반드시 /sbin/lilo 파일을 한 번 실행해 주어야 한다.     (ex) #/sbin/lilo

/etc/fstab : 시스템의 마운트 정보를 담고 있다.

/etc/X11/XF86Config : 엑스윈도우의 기본 환경 설정 정보가 저장되어 있다. Xconfigurator 유틸리티 또는 xf86config 명령으로 수정할 수 있다.

/etc/fs/config : 폰트 서버 환경 설정 파일

/etc/passwd : 리눅스 시스템의 모든 사용자 정보를 담고 있는 파일. 각 사용자별로 1행씩 정보를 담고 있으며 각 행은 :을 기준으로 7개 필드로 구성.
               7개의 필드는 user_id:password:user_idNumber:group_idNumber:comments:home_directory:login_shellName 이다.

/etc/shadow : 시스템에서 shadow password 를 사용하고 있을 때, 실제 비밀번호는 /etc/passwd가 아닌 /etc/shadow 파일에 저장된다.
        (ex) $cd /etc ,  $ls -al passwd shddow 로 권한 확인 해보자.

** root 계정으로는 텔넷(telnet)으로 로그인할 수 없다.하지만 일반 사용자로 로그인한 후 su 명령을 사용하면 root 권한 명령을 실행할 수도 있다.

** /etc/bashrc 파일에는 PS1="[\u@\h\W]\\$라고 되어 있는 부분이 있는데 이 부분에서 프롬프트 모양을 정의하고 있다.
     W를 w(소문자)로 바꾸면 완전한 디렉토리 경로가 표시된다.   (ex) PS1="[\u@\h\w]\\$\n\\$로 바꾸어 보자.



리눅스 기본 명령어(2)

usermod : 사용자 정보를 수정할 때 사용하는 명령어. 기본 형식은 '#usermod -option user_id' 이다.
         option은 s(셀 지정), d(홈디렉토리 지정), e(계정 만료일을 2001-10-25와 같은 형식으로 지정),
               f(비밀번호 유효기간 만료 후 몇 일 뒤에 계정을 사용할 수 없게 할 것인지 지정 기본값 -1은 이 기능을 사용하지 않는다는 의미)
               g(계정의 그룹을 지정), G(계정이 속하는 다른 그룹의 리스트를 지정)
    (ex) #usermod -s /bin/csh mylinux

alias : '별명'이란 뜻으로 긴 명령을 간단하게 만들어 사용하기 위한 명령어이다.
    (ex) $alias rm='rm -i'  ,  $alias tarx='tar xvzf' ...

startx : 엑스윈도우를 시작하는 명령어이다.   (ex) $startx

Xconfigurator : 엑스윈도우가 시작되지 않을 때 모니터와 그래픽 카드의 환경 설정을 다시 할 수 있는 명령어이다.  (ex) #Xconfigurator

netcfg(Network Configurator) : 엑스윈도우 또는 터미널에서 사용할 수 있는 네트웍 환경 설정(IP,Subnet,Gateway,DNS...) 명령어.
    (ex) #netcfg &   ( &를 붙이면 명령 실행 중에도 프롬프트를 사용할 수 있다. )

** 엑스윈도우 터미널에서 control-panel 이라는 명령을 입력하면 조절판 프로그램이 실행된다.
** 엑스윈도우 터미널에서 linuxconf 이라는 명령을 실행해 보자.

rpm(Red Hat Package Manager or Red Hat Package Module) : 레드햇 사에서 개발한 패키지 관리 도구.
대부분의 리눅스 패키지들이 채택하여 사용하고 있다. 현재 버전 4.0 이상을 사용한다.

rpm 패키지 파일 읽기 : 패키지 파일의 이름은 *.rpm으로 되어 있다.  이는 '패키지 이름-버전번호-플랫폼 종류.rpm' 형식이다.

rpm -q : 패키지가 설치되어 있는지 확인하는 명령. 설치하려는 패키지가 이미 설치되어 있는지 알아볼 때 주로 사용한다.
    (ex) #rpm -q xmms  ,   #rpm -qa | grep netscape

** 의존성 문제가 생길 경우에는 가능한한 패키지를 삭제하거나 하지 말자. 또는 설치시 의존성 문제로 설치가 안되면 필요한 패키지를
먼저 설치하여야 한다. 의존성 검사를 하지 않는 옵션은 '--nodeps' 이다.

rmp -ivh : 패키지를 설치하는 명령이다. 옵션 i는 install, v는 verbose, h는 hash marks(#)를 의미한다.
    (ex) #rpm -ivh /temp/foo-1.0-1.i386.rpm (#rpm -ivh package_dir/package_name)  ,  #rpm -ivh*.rpm

** rpm 설치시 패키지가 이미 설치되어 있거나 보다 낮은 버전의 패키지를 설치하려고 할 경우 메시지를 출력하게 된다. 어떤 이유에서건
강제로라도 이전 버전의 패키지를 설치하려고 한다면 '--replacepkgs'라는 대체 옵션을 붙여서 명령을 실행하면 된다.
    (ex) rpm -ivh foo-1.0-1.i386.rpm --replacepkgs

rpm -Uvh : 패키지를 업그레이드하는 명령이다. 옵션 U(대문자)는 Upgrade를 의미한다. 이전 프로그램이 없어도 업그레이드가 가능하다.
따라서 대부분의 사람들은 -ivh 옵션 대신 -Uvh 옵션만 쓰는 경향이 있다.

rpm -e : rpm 패키지 삭제 명령이다. 삭제할 때는 패키지 전체의 이름이 아닌 패키지 이름만 써준다.
    (ex) #rpm -e foo  ,  #rpm -e foo --nodeps

rpm -Fvh : 패키지 설치시 새로운 것만 업그레이드하는 명령이다. 이전 버전이 설치되어 있지 않으면 설치하지 않는다.(업그레이드만 한다.)
    (ex) #rpm -Fvh *.rpm

rpm -qf : qf 다음에 나오는 파일이 포함된 패키지를 찾아 준다. 'rpm -qf file_name' 형식    (ex) #rpm -qf /etc/motd
rpm -qi : qi 다음에 나오는 패키지 정보를 자세히 보여준다.  'rpm -qi package_name' 형식
rpm -qc : 해당 패키지의 설정 파일을 보여준다.  'rpm -qc package_name' 형식

** 더 자세한 내용은 rpm --help 명령으로 도움말을 살펴본다. 또한 FTP 사이트 등에서 직접 rpm 패키지를 설치하게 할 수도 있다.
파일 이름 대신에 해당 파일이 있는 FTP 경로를 지정해 주면 임시 디렉토리에 파일을 다운받아서 바로 설치를 해 준다.

** 레드햇 리눅스 설치 CD나 FTP 사이트에 보면 RPM 파일이 들어 있는 디렉토리가 RPMS로 되어 있다. 그리고 SRPMS 디렉토리가 있는데
이 디렉토리들에는 소스 RPM 패키지들이 들어 있다. 소스 RPM 파일 이름은 모두 src.rpm으로 끝난다. 이 파일들은 일반 rpm과 같이 -Uvh
옵션으로 설치하는 것이 아니라 --rebuild 옵션을 붙여서 일반 rpm 파일로 만들어 사용한다.
완성되어 만들어진 파일은 /usr/src/redhat/RPMS/i386 디렉토리에서 찾을 수 있다.
    (ex) #rpm --rebuild foo-1.0.src.rpm

** 엑스윈도우에서 사용할 수 있는 패키지 관리 프로그램으로 gnorpm 이 있다. 엑스윈도우 터미널에서 실행하면 된다.
    엑스윈도우 터미널에서 up2date 명령을 사용하면 인터넷을 통해 최신 버전의 레드햇 리눅스 패키지를 받아 설치할 수 있다.



리눅스 중급 명령어(1)

리눅스에서 주로 사용하는 압축 파일의 형식은 .tar.gz이다. 흔히 tar ball이라고 하는데 이 파일은 파일 또는 .tar 형식으로 묶은 파일을 .gz 형식으로
압축한 것이다. ( .tar.gz 와 .tgz는 서로 같다 ) 이 때 압축을 푸는 방법은 .gz 형식을 먼저 풀어준 다음 .tar 형식의 압축을 풀어주면 된다.
    (ex) if foo.tar.gz exist then    #gzip -cd foo.tar.gz | tar xvf - (gzip 대신 zcat, gunzip 이라는 명령을 써도 된다.)
                or    #tar xvxf foo.tar.gz  (tar:Tape Archiver의 준말)

.tar.gz 형식의 압축 파일 만드는 방법은 두 단계를 거쳐야 된다. 먼저 .tar 형식으로 묶고 .gz 형식으로 압축한다.
    (ex) #tar cvf foo.tar file_1 file_2 file_3 ...  dir_1 dir_2 ....  (#tar cvf /temp/home.tar /home)
           #cd /temp  ,  #gzip home.tar (/temp/home.tar.gz 파일이 만들어진다)

** tar 명령으로 한 번에 압축파일 만들기 ( 만약  /home을 /temp/home.tar.gz형식의 파일로 압축한다면)
    (ex) #tar cvzf /temp/home.tar.gz /home

touch : 비어있는 텍스트 파일을 만들 때 주로 사용하는 명령어이다. 기존 파일에 사용할 경우 파일의 접근 또는 변경 시간을 현재 시간으로 바꾼다.
    (ex) #ls -al /etc/hosts  ,  #touch /etc/hosts  ,  #ls -al /etc/hosts
           #touch /temp/testfile.txt  , ls /temp

cat(catenate, concatenate) : 파일의 내용을 볼 때 가장 많이 사용하는 명령어이다. 키보드로 입력한 내용 또는 파일을 화면이나 다른 파일로
    보내는 일이 cat의 역할지만, 간단하게 텍스트 파일을 화면에 출력할 때 주로 사용한다.
    (ex) $cat /etc/hosts

cat > txt_file_name : 화면에 입력한 내용으로 새로운 텍스트 파일을 만드는 방법이다. '>'는 리다이렉션 기호이며 빈 줄에 원하는 내용을 입력한 후
    <Ctrl>+<C>를 누르면 파일이 저장된다. (cat 명령으로 내용을 다시 볼 수 있다.)

cat text_file1 > text_file2 : 텍스트파일1을 텍스트파일2로 보낸다(복사,추가)는 의미이다.
    리다이렉션 기호가 없으면 기본적으로 키보드, 또는 모니터가 입력/출력이 된다.

** redirection 은 입력이나 출력의 방향을 다시 지정할 때 사용하는 일종의 방향 지시자이다. 기호는 < , > 를 사용한다.

grep : 텍스트를 검색해서 사용자가 원하는 부분과 일치하는 내용을 보여주는 명령어(program)이다. 일반적으로는 파이프(|)와 함께 사용한다.
    (ex) #grep Monitor /etc/X11/XF86Config (Monitor라는 문자가 들어있는 행을 보여준다.)
        or  #cat /etc/X11/XF86Config |grep Monitor (주로 이런 형식으로 많이 사용한다.)
    (ex) #mount -t iso9660 /dev/cerom /mnt/cdrom  ,  #ls /mnt/cdrom/RedHat/RPMS |grep kernel

** pipe 는 두 명령어 사이의 자료 전달을 하기 위하여 사용하는 일종의 인수(결과값) 전달자이다. 기호는 | 를 사용한다.

bg(background) : 포그라운드로 실행 중인 프로그램을 잠시 중단하는 경우 <Ctrl>+<Z>를 누르면 되는데 이 때 이 프로그램을 다시 백그라운드
    상태에서 실행되도록 하는 명령어이다.

fg(foreground) : bg 명령으로 백그라운드에서 실행되던 프로그램을 다시 포그라운드로 돌아오게 하는 명령어이다.

ps(process) : 현재 실행 중인 프로세스를 보여주는 프로그램이다. 옵션으로는 전체 사용자 프로세스를 보여주는 a, 프로세스 사용자, 시간 등
    의 옵션을 모두 보여주게 하는 u, 서버 프로그램까지 모두 나타나게 하는 x 가 있다.    (ex) #ps aux

kill : 어떤 프로그램을 강제로 종료시킬 때 사용하는 명령어이다. 기본 사용은 'kill process_id'
    (ex) #ps  ,  #kill 1710

more : 많은 내용의 화면 출력시 한 화면씩 끊어서 보여주는 프로그램이다. 엔터를 누르면 한 줄씩 스크롤 되고 스페이스바를 누르면 한 화면씩
    스크롤 된다. q를 누르면 보기가 종료된다.
    (ex) #more /etc/X11/XF86Config

less : more를 개선하여 만든 프로그램이다. 사용법은 more와 같지만 b를 누르면 지나간 화면 보기가 된다. 또 /키를 누르면 다음에
    원하는 문자를 찾아서 보이도록 할 수 있다.

ln(link) : 링크를 만들 때 사용하는 명령어이다. 링크는 윈도우의 바로 가기 아이콘과 비슷하다. 하지만 링크 자체가 완벽하게 원래의 파일이나
    디렉토리와 같은 역할을 하도록 설계가 되어 있다. 리눅스에서는 링크를 많이 사용한다. 종류로는 심볼릭 링크와 하드 링크가 있다.
    (ex) #ln -s /etc/motd /temp/motd.temp  (motd.temp가 심볼릭 링크.)

df : HDD의 남은 공간을 보여주는 명령이다. 옵션으로 -h를 붙이면 남은 공간이 MB단위로 표시된다.

du : 디렉토리나 파일이 차지하고 있는 공간을 보여주는 명령이다. 옵션으로 -h 또는 -sh가 있다.
    (ex) #du -sh /etc

free : 메모리의 사용량을 보여주는 프로그램이다. 옵션 -m을 사용하면 MB단위로 보여준다.
    메모리 사용량을 볼 수 있는 다른 방법은 /proc 디렉토리에 있는 meminfo 파일을 cat 명령으로 보는 것이다.

mount : CDROM이나 FDD를 리눅스(유닉스)시스템에 붙여 사용할 수 있도록 하는 명령어이다.
    (ex) #mount -t iso9660 /dev/cdrom /mnt/cdrom
           #mount /dev/fd0 /mnt/floppy

리눅스를 비롯한 유닉스에서는 마운트(mount)라는 독특한 방법으로 디스크를 사용한다. mount는 '자리를 잡게 하여 준비하다'란 뜻이 있다.
HDD는 항상 사용하므로 부팅시 자동으로 마운트된다. 반면, CDROM이나 FDD는 필요할 때만 사용하므로 자동으로 마운트되지 않는다.
어떤 파일이나 디렉토리도 마운트하기 전에는 사용할 수 없다.

현재 마운트된 정보를 보려면 간단하게 mount라는 명령을 내리면 된다. 마운트된 디스크, 마운트 위치, 파일 시스템, 권한 등이 표시된다.

CDROM 드라이브는 /dev/cdrom 이라는 장치에 정의 되어 있다. 이 때 파일시스템은 ISO9660 이다. CDROM은 일반적으로 /mnt/cdrom
디렉토리에 mount 시킨다. 권한은 r만 가진다.

umount : 마운트를 해제하는 명령어이다. 언마운트시킬 때에는 마운트 포인트나 장치명만 적어주면 된다.
    (ex) #umount /dev/fd0
        or  #umount /mnt/floppy

** /etc/fstab 파일의 내용을 살펴보자. 그리고 여기에 CDROM과 floppy disk 가 마운트되는 위치가 정해져 있는 것이 확인되면,
    #mount /mnt/cdrom 또는 #mount /dev/cdrom ,  #mount /mnt/floppy 또는 #mount /dev/fd0 라고 간단하게 마운트할 수 있다.

ping : 인터넷이 되는지 신호를 보내어 그 신호가 되돌아 오는지를 확인할 때 사용하는 프로그램이다.
    기본 형식은 'ping host_name(or IP address)' 이다.    (ex) $ping www.wooln.com
    '-c 횟수' 옵션을 붙여서 일정한 수만큼 실행시키거나 <Ctrl>+<C>를 눌러 종료한다.

traceroute : 인터넷의 라우팅 이동 경로를 보여주는 프로그램이다. 특정 사이트 접속이 되지 않을 때 어떤 호스트에서 막혀 접속이 되지 않는지를
    확인할 수 있다.        (ex) #traceroute www.wooln.com

댓글 없음:

댓글 쓰기