포스트464 [Git] 커밋 로그 메시지 수정하기 git을 이용해 코드관리를 하다보면 커밋 메시지에 오타가 생기거나 설명을 잘 못 추가하는 경우가 간혹있다. 커밋 로그를 잘 적어놔야 코드의 유지보수가 편한데, 커밋 로그를 잘못 작성했다면 수정을 해야한다. commit --amend 마지막 커밋을 수정하려면 git commit --amend를 이용하면 된다. $ git commit --amend -m "New Commit message" $ git push -f 커밋 메시지가 변경되어 Commit Hash 값이 바뀌었으므로 원격 저장소에 -f 옵션을 이용해서 강제로 푸쉬를 해줘야 수정이 된다. rebase -i 개발 브랜치를 따서 작업을 한 다음 머지(Merge)를 했는데 잘못된 커밋 로그를 발견한 경우도 있다. 마지막 커밋에 대한 수정이 아닌 커밋로그 .. 2020. 11. 27. [Linux] 디스크 입출력(I/O) 성능 측정하기 - dd, hdparam 명령 빅데이터 클러스터에서 각 호스트 장비의 입출력 성능은 매우 중요하다. 장비의 스펙이 바뀌거나 HDD에서 SSD로 구성을 변경할 때 서버의 입출력 성능을 측정해보고 싶을 때가 있다. 디스크 확인 (df -h) 우선 테스트해볼 디스크 장비를 확인해봐야한다. 시스템에 마운트되어 있는 파일 시스템 정보는 df 명령을 이용해 확인할 수 있다. $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 63G 2.2G 58G 4% /data1 df 명령의 -h 옵션을 이용하면 사람이 읽을 수 있는 (Human Readable) 형태로 정보를 출력해준다. /dev/sda1 디스크에 대한 입출력 성능 측정을 진행하겠다. 1. dd 명령 - 쓰기 성능 테스트 가장 간단하.. 2020. 11. 19. [Linux] grep 명령어에서 AND, OR, NOT 조건 사용하기 grep은 Bash를 이용해 스크립트를 작성하면서 가장 많이 사용하는 명령 중 하나다. grep은 파일을 읽거나 파이프에서 입력을 받아 특정 패턴을 포함하는 라인만 출력해주는 명령이다. $ cat test.txt example1 example2 exam3 ex4 example $ grep example test.txt example1 example2 example $ cat test.txt | grep example example1 example2 example 주로 특정 패턴에 맞는 내용을 필터링하기 위해 사용한다. 하나 이상의 필터 조건을 AND, OR, NOT 조건으로 사용할 수도 있다. grep 명령어 AND 조건 두 개 이상의 필터 조건을 모두 만족하는 라인만 출력하고 싶을 때는 grep 명령어.. 2020. 11. 19. [Linux] 임시 디렉토리 '/tmp' 삭제 관련 설정, 'tmpwatch' 설정 파일 유닉스 계열의 운영체제에서는 임시 파일을 '/tmp' 디렉토리에 생성한다. 이 경로에 생성한 파일은 시스템이 재부팅될 때 혹은 주기적으로 커널이 지워주기 때문에 별도로 관리를 하지 않아도 된다. '/tmp' 디렉토리에 생성된 임시파일을 정리하는 규칙은 리눅스 구현체마다 조금씩 다르다. Ubuntu 데비안(Debian) 계열의 리눅스의 경우 시스템이 재부팅되는 경우에 '/tmp' 디렉토리가 지워진다. 이는 기본 값이고 /etc/default/rcS 파일에 임시 디렉토리 삭제와 관련된 룰이 저장된다. 대략 다음 내용이 저장되어 있다. # /etc/default/rcS # # Default settings for the scripts in /etc/rcS.d/ # # For information about t.. 2020. 11. 18. [Linux] Bash case 조건문 문법 리눅스에서 Base 스크립트를 작성할 때 사용할 수 있는 조건문 중 `case`문이 있다. 마치 Java에서 switch - case문처럼 Base에서도 조건문을 간단하게 사용할 수 있다. Bash - case문 Base에서 case문은 다음 문법을 따른다. case 기준문자열 in 문자열1) 명령 명령 ;; 문자열2) 명령 명령 ;; *) 명령 명령 ;; esac 기준문자열에 해당하는 값을 '문자열1', '문자열2'와 비교하여 분기한다. 각 분기의 마지막에는 ;;를 찍어서 분기의 종료를 알려줘야한다. *)는 Java의 switch-case 문에서의 default와 같다. '문자열1', '문자열2'와 같지 않은 모든 경우가 이 곳으로 분기한다. 분기의 조건은 OR 조건으로 여러개를 묶을 수도 있다. ca.. 2020. 11. 17. [Linux] 네트워크 도구 ping, ifconfig 설치 도커를 이용해 리눅스 컨테이너를 띄운 다음 그 안쪽에서 작업을 하는 경우가 있다. 이 때, 네트워크 유틸리티인 ping이나 ifconfig가 없는 경우가 있다. 이 경우 ping과 ifconfig 명령을 손수 설치해야 한다. CentOS sudo yum update sudo yum install iputils sudo yum install net-tools 우선 CentOS를 위한 패키지 관리 도구인 yum을 최신으로 업데이트 한다. ping 명령은 iputils 패키지에 포함되어 있고, ifconfig 명령은 net-tools 명령에 포함되어 있다. Ubuntu sudo apt-get update sudo apt-get install iputils-ping sudo apt-get install net-.. 2020. 11. 17. [Git] 커밋 작성자(author) 정보 수정하기 git commit을 이용해 코드에 대한 수정을 깃허브에 반영할 때 잘 못된 작성자 정보가 반영되는 경우가 있다. 깃허브 계정 여러개를 같이 사용하는 경우나 개발 서버 하나를 여러명이 사용할 때 원하지 않는 계정 정보로 커밋이 남는 경우가 있다. 원하는 계정이 아닌 잘못된 계정으로 커밋 로그가 남게되어 컨트리뷰션에 남지 않거나 잘 못된 사람에게 문의가 갈 경우가 생긴다. 이 경우 git의 rebase 명령을 이용해서 커밋 작성자 정보를 수정할 수 있다. 우선 커밋 계정을 수정할 커밋의 바로 직전 커밋의 해시값을 확인하자. 해시 값을 보자. 이 케이스에서는 bec8b77다. rebase 명령을 실행하자. git rebase -i -p bec8b77 bec8b77 커밋 이후 작성된 모든 커밋들에 대해서 re.. 2020. 11. 16. [Linux] Bash에서 사용자 입력 받기 Bash 스크립트를 작성하면서 사용자 입력을 받아야 할 경우가 있다. 대체로 중요한 정보를 삭제하거나 위험한 명령을 실행할 때 한번더 사용자에게 물어보는 식으로 사용한다. bash에서 사용자의 입력은 read 명령으로 받는다. echo "Input some value" read value echo "Your value : ${value}" read 다음에 오는 변수에 사용자의 입력을 담아준다. 한 번에 두 개 이상의 입력을 받을 수도 있다. echo "Input two values" read value1 value2 echo "Your value1 : ${value1}" echo "Your value2 : ${value2}" read 다음에 변수를 쓰지 않으면 $REPLY라는 예약 변수에 값을 담아준다... 2020. 11. 15. [Git] GitHub 브랜치 이름 변경하기 (Rename branch) 개발 브랜치를 따서 작업을 진행하다가 작업중인 브랜치의 이름을 변경하고 싶은 경우가 종종있다. 깃허브에 생성해놓은 브랜치의 이름은 git 명령을 이용해서 변경하거나 깃허브 웹 페이지에서 변경할 수 있다. 일단 깃허브에 생성되어 있는 oldname이라는 브랜치의 이름을 newname으로 바꿔보자. git 명령을 이용한 브랜치 이름 변경 우선 로컬 환경에서 브랜치의 이름을 변경해야한다. 다음 git 명령을 이용해서 브랜치 이름을 변경할 수 있다. git branch -m oldname newname mv 이전이름 새로운이름 을 이용해서 리눅스 파일의 이름을 변경하는 것처럼 -m 옵션으로 브랜치의 이름을 변경한다. 원격 저장소에 반영 로컬 저장소에서 브랜치의 이름을 변경했다. 하지만 깃허브에 저장되어 있는 브.. 2020. 11. 14. 이전 1 ··· 47 48 49 50 51 52 다음