관리 메뉴

I LOVE EJ

리눅스 명령어 노트 본문

Os & Server/Linux

리눅스 명령어 노트

BeOne 2009. 2. 12. 11:29

■ 리눅스

ls(list-해당 폴더의 내용을 보여달라)
cd(change directory-디렉토리 이동)
pwd(현재 디렉토리 위치)

*네트워크 셋팅
ifconfig -->ip정보확인
newconfig-->리눅스 시스템 ip설정 셋팅

네트워크데몬을 재시작
현재 /etc/init.d
./network restart
./network start
./network stop
./network status

ifconfig : IP.SM.MAC 
cat /etc/resolv.conf --> 파일 : 찾을 DNS

vi /etc/resolv.conf
i --> 수정 --> shift + : --> wq (저장하고 나가겠다)
        q!(저장안하고 나가겠다)

cat /etc/resolv.conf

*영문이 깨질때 export LANG=en_US

cat /etc/sysconfig/network-scripts/ifcfg-eth0 --> default정보

cat ifcfg-eth0
-----------------------------------------------------------------------
*내가 누구로 로그인했지?
 whoami
 who
 who am i
*패스워드 변경
 passwd
 패스워드
 exit
-------------------------------------------------------------------------
일반계정 만들기
 useradd babo
 passwd babo
 패스워드

root --> 자기방 : /root
일반계정 --> 자기방 : /home/계정명

cat /etc/passwd
--------------------------------------------------------------------------
Telnet(윈도우의 터미널서버) 가능하게 셋팅
1.구성
2.데몬재시작

cd /etc/xinetd.d <-- 자주요청이 되지 않는 데몬들만 모여있다(수퍼데몬)
ls
 vi telnet -->disable = yes를 no로 변경후 저장하고 나감

telnet localhost
일반계정으로 로그인
 su - (root로 승격)
-------------------------------------------------------------------------
기본명령어
*리눅스/유닉스 확장자에 대한 개념이 없다
윈도우:~.txt,~.hwp,~.dll.....-->편하다

ls(list-해당폴더의 어떤 것들이 있나를 나열)
ls
ls -a(숨긴파일(.파일명)표시)
ls -l(자세하게 표시)
ls -al(숨긴파일까지 자세하게 표시)
ls -s(정렬하여 표시)
ls -als(숨긴파일까지 자세하게 정렬하여 표시)

절대경로  VS  상대경로
최상위(/)부터     지금현재 디렉토리 기준

ls -al / -->절대경로
ls -al /etc -->절대경로
ls -al ../etc -->상대경로

*파일만들기
touch aaa.txt
touch bbb.txt

ls *.txt
ls *a*
ls /etc/pass* -als
ls -als /etc/pass*
ls -als ../etc/pass*
------------------------------------------------------------------------
로그인 하고 처음 만나는게 쉘(리눅스-bash,유닉스-sh)
좋은기능 3가지
1.tab키 기능 -->개체명을 다 안써도 된다.
2.alias 기능 -->명령어를 만들어 쓸수있다.
3.history기능 -->내가쳤던 명령어들을 조사가능

ls -als --> l
alias l='ls -als'

*쉘의 기능
키보드로 명령어를 받고 그 해당 명령어를 찾아(?)서 명령어를
실행하되(옵션,인자값) 실행한 뒤에 기본적으로 모니터로 출력.

1.명령어를 어떨게 찾나?
echo $PATH = (Response.Write(PATH))

cat 1.txt = cat < 1.txt
cat > 2.txt (파일만드는 방법중하나)

pwd(print woring directory)
echo $PWD

*경로 보여주기 셋팅
vi /etc/bashrc 에서 46번째 라인에 $PWD추가한후 저장하고 나간다.
로그인을 다시하면 적용된다

-------------------------------------------------------------------------
리눅스 상에서 간단한 FTP 클라이언트 사용법

FTPserver : window server
Linux : cliente

