본문 바로가기

멋진성이의 지식iN/Linux

리눅스(Linux)의 아주 기초적인 명령어 설명

반응형



 


 

커널 버전 확인 법


 [root@ localhost /]# uname -a

 Linux Localhost 2.6.18-92.el5 #1 SMP The Jun 10 18:49:47 EDT 2008 i686 i686 i386 GUN/Linux  
<<< 32Bit 일 경우 출력되는 메시지

 Linux Localhost 2.6.18-92.el5 #1 SMP The Jun 10 18:49:47 EDT 2008 x86_64 x86_64 x86_64 GUN/Linux 
<<< 64Bit 일 경우 출력되는 메시지



 
OS버전 확인


 [root@localhost /]# cat /etc/issue.net

 CentOS release 5.4 (Final)
 Kernel \r or an \m

 
USB 마운트 방법


USB Flash Disk의 기본 파일시스템은 대부분 'vfat'를 사용합니다. USB Flash Disk는 커널의 의해서 SCSI 장치를 이용하여 접근 대부분 /dev/sd* 을 사용할 것입니다.

 1) USB 마운트

 [root@localhost /]# mkdir /mnt/usb
 [root@localhost /]# mount -t vfat /dev/sdb /mnt/usb/
 [root@localshot /]# fdisk -l

 Disk /dev/sda : 8589 MB, 8589934592 bytes
 255 heads, 63 sectors/track, 1044 cylinders
 Unit = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot     Start        End       Blocks   Id  System
 /dev/sda1   *          1         33       265041   83  Linux
 /dev/sda2             34        164      1052257+  83  Linux
 /dev/sda3            165        817      5245222+  83  Linux
 /dev/sda4            818       1044      1023377+   5  Extended
 /dev/sda5            818        948      1052226   83  Linux
 /dev/sda6            949       1013       522081   82  Linux swap / solaris

 Disk /dev/sdb: 16.0 GB, 8589934592 bytes     <- USB가 /dev/sdb로 올라온 것을 확인할 수 있음
 1 heads, 32 sectors/track, 978944 cylinders
 Units = cylinders of 32 * 512 = 16384 bytes

 This doesn't look like a partition table
 Probably you selected the wrong device.

    Device Boot     Start        End       Blocks   Id  System
 /dev/sdb1              2     978882     15662080    c  W95 FAT32 (LBA)
 Partition 1 does not end on cylinders boundary.

 2) USB 데이터 확인

 [root@localhost /]# ll /mnt/usb/

 3) USB 언마운트

 [root@localhost /]# umount /mnt/usb

 4) 추가사항

 [root@localhost /]# umount /mnt/usb
 umount: /mnt/usb: device is busy
 umount: /mnt/usb: device is busy

 언마운트가 되지 않고 위와 같은 오류가 발생할 경우가 있습니다.
 이 오류의 원인은 사용자가 마운트 된 디렉토리 내부에 있는 경우이거나, 마운트 시킨 장치와 관련된 프로세서가 살아있는 경우입니다.
 디렉토리 내부에서 빠져나온 후, 언마운트를 시키거나 안될 시에는 아래와 같이 /mnt/usb 와 관련된 프로세서를 죽인 후, 언마운트 시키면 됩니다.

 [root@localhost /]# fuser -km /mnt/usb

 
