본문 바로가기

OS/Linux

리눅스 기본 명령어 1

반응형

리눅스 기본 명령어

 

 ※ pwd - 현재 작업중인 디렉토리를 표시

 ※ top - cpu와 메모리 점유율 확인, 5초간격으로 실시간 전송

 ※ ps - 프로세스의 현재 상태를 보여주는 명령어
 -$ ps [options]
 [option]

pstree : 프로세스 종속연결 확인
kill 프로세스번호 : 불필요한 프로세스 삭제
kill -9 프로세스번호 : 완전 삭제

-a : 다른 이용자의 프로세스까지 나온다
-e : 작업환경까지 나오게 한다.
-f : 전체 경로로 프로세스를 표시한다.
-l : 자세한 정보를 보여준다.
-m : 메모리 정보까지 나온다
-r : 현재 실행하고 있는 프로세스를 보여준다.
-u : 각 프로세스의 이용자 이름과 시작 시각을 보여준다.
-v : 가상 메모리를 얼마나 쓰는지 나온다.
-w : 긴(wide) 형태로 출력한다. 한 행 안에 출력이 잘리지 않는다.
-x : 로그인 상태에 있는 동안 아직 끝나지 않은 프로세스를 보여준다.
자주 쓰는 명령어
ps -ax : 작동 안하는 모든 프로세스를 보여준다.
         루트(root)권한으로 다른 사용자들의 프로세스를 확인 하므로 필요 없거나 문제가 되는 프로세스를 확인할때 많이 쓴다.
ps -ef : 작동환경과 프로세스 프로그램의 전체 경로를 보여준다.
         어떤 계정에서 실행했는지 알 수 있기 때문에 해킹이나 위험한 동작을
         하는 프로세스가 있다면 이것을 실행항 계정을 알 수 있다.

 ※ ls -파일의 목록을 출력
디렉토리의 파일리스트를 확인하는 명령어
-$ ls [options] [디렉토리명] [파일명]
[options]
-a : .을 포함한 경로안의 모든 파일을 보여준다.
-c : 파일의 최근 변경시간에 따라 정렬하여 보여준다.
-d : 경로안의 내용을 나열하지 않고 보여준다.
     (쉘 스크립트에서 유용하게 쓰임)
-f : 디스크에 저장된 순으로 보여준다.
-i : 파일 왼쪽에 색인 번호를 보여준다.
-k : 파일을 KB단위로 보여준다.
-l : 파일형태, 사용권한, 하드링크번호, 소유자, 그룹, 파일크기, 시간, 연도, 파일명 순으로 보여준다.
-m : 파일을 가로로 나열한다.
-n : 이름 나열에서 UID, GID를 사용한다.
-p : 파일형태를 지시하는 문자를 각 파일에 추가한다.
-r : 내림차순으로 보여준다.
-s : 파일크기를 1kb단위로 보여준다.
-t : 최근 파일순으로 보여준다.
-u : 파일 사용순으로 보여준다.
-x : 정렬방식을 가로로 한다.
-A : . ..을 제외한 경로안의 모든 파일을 보여준다.
-B : 파일 끝이 ~인 파일은 제외하고 보여준다.
-C : 정렬을 세로로 한다.
-F : 파일 형식을 알리는 문자를 각 파일 뒤에 추가한다.

     파일구분 특수표시 ls -F
     1. 일반파일 : 아무런 표시 없음
     2. 디렉토리(폴더) : / 표시
     3. 실행파일 : * 표시
     4. 심볼릭링크파일(바로가기 아이콘) : @ 표시
     5. FIFO파일(shell파일) : |(파이프) 표시
     6. 소켓파일 : = 표시

