CLI (Command-line Interface) 명령줄 인터페이스. 명령어로 컴퓨터를 제어하는 방식
GUI (Graphic User Interface) 그래픽 사용자 인터페이스.
I/O (Input/Output) 아이오 (키보드, 마우스, 모니터 등)
리눅스는 GUI 이전부터 사용
맥 os 터미널에서도 실행 가능
대량의 클라우드 컴퓨터에 GUI 적용한다면 서버 컴퓨터마다 I/O 부착해야 -> 비효율적. 불가능.
따라서 CLI 적용.( 빠른 속도. 높은 안정성)
내 컴퓨터에서 클라우드 컴퓨팅에 자료 요청 -> 서버 내용 내 모니터에서 출력
AWS(아마존)에서 빌린 클라우드 컴퓨터 : 인스턴스
pwd : 현 위치 확인 (Print Working Directory)
mkdir : 새 폴더 생성 (Make Directories) 폴더명1 폴더명 2
ls : 폴더나 파일 목록 출력 (List) ; ls -l (폴더, 파일의 포맷 전부 표현. d로 시작은 디렉토리. -로 시작은 파일), ls -a (숨은 폴더, 파일모두 표현), ls -al 또는 -la
open : 현 폴더를 파일 탐색기로 열기
cd 폴더에 진입 (Change Directory) ; cd .. : 상위 폴더 이동 . : 현재 폴더
touch : 새 파일 생성
cat : 파일 내용 터미널에 출력
rm : 폴더나 파일 삭제 (remove) 휴지통 거치지 않고 바로 삭제 (rm -rf : recursive force 폴더 지울 때 질문 받지 않고 삭제)
mv : 폴더나 파일 위치 이동 또는 이름 변경(move) 폴더,파일이름 도착 폴더의 이름/
(ex. mv 파일.확장자 ../ 이동할 폴더 명)
cp : 폴더나 파일 복사
sudo : 관리자 권한
> : 실행 결과를 파일로 저장하기
Ctrl + C : 터미널 강제종료
brew help : Homebrew 패키지 매니저 실행
cd ~ : 홈 디렉토리로 이동
ex. pwd -> mkdir -> cd -> touch -> echo 내용 > 저장할 파일명.확장자 -> cat 저장한 파일명.확장자
폴더 명에 띄어쓰기나 특수문자 있으면 백슬래시 이용
Hello\ Wolrd
내용을 입력하세요.
프롬프트 : CLI의 명령줄 대기모드. 터미널 화면에서 글자가 입력되는 한 줄의 공간
컴퓨터 운영체제에는 사용자와 관리자가 있는데, 이를 구분 한 이유는 해킹 등에 의해 컴퓨터를 안전하게 보호하기 위해서임
관리자 권한이 필요한 경우 특정 명령어를 입력하는 것으로 잠시 관리자 권한을 빌려올 수 있다.
[경로]
/ 폴더 내부. 절대 경로 (또는 루트 폴더 - 일반 사용자는 생성, 변경, 삭제 불가)
. 현재 폴더. 상대 경로 (현 디렉토리)
.. 상위 폴더.
./ : 현재 폴더 아래
./폴더명 : 현재 폴더 아래의 폴더명
/ : 루트 디렉토리
~ : 홈 디렉토리
절대 경로 ~/(홈으로 이동)destktop/user/폴더명
상대 경로 ../ (여기에서 상위 폴더로)
명령어 whoami로 사용자 이름 확인 가능
sudo : 관리자 권한을 획득
sudo mkdir : 관리자 권한으로 폴더 생성 (이후 ls -l을 이용해 관리자 권한으로 생성 확인 가능)
[텍스트 에디터]
nano, vim(vi), emacs 등 존재. 가장 쉬운 건 nano
실행은 터미널에서 nano 또는 nano 파일명.확장자 치면 됨
파일 편집 후 종료 : ^X (ctrl X)
종료하지 않고 저장 : ^O
리눅스의 패키지 : 여러 파일을 하나의 파일로 만들어 모아놓은 압축파일
패키지 매니저를 사용하는 이유 : 여러 파일(패키지)을 설치, 변경, 삭제 등 관리 용이. 모든 패키지의 저장소 위치를 저장.
맥은 brew 사용
[brew 명령어]
brew update : 패키지 업데이트 여부 확인
brew outdated : 업데이트 필요한 파일 조회
brew upgrade
brew info
brew install
brew list
brew uninstall
[brew 명령어]
brew update : 자체 업데이트
brew outdated : 업데이트 필요한 파일 조회
brew upgrade 프로그램 이름 : 프로그램 업그레이드 (업데이트)
brew search 검색어 : 프로그램 검색
brew info 프로그램 이름
brew install 프로그램 이름 (ex. brew install wget 또는 neofetch -> 이후 wget -O goodjob.txt https://bit.ly/37sJqCo)
brew uninstall 프로그램 이름
brew list : 설치된 프로그램 보기

neofetch 설치시 나오는 사과로고
이후 r,w,x는 각각 read, write, execute permission (읽기, 쓰기, 실행 권한)
세번으로 나눠져서 나오는 이유 : user, group, other (사용자, 그룹, 나머지) 에 대한 권한 표시
ex. -rw-r--r-- : 파일 / 소유자 읽기, 쓰기 / 다른 사용자 읽기 / 나머지 읽기
chmod : 권한 변경하는 명령어
참고 사이트 https://kb.iu.edu/d/abdb
환경변수 : 환경에 따라 프로그램의 동작에 영향을 줄 수 있는 값
지역 환경변수 : 환경변수 생성한 특정 사용자만 사용 가능
전역 환경변수 : 모든 사용자가 사용할 수 있는 환경변수
환경변수 임시 적용하기
지역 환경변수 : 환경변수=개별값 (개별값에 공백 포함하는 경우 ''따옴표로 감싸준다)
전역 환경변수 : 지역과 동일
개별값 확인하기
: echo $환경값
[지역 환경변수 영구 적용하기]
cd ~ -> ls -al -> 조회 목록에 .zshrc 있으면 nano .zshrc 입력 .bashrc 있으면 nano .bashrc (nano 대신 vim을 써도 되긴 하다)

제일 오른쪽 .zshrc 확인
여기서 난 alias 단축키를 설정하려고 했는데 저장하려고 하니 자꾸 [ Cannot open file for writing: Permission denied ] 라는 문구가 떴다

구글링해보니 에러를 해결하기 위해서는 관리자 설정으로 들어가줘야 했다
터미널에서 sudo nano .zshrc 또는 sudo nano .bashrc 를 쳐준다
비밀번호 치고 뜨는 새 창에서 alias 단축키 설정해주고 Ctrl O 눌러보니 저장이 잘 됐다
이 후 source .zshrc 입력하여 변경 내용 적용해준다
아래는 동기가 알려주신 출처 보고 따라한 alias 단축키
alias egrep="egrep --color=auto"
alias fgrep="fgrep --color=auto"
alias grep="grep --color=auto"
alias l.="ls -d .* --color=auto"
alias la="ls -a"
alias ll="ls -l --color=auto"
alias ls="ls --color=auto"
좀 써보다가 내가 편한대로 바꿔보려고 한다
[전역 환경변수 영구 적용하기]
환경변수를 저장하는 파일의 수정 권한을 수정한다
sudo chmod 777 /etc/profile -> 각자 컴퓨터 비밀번호 치고 엔터 -> nano /etc/profile
변경 사항 입력, 저장 후 종료 -> source /etc/profile
export : 생성된 환경변수의 이름과 값 확인하기
-r (recursive) 특정 행동 순환 반복
-f (force) 강제 행위. 보호되거나 존재하지 않는 파일도 강제로 삭제 가능. 사용할 때 매우 주의해야!
합쳐서 -rf 로 쓰기도. 다만 휴지통 거치지 않고 바로 삭제되며, 중요한 파일을 날릴 수도 있으니 느낌 쎄하면 Ctrl C 연타하기
참고 사이트
[cat 대신 쓰는 명령어 (head, tail, more, less 등)]
head : 앞에서 부터 일부 출력. head 파일명 (10행), head -n 100 파일명 (100행) head -c 100 (100 byte)
tail : 마지막 행 기준으로 일부 출력
more : 위에서 아래방향으로 출력. 지나간 내용 다시 볼 수 없음. 한 화면에 다 출력하기 어려우므로 | 파이프 사용 (ls -al | more)
less : 한 번에 보여지는 만큼만 읽어서 출력. 대용량 파일 열 때
출처 http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4
[헬프 명령어 (사용법 출력)]
-h 또는 -help
터미널 bash 에서 oh-my-zsh로 바꿨다
나도 터꾸 해야지 룰루