Study

Linux 명령어

슈라。 2008. 11. 27. 13:46

기본명령어
 

pwd : 현재 작업중인 디렉토리의 절대 경로를 보여준다.

ls :
파일과 디렉토리 구조를 보여준다
.
    ls [option] [directory / file]

-a --all : .을 포함한 경로안의 모든 파일을 보여준다.
-d -directory :
경로안의 내용을 나영하지 않고 그 내경로의 내용을 보여준다
.
-h :
파일의 크기를 단위별로 조절하여 보기 쉽게 출력한다
.
-l :
속성값, i노드값등 자세한 정보

-n :
이름의 나열에서 username groupname 대신 UserID GroupID를 사용한다.
-t :
파일 형식을 알리는 문자를 각 파일 뒤에 출력한다.

* : 실행 가능한 파일
/ :
디렉토리 파일
@ :
심볼릭 링크
= :
소켓
-R :
하위 경로와 그 안에 있는 모든 파일들도 같이 나열한다.
cd :
원하는 디렉토리로 이동한다
.
 cd [directory]

. : 현재 디렉토리
.. :
상위 디렉토리
$ :
변수명에 지정된 디렉토리
~
혹은 $HOME : 사용자의 홈디렉토리
~username :
해당 유저의 홈디렉토리

cp : 파일복사
cp [option] [sources] [target]

-a : 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다.
-i :
복사 대상 파일이 있을경우 사용자에게 복사에 대한 여부를 물어본다
.
-p :
원본파일의 소유자, 그릅권한 시간정보들을 그대로 보존하여 복사한다
.
-r / -R :
디렉토리를 복사할 경우 하위 디렉토리와 파일을 모두 복사한다
.
-v :
복사 상태를 자세하게 보여준다.

mv : 파일 이동 혹은 파일 이름변경
mv [option] [sources] [target]

-v : 이동하기전 각각의 파일 이름을 출력한다.
파일의 이동은 복사와 다르게 위치만 변경 하는 것이기 때문에 경로만 바뀔뿐 권한은 바뀌지 않는다.

파일의 이름 변경시에도 활용 가능하다.

mkdir : 디렉토리 생성
rmdir :
디렉토리 삭제
  -r
옵션사용. 거의 쓰이지 않는다. rm으로 삭제가 되니까.

rm : 파일삭제
rm -rf /
디렉토리

해당 디렉토리와 그 하위 내용 모두! 삭제

touch : 빈 파일생성 혹은 액세스시간이나 갱신 시간을 수정
cat :
임의의 입력을 출력해서 보여준다.
    ex) cat /rpoc/cpuinfo  
/proc/cpuinfo 파일의 내용을 stdout으로 출력

stdout = standard out = 기본출력 = 모니터
ex) cat >

echo : 임의의 한줄 입력을 출력해서 보여준다.
 

find : 원하는 파일 찾기
find [
어디서부터] [옵션] [무엇을]

more : 한화면씩 보기
less :
한화면씩 보기
  more
보다 발전된 형태 

head : 파일 또는 표준 입력의 처음 10줄을 보여줌 

tail : 파일 또는 표준 입력의 마지막 10줄을 보여줌 

alias : 명령어 축약
자주 사용하는 명령어를 줄여서 실행 가능하게 해준다.
alias [
단축어]="[실제 실행 명령어
]"
ex) #alias l = "clear"
l
실행시 celar 가 실행되어 진다. alias 예약어는 PATH 안의 공유 파일보다 먼저 실행되므로 cd = clear 등으로 지정하면
..
cd
를 쳤을시 celar 명령어가 입력되어지므로 주의!

 

사용자 관련 명령어
useradd :
사용자 계정 생성
usermod :
사용자 계정 정보 변경
userdel :
사용자 계정 삭제#
groupadd :
그룹 추가

   
그룹을 추가 . (실행되지 않는다면 which groupadd 찾는다

만약에 절대주소가 나오면 PATH설정이 잘못된거다. su - 로 관리자 환경변수를 읽어서 관리자로 들어간다)

groupmod 그룹 수정 ? 이런 명령어 있던가 ?
groupdel :
그룹 삭제

