Useful Linux Command Line Bash Shortcuts You Should Know

Controlling The Screen Ctrl+L – clears the screen (same effect as the “clear” command). Ctrl+S – pause all command output to the screen. If you have executed a command that produces verbose, long output, use this to pause the output scrolling down the screen. Ctrl+Q – resume output to the screen after pausing it with Ctrl+S. Move Cursor on The Command Line Ctrl+A or Home – moves the cursor to the start of a line. Ctrl+E or End – moves the cursor to the end of the line. Ctrl+B or Left Arrow – moves the cursor back one character at a time. Ctrl+F or Right Arrow – moves the cursor forward one character at a time. Ctrl + Left Arrow or Alt+B or Esc and then B – moves the cursor back one word at a time. Ctrl + Right Arrow or Alt+C or Esc and then F – moves the cursor forward one word at a time. Search Through Bash History Up arrow key – retrieves the previous command. If you press it constantly, it takes you through multiple commands in history, s

tcpdump usage

Synopsis tcpdump  [  -AbdDefhHIJKlLnNOpqStuUvxX#  ] [  -B   buffer_size  ]           [  -c   count  ] [  -C   file_size  ]           [  -E   spi@ipaddr  algo:secret,...  ]           [  -F   file  ] [  -G   rotate_seconds  ] [  -i   interface  ]           [  --immediate-mode  ] [  -j   tstamp_type  ] [  -m   module  ]           [  -M   secret  ] [  --number  ] [  --print  ] [  -Q   in|out|inout  ]           [  -r   file  ] [  -s   snaplen  ] [  -T   type  ] [  --version  ]           [  -V   file  ] [  -w   file  ] [  -W   filecount  ] [  -y   datalinktype  ]           [  -z   postrotate-command  ] [  -Z   user  ]           [  --time-stamp-precision= tstamp_precision  ]           [  expression  ]  Example  # packets on eth0 interface  tcpdump -i eth0  # packets on any interface  tcpdump -i any  # tcp port 1935 packets on eth0 interface  tcpdump -i eth0 tcp port 1935  # tcp port 1935 packets including bodies on eth0 interface and write a file  tcpdump -s 0 -

홈 서버 구축기 #1 - HW 구매

이미지
홈 서버의 목적 - Jira, Confluence 설치 - 개인용 gitlab 설치 활용 Mini PC 구매 [리퍼비쉬] ASUS UN45H -VM053M 베어본 일자 : 2018년 9월 10일 가격 : 159,000원 ( 네이버쇼핑 ) 사양 CPU : Intel Celeron (R) N3150 (1.6GHz 4 Core) 메모리, HDD 없는 베어본 메모리 슬롯 : DDR3L-1600Mhz 2xDIMM Storage 1 x M.2 SSD 1 x 2.5'' SSD/HDD 확장 베이 메모리와 HDD를 별도 구매 진행하였으나, 망함. 메모리 : 저전력 노트북용 메모리 (노트북 저전력PC3L 4G 128000S) 아무 생각없이 일반 PC용 DDR3 메모리( 삼성 데스크탑 메모리 DDR3 4G PC3-12800 ) 구매하였으나, UN45H에는 맞지 않음. 메모리 슬롯이 작음... OTL. DIMM이 아닌 SO-DIMM 슬롯임. 저전력 & 노트북용 메모리가 필요하여 메모리( 삼성 노트북 저전력PC3L 4G 128000S ) 교환. 가격 : 33,800원 스토리지 : 2.5인치 SSD M.2 SSD 슬롯이 있어서 M.2 SSD( WD M.2 2280 250G SSD ) 구매. 그러나, UN45H-VM053M 모델의 M.2 SSD는 half-size M.2 SSD 만 가능! OTL. 반품하고, 그냥 2.5인치 SSD( WD SSD 240G ) 구매 가격 : 61,630원 2.5인치 설치는 허접하게 생긴 케이블을 연결하고 매뉴얼대로 따라하면 되는데, 최종적으로 허접하게 생긴 SATA cable을 UN45H-VM053M에 연결하는게 잘 안 됨. OTL M.2 SSD를 실패하여 이번에도 실패하면 안 되겠기에 계속 구글링하다가 아래와 같은 설명을 발견( ASUS UN65U 매뉴얼 )! SATA connector를 위로 빼고, 케이블을 넣고 닫으면 됨.

Write Me...: blogger 에 마크다운(Markdown) 적용하기

Write Me...: blogger 에 마크다운(Markdown) 적용하기 : 블로거를 다시 시작하면서 맥북에서 사용하는 블로그 앱들 중에 iA Writer 라는 앱을 소개했었습니다. iA Writer 에서 주요하게 다루는 markdown 문서를 알게 되었고, 문서작성에서 상당히 유용한 방식이라고 합니다. m... css 적용 후 <article class="markdown-body"> 블로그 내용 </article>

RESTful 자바 패턴과 실전 응용: 3장 보안과 추적성

이미지
3장 보안과 추적성 REST API 로깅 javax.servlet.Filter를 활용하고, log4j를 이용한 REST API 로깅 예제. 대규모 분산 환경에서 로그 데이터는 개발자가 디버깅을 시작할 수 있는 거의 유일한 단서이다. 따라서, 로깅은 서버 문제를 추척하고 오류가 발생하기 직전까지의 과정을 재연하는데 상당한 도움이 된다. 이를위해 로그는 아래와 같은 정보를 포함하여야 한다. 현재 날짜/시간 로깅 레벨 스레드명 간단한 로거명 상세한 메시지 최초 호출자(initiator) 또한, 요청 관련 메타 정보(요청 실행 소요 시간, 요청 상태, 요청 객체의 크기 등 상세한 정보)를 로깅하면 성능 이슈나 응답 지연 문제를 조사하는데 도움이 된다. 아래와 같은 민감한 데이터는 마스킹 또는 숨김처리를 해야한다. 고객 정보(신용카드 정보) 암호: 패스워드 은닉기(obfuscator) 개인 식별 정보(Personally Identifiable Information): 성명, 이메일, 신용카드 번호 -> 치환, 셔플링, 암호화 기법으로 마스킹 처리한다. 더 자세한 정보는  Data Masking 참고. 기본적으로 민감한 정보를 다루는 리소스의 페이로드는 로깅을 하지 않는다. 로깅 시스템을 모니터링 시스템과 연계하면 백그라운드로 SLA 지표 등 통계 관련 자료를 수집할 수 있다. 페이스 북은 스크립(Scribe) 이라는 자체 솔루션을 개발했고, 구글은 대퍼(Dapper) 라는 수천 개의 요청으로부터 데이터를 샘플링하여 추적 가능할 정도의 충분한 데이터로 가공하여 저장한다. 대부분의 경우 충분한 양의 샘플링만으로도 상세한 내용을 추적하는데 큰 도움이 된다는 것이 밝혀졌다. RESTful 서비스 검증 JAX-RS는 리소스 클래스를 검증하기 위한 Bean Validation 기능을 갖고 있다. 아래의 두 단계를 거쳐 검증한다. 리소스 메소드 파라미터에 어노테이션을 붙여 제약 조간을

RESTful 자바 패턴과 실전 응용: 2장 리소스 설계

2장 리소스 설계 Contents Negotiation (콘텐츠 협상) 동일한 URI의 리소스를 여러 가지 표현형으로 제공하여, 클라이언트가 원하는 하나를 선택할 수 있게 하는 것을 말한다. 콘텐츠 협상에는 HTTP 헤더를 이용하는 방법과 URL 패턴을 이용하는 두 가지 방법이 있다. HTTP 헤더를 이용해서 처리하는 것이 더 좋다. 복잡한 비즈니스 관련 문제들을 따로 분리하기 용이하기 때문이다. HTTP 헤더를 이용한 콘텐츠 협상 Accept Accept-Charset Accept-Encoding Accept-Language Accept-Ranges @Produces(MediaType.APPLICATION_JSON) HTTP 406 Not Acceptable : Accept 요청에 정의된 유형을 서비스할 수 없을 경우 HTTP 415 Unsupported Media Type : 요청 유형을 지원하지 않을 경우 Runtime Contents Negotiation in JAX-RS Variant JAX-RS 명세에서 Variant는 미디어 타입, 콘텐츠 언어, 콘텐츠 인코딩, ETags, 최근 변경 헤더, 기타 다른 필수 조건들이 조합된 객체로, 서버가 지원하는 리소스 표현형을 나타낸다. URL 패턴을 이용한 콘텐츠 협상 URL의 확장자(.xml, .json 등)에 따라 처리한다. 엔티티 제공자와 여러 가지 표현형 Java 클래스를 entity(representation)으로 변환하거나 역변환하는 방법들에 대해 설명한다. 변환은 Java Serializable 을 이용한다. Serialization은 MessageBodyWriter, Deserialization은 MessageBodyReader를 이용한다. MessageBodyReader Inbound entity -> Java로 deserialization Representation-to-Java Methods isRe

RESTful 자바 패턴과 실전 응용: 1장 REST: 태생의 기원

1장 REST: 태생의 기원 SOA 방식의 웹 서비스가 오래동안 활용되어왔음 SOAP: Simple Object Access Protocol WSDL: Web Services Description Language SOAP/WSDL은 XML 기반의 표준이고, 서비스 간 엄격한 규칙이 정립된 상황에서 잘 작동한다. 점점 분산 서비스가 등장하고, 한 서비스는 자신이 클라이언트가 되어 다른 플랫폼에서 제공하는 API를 사용하게 되었다. 따라서, 여러 분산된 서비스 상호간에 손쉽게 정보를 주고 받아야할 필요성이 대두되었다. REST는 HTTP에 기반하여 HTTP가 가능한 곳이면 어디든 쓸 수 있다. REST 개요 REST는 HTTP 메소드와 URI 사용 등의 웹 표준을 준수하는 아키텍처 스타일로, 다음과 같은 기본 철학을 갖고 있다. 모든 리소스를 URI로 구별할 수 있다. 모든 리소스는 복수의 형태로 나타낼 수 있다. 모든 리소스는 HTTP 표준 메소드를 이용하여 접근/수정/생성/삭제할 수 있다. 서버에는 어떠한 상태 정보도 갖고 있지 않다. REST와 Stateless REST는 서버의 Stateless를 기본으로 한다. 클라이언트에서 서버로 전달되는 요청에 가능한 모든 정보가 포함되어 있어야 한다. 덕분에 요청에 대한 가시성(visibility), 신뢰성(reliability), 확장성(scalability)이 향상된다. Visibility: 요청에 대한 상세한 정보를 알고 싶을 때, 요청 객체를 다시 파헤쳐보지 않아도 되므로 Visibility가 좋아진다. Reliability: 서버 실행 중 부분적인 장애가 발생하여도 체크 포인트나 실행을 재개할 지점을 고려하지 않아도 되니 신뢰성(reliability)이 향상된다. Scalability: 서버 측에 상태를 따로 보관하지 않기 때문에 서버를 증설한 만큼 비례하여 요청 처리 한도가 증가한다. 리차드슨 성숙도 모델 RMM(Richardson matur