# sed
리눅스 커맨드
find : 파일 찾기 find : 파일 찾기 명령어 find [경로] [옵션] [파일명] find / -name 'ls' 최상위 dir에서부터 모든 파일을 찾음 find -name 'abc' 현재 dir에서부터 하위 dir까지 검색 awk : 필터, 가공 awk : 데이터를 조작하고 리포트 생성 위해, 파일을 원하는 대로 필터링하거나 추가해주거나 기타 가공을 통해서 나온 결과를 행과 열로 출력해주는 프로그램 형식 : awk 'pattern' filename : awk '{action}' filename : awk 'pattern {action}' filename :
Docker를 이용한 서비스 컨테이너화 작업 - 3 (컨테이너 HTTPS 설정)
안녕하세요 오늘은 컨테이너에 https 설정을 진행하고 이에 맞게 Dockerfile을 수정 및 컨테이너를 실행하는 방법에 대해 포스팅해보겠습니다. https에 대해 간단히 알아보자면, https는 http에 보안 취약점을 해결하기 위해 탄생한 프로토콜입니다. http와 기본 사용법은 동일하지만 통신 간에 모든 내용이 암호화되어 전송된다는 차이점이 있습니다. SSL 또는 TLS 프로토콜을 이용해 데이터를 암호화하며 서버와 클라이언트는 발급받은 키를 이용해 복호화하여 데이터를 통신합니다. 암호화 방식은 공개 키 방식과 대칭 키 방식을 함께 사용합니다. 공개 키 방식의 경우 하나의 키를 공개 키로 공개하고, 서버 자신은 공개 키와 개인 키를 가지고 있어 개인 키는 공개되지 않습니다. 대칭 키 방식의 경우 암호화와 복호화 시 같은 암호 키를 사용하는 방식입니다. 클라이언트가 서버에 접속 시 서버는 인증서를 클라이언트에 보내고 클라이언트에서 공개 키로 이를 해독합니다. 해독이 완료되면

[tip] SED 의 'd' 옵션
이런걸 발견 결과가 똑같아서 검색 stream editor의 출력에서 2번째 line은 제외한다고 (첫번째 값만 가져오고싶다고) 이해했다. > -i 옵션을 사용하면 inplace로 파일 내용이 변경된다. 테스트 파일 내용의 4줄 중에서 '2d' 를 주면 두번째 라인은 지워진다. '2!d' 를 주면 두번째 라인만 제외하고 지워진다.
sed
s: substitution sed 's/unix/linux/' test.txt 위와 같이 sed 명령어를 통해서 test.txt 파일에 존재하는 unix 단어를 linux 로 변경 할 수 있다. 하지만, 위에서 볼 수 있듯이 구문에서 첫번째로 매칭되는 단어(unix) 만 변경된 것을 알 수 있다. test.txt 에 존재하는 모든 unix 단어를 linux 로 바꿔주려면 g 옵션을 사용하면 된다. sed 's/unix/linux/g' test.txt 같은 구문의 n 번째 매칭의 단어를 교체 ( first: /1, second: /2 ) sed 's/unix/linux/2 test.txt n 번째 라인만 교체( 인덱스 0 부터 시작 ) sed '3 s/unix/linux test.txt n 번째 match 교체 1번째로 match 하는 A 를 B 로 replace 0,/A/{s@A@B@} https://stackover
Sed cheet sheet
sed 란? Stream Editor의 약자로 원본 텍스트 파일을 편집하는 프로그램. 원본을 변경을 안하기 때문에 안전하게 사용할 수 있다는 장점이 있다. (-i 옵션으로 원본에 반영도 됨) 줄 단위로 수행을 한다. sed 구조 두 개의 버퍼로 이루어져 stream을 변경한다. 패턴 버퍼 & 홀드 버퍼 한 줄을 읽어서 패턴 버퍼에 담고, 변현과 추가를 하기위해서 홀드 버퍼에 담고, 변경이 완료되면 패턴 버퍼에 다시 담김 OutStream 으로 결과 출력이 됨 sed 옵션 및 예제 sed_exam.txt -n 옵션 : 작업할 pattern buffer만 출력한다. 기본적으로 sed는 pattern buffer를 모두 출력하는데 -n은 작업한 row만 출력한다. 첫번째 줄만 출력 1~3 번째 줄만 출력 8~끝 라인 출력 (p 는 print의 약자) -e 옵션 : 여러개를 복수로 작업할 경우 1

