clearer
 

Useful Commands for Linux

Enable to using mouse in vi editor

  • ~/.vimrc
    map <F7> <ESC>:set mouse=a<CR> // enable
    map <F8> <ESC>:set mouse-=a<CR> // disable

파일 속 문자열 검색

  • grep 이용
    grep -r [찾을 문자열] [대상파일들]
    • 예제1) 현재 폴더에 있는 test.log 파일내부에 'apache' 라는 문자열 찾기
      grep -r 'apache' ./test.log 
  • 파일 내부 문자열 검색 강조색 표시
    find . -name '*.conf' | xargs grep -r --color=auto -n 2>dev/null 'phpMyAdmin'

    현재 부터 하위 모두를 검색하되, conf 라는 확장자를 가진 파일중에서 'phpMyAdmin' 이라는 문자열을 검색한다. 그리고 일치 문자열은 강조색으로 표시!

SCP 파일전송

  • 사용방법
    1. 원격 서버 → 로컬 서버로 파일 전송
      # scp [옵션] [계정명]@[원격지IP주소]:[원본 경로 및 파일] [전송받을 위치]

      예제1) P 111.222.333.444 서버의 abc라는 계정으로 /home/abc/index.html 파일을 로컬서버 /home/me/ 디렉토리에 전송 받기

      # scp abc@111.222.333.444:/home/abc/index.html /home/me/
    2. 로컬 서버 → 원격 서버로 파일 전송
      # scp [옵션] [원본 경로 및 파일] [계정명]@[원격지IP주소]:[전송할 경로]

      예제2) 로컬서버 /home/me/wow.html 파일을 IP 111.222.333.444 서버의 /home/abc/ 디렉토리에 전송 하기

      # scp /home/me/wow.html abc@111.222.333.444:/home/abc/
    3. ssh포트를 기본 22번으로 사용하고 있지 않는 서버로의 전송 예제3)2222번인 SSH포트를 사용한다면 아래와 같이 –P 옵션과 포트번호를 넣어준다.
      # scp –P 2222 abc@111.222.333.444:/home/abc/index.html /home/me/
       # scp –P 2222 /home/me/wow.html abc@111.222.333.444:/home/abc/
    4. 주의사항 : 옵션중에 –P와 –p가 있으니 대/소문자 확인을 하여야 한다.
      • -P : 포트번호를 지정함
      • -p : 원본파일 수정/사용시간 및 권한을 유지함
      • -r : 하위 디렉토리 및 파일 모두 복사함
  • scp without passwd
    1. ssh-keygen -t rsa
      Generating public/private rsa key pair.
      Enter file in which to save the key ...
    2. vi ~/.ssh/id_rsa.pub
    3. 복사하기
    4. vi ~/.ssh/authorized_keys 에 붙여넣기 or cat ~/.ssh/id_rsa.pub » ~/.ssh/authorized_keys
    5. ssh-copy-id -p 0000 USERNAME@DOMAIN.COM

명령어

  • CPU 확인
    • nproc
  • CPU 온도
    • apt-get install lm-sensors
    • watch sensors

Manage Process

  • 실행 중인 프로세스
    • 프로세스 확인 : ps
      • -a : 현황표시, 다른유저도
      • -u : 유저 지향적
    • 프로세스 종료 : kill -9 [pid]
  • 메모리
    • 메모리 확인 : free -m
    • 메모리 관리 : # echo 3 > /proc/sys/vm/drop_caches (pagecache, dentries, inodes 모두 해제)

