반응형 전체 글41 [리눅스 기초 #17] 터미널은 하나인데 몸이 두 개였으면? bg, fg로 작업 제어 마스터하기 리눅스 기초 시리즈의 17번째 시간입니다! 지난 시간에는 폭주하는 프로세스를 진압하는 top과 kill을 배웠죠. 그런데 가끔은 프로세스를 '죽이고' 싶지는 않지만, 지금 당장 터미널을 써야 해서 '비키게' 하고 싶을 때가 있습니다.예를 들어, 10분 넘게 걸리는 AI 모델 학습을 돌려놨거나 무거운 Flutter 빌드를 시작했는데, "아차, 소스 코드 한 줄만 더 확인해 볼걸!" 하는 생각이 들 때 말이죠. 오늘은 터미널 하나를 마치 두 개처럼 사용하는 비결, **작업 제어(Job Control)**에 대한 저의 생생한 경험담을 공유합니다.1. 나의 경험담: "멈출 수 없는 빌드, 그리고 찾아온 정적"최근에 제 블로그(sunyjini.com)에 올릴 AI 관련 예제 코드를 리눅스 서버에서 테스트하고 있었.. 2026. 1. 30. [리눅스 기초 #16] "응답 없는 너를 보내며" : top과 kill로 폭주하는 프로세스 진압하기 리눅스 기초 시리즈의 새로운 장을 여는 16번째 시간입니다! 그동안 시스템의 신분증을 확인하고 파일의 위치를 찾는 법을 배웠다면, 이제는 살아 움직이는 시스템의 심박수를 체크하고 관리할 때가 되었습니다.개발을 하다 보면 내가 짠 코드가 무한 루프에 빠지거나, Flutter 빌드가 멈춰버려 시스템 전체가 먹통이 되는 아찔한 순간을 마주하게 됩니다. 윈도우라면 '작업 관리자'를 켜서 강제 종료를 하겠지만, 터미널에서는 어떻게 해야 할까요? 오늘은 시스템의 폭주를 막는 두 가지 핵심 무기, **top**과 **kill**에 대한 저의 생생한 '진압' 기록을 공유합니다.1. 나의 경험담: "멈춰버린 플러터 빌드와 뜨거워진 내 노트북"최근 WSL2 환경에서 복잡한 애니메이션이 포함된 Flutter 앱을 빌드하던 .. 2026. 1. 30. [리눅스 기초 #15] "너는 누구냐?" : uname과 hostname으로 시스템 정체성 확인하기 리눅스 기초 시리즈의 15번째 주제에 오신 것을 환영합니다! 그동안 우리는 파일의 미로를 탐험하고(find), 권한의 문을 열며(chmod), 도커(Docker)라는 거대한 컨테이너를 다루는 법까지 숨 가쁘게 달려왔습니다.하지만 정작 우리가 발을 딛고 서 있는 이 시스템이 어떤 운영체제인지, 커널 버전은 무엇인지, 그리고 이 컴퓨터의 이름은 무엇인지 정확히 알고 계신가요? 오늘은 시스템의 프로필을 확인하는 가장 기본적이면서도 중요한 두 명령어, **uname**과 **hostname**에 대한 저의 생생한 경험담을 공유합니다.1. 나의 경험담: "커널 버전이 왜 중요해?"라고 묻는 당신에게최근 WSL2 환경에 최신 AI 라이브러리를 설치하려던 때의 일입니다. 모든 가이드라인을 완벽하게 따랐음에도 불구하고.. 2026. 1. 29. [리눅스 기초 #14] "도대체 넌 어디에 있니?" : which와 whereis로 실행 파일 추적하기 어느덧 리눅스 기초 시리즈가 14번째 시간에 접어들었습니다. 지난 시간에는 터미널의 블랙박스인 history를 통해 과거의 나를 만났다면, 오늘은 현재 내 명령어가 어디서 실행되고 있는지를 찾아내는 탐정 놀이를 해보려 합니다.리눅스 환경에서 Flutter나 Python, 혹은 Java 같은 개발 도구를 다루다 보면 "분명 설치했는데 왜 실행이 안 되지?"라거나 "내가 지금 쓰고 있는 게 정식 버전이 맞나?" 하는 의구심이 들 때가 있습니다. 오늘은 실행 파일의 행방을 쫓는 두 가지 필살기, **which**와 whereis 활용기를 공유합니다.1. 나의 경험담: "중복 설치의 늪에서 길을 잃다"최근 WSL2 우분투 환경에서 Flutter 개발 환경을 다시 세팅할 때의 일입니다. 예전에 설치해둔 버전과 새.. 2026. 1. 29. [리눅스 기초 #13] "어제 쓴 그 명령어 뭐였지?" : history로 기억력을 해킹하는 법 개발자로 살다 보면 어제 분명히 성공했던 복잡한 명령어가 오늘 아침엔 도저히 떠오르지 않아 당황하는 순간이 있습니다. 특히 여러 개의 플래그(Flag)가 붙은 Docker 실행 명령어라든지, 한참 구글링해서 찾아낸 Flutter 빌드 최적화 옵션 같은 것들이 그렇죠."내 머릿속엔 지우개가 있나?"라고 자책할 필요 없습니다. 리눅스 터미널은 우리가 입력한 모든 명령을 묵묵히 기록하고 있으니까요. 오늘은 터미널의 블랙박스이자 개발자의 훌륭한 복습 도구인 history 명령어 활용기를 공유합니다.1. 나의 경험담: "30분의 구글링을 1초 만에 복구하다"어제 저녁, 특정 라이브러리 충돌을 해결하기 위해 약 30분간 구글링을 한 끝에 아주 긴 한 줄의 명령어를 찾아내어 해결에 성공했습니다. 그런데 오늘 아침, .. 2026. 1. 29. [리눅스 기초 #12] 귀차니즘이 만든 혁명: alias로 나만의 비밀 명령어 만들기 리눅스를 사용하다 보면 필연적으로 '반복의 늪'에 빠지게 됩니다. 매번 sudo apt update && sudo apt upgrade를 치거나, 복잡한 옵션이 붙은 tar -cvzf ... 명령어를 입력하다 보면 "이걸 좀 더 짧게 줄일 수는 없을까?"라는 강렬한 귀차니즘이 밀려오죠.사실 '귀차니즘'은 개발자의 가장 큰 덕목 중 하나입니다. 반복되는 수고를 자동화하려는 본능이 곧 생산성으로 이어지기 때문입니다. 오늘은 긴 명령어를 단 한 줄, 아니 단 한 단어로 줄여주는 마법 같은 명령어 **alias**와 이를 영구적으로 보관하는 .bashrc 커스터마이징 경험을 공유합니다.1. 나의 경험담: "오타와의 전쟁, 그리고 해방"Flutter 프로젝트를 빌드하거나 Docker 컨테이너를 관리할 때, 명령어.. 2026. 1. 28. 이전 1 2 3 4 5 6 7 다음 반응형