본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
안녕하세요! 😊 주말의 시작을 리눅스 탐험과 함께하고 있는 Big Byte입니다!
어제 diff, less, alias를 배우면서 파일 비교의 달인이 되고, 스크롤 압박에서 벗어나 우아하게 파일을 읽고, 심지어 나만의 마법 주문까지 만드는 짜릿한 경험을 했었죠! ✨ 특히 alias rm='rm -i'로 안전벨트를 딱! 매고 나니, 어제 살짝쿵 느꼈던 rm 명령어에 대한 긴장감이 자신감으로 바뀌는 기분이었어요. 😉🛡️
오늘은 즐거운 토요일! 늦잠의 유혹을 뿌리치고 다시 컴퓨터 앞에 앉았습니다. 왜냐구요? 패스트캠퍼스 강의를 통해 리눅스 고수로 거듭나는 이 여정이 너무나 흥미진진하기 때문이죠! 🤓 어제까지 파일 내용을 들여다보고, 비교하고, 편리한 단축키를 만드는 방법을 배웠다면, 오늘은 드디어! 리눅스 파일 시스템의 진정한 관리자가 되는 핵심 기술, 파일과 디렉토리를 자유자재로 옮기고 복사하고, 원하는 것을 귀신같이 찾아내는 방법을 배웠습니다!
마치 디지털 세상의 이삿짐센터 전문가이자, 숨겨진 보물을 찾아내는 탐험가가 된 기분이랄까요? 🚚🗺️ 그럼 오늘 배운 알찬 내용들을 하나하나 풀어보겠습니다! Let's Go! 🚀

