전체 글
IT 관련 잡다한 지식 기록
-
grep 으로 여러 줄 검색할 일 있을 때 해당 덩어리 전체가 정확히 맞아야 되는 경우도 있지만 그냥 앞 뒤 정보만 확인하고 싶은 때가 있습니다. 전자는 zop 등의 옵션으로 사용할 수 있지만 손이 좀 갑니다. -B -A -C 옵션을 사용하면 원하는 패턴이 있는 줄 뿐만 아니라 앞 뒤 줄을 더 확인할 수 있습니다. -B 는 before 이전 몇 줄, -A 는 after 이후 몇 줄, -C 는 context 로 동일한 크기로 앞뒤 줄 포함(-B, -A 동시 사용한 효과와 동일) grep -B 1 -A 2 session /var/log/syslog 위와 같이 명령 내리면 session 이 발견된 줄의 윗 1줄, 아래 2줄을 포함해서 보여줍니다. grep -C 1 session /var/log/syslog 위..
grep 검색 패턴 앞 뒤로 출력하기grep 으로 여러 줄 검색할 일 있을 때 해당 덩어리 전체가 정확히 맞아야 되는 경우도 있지만 그냥 앞 뒤 정보만 확인하고 싶은 때가 있습니다. 전자는 zop 등의 옵션으로 사용할 수 있지만 손이 좀 갑니다. -B -A -C 옵션을 사용하면 원하는 패턴이 있는 줄 뿐만 아니라 앞 뒤 줄을 더 확인할 수 있습니다. -B 는 before 이전 몇 줄, -A 는 after 이후 몇 줄, -C 는 context 로 동일한 크기로 앞뒤 줄 포함(-B, -A 동시 사용한 효과와 동일) grep -B 1 -A 2 session /var/log/syslog 위와 같이 명령 내리면 session 이 발견된 줄의 윗 1줄, 아래 2줄을 포함해서 보여줍니다. grep -C 1 session /var/log/syslog 위..
2023.07.11 -
소개 slither link 는 Fences 또는 Loop the Loop 라고도 알려져 있는 퍼즐 게임입니다. 먼저 루프(loop) 라는게 고리 모양을 뜻하고 이 고리를 따라가면 길을 반복해서 가기 때문에 반복의 의미도 갖게 되었습니다. 위와 같은 모양은 무한 반복문(infinite loop) 의 상징처럼 사용되죠. 이 퍼즐에서는 다음과 같은 상태를 만드는게 목표입니다. 위의 무한 반복과 비교하면 교차되지 않는 단 한 개의 이어진 선의 모임입니다. 보통 위와 같이 격자 형태의 평면이 주어지고 점 4개로 둘러쌓인 칸에 숫자가 들어가 있기도 합니다. 문제를 다 풀면 위와 같이 그려지게 됩니다. 기본 규칙 1. 숫자 주위에는 숫자 만큼의 선분(점1개와 인접한 점1개를 이은 직선, 대각선은 인정 안됨)이 반드..
[puzzle][slither-link] 문제 푸는 공식(작성중)소개 slither link 는 Fences 또는 Loop the Loop 라고도 알려져 있는 퍼즐 게임입니다. 먼저 루프(loop) 라는게 고리 모양을 뜻하고 이 고리를 따라가면 길을 반복해서 가기 때문에 반복의 의미도 갖게 되었습니다. 위와 같은 모양은 무한 반복문(infinite loop) 의 상징처럼 사용되죠. 이 퍼즐에서는 다음과 같은 상태를 만드는게 목표입니다. 위의 무한 반복과 비교하면 교차되지 않는 단 한 개의 이어진 선의 모임입니다. 보통 위와 같이 격자 형태의 평면이 주어지고 점 4개로 둘러쌓인 칸에 숫자가 들어가 있기도 합니다. 문제를 다 풀면 위와 같이 그려지게 됩니다. 기본 규칙 1. 숫자 주위에는 숫자 만큼의 선분(점1개와 인접한 점1개를 이은 직선, 대각선은 인정 안됨)이 반드..
2023.06.30 -
일단 github 에서 새로운 저장소를 만듭니다. 만들어진 저장소의 필요한 주소(https 또는 git@..git)를 복사해서 로컬 저장소에서 다음 명령을 내립니다. git remote set-url origin git@github.com:저장소주소.git git push 참 쉽죠? 더보기 다만, 요즘의 github 기본 저장소는 main 이고 기존의 많은 git 저장소는 기본 저장소가 master 인 점이 다를 수 있습니다. github 해당 프로젝트 페이지에 보면 Settings 가 있습니다. General 항목에 Default branch 가 있고 이게 main 으로 되어 있는데 연필 모양 아이콘을 눌러서 직접 수정하거나 좌우 화살표 아이콘을 눌러 새로 push 한 master 를 선택해서 간편히 ..
[github] 로컬 저장소를 새 github 저장소로 쉽게 만들기일단 github 에서 새로운 저장소를 만듭니다. 만들어진 저장소의 필요한 주소(https 또는 git@..git)를 복사해서 로컬 저장소에서 다음 명령을 내립니다. git remote set-url origin git@github.com:저장소주소.git git push 참 쉽죠? 더보기 다만, 요즘의 github 기본 저장소는 main 이고 기존의 많은 git 저장소는 기본 저장소가 master 인 점이 다를 수 있습니다. github 해당 프로젝트 페이지에 보면 Settings 가 있습니다. General 항목에 Default branch 가 있고 이게 main 으로 되어 있는데 연필 모양 아이콘을 눌러서 직접 수정하거나 좌우 화살표 아이콘을 눌러 새로 push 한 master 를 선택해서 간편히 ..
2023.06.21 -
rpi 4B 용 buster(debian 10) 기준으로 /etc/vim/vimrc 파일이 존재하고 이 파일에 아래 내용이 써져 있습니다. au BufReadPost * if line("'\"") > 1 && line("'\"")
[raspberry pi] 원격으로 rpi vim 설정 변경하기rpi 4B 용 buster(debian 10) 기준으로 /etc/vim/vimrc 파일이 존재하고 이 파일에 아래 내용이 써져 있습니다. au BufReadPost * if line("'\"") > 1 && line("'\"")
2023.06.20 -
기록용으로 남깁니다. 쉬운 내용인데 가끔 가물가물해서 정리합니다. 문자열이 s = "God is my judge" 일 때 s[::-1] 로 뒤집힌 값을 얻을 수 있습니다. 참고로 이 슬라이스 인덱싱은 [시작위치:끝위치:step/stride/보폭] 으로 지정할 수 있습니다. 끝위치 전까지로 끝위치 문자는 포함되지 않습니다. s 는 s[0::1] 과 같습니다. 다른 방법(for 를 사용한 c 방법, 리스트로 변환하는 방법)들이 있지만 이 방법만 기억하셔도 좋을 것 같습니다. 깔끔하니까요!!
[python] 문자열 뒤집기기록용으로 남깁니다. 쉬운 내용인데 가끔 가물가물해서 정리합니다. 문자열이 s = "God is my judge" 일 때 s[::-1] 로 뒤집힌 값을 얻을 수 있습니다. 참고로 이 슬라이스 인덱싱은 [시작위치:끝위치:step/stride/보폭] 으로 지정할 수 있습니다. 끝위치 전까지로 끝위치 문자는 포함되지 않습니다. s 는 s[0::1] 과 같습니다. 다른 방법(for 를 사용한 c 방법, 리스트로 변환하는 방법)들이 있지만 이 방법만 기억하셔도 좋을 것 같습니다. 깔끔하니까요!!
2023.06.19 -
기록용으로 남깁니다. 원하는 문구 앞(위)에 줄을 추가할 때는 /i 를 사용하고 뒤(아래)에 추가할 때는 /a 를 사용합니다. sed -i'' -re "/찾을문자열/i\앞에추가할문자열/" filename.txt sed -i'' -re "/찾을문자열/a\뒤에추가할문자열/" filename2.txt ※ 기본적으로 sed 명령은 '/찾을패턴/명령' 형태로 되어 있습니다. 이 명령에는 출력(p), 삭제(d), 범위(,), 파일읽기(r), 파일쓰기(w), 줄 위 삽입(i), 줄 아래 삽입(a), 변경(c), 다음(n) 등이 있습니다. 명령이 앞에 오는 명령은 '명령/대상패턴/변경할패턴/' 형태로 되어 있습니다. 이 명령에는 치환(s), 변환(y) 등이 있습니다. 파라미터에는 -i -f -e -r -l 등이 있습니..
[sed] 원하는 문구를 찾아 앞이나 뒤에 문장 추가하기기록용으로 남깁니다. 원하는 문구 앞(위)에 줄을 추가할 때는 /i 를 사용하고 뒤(아래)에 추가할 때는 /a 를 사용합니다. sed -i'' -re "/찾을문자열/i\앞에추가할문자열/" filename.txt sed -i'' -re "/찾을문자열/a\뒤에추가할문자열/" filename2.txt ※ 기본적으로 sed 명령은 '/찾을패턴/명령' 형태로 되어 있습니다. 이 명령에는 출력(p), 삭제(d), 범위(,), 파일읽기(r), 파일쓰기(w), 줄 위 삽입(i), 줄 아래 삽입(a), 변경(c), 다음(n) 등이 있습니다. 명령이 앞에 오는 명령은 '명령/대상패턴/변경할패턴/' 형태로 되어 있습니다. 이 명령에는 치환(s), 변환(y) 등이 있습니다. 파라미터에는 -i -f -e -r -l 등이 있습니..
2023.06.05 -
기록용으로 남깁니다. 구글 코랩에서 ipynb 파일 같은 것을 열었을 때 구글 드라이브에 있는 데이터 파일에 접근할 수 있습니다. from google.colab import drive import pandas as pd drive.mount("/content/drive") df = pd.read_csv("/content/drive/MyDrive/abcd.csv") 먼저 google.colab 의 drive 를 import 합니다. 코랩 안에서는 당연히 별도의 설치 없이 사용할 수 있습니다. 그 외의 환경에서는 멍개님의 글 과 같이 복잡한 방법이 필요합니다. drive.mount("/content/drive") 명령으로 마운트 명령을 내리면 구글 계정 연동 페이지 뜨면서 권한 묻고 할 겁니다. 내가 쓰려..
[python][colab] 구글 드라이브 로그인하고 파일 접근하기기록용으로 남깁니다. 구글 코랩에서 ipynb 파일 같은 것을 열었을 때 구글 드라이브에 있는 데이터 파일에 접근할 수 있습니다. from google.colab import drive import pandas as pd drive.mount("/content/drive") df = pd.read_csv("/content/drive/MyDrive/abcd.csv") 먼저 google.colab 의 drive 를 import 합니다. 코랩 안에서는 당연히 별도의 설치 없이 사용할 수 있습니다. 그 외의 환경에서는 멍개님의 글 과 같이 복잡한 방법이 필요합니다. drive.mount("/content/drive") 명령으로 마운트 명령을 내리면 구글 계정 연동 페이지 뜨면서 권한 묻고 할 겁니다. 내가 쓰려..
2023.05.31 -
def check_duplicate_execution(exact_python_file_name, pid): for p in psutil.process_iter(): cmd = p.cmdline() if cmd and exact_python_file_name in cmd and p.pid != pid: return True return False 파라미터는 비교할 파이썬 파일 이름인데 여기에서는 이것을 실행한 내 프로세스의 파일 이름을 전달합니다. psutil.process_iter() 로 psutil.Process객체를 하나씩 가져와서 cmdline() 으로 얻어온 명령 줄에 해당 이름이 존재하는지 확인가능합니다. cmdline() 은 리스트로 되어 있습니다. 보통은 파이썬 스크립트 이름은 cmdline..
[python3] 파이썬 프로세스 중복 실행 여부 확인def check_duplicate_execution(exact_python_file_name, pid): for p in psutil.process_iter(): cmd = p.cmdline() if cmd and exact_python_file_name in cmd and p.pid != pid: return True return False 파라미터는 비교할 파이썬 파일 이름인데 여기에서는 이것을 실행한 내 프로세스의 파일 이름을 전달합니다. psutil.process_iter() 로 psutil.Process객체를 하나씩 가져와서 cmdline() 으로 얻어온 명령 줄에 해당 이름이 존재하는지 확인가능합니다. cmdline() 은 리스트로 되어 있습니다. 보통은 파이썬 스크립트 이름은 cmdline..
2023.05.24