id :
사용자 정보, uid, , 그룹정보 확인
groups :
현재 사용자가 속한 그룹 정보를 확인
w :
현재 시스템에 접속한 사용자 목록을 출력한다.
 
사용자 목록과 작업 내용을 확인 할 수 있다.

passwd : 사용자의 패스워드 입력 및 변경

권한 설정 명령어
chmod :
파일이나 폴더에 대한 권한 설정
chown :
소유자에 대한 소유권을 변경
chgrp :
그룹에 대한 소유권을 변경
umask :
새로 만들어지는 파일에 대해 기본적인 권한 설정/확인#
chattr : root
전용 권한 설정

파일의 소유자라도 read-only로만 파일을 열수있게하고 root chattr로 설정한 것을 해제하지 않으면 절대 chattr +1 로 설정한 파일을 지울 수 없다.

root만 사용 가능하다.

 

장치 관련 명령어
ifconfig : 네트워크 관련 정보를 출력한다. Red Hat/Fedora 계열은 지원하지 않는다.
   
네트워크 인터페이스 설정 및 튜닝 유틸리티

   
부팅시 인터페이스를 설정할 때나 리부팅에 인터페이스를 내리기 위해 쓰임
    ex)ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print$2}' | cut -c 6-
    ->
각각의 이더넷 장치(eth0, eth1...)에 할당된 IP주소만 출력된다.
    :ifconfig
의 결과에서 inet addr이 포함된 문자열 중 localhost(lo, 127.0.0.1)가 아닌 라인을

   
모두 찾아 각각의 2번째 토큰을 6번째 글자부터 출력

 

route : 커널 라우팅 테이블 정보를 보거나 변경함
chkconfig :
네트워크 설정을 체크해줌
    /etc/rc?.d
디렉토리에 들어있고 부팅시 시작되는 네트워크 서비스들을 관리함

tcpdump : 패킷 스니퍼(덤프)
네트워크 패킷 '스니퍼', 주어진 기준에 맞는 패킷 헤더의 덤프를 떠서 네트워크 트래픽을 분석하고 문제점을 해결할 수 있게 해준다.

mount / unmount : 파일 시스템을 접속 / 해제 시키 시킨다.
리눅스는 파일 폴더 키보드 마우스 기타 장치로으 입, 출력 모든것을 파일로 인식하고 처리한다. (윈도우와 다름
)
 
파일시스템을 접속한다는 말은 장치(시디롬, 저장장치등)을 접속시키거나 해제시킨다는 말과 동일하다.

sync : 버퍼 작업 처리
버퍼에 들어있는 최신 데이터를 하드 디스크로 즉시 쓰게 한다.
변경한 데이터가 갑작스런 전원 이상에서도 살아 남을 수 있게 해준다.

halt 명령어와 함께 써봤죠 ?
losetup :
루프백 디바이스 설정

mkswap :
스왑 파티션이나 스왑 파일을 만들어 준다.
swapon / swapoff :
스왑 파티션이나 스왑 파일을 활성화/비활성화 시켜준다

mke2fs :
리눅스 ext2 파일 시스템을 만들어 준다
   
이 명령어는 관리자만 사용 가능하다.

tune2fs : ext2파일 시스템을 튜닝해 준다.
최대 마운트 숫자같은 파일 시스템의 매개변수를 바꾸는데 사용할 수 있다
.
관리자만 실행 가능하다.

dumpe2fs : 파일 스템 정보 출력
아주 자세한 파일 시스템의 정보를 표준 출력으로 덤프해 준다.
관리자만 실행 가능하다.

hdparm : 하드디스크 매개변수를 보거나 바꿀 수 있다.
du :
사용자 자신의 디스크 사용상황을 보여준다
.
   
즉 용량을 보여준다는 말

df : 사용자 자신의 HDD의 상세 정보를 보여준다.
사용중인 HDD 의 파티션정보, 전체용량, 사용중인 용량, 남은용량등을 %로 알려준다.

free : Memory 사용량을 표시한다.
uptime :
부팅한 이후로 시스템 사용 시간을 표시

