단축키&명령어

DM wiki
둘러보기로 이동 검색으로 이동

실제 사용

  • ffmpeg의 활용
    • 베이스
      • ffmpeg -i (입력 동영상) (출력 동영상)
    • 배속 조절 (2배)
      • -filter:v "setpts=PTS/2"
    • 범위(시작 시각, 길이)
      • -ss 01:23:45.678 -t 01:23:45.678
    • 인코딩 없이 자르기만 하기
      • -vcodec copy -acodec copy
    • 인코딩하기 (qscale은 화질. 숫자가 낮으면 좋다)
      • -vcodec mpeg4 -acodec libmp3lame -qscale 1
  • ffmpeg에서 사진 모음을 영상으로 만들기
    • ffmpeg -r 10 -pattern_type glob -i 'bvp_x_y_*.png' -vf fps=60,scale=1280:-2 -pix_fmt yuv420p result.mp4
    • r은 초당 몇 개를 보여줄 것인가
    • pattern_type glob -i 는 입력 파일 패턴
    • fps는 fps
    • scale은 1280으로 만들고, 다음이 -1이면 세로 자동 결정, -2면 세로를 짝수로 만들어 줌
  • 우분투 화면 회전
    • 쉬운 방법
      • xrandr -o normal
      • xrandr -o left
    • 화면 선택 회전
      • xrandr -q
      • xrandr --output HDMI1 --rotate normal
      • xrandr --output HDMI1 --rotate left
  • 압축 파일 한글 인코딩 깨질때
    • unzip -O cp949 xxxx.zip
  • 압축하기/압축풀기
    • 압축: tar -zcvf data.tar.gz ./data
    • 풀기: tar -xvf data.tar.gz ./data
  • 압축 멀티 코어로 하기 (-z 플래그가 아닌 아예 다른 압축 프로그램을 쓴다)
    • apt install pbzip2
    • 압축: tar --use-compress-prog=pbzip2 -cvf data.tar.bz2 ./data
    • 풀기: tar --use-compress-prog=pbzip2 -xvf data.tar.bz2 ./data
  • 무식한 dmesg tail
    • while true;do sudo dmesg -c;done
  • 액세스 로그 보기
    • 앞에서부터 180바이트 자르고, %형 유니코드 디코드 후 표현 -> IP 주소 및 요청 API 확인
    • 뒤에서부터 150바이트 표현 -> 접속 디바이스 정보 확인
tail -f access.log.1 | php -R '$len = strlen($argn); $ret = substr($argn, 0, 180); $ret2 = substr($argn, $len-150, $len); echo urldecode($ret)."\n"; echo "==============================$ret2"."\n\n";'
  • 키보드 키 반복 입력 안 될 때
    • xset r on
  • 마우스 휠 스크롤이 화면 스크롤이 아니라 과거 이력이 나올 때
    • tput reset
  • zsh 기존 명령어 검색
    • Ctrl+R
    • !?검색어?
  • zsh: no matches found: ~~ 뜨면서, 정규표현식이 명령어 안에 있는게 실행 안 될 때
    • setopt NO_NOMATCH
  • gnome shell 이상할 때
    • alt+f2 하고 r 엔터
    • alt+f2 안먹히면 쉘 열어서 nohup gnome-shell --replace > /dev/null 2>&1 &
    • killall -3 gnome-shell 도 된다고 함
      • 이거 하는 순간 gnome-session-failed 나올 것임..
      • gnome-session-failed의 Log out 버튼 누르면 로그아웃됨. 그러나 byobu 세션은 남아있음.
  • CPU 클럭, 온도
    • watch -n.5 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""
    • watch -n.5 "sensors | grep -i Package"
  • 파일 폴더 용량 확인 (크기, 사이즈)
    • du
    • du -h -d=1 (사람이 읽을 수 있게, 깊이 1까지만 리스트)
    • du -h -d=1 -a (사람이 읽을 수 있게, 깊이 1까지만 리스트, 파일까지 정보 표시)
    • du -h -d=1 -a (사람이 읽을 수 있게, 깊이 1까지만 리스트, 파일까지 정보 표시)
    • du | sort -hr (정렬)
  • 그냥 돌리던거 screen에서 돌리기
    • 먼저 screen 띄운다
    • echo 0 > /proc/sys/kernel/yama/ptrace_scope
    • reptyr (대상 프로그램 pid)
  • 파일 인코딩 일괄 바꾸기
    • find . -type f -iname '*.cpp' -exec sh -c 'iconv -f SHIFT_JIS -t utf-8 -o converted "$1" && mv converted "$1"' -- {} \;
      


소유권 변경

  • 소유자와 그룹 모두 변경(재귀적으로)
    • chown -R kdm:kdm [폴더]
  • 폴더 파일별 권한 다르게 주고 일괄적으로 소유자까지 바꾸기
#!/bin/bash
path='/home/kdm/'
user='kdm'
group='kdm'

#rw-rw-r--
find ${path}/ -type f -print0 | xargs -0 chmod 0664
#rwxrwxr-x
find ${path}/ -type d -print0 | xargs -0 chmod 0775

chown -R ${user}:${group} ${path}/
  • 그냥 다 777 주기 (현재 폴더와 하위 폴더까지)
find . -type f -exec chmod 777 {} \;
find . -type d -exec chmod 777 {} \;

  • 현재 버전 확인
    • cat /etc/issue
    • lsb_release -a
  • mysql 관련
    • 접속
      • mysql -h localhost -u myname -pmypass mydb
    • sql 로그 보기(위험!)
      • SHOW VARIABLES LIKE "general_log%";
      • SET GLOBAL general_log = 'ON';
      • SET GLOBAL general_log = 'OFF';

폴더 삭제

  • 항상 safe-rm 사용하기
  • 정상적인 방법
    • rm -rf [폴더 이름]
  • 약간 위험한 방법
    • 폴더 안으로 들어가서 rm -rf ./*
  • 절대 금지
    • rm -rf /
    • rm -rf /* preserve도 못 막음!!!!!!!

하드 복구 관련

ddrescue --no-split /dev/hda1 imagefile logfile
ddrescue --direct --max-retries=3 /dev/hda1 imagefile logfile
ddrescue --direct --retrim --max-retries=3 /dev/hda1 imagefile logfile

세팅용

  • 시작 프로그램 설정
    • gnome-session-properties
  • 시스템 스왑 사용량 조절 (http://askubuntu.com/questions/103915/how-do-i-configure-swappiness)
    • 확인: cat /proc/sys/vm/swappiness
    • 바꾸기: /etc/sysctl.conf 에 vm.swappiness = 10 수정 또는 추가
    • 이렇게도 바꿀 수 있음: sysctl vm.swappiness=10
    • 재부팅 안하고 스왑 비우기: swapoff -a
    • 다시 스왑 켜기: swapon -a
  • 기본 프로그램 설정은 이렇게
sudo apt-get install exo-utils
exo-preferred-applications