-G : group 정보를 제외한다.
-L : 심볼릭링크 파일들을 일반 파일로 보여준다.
-R : 하위 경로와 그 안에 있는 모든 파일들도 보여준다.
-S : 파일 크기가 가장 큰 것부터 보여준다.
-U : 디스크에 저장된 순서대로 보여준다.
-1 : 한줄에 하나의 파일만 보여준다.
-w : 가로 출력값을 지정한 값으로 보여준다. (기본값 80)
--clolr=no : 파일구분의 색지정을 하지 않는다.
-u : 파일 사용순으로 보여준다.
-x : 정렬방식을 가로로 한다.
ls 는 특정 디렉토리의 파일리스트를 확인 하는 명령어이다.
리눅스의 가장 기본적인 명령어이지만 단순히 특정 디렉토리의 내용만을 확인하는 용도로만 쓰이는 것은 결코 아니다.
특정 파일의 정렬도 가능하며, 큰 파일사이즈를 찾을 수도 있고, 쉘 프롬프트의 색지정도 할 수 있고, 이외에도 매우 편리하고 강력한 기능들이 있다.
참고로 특정 디렉토리의 파일리스트를 확인하는 명령어는 ls, dir, vdir 3개가 있다.
ls 명령어를 제대로 이해하려면 다음 3가지 의미를 정확하게 이해하고 있어야 한다.
1.Atime - access time을 의미한다.
           - 파일이라면 vi등으로 열어본 시간을 뜻한다.
           - 디렉토리라면 cd로 접근하여 ls로 디렉토리의 내용을 확인한 시간을 뜻한다.   * ls -ult
2.Mtime - modification time을 의미한다.
           - 파일이라면 파일 내용이 변경된 시간을 뜻한다.
           - 디렉토리라면 디렉토리의 내용이 (파일삭제, 생성 등) 변경된 시간을 뜻한다.
           - ls -l에서 출력되는 시간이다.
3.Ctime - creation time 을 의미한다.
           - 파일의 속성이 변경된 시간을 뜻한다.
           - chmod나 chown등으로 파일의 속성이 변경된 시간을 뜻한다.        * ls -clt

 ※ cat file [ > | >> ] [저장할 file] - 파일의 내용을 표준 출력으로 보여주는 명령
여러 개의 기존 파일들을 하나로 병합, 텍스트 파일 내용을 표준 출력으로 보여준다.
cat name1 name2 name3 > mergefile  (name1,2,3 파일은 mergefile로 병합)
cat name1 >> name2

-$ cat [options] [파일][파일]....
[options]
-b 공백을 제외한 파일 내용의 줄의 맨 앞에 줄 번호를 표시.
-E 각 줄의 끝에 $로 끝나는 줄을 나타낸다.
-n 모든 줄 앞에 1부터 시작하는 줄 수를 표시한다.
-s 공백의 줄 수를 하나 이상 보여주지 않는다.
-T 탭 문자를 ^| 로 표시한다.

 ※ touch 파일 or 디렉터리 생성

빈 파일을 생성시키는 명령, 파일을 만들고 파일에 접근하거나 수정한 시간을 변경.
 - $ touch [options] [파일명]
[options]
-a 최근 파일 사용시간만 업데이트 한다.
-c 파일이 있으니까 파일을 생성하지 않는다. 예)touch -c -t 0821010 abc
-d time 현재시간 대신 지정한 시간으로 변경한다.
-m 파일이 수정된 시간을 변경한다. 예) touch -m abc 666(666파일날짜를 abc파일날짜와 동기화)
-r file 지정한 파일의 시간으로 변경한다.
  예) touch -r abc *
-t time 현재시간 대신 지정한 시간으로 변경한다. (MMDDHHMM 형식 입력)
  예) touch -t 0821010 abc

 ※ cd - 디렉토리 이동, 이동 방법은 절대경로 참조, 상대경로 참조, 계정 참조 방식 존재

..  :상위 디렉토리     .  :현재 디렉토리
cd - : 이전 디렉토리로 이동   cd ~ : root 이동

 ※ cp [-Rf] source file or dir destination file or dir - 파일이나 디렉토리를 복사하는 명령

-R : 하위 디렉토리까지 복사
-f : 기존파일이 있을경우 덮어씌움

 ※ mv [-f] source file or dir destination file or dir - 파일이나 디렉토리를 이동시키는 명령어
