불펌 죄송 ㅡ.ㅜ
여기서 온 자료입니다.. 잘쓸께요..
2 원격 작업
3 파일 시스템
4 디렉토리 검색
5 압축
6 파일 찾기
7 CD 관련 작업
8 RPM
9 문자열 편집
10 interactive
1 일반 명령 #
apropos word
주어진 단어 word와 연관된 모든 man 페이지의 요소들을 보여준다. 특히 프로그래머에게 유용하다.
# apropos socket
AF_LOCAL [unix] (7) - Sockets for local interprocess communication
AF_UNIX [unix] (7) - Sockets for local interprocess communication
IO::Socket (3pm) - Object interface to socket communications
IO::Socket::INET (3pm) - Object interface for AF_INET domain sockets
IO::Socket::UNIX (3pm) - Object interface for AF_UNIX domain sockets
NETLINK_ROUTE [rtnetlink] (7) - Linux IPv4 routing socket
PF_LOCAL [unix] (7) - Sockets for local interprocess communication
PF_UNIX [unix] (7) - Sockets for local interprocess communication
SOCK_RAW [raw] (7) - Linux IPv4 raw sockets
....
gpg -c file
주어진 file을 암호화 한다. 암호화된 파일은 file.gpg로 저장된다.
gpg file.gpg
암호화된 파일 file.gpg를 복호화 한다.
cal -3
이번달을 기준으로 지난달과 다음달을 출력한다.
grep --color word /usr/share/dict/words
grep는 파일에서 문자열 word를 포함한 라인을 찾아내서 출력한다. 그러나 여러개의 출력이 한번에 이루어질 경우 출력결과가 혼란스러울 수 있다. --color 옵션을 주면 찾아낸 문자열에 대해서 쉽게 확인 할 수 있도록 색을 줘서 출력한다.
nice command
명령을 낮은 우선순위로 실행한다.
echo "wget url" | at 01:00
새벽한시에 wget url을 수행한다. wget은 특정 페이지를 다운로드 받기 위해서 사용한다. 지정된 시간에 어떤 일을 수행하도록 하기 위한 다양한 목적으로 응용가능하다.
# echo "wget http://www.joinc.co.kr/index.php | at 01:"
echo "mail -s '중요한 약속 있음' P@joinc.co.kr < /dev/null" | at 14:00
14시에 주의를 환기시키는 메일을 발송한다.
echo "(321-123)/123" | bc -l
간단한 수치연산
watch -n1 "cat /proc/interrupts"
1초 간격으로 주어진 파일의 변화된 내용을 화면에 연속적으로 출력한다.
time command
command에 대한 실행시간을 체크한다. 간단한 프로그램 성능테스트를 위한 용도로 사용할 수 있다.
dd bs=1M if=/dev/hda | gzip | ssh user@remote dd of=hda.gz
하드디스크를 압축해서 원격지에 저장한다.
alias hd='od -Ax -tx1z -v'
파일의 내용을 덤프뜨고 싶을 때 유용하게 사용할 수 있다. 16진수 데이터와 ASCII내용을 한화면에 출력시켜준다.
touch -c -t 0304050607 file
파일의 시간을 설정한다(?YYMMDDhhmm).
du -sh file dir
파일과 디렉토리의 디스크 사용량을 출력한다.
# du -sh root
870M root
pstree -p
프로세스의 상속결과를 트리형태로 출력한다. -p 옵션이 붙은경우 각 프로세스의 PID도 함께 출력한다.
2 원격 작업 #
ncftpput -u userid -p password hostname /path/file sourcefile
ftp 클라이언트인 ncftp에서 제공하는 커멘드라인 클라이언트 프로그램으로 스크립트 형태로 사용할 수 있게 되어 있다. sourcefile을 hostname 서버의 /path/file로 복사한다. 자동백업등을 ftp를 통해서 제어하고 싶을 때 유용하게 사용할 수 있다.
ncftpget -u userid -p password hostname localpath /path/file
hostname의 ftp서버에 접근해서 /path/file을 localpath로 복사한다. ncftpput와 함께 유용하게 사용할 수 있다.
wget ftp://userid:password@hostname/path/file
원격 호스트 hostname에 userid와 password로 접근해서 /path/file을 가져온다.
3 파일 시스템 #
df -h
남은 파일 공간
df -i
남는 inode
du -hs
디렉토리의 사용량을 출력한다.
fdisk -l
디스크 파티션의 크기를 출력
4 디렉토리 검색 #
cd -
이전의 작업 디렉토리로 되돌아간다.
cd
홈 디렉토리로 이동한다.
cd dir && command
dir로 이동한후 명령을 실행시키고 자동적으로 현재 디렉토리로 이동한다.
pushd .
현재 디렉토리를 스택에 저장한다. popd를 이용해서 스택에 저장된 디렉토리로 이동이 가능하다. 디렉토리를 여기저기 이동해야 할때 편하게 사용할 수 있다.
5 압축 #
tar c dir | bzip2 > dir.tar.bz2
디렉토리를 tar로 묶은후 bz2로 압축한다.
bzip2 -dc dir.tar.bz2 | tar x
위의 명령으로 압축된 파일을 푼다.
find dir -name "*.png" | xargs tar rf dir.tar; bzip2 dir.tar
.png를 찾은 후 압축한다.
cpio -idmv < file.cpio
cpio로 묶인 파일을 푼다.
6 파일 찾기 #
alias l='ls -l --color=auto'
디렉토리 파일을 색으로 출력
ls -rtl
파일을 날짜순으로 정렬해서 출력
ls -rtS
파일을 크기순으로 정렬해서 출력
find -name "*.?ch" | xargs grep -E "search string"
확장자기 c,h인 모든 파일을 찾아서 "search string"가 있는지 확인한다.
locate "file*.txt"
find -type f | xargs grep -E "search string"
하위 디렉토리를 포함한 모든 일반 파일에서 "search string"를 찾는다.
find -type f -maxdepth 1 | xargs grep -E "search string"
현재 디렉토리에서 "search string"를 포함한 일반 파일을 찾는다.
7 CD 관련 작업 #
dd db=1M if=/dev/cdrom | gzip > cdrom.is.gz
mkisofs -r dir | gzip > cdrom.iso.gz
디렉토리의 내용을 cdrom 이미지로 작성
gzip -dc cdrom.iso.gz | cdrecord dev=0,0,0 -*
작성된 cdrom 이미지를 이용해서 cdrom 굽기
cdrecord dev=0,0,0 -audio *.wav
wav파일로 부터 오디오 CD만들기
8 RPM #
rpm -ivh packages.rpm
rpm패키지를 설치하기
rpm -Uvh packages.rpm
rpm패키지를 업그레이드 하기
rpm -e package
rpm패키지를 지우기
rpm -e package
설치된 package의 버젼을 알아오기
rpm -qi package
설치된 package의 자세한 정보 알아오기
rpm -qf /path/file
/path/file이 어떤 rpm패키지에 포함되어 있는지 확인
rpm -q --requires package
패키지가 필요로 하는 파일혹은 패키지들
rpm -qa --queryformat "%10{SIZE} %{NAME}
" | sort -k1,1n
모든 페키지를 크기로 정렬해서 출력한다.
rpm -qa | grep mplayer
설치한 패키지 중에 mplayer이 있는지 확인
9 문자열 편집 #
sed 's/string1/string2/g' file
file에서 모든 string1을 string2로 치환한다.
tr -d '' < file
파일에서 ''문자를 제거한다. 도스에서 만들어진 텍스트 파일을 unix포멧으로 변경할 때 사용할 수 있다.
10 interactive #
mc
ftp 클라이언트로도 사용가능한 강력한 파일 메니저
script
터미널의 상황을 파일로 저장한다. vmstat와 같은 내용을 파일로 저장하기 위해서 사용할 수 있다.
# script
# vmstat 2
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 43116 20696 289776 0 0 144 29 1093 967 7 2 85 6
0 0 0 43116 20704 289776 0 0 0 6 1048 602 0 0 100 1
0 0 0 43116 20704 289776 0 0 0 0 1044 598 0 0 100 0
작업이 끝났다면 Ctrl+D키를 누르면 된다. 그러면 typescript라는 파일이름으로 지금까지 터미널 작업내역이 저장된다.ls 색 변경
파일의 종류나 디렉토리 등 ls 명령어를 쳤을 때 색깔이 나오도록 지정하고 싶을 경우
ls --color=auto
해주시면 됩니다.
만약 지정된 색깔이 맘에 안들어 바꾸고 싶을 경우
LS_COLOR이란 환경 변수를 사용하면 됩니다.
형식은 아래와 같습니다.
export LS_COLORS='xx=aa'
xx에는 색깔을 바꾸고 싶은 대상을 써줍니다.
no 파일 이름이 아닌 일반 텍스트
fi 일반 파일
di 경로
ln 심블릭 링크
pi FIFO(파이프)
so 소켓
bd 블럭 장치
cd 캐릭터 장치
ex 실행 파일
등등...
만약 확장자 별로 색깔을 지정하고 싶을 경우에는 *.filetype을 xx에 써주시면 됩니다.
aa에 바꾸고 싶은 색을 써주시면 됩니다.
0 초기 색깔로 다시 돌린다.
1 강조색
4 밑줄
5 깜빡이는 글자.
30 까만색 전경
31 빨강 전경
32 녹색 전경
33 노랑(또는 갈색) 전경
34 파랑 전경
35 보라 전경
36 청록색 전경
37 흰색(또는 회색) 전경
40 까만색 배경
41 빨강 배경
42 녹색 배경
43 노랭(또는 갈색) 배경
44 파랑 배경
45 보라 배경
46 청록색 배경
47 흰색(또는 회색) 배경
예를 들어 디렉토리의 색을 굵은 청록색으로 바꾸고 싶을 경우
export LS_COLOR='di=01;36'
이런식으로 써주시면 됩니다. ^^
하지만 초보자 및 일반사용자들은 불편할 것입니다.
리눅스에서 한영키와 한자키 등을 정의할 수 있도록 해보겠습니다.
(참고: 한컴리눅스 OS는 기본적으로 아래 패치가 적용되어 있습니다.)
먼저 root계정으로 로그인하신후
한텀에서
# xev
엔터 하시면 키정의를 하실수 있습니다.
한영키나 한자키, Back Space , Del키등을 누르시면
keycode 121 이런 형식으로 보이실겁니다.
확인된 키코드(keycode)값을 /etc/X11/Xmodmap 파일을 열어서 정의해 주시면 됩니다.
! i386 and alpha !표시는 주석표시
keycode 22 = BackSpace
keycode 107 = Delete
keycode 121 = Hangul_Hanja
keycode 122 = Hangul
저장후 바로 적용하기 위해 다음과 같이 입력합니다.
# xmodmap /etc/X11/Xmodmap
또는 X윈도우(Ctrl+Alt+←)를 다시 시작하면 바로 적용됩니다.
홈디렉토리 바꾸기
/etc/passwd 파일을 여시면
apple:x:501:501::/home/apple:/bin/bash
위와 같은 줄이 나올겁니다.
여기선 사용자가 apple 입니다.
예를 들어 홈디렉토리를 /apple
이라고 루트 밑에 바로 두시려면
apple:x:501:501::/apple:/bin/bash
이렇게 바로 수정하시면 됩니다.
그러면 다음부터 /apple 디렉토리로 로그인 됩니다.
(하드를 장비에 설치하고 CMOS setup 설정
핫스왓 방식이면 장착과 동시에 운영체제에서 인식한다.)
2. 새로운 디스크에 파티션을 만든다.
[root@ ~]# fdisk /dev/sdb
m을 입력하면 기본적인 사용 방법 확인
: p - 정보
: n - 만들기
3. 새로운 디스크 포맷하기.( ext2 or ext3 file system 생성) 방법은 여러가지가 있다.
[root@~]mkfs -t ext2 /dev/sdc
[root@ ~]# mkfs.ext2 /dev/sdb
[root@ ~]# mkfs.ext3 /dev/sdb
4. 새로운 마운트 포인트 생성한다.
[root@ ~]# mkdir /home2
Linux/Unix에서는 모든 저장장치는 mount를 해야 사용할 수 있다.
물리적으로 나누어진 HDD이고 slave에 장착되어 있다면 hdb로 인식이 되며,
그 안에 있는 partition들은 hdb1, hdb2, ... 와 같이 정해진다.
hdb에 있는 data를 보려면 mount명령을 사용한다
예를들어 hdb1을 /mnt/mydata 라는 directory로 마운트 하려면,
# mount /dev/hdb1 /mnt/mydata
5. 마운트시킨다.
[root@ ~]# mount -t ext2 /dev/sdb /home2
# 새하드디스크로 이미 설치된 디스크의 /usr 의 사이즈를 늘이고 싶을때
새 하드디스크를 /home2로 마운트 하고난 후 /usr내의 한 곳에 심볼릭 링크
$cd /usr
$ln -s /home2 home2
해주면 /usr내에 home2이란 링크가 생긴다.
이제 모든 프로그램을 /usr/home2에 설치하면된다
6. 부팅시 자동으로 마운트 하도록 /etc/fstab을 환경에 맞게 설정한다.
* 파티션생성
* 파일시스템생성
* 마운트포인트생성
1. 서버에 하드 추가 후 OS 부팅시 하드가 올라오는지 확인한다.
2. vi /etc/fstab을 열어 ext2, ext3인지 판단..
3. fdisk로 파티션을 잡는다.
예)
3-1. fdisk /dev/hdb (IDE 하드인 경우), fdisk /dev/sdb (SCSI 하드인 경우)
3-2. p로 기존 파티션이 잡혀있는지 확인한다.
3-3. d로 기존 파티션이 잡혀있으면 삭제후 p로 확인한다.
3-4. n으로 파티션 추가- > p(primary로) -> 1 -> 크기지정 default 1 입력(Full로 잡을시, 디폴트가 Full) -> 엔터
3-5. w로 쓴다.
4. format
ext3 : mke2fs -j /dev/hdb
ext2 : mkfs -t ext2 /dev/hdb
5. 마운트할 디렉토리 생성
/에서 mkdir /home2 등등
6. mount
ext3 : mount -t ext3 /dev/hdb /home2
ext2 : mount -t ext2 /dev/hdb /home2
7. fstab 수정 (vi /etc/fstab)
예)
LABEL=/home /home ext3 defaults 1 2 (를 카피하여 페이스트 하여 아래와 같이 편집)
-> /dev/hdb /home2 ext3 defaults 1 2 (앞 두부분만 수정)
8. df -h로 마운트 확인
9. 재부팅후 이상없이 올라온후 마운트 되었는지 확인
proftpd-1.2.2-1hl <== 이렇게 나옵니다. (다른 버전이 설치되어 있을 수도 있습니다.)
root]# rpm -e proftpd-1.2.2-1hl <== rpm 패키지를 삭제합니다.
[RPM 패키지 다운로드 및 설치]
http://proftpd.oops.org/ <== 요 주소로 접속하여
proftpd-1.2.9-1kr.i686.rpm <== 요 파일을 /usr/local 밑에 다운 받습니다.
root]# cd /usr/local <== 요렇게 하면 디렉토리를 변경합니다.
local]# rpm -Uvh proftpd-1.2.9-1kr.i686.rpm <== 요렇게 설치합니다.
의존성 충돌로 인해 설치가 안되면 강제설치합니다.
<강제설치>
rpm -Uvh --force proftpd-1.2.9-1kr.i686.rpm
설치한 다음
local]# vi /etc/proftpd/proftpd.conf <== 요렇게 하면 파일이 하나 열리는데
ServerType standalone <== 요 부분을
ServerType inetd <== 이렇게 바꿔줍니다.
:wq! <== 저장하고 나옵니다.
local]# vi /etc/xinetd.d/proftpd-inetd <== 요렇게 하면 파일이 하나 열리는데
# default: off
# description: ProFTPD is an enhanced FTP server with a focus
# toward simplicity, security, and ease of
# configuration.
service ftp
{
disable = yes <== 요 부분을 no로 바꿔줍니다.
flags = REUSE
protocol = tcp
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/in.proftpd
log_on_success = HOST PID
log_on_failure = HOST RECORD
}
:wq! <== 저장하고 나옵니다.
local]# /etc/rc.d/init.d/xinetd restart 하면 데몬을 재시작 합니다.
xinetd 를 정지함: [ 확인 ]
xinetd (을)를 시작합니다: [ 확인 ]
그 다음에
local]# ftp localhost <== 요렇게 하면 로그인 하라는 화면이 나타납니다.
Connected to 호스트이름.
220 PorFTPd Account Server ready ..
500 AUTH not understood. <== 요건 왜 그런지 모르겠어요 아시는 분은 꼭 좀 연락해 주세요.(godrnrl@hitel.net)
500 AUTH not understood.
KERBEROS_V4 rejected as an authentication type <== 요것두 모르겠어요.
Name (localhost:root): 아뒤
331 Password required for 아뒤.
Password:패스워드
230-
#############################################################
# #
# ProFTPD Korea User Groups #
# http://proftpd.oops.org #
# #
# This file is printed when account ftp user login #
# from /etc/proftpd/welcome.msg #
# #
#############################################################
230 User 아뒤 logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
이렇게 나오면 끝.
-------------------------------------------------------------
각 FTP 계정상단으로 이동 못하게 하려면...
=======================================
(1) proftp 설정파일을 수정
vi /etc/proftpd/proftpd.conf
파일을 열어서
DefaultRoot ~
라는 부분의 주석표시(#)를 없애준다. (42번째줄)
--> 각 계정상단으로 이동 못하게 하는 것임!
(2) 슈퍼데몬을 restart 한다
/etc/rc.d/init.d/xinetd restart
-------------------------------------------------------------
계정의 ssh 와 telnet 접속을 막으려면..... (FTP만 가능하게)
====================================================
/etc/passwd 파일의 계정 내용중 마직막 부분이 Shell설정 부분입니다.
test:x:500:500::/home/test:/bin/bash <-- /bin/bash 부분입니다.
bash부분을 변경해 주면 ftp계정은 열어주되 Shell서비스는 막을수가 있습니다.
!!! 주의 !!!
/bin/false 나 /bin/true 로 하시면 ftp서비스까지 하실수가 없습니다.
1단계
======
cat /etc/shells
/bin/bash2
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
쉘이 등록되어 있는 곳입니다.
이곳에 임의로 하나를 등록 합니다.
예를 들어 /bin/nosh 이라고 아래부분에 추가한후
2단계
=====
nosh 쉘파일을 임으로 만듭니다
cd /bin
touch nosh
chmod 777 nosh
( 퍼미션 777 )
3단계
=====
그리고 /etc/passwd 쪽에서 쉘부분의 세팅만 바꿔 주면 됩니다.
test:x:500:500::/home/test:/bin/nosh <-- 요깁니다.
'OS > linux' 카테고리의 다른 글
Linux Command (0) | 2008.07.18 |
---|---|
쉘 스크립트 명령어 사용기 (0) | 2008.05.27 |
Linux에 Oracle, PHP 및 Apache 설치 (0) | 2008.05.23 |
Linux 및 Windows 환경을 위한 PHP, Oracle 10g Instant Client 설치 (0) | 2008.05.23 |
[scrap] 리눅스 IP 변경 (0) | 2008.04.28 |
[scrap] CVS이것만 알면 프로젝트 오케이~! (0) | 2008.04.28 |
[scrap] 시스템 관리자용 명령어 모음3 - 정보 및 통계 (0) | 2008.04.28 |
[scrap] 리눅스에서 ftp 설치/설정 (0) | 2008.04.28 |
[scrap] 리눅스에서 삼바설치 (0) | 2008.04.28 |
[scrap] Fedora 혹은 Redhat Linux 상에서 CVS 구축하기 (0) | 2008.04.28 |