1. 복사의 달인: 파일과 디렉토리를 안전하게 복제하는 cp 📄➡️📄
리눅스를 사용하다 보면 파일을 복사해야 할 일이 정말 많습니다. 중요한 설정 파일을 수정하기 전에 백업을 만들어 두거나, 기존 문서를 기반으로 새로운 문서를 작성할 때 등등 말이죠. 이럴 때 사용하는 명령어가 바로 cp (copy) 입니다! 이름 그대로 파일이나 디렉토리를 복사하는 역할을 하죠.
사용법:
cp [옵션] [원본 파일/디렉토리 경로] [대상 파일/디렉토리 경로]
예시:
- report.txt 파일을 report_backup.txt라는 이름으로 복사하기:이제 같은 디렉토리에 report.txt와 똑같은 내용의 report_backup.txt 파일이 생성됩니다. 참 쉽죠? 😊
-
cp report.txt report_backup.txt - project_a 디렉토리 전체를 project_a_backup이라는 이름으로 복사하기:여기서 중요한 점! 디렉토리를 복사할 때는 -r 또는 -R (recursive, 재귀적) 옵션을 반드시 붙여줘야 합니다. 이 옵션은 디렉토리 안의 모든 하위 파일과 디렉토리까지 전부 복사하라는 의미입니다. 이 옵션을 빼먹으면 디렉토리는 복사되지 않으니 꼭 기억하세요! ☝️
-
cp -r project_a project_a_backup # 또는 cp -R project_a project_a_backup - 여러 파일을 특정 디렉토리 안으로 복사하기:이렇게 하면 document1.txt와 image.jpg 파일이 현재 사용자의 홈 디렉토리 아래 있는 backup 디렉토리 안으로 복사됩니다. (단, backup 디렉토리가 미리 존재해야겠죠? 없다면 mkdir로 뿅! 만들어주면 됩니다 😉)
-
cp document1.txt image.jpg ~/backup/
유용한 옵션:
- -i (interactive): 복사하려는 위치에 같은 이름의 파일이 이미 존재할 경우, 덮어쓸 것인지 물어봅니다. 실수로 중요한 파일을 덮어쓰는 것을 방지하는 안전장치 역할을 하죠! alias cp='cp -i' 처럼 설정해두면 더욱 안심하고 사용할 수 있겠네요! 👍
- -v (verbose): 복사 과정을 화면에 자세히 보여줍니다. 어떤 파일이 어떻게 복사되었는지 확인할 때 유용합니다.
cp 명령어를 사용하니, 이제 중요한 파일들을 안전하게 백업하고 관리할 수 있다는 생각에 마음이 든든해집니다! 💪
2. 이동과 이름 바꾸기의 마법사: mv 📁➡️📂 & 📝➡️✨
파일을 복사하는 것만큼이나 자주 하는 작업이 바로 파일이나 디렉토리를 다른 위치로 옮기거나, 이름을 바꾸는 것입니다. 이 두 가지 작업을 한 번에 해결해주는 만능 명령어가 바로 mv (move) 입니다!
mv는 상황에 따라 두 가지 역할을 합니다.
- 이름 바꾸기 (Rename): 원본과 대상이 같은 디렉토리에 있고, 대상 이름이 파일명 형태일 때.
- 이동하기 (Move): 대상이 디렉토리 이름이거나, 다른 경로일 때.
사용법:
mv [옵션] [원본 파일/디렉토리 경로] [대상 파일/디렉토리 경로 또는 새 이름]
예시:
- draft_report.txt 파일의 이름을 final_report.txt로 바꾸기:파일 내용은 그대로, 이름만 샤샥! 바뀌었습니다. 정말 간편하죠? ✨
-
mv draft_report.txt final_report.txt - important_data.zip 파일을 archive 디렉토리 안으로 이동시키기:현재 디렉토리에 있던 important_data.zip 파일이 archive 디렉토리로 이사 갔습니다. 🚚 (마찬가지로 archive 디렉토리가 존재해야 합니다.)
-
mv important_data.zip ./archive/ - project_temp 디렉토리의 이름을 project_final로 바꾸기:디렉토리 이름 변경도 파일 이름 변경과 동일하게 mv 명령어를 사용합니다!
-
mv project_temp project_final - image.png 파일을 상위 디렉토리(../)로 이동시키면서 profile.png로 이름 바꾸기:이동과 이름 변경을 동시에! mv의 유연함에 감탄하게 되네요! 😮
-
mv image.png ../profile.png
주의할 점!
mv는 cp와 달리, 기본적으로 대상 위치에 같은 이름의 파일이나 디렉토리가 있으면 묻지 않고 덮어씁니다! 😱 따라서 중요한 파일을 실수로 덮어쓰지 않도록 주의해야 합니다. 이때도 -i 옵션을 사용하면 덮어쓰기 전에 확인 메시지를 보여주므로 훨씬 안전하게 사용할 수 있습니다. alias mv='mv -i' 설정, 강력 추천합니다! 🙏
cp와 mv를 배우고 나니, 이제 리눅스에서 파일을 생성하고(touch, mkdir), 삭제하고(rm), 복사하고(cp), 이동/이름 변경(mv)하는 기본적인 파일 관리 사이클을 모두 할 수 있게 되었습니다! 마치 어지럽혀진 방을 깔끔하게 정리하고 가구를 재배치하는 것처럼, 디지털 공간을 제 마음대로 관리할 수 있게 된 기분이에요! 🧹🏠

