본문 바로가기
사무용 리눅스-교육용 리눅스

리눅스명령어 모음

by 이혁진 2016. 1. 5.

어디서 펐는데....오래되서 기억이 안나네요...ㅎㅎ



시스템 종료 명령어

 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.iso 생성될 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 크기 
 경로

 -print

 디폴트 

 -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  캐시 현황 확인