RPM Package 설치방법


 h : #  <<< 진행사항 표시
 U : Update <<< 수정
    --replacepkgs <<< 이미 설치된 패키지 무시하고 설치
 --replacefiles <<< 이미 설치된 파일 무시하고 설치
 --oldpackage <<< 이전 패키지 무시하고 설치
  --force  <<< 강제 설치
  --nodeps <<< 의존성 무시하고 설치
  --test  <<< 설치 전 테스트
 e : erase <<< 삭제
 q : query <<< 조회
 V : Verify <<< 검증
 b : build

 간단하게 예를 들어, 아래와 같이 rpm 설치 명령어를 사용합니다.

 # rpm -ivh xxx.rpm  <<< xxx.rpm 파일을 설치하는데 자세히, 진행사항까지 표시해달라는 뜻입니다.
 # rpm -ivh xxx.rpm --force <<< xxx.rpm 파일을 설치하는데 자세히, 진행사항까지 표시하며, 강제로 설치하라는 뜻입니다.
 # rpm -qa | grep xxx  <<< xxx 단어를 포함하는 설치된 패키지를 표시합니다.
 # rpm -qi xxx   <<< 설치된 xxx 패키지에 대한 정보를 표시합니다.
 # rpm -ql xxx   <<< 설치된 xxx 패키지가 설치한 목록을 표시합니다.

 RPM 버전 확인 명령어입니다.

 # rpm --version

 




 
IBM DSA LOG 수집 방법


1) USB Mount

 # fdisk -l     <- USB 인식 확인
 # mkdir /media/usb    <- USB 디렉토리 생성
 # monut /dev/sdb1 /media/usb   <- USB 마운트

 2) DSA Installable Fail Copy

 # cd /media/usb    <- USB 디렉토리로 이동
 # cp ibm_utl_dsa_xxxi_sles_i386.rpm /temp <- DSA Installable File을 /temp 디렉토리로 복사

 3) USB Unmount

 # umount /media/usb    <- USB 언마운트
 # cd /media/usb    <- UBS 언마운트 확인 후, USB 제거

 4) DSA Install

 # rpm -ivh ibm_utl_dsa_xxxi_i386.rpm  <- DSA 설치

 5) DSA Run

 # cd /opt/IBM/DSA    <- DSA 디렉토리로 이동
 # ./collectall -v    <- DSA 실행, HTML 파일로 생성

 6) DSA Log File Copy

 # cd var/log/IBM_Support    <- DSA Log 디렉토리로 이동
 # cp -rf 9999XXX_99XXXX_20100000-0000 /media/usb <- USB로 Log 파일 복사

 
PS 명령어에 관한 설명

 a : 다른 사용자의 프로세서 표시
 x : 터미널 제어없이 프로세서 현황 표시

 아래는 ps -aux 명령어를 실행한 화면입니다.

 [root@localhost /] ps -aux

 USER  PID  %CPU  %MEM   VSZ  RSS  TTY  STAT  START  TIME  COMMAND
 root    1   1.0   0.2  2060  652  ?    Ss    10:00  0:01  init [3]
 root    2   0.0   0.0     0    0  ?    S<    10:00  0:00  [migration/0]
 root    3   0.0   0.0     0    0  ?    SN    10:00  0:00  [ksoftirqd/0]
 ~
 ~

 - USER    : 프로세서 실행한 소유자의 계정
 - PID     : 프로세서 ID, 각 프로세서의 고유값
 - %CPU    : 프로세서가 사용한 CPU 사용량
 - %MEM    : 프로세서가 사용한 MEMORY 사용량
 - VSZ     :
 - RSS     : 프로세서의 의해 사용되는 실제 메모리 용량(KB)
 - TTY     : 제어 터미널(pst/1 : 터미널 1)
 - STAT    : 프로세서 상태
 P - 수행가능/수행중
 T - 일시정지
 D - 디스크 입출력 대기
 S - 20초 미만의 짧은 SLEEP
 I - 20초 이상의 긴 SLEEP
 Z - 좀비 프로세서
 - START   : 프로세서 시작 시간
 - TIME    : 현재까지 실행된 CPU 시간
 - COMMAND : 명령어의 이름

 




 