파일이나 디렉토리의 이름을 변경시 사용가능
-f : 기존파일이 있을경우 덮어씌움

 ※ rm [-f] source file or dir - 파일이나 디렉토리를 삭제하는 명령어
-f : 무조건 삭제
-i : 삭제시 삭제할 것인지 확인

-r : 하위디렉토리까지 모두 삭제

 ※ mkdir [-p] dir - 디렉토리 생성 명령어
설정을 하지 않을 경우 기본적으로 755의 실행 권한을 갖는다.
-p : 하위 디렉토리까지 한번에 생성

-m mode : 새로 만들어 지는 디렉토리의 권한 설정 예)mkdir -m 750 park
폴더의 권한은 기본적으로 755를 준다.
022 - 777 = 755
022 - 666 = 644
umask 변경 vi /etc/bashrc

 ※ find - 특정 파일을 검색하는 명령어
find . ?type d : 하위 디렉토리 목록 출력
find . ?type f ?name “*.txt” : txt로 끝나는 파일 이름 출력

 ※ chattr, lsattr - 중요파일은 보호속성을 설정한다
속성 변경(+ : 속성 부여, - : 속성 해제, = : 속성 지정)
 - $ chattr [options] [파일명]
 - $ lsattr 명령으로 chattr 모드를 확인할 수 있다.
[options]
-R 디렉토리와 그 이하 모든 속성을 변환시킨다.
-V 변화된 속성에 대하여 자세히 출력한다.
-v 버전확인
-a 파일을 추가모드로만 열 수 있다.
-c 커널에 의해 디스크 상에 압축 상태로 저정된다.
-d dump 명령 수행 시 백업되지 않는다.
-i 파일을 수정할 수 없다. 오직 슈퍼유저(root)만이 변경 가능하다.(root만 설정가능)
-s 파일이 지워질 때 일 단 블록들이 모두 0이 된 다음 디스크에 기록된다.
-S 파일이 수정될 때 그 변화가 디스크 상에 동기화 된다.
-u 파일이 지워지면 내용이 저장된다.

 ※ finger - 사용자 정보를 찾는다.
 -$ finger [options] [username/domain]
[options]

-l 멀티라인 형식으로 사용자 홈 디렉토리, 집전화번호, 로그인 쉘, 메일, 홈디렉토리 파일 등과 함께 -s 옵션으로 보이는 정보를

    보여준다.
-s 사용자의 로그인 이름, 실제이름, 터미널 이름, 상태, idle 시간, 로그인 시간, 사무실 이치, 사무실 전화번호를 보여준다.

 ※ vm 툴 설치
 mkdir /tmp/cd (cd 디렉토리 생성)
 mount /dev/cdrom /tmp/cd (cd 디렉토리를 cd-rom 으로 이용)
 cd /tmp
 mkdir /tmp/cd2 (vm 인스톨 파일 저장 디렉토리 생성)
 cp VMware-linux-tools.tar.gz /tmp/cd2
 cd /tmp/cd2
 tar zxf /tmp/cd2/vmware-linux-tools.tar.gz  (압축해제)
 umount /tmp/cd
 cd vmware-tools-distrib
./vmware-install.pl

 ※ 리눅스 제거
 - 리눅스
 윈도우 부팅디스켓 준비(fdisk.exe 포함)
 리눅스 부팅 후 리눅스 fdisk 명령이용 파티션 삭제
 윈도우 부팅디스켓으로 부팅 후, fdisk.exe /mbr 명령으로 부트로더 제거
 - 윈도우
 윈도우 부팅디스켓으로 부팅 후, fdisk 명령이용하여 non-dos 파티션 제거
 fdisk.exe/mbr

 ※ mount -파일시스템을 마운트하여 사용할 수 있게 만든다.
-$ mount [options] [장치명] [마운트디렉토리]
[options]
-a : /etc/fstab에 기술되어 있는 모든 파일시스템을 마운트 한다.
     noauto 옵션은 자동마운트에서 제외된다.
