텍스트 파일의 내용을 알파벳 순서대로 정렬하는 명령어이다.

사용법 : sort [옵션] [파일]

정렬옵션 
 -b, --ignore-leading-blanks : 공백을 무시한다. 
 -d, --dictionary-order : 공백과 알파벳 문자의 순서를 비교한다. 
 -f, --ignore-case : 모든 문자를 소문자로 인식한다. 
 -g, --general-numeric-sort : 숫자값을 비교 정렬한다. 
 -i, --ignore-nonprinting : 프린트 가능한 문자만 비교한다. 
 -M, --month-sort : 날짜(월) 정렬을 compare (unknown) < JAN' < ... < DEC' 순서로 한다. 
 -n, --numeric-sort : string numerical value값을 비교하여 정렬한다. 
 -r, --reverse : 비교 결과를 역변환한다. 

또다른옵션 
 -c, --check : 입력된 파일이 정렬이 되었는지 아닌지 체크한다. 
 -k, --key=pos1[,pos2] : 키를 pos1에서 시작하여 pos2까지 지정한다. 
 -m, --merge : 복수 입력 파일을 병합한다. 
 -o, --output=file : 지정한 file에 결과를 저장한다. 
 -S, --buffer-size=size : 지정한 size 크기로 메인 메모리 버퍼를 사용한다. 
 -t, --field-separator=sep : 지정한 sep로 필드 구분자를 지정한다. 
 -T, --temporary-directory=dir : 기본 임시 디렉토리인 $TMPDIR나 /tmp를 사용하지 않고, 지정한 dir를 사용한다. 
 -u, --unique : 필드 내에 같은 값을 제거한 유일한 값만을 결과값으로 보여준다. 
 --help : 도움말을 보여준다. 
 --version : 버전정보를 보여준다. 

sort 명령은 지정한 파일로부터 입력을 받아 행들을 분류하고 그 결과를 표준 출력으로 보여준다. 만일 입력 파일이 2개 이상이라면 파일들을 병합하여 하나의 파일로 분류한다.
다음 예제는 /etc 디렉토리의 내용을 정렬하여 보여준다.

# ls /etc/ | sort | more 
DIR_COLORS 
Muttrc 
X11 
a2ps-site.cfg 
a2ps.cfg 
adjtime 
alchemist 
aliases 
aliases.db 
alternatives 
anacrontab 
at.deny 
auto.master 
auto.misc 
bashrc 
cdrecord.conf 
cipe 
cron.d 
cron.daily 
cron.hourly 
cron.monthly 
cron.weekly 
--More-- 

만일 필드 내의 중복되는 행을 보고싶지 않을때에는 -u옵션을 사용한다. 이는 uniq명령과 같은 역할을 한다.
만일 파일내의 대소문자의 구분을 없애려면, -f 옵션을 사용한다.
2005/06/16 19:31 2005/06/16 19:31
스크립트나 환경파일을 읽어들여, 환경 변수 등을 변경하였더라도 바로 반영할 수 있게 하는 명령어이다.

사용법 : source 파일 

source 명령은 환경 설정 파일이나 스크립트내의 환경 변수 값을 변경 후, 셀 상에서 변경된 환경 변수를 읽어 들일 수 있다.
2005/06/16 19:28 2005/06/16 19:28
디스켓을 사용하거나 메일을 보낼 때 적당한 크기로 파일을 나누는 명령어이다.

사용법 : split [옵션] [INPUT [PREFIX]] 
-b, --bytes=SIZE : 지정한 SIZE 바이트만큼 파일을 만든다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

split 명령은 파일을 작은 조각으로 나눠주는 유틸리티로서 플로피에 백업을 하려고 하거나, 이메일의 첨부 파일로 사용할 때 파일을 나누어 업르도를 하려고 할 때 유용하다. 아래 예제는 현재 디렉토리의 모든 파일을 압축하는데 5MB 크기로 split.tar.gz 이름으로 파일을 만드는 것이다. 5MB가 넘으면 다른 이름의 파일로 분할 압축한다.