lrp : 오프라인으로 명시된 파일을 프린트 한다.
lpq : print queue
에 들어간 파일으 소유자와 파일명, 잡번호를 보여준다
.
 

lpqm : 프린트 큐에 들어간 파일을 취소한다.
 

tty : tty 의 경로이름 알려줌
컴퓨터 시스템에 연결되어 사용되고 있는 터미널의 경로 이름을 알려준다

tset : 단말기 유형을 결정하는 프로그램 

기타 명령어~ (분류 전항목들)
export : 환경변수를 편집한다.
    ex) export PATH=$PATH:/usr/locak/java/bin  
   
∴ 환경변수 PATH 의 기존 내용에 /usr/local/java/bin을 추가

env : 설정된 환경변수를 출력한다

grep : 입력 대상에서 특정 문자열을 포함한 라인을 솎아낸다.
파일의 내용로 찾기
.
cat
ls 등에서  '|' 을 이용해 보고싶은 내용만을 보는 실습을 해본 적이 있다
.
 ex)grep "model name" /proc/cpuinfo  
/proc/cpuinfo 파일에서 "model name"을 포함한 라인을       순서대로 찾아 모두 출력한다.

 

awk : 특정 입력을 원하는 양식으로 처리한다.
ex) grep "Mem Total" /proc/meminfo | awk '{print$2" "$3}'
/proc/meminfo 에서 "Mem Total"을 포함한 라인의 2번째와 3번째 토큰을 한칸 띄우고 이어서 출력한다
.
정상적으로 출력된다면  xxxxx kb 가 출력될 것이다.

 

토큰은 띄어쓰기나 탭으로 구분된다. 한단어 = 토큰1개 라고 생각해도 무방하다.

기본 grep "Mem Total" /proc/meminfo 의 출력은 -> MemTotal xxxxxxx kB 인데.

여기서 $1 = MemTotal, $2 = xxxxxxx, $3 = kB 가 된다. 이것도 정규식의 일종이라고 생각된다.

 

cut : 입력의 일부분을 잘라내고 출력한다.
ex)grep "model name" /proc/cpuinfo | cut -c 14-
->Intel(R) Core(TM)2 Duo CPU     E6550  @ 2.33GHz
Intel(R) Core(TM)2 Duo CPU     E6550  @ 2.33GHz
:/proc/cpuinfo
에서 "model name"을 포함한 라인을 찾고, 14번째 글자부터 출력한다.

 

ps : 프로세스의 사용자, CPU/Memory 점유율 등 각종 프로세스 정보를 옵션에 맞추어 출력한다.
top
dynamic이라면 ps static이다.

top : 프로세스 정보를 한번 출력으로 끝내지 않고 단위시간마다 갱신하여 표시한다.
ps
static이라면 top dynamic이다.

 

nslookup : 특정 IP domain, 또는 특정 domain IP주소를 출력한다.
nslookup [IPADDR] or [DOMAIN]

lspci : Mainboard의 각종 Hardware Interface 정보를 출력한다.
 

rpm : 프로그램 설치 삭제 : Redhat 전용 

gzip / gunzip : 압축 / 압축해제
 

bzip2 / bunzip2 : 또 다른 압축 / 압축해제
 

tar : 여러 파일을 하나로 묶는 데 사용
옵션 : -c, -x, -z, -j, -v, -f

diff : 파일의 차이 비교 , 일치시키는데 필요한 정보를 보여준다.
ln :
링크를 만든다

   
링크란. 파일 링크를 말합니다.

halt : 시스템 강제종료
사용하기전 sync 실행을 권장한다.
sync 4
번 실행후 halt 사용을 권장

 

prel : 펄명령어 실행
알고싶다면 펄을 공부하도록.

 

출처 : 용준

'Study' 카테고리의 다른 글

[OS 만들기] real mode, protected mode  (0) 2008.11.27
리눅스 부팅과정  (0) 2008.11.27
Linux Kernel source 분석 기법  (0) 2008.11.27
vim 설정  (0) 2008.11.24
Makefile  (0) 2008.11.24