*명령어
ftp IP,FQDN
너 누구냐?(만약 익명연결 허용이라면
  계정명 : anonymous
  패스워드: email

모드 2가지
1.binary 모드(2진화모드) - 안정적
2.ascii모드(아스키모드) - 실행파일,압축파일은 불안정

다운받을때 자꾸 물어본다
prompt

서버에 있는 자원을 볼때
ls --> 서버에 있는 자원   
!ls -->클라이언트 현재 디렉토리에 있는자원

다운받을때
get 파일명
mget aa*  -> aa로 시작하는 파일을 다받아라

업로드할때
put 파일명
mput aa* -->aa로 시작하는것은 다올려라

삭제할때
delete 파일명
mdelete aa* --> aa로시작하는 파일은 다 지워라

FTP상에서 도움말
? --> 모든명령어를 볼수 있다

빠져나갈때
bye
-------------------------------------------------------------------------
디렉토리 이동
cd(절대경로 VS 상대경로)

cd 엔터 --> 자신의 홈디렉토리로 가라
cd ~ -->자신의 홈디렉토리로 가라
cd . -->아무의미 없다
cd .. -->상위 디렉토리로 가라
cd / -->최상위 디렉토리도 가라
--------------------------------------------------------------------------
디렉토리 만들기
mkdir(make directory),rmdir(디렉토리 삭제)

mkdir aaadir -->현재 디렉토리에 만들어짐
mkdir bbbdir ccdir -->둘다 만들어짐
mkdir /root/eeedir -->경로지정한 곳에 만들어짐
mkdir /root/adir bdir cdir -->경로 지정한곳에 멀티로 만든다

rmdir bbbdir cccdir
주의)비어있지 않으면 못지운다.
---------------------------------------------------------------------------
옵션중 반드시 알아야 할 3가지..
-i (상호대화 옵션)
-f (강제 옵션)
-r (내 하위모든것 지정옵션)

파일만드는것?
touch aaa.txt
cat > bbb.txt
vi aaa.txt

파일지우기
rm 파일명

*rm -rf 디렉토리명(디렉토리안에 모든것까지 묻지않고 다지운다)
cp(copy)복사

cp(어디에/어떤거를)(어디에/어떤거로)
cp aaa.txt bbb.txt
cp aaa.txt bbb.txt aaadir

cp(copy)복사

cp(어디에/어떤거를) (어디에 /어떤거로)
cp aaa.txt bbb.txt
cp aaa.txt bbb.txt aaadir

