우분투에서 /etc/localtime에는, 서버의 타임존에 대한 정보가 들어 있습니다. 보니까, Asia/Seoul로 설정되어 있는데요. 이는, 서버의 타임존이 Seoul이라는 의미입니다. 그러면, 이러한 정보들은 어디에 어떻게 저장되는 것일까요? /usr/share/zoneinfo 폴더로 들어가 보겠습니다. 먼저, zoneinfo 폴더 내에 있는 Asia/Seoul로 들어가 보겠습니다. 그러면 뭔가 알 수 없는 정보들이 나오고, KST-9가 나옵니다. 이는 한국 표준시를 의미합니다. 도쿄에 대한 정보를 보니, 이번에는 JST-9라고 되어 있습니다. 이것만 봐서는 어느 표준시를 따르는지밖에 모르겠네요. zdump 명령어는 timezone 파일에 대해서 상세 정보를 출력해 주는 명령어입니다. 사실, 사람이..
Linux 검색 결과
간혹 가다가, command 로그를 기록하고 싶지 않을 때가 있습니다. 예를 들자면, secret 환경변수를 다른 어딘가에 넣고 싶을 때입니다. zsh에서는 이럴 때, fc 명령어를 쓸 수 있습니다. 문서를 보기 전에 간단한 동작 먼저 이해해 보겠습니다. fc -p 1.log를 입력해 봅시다. 인자로 1.log가 넘어갔는데요. 그 다음에 echo $HISTFILE을 입력해 보면 1.log가 나타남을 알 수 있어요. 이제, fc -P 명령을 입력한 다음에 1.log를 보겠습니다. 그러면, 1.log에 echo $HISTFILE과 fc -P가 저장되었음을 알 수 있습니다. 그러면 -p 옵션 다음에 아무것도 넣지 않은 경우 어떻게 작동할까요? fc -p 명령어를 수행한 다음에 echo $HISTFILE을 입력..
프로젝트를 분석하거나, 디버깅을 할 때 grep을 많이 이용하게 됩니다. 특정 키워드로 찾아 들어가면서 분석을 많이 하는 편인데요. 예를 들자면, a라는 패턴을 찾기 위해서 프로젝트 전체를 재귀적으로 탐색한 다음에 해당 코드를 보는 편입니다. 그런데, 저는 해당 패턴이 걸리는 줄 주변의 이전 라인, 다음 라인도 같이 출력을 하고 싶었습니다. 그러면 1개의 줄만 볼 때 보다 맥락을 조금 더 잘 파악할 수 있었을 것이기 때문입니다. 이런 옵션이 없었을 리가 없었습니다. 저만 몰랐을 뿐. grep 명령어에는 이런 처리를 위해, 몇 가지 옵션이 있는데요. -A, -B, -C 옵션에 대해 알아보겠습니다. 먼저 실험에 사용할 파일 1.txt에는 위와 같은 내용이 저장되어 있습니다. a부터 g까지 순서대로 적혀 있고..
저번에 update-alternatives 명령어를 쓰면서, 이런 의문이 들었습니다. javac의 버전? 비슷한 것을 선택할 수 있는 것은 어디서 정보를 얻어올까? 보통 파일을 열고 닫는 연산을 하게 되면, open 이나 close 같은 시스템 콜 함수는 호출하게 되어 있으니, strace로 간단하게 보도록 하겠습니다. strace update-alternatives --config javac를 쳐 보겠습니다. 그러면 execve 같은 시스템 콜 함수들이 잔뜩 보일 텐데요. 제가 관심있는 것은 open 계열의 함수들입니다. 쭉 보니까, /var/lib/dpkg/alternatives/javac 파일을 열어버리는 게 보입니다. 제가 데비안 계열의 우분투를 쓰고 있긴 하니, 이해는 가네요. /var/lib/..
안녕하세요. 오랫만입니다. 제 우분투 서버에 설치되어 있는 java랑 javac 버전은 8인데요. 이를 11로 어떻게 바꾸었는지 보도록 하겠습니다. 먼저, Main.java입니다. Map.of 메서드가 보이는데요. 문서를 보면 9 버전부터 적용되는 메서드라고 되어 있어요. 이 메서드가 리턴하는 것은 immutable map이라고 하는데요. Main.java를 컴파일 해 보면, of 라는 것을 찾을 수 없다는 에러가 나옵니다. 왜 그럴까요? java랑 javac의 버전이 1.8이였기 때문입니다. 저 메서드는 1.9에 추가되었으니 java11로 업데이트를 해 보겠습니다. 저는 우분투를 쓰고 있으니, apt search를 이용해서 openjdk가 들어가는 패키지를 모두 찾도록 하겠습니다. 보니까 제가 찾는 것..
최근댓글