리눅스 계정 관리

  • 포트 열기
    • iptables -A INPUT -p tcp --dport 포트번호 -j ACCEPT
    • iptables -A OUTPUT -p tcp --dport 포트번호 -j ACCEPT
    • iptables-save
  • 그룹관리
    • 그룹생성 —> addgroup [그룹명], groupadd [옵션],[그룹명]
    • 옵션 : -g —> 그룹 ID지정
    • groups [계정명] : 속한 그룹 보기
    • 그룹 삭제 —> groupdel
  • 계정 생성
    • useradd : 순수 계정만 생성
    • adduser : 비밀번호 홈디렉토리도 생성
    • useradd/usermod 옵션
      • -c : passwd파일에 사용자 설명 추가
      • -d : 디렉토리 위치 지정
      • -e : 계정 만기 날짜
      • -f : 패스워드 만기된 후 계정 영구 삭제 기간
      • -u : 사용자 ID 퍼미션
      • -s : 사용자의 로그인쉘 지정
      • -G : 사용자를 기본그룹 이외에 다른그룹에 추가
      • -m : 홈디렉토리 지정 -d와 함께 쓰임
      • useradd -m -s /bin/bash
      • usermod -m -d /DIR
      • -M : 홈디렉토리를 만들지 않는다
      • sudo 권한 : /etc/sudoers 에서 [userid] ALL=(ALL:ALL) ALL userid 에 계정이름
  • 계정 비밀번호 변경
    • passwd [옵션] [계정명]
      • -S : 계정의 상태를 표시
      • -d : 계정의 패스워드 삭제
      • -l : 계정을 lock 상태로 변경
      • -u : 계정의 lock 상태를 해제
      • root 계정 : sudo passwd root
  • 현재 접속중인 유저
    • su에서 w -h, -s
  • 권한 변경
    • chmod + [옵션] + [000] + [파일/디렉토리]

  • 옵션 : -R —> 하위 디렉토리와 파일까지 변경
  • 소유자/소유그룹 변경 —> 소유자 : chown / 소유 그룹 : chgrp
  • 리눅스 디렉토리 용량 확인
    • du : 현재 폴더 내 파일, 디렉토리들의 용량 확인
      • du 옵션
      • -hs 폴더 : 해당 폴더 용량 확인
      • -hs * : 현재 폴더에 있는 폴더 및 파일 용량확인
      • du * | sort -n | tail -10 : 현재폴더에 있는 폴더 및 파일 중에서 용량이 큰 것 순으로 10개 보기
  • 파일 찾기
    • find -name ‘*.pl’ : pl 확장자 모두 찾기
    • find /-name ‘*.pl’ : 루트에서부터 찾기
    • -ls : ls 형식으로 출력

로그인시 배너

  • /etc/update-motd.d/ 안의 파일 수정
    printf "\n"
    
    homeTotal=`df -h | grep /dev/mapper/ubuntu--vg-root | awk '{print $2}'`
    homeUsing=`df -h | grep /dev/mapper/ubuntu--vg-root | awk '{print $3}'`
    homePer=`df -h | grep /dev/mapper/ubuntu--vg-root | awk '{print $5}'`
    workTotal=`df -h | grep sdc1 | awk '{print $2}'`
    workUsing=`df -h | grep sdc1 | awk '{print $3}'`
    workPer=`df -h | grep sdc1 | awk '{print $5}'`
    backupTotal=`df -h | grep sdb1 | awk '{print $2}'`
    backupUsing=`df -h | grep sdb1 | awk '{print $3}'`
    backupPer=`df -h | grep sdb1 | awk '{print $5}'`
    
    echo " Home disk Usage : ${homeUsing} / ${homeTotal}  (${homePer}) "
    echo " Work disk Usage : ${workUsing} / ${workTotal}  (${workPer}) "
    echo " Backup disk Usage : ${backupUsing} / ${backupTotal}  (${backupPer}) "
    
    printf "\n"

배드블럭

  • 저장장치 표시 : sudo fdisk -l
  • 배드블럭/배드섹터 검사 : sudo badblocks -v /dev/sdx (/dev/sda, /dev/sdb, … /dev/sdx)
  • 배드블럭 치료
    • zero-fiil 포맷 : sudo dcfldd if=/dev/zero of=/dev/sdx
    • e2fsck 이용 : e2fsck -cfpv /dev/sdx

우분투 패키지 재설치

  • reinstall all
    vi reinstall_all.sh
    #!/bin/bash
    
    for pkg in `dpkg --get-selections | awk '{print $1}' | egrep -v '(dpkg|apt|mysql|mythtv)'` ; do apt-get -y --force-yes install --reinstall $pkg ; done
kgpark/linuxcommand.txt · 마지막 수정: 2023/09/04 23:50 작성자 khpark
 
광주광역시 북구 용봉동 전남대학교 자연대 4호관 물리학과 319호 | Tel. +82-62-530-3484
Bld.4-319 Department of Physics, Chonnam National University, 77 Yongbong-ro, Buk-gu, Gwangju 500-757, KOREA
별도로 라이선스를 알리지 않을 경우, 이 위키의 내용은 다음의 라이선스에 따릅니다: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki