~]# lokkit // (usr/sbin/lokkit)
~]# iptables -F // (방화벽 해제)<네트워크 설정 명령>
~]# ntsysv // 서비스 설정 명령
~]# pathping <IP 주소> // tracert 기능에 네트워크 트래픽 기능 추가
~]# vi /etc/sysconfig/network // 기본게이트웨이 설정파일(호스트네임,게이트웨이)
~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 // 호스트 설정파일 (IP주소, 넷마스크)
~]# vi /etc/resolv.conf // 기본 DNS 설정파일
~]# ifconfig ehth0 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255 up
// (ifconfig 명령어로 IP 셋팅하기)
~]# /etc/rc.d/init.d/network restart 또는 service network restart
// 네트워크 설정변경 적용
~]# netconfig // 네트워크설정(반드시 수퍼유저{root}권한으로 실행)
~]# vi /etc/hosts // 호스트명 변경
< CD-ROM 마운트 하기 >
~]# mount -t auto(또는iso9660) /dev/cdrom(또는hdc) /media/cdrom/
~]# df -T // cd-rom 마운트 확인
~]# cd /media/cdrom/Centos/RPMS/
RPMS]# ls -l | grep snmp // 설치할 파일(예, snmp) 확인
~]# umount /media/cdrom/ // 마운트 해제
~]# vi /etc/fstab // 자동마운트 시킬때
< RPM 사용법>
~]# rpm -Uvh <패키지 파일> // 설치
~]# rpm -e <패키지 파일> // 삭제
~]# rpm -qa <패키지 이름> // 시스템에 패키지가 설치되었는지 확인
< yum 사용법>
~]# yum -y install <패키지 이름>
~]# yum check-update // 업데이트 가능한 목록보기
~]# yum update <패키지 이름>
~]# yum remove <패키지 이름>
~]# yum info <패키지 이름> // 정보확인
~]# yum localinstall <패키지 이름>
// 로컬에서 설치 (현재디렉토리에 있는 rpm파일을 설치)
// yum 설치시 다운로드 속도가 느릴때”Ctrl + C”를 눌러서 다른 미러 사이트에 접속해 서 새로 다운로드 한다.
< ping 명령에 반응 막기 > – /etc/sysctl.conf
~]# sysctl -a // 설정이 가능한 파라미터 값들을 확인
~]# sysctl -w net.ipv4.icmp_echo_ignore_all=1
// 값이 “0”이면 응답하고 , “1”이면 응답하지 않는다.
~]# sysctl -p // 설정한 뒤에 이명령으로 설정사항을 바로 적용
< 사용자 접속제한하기> – 계정사용자의 경우
/etc/passwd에 있는 사용자 패스워드 필드에 *표시 (로그인X)
예) ~]# vi /etc/passwd
testuser : * : 10877 : 0 : 99999 : 7 : : :
다시 접속할 경우 ” ~]# passwd testuser “명령으로 패스워드 입력
< 모든 사용자에 대한 일시 접속금지> – 시스템 점검시
~]# touch /etc/nologin
// “/etc”에 ” nologin”이란 파일을 만들어 줌 다시 접속허용할 경우 ” nologin ” 파일을 지움
< 그룹별 계정 생성법>
~]# useradd -D // 사용자 계정 생성시에 적용되는 설정내용 확인
~]# mkdir /home/groupone
~]# useradd -D -b /home/groupone // 기본 홈디렉토리 변경
<시스템 시작과 종료>
“shutdown -h now” 또는 “halt” 또는 “init 0” // 시스템 종료 명령
“shutdown -r now” 또는 “reboot” 또는 “init 6” // 시스템 재부팅
shutdown -h +10m // 10분 후에 종료 ( h : halt )
shutdown -r 22:00 // 오후 10시에 재가동 ( r : reboot )
shutdown -c // 진행중인 shutdown을 취소 ( c : cancel )
shutdown -k now // 현재 접속된 사용자에게 종료된다는 메시지만 보내고, 실제로 종료하지는 않음
~]# cat /etc/inittab // 렌레벨이 정의되어 있는 파일
~]# man <명령어> // 명령어에대한 도움말
~]# cp abc.txt cba.txt // abc.txt 파일을 cba.txt 파일로 복사
~]# cp -r abc cba // 디렉토리 복사
~]# touch abc.txt // 파일이 없을 경우엔 abc.txt 라는 빈 파일을 생성
(abc.txt 파일이 있을 경우엔 파일의 수정 시간을 현재 시각으로 변경함)
~]# mv aaa bbb ccc ddd // aaa,bbb,ccc 파일을 ddd 디렉토리로 이동
~]# mv abc.txt cba.txt // 이름 변경
<사용자와 그룹>
~]# adduser -d <홈 디렉토리> <사용자명> // 별도로 사용자의 홈디렉토리를 지정
~]# adduser -u <사용자 id> <사용자명>
// 사용자 id(예,501)를 순차 번호가 아닌 임의로 지정
// “사용자 id”는 “/etc/passwd” 파일을 “그룹 id”는 “/etc/group”파일을 열어보면 확인할 수 있다.
~]# adduser -g <그룹명> <사용자명> 또는 adduser <사용자명> -g <그룹명>
// 별도의 그룹을 지정
~]# adduser -s <셸 파일명> <사용자명>
// /bin/bash 외의 별도의 셸을 지정
~]# adduser -c // 설명
※.사용자 생성시 별도의 옵션 없이 “adduser <사용자명>”으로 하면 사용자 이름과 동일한 그룹이 자동으로 생김
( /etc/passwd : 사용자가 등록, /etc/group : 그룹이 등록 )
~]# su – // 수퍼유저(root)의 권한을 얻는 명령
<파일과 디렉토리의 소유와 허가권>
rwx r– r– // 첫번째 “rwx”는 소유자(user) , 두번째 “r–“는 그룹(group) , 세번째 “r–“는 그외의 사용자(other)의 파일 접근 권한을 의미한다.
~]# chmod 777 install.log // install.log라는 파일의 허가권을 변경하는 명령
~]# chown <새로운 사용자명>[.<새로운 그룹명>] <파일명>
// 파일 소유권 변경 명령
~]# chgrp <새로운 소유그룹> <변경할파일(디렉토리)>
예) ~]# chown root.root install.log
// install.log파일의 소유자,소유그룹을 root로 바꾸라는 의미
< 하드 링크(Hard Link)와 소프트 링크(Soft Link) >
~]# ln <링크 대상 파일명> <링크 파일명>
// 하드 링크 생성 명령 (원본 파일이 없어져도 이상이 없음)
~]# ln -s <링크 대상 파일명> <링크 파일명>
// 소프트 링크 생성 명령 (원본 파일이 없어지면 연결 끊어짐)
~]# mkdir linktest // 링크를 테스트할 디렉토리를 만든다.
~]# cd linktest
linktest]# vi basetest // 아래 내용 입력
파일 링크를 테스트하기 위한 원본 파일입니다..
linktest]# ln basetest hardlink // 하드 링크 연결
linktest]# ln -s basetest symbollink // 소프트 링크 연결
linktest]# ls -il // inode를 확인
linktest]# mv basetest ../ // 원본 파일을 다른 곳으로 이동
linktest]# cat hardlink 와 cat symbollink // 하드 링크와 심볼릭 링크를 각각 확인
< 파일 압축과 파일 묶기>
~]# tar cvf xinetd.tar /etc/xinetd.d/ // /etc/xinetd.d/를 xinetd.tar로 생성(묶음)
~]# tar cvfz xinetd.tar.gz /etc/xinetd.d/ // 생성 + gzip 압축
~]# tar cvfj xinetd.tar.bz2 /etc/xinetd.d/ // 생성 + bzip2 압축
~]# tar tvf xinetd.tar // 묶음의 경로 확인
~]# tar xvf xinetd.tar // 묶음 파일 풀기
~]# tar xvfz xinetd.tar.gz // gzip 압축 해제 + tar 풀기
~]# tar xvfj xinetd.tar.bz2 // bzip2 압축 해제 + tar 풀기
~]# gzip <파일명> // “파일명”을 압축파일인 “<파일명>.gz”으로 만들어줌
~]# gunzip <파일명>.gz 또는 gzip -d <파일명>.gz // 확장명 gz의 압축을 풀어줌
~]# bzip2 <파일명> // “파일명”을 압축 파일인 “파일명.bz2″으로 만들어줌
~]# bunzip2 <파일명>.bz2 또는 bzip2 -d <파일명>.bz2
// 확장명 bz2의 압축을 풀어줌
<파일 위치 검색>
find [경로] [옵션] [조건] [action] // [옵션] : -name, -user(소유자), -newer(전,후), -perm(허가권)
{사용 예} // [action] : -print(GNU는 디폴트, 유닉스는 필수 입력), -exec
~]# find / -name .searchfile -exec ls -l {} \ ;
// 특정파일을 모두 찾아서 각각 “ls -l”하여 리스트 확인
~]# find /etc -name “*.conf” | more
// “/etc” 디렉토리 하위에 확장명이 “.conf”인 파일 검색
~]# find /home -user fedora
// “/home” 디렉토리 하위에 소유자가 “fedora”인 파일 검색
~]# find ~ -perm 644
// 현재 사용자의 홈 디렉토리 하위에 허가권이 644인 파일 검색
~]# which <실행 명령어>
// PATH에 설정된 디렉토리만 검색 , 절대 경로를 포함한 위치 검색
~]# whereis <실행 명령어> // 실행 파일 및 소스, man, 페이지 파일까지 검색
~]# local <파일 이름>
// 매우 빠르고 유용하지만 새로 설치된 파일들이 등록되어 있지 않을 때는 찾을 수 없음
<파이프,필터,리다이렉션>
1. 파이프(pipe) : 두 프로그램을 연결해주는 연결 통로의 의미, “|”문자를 사용함(\키를 shift와 함께 누른 글자)
예) ~]# ls -l /etc | more
// 그냥 “ls -l /etc” 명령을 입력하면 페이지가 넘어가므로 한 개 페이지씩 보여줌
2. 필터(filter) : 필요한 것만 걸러주는 명령어, grep,tail,wc,sort,awk,sed 등 주로 파이프와 같이 사용된다.
예) ~]# ps -ef | grep bash // “bash”라는 글자가 들어간 프로세스만 출력
~]# rpm -qa | grep bind
// 설치된 패키지 중에서 “bind”라는 글자가 들어간 패키지를 출력
3. 리다이렉션(redirection) : 표준 입출력의 방향을 바꿔줌
예) ~]# ls -l > aa.lst
// “ls -l”의 결과를 화면에 출력하지 말고, aa.lst라는 파일에 쓰도록 한다.
단, aa.lst 파일이 기존에 있으면 덮어 쓴다(overwrite).
~]# ls -l >> aa.lst
// 위와 동일. 단, aa.lst 파일이 기존에 있으면 기존의 내용에 이어서 씀(append)
~]# sort < aa.lst // aa.lst 파일을 정렬해서 화면에 출력한다.
~]# sort < aa.lst > bb.lst // aa.lst 파일을 정렬해서, bb.lst 파일에 쓴다.
<프로세스,데몬,서비스>
~]# ps -ef | grep <프로세스 이름> // 현재 프로세스의 상태를 확인하는 명령
~]# kill -9 <프로세스 번호>
// 프로세스를 강제로 종료하는 명령, “-9” 옵션과 함께 사용하면 무조건 종료 응답을
하지 않고 무한 루프를 도는 프로세스는 이 명령으로 강제 종료
~]# pstree // 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여준다.
~]# vmstat 3 5 // 프로세스,메모리,페이지 상황을 3초마다 5개씩 알려준다.
1. 무한 루프를 도는 프로세스 중지 방법
~]# yes > /dev/null // 무한 루프를 도는 단순한 프로세스 생성
~]# ps -ef | grep yes // 프로세스 번호 확인
~]# kill -9 <프로세스 번호>
// 프로세스 종료 ( 또한, 프로세스를 그냥 종료하려면 “Ctrl+C” )
2. 포그라운드 프로세스 → 백그라운드 프로세스 → 포그라운드 프로세스로 프로세스의 상황
바꾸기
~]# yes > /dev/null
// 포그라운드 프로세스 생성하고 “Ctrl+Z”를 눌러 프로세스를 일시 중지 시킨다
~]# bg // 잠시 중지된 프로세스를 백그라운드 프로세스로 계속 실행
~]# jobs // 현재 백그라운드로 가동중인 작업을 확인
[1]+Running yes >/dev/null & // 맨앞에 나오는 [1]이 <작업 번호>
~]# fg <작업 번호> // 다시 포그라운드 프로세스로 만든다
~]# gedit & // gedit 를 실행한 터미널을 계속 사용할 수 있도록 백그라운드로 실행
// firefox,gedit 등은 별도의 창이 가동되어 실행하는 것이므로 백그라운드로 실행해도
아무 문제가 없다 하지만, vi 에디터와 같이 현재의 터미널에서 입출력을 해야 하는
프로세스는 백그라운드 실행하면 의미가 없다.
<서버 데몬의 유형>
데몬(daemon) = 서비스 = 서버 프로세스
1. Standalone 타입의 데몬 :
– 시스템에 독자적으로 프로세스가 구동되어 서비스를 제공하는 데몬
– 웹 서버(httpd), DB 서버(mysqld), 센드메일 서버(sendmail), 네임 서버, samba등
– 실행 및 종료는 대개 “service <데몬이름> start/stop/restart” 로 사용된다.
– 실행 스크립트 파일은 “/etc/init.d/(서비스)” 디렉토리에 주로 들어 있다.
단, 이 디렉토리에 있다고 전부 데몬이라고 얘기하지는 않는다.
– 메모리에 항상 구동되어야 하기 때문에 자주 호출되는 서비스가 사용하기에 적당함
2. inetd 타입(또는 xinetd 타입)의 데몬 – 수퍼데몬
– 평상시에는 구동되지 않다가, 서비스를 요청할 때만 구동시켜 주는 방식
– 데몬 설정 파일은 “/etc/xinetd.d/ 디렉토리에 들어 있다.
– 내부 설정 파일을 수정하면 반드시, “service xinetd restart” 명령으로 재시작해야 한다.
– xinetd 데몬이 서비스하는 포트는 “/etc/services” 파일에 설정이 되어 있다.
<root 사용자의 비밀번호를 잊어버려서 로그인을 하지 못할 경우 해결 방법>
1. 재부팅을 하여 아래 내용의 화면이 나오면 아무키나 누른다.
Booting Fedora Core (2.6.11-1.1369_FC4) in 3 seconds. . . . .
2. GRUB의 메뉴 화면이 나타난다.
① Fedora Core (2.6.11-1.1369_FC4
// 여기에 커서를 두고 “e” 키를 누른다. ( e : Edit )
② kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet
// 커서를 두고 “e”키
③ grup edit> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet 1
// “1”을 입력 Enter
④ 2번 화면에 “1” 이 추가 되어 있을 것이다. “b”를 눌러 부팅한다.
3. 부팅은 런레벨1(싱글모드)로 부팅이 될 것이다.
// 그냥 root 사용자로 로그인이 자동으로 된다.
sh-3.00# whoami // 현재 로그인된 사용자 확인
sh-3.00# passwd // 자신(root)의 비밀번호 변경
sh-3.00# reboot
// 재부팅 후에 변경한 root의 비밀번호로 정상적으로 로그인이 될 것이다.
<GRUB 부트 로더에 암호 설정 방법> – /etc/grub.conf (설정파일)
~]# grub
grub> md5crypt
Password : **** // 사용할 암호 입력
Encrypted : $1$ndrkx0$UUvidooZmqnuGfKjBxU4G0
// 다음과 같이 암호화된 결과가 나온다
grub> quit // grub를 종료
~]# vi /etc/grub.conf
# boot=/dev/hda
password –md5 $1$ndrkx0$UUvidooZmqnuGfKjBxU4G0
// 위의 암호화된 결과를 입력
default=0 // 기본적으로 부팅되는 부트 엔트리 번호 (순번은 0,1,2,3 ..으로 매겨짐)
timeout=5 // 초기에 부팅될 때 5초 동안 여유를 준다는 의미
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
// GRUB 메뉴의 부팅 이미지 파일을 지정한 부분
hiddenmenu // 기본적으로 GRUB 부트 로더를 보여주지 않는 설정
// hd(0,0) : – 첫번째 “0”은 첫번째 하드디스크인 “/dev/hda”장치를 의미
– 두번째 “0”은 첫번째 파티션인 “/dev/hda1 장치를 의미
GRUB 설정파일을 저장하고 시스템 재부팅하여 GRUB 부트 로더로 부팅 하면 “e”키는 눌리지 않을 것이다. “p”를 눌러서 위에서 설정한 비밀번호 입력하면 사용을 할수가 있다.
< cron과 at >
cron : – 주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정해 놓는 것
(예약된 작업)
– 관련된 데몬(서비스)은 crond , 관련 파일은 /etc/crontab
– /etc/crontab의 내용은 “분,시,일,월,요일,권한,실행” 명령 순으로 되어 있다.
(요일 부분은 0~6까지 일요일~월요일, “0”을 입력하면 “일요일”을 의미 한다.)
at : 일회성 작업을 예약하는 것. 즉, 예약을 해 놓으면 한 번만 실행되고 소멸되는 것이다.
ⓐ 예약 : ~]# at 3:00 am tomorrow // 내일 새벽 3시
~]# at 11:00 pm January 30 // 1월 30일 오후 11시
~]# at now + 1 hours // 1시간 후
ⓑ at> 프롬프트에 예약 명령어 입력 후, Enter
ⓒ 완료되면 “Ctrl+D”
ⓓ 확인 : ~]# at -l
ⓔ 취소 : ~]# atrm <작업 번호>
(매월 15일 새벽 3시 1분에 “/home” 디렉토리와 그 하위 디렉토리를 /backup 디렉토리에 백업하기)
~]# service crond status
// cron 데몬이 가동하고 있는지 확인 (기본적으로 가동이 되어 있을 것이다.)
~]# vi /etc/crontab
01 3 15 * * root run-parts /etc/cron.monthly
~]# cd /etc/cron.monthly/
cron.monthly]# touch abc.sh // 메시지를 출력하는 스크립트 파일 생성
cron.monthly]# chmod 755 abc.sh // 속성을 실행 가능하도록 바꿔준다.
cron.monthly]# vi abc.sh // 아래 쉘 스크립트 내용 입력
# ! /bin/sh
set $(date)
// 현재날짜를 추출해서 /backup 디렉토리에 “backup-<현재날짜>.tar.gz”으로 fname=”backup-$2$3.tar.gz” “/home” 디렉토리 전체의 백업 파일을 생성하라는 의미
tar cfz /backup/$fname /home
cron.monthly]# mkdir /backup // 백업용 디렉토리 생성
cron.monthly]# service crond restart
cron.monthly]# date 011503002005
// “01월 15일 03시 00분 2005년”으로 날짜를 강제로 바꾸기
cron.monthly]# service crond restart
cron.monthly]# date // 현재 날짜 정보 확인
(내일새벽 4시에 시스템을 최신 패키지로 업데이트하고, 완료되면 시스템을 재부팅하는 것을 at으로 예약하기)
~]# at 4:00 am tomorrow
at> yum -y update
at> reboot
at> <EOT> // Ctrl + D 입력
job 1 at 2005-06-17 04:00
~]# at -l
쉘(shell) – OS 명령어 해석, 사용자의 사용환경 제공, DOS 의 command.com 의 역할
~]# cat /etc/shells // 쉘의 종류 정의되어 있음
~]# echo $SHELL // 현재 사용중인 쉘의 종류 확인
~]# chsh // 사용하고자 하는 쉡 변경
New shell [/bin/bash] : /bin/csh
~]# crontab -e // 서버의 시간을 주기적으로 맞게 수정 하려면 아래 내용 입력
0 0 * * 1 root /usr/bin/rdate -s time.bora.net /sbin/clock -w
// 시스템 시간을 맞추기 위해 time server 로 사용할 수 있는 서버
(” time.bora.net ” , ” time.kriss.re.kr ” , ” time.nuri.net ” )
~]# history // 이전에 사용했던 명령어 확인
~]# ! 6 // 이전에 사용했던 6번 명령어 다시 사용
~]# cat .bash_history // 기존에 사용했던 명령어 모두 저장
<root 의 원격 로그인 허용 및 제한 설정>
/etc/securetty : root가 로그인 가능한 터미널(tty) 장치명들을 나열해 둔 것
~]# vi /etc/securetty
# ttyp0 // pseudo 터미널을 통한 root의 접속 (앞에 주석처리 하면 원격지에서 root로 접속 안됨)
# ttys0 // 시리얼 라인 또는 모뎀을 통한 root의 접속
~]# vi /etc/ssh/sshd_config
PermitRootlogin yes 나 no // 원격지에서 SSH로 root접속 허용
~]# cat aa bb > cc
// aa와 bb를 합쳐 cc에 입력 (cc파일에 내용이 있는 경우 지워짐)
~]# cat aa bb >> cc
// 기존 내용에 추가 하여 입력 (cc라는 파일이 없었을 경우 새로 생성)
~]# head -5 install.log // 파일 앞부분 5라인만 내용 확인
~]# tail -5 install.log // 파일 뒷부분 5행만 보여줌
~]# sort name.txt // 파일 내용 정렬하기
~]# sort -r name.txt // 반대로 정렬
~]# file name.txt // 파일의 종류 확인
~]# pwconv // shadow 패스워드로 변환 명령
~]# pwunconv // 원래 패스워드로 전환
~]# uptime // 시스템 부하율 점검 (1분,5분,15분 동안의 시스템 부하율을 각각 평균하여 나타냄)
~]# top // 시스템의 전체 운용상황 점검
~]# w // 사용자 로그인 정보와 현재 작업 내용 확인
<로그 파일 종류>
/dev/console(콘솔 로그) – 콘솔에 뿌려지는 로그 // 관련 데몬(kernel)
/var/log/messages(시스템 로그) – 리눅스 커널 로그 및 주된 로그 // 관련 데몬(syslogd)
/var/log/secure(TCPD 로그) – inetd 에 의한 로그 // 관련 데몬(inetd)
/var/log/maillog(메일 로그) -sendmail 에 의한 로그 // 관련 데몬(sendmail, popper)
/var/log/boot.log(부팅 로그) – 시스템 부팅시의 로그 // 관련 데몬(boot)
/var/log/xferlog(FTP 로그) // 관련 데몬(ftpd)
/usr/local/apache/logs/access_log(웹 로그) // 관련 데몬(httpd)
/var/log/named.log(네임서버 로그) // 관련 데몬(named)
<로그 파일 관리> – logrotate
/etc/cron.daily/logrotate // 주기적인 실행을 위한 cron설정파일
/etc/logrotate.conf // 기본 설정 파일
/etc/logrotate.d // 각종 설정 파일 저장 디렉토리
/usr/sbin/logrotate // 주 데몬
/var/log // 시스템의 모든 로그 기록, 관리
/etc/syslog.conf // 시스템 로그데몬(syslogd)이 실행 될 때 참조되는 로그 파일 설정 설정 파일
[출처] 리눅스 서버 공부 같이 하기 :: 네이버 카페 | 작성자 – 서비스
.