Terminal Productivity

rsync

두 디렉토리 동기화

$ rsync -avzh \
	--dry-run \
	--progress \
	~/Documents/BACKUPZ/2020/ ./2020/

앞에가 src, 뒤가 dest 이며, dry-run 실행 구문이다. --progress412 files to consider 표시.

What’s the version of my OS?

Linux1

Open a terminal and type uname -a. This will give you your kernel version, but might not mention the distribution your running. To find out what distribution of linux your running (Ex. Ubuntu) try lsb_release -a or cat /etc/*release or cat /etc/issue* or cat /proc/version.

Combine multiple commits into one

$ git rebase -i HEAD~4

HEAD 다음에는 전체 갯수를 지정한다. 총 4개의 최신 커밋이 표시된다.

pick ae536d3 2	<---- older commit
s cf6a7c7 3
s bc15ec6 4
pick 39d9628 5	<---- newer commit

s, squash = use commit, but meld into previous commit. 이전 커밋으로 녹아든다. 여기서는 2번 커밋으로 된다. 2번과 함께 총 3개의 커밋 로그가 합쳐서 표시된다. 로그를 기입하면 주석은 제거되고 남아있는 문구가 커밋 로그가 된다.

커밋 로그만 수정할때는 r을 사용하면 된다. (e로 하면 --continue로 다시 한 번 진행 필요)

GitHub Desktop에서는 push 하기 전 Undo Commit을 지원한다. CLI에서는 push 이후에도 리셋이 가능하다.

# Pager를 사용하지 않도록 최초 설정
$ git config --global core.pager cat

# 커밋 로그 조회
$ git log --oneline
818c17c (HEAD -> main) 2
d60ac7b 1

$ git reset --soft HEAD~1

--soft는 커밋만 제거되고 수정사항은 파일에 그대로 남아 있지만 --hard로 진행할 경우 수정사항도 모두 초기화되기 때문에 주의가 필요하다. 이후 push로 마무리 하면 되는데 rebase를 했기 때문에 failed to push가 발생하고 --force로 진행해야 한다.

$ git push --force

참고로 git revert는 revert 내역을 명시적으로 남기면서 커밋을 추가하기 때문에 커밋 로그를 정리하는 용도로는 적절치 않다.

git -u flag

첫 push 할 때 다음과 같이 진행하는데:

$ git push -u origin master

여기서 -u flag는 local branch와 remote branch를 자동으로 연결한다. 그렇지 않으면 매 번 origin과 브랜치명을 기입해주어야 한다. 그 다음 부터는 옵션없이 git pull, git push가 가능하다.

기타 브랜치 명령:

# 브랜치 확인
$ git branch -va

# 현재 브랜치명 변경:
$ git branch -M master

dig +trace

$ dig +trace likejazz.com

+trace는 DNS 질의 과정을 root dns 부터 모두 표시해준다.

diff와 patch

다음과 같이 변경 사항을 생성한다.

$ diff -u a-original/a.py a-patched/a.py
--- a-original/a.py	2022-05-11 10:07:21.000000000 +0900
+++ a-patched/a.py	2022-05-11 10:07:42.000000000 +0900
@@ -1,4 +1,4 @@
 aaa
 bbb
-ccc
+ddd
 ddd

> a.patch를 이용해 패치 파일로 저장한 다음, 다음과 같이 적용할 수 있다.

$ patch -p0 < a.patch

a-original/a.py에 패치가 적용된다.

포트 포워딩

$ ssh -N -L 8000:localhost:8000 ubuntu@XX.XX.XX.XX

웹 브라우저 등에서 XX.XX.XX.XX:8000 으로 접속하면 해당 서버의 localhost:8000으로 연결된다.

nload

네트워크 모니터링 $ sudo apt install nload

Device는 eth를 택하도록 화살표로 선택하고 F2 옵션에서 Unit for traffic numbers: Human Readable (Byte)에서 TAB으로 선택, F5로 저장

Last Modified: 2022/07/29 11:47:03

is a collection of Papers I have written.
© 2000 - Sang-Kil Park Except where otherwise noted, content on this site is licensed under a CC BY 4.0.
This site design was brought from Distill.