- Windows
- 클립보드가 하나로는 모자란다. 몇가지 내용간에 스왑하고 싶다.
- 원본을 모두 열어놓는다.
- 어지간한 타입은 다 붙여넣기 할 수 있는 프로그램에 전부 붙여넣기하고 이를 복사해 쓴다.
- Ditto를 사용한다.
- 클립보드가 하나로는 모자란다. 몇가지 내용간에 스왑하고 싶다.
- Perl
- 이메일이 양식에 맞는지 확인하고 싶다.
-
123use Email::Valid;my $result = Email::Valid->$address; # returns true/false
Perl Maven
-
- 이메일이 양식에 맞는지 확인하고 싶다.
- node.js nodeQa
- 굉장히 긴 string을 여러줄로 나누고 싶다.
- 실패시 다시 수행하고 싶다.
- 수행 부분의 함수를 이름을 준 뒤, 내부에서 다시 실행하도록 한다.
- 반복할 횟수를 제한하는 것이 좋다. 그러니 어지간해서는 async.retry를 쓰도록 한다.
- async 메소드를 어떤거 써야 될 지 모르겠다.
- http://www.sebastianseilund.com/nodejs-async-in-practice
이곳 설명이 가장 보기 좋다.
- http://www.sebastianseilund.com/nodejs-async-in-practice
-
array.sort()가 예상과 다르게 동작한다.
- 정렬함수를 작성해 sort()에 넘겨줄 필요가 있다. 기본적으로 사전순 정렬을 지원하는데 변수의 타입이 고정되어있지 않으므로 이곳 저곳에서 건드리는 배열이라면 전처리를 해주거나, 정렬함수를 작성해 주는 것이 좋다. 객체 배열이라면 당연히..
- JSON 객체 / 배열이 요상해서 한눈에 구조를 봤으면 좋겠다.
- Eclipse
- 브레이스 자동완성이나, 워드랩/라인랩이 마음에 들지 않는다.
- Preference에서 Formatter로 검색해 수정한다.
- Eclipse formatter profile로 인터넷에서 검색해 xml 프로필을 다운 받은 후 Import하는 것 역시 가능하다.
- 포매터 단축키를 사용해 3 적용한다.
- 브레이스 자동완성이나, 워드랩/라인랩이 마음에 들지 않는다.
- Wordpress
- 첫 화면에서는 게시물이 정상적으로 보이나, 고유 링크로 들어가면 page not found가 나올 경우
- url 변경 등이 있을 때 발생한다. 퍼머링크를 다른 옵션으로 설정했다가 재설정해준다.
- 첫 화면에서는 게시물이 정상적으로 보이나, 고유 링크로 들어가면 page not found가 나올 경우
- SSL/TLS
- 디피 헬만 알고리즘 참고
예전과는 달리, 요즘은 1024 비트 이하의 DH parameter는 취약한 것으로 보인다. 그러므로 이보다 긴 길이의 parameter를 사용해준다.또한 대부분의 클라이언트에서 ECDHE4를 지원하니 해당 암호화 스위트만을 이용하도록 제한하도록 한다.- Generate stronger DHE parameter & apply.
1024보다 큰 2048이나 4096으로 생성한다.
이에 따라 증가하는 비용 부담은 팔자려니 한다.
1openssl dhparam -out dhparam.pem [2048 or longer]- Apache
1SSLDHParametersFile /path/to/dhparam.pem - Nginx
1ssl_dhparam /path/to/dhparam.pem; - lighthttpd
1ssl.dh-file="/path/to/dhparam.pem" - Sendmail
1O DHParameters=/path/to/dhparam.pem - Dovecot
1ssl_dh_parameters_length = [2048 or longer] - Postfix SMTP
1smtpd_tls_dh1024_param_file = /path/to/dhparam.pem
- Apache
- Generate stronger DHE parameter & apply.
- 디피 헬만 알고리즘 참고
- Ubuntu
- 서버의 가동 시간을 알고 싶다.
- uptime
w나 top의 최상단에 제공되는 정보와 같다.
w의 경우 로그인 된 사용자를, top의 경우 실행 중인 프로세스들의 목록과 점유율 순위를 동적으로 확인할 필요가 있을 경우 사용한다.
- uptime
- 같은 네트워크의 윈도 컴퓨터의 공유 자원을 액세스 하고 싶다.
- samba 설치
- 서버 연결 ( smb://윈도 컴퓨터 주소)
- vim에서 펄 정규식을 쓰고 싶다.
- :ver로 +perl인지 확인한다. +perl이면 :perldo로 사용한다. vim 위키
- PGP로 암호화를 하는데 탐색기 우클릭으로 진행했으면 한다.
- 탐색기인 노틸러스 플러그인으로 seahorse-nautilus가 있으니 이를 설치하자.
- 쓸모 없는 파일이나 잘못된 파일 등을 지우는 정리기가 있었으면 좋겠다.
- 일단 우분투나 리눅스는 그런 것들이 별 필요가 없다. 잘 관리되고 있다면 홈 경로 아래만 잘 정리하면 무사하다. 그러나 굳이 원한다면 FSlint와 같은 소프트웨어도 있다.
- 브라우저로 받은 파일의 파일명이 % 인코딩이 붙어 저장이 되어있다.
- 15.10 기준으로
rename명령은 펄 스크립트를 통해 정규표현을 적용할 수 있으므로 이를 사용한다.
- rename은 스크립트를 좀 많이 생략한 부분이 있어 eg등의 옵션을 사용하는 것은 어렵다. 여러가지 문자를 치환해야 하거나 전체적으로 URI escaping이 필요하다면 URI::Escape모듈을 사용하는 스크립트를 작성하도록 한다.
- 15.10 기준으로
rename명령은 펄 스크립트를 통해 정규표현을 적용할 수 있으므로 이를 사용한다.
- 다 끝나고 소리가 났으면 좋겠다.
- ps 출력이 가로로 너무 길어서 짤린다
- w 옵션을 사용한다.
- 파일에 쓰여지는 내용을 실시간으로 보고 싶다.
-
1tail -f [파일]
-
- 트래커 사이트에 접속이 되지만 비트토렌트클라이언트가 작업을 시작하지 못한다.
- 대부분의 경우 사용 포트를 열어두지 않아서 발생한다. 특히나 공유기를 사용한다면 NAT설정을 제대로 해주자.
- 백그라운드에서 명령을 수행하고 싶다.
- 맨 뒤에 &를 붙인다.
- stdout으로 출력되는 것도 보기 싫다면 /dev/null로 출력을 돌린다.
- screen을 사용한다.
- ^Z로 중지한뒤 bg, disown한다.
- nohup을 사용한다.
- 출력을 다른 파일로 돌리고 싶다면
1nohup 명령 &> 파일&
당연히, /deb/null을 사용해도 된다. - 옛날 bash에서는
1nohup 명령 > 파일 2>&1&
의 형태였지만 지금은 위 형태로 사용 가능하다.
- 출력을 다른 파일로 돌리고 싶다면
- 맨 뒤에 &를 붙인다.
- 텍스트 파일의 인코딩을 바꾸고 싶다.
- python3 스크립트를 사용하려는데, pip로 설치한 패키지가 자꾸 없다고 한다.
- python3-pip를 설치하고, pip3로 설치한다.
- 회선 간 속도를 측정해 보고 싶다.
- iperf를 설치한 뒤 사용하는 것이 가장 간단하다.
-
nc (netcat)을 사용할 수도 있다.
- 받는 쪽
1nc -vvlnp [포트번호] >/dev/null - 보내는 쪽
1dd if=/dev/zero bs=1M count=1K | nc -vvn [받는 쪽 IP] [포트 번호]
- 받는 쪽
- 이것 저것 언인스톨 하다보니 설정에 아이콘들이 사라졌다.
- 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을 수행한 뒤
1dpkg-reconfigure locales
- 펄을 사용하는 도구가 locale을 읽으려고 했지만 모종의 이유로 읽을 수 없었다. 대부분의 경우 최종 결과물과는 별 상관 없지만 locale을 설정해 주도록 한다. 일단 locale-gen을 수행한 뒤
- 작업공간마다 다른 배경화면을 사용하고 싶다.
- compiz 추가 기능과 설정을 사용한다. 큐브나 다른 확장 기능도 많으니 그냥 골라 쓰면 된다.
설정이 꼬이면 무궁무진한 버그의 수렁으로 빠져드므로7 백업은 알아서 하자.
1sudo apt-get install compizconfig-settings-manager compiz-plugins-extra
- compiz 추가 기능과 설정을 사용한다. 큐브나 다른 확장 기능도 많으니 그냥 골라 쓰면 된다.
- kali linux의 도구들을 사용하고 싶다.
- 14.04라면 다음 리포지터리를 통해 다운 받도록 한다.
12345[crayon-65f8f15a769c1397328003 inline="true" ]ppa:cybersec/chaos-ppappa:cybersec/chaos-ppa-v1ppa:cybersec/chaos-ppa-v2ppa:cybersec/testppa:cybersec/trojan-horse
- 14.04라면 다음 리포지터리를 통해 다운 받도록 한다.
- 카톡을 하고 싶다.
- PlayOnLinux로 쉽게 설치가 가능하다. gdiplus, richedit, wmp를 추가 설치한다.
- 파일 전송이 되지 않으며8, 카톡 알림음 발생시 wmp가 크래시가 나면
당연히앱이 통째로 종료된다. - 광고는 정말 잘 보인다.
- 롤을 하고 싶다.
- PlayOnLinux로 북미판이든 뭐든 대충 설치하고, 윈도우에 설치된 클라이언트를 복사해 넣는다.
프레임이 뚝뚝 떨어지므로, 정상적인 플레이를 위해서는 그냥 윈도우로 멀티 부팅하는 것이 좋다.
- PlayOnLinux로 북미판이든 뭐든 대충 설치하고, 윈도우에 설치된 클라이언트를 복사해 넣는다.
- 맥 비스무리한 기분을 내고 싶다.
- 링크에 나온대로 따라한다. 쓸모는 없을 것이다.
- 여러 파일을 한번에 이름 바꾸기하고 싶다.
- rename을 사용한다. (perl 확장 기능)
- 파일을 찾고 싶다.
- 사용자 명 / 비밀번호를 잊어버렸다.
- 부팅시 grub에서 recovery mode로 진입한다.
- root shell로 들어간다.
-
123456# 쓰기 권한을 주어 재마운트mount -rw -o remount /# 사용자 명도 기억이 나지 않을 경우cat /etc/passwd# 패스워드 재설정passwd [사용자명]
- timezone을 변경하고 싶다.
-
1dpkg-reconfigure tzdata
-
- 텍스트 입력창에서 입력 소스를 한국어로 했는데도 영어만 써진다.
- 설치 후 첫 실행이라면 언어 지원을 한번 들어가서 필요한 패키지를 설치한다.
- 한국어가 아니라 한국어(Hangul)로 해야 한다.
- ibus-hangul이 설치되어있는지 확인한다.
- 한글 쓸 때마다 네모가 따라다닌다.
- 속성 패널이다. ibus-setup을 실행해 옵션을 변경해주면 된다.
- 오래간만에 사용하는 우분투 –
synaptic으로 패키지를 관리하고 싶은데 우분투 소프트웨어 센터밖에 없다.
- 설치한다. 기본 설치 상태에서 빠져있지만 깔면 잘 작동한다.
-
dconf를 수정하고 싶다.
- dconf-editor를 설치해 사용한다.
- 디스플레이를 nπ/2 만큼 회전해야 한다.
- 디스플레이를 확인한다.
1xrandr -q - 회전한다. 자주 필요하다면 shortcut으로 등록한다.
1xrandr --output [디스플레이 명] --rotate [left|right|noraml|inverted]
- 디스플레이를 확인한다.
- 서버의 가동 시간을 알고 싶다.
- MySQL 튜토리얼
- 테이블의 스키마를 보고 싶다.
-
1DESCRIBE [테이블];
1SHOW COLUMNS FROM [테이블];
스키마를 출력한다. -
1SHOW CREATE TABLE [테이블];
CREATE 자체를 보여준다.
-
- 테이블을 복사하고 싶다.
- SELECT *한 것을 전부 INSERT 한다.
- 스키마가 유지되는 것이 아니므로, CREATE TABLE을 선행할 것.
- 쿼리로 보낼 항목을 몇번 반복해야 한다.
- 사용자 정의 변수를 사용한다. 참조
- 유연하게 INSERT/UPDATE 하기
- 같은 일이라면 쿼리를 한번 보내는게 훨씬 유리하다. 그리고 이뻐.. 사이트 참고.
- Text로 된 16진수를 바이너리로 변환하고 싶다.
1unhex([스트링]); - id가 높은 n개의 row를 얻고 싶다.
1SELECT * FROM (SELECT * FROM 테이블명 ORDER BY id DESC LIMIT [n개]) sub ORDER BY id ASC; - 사용 된 디스크 용량을 알고 싶다.
- 쿼리로
1select table_schema, sum((data_length+index_length)/1024/1024) AS MB from information_schema.tables group by 1; - 유틸리티를 설치했다면 mysqldiskusage를 사용할 수도 있지만, 이는 터미널 상에 암호를 직접 노출하므로 내키지 않는다.
- 쿼리로
- 데이터가 저장된 경로를 알고 싶다.
1select @@datadir; - 특정 user에게 GRANT된 권한을 모두 보고 싶다. 링크
1SHOW GRANTS [FOR user] - 테이블을 보고 싶다. 링크
1SHOW [FULL] TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
- 테이블의 스키마를 보고 싶다.