티스토리 뷰

Linux

리눅스 명령어 정리

초보의 CHOMAN 2015.06.04 16:13

리눅스 명령어 정리



apm [옵션]

- 노트북 등 장치에서 배터리 현재 잔여량 확인 및 기타 등등

appletviewer [옵션] URL
- 웹페이지를 읽어들여 자바 애플릿 실행

apropos [키워드] 
- whatis DB (/var/cache/man/whatis) 검색하여 관련이 있는 명령어를 설명과 함께 나열
- man -k 와 whatis 명령어와 유사한 기능

*. whatis DB

명령어와 기본 설명을 모아놓은 텍스트 DB파일

/usr/sbin/makewhatis -u # 시스템의 등록된 man page를 검색하여 whatis DB 업데이트


arch
- 시스템의 CPU 타입 보여줌

at (예약실행 단발성)

: atd 데몬 떠 있어야 함

-q queue a ~ z 까지 큐를 이용하여 저장 (디폴트는 a에 저장됨)

-f file : 파일의 읽어서 적용 (스크립트 같은거?)

-l : at 작업의 리스트 출력

특정시간에 명령어 실행 예약 (단지 한번만 실행) : 비정기적인 예약 작업
이거 돌려 놓고 잠 처 자면 좋을듯 함

관련 데몬은 atd 


ex) at 2:30 am Friday < 스크립트파일

 

atq
- 예약된 작업 목록나열해줌

atrm
- 예약된 목록 삭제

badblocks
- 저장장치의 배드블록을 검사하는 명령어
- -w 옵션을 사용할 경우 파일시스템 및 데이터도 함께 손실

[root@localhost ~]# fdisk -l

/dev/sda6 19463 20482 8193118+ 83 Linux

[root@localhost ~]# badblock -v /dev/sda6 8193118+


basename
- 경로와 확장자를 제거한 순수파일이름만 돌려 받는 명령어 (스크립트 짤대 변수에서 쓸수도 있다고 하네염 ㅋ)


[root@localhost ~]# basename /usr/local/apache/conf/httpd.conf
httpd.conf

[root@localhost ~]# basename /usr/local/apache/conf/httpd.conf .conf
httpd


dirname
- 경로 - 파일명에서 경로명만 추출 ㅋ

batch
- 시스템 부하가 일정 이하(0.8 이하?) 가 되면 예약해 둔 명령어 실행
ex) batch -f 파일명(스크립트) -m now

-q : queue 이름 지정, at는 a batch 는 b 사용됨
-m : 출력 결과가 없더라도 작업완료시 사용자 메일 발송
-f 파일명 : 스트립트 파일등을 실행
-v : 작업이 수행될 시간 보여줌


bc
- 터미널에서 사용하는 대화형 계산기 언어

biff
- 메일 서버를 일정 간격으로 체크하여 새 메일이 도착하면 신호함 ( 거의 쓰이지 않음)

bzip2
- 압축전의 원본파일의 날짜 , 퍼미션, 소유자 등 속성을 그대로 가짐 압축풀고 나서도 풀기전 속성 그대로 유지
- bzip2recover [파일이름] : 깨진 압축 파일 복구
- bzip2 -tv [파일이름] : 무결성 검사

cal 
- 달력보기

cat 
- 파일 내용 보여줌 ( -n : 라인넘버로 같이 출력)
- 사촌격인 more, less, tail, head 등이 있다

- n 각 줄의 번호를 같이 출력

라인 편집기

cat > 파일이름

어쩌구 저쩌구

<Ctrl + D >


cat 파일명1 > 파일명2

- 파일명1을 파일명2로 덥어씀


cat 파일명1 >> 파일명2

- 파일명2 바로 뒤에 파일명1의 내용 추가 ㅋ



cd (change directory)
- 디렉토리 이동 (절대 경로 (풀 경로 다 써주는경우) 상대경로 (현재위치에서 갈 디렉토리를 나타내는 경우) 방법 있음


ex)

 절대 경로 : /usr/local/apache

 상대 경로 : ../../etc/samba