[Linux] NFS, useradd, Virtual Host
사용자는 로그인을 하게 되면 각 사용자별로 별도의 시스템 환경 별수를 할당 받는다. 연속된 2개 이상의 명령어를 한 번에 실행하고자 한다면 ls ; date -> 앞 명령어에서 오류가 발생해도 뒷 명령어 실행함 ls && date -> 앞 명령어에서 오류가 난다면 뒷 명령어 실행 안 함 \ -> 명령어가 옆으로 너무 길어질 경우, 다음 줄에 이어서 작성 redirection (>, >>, 파일명 # 정

리눅스 명령어 sed의 매개 변수 확장이란?
sed 명령어의 매개변수 확장에 대한 내용을 공부하고 정리합니다. 1. 질문 개발서버에 mysql 설치하는 과정을 진행하다가 일부 코드를 해석하는 중에 sed 명령어 매개변수확장이라는 개념에 대해 알게 되었습니다. 일부 코드 해석 sed -i "s/원래단어/바꿀단어/g" 이런식으로 사용되는 거라고 알고 있었습니다. 따라서 basedir=의 내용을 /home/ubuntu/db~로 변경한다는 것을 예상했습니다. 초기 mysql 압축파일 다운받고 mysql.server 를 확인하면 이렇게 비어있기 때문에, /home/ubuntu/db~ 경로가 지정됩니다. 하지만 한가지 궁금했던 것이 있었는데,, > 저는 변수를 사용해서 경로를 지정할 때에 이렇게 사용한다고 생각했습니다. 따라서 ${base_dir//\//\\/} 이 부분이 이해가 가지 않았고, 실제로 로컬에서 test 해본 결과 위의 코드로 실행하면 아무
nginx access log 에서 ip 추출해보기
nginx access log 에서 unique한 ip 목록을 추출할 일이 있었음. 파일을 가져와서 엑셀에 붙여서 잘 분리해서 중복 제거를 해도 되지만, 서버내에서 작업을 해보기로 함. sed, awk, sort, uniq 를 이용하면 ip들을 뽑을 수 있음. 로그는 아래와 같은 형식이었고 IP는 [] 로 둘러 쌓여져 있음. 원리가는 간단 함. awk 가 공백을 위주로 토큰을 만들수 있기 때문에 1. 우선 sed로 "][" 를 공백을 만들어 줌. 2. awk 에서 4번째 것을 출력 3. sort 하고 uniq 를 수행 sort 와 uniq 명령어를 수행하면 중복이 제거가 됨. 결론

AWS RDS의 Data base를 dump하기
VPC 안에 있는 RDS에서 Data base를 dump해 와서 local의 mysql에 밀어 넣는 과정에서 단편적으로 맞닥뜨렸던 문제를 기록합니다. ssh tunneling을 통해 DB dump해오기 mysqldump 명령어를 통해 .sql파일의 형태로 db를 덤프해 올 수 있습니다. tunneling을 수행할 ec2 인스턴스가 mysql client를 가지고 있어야 합니다. COLUMN_STATISTICS 덤프 시도 중 ...: Unknown table 'COLUMNSTATISTICS' in informationschema 라는 에러가 발생할 경우 8.0부터 새로 추가된 옵션으로, 덤프 할 때 ANALYZE TABLE에 통계 데이터를 입력 또는 수정하는 옵션이라고 합니다.레퍼런스 명시적으로 해당 옵션을 사용하지 않는다고 알려줍시다.
awk, sed 산책
awk와 sed는 리눅스에서 서버를 관리할때나 꽤나 유용한것 같다. 아래는 자주 쓰는 코드 및 속성을 소개 한다. 구글링을 하면 더 쉽게 찾을수 있다. 하지만 키워드를 안다는 것은 다른 사람보다 아이템을 더 가지고 있다고 보면 된다. 세상은 키워드가 지배한다. awk sed