-f : 실제 시스템 호출은 하지 않고 마운트할 수 있는지 점검한다.
-l : 마운트한 파일시스템의 정보를 보여준다.
-n : /etc/fstab 파일에 쓰기 작업을 하지 않고 마운트 한다.
     /etc가 읽기전용 파일시스템인 경우에 필요하다.
-r : 읽기만 가능하게 마운트 한다.(=-o:ro)
-w : 읽기/쓰기 모드로 마운트 한다.(Default. =-o:ro)
-t 파일시스템 : 파일 시스템 형식을 지정한다.
-o : -o 옵션 뒤에 콜론(:)으로 다음 옵션 중 필요한 것을 선택하여 사용한다.
   async : 파일시스템에 대한 I/O가 비동기적으로 이루어지도록 한다.
   auto : -a 옵션으로 마운트한다.
   defaults : rw, suid, dev, exec, auto, nouser, async를 기본 옵션으로 한다.
   dev : 파일시스템 상의 문자, 블록 특수 장치를 해석한다.
   exec : 바이너리의 실행은 허가한다.
   noauto : -a 옵션으로 마운트 되지 않는다.
   nodev : 파일시스템상의 문자, 블록 특수 장치를 해석하지 않는다.
   noexec : 파일시스템에 실행권한을 주지 않는다.
   nosuid : set-UID, set-GID를 무시하게 한다.
   nouser : 일반 사용자는 마운트를 못하게 한다.
   remount : 이미 마운트된 파일시스템을 다시 마운트 한다.
   ro : 파일시스템을 읽기만 가능하게 한다.
   rw : 읽기/쓰기 모두 가능하게 마운트 한다.
   suid : set-UID, set-GID 가 효력을 발휘할 수 있게 해준다.

   cdrom 마운트 : mount -t iso9660 /dev/cdrom /mnt/cdrom

 

 ※ umount - 마운트한 장치를 해제한다.
-$ umount [options] [장치명]
-$ umount [options] [-t 파일시스템속성] [장치명]
[options]
-v : umount한 내용을 보여준다.
-n : /etc/mtab 를 갱신하지 않고 umount한다.
-a : /etc/mtab 파일에 모든 파일 시스템을 umount 한다.
-t 파일시스템속성 : umount 하고자 하는 파일시스템의 종류를 지정한다.
                    둘 이상은 콤마(,)로 구분한다. no를 접두사로 사용하면
                    특정 속성의 파일시스템을 umount 리스트에서 제외할 수도 있다.

 ※ pstree
프로세스의 관계를 트리구조로 보여주는 명령어
-$ pstree [options] [pid] [user]
[option]
-a : 명령행에서 지정한 인수가 있다면 명령어 라인 인수까지 보여준다.
-c : 기본값은 동일한 트리 내의 같은 프로세스를 하나의 프로세스만 보여주고

      해당 프로세스의 개수를 나타내는데, 같은 프로세스를 모두 보여준다.
-G : 트리 형태를 보기 좋게 VT100 형태로 보여준다.
-h : 현재 프로세스와 부모 프로세스를 하이라이트로 보여준다.
-H pid : pid로 지정된 프로세스와 부모 프로세스를 하이라이트로 보여준다.
-l : 긴라인을 모두 보여준다.
-n : PID를 기준으로 정렬하여 보여준다.
-p : PID까지 보여준다.
-u : UID를 보여준다.
-U : UTF-8 형태로 보여준다.
pid : 지정하는 pid를 보여준다.
user : 지정하는 사용자만의 프로세스를 보여준다.

shutdown -h now = init 0 = halt

 ※ 시스템 종료 / 재시작
-$ shutdown [options] [시간] ["경고메시지"]
[option]
-t sec : 지정한 시간에 시스템을 재시동한다.
-h : shutdown이 완료된 후 시스템을 종료한다.(프로세스를 저장하고 종료)
-r : 시스템 종료 후 재 부팅한다.
-c : 진행중인 shutdown 명령을 취소한다.
-f : 재부팅이 될 때, fsck 명령을 건너 뛰면서 빠른 재부팅을 한다.
-k : 경고 메시지만을 보여주고, 실제적인 shutdown을 진행하지 않는다.
-n : shutdown을 위해 init를 호출하지 않고 진행한다.
     now : 지금 바로 종료한다.