# tar cvfz - * | split -b 5m - split.tar.gz 

압축 파일의 용량이 5MB를 넘어가면 split.tar.gz 파일의 이름 뒤에는 aa가 붙고 다시 split.tar.gzab에 뒤이어 압축한다.
같은 방식으로 ac, ad도 볼수 있다.
분리된 파일을 하나의 파일로 합치기 위해서는 cat 명령을 사용한다.

# cat split.tar.gza* >> split.tar.gz 
2005/06/16 19:26 2005/06/16 19:26
암호화를 제공하여 안전한 접속을 제공하는 원격 SSH 서버에 접속하기 위한 클라이언트 프로그램이다.
SSH는 Secure SHell의 약자로 암호화되고 압축된 연결을 제공한다. 이전의 텔넷은 서버와의 연결된 상태에서의 패킷 송수신이 모두 네트워크에 노툴되어, 내용이 스니핑(몰래 네트워크에서 오가는 패킷을 훔쳐보기)이 된다. 이같은 문제점은 ssh를 사용함으로써 해결이 가능하다.

# ssh -l admin linux.net 

또는 다음과 같이 입력하자

ssh admin@linux.net 
The authenticity of host 'linux.net (211.145.224.132)' can't be established. 
RSA key fingerprint is 06:c5:f0:5d:2a:c0:c2:97:04:d0:68:95:ba:79:81:49. 
Are you sure you want to continue connecting (yes/no)? 

처음 SSH 서버에 접속할때 위의 메시지를 물어본다. yes를 입력하면 RSA키를 자신의 로컬 시스템의 $HOME/.ssh/known_hosts 파일에 저장한다.
이후에는 원격 터미널과 같이 접속하여 사용하면 된다.

[관련 명령어]
scp ssh서버에서 원격으로 복사할 수 있는 명령어
2005/06/16 19:22 2005/06/16 19:22
파일이나 파일시스템의 상태를 보여주는 명령어

사용법 : stat [옵션] 파일명 
-l : 링크파일의 소스파일 정보를 보여준다. 
-f : 파일명이 있는 파일시스템의 정보를 보여준다. 
-v : 버전정보를 보여준다. 
-t : 간략한 정보를 보여준다. 

stat 명령은 파일이나 파일시스템의 사이즈나, 블록, IO블록, 엑세스 날짜, 수정날짜 등을 살펴 볼수 있다.
아래와 같이 stat04.hwp파일을 한 번 살펴보자. 파일에 대한 크기, 블록, IO블록, 장치 및 아이노드 등의 자세한 정보를 보여준다.

# stat stat04.hwp 
  File: "stat04.hwp" 
  Size: 30028077        Blocks: 58728      IO Block: -4611691997021859840 Regular File 
Device: 805h/2053d      Inode: 912254      Links: 1    
Access: (0644/-rw-r--r--)  Uid: (  501/  root)   Gid: (  501/  root) 
Access: Sat Apr 10 18:44:20 2004 
Modify: Thu Oct  3 10:22:20 2002 
Change: Sat Apr 10 18:22:00 2004 

-f 옵션은 파일명이 있는 파일시스템의 정보를 보여준다.

# stat -f stat04.hwp 
  File: "stat04.hwp" 
    ID: 0        0        Namelen: 255     Type: EXT2/EXT3 
Blocks: Total: 2883836    Free: 2458861    Available: 2312369    Size: 4096 
Inodes: Total: 1465920    Free: 1401429 

디렉토리를 지정하여 디렉토리의 상태를 볼 수도 있다.

$ stat / 
  File: "/" 
  Size: 4096            Blocks: 8          IO Block: -4611706771709358080 Directory 
Device: 805h/2053d      Inode: 2           Links: 19    
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root) 
Access: Sun Apr 11 04:02:10 2004 
Modify: Sat Apr 10 18:39:59 2004 
Change: Sat Apr 10 18:39:59 2004 
2005/06/16 19:16 2005/06/16 19:16
시스템 콜과 신호를 추적하여 프로그램의 실행 과정을 살펴 볼 수 있게 하는 명령어이다.

