A하려면 B하면 됨

  • Windows
    • 클립보드가 하나로는 모자란다. 몇가지 내용간에 스왑하고 싶다.
      • 원본을 모두 열어놓는다.
      • 어지간한 타입은 다 붙여넣기 할 수 있는 프로그램에 전부 붙여넣기하고 이를 복사해 쓴다.
      • Ditto를 사용한다.
  •  Perl
    • 이메일이 양식에 맞는지 확인하고 싶다.

      • Perl Maven
  •  node.js nodeQa
    • 굉장히 긴 string을 여러줄로 나누고 싶다.
      • 백스페이스로 이스케이프1하는 것은 권장하지 않는다. 여럿으로 나누어 +로 연결을 추천한다.2
    • 실패시 다시 수행하고 싶다.
      • 수행 부분의 함수를 이름을 준 뒤, 내부에서 다시 실행하도록 한다.
      • 반복할 횟수를 제한하는 것이 좋다. 그러니 어지간해서는 async.retry를 쓰도록 한다.
    • async 메소드를 어떤거 써야 될 지 모르겠다.
    • array.sort()가 예상과 다르게 동작한다.
      • 정렬함수를 작성해 sort()에 넘겨줄 필요가 있다. 기본적으로 사전순 정렬을 지원하는데 변수의 타입이 고정되어있지 않으므로 이곳 저곳에서 건드리는 배열이라면 전처리를 해주거나, 정렬함수를 작성해 주는 것이 좋다. 객체 배열이라면 당연히..
    • JSON 객체 / 배열이 요상해서 한눈에 구조를 봤으면 좋겠다.
  •  Eclipse
    • 브레이스 자동완성이나, 워드랩/라인랩이 마음에 들지 않는다.
      • Preference에서 Formatter로 검색해 수정한다.
      • Eclipse formatter profile로 인터넷에서 검색해 xml 프로필을 다운 받은 후 Import하는 것 역시 가능하다.
      • 포매터 단축키를 사용해 3 적용한다.
  •  Wordpress
    • 첫 화면에서는 게시물이 정상적으로 보이나, 고유 링크로 들어가면 page not found가 나올 경우
      • url 변경 등이 있을 때 발생한다. 퍼머링크를 다른 옵션으로 설정했다가 재설정해준다.
  • SSL/TLS
    • 디피 헬만 알고리즘 참고
      예전과는 달리, 요즘은 1024 비트 이하의 DH parameter는 취약한 것으로 보인다. 그러므로 이보다 긴 길이의 parameter를 사용해준다.또한 대부분의 클라이언트에서 ECDHE4를 지원하니 해당 암호화 스위트만을 이용하도록 제한하도록 한다.

      • Generate stronger DHE parameter & apply.
        1024보다 큰  2048이나 4096으로 생성한다.
        이에 따라 증가하는 비용 부담은 팔자려니 한다.

        • Apache
        • Nginx
        • lighthttpd
        • Sendmail
        • Dovecot
        • Postfix SMTP
  •  Ubuntu
    • 서버의 가동 시간을 알고 싶다.
      • uptime
        w나 top의 최상단에 제공되는 정보와 같다.
        w의 경우 로그인 된 사용자를, top의 경우 실행 중인 프로세스들의 목록과 점유율 순위를 동적으로 확인할 필요가 있을 경우 사용한다.
    • 같은 네트워크의 윈도 컴퓨터의 공유 자원을 액세스 하고 싶다.
      • samba 설치
      • 서버 연결 ( smb://윈도 컴퓨터 주소)
    • vim에서 펄 정규식을 쓰고 싶다.
      • :ver로 +perl인지 확인한다. +perl이면 :perldo로 사용한다. vim 위키
    • PGP로 암호화를 하는데 탐색기 우클릭으로 진행했으면 한다.
      • 탐색기인 노틸러스 플러그인으로 seahorse-nautilus가 있으니 이를 설치하자.
    • 쓸모 없는 파일이나 잘못된 파일 등을 지우는 정리기가 있었으면 좋겠다.
      • 일단 우분투나 리눅스는 그런 것들이 별 필요가 없다. 잘 관리되고 있다면 홈 경로 아래만 잘 정리하면 무사하다. 그러나 굳이 원한다면 FSlint와 같은 소프트웨어도 있다.
    • 브라우저로 받은 파일의 파일명이 % 인코딩이 붙어 저장이 되어있다.
      • 15.10 기준으로 rename명령은 펄 스크립트를 통해 정규표현을 적용할 수 있으므로 이를 사용한다.
        • rename은 스크립트를 좀 많이 생략한 부분이 있어 eg등의 옵션을 사용하는 것은 어렵다. 여러가지 문자를 치환해야 하거나 전체적으로 URI escaping이 필요하다면 URI::Escape모듈을 사용하는 스크립트를 작성하도록 한다.
    • 다 끝나고 소리가 났으면 좋겠다.
      • 명령 뒤에 소리 재생 명령을 추가하면 된다. aplay5, pacmd6 등과 같은 재생기로 소리 파일을 재생할 수 있다.
      • espeak이나 spd-say로 원하는 단어를 재생하면 여러 터미널의 대기 상황을 청각으로 파악하려면 유용할 수 있다.
    • ps 출력이 가로로 너무 길어서 짤린다
      • w 옵션을 사용한다.
    • 파일에 쓰여지는 내용을 실시간으로 보고 싶다.
    • 트래커 사이트에 접속이 되지만 비트토렌트클라이언트가 작업을 시작하지 못한다.
      • 대부분의 경우 사용 포트를 열어두지 않아서 발생한다. 특히나 공유기를 사용한다면 NAT설정을 제대로 해주자.
    • 백그라운드에서 명령을 수행하고 싶다.
      • 맨 뒤에 &를 붙인다.
        • stdout으로 출력되는 것도 보기 싫다면 /dev/null로 출력을 돌린다.
      • screen을 사용한다.
      • ^Z로 중지한뒤 bg, disown한다.
      • nohup을 사용한다.
        • 출력을 다른 파일로 돌리고 싶다면

          당연히, /deb/null을 사용해도 된다.
        • 옛날 bash에서는

          의 형태였지만 지금은 위 형태로 사용 가능하다.
    • 텍스트 파일의 인코딩을 바꾸고 싶다.
    • python3 스크립트를 사용하려는데, pip로 설치한 패키지가 자꾸 없다고 한다.
      • python3-pip를 설치하고, pip3로 설치한다.
    • 회선 간 속도를 측정해 보고 싶다.
      • iperf를 설치한 뒤 사용하는 것이 가장 간단하다.
      • nc (netcat)을 사용할 수도 있다.
        • 받는 쪽
        • 보내는 쪽
    • 이것 저것 언인스톨 하다보니 설정에 아이콘들이 사라졌다.
      • ubuntu-desktop을 설치한다.
    • sudo: unable to resolve host [호스트명] 의 경고문이 발생한다.
      • /etc/hosts/etc/hostname을 적절히 편집하고 재시작한다.
    • opengl library를 써보려고 한다.
      • freeglut3-dev를 설치한다. – 다른 식으로 설치해도 되지만 기왕이면..
    • 독 앱을 사용하는데, 아이콘을 클릭해 실행하면 아이콘이 하나 더 생긴다.
      • 참조
        /usr/share/applications 하위의 desktop 파일에 StartupWMClass를 설정해준다.
    • perl: warning: Setting locale failed.
      • 펄을 사용하는 도구가 locale을 읽으려고 했지만 모종의 이유로 읽을 수 없었다. 대부분의 경우 최종 결과물과는 별 상관 없지만 locale을 설정해 주도록 한다. 일단 locale-gen을 수행한 뒤
    • 작업공간마다 다른 배경화면을 사용하고 싶다.
      • compiz 추가 기능과 설정을 사용한다. 큐브나 다른 확장 기능도 많으니 그냥 골라 쓰면 된다.
        설정이 꼬이면 무궁무진한 버그의 수렁으로 빠져드므로7 백업은 알아서 하자.
    • kali linux의 도구들을 사용하고 싶다.
      • 14.04라면 다음 리포지터리를 통해 다운 받도록 한다.
        [/crayon]
    • 카톡을 하고 싶다.
      • PlayOnLinux로 쉽게 설치가 가능하다. gdiplus, richedit, wmp를 추가 설치한다.
      • 파일 전송이 되지 않으며8, 카톡 알림음 발생시 wmp가 크래시가 나면 당연히 앱이 통째로 종료된다.
      • 광고는 정말 잘 보인다.
    • 롤을 하고 싶다.
      • PlayOnLinux로 북미판이든 뭐든 대충 설치하고, 윈도우에 설치된 클라이언트를 복사해 넣는다.
        프레임이 뚝뚝 떨어지므로, 정상적인 플레이를 위해서는 그냥 윈도우로 멀티 부팅하는 것이 좋다.
    • 맥 비스무리한 기분을 내고 싶다.
      • 링크에 나온대로 따라한다. 쓸모는 없을 것이다.
    • 여러 파일을 한번에 이름 바꾸기하고  싶다.
      • rename을 사용한다. (perl 확장 기능)
    • 파일을 찾고 싶다.
      • findlocate를 사용한다.
      • 예로 현 경로에서 json파일을 모두 찾고 싶다면
    • 사용자 명 / 비밀번호를 잊어버렸다.
      • 부팅시 grub에서 recovery mode로 진입한다.
      • root shell로 들어간다.
    • timezone을 변경하고 싶다.
    • 텍스트 입력창에서 입력 소스를 한국어로 했는데도 영어만 써진다.
      • 설치 후 첫 실행이라면 언어 지원을 한번 들어가서 필요한 패키지를 설치한다.
      • 한국어가 아니라 한국어(Hangul)로 해야 한다.
      • ibus-hangul이 설치되어있는지 확인한다.
    • 한글 쓸 때마다 네모가 따라다닌다.
      • 속성 패널이다. ibus-setup을 실행해 옵션을 변경해주면 된다.
    • 오래간만에 사용하는 우분투 – synaptic으로 패키지를 관리하고 싶은데 우분투 소프트웨어 센터밖에 없다.
      • 설치한다. 기본 설치 상태에서 빠져있지만 깔면 잘 작동한다.
    • dconf를 수정하고 싶다.
      • dconf-editor를 설치해 사용한다.
    • 디스플레이를 nπ/2 만큼 회전해야 한다.
      • 디스플레이를 확인한다.
      • 회전한다. 자주 필요하다면 shortcut으로 등록한다.
  •  MySQL 튜토리얼
    • 테이블의 스키마를 보고 싶다.


      • 스키마를 출력한다.

      • CREATE 자체를 보여준다.
    • 테이블을 복사하고 싶다.
      • SELECT *한 것을 전부 INSERT 한다.
      • 스키마가 유지되는 것이 아니므로, CREATE TABLE을 선행할 것.
    • 쿼리로 보낼 항목을 몇번 반복해야 한다.
      • 사용자 정의 변수를 사용한다. 참조
    • 유연하게 INSERT/UPDATE 하기
      • 같은 일이라면 쿼리를 한번 보내는게 훨씬 유리하다. 그리고 이뻐.. 사이트 참고.
    • Text로 된 16진수를 바이너리로 변환하고 싶다.
    • id가 높은 n개의 row를 얻고 싶다.
    • 사용 된 디스크 용량을 알고 싶다.
      • 쿼리로
      • 유틸리티를 설치했다면 mysqldiskusage를 사용할 수도 있지만, 이는 터미널 상에 암호를 직접 노출하므로 내키지 않는다.
    • 데이터가 저장된 경로를 알고 싶다.
    • 특정 user에게 GRANT된 권한을 모두 보고 싶다. 링크
    • 테이블을 보고 싶다. 링크

Footnotes

  1. 줄 끝에 \를 붙이는 경우
  2. 구글신님 추천안
  3. 기본 : Ctrl+Shift+F
  4. (Ephemeral) Elliptic Curve Diffie Hellman.
  5. 기본으로 제공되는 오디오 재생명령
  6. 펄스 오디오
  7. 가벼운 버그의 예 : 로그인후  바로 튕겨서 로그아웃
  8. 용량이 매우 작은 파일은 가능하다.

Leave a Reply