안녕하세요. 이번 시간에는 proc/{pid} 안에 있는 cwd에 대해서 간단하게 알아보겠습니다. 요약하면 프로세스의 현재 working directory 정도가 되겠습니다. 먼저 pstree -p로 현재 실행되고 있는 프로세스들의 tree를 확인해 봅시다. 이 중에, bash가 눈에 보이네요. pid가 12라는 의미인데요. /proc/12로 가 보면 현재 실행되고 있는 bash에 대해 여러 정보들이 저장되어 있습니다. 여러가지 파일들이 보이는데요. 이 중에 cwd를 보겠습니다. ls -ail | grep cwd를 입력하면, 프로세스의 현재 working directory를 볼 수 있어요. 12번 프로세스는 /proc/12가 현재 working directory인가 보군요. 이제 간단한 c++ 프로그램을..
OS 검색 결과
리눅스에서 일정 주기별로 반복된 일을 하는 방법은 무엇일까요? 예를 들어, 하루마다 투데이를 초기화 한다던지. 이럴 때 쓸 수 있는 것이 crontab입니다. 대략적인 옵션들을 보면 크게 어려운 것은 없슶니다. -l은 current crontab을 출력합니다. -e는 적용되어 있는 crontab을 editor를 이용해서 편집할 수 있게 해 줍니다. cron.py입니다. output.log에 계속 서버의 현재 날짜와 시간을 표시해 줍니다. crontab -e를 입력하시면 크론탭을 편집할 수 있는 에디터가 하나 나오는데요. 요래 입력하면, 매 분마다 python3 cron.py를 실행시키겠다는 의미입니다. 공백으로 구분된 이 5개의 필드들은 이 사이트를 보면 손쉽게 작성할 수 있으니 참고하면 좋겠습니다. 매..
이번 시간에는 리눅스 which 명령어를 알아보겠습니다. which는 command의 위치를 알려줍니다. 예를 들어 java라던지, ls와 같은 것들의 명령어 위치를 알려줍니다. 제 서버에는 java가 설치되어 있지 않습니다. 그렇기 때문에 처음에 which java를 입력하면 아무 것도 나오지 않습니다. java를 설치하고 나서, 다시 which java를 입력해 보겠습니다. 그러면, /usr/bin/java에 설치되었다고 나옵니다. ls로 상세 정보를 보면, 링크 파일임을 알 수 있습니다. 이들을 통해서 따라 들어가 봅시다. 먼저, java가 /etc/alternatives/java의 링크임을 알 수 있어요. /etc/alternatives로 들어가 봅시다. 그러면 java가 있을 텐데요. java가..
쉘 프로그래밍을 하다가 수 연산을 해야 될 때가 있었습니다. 이럴 때 어떻게 해야 할까요? bash 메뉴얼 문서를 보면, $(( expression )), (( compound 방법을 소개하고 있습니다. 이에 따르면 expression은 $a+$b가 됩니다. a는 3이므로, $a는 3으로 대치됩니다. 그리고, $b는 4로 대치됩니다. 즉, 우리는 3 + 4가 (( 안에 있기 때문에, 3 + 4를 산술 연산으로 평가하게 됩니다.3 + 4는 유효한 산술 표현식이므로 결과적으로 7이 리턴됩니다. 결과를 출력해 보니, 정말 그러하네요. 그러면 이건 어떨까요? 3+4라는 expression이 있습니다. ((로 감싸져 있으므로, 3+4가 산술 연산식으로 평가됩니다. 따라서, c는 3+4의 산술 연산 결과값인 7이 ..
입력을 받아야 하는 문제는 꽤 많이 보입니다. shell에서는 read를 쓸 수 있는데요. 어떻게 해야 하는지 간단하게 알아봅시다. 먼저, read a는 1줄을 읽어서, 변수 a에 저장합니다. echo $a는, a에 저장된 값을 출력하는 것인데요. 이 쉘 프로그램은, 한 줄을 입력받아서 a에 저장한 뒤에, a의 값을 출력하는 것입니다. 실행해 보겠습니다. 저는 2 4 6 8을 입력했습니다. 입력한 값이 2 4 6 8이였으므로, 출력은 2 4 6 8이 됩니다. 그런데, 공백을 기준으로 받아야 할 경우도 있습니다. 이 때에는 문서에 나온 IFS를 이용하면 됩니다. 한 마디로 spliter의 역할을 한다고 보시면 됩니다. result를 split 하는데, IFS를 " "로 주면, 공백 문자를 기준으로 spli..
최근댓글