1. CLI와 GUI의 차이를 이해하고, CLI 기본 명령어들을 사용할 수 있다.
2. 관리자 권한과 경로에 대해 설명할 수 있다.
3. 패키지와 패키지 매니저를 이해하고 MacOS 패키지 매니저인 brew를 설치 및 사용할 수 있다.
4. 사용 권한과 소유자에 대해 이해하고, 사용 권한을 변경할 수 있다.
5. 환경변수에 대해 이해하고 설정 및 사용할 수 있다.
- CLI (Command-Line Interface)
✔︎ 장점 : 상대적으로 높은 안정성을 갖고 빠른 속도
✔︎ 단점 : 사용법이 어렵고 진입 장벽 ⬆️
✔︎ 장점 : 사용자가 쉽게 컴퓨터를 제어할 수 있음.
✔︎ 단점 : 그래픽을 사용하므로 컴퓨터 자원을 많이 사용하고, 상대적으로 느림.
✔︎ pwd
(print working directory) : 현재 위치 확인
✔︎ mkdir
(make directories) : 새로운 폴더 생성
✔︎ ls
(list) : 특정 폴더에 포함된 파일이나 폴더 확인
✓ ls -l
: l은 폴더나 파일의 포맷을 전부 표현하라는 의미
✓ ls -a
: a는 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력
✓ ls -al
or ls -la
✔︎ cd
(change directory) : 폴더에 진입
✔︎ touch
: 파일 생성
✔︎ >
: 실행 결과를 파일로 저장
※ echo
: 뒤의 내용을 화면에 출력해주는 역할
✔︎ cat
: 파일의 내용을 터미널에 출력
※ cat 대신 쓰는 명령어 (파일 내용 일부분만 열람 가능)
✓ head
✓ tail
✓ more
✓ less
✔︎ rm
(remove) : 폴더나 파일을 삭제 (휴지통을 거치지 않고 바로 삭제)
✓ rm -r
(recursive) : 폴더를 지울 때 사용
✓ rm -f
(force) : 질문을 받지 않고 지울 때 사용
✓ rm -rf
※ r, f는 cp같은 명령어에도 사용 가능
✔︎ mv
(move) : 폴더나 파일 이름을 변경, 또는 폴더나 파일의 위치 옮기기
✓ mv [폴더나 파일의 이름] [도착 폴더의 이름]
※ 컴퓨터가 파일을 옮기는 과정
① 파일의 내용을 잠시 저장 - ② 원래 위치의 파일 삭제 - ③ 도착 폴더에 ①에서 저장한 내용으로 새로운 파일 생성
✔︎ cp
(copy) : 폴더나 파일을 복사
✓ cp [원본 파일 이름] [복사할 파일 이름]
※ 컴퓨터가 복사하는 옮기는 과정
① 파일의 내용을 잠시 저장 - ② 원래 위치의 파일 삭제(제외) - ③ 도착 폴더에 ①에서 저장한 내용으로 새로운 파일 생성
✔︎ -h
, -help
: 헬프 옵션 사용
✔︎ man
: 매뉴얼
🗒️ ✔︎ nano
: 텍스트 에디터 (원격 서버 환경에서 원격으로 텍스트를 편집해야할 때 사용 ⭕️)
※ CLI환경 에디터 : vim(vi), emacs, nano(가장 사용하기 쉬움) 등
- 관리자 권한과 경로
✔︎ 기준점 : 루트폴더(/
)
✔︎ 현재 위치한 폴더 : 점(.
)으로 표현
✔︎ 상위 폴더 : 두 개의 점(..
)으로 표현
✔︎ 점(.
)은 현재 폴더를, 슬래시(/
)는 폴더 내부를 뜻함. 따라서 ./
는 "현재 폴더 아래의"라는 뜻
✔︎ 절대 경로의 기준점인 루트폴더(/
)는 Linux의 관리자 영역
✔︎ 일반 사용자 권한으로는 어떤 폴더나 파일도 생성, 변경, 삭제 ❌
✔︎ whoami
: 현재 로그인된 사용자를 확인하는 명령어
✔︎ 사용자 폴더 경로 : ~/
※ 물결 기호(~
)은 루트폴더(/
)로부터 사용자 폴더까지의 경로를 축약한 형태
- 패키지와 패키지 매니저
✔︎ 프로그램 파일
✔︎ 프로그램 설치 파일
✔︎ 프로그램 설치 설명서
✔︎ 프로그램에 대한 정보를 담은 파일
✔︎ brew 명령어
✓ brew 자체 업데이트 : brew update
✓ 업데이트 필요한 파일 조회 : brew outdated
✓ 프로그램 업그레이드(업데이트) : brew upgrade 프로그램 이름
✓ 프로그램 검색 : brew search 검색어
✓ 프로그램 정보 확인 : brew info 프로그램 이름
✓ 프로그램 설치 : brew install 프로그램 이름
✓ 프로그램 삭제 : brew uninstall 프로그램 이름
✓ 설치된 프로그램 보기 : brew list
- 사용 권한
✔︎ chmod
로 권한을 변경하는 방식
① Symbolic method : 액세스 클래스, 연산자, 액세스 타입으로 구분하여 더하기(+
), 빼기(-
), 액세서(accessor) 유형을 표기해서 변경
(ex. chmod g-r filename, chmod o+wx filename, a=rw filename, u= filename, etc)
② Absolute form : rwx를 3bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경
(ex. chmod 751 filename, chmod 777 filename, etc)
- 환경변수
✔︎ 지역 환경변수 : 환경변수를 생성한 특정 사용자만 사용 ⭕️
✔︎ 전역 환경변수 : 모든 사용자가 사용 ⭕️
✔︎ 지역 환경변수 : 등호 표시(=
) 앞뒤에는 공백 반드시 ❌, 저장하는 변수에 공백 존재 시 값 전체를 따옴표(""
)로 감싸줘야 함
✔︎ 전역 환경변수 : export
명령어 사용.
마찬가지로 등호 표시(=
) 앞뒤에는 공백 반드시 ❌, 저장하는 변수에 공백 존재 시 값 전체를 따옴표(""
)로 감싸줘야 함!
✔︎ 전역 및 지역 환경변수의 개별 값 확인 : echo
명령어 사용, 환경변수 앞에는 달러사인 ($
) 입력.
✔︎ 지역 환경변수
① 텍스트 에디터를 이용해(nano zshrc
) 파일 맨 아래 설정하고자 하는 환경변수 작성 및 저장
② source .zshrc
을 입력하여 변경 내용 적용 및 내용 출력
✔︎ 전역 환경변수
① 변경하고자 하는 파일의 권한 수정 (sudo chmod 777 [filename]
활용)
② 텍스트 에디터를 이용해 (nano [파일경로]
) 파일 맨 아래 설정하고자 하는 환경변수 작성 및 저장
③ source [파일경로]
를 입력하여 변경 내용 적용 및 내용 출력
✔︎ export
: 운영체제 내 환경 변수 목록 확인 ⭕️
☞ 어렸을 때, 까만 화면에 영문 모를 영어들이 나열되어 있는 Terminal을 보며 조금이라도 잘못 만지면은 큰 일날 것 같아서 겁이 났던 기억이 있다.
오늘 강의를 듣기 전까지만 해도 까막눈에 터미널에 명령어들을 입력하는 사람들을 보면 경외심이 생기는 수준이었는데, 두려워하지 않아도 된다고 진입하기 좋게 눈높이에 맞춰 강의를 시작해주시는 강사님 덕분에 큰 도움이 됐던 것 같다 :)
GUI가 개발됐지만 아직까지도 CLI언어를 사용하는 이유를 알게 되었고, 많은 명령어들을 하나하나 직접 실습해가며 이해하는 즐거움도 있었다. 그렇지만 많은 명령어들 앞에서 돌아서면 까먹는 나이기에 반복 학습은 필수.. 😅
경로와 사용 권한, 환경변수에 대해서도 이해될 때까지 읽어가며 어느 정도 내 것으로 만든 것 같고, CLI로 GUI에서 하던 작업들을 하고 GUI로 다시 확인하고 하면서 흥미롭고 뜻깊은 시간이었다!
시작할 때 강사님께서 보여주셨던 터미널로 구현한 기차나 매트리스, 불멍 등을 내가 직접 brew를 통해 다운받아 사용해보니 왠지 모를 뿌듯함..☺️
이렇게 흥미를 느끼고 배운 게 많은 하루였지만, 앞서 말했듯 내용이 많다보니 꾸준한 반복학습이 필요할 것 같다, 화이팅! ✍️ 🔥🔥🔥
・ git
・ pair programming - simple git workflow