Proc 디렉토리의 시스템 정보


  리눅스 Consol 모드에서 하드웨어 점검을 할려면 하드웨어 관련 명령어를 알고 있어야 합니다.
 하지만 굳이 명령어를 외우지 않더라도 '/proc' 디렉토리만 확인해 보더라도 시스템의 정보 및 상태를 쉽게 확인할 수가 있습니다.

 ※ proc 디렉토리 내부에 관한 설명

 /proc/asound      : 사운드 정보
 /proc/cpuinfo     : CPU 정보(제조회사, 모델, 타입, 성능 등)
 /proc/device      : 커널에 설정되어 있는 장치 정보
 /proc/dma         : DMA 채널 정보
 /proc/filesystems : 커널에 설정되어 있는 파일시스템 정보
 /proc/ide         : 연결된 IDE 인터페이스, 디바이스 정보
 /proc/interrupts  : 인터럽트 정보
 /proc/ioports     : I/O 포트 정보
 /proc/loadavg     : 시스템 부하량(Load Average) 정보
 /proc/meminfo     : 메모리 사용량에 관한 정보
 /proc/modules     : 커널 모듈 정보
 /proc/partitions  : 파티션 분할 영역 정보
 /proc/pci         : PCI 버스와 설치된 PCI 카드 및 디바이스 정보
 /proc/scsi/scsi   : SCSI 인터페이스 및 디바이스 정보
 /proc/stat        : 시스템 상태 정보
 /proc/uptime      : 접속 시간 정보
 /proc/version     : 커널 버전 정보

 




 
설치된 Package 확인 방법


 1. 설치 된 전체 패키지 확인

 # rpm -qa | more

 2. 특정 설치 패키지 확인

 # rpm -qa | grep <Package Name>

 3. 초기 설치 패키지 정보 확인

 /tmp/install.log 파일을 보면 리눅스 설치 초기시에 설치된 패키지를 확인할 수 있습니다.

 




 
부팅모드 변경 방법


 리눅스 텍스트 모드로 설치하지 않아 'X-윈도우'로 부팅될 경우 텍스트 모드로 부팅되도록 설정을 변경할 수 있습니다.
 아래 설정 파일은 root 계정으로 접근해야 수정이 가능합니다.
 아래의 설정 파일을 vi 에디터를 이용하여 편집합니다.('X-윈도우' 상태일 경우에는 터미널 창을 이용하여 편집합니다.)

 [minimemo@localhost /]# su -
 ********
 [root@localhost /]# vi /etc/inittab

 아래에 표시된 라인을 다음과 같이 수정합니다.

 ~
 id:5:initdefault: <<< id:3:initdefault:

 # System initialization.
 si::sysinit:/etc/rc.d/rc.sysinit

 l0:0:wait:/etc/rc.d/rc 0
 l1:1:wait:/etc/rc.d/rc 1
 l2:2:wait:/etc/rc.d/rc 2
 l3:3:wait:/etc/rc.d/rc 3
 l4:4:wait:/etc/rc.d/rc 4
 l5:5:wait:/etc/rc.d/rc 5
 l6:6:wait:/etc/rc.d/rc 6
 ~

 ※ 리눅스 부팅 모드에 관한 설명

 리눅스는 6가지의 부팅 모드가 있습니다. 그 중 3번이 텍스트 모드 부팅이며, 5번이 X-윈도우 모드 부팅입니다. 그 외 나머지는 잘 사용하지 않는 모드이며, 자세한 설명은 설정파일에 작성되어 있습니다.

 # 0 - halt (Do NOT set initdefault to this)
 # 1 - Single user mode
 # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
 # 3 - Full Multiuser mode
 # 4 - unused
 # 5 - X11
 # 6 - reboot (Do NOT set initdefault to this)

 




 
