테크 지식
리눅스 데비안 계열 명령어
Terminal 사용되는 명령어 입니다.
| 시스템 종료 명령어 | ||
| shutdown | 시스템 종료 | |
| -h now / halt / init 0 | 시스템 종료 | |
| -h +10 | 10분 후 종료, h:halt | |
| -r 22:00 | 오후 10시에 재부팅, r:reboot | |
| -c | 예약된 shutdown명령 취소 | |
| -k now | 종료 메세지는 보이나 종료 안됨 | |
| -r now /reboot /init 6 | 재부팅 | |
| logout / exit | 로그아웃 | |
| init 명령어 | 런레벨(Runlevel) /etc/inittab 에 지정되어 있음 | |
| init | 0 | 종료모드 |
| 1 | 단일 사용자 모드(시스템 복구시 사용) | |
| 2 | NFS 없는 다중 사용자 모드 | |
| 3 | 텍스트 모드의 다중 사용자 모드 | |
| 4 | ||
| 5 | x윈도우 모드의 다중 사용자 모드 | |
| 6 | 재부팅 모드 | |
| vi | 명령모드 -> 입력모드 | |
| vi | i | 커서 위치에서 입력 모드 변경 |
| a | 커서 위치 우측 한 칸에서 입력 모드 변경 | |
| s | 커서 문자를 지우고 입력 모드 변경 | |
| x | 한 문자만 지우기 | |
| del | 커서 위치 문자 삭제 | |
| dd | 한 줄 잘라내기 | |
| 15dd | 15줄 잘라내기 | |
| yy | 현재 커서 라인 복사 | |
| 15yy | 15줄 복사 | |
| dw | 한 줄 잘라내기 | |
| 15dw | 15줄 잘라내기 | |
| p | 현재 커서의 아랫 줄에 붙여넣기 | |
| P | 현재 커서가 있는 줄에 붙여넣기 | |
| u | 되돌리기 | |
| :! [command] | 멀티태스킹 기능 | |
| :e [filename] | 파일열기 | |
| :q | 종료[변경 없음] | |
| :q! | 강제 종료[변경 무시] | |
| :w | 저장 | |
| :wq | 저장 후 종료 | |
| x : == wq | vi 편집기 종료 | |
| x : == w | vi 편집기 종료 | |
| "Ctrl + f" | 아래 화면 페이지 이동 | |
| "Ctrl + b" | 위의 화면 페이지 이동 | |
| G | 파일의 제일 마지막으로 이동 | |
| gg(Shift+g) | 파일의 가장 처음으로 이동 | |
| 80G | 파일의 80번째 줄로 이동 | |
| r | 한 문자만 변경 | |
| R | Replace | |
| set nu | 줄 번호 보이기 | |
| set nonu | 줄 안보이기 | |
| set ts = 4 | Tab 키의 공백 넓이를 지정 (기본값: 8) | |
| vi !/.exrc | set ts=4 등의 환경설정 저장 | |
| new [filename] | 화면 분할 기능 | |
| "Ctrl + w + w" | 화면간 이동 | |
| find ./ [찾을 문자열] | 현재 디렉토리에서 검색 | |
| find ./ -name "*.txt" -print | xargs grep [찾을 문자열] | *.txt에서 문자열 검색 | |
| :/long | 아래로 long이라는 문자열 찾기 | |
| :?long | 위로 long이라는 문자열 찾기 | |
| tip) vi 에디터 비정상적 종료시 대처법 | ||
| 예제 | ||
| vi abc.log 를 비정상적으로 종료시 1. abc.log.swp(임시 Swap File)생성 2. ls -a 로 파일 확인하고 "rm .install.log.swp"으로 삭제 | ||
| man 명령어 | ||
| man(manual) | name | 명령어의 이름과 간단한 설명 |
| synopsis | 사용법을 개괄적으로 보여줌 | |
| description | 해당 명령어의 자세한 설명 | |
| option | 해당 명령이 사용하는 옵션들의 설명 | |
| environment | 해당 명령이 사용하는 환경 변수들에 대한 설명 | |
| examples | 해당 명령을 사용하는 예제 | |
| files | 명령과 관련되 명령에서 사용하는 파일들을 설명 | |
| see also | 해당 명령과 관계된 다른 설명 및 관련 문서를 보여줌 | |
| warnings | 해당 명령을 사용하면서 발생할 수 있는 문제점들을 설명 | |
| diagnostics | 해당 명령을 사용하면서 발생하는 각종 오류 메시지들에 대한 설명 | |
| bugs | 해당 명령의 알려진 버그에 대한 설명 | |
| genisoimage | iso 생성 | |
| ex) | genisoimage -r -J -o ㅁ.iso /boot | |
| -r -J | 8글자 이상의 파일명 및 대소문자를 구분해서 인식 | |
| -o | 출력할 파일을 위한 옵션 | |
| a .is o | 생성될 iso 파일명 | |
| /boot | 포함될 파일 또는 디렉토리 | |
| cdrecord | cd로 굽기 | |
| growisofs | DVD로 굽기 | |
| ls | dos의 "dir" | |
| 현재 디렉토리 목록 | ||
| /usr/bin | /usr/bin 의 디렉토리 목록 | |
| -a | 디렉토리 목록(숨김파일 포함) | |
| -I | 디렉토리 목록 자세히 | |
| *.txt | txt파일 보여줌 | |
| -l /usr/bin/a* | /usr/bin/ 디렉토리에서 앞글자가 a인 목록 | |
| cd | 디렉토리 이동 | |
| 사용자의 홈 디렉토리로 이동 | ||
| ~root | root 사용자의 홈 디렉토리로 이동 | |
| .. | 상위 디렉토리로 이동 | |
| /usr/bin | /usr/bin 디렉토리로 이동(절대경로) | |
| ../usr/bin | 상대경로로 이동 | |
| pwd | 현재 작업중인 디렉토리 경로 출력 | |
| rm | 삭제(권한 요구) | |
| a.txt | 삭제(내부적으로 rm -i로 연결) | |
| -i a.txt | 삭제 시 확인을 물어본다 | |
| -r a | a 디렉토리 삭제 | |
| -rf a | a 이하 전부 강제 삭제 | |
| rf | 포멧 | |
| cp | 복사 | |
| a.txt b.txt | a.txt를 b.txt 파일로 복사 | |
| -r a b | 디렉토리 복사 | |
| touch | 크기 0 파일 생성 존재시 수정 시간 변경 | |
| a.txt | a.txt라는 크기 0 파일 생성 | |
| mv | 파일 이름 변경 및 위치이동 | |
| a b c d | a, b, c 파일을 d 디렉토리로 이동 | |
| a.txt b.txt | 이름 변경 | |
| mkdir | 새로운 디렉토리 생성 | |
| a | 현재 디렉토리 아래 a 디렉토리 생성 | |
| -p a/b | 현재 디렉토리 아래 a/b 디렉토리 생성 | |
| rmdir | 디렉토리 삭제 | |
| a | 현재 디렉토리 아래 a 디렉토리 삭제 | |
| cat | 텍스트 작성 파일 화면에 출력 | |
| a.log | a.log 텍스트 파일 화면에 출력 | |
| head | 텍스트 파일 앞 10행 출력 | |
| a.log | a.log파일 앞 10행 출력 | |
| fail | 텍스트 파일 뒤 10행 출력 | |
| a.log | a.log파일 뒤 10행 출력 | |
| more | 텍스트 파일 페이지 단위 출력 | |
| "space" | 다음페이지 | |
| "b" | 앞 페이지 | |
| "Q" | 뒷 페이지 | |
| +100 a.log | a.log파일 100행 부터 출력 | |
| less | more의 확장 "pagedown", "pageup" 사용가능 | |
| file | 파일의 종료 표시 | |
| clear | 명령창 청소 | |
| 사용자 및 그룹 관련 명령어 | ||
| useradd (or) adduser | 실행시 /etc/passwd, /etc/shadow, /etc/group에 새로운 행 추가 | |
| newuser | ||
| -u a newuser | a 라는 이름의 유저 추가 | |
| -g mygroup newuser | mygroup에 포함된 newuser 생성 | |
| -d /newhome newuser | 홈 디렉토리가 newhome인 newuser 생성 | |
| -s /bin/csh newuser | 기본 셀 /bin/csh 지정 | |
| passwd | 비밀번호 지정 및 변경 | |
| newuser | newuser의 비밀번호 지정 및 변경 | |
| usermod | useradd와 사용법 동일, 사용자 속성 변경 | |
| -g root newuser | newuser의 그룹을 root 그룹으로 변경 | |
| userdel | 사용자 삭제 | |
| newuser | newuser 삭제 | |
| -r newuser | ||
| change | 사용자 암호 주기적 변경 | |
| -l newuser | newuser에 설정된 사항 확인 | |
| -m 2 newuser | 설정암호 최소 일자(2일) | |
| -M 30 newuser | 설정암호 사용가능 일자(30일) | |
| -E 2013/12/12 newuser | 2013/12/12에 암호 만기 | |
| -W 10 newuser | 만기 10일 부터 경고 메세지 출력 | |
| groups | 사용자가 속한 그룹 표시 | |
| groupadd | 새로운 그룹 생성 | |
| newgroup | newgroup이란 이름의 새로운 그룹 생성 | |
| -g 555 newgroup | 그룹 ID가 555인 newgroup생성 | |
| groupmod | 그룹 속성 변경 | |
| -n newgroup mygroup | newgroup 이름을 mygroup으로 변경 | |
| groupdel | 그룹 삭제 | |
| newgroup | newgroup 그룹을 주요 그룹으로 지정한 사용자가 없을 때 사용 가능 | |
| gpasswd | 그룹의 암호를 생성하거나 관리를 수행 | |
| newgroup | newgroup의 암호지정 | |
| -A newuser newgroup | newuser를 newgroup의 관리자로 지정 | |
| -a user1 newgroup | user1을 사용자로 추가 | |
| -d user1 newgroup | user1을 사용자에서 제거 | |
| RPM | ||
| -Uvh [package file] | 설치 | |
| -U | 설치되어 있지 않다면 'i'와 같이 설치, 설치되어 있다면 업데이트 | |
| -v | 설치 진행 상황 확인 | |
| -h | 설치 진행 과정을 화면을 출력 | |
| -e [package name] | 삭제 | |
| ↓ 이미 설치된 패키지 질의 | ||
| -qa [package] | 설치되었는지 확인 | |
| -qf [파일 절대 경로] | 어느 패키지에 포함 된 것인지 확인 | |
| -ql [package] | 어떤 파일이 포함되었는지 확인 | |
| -qi [package] | 상세정보 | |
| ↓ 설치되지 않은 패키지 질의 | ||
| -qlp [package] | 어떤 파일이 포함되었는지 확인 | |
| -qip [package] | 상세정보 | |
| YUM | ||
| install [package] | 패키지 설치 | |
| -y | 무조건 yes로 선택하여 설치 | |
| install [rpm file] | rpm 파일 설치 | |
| check-updata [package] | 업데이트 가능한 목록 보기 | |
| updata [package] | 패키지 업데이트, 없다면 설치 | |
| remove [package] | 패키지 제거 | |
| info [package] | 패키지 정보 | |
| localinstall [package] | 로컬에서 설치(iso파일에서 설치) | |
| groupinstall [package group] | yum grouplist로 확인 후 통채로 설치 | |
| list [package] | 패키지 리스트 출력 | |
| list all | 모든 패키지 파일 출력 | |
| list mysql* | mysql이 들어간 모든 패키지 파일 출력 | |
| provides [filename] | 특정 파일이 어느 패키지에 들어있는지 보기 | |
| install --nogpgcheck [rpm file] | GPG키 검사 생략 패도라에서 인증되지 않은 rpm파일은 설치시 GPG키 생략하고 설치됨 | |
| 파일 압축, 묶기 | ||
| bzip2 | bz2로 압축하거나 풀기 | |
| [filename] | 파일명.bz2로 압축 | |
| -d [filename.bz2] | 파일명.bz2를 일반파일로 만든다 | |
| bunzip2 | bzip2 -d와 동일 | |
| gzip | gz으로 압축하거나 풀기 | |
| [filename] | 파일명.gz로 만든다 | |
| -d [filename.gz] | 파일명.gz를 일반파일로 만든다 | |
| tar | 확장자명 tar로 묶거나 풀기 | |
| c | 새로운 묶음 | |
| x | 묶은 파일 풀기 | |
| t | 묶음을 풀기 전 경로 표시 | |
| f | 묶음 파일 명 지정 생략시 tape로 백업 | |
| v | 과정 표시 | |
| z | tar + gzip | |
| j | tar + bzip2 | |
| 사용 예제 | ||
| tar cvf a.tar | ||
| tar xvfj a.tar.bz2 | ||
| tar xvfz a.tar.gz | ||
| 파일 위치 검색 | ||
| find | [경로] [옵션] [조건] [action] | |
| 옵션 | ||
| -user | 소유자 | |
| -newer | 전, 후 | |
| -perm | 허가권 | |
| -size | 크기 | |
| 경로 | ||
| 디폴트 | ||
| -exec | 외부 명령 실행 | |
| 사용 예제 | ||
| /etc -name "*.conf" | /etc 에 확장자 conf 파일 검색 | |
| ~ -perm 644 | 허가권이 644인 파일 검색 | |
| /bin -size +10k -size -100k | 10kb~100kb인 파일 검색 | |
| ~ -size 0k -exec ls -l { } \ | 사용자 홈 디렉토리 하위에 파일 크기가 0인 파일 목록 상세히 출력 | |
| /home -name "*.swp" -exec rm { } \ | /home 홈 디렉토리 하위에 확장자 swp파일 삭제 | |
| which | [실행파일명] | PATH에 설정된 디렉토리 검색 (절대 경로 포함) |
| whereis | [실행파일명] | 실행 파일 및 소스 man 페이지 파일까지 검색 |
| locate | [filename] | 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 파일 | |
| 예제 | ||
| 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 | 일회성 작업 예약 한 번 실행되고 소멸 | |
| 예제 | ||
| at 실행 후 #at <시간>, 완료시 ctrl+D, 확인 at-l, 취소 atrm <작업번호> | ||
| 네트워크 관련 명령어 | ||
| system-config-network | ||
| system-config-network-tui | 텍스트 기반 | |
| service network (start/stop/restart/status) | ||
| ifup [device name] ifdown [device name] | 장치 작동/중지 | |
| ifconfig [device name] | 해당 장치의 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 | 두 개의 프로그램을 연결해주는 연결통로 | 을 이용함 | |
| 예제 | ||
| ls -l /etc | more | /etc에 파일이 너무 많아서 한페이지씩 봄 | |
| filter | grep, tail, wc, sort, grep, awk, sed 등 | |
| 예제 | ||
| ps -ef | grep bash | ps -ef 는 모든 프로세스 번호 출력하므로 bash라는 글귀가 들어간 프로세스만 출력 | |
| rpm -qa | grep bind | 설치된 패키지중 bind라는 글자가 들어간 패키지만 출력 | |
| re-direction | 표준 입출력 방향을 바꿈, 표준입력은 키보드, 출력은 모니터지만 이를 파일로 처리하고 싶을 때 주로 사용 | |
| 예제 | ||
| 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에 쓴다. | |
| 프로세스 관련 명령어 | ||
| ps | 현재 프로세스 상태 확인 | |
| ps -ef | grep [process name] | ||
| kill | 프로세스 강제 종료 "-9" 옵션을 함께 사용하면 무조건 종료 | |
| kill -9 [process number] | ||
| 데몬(Daemon) ~= 서비스(Service) | 눈에는 보이지 않지만 현재 시스템에서 활동중인 프로세스 (백그라운드) | |
| 데비안 패키지 명령어 | ||
| apt-get | 소프트웨어 패키지의 설치, 제거, 업그레이드, 전체 OS의 업그레이드에 사용하는 커맨드 라인 프로그램 | |
| update | 패키지 리스트 업데이트 | |
| install [package name] | 패키지 설치 단 .deb같은 인터넷에서 다운받는 패키지는 dpkg라는 명령어 이용 | |
| install [package name] --no-upgrade | 설치된 패키지가 업그레이드 되는 걸 방지하면서 새 패키지 설치 | |
| install [package name] --only-upgrade | 새 패키지가 설치되는 걸 방지하면서 이미 설치된 패키지 업그레이드 | |
| upgrade | 설치된 패키지 업그레이드 | |
| dist-upgrade | 설치된 시스템패키지 포함한 패키지를 업그레이드 | |
| clean | 다운받은 패키지 설치 파일 정리 | |
| autclean | 설치된 패키지중 사용되지 않는 패키지를 자동으로 선택하여 삭제 | |
| remove | 패키지 삭제 dpkg를 통해 설치된 패키지 포함 | |
| autoremove [package name] | 내려받은 패키지 파일(.deb) 중 이젠 못 받을정도로 쓸못없는 것들만 로컬저장소에서 삭제하여 디스크 공간 확보 | |
| autoremove | 과거에 다른 패키지의 의존성 때문에 자동으로 설치했지만 지금은 필요없는 패키지 제거 | |
| purge [package] | 패키지 완전 삭제 이때는 remove와 같으나 해당 패키지의 설정파일들도 삭제 | |
| --download-only source [package name] | 패키지의 소스코드만 내려받기 | |
| --compile source [package name] | 패키지의 소스를 내려받아 압축을 풀고 컴파일 | |
| download [package] | 패키지를 현재 디렉토리에 내려받기만 하고 설치하지 않기 | |
| changelog [package] | 패키지의 변경사항 확인 | |
| check | 패키지 캐시를 업데이트하고의존성에 문제 없는지 확인 | |
| build-dep | 해당 패키지의 소스를 컴파일 하기 위해 필요한 패키지 설치 | |
| add-apt-repository [add repo link] | 데비안 레포를 추가함 | |
| apt-cache | apt 소프트웨어 패키지 캐시를 검색하기 위한 커맨드 라인 도구 소프트웨어 패키지 검색, 패키지 정보 수집, 데비안 기반 시스템에 설치 할 수 있는 패키지 검색에 사용 | |
| pkgnames | 사용 할 수 있는 모든 패키지 출력 | |
| search [package name] | 검색어와 연관된 패키지 이름과 설명 출력 | |
| show [package name] | 패키지 정보 확인 | |
| showpkg [package name] | 특정 패키지 의존성 확인 | |
| stats | 캐시 현황 확인 | |