안녕하세요. 이번 시간에는 리눅스 echo 명령어에 대해 간단하게 알아봅시다. echo는 보통 텍스트를 출력할 때 많이 써먹습니다. man 페이지에서 확인해 봐도, text를 출력한다. 정도만 설명되어 있어요. 예를 들어 보겠습니다. echo gh를 입력해 보면 gh가 출력됩니다. 출력할 문자열이 gh이기 때문입니다. 다음에 echo gh is my best friend를 치면 어떻게 될까요? gh is my best friend가 그대로 나옵니다. 여기까지는 별로 어렵지 않아요. 단지, 문자열을 standard output으로 그대로 출력해 버리기 때문입니다. 환경 변수를 출력하는 데에도 유용하게 쓸 수 있습니다. echo $JAVA_HOME은 뭘 의미하나요? 변수 JAVA_HOME을 출력합니다. 자바..
리눅스 검색 결과
안녕하세요. 코딩개입니다. 이번 시간에는 tee 명령어에 대해 간단하게 알아보겠습니다. 명령 설명을 보겠습니다. standard input으로부터 읽고, 파일과 standard output으로 떨군다. 그림으로 도식화 시키면 아래와 같습니다. 아마 많이들 보셨을 겁니다. 마치 이것이 T처럼 생겨먹었습니다. 그래서 tee라고 부르나 봅니다. 파이프랑 같이 많이 쓰일 수 있습니다. 예를 하나 들어보겠습니다. 저는 12345를 1.txt, 2.txt, 3.txt에 저장하려고 합니다. 이럴 때, echo 12345를 한 결과를 tee의 입력으로 받습니다. 그리고 tee 뒤에 1.txt, 2.txt, 3.txt를 넣었는데요. 이는 output을 떨굴 파일이 1.txt, 2.txt, 3.txt라는 의미입니다. 확인..
안녕하세요. 이번 시간에는 /dev/null 2>&1의 의미를 알아보겠습니다. 이 글을 읽기 전에 파일 디스크립터와 dup2 함수 등에 대한 개념을 잡고 오시면 조금 더 편할 듯 싶습니다. [관련글] 파일 디스크립터와 관련된 dup2 함수에 대해 알아봅시다. 먼저 0, 1, 2는 표준 입력인 stdin, 표준 출력인 stdout, 에러 stderr를 뜻하는 것은 알고 계실 겁니다. 다 터미널과 연관이 되어 있습니다. 따로 파일 디스크립터가 다른 것을 가리키게 하지 않는 (dup2나 dup 등을 이용해서) 이상은요. 파일 디스크립터 (fd)는 프로세스마다 독립적으로 가지고 있는 자원 중 하나입니다. 먼저, cat 2.txt는 2.txt의 내용을 출력해 줍니다. 만약에 없으면 No such file or d..
리눅스에서는 top을 제공합니다. 어떤 프로세스가 메모리를 얼마나 먹는지, cpu를 얼마나 먹는지 등을 모니터링 하기 위해서 쓰이곤 합니다. UI를 보면, 단순히 흑백으로만 되어 있어요. CPU가 50.2%이고, 272개의 Task가 있고, 3개가 running 중이고 269개가 sleeping 상태인 것을 볼 수 있어요. 메모리는 1400 메가가 free인 상태를 볼 수 있는데요. 이게 어느 정도인지 쉽게 감이 오지는 않습니다. 밑에를 보시면, PID와 USER, COMMAND 등이 있고, cpu%와 mem%가 있어요. 각각 cpu를 얼마나 쓰는지와 메모리를 얼마나 쓰는지를 나타냅니다. git이 상당히 많은 cpu를 쓰고 있는 것만 볼 수 있어요. 이 정도만 얻을 수 있다고 보면 될까요? 그런데, 조금..
이번 시간에는 리눅스에서 sh 명령어와 source 명령어의 차이를 알아보겠습니다. 먼저 1.sh에 다음과 같이 입력해 보겠습니다. echo $$가 보이는데요. 이것은 쉘의 current process id를 의미합니다. 이는, subshell로 실행되는지, 현재 쉘에서 실행되는지 판단하기 위해서입니다. chmod로 1.sh의 실행 권한을 바꿉니다. 그리고 ls -ail을 입력해 보시면, cho, cho 그룹에 속한 유저, 모든 유저에게 x 권한이 주어졌음을 알 수 있는데요. 이는 실행 권한이 주어졌다는 것을 의미합니다. 그러면, 1.sh를 실행할 수 있습니다. 이제 sub shell을 띄워서 실행시키는지, 그렇지 않은지는 어떻게 검증하면 될까요? 현재 쉘의 pid를 알기 위해서는 echo $$을 입력하..
최근댓글