디렉토리 및 파일의 권한 설정 명령어


 리눅스 디렉토리 및 파일에 대한 사용자 권한 설정 방법입니다.

 [root@localhost /]# chmod [-옵션] [퍼미션] [디렉토리명]

 x (실행권한) : 1
 w (쓰기권한) : 2
 r (읽기권한) : 4

 rwx   rwx   rwx
 User Group Guest

 아래는 변경 전 예시입니다.

 [root@localhost /]# ll
 total 138
 drwxr-xr-x  2 root root  4096 Oct 20 10:00 bin
 drwxr-xr-x  2 root root  1024 Oct 10 00:40 boot
 drwxr-xr-x 11 root root  3940 Oct 20 13:00 dev
 ~

 아래는 변경 후 예시입니다.

 [root@localhost /]# chmod 777 bin
 [root@localhost /]# ll
 total 138
 drwxrwxrwx  2 root root  4096 Oct 20 10:00 bin
 drwxr-xr-x  2 root root  1024 Oct 10 00:40 boot
 drwxr-xr-x 11 root root  3940 Oct 20 13:00 dev

 
사용자 로그인 파일 설정 login.defs


 #       PASS_WARN_AGE   Number of days warning given before a password expires.
 #

 PASS_MAX_DAYS    9999     <- 패스워드 최대 사용 기간
 PASS_MIN_DAYS    0        <- 패스워드 최소 사용 기간
 PASS_MIN_LEN     5        <- 패스워드 생성 최소 길이
 PASS_WARN_AGE    7        <- 패스워드 만료 전 경고 기간

 #
 # Min/max values for automatic uid selection in useradd
 #
 UID_MIN                  500     <- 사용자 추가 시, UID 최소 값
 UID_MAX                60000     <- 사용자 추가 시, UID 최대 값

 #
 # Min/max values for automatic uid selection in groupadd
 #
 GID_MIN                  500     <- 그룹 추가 시, GID 최소 값
 UID_MAX                60000     <- 그룹 추가 시, GID 최대 값

 #
 # If defined, this command is run when removing a user.
 # If should remove any at/cron/print jobs etc. owned by
 # the user to be removed (passed as the first argument.)
 #
 #USERDEL_CMD    /user/sbin/userdel_local

 #
 # If useradd should create home directories for users by default
 # On RH systems, we do. this option is overridden with the -m flag on
 # useradd command line.
 #
 CREATE_HOME     yes     <- HOME 디렉토리 생성 여부 설정

 # The permission mask is initialized to this value. If not specified,
 # The permission mask will be initialized to 022.
 UMASK           077     <- 사용자 디렉토리 생성 시, UMASK 값 설정

 # This enables userdel to remove user groups if no members exist.
 #
 USERGROUPS_ENAB yes

 # USE MD5 or DES to encrypt password? Red Hat use MD5 by default.
 MD5_CRYPT_ENAB  yes

 




 
시간 동기화 및 시간 조정 명령어


시스템이 네트워크에 연결되어 있다면, 다음과 같이 한글 표준 시간 서버에서 표준 시간을 받아서 설정할 수 있습니다.

 [root@localhost /]# rdate -s time.kriss.co.kr

 시스템의 네트워크가 온라인 상태가 아니라면 아래와 같이 수동으로 설정할 수도 있습니다.

 [root@localhost /]# date -s "2009-01-01 10:00:00"

 




 
압축명령어


