본문 바로가기
Develop

shell 을 배우자

by hongreat 2024. 11. 20.

개발에서 Mac 을 사용하면 반드시 terminal, iTerm 과 같은 터미널 에뮬레이터(Terminal Emulator)를 사용하게 됩니다.

패키지 사용을 위한 환경변수 세팅이나, 시스템 상의 커스텀이 필요한 날이 반드시 찾아오게 되기 때문입니다.

목차

     


    리눅스기반 시스템의 주요 디렉토리

    • / (루트 디렉토리): 리눅스 파일 시스템의 최상위 디렉토리로 모든 파일과 디렉토리의 출발점.
    • /bin: 일반 사용자와 시스템 관리자가 사용할 수 있는 기본 실행 파일(명령어) 저장. 예: ls, cp, mv.
    • /sbin: 시스템 관리 명령어 저장. 예: ifconfig, reboot.
    • /etc: 시스템 설정 파일 저장. 예: passwd (사용자 계정 정보), hosts (호스트 네임 설정).
    • /home: 일반 사용자들의 홈 디렉토리. 예: /home/username.
    • /var: 가변 데이터 저장. 예: /var/log (로그 파일).
    • /tmp: 임시 파일 저장. 재부팅 시 삭제.
    • /dev: 장치 파일 저장. 예: dev/sda1 (하드디스크 파티션).
    • /usr: 사용자 관련 프로그램과 라이브러리 저장. 예: /usr/bin, /usr/lib.
    • /boot: 부팅과 관련된 파일 저장. 예: 커널 이미지(vmlinuz), 부트로더 설정 파일(grub).

    이해의 관점에서.. 

    • 리눅스 파일 시스템 구조 이해: 시스템 전반
    • 시스템 설정 파일 탐색: 주요 설정 파일을 탐색하고 관리
    • 프로그램 및 라이브러리 위치 파악: 프로그램 실행 파일과 라이브러리 관리
    • 로그 파일 분석: 시스템 로그를 통해 문제

    실질적인 활용 예시

    • 개발 환경 설정: 설정 파일(/etc)과 라이브러리(/usr/lib)를 활용한 환경 설정.
    • 문제 해결 및 디버깅: 로그(/var/log)를 확인하여 문제 원인 분석.
    • 장치 관리: /dev 디렉토리를 활용해 장치 파일로 직접 작업.

    연관 명령어

    • Linux 명령어: 파일 디렉토리 탐색 명령어(ls, cd, pwd)와 파일 관리 명령어(cp, mv, rm).
    • 시스템 관리: /etc 설정 파일 수정 및 사용자 관리(passwd, adduser).
    • 로그 분석: /var/log에서 syslog, auth.log를 분석
    • 파일 및 디렉토리 권한 관리: chmod, chown 명령어로 권한관리

    리눅스 파일 시스템과 명령어에 대한 이해는 개발자에게 필수적인 스킬입니다.

     

    레퍼런스 링크

     

     

    개발에서 주로 사용하지 않다고 하더라도, 실제로 최근 용량 관련 문제 때문에 CLI를 사용해 시스템 최적화를 진행한 적 있습니다.

    그 과정에서 리눅스기반의 명령어를 알아두는 것이 중요하다고 생각했습니다.

    요즘에 종종 vim 을 학습하는 컨텐츠도 보이는 것 같은데, 인공지능으로 각광 받는 요즘 개발씬에서.. 이런 기본기들을 잘 익혀두는 것이 오히려 좋은 개발자로 성장하는 것이 아닐까 생각됩니다.