목록Linux Shell (5)
youngfromnowhere
https://youngnowhere.tistory.com/54 [Python] pyenv로 가상환경 구축하기. 1. Python의 여러 가상환경 관리 툴 지금 듣고 있는 강의에서 가상환경 구축을 위해 pyenv라는 툴을 이용하라고 한다. 근데 이게 좀 복잡해 보인다. 가상환경만 만드는게 아니라 python 버전 관리 기능 youngnowhere.tistory.com 해당 포스팅에서 pyenv를 설치할 때, 메세지에서 안내하는 바에 따라 .profile, .bashrc 등의 설정파일을 수정했다. 이제 각 파일의 역할이 무엇이었고 거기에 추가한 스크립트는 무슨 의미였는지 알아보자. 로그인 shell 프로세스 이해하기 (출처 리처드 블룸, 트랜지스터팩토리 옮김, 3rd, 176p.) 리눅스 시스템에 로그인했..
java 컴파일 결과 생성되는 class 파일들을 한번에 모두 지우고 싶을 때, $ rm ./*.class rm 명령으로는 현재 디렉토리에 있는 파일들만 지워진다. 하위 디렉토리를 청소하고 싶을때는 find 명령을 쓰면 된다고 한다. $ find . -name *.class -type f -delte 그런데, 첫번째 적용할 때는 현재 디렉토리의 파일만 삭제되고 두번째 적용시에야 하위 디렉토리의 *.class 파일이 모두 삭제되었다. 왜 그럴까? 일단 테스트를 위해 위와 같은 directory structure를 만들었다. Test/에서 현재 directory를 대상으로 find 명령을 실행하니, 하위 디렉토리를 탐색하지 않는 것을 볼 수 있다. 그렇기 때문에 -delete 옵션까지 붙였을 때도 현재 di..
첫 미니 프로젝트를 수행하는 과정에서, 팀원들은 intelliJ IDEA를 사용하고 난 터미널에서 작업하는 바람에 자꾸 무언가가 팀원들 환경에선 정상작동하는데 내 환경에선 작동하지 않는다던가 하는 문제가 생기고 난 그 문제에 묶여서 제대로 프로젝트에 기여하지 못하는 일이 생겼다. 팀원들이 "순수하게 궁금하다"면서 왜 터미널에서 작업하기를 고집하느냐고 물어왔는데, 딱히 이유가 생각나지 않아서 "그냥 지금까지 IDE를 깔 필요성을 못느꼈다"고 얼버무렸다.. 그러면서 날 되돌아봤는데, 난 과연 그냥 터미널과 Vim을 쓰고 싶은 힙스터인가..? 이런 질문을 스스로에게 하다가 내가 이런 방식을 고수하게된 어떤 이유가 떠올랐다. 내가 처음 배운 언어는 Python인데, Python에 입문하면 당연히 입문자들은 대부..
WSL 상에서 작성한 소스코드를 다른 곳으로 복사 붙여넣기 하거나, HTML 파일의 경우 브라우저에서 열어봐야 한다거나 WSL 내의 파일을 윈도우로 옮겨야 한다거나 등등 윈도우 환경으로 다시 옮겨와야 할 일이 종종 생긴다. WSL의 경우 /mnt/라는 디렉토리를 통해 윈도우의 파일시스템에 접근할 수 있다. 그러나 윈도우 시스템에서 WSL 내부의 파일에 접근하기는 뭔가 복잡하고 난해한 방법을 통해야 한다. 이 문제를 해결하기 위해 나는 WSL 유저 디렉토리 안에 윈도우 상의 폴더로 향하는 심볼릭 링크를 만들고 모든 작업을 그 디렉토리(심볼릭 링크) 안에서 했다. 이렇게 하면 나는 WSL을 통해 윈도우 파일을 조작하는 것이 되므로 내가 그 안에 만든 모든 파일에 대해 윈도우에서도 쉽게 접근할 수 있다. 이렇..
bash shell script 공부중 file descriptor에 대해 생긴 의문과 그 해결 스크립트 파일(파일명 script)에 다음과 같이 적는다 #!/bin/bash echo "Hello World" >&2 그 후 커맨드라인에서 해당 파일을 다음과 같이 실행시킨다 $ ./script 2> outputfile 이러면 "Hello World"라는 문자열은 모니터에 출력되지 않고 file descriptor 2를 통하여 outputfile로 전달된다. 이해하는데 전혀 어렵지 않다. 마치 file descriptor 2라는 오브젝트가 있고 문자열이 그곳을 거쳐 커맨드에서 지정한 파일로 전달되는 것처럼 이해하면 된다. 그런데 exec 명령을 이용하여 리다이렉트를 왔다리갔다리 시킬때 혼란이 온다. 파일 ..