op)

 ~ : 자신의 홈디렉토리 (로그인한 계정의 홈디렉토리)

 - : 바로 전의 디렉토리

 .. : 바로 상위 디렉토리


cp (파일 복사)


cp [옵션] "원본파일명" "복사할 디렉토리"


-r 서브 디렉토리까지 복사

-p 원본파일의 퍼미션 소유권등을 그대로 유지한채 복사





cfdisk
- 커서 기반 메뉴의 파티션 설정 유틸리티

chage
- 사용자 패스워드 만기일 확인 및 설정

chattr 
- 파일 속성을 변경

chattr +i kek
- kek 이라는 파일에 i 속성 부여 : 읽기 전용으로 만듬 (삭제, 수정, 링크 생성 안됨)
- + : 파일에 속성 추가, - : 파일에 속성 제거, = : 파일이 오로지 주어진 속성만 가지게 함

lsattr kek (속성 확인) : 파일이 삭제되거나 수정 안될때 이걸로 확인
----i---------- kek


chfn
- 사용자 정보 변경

chfn takakocap 
- Name []: takakoxxx
- Office []: smilexx
- Office Phone []: 010-9707-xxxx
- Home Phone []: 02-1688-xxxx

입력하고 나면 /etc/passwd 파일 열어보면 정보가 추가되어 있다.
takakocap:x:500:500:takakoxxx,smilexx,010-9707-xxxx,02-1688-xxxx:/home/takakocap:/bin/bash


chkconfig
: 부팅할때 데몬 자동으로 실행되게끔 할려고 많이 사용들 한다

: 이거 보다는 ntsysv 이거 하면 편하다 ㅋ 그래픽으로 나온다 그냥 체크만 해주면 된다.

: 이외에 /etc/rc3.d/rc3.d/ 디렉토리에 실행하고자 하는 스크립트 및 파일을 심볼릭 링크해주면 된다.


chkconfig --list (전체 데몬 리스트 나열)

chkconfig --level 345 sendmail on | off 


3 : 콘솔

4 : ?

5 : x-windows



chown (소유권자), chgrp (소유그룹)

- 파일이나 디렉토리 ( -R ) 의 소유권 및 소유그룹 변경할때 사용

chmod
- r (읽기 가능) : 4, w (쓰기가능) : 2, x (실행가능) : 1
- 소유자 (rwx) 소유그룹 (rwx) 기타계정 (rwx)
- 맨앞에 - 는 파일 d 라고 나오면 디렉토리임

chmod 755 파일이름
chmod -R 755 디렉토리이름 : 디렉토리 및 하위디렉토리 모든 파일의 퍼미션 바꿈


clear 
- 모니터 더러울때 화면 싹다 지우기 ( Ctrl + l ) 눌러도 됨 ㅋ


cut
- 파일에서 특정 필드를 추출하는 명령어 (원본파일에는 영향주지 않음)
- 문자수로 열 계산 ( -c ), 필드구분자 ( -d ), 파일내의 필드로 따져서 추출


-c : 문자수로 열을 계산해서 출력

-d <구분자> : 필드 구분자 사용

-f <구분자> : 파일 내에 필드로 따져서 출력 



cut -c 12-17 파일이름
- 행 (가로), 열(세로) 에서 열로 계산에서 12-17까지 라인 다 출력할듯 함

cut -d " " -f 1,3 파일이름
- " " 안에는 공백인데 공백으로 필드를 나눠서 1열 3열 출력함

cut -d : -f 1,3-4 /etc/passwd | tail -5
- 필드 구분자로 : 콜론을 주고 -f 로 해서 1번과 3번 필드를 /etc/passwd 파일 출력하는데 tail -5 니깐 마지막 5줄만




date
- 날짜랑 요일 시간 이런거 출력해주는거

date +%y%m%d 
20100224 요런식으로 출력됨 (백업파일 만들때 요거 붙이면 효율적으로 만들수 있다네요)



