개발자라면 필수로 알아야 할 리눅스 터미널 명령어!
안녕하세요, 여러분! 혹시 코딩하다가 파일 찾느라, 폴더 옮기느라 답답했던 경험 없으신가요? 저도 가끔씩 마우스만으로는 뭔가 시원찮고, 커맨드 창 앞에서 어리버리할 때가 종종 있거든요. 특히 개발할 때는 이런 자잘한 것들이 모여서 전체적인 생산성에 영향을 주는 것 같아요. 뭔가 더 효율적으로 할 수 없을까 고민하던 중에, 드림코딩 채널에서 정말 유용한 영상을 발견했지 뭐예요!
솔직히 처음엔 ‘명령어 몇 개 외운다고 얼마나 달라지겠어?’ 싶었는데, 영상을 보고 직접 따라 해보니까 이건 진짜… 개발 속도가 확 붙는 느낌이랄까요? 그래서 오늘은 제가 영상을 보고 직접 익힌, 개발자라면 반드시 알아두면 좋을 리눅스 터미널 명령어들을 여러분과 함께 나눠보려고 해요. 유닉스 쉘(Bash)이랑 윈도우 파워쉘(PowerShell) 둘 다에서 사용할 수 있는 것들이니, 어떤 환경에서든 도움이 되실 거예요!
파일 탐색, 어디까지 해봤니?
가장 기본적이면서도 제일 많이 쓰이는 게 바로 파일과 폴더를 탐색하는 명령어들이잖아요? 영상을 보면서 ‘아, 이걸 이렇게 쉽게 할 수 있었구나!’ 하고 무릎을 탁 쳤어요.
- ls: 현재 디렉토리에 있는 파일과 폴더 목록을 보여주는 건 다들 아시죠? 저는 보통
ls -lha옵션을 많이 써요.-l은 자세한 정보(권한, 소유자, 크기, 수정 시간 등)를,-h는 사람이 읽기 쉬운 단위로 크기를 표시해주고,-a는 숨김 파일까지 보여줘서 진짜 모든 걸 한눈에 파악할 수 있더라고요. - cd: 디렉토리를 이동할 때 쓰는 건데, 이게 또 은근히 꿀팁이 많더라고요.
cd ..는 한 단계 위로 올라가는 건 다 아시죠? 저는cd ~를 자주 써요. 이게 홈 디렉토리로 바로 이동시켜주거든요. 그리고 방금 있었던 디렉토리로 돌아갈 때는cd -를 쓰면 돼요! 왔다 갔다 할 때 진짜 편해요. - pwd: ‘Print Working Directory’의 약자로, 현재 내가 어떤 디렉토리에 있는지 경로를 정확하게 알려줘요. 이것도 가끔 내가 어디 있는지 헷갈릴 때 딱 쓰기 좋더라고요.
특히 ls -lha 조합은 처음엔 좀 길게 느껴질 수 있는데, 익숙해지면 파일 상태를 빠르게 파악하는 데 정말 최고예요. 파일 권한이나 크기 같은 걸 일일이 확인하려면 클릭 몇 번은 해야 하잖아요. 이게 터미널에서는 한 줄로 끝나요!
파일, 이렇게 관리하면 쉽죠!
파일을 만들고, 수정하고, 옮기고, 삭제하는 건 개발 과정에서 너무나도 당연한 일이잖아요. 이럴 때도 터미널 명령어를 알면 훨씬 빠르고 정확하게 처리할 수 있어요.
- mkdir: 새로운 디렉토리를 만들 때 쓰죠.
mkdir my_new_folder이렇게 하면 ‘my_new_folder’라는 폴더가 짠! 하고 생겨요. - touch: 빈 파일을 만들 때 사용해요.
touch new_file.txt를 실행하면 아무 내용도 없는 ‘new_file.txt’가 생성되죠. - cp: 파일을 복사할 때 써요.
cp source.txt destination.txt이렇게 하면 ‘source.txt’가 ‘destination.txt’로 복사돼요. 폴더째로 복사하고 싶을 땐cp -r source_folder destination_folder처럼-r옵션을 붙여주면 되고요. - mv: 파일을 이동시키거나 이름을 바꿀 때 쓰는데, 이게 한 가지 명령어로 두 가지 역할을 하니까 되게 효율적이에요.
mv old_name.txt new_name.txt이렇게 하면 이름이 바뀌는 거고,mv file.txt ../new_location/이렇게 하면 다른 폴더로 이동하는 거죠. - rm: 파일을 삭제할 때 쓰는 명령어인데, 이건 정말 조심해야 해요.
rm file_to_delete.txt이렇게 쓰면 파일이 바로 삭제되거든요. 실수로 중요한 파일을 지우지 않도록 신중하게 사용해야 하고, 폴더를 삭제할 때는rm -r folder_to_delete처럼-r옵션을 붙여야 해요. 이것도 삭제 전에 정말 신중해야 한다는 점!
이 명령어들만 잘 익혀둬도 파일 관리가 훨씬 수월해져요. 특히 프로젝트를 새로 시작하거나 구조를 변경할 때 폴더를 만들고 파일을 옮기는 작업이 순식간에 끝나더라고요. 마우스로 드래그 앤 드롭하는 것보다 훨씬 빠르고 정확하다는 느낌을 받았어요.
원하는 정보, 쏙쏙 골라내기!
때로는 특정 파일 안에서 내가 원하는 내용을 찾아야 할 때가 있잖아요? 그럴 때 이 명령어들이 빛을 발해요.
- grep: 파일 안에서 특정 문자열을 검색할 때 쓰는 아주 강력한 명령어예요. 예를 들어 ‘error_log.txt’ 파일에서 ‘failed’라는 단어가 포함된 모든 줄을 찾고 싶다면
grep failed error_log.txt이렇게 하면 돼요.-i옵션을 붙이면 대소문자 구분 없이 검색해주고,-n옵션은 몇 번째 줄인지까지 표시해주니 디버깅할 때 정말 유용하더라고요. - cat: 파일 내용을 화면에 출력할 때 쓰는데, 단순히 보는 것 외에도 여러 파일을 합치거나 다른 명령의 입력으로 사용할 수도 있어요.
cat my_file.txt하면 파일 내용이 바로 보이니 간단하게 확인할 때 좋아요.
grep은 정말이지 개발자 필수템이에요. 로그 파일 분석하거나, 설정 파일에서 특정 옵션을 찾을 때 안 쓰면 손해라고 생각해요. 저는 특히 코드를 작성하다가 ‘어디서 이 함수를 썼더라?’ 싶을 때 grep으로 파일 전체를 훑어보곤 하거든요. 시간 절약에 정말 탁월해요.
환경 변수, 쉽게 설정하고 관리하기
개발을 하다 보면 환경 변수를 설정해야 할 일이 많죠. 경로를 지정하거나, API 키 같은 민감한 정보를 관리할 때 말이에요.
- export: 환경 변수를 설정할 때 사용해요. 예를 들어
export MY_API_KEY='your_api_key_here'이렇게 하면 ‘MY_API_KEY’라는 이름의 환경 변수에 값을 할당할 수 있어요. 이 설정은 현재 터미널 세션에서만 유효하지만, 여러 환경에서 동일한 설정을 적용해야 할 때 유용하죠.
이건 영상에서 자세히 다루지는 않았지만, `export` 명령어는 정말 자주 쓰여요. 특히 CI/CD 파이프라인을 구축하거나, 다양한 개발 환경에서 설정을 통일해야 할 때 이 명령어 하나로 해결되니까 얼마나 편해요.
보너스: VIM 편집기에서 저장하고 빠져나오는 법!
그리고 영상을 보다가 ‘이건 진짜 알아두면 좋겠다!’ 싶었던 꿀팁이 있었어요. 바로 VIM 편집기에서 파일을 저장하고 빠져나오는 방법인데요. VIM이 처음엔 좀 어렵게 느껴질 수 있는데, 기본적인 저장/종료 방법만 알아도 훨씬 유용하게 쓸 수 있거든요.
영상이 알려준 방법은 다음과 같아요:
1. 먼저 ‘Esc’ 키를 눌러서 명령 모드로 들어갑니다.
2. 그다음 콜론(:)을 누르고, 저장하고 싶으면wq(write and quit)를 입력하고 Enter 키를 누르면 돼요.
3. 만약 저장하지 않고 그냥 빠져나오고 싶다면q!(quit and discard changes)를 입력하고 Enter를 누르면 됩니다.
이거 진짜 간단한데, VIM 사용하다가 ‘어떻게 저장하고 나가지?’ 하고 막막했던 분들 많으실 거예요. 저도 그랬거든요! 이제 이 방법만 알면 VIM에서도 당황하지 않고 파일을 수정하고 저장할 수 있을 것 같아요.
나라면 이렇게 해볼 것 같다
이 영상에서 소개된 명령어들을 보면서, 저는 앞으로 제 개발 워크플로우를 이렇게 바꿔봐야겠다고 생각했어요.
- 파일 생성 및 관리 자동화 스크립트 만들기: 자주 사용하는 폴더 구조를 미리 만들어두고, `mkdir`과 `touch` 명령어를 조합한 간단한 쉘 스크립트를 만들어두면 프로젝트 초기 설정 시간을 확 줄일 수 있을 것 같아요.
- `grep`을 활용한 코드 리뷰 효율 높이기: 특정 함수나 변수가 사용된 모든 위치를 `grep`으로 빠르게 찾아서 코드 리뷰 시간을 단축하고, 변경 사항을 더 정확하게 파악하는 데 활용해볼 생각이에요.
- `alias` 명령어 활용하기: `ls -lha`처럼 자주 쓰는 복잡한 명령어들은 `alias`를 이용해서 짧게 줄여서 사용할 거예요. 예를 들어 `alias ll=’ls -lha’`처럼요. 이렇게 하면 타이핑 시간을 더 절약할 수 있겠죠!
여러분도 오늘 제가 소개해드린 명령어들을 직접 터미널에 입력해보면서 익혀보세요. 처음에는 조금 어색할 수 있지만, 익숙해지면 정말 여러분의 개발 능률을 몇 단계는 끌어올릴 수 있을 거라고 확신합니다. 마우스 클릭 몇 번으로 걸리던 시간이 명령어 몇 자로 순식간에 해결되는 경험, 다들 꼭 해보셨으면 좋겠어요!
자, 오늘은 개발자에게 필수적인 리눅스 터미널 명령어들에 대해 이야기해봤는데요. 혹시 여러분만 알고 있는 또 다른 유용한 터미널 꿀팁이 있다면 댓글로 공유해주세요! 서로 배우고 성장하는 시간을 함께 만들어가면 좋겠어요. 다음에 또 유용한 정보로 돌아올게요!