리눅스의 시간대를 설정하기 위해서는, etc의 localtime을 건드려야 합니다. 이 파일에 대한 대략적인 정보를 얻어오기 위해서, ls 명령어랑 grep 명령어를 pipe로 연결해서 적당히 쓰면 됩니다. 패턴을 잘 찾아내는 것은 매우 자주 쓰이니, 익혀두시면 도움이 됩니다.

 

 


 먼저 date 명령어를 입력해 보겠습니다.

 

 

 그러면, PDT 2020이 나오는데요. 이는 LA 시간으로 불리는 시간대입니다.

 

 

 etc 디렉토리로 이동한 다음에, localtime에 대한 정보만 긁어오도록 하겠습니다. ls -ail의 결과값을 input으로 넣은 다음에, grep localtime 명령을 수행하면, localtime 키워드가 있는 행만 뽑아옵니다. 이것은 /usr/share/zoneinfo/America/Los_Angeles에 연결이 되어 있습니다.

 

 

 이제 /usr/share/zoneinfo로 들어가 보겠습니다.

 

 

 여기서, Seoul이라고 써져 있는 것만 결과값에 나타나게 하고 싶습니다. 그러면, ls -ail 명령어를 수행한 결과 값을 grep Seoul 명령어의 input으로 넣어주면 될 거에요.

 

 

 Seoul이 가리키고 있는 파일은 /usr/share/zoneinfo/Asia에서 상위 디렉토리에 있으니, 거기로 이동해 보겠습니다. cd ..를 한 다음에, ROK에 대한 정보만을 가지고 오면, 맨 앞이 디렉토리도 아니고, 링크도 아님을 알 수 있습니다. 이 파일에 있는 내용을 보겠습니다.

 

 

 그러면 뭔가 알 수 없는 문자들이 나오고, 맨 마지막 줄에 KST-9가 있음을 알 수 있습니다. 서울의 표준시간대는 KST-9입니다.

 


/etc/localtime에서부터 어떻게 링크가 이어졌는지 보도록 하겠습니다.

 

 

 /etc/localtime은 현재, /usr/share/zoneinfo/America/Los_Angeles를 가리키고 있습니다. 이 파일의 내용을 봤더니, time zone data가 나옵니다. zdump로 timezone에 맞는 현재 시간을 출력해 보겠습니다. 그러면, PDT 시간이 나옵니다. 그러면 이 연결 정보를 Seoul로 바꾸면 된다는 건데요.

 

 

 Asia 디렉토리에서 적당한 것을 찾아서, 연결을 하겠습니다.

 

 

 symbolic 링크를 생성해야 하니까 s 옵션을 줘야 합니다. 문제는 이미 /etc/localtime은 링크가 어디론가 연결이 되어 있다는 겁니다. 이것을 강제로 지우고, 다시 재생성 하려면 -fs 옵션을 주어야 합니다. -f 옵션에 remove 키워드가 들어가 있으니, 무언가를 제거하는구나. 정도의 눈치는 챌 수 있습니다.

 

 

 그냥 -s 옵션만 주고 ln을 실행시켰습니다. 그랬더니, 이미 파일이 존재한다고 나와 있어요. 따라서, f 옵션을 주어서, 기존에 dest가 있다면, 제거를 하고 생성을 해야 합니다. sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime을 입력하면, 시간대가 Seoul로 변경이 됩니다.

 

 

 date를 입력하면, KST로 바뀌었다는 것을 알 수 있습니다. 그런데, /etc/timezone은 바뀌지 않았음을 알 수 있는데요.

 

 

 이 미스터리한 것에 대한 것은 다음에 계속 하도록 하겠습니다.