1. tar

 'tar'는 여러개의 파일을 하나로 묶는 명령어입니다. 거의 대부분 'tar'는 'gzip' 이나 'bzip' 등과 같은 압축 유틸리티과 함께 사용하는 것이 일반적이다. 하지만 'tar' 추가옵션을 이용하여 'tar' 명령만으로도 효율적인 파일 압축 관리를 할 수 있습니다. 'tar' 명령어는 절대 압축명령어가 아닙니다.

 # tar [옵션] [묶음파일명] [파일 또는 디렉토리]

 [Option] - c : 여러개의 파일을 하나의 파일로 묶을 때 사용
   - d : 묶음파일(.tar)과 해당 파일시스템간의 차이점을 확인 하고자 할 때 사용
   - r : 묶음파일(.tar)에 파일을 추가할 경우 사용
   - t : 묶음파일(.tar)의 내용을 확인하고자 할 때 사용
   - f : 묶음파일(.tar)을 사용할 때 반드시 사용
   - p : 묶음파일(.tar)을 생성할 때 원본 파일의 퍼미션을 그대로 유지시킴
   - v : 진행되는 과정을 보여줌
   - Z : compress로 압축이나 해제 할 수 있는 옵션
   - z : gzip로 압축이나 해제 할 수 있는 옵션

 ※ 예시

 [root@localhost /]# tar -cvf home.tar /home <<< /home 디렉토리 내의 모든 내용을 home.tar 묶음 파일로 생성

 [root@localhost /]# tar -zcvf home.tar.gz /home <<< /home 디렉토리 내의 모든 내용을 gzip을 이용하여 압축. 확장자가 .tar의 의미는 묶음 파일이며,확장자가 .tag.gz 또는 .tgz는 묶음 파일을 다시 gzip으로 다시 압축한 파일을 의미

 [root@localhost /]# tar -xvf home.tgz  <<< home.tar 묶음 파일의 묶음을 해제

 [root@localhost /]# tar -zxvf home.tar.gz /home <<< home.tar.gz 압축 파일의 압축 및 묶음을 해제

 2. gzip, gunzip

 'gzip'은 압축을 하는 명령어이고, 'gunzip'은 압축을 해제하는 명령어입니다. 참고로 'gzip-d'는 'gunzip'가 동일한 명령어입니다.

 # gzip [옵션] [압축파일]


 [Option] - d : 압축 해제
   - * : 현재 디렉토리 내의 모든 파일을 한번에 각각 압축, 기존 파일 삭제 후 gz 파일만 남김
   - f : 강제 압축하기
   - l : 압축 효율 확인
   - S : 임의 확장자 지정
   - r : 특정 디렉토리 내의 모든 파일을 압축

 [root@localhost /]# gzip test.txt  <<< test.txt 파일을 압축

 [root@localhost /]# gunzip text.txt.gz  <<< test.txt.gz 파일의 압축을 해제

 3. bzip2

 'bzip2'와 'bunzip2'는 'gzip', 'gunzip' 이 후에 나온 압축 효율이 뛰어난 압축 유틸리티입니다. compress로 압축된 압축 파일은 uncompress로 풀어야하며, gzip로 압축된 파일은 gunzip(= gzip -d)로 풀어야 하는 것 처럼, bzip2로 압축된 파일은 반드시 bunzip2(= bzip2 -d)로 풀어야 합니다.

 # bzip2 [옵션] [압축 후의 파일명] [압축할 파일 또는 디렉토리]

 [Option] - d : 압축 해제
   - * : 여러 개의 파일을 동시에 압축 또는 해제
   - f : 동일한 압축 파일명이 존재하면 덮어씀

 [root@localhost /]# bzip2 test.txt  <<< test.txt 파일을 압축

 [root@localhost /]# bzip2 -d test.txt.bz2 <<< text.txt.bz2 파일의 압축을 해제

 




 
이더넷 설정 방법


 /etc/sysconfig/network-script 디렉토리 아래를 살펴보면, 시스템에 설치 된 Ethernet Card 를 확인할 수가 있습니다. ifcfg-eth0, ifcfg-eth1 등 추가 된 카드를 쉽게 확인할 수 있습니다. 이 파일을 vi 에디터로 열어보면 아래와 같은 내용을 확인할 수 있습니다.

 [root@localhost /]# vi /etc/sysconfig/network-script/ifcfg-eth0

 DEVICE=eth0
 BOOTPROTO=static
 BROADCAST=192.168.0.255
 IPADDR=192.168.0.1
 NETMASK=255.255.255.0
 NETWORK=192.168.0.0
 onBoot=yes

 사용 중인 IP를 변경하거나, 신규 이더넷카드 추가 시에는 ifcfg-eth 파일을 수정한 후에 반드시 네트워크 서비스를 Restart 해야합니다.

 [root@localhost /]# service network restart

 




 