df
- 하드디스크의 할당된 파티션 전체 용량과 사용중인 용량 등을 출력해주는 명령
- 그냥 df -Th 로 가장 많이 본다 ㅋ ( T : 파일 시스템 정보, h : 파일을 보기 쉬운 용량으로 출력 )

du (disk use)
- du -sh /home 이런식으로 많이 사용 ( s : 해당 디렉토리의 하위 디렉토리의 값까지 포함, h : 보기쉬운 용량으로 )

diff

: 파일의 내용을 비교해서 서로 다른 행을 출력하는 명령어

-b : Space 를 무시하고 비교

-q : 파일이 서로 다른 경우 다르다는 메세지만 출력 



hdparm 

 - 하드디스크 속도 측정


hdparm -tT /dev/sda


/dev/sda:

 Timing cached reads:   1206 MB in  2.00 seconds = 602.33 MB/sec

 Timing buffered disk reads:  162 MB in  3.00 seconds =  53.92 MB/sec 



find (특정 파일 찾을때 사용)

: find 디렉토리 [옵션] 파일명

find / -name httpd.conf : / 부터 시작해서 전 리눅스 샅샅이 훝여서 찾으므로 느리다 (경로 알거 같으면 좀 적어주자)


find / -amin 10 : 10분전에 접근된 모든 파일 검색 (시간 날짜 머 이런것들도 가능하다)

          atime 10 : 10일전

find / -cmin 10 : 10분전에 마지막으로 변경된 파일

          ctime 10 : 10일전


xtime 10 : 10분전 (딱 10분전) : -10분

xtime -10 : (현재로 부터 10분전까지 모든) -1분 ~ 10분 사이에 모든것들...



finger, who, w
- 리눅스에 누가 접속해 있는지 출력해줌

who : 가장 간단한 정보
finger : 사용자 정보를 보다 자세하게 보여줌
w : 사용자가 어떤 작업을 하는것 까지 보여줌


head 

: 파일의 앞에서 부터 출력

: ↔ tail 명령어와 반대 개념의 명령어 (tail 은 파일 뒤에서 부터 출력)



id (현재 주어진 계정의 사용자 ID, 그룹 ID, 추가그룹 ID 등 정보를 나열함)

ex)

[root@localhost ~]# id

uid=0(root) gid=0(root) groups=0(root) 




fsck (리눅스 시스템 파일 파일 시스템 점검)


마운트되어 있는 파일시스템을 fsck 실행하면 파일시스템 전체가 손상될 위험이 있으므로 언마운트 시킨후 점검


umount /mnt/sda10
fsck /dev/sda10


ftp

:ftp 아이피 포트번호


get : 파일 다운로드

mget : * 를 이용하여 여러 파일을 한번에 전송 받을수 있음

"나는 자연인 이다.pdf" ← 공백이 있는 문서는 "" 따옴표를 이용해 묶어줌



grep
- 특정 단어, 문장 등을 포함하는 파일을 찾을때 유용하며 지정한 패턴과 일치하는 라인을 화면으로 출력함
- 특정 명령어로 출력되는 값 결과중에 원하는 부분만을 찾을때도 사용함

grep 18 파일이름
- 파일에서 18 이라는 패턴을 가진 모든 라인을 출력

grep -n 18 파일이름
- 위의 결과 값인데 출력되는 라인번호도 같이 출력해줌, 아마 찾기 쉽게? 하기 위해? 본 파일에서 ?

grep 18NOM * (특정디렉토리에서)
- 디렉토리내의 모든파일* 을 뒤져서 18NOM 이라는 패턴을 가진 파일이름:해당패턴 형식으로 출력해준다

grep -i 18NOM -n *
- 모든 파일 디져서 18이라는 패턴을 가진 라인을 출력 (-i 대, 소 문자 구분안함) 하고 라인넘버도 같이 출력