cp -r /boot/ ~/aaadir
cp -r /boot/* ~/bbbdir

cp aaa.txt bbb.txt 만약에 bbb.txt가 없다면
     bbb.txt가 있다면
----------------------------------------------------------------------------------
mv(move) -- 파일이나 디렉토리 이동,이름바꾸기

mv (어떤걸) (어디에)
mv aaa.txt bbb.txt (aaa.txt 파일을 bbb.txt로 이름변경)
mv aaa.txt bbb.txt aaadir

mv aaa.txt bbb.txt(기존에 bbb.txt가 있다면 mv -i)
mv aaadir bbbdir(디렉토리 이동)

mv aaa.txt ~/test/bbb.txt 이동과 동시에 이름바꾸기.

/root에
aaa.txt 내용
------------------
hi~~~~~
------------------
/root/test 폴더 만들고 aaa.txt복사
/root/test 하위에 bbb.txt ccc.txt 만들기

/root/test 폴더를 /root/test2로 복사

/root/test2  폴더를 /로 복사

/test2 지우기

/root/test 폴더를 /test로 이동
/test 지우기
------------------------------------------------------------------------------------
Vi 에디터
*유닉스 계열의 대표적인 필수 에디터
*서버구성 자체가 에디팅 방식

실행모드
w : 저장하기
wq : 저장하고 빠져나가기
q! : 그냥 빠져나가기
q : 수정안한 상태에서 빠져나가기

 

실 행 모 드   ==  저장,빠져나가기,해당라인으로
     ↑   번호달기(set number
     shift + :    set nonumber),검색어(/검색어)
  ↓     ↑
  ↓엔터 ↑
  ↓     ↑
  ↓
명 령 모 드    ==  카피(yy,3yy),붙여넣기(p,3p)       ([.])
         ↑    잘라내기(dd,3dd),실행취소(u)
  ↓     ↑         yy,3yy->p,3p dd->p
  ↓i,o,a↑esc
  ↓     ↑
  ↓
입 력 모 드    ==  내용수정

yy,3yy(라인단위 복사)    -->   p,2p(라인단위 붙여넣기)
dd,3dd(라인단위 잘라내기)-->
실행취소:u

검색
shift + :
:/pop3 -->  다음검색어(n),이전검색어(N)
-------------------------------------------------------------------------------
*사용자 및 환경설정 파일

/root
/home/계정명

who,whoami,who am i,w(가장많은정보를 보여줌)


사용자를 만들면 /etc/passwd파일에 등록됨.
root계정은 uid --> 0(1~499번까지는 다른 시스템들이 쓰는 계정넘버)
일반계정은 uid --> 500번이상을 부여한다.


*grep 해당열만 자르겠다
grep babo /etc/passwd --> /etc/passwd파일에 babo가 들어간 문자열만
                          뽑아주겠다.


rpm -qa|grep 프로그램명
ps -ef|grep 데몬명

. .bashrc --> 로그아웃하지 말고 그냥 파일 내용 적용해서 해당 사용자의 환경설정
              을 메모리상에  변경해라.
-----------------------------------------------------------------------------------
사용자 환경설정 파일
.bash_logout
.bashrc
.bash_profile

3개는 사용자를 만들때 자동으로 만들어 짐 /etc/skel 안에 3개 파일이 있는데
 이것을 복사해서 /home/사용자명/ 안에 카피되어진다.
*공통환경 설정파일
/etc/profile
/etc/bashrc

*환경설정 파일 인식순서

/etc/profile --> ~/.bash_profile --> ~/.bashrc
--------------------------------------------------------------------------
압축과 묶음.

프로그램 설치 --> 소스공개 --> 소스컴파일
문제점)공개 해야하는데 파일과 디렉토리가 많다

~~.tar.gz(소스)   > rpm

*압축(gzip,bzip2,compress)
gzip(~~.gz)  ==*gzip -1v 부터 -9까지 압축률을 조정할수있음
gunzip


bzip2(~~.bz2)
bunzip2


compress(~~.Z)
uncompress

*묶음(tar)

tar cvf my.tar . (현재 디렉토리를 묶음)
tar xvf my.tar   (묶음을 풀때)
tar xvfC my.tar test(C옵션은 디렉토리 지정해서 풀수있다.)


c(묶음)
x(풀다)
v(본다)
f(파일-필수)

*묶는것과 압축을 동시에

tar cvfz my.tar.gz

*풀때
tar xvfz my.tar.gz
tar xvfzC mt.tar.gz test

3개 파일을
/test란 티렉토리를 만들고 여기에 3개의 파일을 이동
/apm하위에다 묶음을 풀기.

mkdir /test
mv -f apa* /test
mv -f php* /test
mv -f my* /test

cd/test
tar xvfzC apa탭키 /apm
tar xvfzC php탭키 /apm
tar xvfzC mys탭키 /apm

*압축된 내용을 풀지않고 미리보여주기

tar tvfz my.tar.gz

du(disk use의약자) -sh --> 디렉토리용량
----------------------------------------------------------------------
*파일시스템과 링크
유닉스 계열에서는 inode라는 독특한 파일시스템 구조를 가짐
ls -ial

inode값-------------------파일명
 
각 파티션마다 inode란 특별한 파일의 저장정보를 갖는 저장장소(메타데이타)를 가짐
해당 inode번호 --> 해당파일의 주인,그룹,permission,파일타입,하드링크갯수,파일사이즈
     수정시간,파일의 첫번째 블락하드디스크 포인터
디렉토리(파일)
해당 inode ----------------- 파일명

*즉 해당 inode 번호만 알면 해당파일에 접근할 수 있다?
 해당파일에 접근하려면 해당 inode에 반드시 접근해야한다?
-------------------------------------------------------------------------------------
링크(하드링크,소프트링크)
[1]하드링크
*그렇다면 같은 inode번호를 서로다른 파일로 지칭할 수 있겠느냐? --> 가능하다.

1.실제 내용을 가지고 있는 영역은 한개.
2.원파일이 사라지면 하드링크도 사라짐.
3.inode에 하드링크 카운트가 1이여야 삭제가 가능하다.
4.하드링크의 단점 --> 파티션 경계를 넘어갈수 없다.

[2]소프트링크(파일속성 앞에 l로 표시된다)
ls -s aaa.txt saaa.txt

1.타겟파일 자체에 대한 위치의 포인터값(해당파일의 물리적경로)
2.파티션 경계를 넘을수 있다.
3.원본파일 없어지면 소프트링크는 인식을 못한다.(리눅스가 인식)

활용예)/root/manage
안에..자주사용하는 파일
자주드나드는 디렉토리

ln -s /etc/init.d init
cd init
-------------------------------------------------------------------------------------
사용자 용량제한(디스크 쿼터걸기)
1.하드디스크를 하나 추가
2.파티션
3.포멧
4.마운트(mount ~~~)
5./etc/fstab파일설정(자동마운팅) /mydisk(vi /etc/fstab 에서/dev/hda1        /mydisk추가)

디스크 쿼터
/etc/fstab -->등록된건 자동마운팅
옵션
1.rw,ro
2.nouser(일반사용자는 마운팅 불가능.root만마운팅가능),user(일반사용자도 마운팅가능)
3.auto(부팅할때 자동마운팅),noauto(자동부팅X)

default값 -- rw,nouser,auto
*백업
0
1
*파일시스템 체크
0
1
2
-----------------------------------------------------------------------------
*디스크 쿼서 설정 순서
1./etc/fstab에 쿼터를 가져갈 파티션에 usrquota 옵션을 적어주기
2.reboot --> mount,dh -h
3.해당 디렉토리가서 quota.user 파일을 만든다.
4.quotacheck -a
  quotacheck -a -m
5.convertquota -u /mydisk (커널에게 /mydisk를 쿼터기능 알림) -> aquota.user파일이생성
6.edquota -t (유예기간 확인) --필수 X
7.edquota -u babo
8.quotaon -a (쿼터기능을 on)
9.repquota -va (쿼터설정사항 보기)
10.여러명에게 쿼터를 걸때.
repquota -va
edquota -p babo user1 user2 user3
quotacheck -a
quotaoff -a
quotaon -a
repquota -va

*명령어
quotacheck(쿼터사항을 체크)
edquota(쿼터설정)
quotaon(쿼터기능 on)
quotaoff(쿼터기능 off)
repquota(쿼터설정 확인)
convertquota(쿼터기능을 커널에게 알림)
----------------------------------------------------------------------------------------
프로세스
*프로그램 -정적,실행가능한 파일

*프로세스 -동적,실행가능한 파일이 실행 -->메모리에 적재 되어있는 형태
    프로세스ID

id --> uid(root=0,일반사용자=500이상)
프로세스 -->pid
파일 --> inode
group --> gid

*프로세스의 특징(pstree)
1.자신을 낳아준 프로세스가 있다.
2.프로세스는 자식을 낳을수 있다.
3.init 프로세스
4.해당 프로세스는 ppid알고 있다.

pstree
pstree -pn

*프로세스 타입
유저와 인터렉티브 한놈 --> 포그라운드 프로세스(ctrl + c)
뒤에서 일하고 있는 놈 --> 백그라운드 프로세스(kill -9 pid)
*실행시간이 오래걸리는작업--> 백그라운드

find / -name services & --> "Done"


*포그라운드 --> 백그라운드(ctrl + Z -->bg [작업번호 부여받음])
*백그라운드 --> 포그라운드
jobs에서 작업번호 확인
fg %작업번호

jobs 현재 백그라운드 작업들 보여달라.
-------------------------------------------------------------------------------------
리눅스 시스템 초기화
1.ROM --> MBR(부팅 매니져)
          Lilo --> 뭐로 부팅할래?
2./파티션을 마운트 --> init프로세스
3./etc/inittab 파일을 읽어들임.-->/etc/rc.d/rc.sysinit
       run-level결정
4./etc/rc.d/rc.sysinit --> 시스템에서 부팅시 시스템 초기화 스크립트가 있음.
5./etc/rc.d/rc 3 --> 실행
6./etc/rc.d/rc.local 파일 -->수동으로 시스템을 시작할때 어떤 실행파일들을
         실행시킬것인가를 명시주는 곳.
7.로그인 --> 환경설정 파일 -- >홈디렉토리 안착....
----------------------------------------------------------------------------------------------
rpm -- 압축,묶음,설치....

rpm -ivh ~~~.rpm (설치)
rpm -Uvh ~~~.rpm (설치,업그레이드)
rpm -Uvh --force --nodeps  ~~.rpm (강제로 실행 할때)

rpm -qa|grep ftp(설치를 확인할때)

rpm -e ~~~
--------------------------------------------------------------------------------------
서버 셋팅할때 순서,
1.설치(~rpm,소스컴파일)
2.서버구성파일 vi에디터로 셋팅
3.데몬 재시작.
4.권한,디렉토리 생성.
*proftpd
환경설정 파일 : /etc/proftpd.conf

groupadd nogroup
/etc/init.d/proftpd start

ps -ef|grep proftpd

MKD  -> 디렉토리 만들기 권한
STORE -> 업로드

MKD  + STORE  = WRITE

<Limit READ WRITE>
 AllowAll
</Limit>
<Limit READ>
 DenyAll
</Limit>
-------------------------------------------------------------------------------------
*사이트 루트는 쓰기 금지

download --> 다운로드만

upload -->다운,업로드 전부

'Os & Server > Linux' 카테고리의 다른 글

리눅스 기본명령어 정리자료  (0) 2009.02.12
Linux 기초 및 vi 에디터  (0) 2009.02.12
리눅스 VI 에디터 기본 명령어  (0) 2009.02.12
리눅스 명령어 모음  (1) 2009.02.12