본문 바로가기
반응형

CLI15

macOS 터미널에서 안드로이드 에뮬레이터 실행시키기 일반적인 안드로이드 앱 개발자들이야 Android Studio를 쓸 테고 거기서 에뮬레이터를 띄우면 되니 무의미한 주제의 글일 수도 있겠지만, 그게 아니라 Flutter 등 다른 기반으로 안드로이드를 지원하는 경우라면 굳이 무거운 Android Studio를 띄우지 않고 에뮬레이터를 띄우길 원할 수도 있다. 그래서 이번 글의 주제는 터미널에서 셸 커맨드로 안드로이드 에뮬레이터를 띄우는 방법에 관한 것이다. 준비 작업 만약 Android Studio를 막 설치한 상태라면 에뮬레이터를 설치하고 AVD(Android Virtual Device)를 생성해야 한다. 당연하게도 이미 설치되어 있고 AVD도 생성된 상태라면 건너뛰고 바로 다음 항목으로 넘어가도 된다. 우선 에뮬레이터를 설치해 보자. Android S.. 2024. 3. 13.
셸 프롬프트를 간결하게 바꿨다 얼마 전까지만 해도 셸 프롬프트를 약간 화려한 것으로 썼었다. 특수한 그래픽 폰트를 동원해 셸 프롬프트임에도 마치 GUI인양 다양한 모습을 연출하고 있었다. 색상도 다양하게 썼고, 우측에 히스토리 라인 수라거나 Git 관련된 정보들이라거나 등등 다양한 정보를 프롬프트 전체 영역에 낭비(?) 없이 표시하고 있었다. 그리고 최근 내 프롬프트는 이렇게 변했다 현재 디렉터리 정보와 간단한 루트인지 일반 사용자인지 구분 정도만 가능한 초 심플한 프롬프트다. 마치 터미널 커맨드 예제에서나 볼 법한 그런 프롬프트다. 왜 이렇게 바꾸었나? 최근 내 맥북이 점점 비명을 지르고 있다고 느껴졌다. 뭐만 해도 팬이 돌아간다. 그래서 크롬은 못 쓰고 있다. 사파리조차도 이상한 GPU 버그인지 뭔지로 아예 커널패닉을 일주일에 한.. 2024. 2. 10.
셸 스크립트에서 인자 입력 처리하기 셸 스크립트에서 인자(argument, 혹은 파라미터, parameter, 매개변수, 옵션 등) 입력을 받을 경우 스크립트 내에서는 어떻게 처리하는지 간단히 정리해 보는 글이다. 당연히 모든 경우를 다룰 수는 없고 개인적으로 자주 사용하는 몇 가지만 정리해 봤다. 사용하는 셸은 bash, zsh, sh다. 인자 입력 기본 셸 스크립트 내에서는 $N 같은 표기의 심벌로 인자 데이터에 접근할 수 있다. $0은 스크립트 자체의 이름, 1부터는 해당 순번의 인자가 문자열로 들어가게 된다. 그리고 각 인자는 공백문자로 구분된다. 예를 들어 아래와 같은 셸 스크립트 코드가 있다면 echo "0: $0" echo "1: $1" echo "2: $2"위 내용의 코드를 sample.sh 파일로 저장한 다음 아래와 같이 .. 2023. 12. 7.
셸에서 텍스트 치환하기 (feat. sed) 리눅스나 맥 등에서 개발이나 배포 과정을 자동화하기 위해 셸 스크립트를 이용하는 경우가 많다. 특히 보안 키 등 설정 파일에서 공개 저장소에 배포하기 꺼려지는 부분들은 비워놓고 실제 배포 등에서만 치환되게 하고자 하는 경우가 종종 있다. 이럴 때 쉽게 쓸 수 있는 방법은 오래(?) 되었지만 잘 작동하는 친구인 sed를 활용할 수 있다. 사용하는 패턴 방식도 Vim이나 Perl의 것과 비슷하기에 쉽게 쓸 수 있다. 예를 들어 특정 INPUTFILE의 내용을 읽어서 OLD라는 문자를 NEW로 치환해서 OUTPUTFILE로 저장하고 싶다면 아래와 같이 입력할 수 있다. sed "s/OLD/NEW/g" INPUTFILE > OUTPUTFILE sed의 매개변수로 전달된 패턴 표현식은 Vim이나 Perl에서 사용.. 2023. 12. 6.
macOS 터미널에서 QR코드 생성하기 개인적으론 QR코드를 그다지 선호하진 않지만 어른의 사정(?)으로 어쩔 수 없이 이를 제공해야 할 때가 있다. 그렇다면 QR코드를 만들어야 하는데, 사실 구글에서 검색해 보면 다양한 QR코드 생성 사이트가 이미 많이 만들어져 있어서 골라서 쓰면 된다. 하지만 남의 사이트에 뭔가 입력해 넣는 것이 부담스럽다면 직접 만드는 것도 방법이다. 물론 알고리즘을 구현하긴 그렇고 이미 누군가 만들어 놓은 도구를 쓰면 된다. 이 글에서는 qrencode라는 도구를 쓸 것이다. 맥 유저의 진부한(?) 친구 Homebrew의 도움을 받아 쉽게 설치할 수 있다. brew install qrencode기본 사용법은 아래와 같은 커맨드로 이를 실행시키면 특정 URL을 특정 파일 이름으로 QR코드 이미지를 생성한다. qrenco.. 2023. 11. 11.
중복 파일 검색기 rdfind rdfind는 중복 파일을 검색하기 위한 터미널에서 셸 커맨드로 사용할 수 있는 C++로 작성된 CLI 유틸리티다. 입력된 디렉터리 아래의 모든 파일을 대조하는데 파일 이름이 아닌 파일의 내용으로 중복 여부를 판단한다는 점이 특징이다. 이 유틸리티의 설치법 및 사용법을 간단히 알아보자. 설치 방법 (via HomeBrew) 설치 방법은 공식 GitHub 프로젝트 저장소의 문서에 따르면 각 OS에 따른 여러 방법이 있는데 macOS에서는 설명에는 없는 Homebrew로도 설치할 수 있다. brew install rdfind 개인적으로 Homebrew를 선호하는데, 사용하는 패키지 매니저에 따라 적절히 설치하면 된다. 애초에 오픈소스이기 때문에 원한다면 직접 빌드하는 것도 가능하다. 기본 사용법 기본 사용법.. 2023. 8. 24.
imagemagick으로 사진 연결하기 사진이나 이미지를 가로로 혹은 세로로 연결해서 붙이는 방법을 알아보자. 참고로 Linux나 macOS 뿐만 아니라 imagemagick을 쓸 수 있는 모든 OS에서 쓸 수 있다. 우선 imagemagick이 설치되어 있다 가정한다. 없으면 설치하면 된다. 내 경우 macOS에서 Homebrew를 쓰고 있어서 아래와 같은 방법으로 설치했었다. brew install imagemagick 다른 패키지 매니저를 쓴다면 해당 매니저를 이용해 설치하자. imagemagick으로 이미지 파일 연결하기 imagemagick에 들어있는 convert 유틸리티는 다양한 옵션을 제공하는데 여기서 append 옵션을 사용하면 여러 이미지를 하나의 이미지로 연결해서 합칠 수 있다. 이 append 옵션은 특이하게도 prefi.. 2023. 5. 20.
mdfind로 터미널에서 파일 검색하기 mdfind는 macOS에서 파일을 검색할 때 사용하는 커맨드라인 유틸리티다. 이 명령은 마치 리눅스의 locate 명령과 비슷하게 파일시스템의 모든 파일을 대상으로 검색할 수 있다. 다만 Spotlight 유틸리티이기 때문에 인덱싱 제한 설정을 따라갈 것으로 추측된다. 어쨌든 이 mdfind의 사용법 몇 가지를 살펴보자. 사실 macOS에서도 locate 명령은 지원된다. 단지 별도의 활성화 과정을 거치지 않으면 사용할 수 없을 뿐이다. mdfind로 특정 이름이 들어간 파일 검색하기 아래 명령은 파일 절대 경로에 foo라는 이름이 들어간 모든 파일을 검색한다. mdfind foo mdfind로 특정 이름의 파일을 검색하기 아래 명령은 파일 이름이 foo.bar인 모든 파일을 검색한다. mdfind -.. 2022. 3. 1.
mdutil로 터미널에서 Spotlight 제어하기 mdutil은 macOS의 검색 엔진인 Spotlight를 제어하기 위한 커맨드라인 도구다. 이 글은 mdutil 사용법 중 개인적으로 유용하다고 생각하는 두 가지 기능을 정리한다. 상세한 것은 man 페이지를 참고하자. Spotlight 인덱싱 재시작하기 특정 사유로 Spotlight를 중지 시키려면 아래 커맨드를 사용한다. sudo mdutil -i -a off 이후 Spotlight를 다시 시작하려면 아래 커맨드를 사용한다. sudo mdutil -i -a on 잠깐 Spotlight를 끄고 중간에 뭔가 하려는 스크립트를 작성할 때 유용하다. 특정 디렉터리를 인덱싱에서 제외하기 인덱싱 예외는 설정(Preferences)에서 쉽게 할 수 있지만 간혹 터미널에서 할 필요도 있을 때도 있다. 예를 들자면.. 2022. 2. 20.
디렉터리 및 파일 크기 조회 도구 du du는 시스템에서 각 디렉터리와 파일의 용량이 얼마인지 알려주는 *NIX용 유틸리티입니다. 이 글은 du의 간단한 사용법을 정리합니다. du를 아래처럼 별 다른 옵션 그냥 실행시키면 현재 디렉터리 안에 있는 모든 파일과 디렉터리를 재귀적으로 순회하며 각각의 크기를 콘솔에 목록으로 표시합니다. du 다만 표시되는 사이즈는 일반적으로 쓰는 단위가 아닌 블록(block) 단위이기 때문에 직관적이지 않습니다. du는 좀 더 직관적인 사이즈를 볼 수 있도록 별도의 옵션을 제공합니다. -k: Kilo Bytes 단위로 표시(1 Kilo Bytes = 1024 Bytes) -m: Mega Bytes 단위로 표시(1 Mega Bytes = 1024 Kilo Bytes) -g: Giga Bytes 단위로 표시(1 Gig.. 2020. 10. 27.
macOS에서 SVG 파일을 PNG로 변경하기 요즘은 macOS나 웬만한 브라우저에서는 SVG 벡터 이미지 포맷을 지원하기 때문에 그냥 써도 무방한 경우가 많겠지만, 그래도 때에 따라서 SVG 벡터 이미지 포맷 파일 대신 PNG 등의 픽셀 이미지 포맷 파일이 필요한 경우가 있을 수 있습니다. 이 글은 간단한 터미널 커맨드를 이용해 macOS에서 SVG 파일을 PNG 포맷으로 변경하는 방법을 간략히 정리합니다. 여러 방법이 있을 순 있겠지만 개인적으론 librsvg에 포함된 도구를 이용하는 것이 가장 간단하였기에 즐겨 사용합니다. 다만 기본적으로 설치되어 있지는 않기 때문에 Homebrew 등을 이용해 설치해야 합니다. brew install librsvg 이제 설치가 되었으면 rsvg-convert 유틸리티를 이용해 포맷을 변경할 수 있습니다. 다만.. 2020. 10. 19.
iCloud Drive를 드롭박스처럼 사용하기 드롭박스(Dropbox)는 개인적으로 정말 오래 써 온 클라우드 동기화 스토리지 서비스였습니다. 하지만 얼마 전부터 무료 계정의 동기화 제한 기기 대수가 3대로 제한되기 시작했습니다. 저는 이미 5대의 장비를 사용하고 있었고 여기에 추가로 맥북프로를 하나 더 장만하게 되었는데 덕분에 드롭박스를 더 이상 쓸 수 없는 몸(?)이 되어 버리더군요. 그래서 여러 대안을 찾아보다 일단 아이클라우드 드라이브(iCloud Drive)를 공유 스토리지로 써보기로 했습니다. 당연하게도 파인더를 통한 사용은 어렵지 않습니다. 이미 iCloud라는 항목에 좌측 리스트에 나타나고 있기 때문이지요. 특이하게도 실제로는 존재하지 않는 다양한 링크들이 나타나고 있다는 점이 나타나고 있긴 합니다...🤔 그런데 불행히도 아이클라우드 .. 2020. 2. 5.
파이썬 코드 문법 검사기 flake8 flake8은 파이썬(Python) 코드를 점검해주는 도구이자 파이썬 패키지입니다. 이 도구는 일부 오류가 있을 법한 코드나 불필요한 모듈 임포트(import), 이상한 띄어쓰기나 잘못된 들여쓰기 등등 여러 문제점을 알려줍니다. 약간 딱딱하게 표현해서 PEP8 코딩 컨벤션에 맞지 않는 것들을 알려줍니다. 이런 기능을 하는 도구를 린트(Lint)라고 표현하기도 하지요. 비슷한 도구로 pyflake도 있습니다. 설치법 파이썬 패키지이기 때문에 pip로 그냥 설치하면 됩니다. pip install flake8 시스템에 따라 sudo를 줘서 루트 권한으로만 설치가 가능할 수도 있습니다. 사용법 flake8은 기본적으로 셸 CLI 유틸리티이기 때문에 커맨드 라인에서 간단히 실행시킬 수 있습니다. 그리고 실행 시 .. 2020. 1. 29.
어쩌다 가끔 쓸 일이 생기는 인코딩 변환기 iconv 윈도가 아닌 OS를 쓰다 보면 가끔 한글이 깨지는 문제를 겪을 때가 있습니다. 예를 들어 맥에서 작성한 파일을 윈도에서 열어보면 깨져서 보인다거나 윈도에서 작성한 텍스트를 맥에서 열어보면 깨진다거나 등등 말이지요. 물론 이는 전적으로 아직도 구식 한글셋을 사용하는 윈도의 잘못(?)으로 봐야겠지만 어쨌든 한국에서는 윈도 사용자가 압도적으로 많으니 이에 맞춰야겠지요. 이 경우 사용할 수 있는 리눅스나 macOS 빌트인 도구로 iconv를 사용할 수 있습니다. 별도의 GUI는 없는 CLI 유틸리티입니다. Convert UTF-8 to euc-kr(cp949) UTF-8으로 작성된 특정 텍스트 파일을 euc-kr(혹은 CP949 등 윈도에서 사용하는 한글 인코딩)로 바꾸려면 아래와 같은 식으로 이용할 수 있습니.. 2020. 1. 21.
맥용 잠자기 방지 도구 caffeinate 가끔 맥이 잠자기에 빠지지 않게 해야 할 경우가 있습니다. 예를 들어 개발 서버를 띄워 놓았다거나 등등 말이죠. 이럴 때는 다양한 전용 앱을 활용할 수도 있습니다만, 굳이 별도의 앱을 설치할 필요 없이 터미널에서 간단한 셸 커맨드 만으로 잠자기에 빠지지 않게 할 수도 있습니다. 바로 caffeinate 라는 macOS 전용 CLI 도구입니다. 사용법 잠자기 방지 터미널에서 caffeinate를 그냥 실행하면 맥이 잠자기에 빠지지 않게 됩니다. caffeinate 이 유틸리티는 실행된 상태에서 아무런 변화 없이 가만히 돌아가기만 합니다. 따라서 종료시킬 때는 ^C (Ctrl+C) 키를 눌러서 빠져나오면 됩니다. 모니터가 꺼지지 않게 막기 잠자기와 디스플레이 모니터가 꺼지는 것은 직접적인 관계가 없기 때문에.. 2020. 1. 6.
728x90
반응형