+m : 지정한 m분 이후에 종료한다.
hh:mm : 지정한 시:분 후에 종료한다.

 ※ free
시스템의 빈 메모리와 사용한 메모리의 양을 출력하는 명령어
-$ free [-b | -k | -m] [-o] [-s delay] [-t] [-v]
[option]
-b : 메모리의 양을 바이트로 표시한다.
-k : 메모리의 양을 킬로바이트로 표시한다.
-m : 메모리의 양을 메가바이트로 표시한다.
-t : 총계가 포함된 줄을 출력한다.
-o : buffer/cache 라인을 보여주지 않는다.
-s sec : 지정한 초단위로 refresh하여 메모리 상태를 표시한다.
free 명령어로 다음과 같은 내용들을 확인할 수 있다.
- 메모리의 전체 용량
- 유휴메모리의 량(움직임이 없는 메모리)
- 사용중인 메모리의 량
- 스왑(swap) 메모리의 량
- 커널에서 사용되는 공유메모리(shared memory)와 버퍼(buffer)의 량
- 캐시된 메모리의 량

 ※ id
사용자의 UID, GID 번호 및 현재 셀에서 id 정보를 보여준다.
-$ id [options] [사용자]
[option]
-g : 사용자의 그룹 id 만 보여준다.
-G : 추가 그룹의 id 만 보여준다.
-n : -u, -g, -G 옵션과 같이 쓰여 해당하는 id의 이름만을 보여준다.
-r : -u, -g, -G 옵션과 같이 쓰여 해당하는 실제 id를 보여준다.

 ※ hostname 파일설정 /etc/sysconfig/network
시스템의 이름보기
-$ hostname [options] [파일명]
[option]
-a : alias 명을 보여준다.
-d : 도메인을 보여준다.
-F : 파일로부터 호스트 이름을 받아서 설정한다.
-i : 호스트의 ip address를 보여준다.
-s : FQDN에서 첫 번째 옥텟 앞부분을 보여준다.
-y : NIS 도메인 이름을 보여준다.

 ※ logout
현재 시스템에서 모든 작업을 종료한다.
-$ logout
logout은 현재까지 시스템에서 사용중인 모든 작업을 종료하고 시스템에서 빠져 나가는 명령어이다.
단순히 시스템을 빠져나가는 것이 아니라 logout이란 명령어에는 현재 까지 사용중인 모든 자원을 커널에게 반납하고 부여받았던 모든 권한을 종료한다는 의미까지 포함되어 있다.
이와 같은 명령어로는 exit가 있다.

 ※ reboot
시스템 재 부팅
-$ reboot [options]
[option]
-d : wtmp 파일에 기록을 남기지 않는다.
-f : 강제로 재 부팅한다.
-n : 재 부팅할 때 sync 하지 않는다.
-w : 실제적으로 재 부팅하지 않고 /var/log/wtmp 기록을 남긴다
.

halt와 poweroff는 시스템 종료 후에 시스템의 재부팅을 하지 않지만 reboot은 시스템종료 후에 재부팅을 한다는 점에서 차이점이 있다.
]# reboot = init 6 = shutdown -r now

 

사용자 계정
- 시스템에서 한 사용자를 생성한다는 의미는 수용되는 시스템에서 사용자가 사용할 수 있는 모든 설정들을 해줘야 하며 단순히 id와 패스워드 생성외에도 다음과 같은 작업을 해야 한다.

* 사용자 계정 생성
1. /etc/passwd 파일에 사용자의 계정(id 및 패스워드)생성
2. /etc/group 파일에 사용자의 그룹생성
3. /home에 사용자의 홈디렉토리 생성
4. 사용자의 로그인 정보 및 환경설정
5. 사용자의 디렉토리 및 파일 소유권 변경 및 확인
6. DB사용을 위한 환경설정 및 응용프로그램 사용을 위한 환경 설정
7. 기타 응용 소프트웨어 사용을 위한 설정 등

 

 ※ useradd [옵션] [계정명]