grep 18NOM -l /etc/*
- /etc/안에 모든 파일을 검색하고 -l 옵션으로 패턴을 포함하는 파일만 출력한다

grep " 18nom kek"
- 단어가 아닌 구문으로 찾고자 할때 ...


 

history

 - 해당 계정의 .bash_history 에 파일 형태로 남아 있음

 - history -c : 해당 히스토리 목록 지우기 (로그아웃후 로그인 한 후에 완전히 지워지게 됨)

 - profile 파일에서 HISTSIZE = ???? 라인을 수정하면 저장되는 라인수를 설정할수 있습니다. (default 1000)



hwclock
- 하드웨어 시간 바이오스에서 받아온 시간을 출력
- hwclock --systohc : 하드웨어의 시간을 리눅스 OS의 시간으로 설정
- rdate -s time.bora.net && hwclock --systohc (크론탭에 등록하자 ㅋ)

iostat
-k / -m : 킬로바이트 / 메가바이트로 표시
-c : CPU 상태만
-d : 디바이스 상태만
-x : 파티션 단위로 표시

CPU 
 - %user : 사용자레벨에서 사용한 양 표시
 - %nice : 사용자레벨에서 nice 순위와 관련하여 사용한 양 표시
 - %sys : 시스템레벨(커널)에서 사용한 양 표시
 - %idle : CPU가 대기한 상태를 표시

Device 입출력 
 - tps : 디바이스에서 초당 전송하는 개수 표시
 - Blk_read/s : 초당 읽어들이는 블록의 개수 표시
 - Blk_wrtn/s : 초당 쓰여지는 블록의 개수 표시
 - Blk_read : 블록이 읽혀진 총 개수 표시
 - Blk_wrtn : 블록이 쓰여진 총 개수 표시

kill (프로세스 종료)


-l : 시그널로 사용할수 있는 목록나열

-1 : 프로세스 재실행

ps 명령어로 종료하고자 하는 PID를 찾아서 

kill -9 PID 로 많이 죽임, 또는 killall 프로세스이름



ls
- 파일 리스트를 화면에 출력, 가장 많이 쓰는 명령중의 하나임 ㅋ

ls -a 또는 ls --all 하면 숨겨있는 파일까지 다 출력됨
ls -al 에서 l 옵션은 퍼미션, 크기 등 자세한 정보까지 출력한다
* 또는 ? 이런거 특수 문자 조합해서 쓸수 있다


op)

-a, all : 디렉토리내에 있는 모든 파일 보기 (숨겨진 파일까지 출력)

-c : 파일을 최근 변경 시간으로 정렬 (ctime)

-i : 파일의 inode 값 보이기

-l : 퍼미션, 크기, 사이즈 등 자세한 정보 출력

-t : 최근파일부터 정렬하여 출력


mkdir rmdir "디렉토리명"
- 디렉토리 만들거나 삭제

mkdir -p 18/19/20 : 동시에 3개 디렉토리 생성 가능 하위까지 동시에 생성됨 (하위 디렉토리까지 한번에 생성)
rmdir -p 18/19/20 : 하위 디렉토리까지 해서 통으로 삭제 (파일이 있으면 삭제 안됨)
불편해서 rm -rp 요렇게 많이 씀 잘못쓰면 다 날라갈지도 ㅋ



mv (이 명령 잘못 쓰다가는 퇴직할지도 모름 난 안전하게 cp로 씀)


- 말 그대로 이동시킬때 쓰거나 파일이름을 바꿀때 자주 사용


-f : 대상 파일이 있어도 강제로 덮어씀


※. mv 라는 명령어는 반드시 백업본을 만들어 놓고 mv 라는 명령어를 실행하는것이 좋음 (하드웨어적인 문제로 파일 삭제되는 경우 간혹 발생됨)


paste

- 여러 파일의 내용을 하나로 합쳐서 출력하는것 (구분자는 기본적으로 Tab)
- ( -s ) : 한 파일의 내용을 한줄로 보여준후 다른 파일의 내용을 한줄로 덧붙임
- ( -d ) : 출력되는 내용의 구분자를 지정한다

이건 말로 설명이 어려울듯 실습해봐야 할듯

[root@localhost bash]# paste exam1 exam2 exam3
1111 2222 3333
1111 2222 3333
1111 2222 3333
1111 2222 3333


[root@localhost bash]# paste -d : exam1 exam2 exam3
1111:2222:3333
1111:2222:3333
1111:2222:3333
1111:2222:3333

[root@localhost bash]# paste -s -d "|" exam1 exam2 exam3 : -s 이거 주면 가로로 한줄 먼저 출력하고 순차적인듯 함
1111|1111|1111|1111
2222|2222|2222|2222
3333|3333|3333|3333



patch

이거 머 패치 할때 쓰는거 같은데
- patch -p 0 < 패치할 파일
- patch -p 0 < /어쩌구/저쩌구/패치파일

옵션 -p X : diff의 최상단에 지정되어 있는 상대경로를 조정(?)하는 역활을 한다. 
다시 말하면 -p뒤에 오는 수만큼 명시되어 있는 디렉토리를 벗겨 낸다는말이다
patch 명령 사용시 패치 파일의 위치에 따라 -p 옵션 뒤의 값이 바뀌니 유의 할 것


pwd
- 현재 위치한 디렉토리를 표시해줌 가끔식 작업하다가 보면 여기가 어디지 이런생각이 들때도 있음

rm
- 파일 삭제, -r : 하위디렉토리 및 파일까지 삭제, -f : 묻지도 않고 강제로 삭제, 이것도 잘못 쓰다간 인생 조질수도.

sed (stream editor)
- 문자 스트림으로 나타나는 입력을 수정하거나 편집하는 일종의 편집기
- 화면으로 출력되는 내용을 필터링 하여 보여주는 역활

-p : 행 출력 ( -n 과 같이 사용하면 선택된 행만 출력)
-d : 행 삭제
-q : sed 종료

sed '/18nom/p' 파일이름
- 18nom인 놈들을 출력하기 위해 '/18nom/p' 옵션줌 ( 전체 출력한번 되고 해당되는 값만 중복 해서 출력)

sed -n '/18nom/p' 파일이름
- 18nom인 라인만 출력될것임

sed '1,3d' 파일이름
- 1 에서 3번 까지 라인 삭제하고 출력함

sed '5,$d' 파일이름
- 5번에서 마지막 라인까지 삭제하고 출력, $는 파일의 마지막 라인을 나타냄

sed '4q' 파일이름
- 4번 라인까지 출력하고 종료됨. q 는 sed 종료

sed '/19nom/d' 파일이름
- 19nom 이라는 문자열 포함하는 라인제거하고 출력

sed 's/19nom/18nom/g' 파일이름
- 문자열로 19nom을 18nom으로 바꿀수 있다 (한순간에 18놈 되는거다)

sed 's/\<19nom\>/18nom/g' 파일이름
- 단어로 19nom을 18nom으로 바꿈 ( 단어로 안할 경우 아마 dog19nom, horo19nom 이런 단어들도 바뀔것이다 )

sed '1,6s/19nom/18nom/g' 파일이름
- 특정 라인만 1 - 6까지만 변경하여 출력함 (1 -6 라인 모두 출력됨)

sed -n '1,6s/19nom/18nom/gp' 파일이름
- 특정 라인만 1 - 6까지만 변경하여 출력하는데 바꾼 라인만 출력된다

sed -e 's/dog/baby/g' -e '/s/18/19/g' 파일이름
- -e는 다중 편집 옵션, sed를 중복해서 여러개 사용하겠다는 의미, -e 는 sed 명령어가 또 있다고 알려줌

^ 라인의 가장 처음을 의미 $는 라인의 가장 끝 부분을 나타냄

sed 's/^$/공백라인/g' 파일이름
- 라인의 처음이 바로 끝 부분인줄을 찾아 공백라인 이라는 문자열로 변경하여 출력






sleep
- 주어진 시간만큼 지연시키는 역활
- sleep 10 : 10초 ( m : 분 , h : 시간, d : 일) 스크립트에서 많이 쓴다고 함 


sort
- 데이터에서 필드를 추출하는 명령어
- 원하는 순서 및 원하는 자료만을 추출 가능 ( cat 과 다른점)
- 아무 옵션 안주고 sort 파일이름 을 할 경우 첫번째 필드를 기준으로 오름차순으로 정렬해서 출력 (파일은 변경되지 않음)

-r : 내림차 순
-f : 대소문자 구분없음
-k 필드지정 라인 (열)을 기준잡고 정렬하겠다는 의미 sort -k 3 파일이름 이런느낌?

sort -k2 -r > kek 
- 2번 열을 기준으로 내림차순으로 정렬하여 kek 이란 파일로 저장함

sort -t : -k2 -n -r 파일이름 | head 
- 2번 열 기준이며 필드 구분자는 : -n 은 숫자로 정열하되 -r 내림차 순으로 정렬하고 head 는 위에서 10라인만 출력



split
- 파일을 분활하는 명령어, -b 파일을 byte 단위로 분활, -l 파일을 주어진 라인수로 분활
- 분활된 파일들을 aa ab ba bb 이런식으로 나누어진다....
- 옜날에나 파일 나누었지 요즘은 나눌일이 있을려나?

split -b 650m kek.tar.gz : kek.tar.gz 파일을 650메가 단위로 분활






telnet
- 다른 시스템에 접속할때 사용함 (23번 포트 이용) 시바 아이디랑 패스워드 그대로 노출됨
- 보니깐 telnet IP 포트번호 주고 해당포트가 열려 있는지 확인하는데 많이 사용함

top
CPU, 메모리 사용량 5초 단위로 갱신함 ( 서버 상태 확인시 많이 이용)


단축키

Space : 화면 갱신

h : 도움말

r : Nice값 변경

s : 화면 갱신 시간 변경

M : 프로세스를 메모리 사용량 (RSS) 순서로 정열

P : 프로세스를 CPU 사용량으로 정렬 (기본값)

q: 종료



PID : 프로세스 번호
USER : 프로세스의 소유자
PRI : Priority 프로세스 우선순위
NI : Nice 값 -20 - 19 사이의 값 ( 작을수록 우선 순위 높음)
SIZE : 프로세스의 코드와 데이터 크기 ( KB 단위)
RSS : 프로세스가 사용중인 실제 메모리양
SHARE : 프로세스가 사용중인 공유 메모리양
STAT : 프로세스의 상태 : S, D, R, Z, T, 등으로 구분
%CPU : 시피유 사용률
%MEM : 메모리 사용률
TIME : 프로세스가 실행되고 있는 시간
COMMAND : 프로세스를 실행한 커맨드





touch


파일의 시간정보와 관련해서 사용하는 경우 / 그냥 빈 파일을 하나 만들거나 할때 사용

touch kek 
- 크기가 0 인 kek 파일을 만듬 (시간 정보를 갖는 빈 파일을 만들어서 프로젝트의 변경날짜 추적하는데 사용??)

touch 기존 존재하는 파일이름
- 파일이 최종수정일이 명령날렸던 시간과 날짜로 바뀌어 있다 (과연 어디다가 쓸지 ㅋ)




useradd : 계정생성하기



adduser  takakocap  -b /home/userhome  -p `openssl passwd 만들패스워드입력`

 


: -b 홈 디렉토리 경로

: -p 패스워드 지정




wc 
- 파일내의 라인( -l ), 단어( -w ), 문자( -c ) 의 수를 출력함
- 아무 옵션 안주면 3개다 출력함.

'Linux' 카테고리의 다른 글

리눅스 기본 개념들 정리  (0) 2015.06.04
리눅스 데몬들 정리  (0) 2015.06.04
리눅스 명령어 정리  (0) 2015.06.04
/etc/shadow 파일 구조  (0) 2015.06.04
systemctl (systemd) 명령어  (0) 2015.06.04
리눅스에서 run 파일 실행시키기  (0) 2015.06.04
댓글
댓글쓰기 폼