사용법 : strace [옵션] 명령어 [매개변수] 

strace 명령은 시스템 콜과 신호를 추적해서 진단하고 디버깅해 주는 도구로써, 프로그렘에서 실행되는 프로세스가 어떤 것인지 추적이 가능하다.
이외에도, 바이너리 파일에 어떤 경로 이름이 컴파일되어 있는지 살펴보거나, 조건을 살펴 볼 경우, 혹은 바이너리 파일의 동작 원리를 알아 볼 경우에도 사용이 가능하다. 아래 예제와 같이 strace 명령을 실행해 보자. 이는 ls 명령에 대한 다양한 컴파일 경로나 조건, 동작에 대한 정보를 살펴 볼 수 있다.

# strace ls 
execve("/bin/ls", ["ls"], [/* 18 vars */]) = 0 
uname({sys="Linux", node="airz.net", ...}) = 0 
brk(0)                                  = 0x8053dc4 
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY)      = 3 
fstat64(3, {st_mode=S_IFREG|0644, st_size=25806, ...}) = 0 
old_mmap(NULL, 25806, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 
close(3)                                = 0 
open("/lib/libtermcap.so.2", O_RDONLY)  = 3 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\r\0"..., 1024) = 1024 
fstat64(3, {st_mode=S_IFREG|0755, st_size=11832, ...}) = 0 
old_mmap(NULL, 14932, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001b000 
mprotect(0x4001e000, 2644, PROT_NONE)   = 0 
old_mmap(0x4001e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x4001e000 
close(3)                                = 0 
open("/lib/i686/libc.so.6", O_RDONLY)   = 3 
---------------------생략--------------------- 
2005/06/16 19:14 2005/06/16 19:14
오브젝트 또는 이진 파일에서 정상적으로 출력할 수 있는 문자열을 찾는 명령어이다.

사용법 : string [옵션] 파일 
-, -a, --all : 오브젝트 파일 전체를 검색한다. 
-f, --print-file-name : 각 문자열 전에 파일 이름을 보여준다. 
-min-len, -n min-len, --bytes=min-len : min-len 수로 최소 문자열의 길이를 지정한다. 기본값은 4이다. 
-o : -t옵션과 비슷하다. 
-t base, --radix=base : 지정한 base 포맷으로 각 문자열 앞에 오프셋을 보여준다. 
 아래는 지정 가능한 base 포맷들이다. 
   d : 오프셋을 십진수로 기록한다. 
   o : 오프셋을 8진수로 기록한다. 
   x : 오프셋을 16진수로 기록한다. 
--target=format : 지정한 포맷으로 시스템의 기본 코드 포맷으로 사용한다. 
-v, --version : 버전정보를 보여준다.

strings 명령은 오브젝트 또는 2진 파일에서 인쇄 가능한 문자열을 찾는다. 기본 문자열은 4자이다.
2005/06/16 19:10 2005/06/16 19:10
Object 파일에서 심볼을 제거한다.

사용법 : strip [옵션] Object 파일명 
-F bfdname, --target=bfdname : 입력파일을 지정한 bfdname으로 한다. 
-O format, --output-target=format : 출력파일을 지정한 포맷으로 한다. 
-R section, --remove-section=section : section을 삭제한다. 
-s, --strip-all : 모든 심볼을 제거한다. 
-S, -g, --strip-debug : 디버그 심볼 만 제거한다. 
--strip-unneeded : 위치 재지정 정보외의 모든 심볼을 지운다. 
-K 심볼이름, --keep-sybol=심볼이름 : 소스파일에서 지정한 심볼 이름은 삭제 하지 않는다. 
-o 파일명 : 지정한 Object 파일을 strip 하여 다른 파일로 저장한다. 
-x, --discard-all : 글러벌 심볼이 아닌것은 지운다. 
-X, --discard-locals : 컴파일러의 위치정보를 지운다. 
-v, --verbose : 스트립 과정을 자세히 보여준다. 

strip은 object 파일의 심볼을 제거하여 파일의 용량을 줄인다. 다양한 옵션으로 선택적으로 심볼을 삭제할수 있다. strip은 회선 번호 정보, 위치 재지정 정보, 디버그 섹션, typchk섹션, 주석 섹션, 파일 헤더(header) 및 XCOFF 오브젝트 파일의 모든 기호표 또는 일부를 제거 할 수 있다. 심볼이 제거된 object 파일은 실제 실행에는 별 이상이 없다. 디버그 옵션등이 모두 삭제되므로 마지막으로 실행파일이 작성된 상태에서 사용한다.
2005/06/16 19:10 2005/06/16 19:10
로그아웃 없이 임시로 다른 사용자의 UID, GID를 사용할 수 있도록 한다. 주로 수퍼 유저의 셀을 사용할 때 많이 사용된다.

사용법 : su [옵션] [유저] [셀변수] 
-c COMMAND, --command=COMMAND : 대화형 셀을 시작하지 않고 -C 옵션을 셀에 주어서 한개의 명령만을 수행하도록 한다. 
-f, --fast : csh 와 tcsh 에만 해당되는 것으로서, -f 옵션은 시작 파일(.cshrc)를 읽지 않도록 한다. 
--help : 표준출력으로 사용법을 출력하고 정상적으로 종료한다. 
-, -l, --login : 사용자 로긴 스크립트 파일을 읽어 사용자의 환경으로 변경한다. 
-m, -p, --preserve-environment : 'HOME', 'USER', 'LOGNAME', 'SHELL'등의 환경 변수 값을 변경하지 않는다. 
-s, --shell shell : su를 실행하는 사용자가 수퍼 유저가 아니거나 사용자의 셀이 제한된 셀일 때는 /etc/passwd에 등록된 USER의 셀을 수행하지 않고 지정한 셀을 수행한다. 
--version : 표준출력으로 버전정보를 출력하고 정상적으로 종료한다. 

su는 한 사용자가 잠시 다른 사용자가 될 수 있도록 해준다. 실제 사용자 ID, 그룹 ID, USER의 보충적인 그룹으로 셀을 실행한다. USER가 주어지지 않으면 기본적으로 수퍼 유저인 root로 설정된다. 실행되는 셀은 USER의 패스워드 목록에서 찾아오거나 없으면 /bin/sh를 수행한다. 만약 USER에 패스워드가 있따면 su는 실제 사용자 ID가 0 (수퍼유저)가 아닌 한 패스워드를 물어본다.
기본적으로 su는 현재 디렉토리를 변경하지 않는다. USER의 패스워드 항목으로부터 HOME, SHELL 등의 변수를 설정하고 만약 슈퍼 유저가 아니라면 USER와 LOGNAME을 USER로 설정한다. 기본적으로 이 셀은 로그인 셀이 아니다.
2005/06/16 19:09 2005/06/16 19:09
파일의 체크섬과 블록 수를 계산하여 이것이 원본 파일과 동일한지 확인하는 명령어이다.

사용법 : sum [옵션] 파일 
-r : 옵션을 무효로 하고, BSD sum 알고리즘을 이용한다. 1KB 블록을 이용한다. 
-s, --sysv : sys V sum 알고리즘을 이용하며, 512 Byte 블록을 이용한다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

sum 명령은 입력으로 받은 파일을 읽어, 해당 파일의 1KB의 블록 수와 체크섬을 계산하는 역할을 하며, 만일 옵션을 지정하지 않으면 기본값인 BSD sum 알고리즘을 사용하게 된다. 이는 일반적으로 통신상에서 주고받은 파일들간에 이것이 원본 파일에 대한 사본파일이며 중간에 변화되지 않았는지 알아보기 위해 유용하게 이요할 수 있다.
아래와 같이 원본파일과 대상 파일을 지정하여 이것의 1024당 블록 수와 체크섬을 확인할 수 있다.
2005/06/16 19:08 2005/06/16 19:08
파일/장치에 설정했던 스왑핑을 종료하는 명령어이다.

사용법 : swapoff -a [장치명] 
-a : /etc/fstab에 스왑 장치로 표기된 모든 장치를 스왑에서 해제한다. 

swapoff 명령은 혹은 path로 분류되는 블록 디바이스로의 스와핑을 멈춘다.

[관련 명령어]
mkswap 스왑 영역을 지정하는 명령어
swapon 스왑핑을 설정하는 명령어
2005/06/16 19:07 2005/06/16 19:07
파일/장치를 스왑으로 설정하는 명령어이다.

사용법 : swapon [옵션] [장치명] 
-a : /etc/fstab 에 sw'' 스왑 장치로 표기된 모든 장치를 스왑으로 설정한다. 
-p 우선권 : swapon에서 사용될 우선권을 설정한다. 우선권은 0 ~ 32767 사이의 값이다. pri=value 이라는 항목을 /etc/fstab 의 옵션 필드에 써 넣으면 swapon -a할 때 이용된다. 

swapon은 파일 혹은 apth로 분류되는 블록 디바이스로의 스왑 영역을 설정한다.

512M의 스왑파일 만들기

# dd if=/dev/zero of=/swap bs=1024 count=524288 
# mkswap /swap 524288 
# sync 
# swapon /swap 

free명령으로 작성된 스왑파일을 확인한다.

# free 

스왑을 해제하려면 swapoff 명령을 사용하면 된다.

# swapoff /swap 
# free 
2005/06/16 19:06 2005/06/16 19:06
메모리를 디스크 자료로 동기화하여 저장하는 명령어이다.

사용법 : sync [--help][--version] 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

sync는 모든 디스크 밖의 버퍼링된 데이터를 기록한다. 이것은 수퍼 블록이나 i-node의 변경 사항은 물론, 지연된 읽기와 쓰기를 포함할 수 있다.
커널은 비교전 느린 디스크에 읽고 쓰는 과정에서 처리 속도가 지연되는 것을 피하기 위해 메모리에 데이터를 저장한다. 이것은 실행속도를 증가시키지만, 만일 컴퓨터가 파손되면 자료가 손실되거나 그 결과 파일이스템이 손상된다. sync는 프로세스가 비정상적으로 정지되기 전에 호출되어저야 한다. 대개, 프로세서는 shutdown이나 reboot, halt 명령어를 이용해 정지된다.
2005/06/16 19:04 2005/06/16 19:04
파일 내용을 마지막 라인부터 보여준다.

사용법 : tac [옵션] 파일 
-b, --before : 구분하는 구분자를 미리 보여준다. 기본적으로 줄 바꿈을 표시한다. 
-r, --regex : 정규표현식으로 구분자를 사용한다. 
-s, --separator=문자열 : 검색한 문자열을 기준으로 문장을 자른다. 
--help : 도움말을 보여준다. 
--version : 버전을 보여준다. 

tac은 파일 내용을 역 라인으로 출력한다. 즉 마지막 라인부터 시작하여 문서 앞 방향으로 cat 명령어가 보여주는 반대 방향으로 보여준다.
2005/06/16 19:03 2005/06/16 19:03
파일의 뒷 부분부터 출력을 원하는 행까지 지정하여 출력한다.

사용법 : tail [옵션] 파일 
-n [단위] : 파일의 마지막부터 n 번째까지 보여준다. 
   l 라인 
   c 캐릭터 
-c num[단위], --byte num[단위] : 마지막 num 바이트를 보여준다. 
   b 512bytes 
   k 1024bytes 
-q, --quiet, --silent : 출력 전에 파일이름을 보여주지 않는다. 기본적으로 보여 주지 않는다. 
-v, verbose : 출력 전에 파일 이름을 보여준다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

tail은 문서의 마지막 라인부터 시작하여 지정한 라인까지 보여준다. 아무런 설정을 하지 않을 경우 10행을 출력한다. 파일의 앞 부분을 출력하는 head 명령의 반대로 생각하면 된다.
출력하고 싶은 부분에 대한 설정은 기본적으로 라인을 사용하지만 설정에 따라 용량, 캐릭터 개수로 구분되기도 한다.
보통 파일의 내용을 보여주는 명령어로는 cat, more, less등이 있지만 tail은 수 많은 파일의 내용 중 마지막 라인만을 보고 싶을 때 주로 이용한다. 대표적으로는 최근 로그 파일을 볼 때 많이 사용된다.
/var/log/message 로그를 tail 명령어로 보도록 하자. tail 명령어는 파일의 마지막 10줄을 보여준다. 알아보기 쉽게 파이프로 명령을 입력하였다. 참고로 nl 명령은 라인수를 보여주는 명령어이다.

# tail /var/log/messages | nl 

-5 옵션은 마지막라인부터 5줄을 보여준다. 위의 6번째부터 10번째 내용이 출력되는 것이다.

# tail -5 /var/log/messages | nl 

wc 명령으로 messages 로그의 라인수는 53501인 것을 확인 할 수 있다.

# wc /var/log/messages 
53501  815088  5839075  /var/log/messages 

53501의 라인에서 53000 라인부터 나머지 마지막까지 보고 싶은 경우, +53000 옵션을 사용한다. "+라인수"는 처음부터 제거 하고 싶은 행까지 정하는 기능을 한다.

# tail +53000 /var/log/messages 

[관련 명령어]
cat 파일을 첫 라인부터 아래방향으로 보여준다.
tac 파일을 마지막 라인부터 위 방향으로 보여준다.
head 파일의 첫 라인부터 10 행 또는 설정한 행만큼 보여준다.
2005/06/16 19:01 2005/06/16 19:01
터미널에 접속한 사용자와 대화를 나눌 수 있다.

사용법 : talk [사용자ID] [tty 이름] 
사용자 ID : talk로 접속할 계정 
tty 이름 : 같은 계정이라면 tty 이름을 정해준다. tty** 또는 pts/X로 지정해 준다. 
현재 시스템에 접속중인 계정 확인은 "finger"명령을 이용한다. 

talk는 터미널에서 사용하는 채팅 프로그램으로 생각하면 된다. 같은 시스템에 있는 사용자와의 대화나 다른 시스템 사용자와의 대화가 모두 가능하다. talk를 사용하기 위해서는 talk 서버가 동작하고 있어야한다.
talk로 같은 시스템에 접속한 다른 ID의 사용자와 접속하려면 "talk [사용자 ID]"의 서식으로 사용한다. 만약 같은 ID로 접속한 다른 터미널의 사용자와 talk하고 싶다면 다음과 같이 tty이름을 붙여준다.

# talk spooky pts/2 
[Waiting for your party to respond] 

talk 하고 싶은 사용자 터미널을 지정하면 상대방의 응답을 기다리게 된다.
상대편 창에는 다음의 메세지가 뜨면서 대화를 요청하고 있다는 것을 알려준다. 상대방도 위에서 한 것과 같이 나에게 접속해 주어야 한다.
2005/06/16 19:00 2005/06/16 19:00
여러 파일, 디렉토리를 하나의 파일로 묶는다.

사용법 : tar [옵션] 파일명1 파일명2 
파일명1 : 파일을 압축이나 묶음으로 만들어진 결과물로 나올 파일명을 지정한다. 
파일명2 : 압축이나 묶음으로 만들 파일들을 지정한다. 

-x, --extract, --get : 아카이브에서 파일을 푼다. 
-c, --create : 새로운 아카이브를 만든다. 
-v, --verbose : 처리되는 내용의 상세한 정보를 보여준다. 
-z --gzip, --ungzip : gzip으로 압축한다. ungzip으로 압축을 해제한다. 
-j -l --bzip : bzip2를 이용해 압축한다. 
-t, --list : 아카이브 되는 목록을 보여준다. 
-d, --diff, --compare : 아카이브와 파일 시스템간의 차이점을 비교한다. 
-f, --file=ARCHIVE : 옵션 다음의 이름 지정으로, 기본값으로 설정된 이름을 변경 할 수 있다. 
-r, --append : 아카이브 끝에 새로운 파일을 추가적으로 생성한다. 
-u, --update : 아카이브안의 것보다 새로운 파일만 추가한다. 
-A, --catenate : 아카이브에 tar 파일을 추가한다. 
-w, --interactive : 모든 행동에 대해 확인을 요구한다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

tar는 파일이나 디렉토리를 하나의 파일로 묶는 역할을 한다. 파일 백업이나 전송시 하나의 파일로 결합하는데 주로 쓰인다. 파일을 압축하는 것으로는 gzip이나 bzip2가 많이 쓰인다.
파일묶기
www_html 디렉토리를 backup.tar 파일로 묶어보자. tar로 파일을 묶을 경우, 대부분-cf옵션을 많이 쓰게된다. c는 새로운 tar파일을 만드는 역활을 하여 f는 아카이브명을 지정한다.

# tar -cf backup.tar www_html/ 

파일보기
-tvf 옵션을 쓰게 되면 tar로 묶인 파일을 실제로 푸는 것이 아니라, 파일의 내용을 볼수 있다.

# tar -tvf backup.tar | more 

묶음풀기
-xf 옵션은 backup.tar파일의 묶음을 풀게 된다. -xvf옵션을 사용한다면, 파일이 처리되는 내용이 상세히 보여주게 된다.

# tar -xf backup.tar 

묶음 압축하기
그럼다시 www_html 디렉토리 내용을 묶음과 동시에 gzip으로 압축할 수 있다. -cf옵션에 gzip의 z옵션을 추가하면 압축까지 할 수 있다. 파일명은 tar파일과 구별을 위해서 일반적으로 tar.gz.이나 tgz의 확장자를 사용한다. 만일 -v옵션까지 추가한다면 명령의 실행 처리 과정을 볼수 있게 된다.

# tar -cvf backup.tar.gz www_html/ 

-xvf 옵션으로 backup.tar.gz 파일을 압축 해제 할 수 있다. 물론 gzip -d 옵션으로 gzip 압축을 해제한 다음 tar -xf 옵션으로 tar묶음 해제를 할 수도 있다.

# tar -xzf backup.tar.gz 

묶여있는 tar파일은 u옵션을 통해 업데이트 할 수 있다. 즉 원본 파일이 변경되거나 파일 리스트를 추가할 때 마다 tar 파일로 새로 묶지 않고 변환된 파일만 업데이트 할 수 있다는 뜻이다. 첫번째 예제로 생성된 backup.tar를 업데이트 해보자

# mkdir /var/www/www_html/image 
# tar -uvf backup.tar www_html/ 
image/ 

image/ 디렉토리가 backup.tar 파일에 업데이트 된 것을 보여준다.
2005/06/16 18:57 2005/06/16 18:57
입력한 내용을 화면에 보여주는 동시에 파일에 저장이 된다.

사용법 : tee [옵션] 파일 
파일 : 저장 될 파일명 
-a, --append : 덮어쓰지 않고 주어진 파일에 표준입력을 추가한다. 
-i, --ignore-interrupts : 인터럽트 신호를 무시한다. 
--version : 버전 정보를 보여준다. 
--help : 도움말을 보여준다. 

tee 명령은 입력된 내용을 파일에 추가하는데 사용된다.
기존 같은 이름의 파일이 있을경우 tee 명령만 사용하면 파일을 덮어쓰게 되고 "-a" 옵션을 사용하면 기존 파일에 입력된 내용이 추가된다.
명령이나 파이프를 통해 나오는 출력을 받아 화면에 보여주거나 파일에 저장되지만 출력내용에 대해 아무 영향도 미치지 않는다.

# cat maillist 
spooky@linux.net 
aghost@linux.net 
god@linux.net 

# cat maillist | sort | tee maillist_sort 
aghost@linux.net 
god@linux.net 
spooky@linux.net 

maillist의 내용을 파이프로 받아 sort명령으로 정렬하고 이 결과를 tee를 통해 화면으로 출력하는 동시에 maillist_sort로 저장한다.
2005/06/16 18:56 2005/06/16 18:56
특정 레벨의 시스템 구성으로 설정한다.

사용법 : telinit runlevel 

telinit는 현재 레벨의 모든 프로세스를 종료하고 설정한 레벨수준에 설정된 프로세스를 시작한다. /etc/initab 파일의 설정에 따라 레벨을 수행한다.
X-window 시스템은 일반적으로 runlevel 5로 되어있다. 이 상태에서 xdum을 모두 종료하고 싶다면 telinit를 이용하여 runlev 3로 만들어준다.

# telinit 3 

시스템의 종료에 관계된 runlevel 6를 지정하면 시스템은 종료된다.

# telinit 6 
2005/06/16 18:54 2005/06/16 18:54
telnet을 통하여 호스트에 원격 접속 한다.

사용법 : telnet [옵션] [호스트 [포트]] 
호스트 : 접속할 호스트 인터넷 주소형식으로 사용된다. 
포트 : 접속에 이용할 호스트의 포트 지정되지 않으면 telnet 에서 사용되는 초기값이 사용된다.(23번) 
-l 사용자 ID : 사용자ID 텔넷서버 시스템에 접속을 할 계정을 지정한다. 
-a : 현재 사용자 이름을 ID로 사용하여 접속한다
.
telnet은 원격 터미널을 지원하는 클라이언트이다. 좀더 엄밀히 말하자면 원격 시스템을 지원하기 위한 명령어와 TCP/IP 기반의 프로토콜이다.
telnet은 접속하려는 서버의 IP 혹은 도메인으로 접속이 가능하다.

# telnet linux.net 

USER ID를 지정하면 접속시 따로 login을 묻지 않고 해당 ID의 패스워드 입력으로 로그인 할수 있다. "-a" 옵션을 사용하면 현재 사용중인 계정으로 접속한다.

# telnet -l spooky linux.net 

접속 시도할 시스템의 포트를 지정할 수 있다. telnet 서비스는 일반적으로 23을 사용한다. 그러나 서버의 보안이나 아니면 관리자의 특별한 이유로 인하여 telnet의 서비스 포트를 변경할 경우가 있다. 이런 경우 접속 포트를 지정해 준다.

# telnet linux.net 5050 

서비스하는 포트에 직접 접속하여 서비스 여부를 알 수 있다. 웹서비스 여부를 알아보자 Connected to 메시지로 웹서비스(80)포트가 열린 것을 알 수 있다.

# telnet linux.net 80 
Tying 168.126.61.50... 
Connected to linux.net(168.126.61.50). 
Escape character is '^]'.

telnet 사용 명령어
접속중에도 ctrl+]로 명령모드로 들어간다.
------------------------------------------------
logout : 사용자가 로그 아웃하여 접속을 끊는다.
display : 인수를 출력한다.
mode : 문장이나 문자의 모드를 변경한다. "mode ?"로 도움말을 볼 수 있다.
open : 호스트나 IP를 적어 열고 싶은 사이트나 호스트를 정한다.
quit : 텔넷을 종료한다.
send : 특수 문자를 보낸다. "send ?"로 도움말을 볼 수 있다.
set : 인수를 설정한다. "set ?"로 도움말을 볼 수 있다.
unset : 인수 설정을 해제한다. "unset ?"로 도움말을 볼 수 있다.
status : 텔넷 상태를 출력한다.
toggle : 인수를 고정한다. "toggle ?"로 도움말을 볼 수 있다.
slc : 특수문자의 상태를 변경한다. "slc ?"로 도움말을 볼 수 있다.
z : 텔넷을 정지한다.
! : 셀 명령어를 사용할수 있다
environ : 확경변수를 변경한다. "environ ?"로 도움말을 볼 수 있다.
? : 도움말을 보여준다.
2005/06/16 18:53 2005/06/16 18:53