crontab 설정 방법


 - 시스템크론 설정디렉토리 : /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly
 - 사용자크론 설정파일 : /var/spool/cron/* (사용자계정명과 동일한 파일명으로 존재함.)
 - 사용자크론설정 명령어 : /usr/bin/crontab
 - cron 실행내용 기록되는 로그파일 : /var/log/cron

 3. 시스템 cron 의 설정

 [root@localhost /]# vi /etc/crontab

 SHELL=/bin/bash
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 MAILTO=root
 HOME=/

 # run-parts
 01 * * * * root run-parts /etc/cron.hourly
 02 4 * * * root run-parts /etc/cron.daily
 22 4 * * 0 root run-parts /etc/cron.weekly
 42 4 1 * * root run-parts /etc/cron.monthly

 4. 사용자 cron 의 설정

 [root@localhost /]# crontab -l

 00 01 * * * su - root /usr/bin/rdate -s time.bora.net && /sbin/hwclock -w
 00 03 * * * su - root '/root/backup.sh' >& /dev/null
 00 08 * * * su - root '/root/check_of_system.sh' > /root/COS_result

 5. 각 필드의 의미

 01 * * * * root run-parts /etc/cron.hourly
 02 4 * * * root run-parts /etc/cron.daily
 22 4 * * 0 root run-parts /etc/cron.weekly
 42 4 1 * * root run-parts /etc/cron.monthly

 필드1 : 분(minitues)을 의미, 0~59까지 입력
 필드2 : 시(hour)를 의미, 0~23까지 입력
 필드3 : 일(day)를 의미, 1~31까지 입력
 필드4 : 월(month)를 의미, 1~12까지 입력
 필드5 : 요일(weekday)을 의미, 0과 7은 일요일, 1은 월요일~6은 토요일
 필드6 : 실행 권한과 실행 될 내용을 입력

 ※ 참고

 * 기호 : 각 필드에 * 기호로 입력하면 해당 필드의 모든 값을 의미
 - 기호 : 그 사이의 모든 값을 의미
 , 기호 : 지정한 모든 값을 의미, 불규칙적인 값 지정 시 사용

 





 
사용자 계정 생성 명령어


  passwd : all authentication token updated successfully.

 3. 사용자 계정 정보 확인

 [root@localhost /]# vi /etc/passwd
 root:x:0:0:root:/root:/bin/bash
 ~

 ※ 리눅스에서 사용자의 계정 정보는 '/etc/passwd' 파일에 저장되고, 사용자 계정의 비밀번호는 '/etc/shadow' 파일에 저장됩니다.

 필드1 (root)      : 사용자 계정
 필드2 (x)         : 비밀번호 (/etc/shadow 파일에 암호화되어 있습니다.)
 필드3 (0)         : 사용자 계정 UID
 필드4 (0)         : 사용자 계정 GID
 필드5 (root)      : 사용자 계정 이름
 필드6 (/bin/hash) : 사용자 계정 로그인 쉘

 4. 비밀번호 정보 확인

 [root@ns root]# vi /etc/shadow
 root:$1SLdEIMPHq$dWFwHGSsw3DGsGHS6MVNSLs:12345:0:99999:7:-100:99999:
 ~

 필드1 (root)    : 사용자 계정
 필드2 ($1SLdE~) : 암호화된 비밀번호
 필드3 (12345)   : 'shadow' 파일 최종 수정일
 필드4 (0)       : 비밀번호 변경 최소일
 필드5 (99999)   : 비밀번호 변경 최대일
 필드6 (7)       : 비밀번호 만료 경고 기간
 필드7 (-100)    : 비밀번호 파기 기간 (비밀번호 파기 후 계정 비활성 기간)
 필드8 (99999)   : 계정 만료 기간
 필드9 (Blank)   : 예약 필드

 




좋은 정보 입니다.
제가 작성한 자료는 아니구요~ 후배 CGM 의 자료 입니다.
좋은 정보라서 공유합니다.
반응형