3. 리눅스 탐험가: 원하는 파일을 찾아내는 find 🗺️
리눅스를 사용하다 보면 파일이 점점 많아지고, 어디에 어떤 파일이 있는지 기억하기 어려워질 때가 있습니다. "분명히 'report'라는 이름이 들어간 파일이 있었는데... 어디에 저장했더라?" 🤔 와 같은 상황! 이럴 때 필요한 것이 바로 강력한 파일 검색 도구, find 입니다!
find는 특정 디렉토리부터 시작해서 그 하위 디렉토리까지 샅샅이 뒤져서, 우리가 지정한 조건에 맞는 파일이나 디렉토리를 찾아줍니다.
사용법:
find [검색 시작 경로] [옵션] [표현식]
- 검색 시작 경로: 어디서부터 찾기 시작할지를 지정합니다. (.은 현재 디렉토리, /는 시스템 전체, ~는 홈 디렉토리 등)
- 옵션: 검색 조건을 지정합니다. (예: -name, -type, -mtime, -size)
- 표현식: 옵션에 대한 값이나 추가적인 동작을 지정합니다.
예시:
- 현재 디렉토리(. ) 및 하위 디렉토리에서 이름이 .log로 끝나는 모든 파일 찾기:-name 옵션은 파일 이름을 기준으로 찾고, *는 어떤 문자열이든 매칭되는 와일드카드입니다.
-
find . -name "*.log" - 홈 디렉토리(~) 아래에서 config라는 이름의 디렉토리(-type d) 찾기:-type d는 디렉토리만 찾으라는 의미입니다. 파일은 -type f를 사용합니다.
-
find ~ -type d -name "config" - /var/log 디렉토리 아래에서 최근 24시간(-mtime -1) 내에 수정된 파일 찾기:-mtime은 파일 수정 시간을 기준으로 찾습니다. -1은 1일(24시간) 이내를 의미합니다. (+1은 1일보다 오래된 파일)
-
find /var/log -mtime -1 -type f
find는 옵션이 매우 다양해서 처음에는 조금 복잡하게 느껴질 수 있지만, 몇 가지 기본적인 사용법만 익혀두면 원하는 파일을 정말 효과적으로 찾아낼 수 있습니다. 마치 숨겨진 보물을 찾아내는 탐험가가 된 기분이랄까요? 💎
4. 텍스트 속 명탐정: 파일 내용에서 특정 문자열 찾기 grep 🕵️♂️
find가 파일 자체를 찾는 명령어라면, grep (Globally search for Regular Expression and Print)은 파일 내용 안에서 특정 텍스트(문자열 또는 패턴)를 찾아주는 강력한 도구입니다. 프로그래머에게는 코드에서 특정 함수나 변수를 찾을 때, 시스템 관리자에게는 로그 파일에서 에러 메시지를 찾을 때 정말 유용하게 사용됩니다!
사용법:
grep [옵션] [찾을 패턴] [검색할 파일 경로(들)]
- server.log 파일에서 "ERROR"라는 단어가 포함된 모든 줄 찾기:
-
grep "ERROR" server.log - 대소문자 구분 없이(-i) access.log 파일에서 "login"이라는 단어 찾기:
-
grep -i "login" access.log - 현재 디렉토리의 모든 .py 파이썬 파일에서 "import requests"라는 문장 찾기:
-
grep "import requests" *.py - /etc 디렉토리와 그 하위 디렉토리(-r)에서 "database_url"이라는 문자열 찾기 (파일 이름과 함께 출력 -H):
-
grep -rH "database_url" /etc - 다른 명령어의 출력 결과에서 특정 내용만 걸러내기 (파이프 | 활용):ps aux는 현재 실행 중인 모든 프로세스를 보여주는데, 이 결과를 grep으로 넘겨서 "nginx"가 포함된 라인만 필터링합니다. 파이프와 함께 쓰는 grep은 정말 활용도가 무궁무진합니다! 👍
-
ps aux | grep "nginx"
grep 덕분에 이제 방대한 텍스트 데이터 속에서도 원하는 정보를 콕콕 집어낼 수 있게 되었습니다! 마치 텍스트 속을 누비는 명탐정이 된 기분이네요! 🕵️♂️💬
어제 배운 내용에 오늘 배운 파일 관리 및 검색 기술까지 더해지니, 리눅스 터미널이 더 이상 낯설고 어려운 공간이 아니라, 내가 원하는 작업을 효율적으로 수행할 수 있는 강력하고 편리한 작업 공간으로 느껴지기 시작했습니다. 물론 아직 능숙하게 사용하려면 많은 연습이 필요하겠지만, 하나씩 알아가는 즐거움이 정말 큽니다! 🌱
오늘 하루도 이렇게 새로운 지식으로 머릿속을 채우고 나니 정말 뿌듯하네요!

그리고... 오늘은 기다리고 기다리던 즐거운 토요일입니다! 🎉 이번 한 주도 각자의 자리에서 열심히 달려오신 모든 분들, 정말 고생 많으셨습니다! 👏
모두 즐거운 토요일 보내시고, 행복 가득한 주말 맞이하시길 바랍니다! 😊 저도 오늘 배운 내용들을 복습하며 뿌듯한 마음으로 주말을 즐겨야겠어요! 🔥 다음 주에 또 새로운 리눅스 이야기로 찾아뵙겠습니다!
'데이터 엔지니어링' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 14일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.14 |
|---|---|
| 패스트캠퍼스 환급챌린지 13일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.13 |
| 패스트캠퍼스 환급챌린지 11일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.11 |
| 패스트캠퍼스 환급챌린지 10일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.10 |
| 패스트캠퍼스 환급챌린지 9일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.09 |