글 수 369
리눅스 시스템 종료 방법 1. 바탕화면에서 : 시스템 -> 끄기 -> 끄기 2. 터미널에서 : "shutdown -h now", "halt", "init 0" * shutdown 명령어 shutdown -h +10 (10분 후 종료, h: halt) shutdown -r 22:00 (오후 10시에 재부팅, r:reboot) shutdown -c (예약된 shutdown 명령 취소) shutdown -k now (현재 접속자에게 종료 메세지만 보내며, 실제로 종료는 안 됨.) 재부팅 - "shutdown -r now", "reboot", "init 6" 로그아웃 - "logout", "exit" * init 명령어(런레벨, Runlevel) 0번 : 종료모드 1번 : 단일 사용자 모드(시스템 복구시 사용) 2번 : NFS 없는 다중 사용자 모드 3번 : 텍스트 모드의 다중 사용자 모드 4번 : 없음 5번 : x윈도우 모드의 다중 사용자 모드 6번 : 재부팅 모드 </etc/inittab 에 지정되어 있음.> vi(visual) ; ex) vi test.txt man(manual) ; ex) man <명령어> genisoimage ; iso 생성 ex) genisoimage -r -J -o test.iso /boot "-r -J" : 8글자 이상의 파일명 및 대소문자를 구분해서 인식 "-o" : 출력할 파일을 위한 옵션 "test.iso" : 생성될 iso 파일명 "/boot" : 포함될 파일 또는 디렉토리 cdrecord ; cd로 굽기 growisofs ; DVD로 굽기 * ls 명령어 - dos의 "dir" : ls ; 현재의 디렉토리 목록 : ls /usr/bin ; /usr/bin 의 디렉토리 목록 : ls -a ; 디렉토리 목록(숨김파일 포함) : ls -l ; 디렉토리 목록 자세히 : ls *.txt ; txt파일 보여줌 : ls -l /usr/bin/a* ; /usr/bin/ 디렉토리에서 앞글자가 a인 목록. * cd 명령어 - 디렉토리 이동 : cd ; 사용자의 홈 디렉토리로 이동 : cd ~root ; root사용자의 홈 디렉토리로 이동 : cd .. ; 상위 디렉토리로 이동 : cd /usr/bin ; /usr/bin 디렉토리로 이동(절대경로) : cd ../usr/bin ; 상대경로로 이동 * pwd (print working directory) : pwd ; 현재 작업중인 디렉토리 경로 출력 * rm - 삭제(권한이 있어야 함) : rm abc.txt ; 삭제(내부적으로 rm -i 로 연결됨 : rm -i abc.txt ; 삭제 시 확인을 물어본다 : rm -r abc ; 디렉토리 삭제 : rm -rf abc ; abc 이하 전부 강제 삭제 * cp - 복사 : cp abc.txt cba.txt ; abc.txt를 cba.txt 파일로 복사 : cp -r abc cba ; 디렉토리 복사 * touch - 크기 0 파일 생성, 존재시 수정 시간 변경 : touch abc.txt * mv - 파일 이름 변경 및 위치이동 : mv aaa bbb ccc ddd ; aaa, bbb, ccc 파일을 ddd 디렉토리로 이동 : mv abc.txt www.txt ; 이름 변경 * mkdir - 새로운 디렉토리 생성 : mkdir abc ; 현재 디렉토리 아래 abc 디렉토리 생성 : mkdir -p def/fgh ; 현재 디렉토리 아래 def/fgh 생성 * rmdir - 디렉토리 삭제(파일이 있으면 안됨) : rmdir abc * cat - 텍스트 작성 파일 화면에 출력 : cat install.log * head, fail - 텍스트 파일 앞 10행 or 뒷 10행을 출력 : head install.log : fail install.log * more - 텍스트 파일 페이지 단위 출력 (space : 다음페이지, b : 앞페이지, Q : 뒷페이지) : more install.log : more +100 install.log ; 100행부터 보여줌 * less - more의 확장, pagedown, pageup 사용 가능 : less install.log : less +100 install.log * file - 파일의 종류 표시 : file install.log : file /bin/gzip * clear - 명령창을 깨끗하게 : clear < 사용자 및 그룹 관련 명령어> * useradd or adduser -> 실행시 /etc/passwd, /etc/shadow, /etc/group에 새로운 행 추가. : useradd newuser : useradd -u 555 newuser ; 555 라는 이름의 유저 추가 : useradd -g mygroup newuser ; mygroup에 포함된 newuser 생성 : useradd -d /newhome newuser ; 홈 디렉토리가 newhome인 newuser 생성 : useradd -s /bin/csh newuser ; 기본 셸 /bin/csh 지정 * passwd - 비밀번호 지정 및 변경 : passwd newuser ; newuser의 비밀번호 지정 및 변경 * usermod - useradd와 사용법 동일, 사용자 속성 변경 : usermod -g root newuser ; newuser의 그룹을 root 그룹으로 변경 * userdel - 사용자 삭제 : userdel newuser : userdel -r newuser * change - tkdydwk dkagh wnrlwjr qusrud : change -l newuser ; newuser에 설정된 사항 확인 : change -m 2 newuser ; 설정암호 최소 일자(2일) : change -M 30 newuser ; 설정암호 사용가능 일자(30일) : change -E 2013/12/12 newuser ; 2013/12/12에 암호 만기 : change -W 10 newuser ; 만기 10일 부터 경고 메세지 출력 * groups - 사용자가 속한 그룹을 보여줌 : groups * groupadd - 새로운 그룹 생성 : groupadd newgroup : groupadd -g 555 newgroup ; 그룹 ID가 555인 newgroup생성 * groupmod - 그룹 속성 변경 : groupmod -n newgroup mygroup ; newgroup 이름을 mygroup으로 변경 * groupdel - 그룹 삭제 : groupdel newgroup (해당 그룹을 주요 그룹으로 지정한 사용자가 없을 때 사용 가능) * gpasswd - 그룹의 암호를 생성하거나 관리를 수행 : gpasswd newgroup ; newgroup의 암호지정 : gpasswd -A newuser newgroup ; newuser를 newgroup의 관리자로 지정 : gpasswd -a user1 newgroup ; user1을 사용자로 추가 : gpasswd -d user1 newgroup ; user1을 사용자에서 제거 < RPM > * 설치 : rpm -Uvh (패키지파일) - U : (대문자) 설치되어 있지 않다면 'i'와 같이 설치, 설치되어 있다면 업그레이드한다. - v : 설치 진행상황 확인 - h : 설치진행과정을 화면에 출력 * 삭제 : rpm -e (패키지이름) - e : Erase * 이미 설치된 패키지 질의 : rpm -qa (패키지) ; 설치되었는지 확인 : rpm -qf (파일의 절대 경로) ; 어느 패키지에 포함된 것인지 확인 : rpm -ql (패키지) ; 어떤 파일이 포함되었는지 확인 : rpm -qi (패키지) ; 상세정보 * 설치되지 않은 패키지 질의 : rpm -qlp (패키지) ; 어떤 파일이 포함되었는지 : rpm -qip (패키지) ; 상세정보 < YUM > * 설치 : yum (-y) install (패키지) &&& -y 옵션을 쓰면 무조건 yes로 넘어감 * rpm파일 설치 : yum install (rpm파일) * yum check-updata ; 업데이트 가능한 목록 보기 * yum updata (패키지) ; 패키지 업데이트, 없다면 install * yum remove (패키지) ; 패키지 제거 * yum info (패키지) ; 패키지 요약 정보 * yum localinstall (패키지) ; 로컬에서 설치 (iso파일에서 설치) * yum groupinstall "(패키지그룹)" ; yum grouplist로 확인후 통째로 설치 * yum list (패키지) ; 패키지 리스트 출력 ex) yum list all(모든 리스트), yum list mysql*(mysql이 들어간 목록) * yum provides (파일이름) ; 특정 파일이 어느 패키지에 들어있는지.. * yum install --nogpgcheck (rpm파일) ; GPG키 검사 생략 ; 페도라에서 인증되지 않은 rpm파일을 설치시 GPG키 생략하고 설치됨. < 파일 압축, 묶기 > * bzip2 - bz2로 압축하거나 풀기 : bzip2 (파일명) ; 파일명.bz2 로 만든다. : bzip2 -d "파일명.bz2" ; 파일명.bz2 를 일반파일로 만든다 * bunzip2 - bzip2 -d 와 같다. * gzip - gz으로 압축하거나 풀기 : gzip (파일명) ; 파일명.gz 로 만든다. : gzip -d "파일명.gz" ; 파일명.gz 를 일반파일로 만든다. * tar - 확장명 tar로 묶거나 풀기 [동작] : c ; 새로운 묶음 : x ; 묶인 파일을 풀어줌 : t ; 묶음을 풀기전에 경로 표시 [옵션] : f(필수) - 묶음 파일명 지정 ; 생략시 tape로 백업 : v - visual ; 과정을 보여줌 : z - tar + gzip : j - tar + bzip2 [사용예] : tar cvf xinetd.tar : tar xvfj (파일명.tar.bz2) : tar xvfz (파일명.tar.gz) < 파일 위치 검색 > * find [경로] [옵션] [조건] [action] [옵션] -name, -user(소유자), -newer(전, 후) -perm(허가권), -size(크기) [경로] -print(디폴트), -exec(외부명령 실행) [사용 예] : find /etc -name "*.conf" ; /etc 에 확장자 conf 파일 검색 : find ~ -perm 644 ; 허가권이 644인 파일 검색 : find /bin -size +10k -size -100k ; 10kb~100kb인 파일 검색 : find ~ -size 0k -exec ls -l { } ; -> 사용자 홈 디렉토리 하위에 파일 크기가 0인 파일 목록 상세히 출력 : find /home -name "*.swp" -exec rm { } ; -> /home 홈 디렉토리 하위에 확장자 swp파일 삭제 * which (실행파일명) - PATH에 설정된 디렉토리 검색(절대경로 포함) * whereis (실행파일명) - 실행 파일 및 소스, man 페이지 파일까지 검색 * locate (파일명) - updatedb 명령 이후 사용가능 파일목록 데이터베이스 검색, 빠르고 유용. < wine 설치하기 > http://kltp.kldp.net/stories.php?story=00/08/11/9653999 < 시스템 설정 > ststem-config-xxxx &&& 패키지 업데이트 yum -y install system-config-xxxx : boot ; 초기 부팅 설정 : data ; 날짜, 시간 설정 : firewall ; 방화벽 : keyboard ; 키보드 : language ; 언어 : lvm ; lvm 설정 : network ; 네트워크 : printer ; 프린터 : rootpassword ; root 비밀번호 : service ; 서비스 가동/중지 : users ; 사용자 설정 : bind ; 네임 서버 : display ; x 윈도우 환경 설정 : httpd ; 웹 서버 설정 : nfs ; NFS 서버 설정 : samba ; 삼바 서버 설정 : vsftpd ; FTP 서버 설정 < CRON > - 주기적으로 반복되는 일 설정 - /etc/crontab 파일 ex) 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 04 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 분 시 일 월 요일 권한 실행명령 (0~6 = 일~월요일) < AT > - 일회성 작업 예약 - 한번 실행되고 소멸 ex) at 실행 후 #at <시간>, 완료시 ctrl+D, 확인 at-l, 취소 atrm <작업번호> < Network 관련 명령어 > : system-config-network : system-config-network-tui ; 텍스트 기반 : service network (start/stop/restart/status) : ifup <장치이름> / ifdown <장치이름> ; 장치 작동 : ifconfig <장치이름> ; 해당 장치의 ip주소 설정 정보 출력 : nslookup ; DNS 서버 작동 테스트 : ping (IP/URL) ; 네트워크 응답 테스트 < Network 설정관련 파일 > - system-config-network 후 : /etc/sysconfig/network ; 네트워크의 기본적인 정보가 설정된 파일 : /etc/sysconfig/network-script/ifcfg-eth0(or ifcfg-eth1) ; 장치에 설정된 네트워크 정보 모두 : /etc/resolv.conf ; DNS서버의 정보 및 호스트 이름이 들어있는 파일 : /etc/hosts ; 현 컴퓨터의 호스트 이름 및 FQDN이 들어있는 << 파이프, 필터, 리다이렉션 >> < pipe > - 두 개의 프로그램을 연결해주는 연결통로 : | 을 이용함. ex) ls -l /etc | more ; /etc에 파일이 너무 많아서 한페이지씩 봄 < filter > - grep, tail, wc, sort, grep, awk, sed 등 ex) ps -ef | grep bash ; ps -ef 는 모든 프로세스 번호 출력하므로 bash라는 글귀가 들어간 프로세스만 출력 rpm -qa | grep bind ; 설치된 패키지중 bind라는 글자가 들어간 패키지만 출력 < re-direction > - 표준 입출력 방향을 바꿈. - 표준입력은 키보드, 출력은 모니터지만 이를 파일로 처리하고 싶을 때 주로 사용 ex) ls -l > aa.lst ; ls -l의 결과를 aa.lst 파일에 씀(orerwrite) ls -l >> aa.lst ; 위와 같지만 append sort < aa.lst ; aa.lst 파일을 정렬해서 화면에 출력 sort < aa.lst > bb.lst ; aa.lst를 정렬해서 bb.lst에 쓴다. < 프로세스 관련 명령어 > 1. ps - 현재 프로세스 상태 확인 ex) ps -ef | grep (프로세스이름) 2. kill - 프로세스 강제 종료 "-9" 옵션을 함께 사용하면 무조건 종료 ex) kill -9 (프로세스번호) 3. pstree - 부모 자식 프로세스관계를 트리형태로 보여줌 < vi 에디터 비정상적 종료시 대처법 > ex) vi abc.log 를 비정상적으로 종료시 -> abc.log.swp(임시 Swap File)생성. --> ls -a 로 파일 확인하고 "rm .install.log.swp"으로 삭제. < 데몬(Daemon) ~= 서비스(Service) > : 눈에는 보이지 않지만 현재 시스템에서 활동중인 프로세스(백그라운드)