이 작업이 정상적으로 종료가 되면 아무런 메시지 없이 쉘 프롬프트가 나오며 작업의 결과 /etc/passwd에 계정등록 /home/testuser의 홈디렉토리의 생성된다.
-c : commnet 사용자의 계정을 생성하면서 동시에 사용자의 finger정보를 함께 입력할 수 있다.

     확인 : cat /etc/passwd


-d : home directory 사용자의 홈디렉토리는 /home 디렉토리 아래 생성된다.  그러나 이 옵션을 지정하면 원하는 위치에 지정할 수 있다.


-e : expire date 임시적으로 발급하는 계정 -e 다음에 적은 날짜까지만 사용 가능한 계정이다. 날짜의 형식은 yyyy-mm-dd이다.

14478 = 날짜적용

-f : inactive_days -e와 같은 옵션이다. 날짜를 지정하는 것이 아니라 얼마 남았는지 지정한다.
     5라고 하면 5일 동안 사용할 수 있는 계정이다. 기본값은 -1이다. 0으로 하면 만료가 되기 때문이다.

-g : initial_group 반드시 존재하는 그룹의 이름이나 ID number로 새로운 계정의 Group ID를 정할 수 있다.


-G : 새로운 사용자가 포함되는 여러 그룹을 지정할 수 있다.
-u UserID : 새로운 사용자 ID값을 지정하나. 사용자 ID값은 /etc/passwd 파일로 확인할 수 있다.
-p : useradd -p [password] [계정명]후에 passwd를 사용하지 않아도 한번에 패스워드까지 만들 수 있다.
     예) useradd -p `openssl passwd 123456` rang

-s shell : 새로운 사용자의 Shell을 정의한다.


-m -k skel_dir : skel 디렉토리를 지정한다.
-u : user id 사용하다 보면 삭제된 아이디들이 있다. User id의 수가 연속적이지 않을 때 user id를 지정하는 옵션이다.

      수는 음수를 지정해서는 안 된다.

 

 ※ usermod [options] [계정명]

 -c comment 사용자의 설명을 변경한다.  -i 사용자 id 사용자의 id를 변경한다.
 -d homedirectory 사용자 홈 디렉토리 위치를 지정한다.  -p 패스워드 : 사용자의 패스워드를 지정
 -e date 사용자의 사용기간을 제한한다. (yyyy-mm-dd)  -s shell : 사용자의 쉘을 지정한다.
 -f 남은 날수 : 임시 사용자의 사용 제한한다.  -u UserID : 사용자의 ID값을 변경한다.
 -g 그룹 : 새로운 사용자의 그룹을 지정한다.  -L : 사용자의 패스워드를 막아 놓아 접근을 막는다.
 -G 그룹... : 사용자가 포함되는 여러 그룹을 지정한다.  -U : 사용자의 접근을 막은 패스워드를 풀어준다.

 ※ userdel [-r] username - 사용자 제거

- r : 사용자 홈 디렉터리 제거

 

 alias c='clear' (엘리어스 바로 적용, 로그아웃 하면 없어짐)

리눅스를 설치하는데 반드시 필요한 두 파티션 : 루트 파티션, 스왑 파티션
루트 파티션 : 시스템 파일과 사용자 개인파일을 비롯하여 모든 파일이 저장되는

파티션
스왑 파티션 : 시스템 메모리를 확장하기 위해 사용하는 파티션

[출처] 리눅스 기본 명령어|작성자 Rang

반응형

'OS > Linux' 카테고리의 다른 글

우분투10.04 설치후 키보드 먹통  (0) 2010.07.05
리눅스 명령어 3  (0) 2010.06.21
리눅스 명령어 2  (0) 2010.06.21
사용자, 그룹명 변경하기  (0) 2010.05.07
남은 용량 확인  (0) 2010.04.19
댓글