1.1. Graphic User Interface VS Command Line Interface
1.2. Portable Operating System Interface: Unix 계열의 컴퓨터들을 서로 동일한 방법으로 제어하기 위한 표준 방법
- Unix -> Linux, MacOS
- Windows(Android, IOS): CMD, PowerShell 이라는 독자적인 방법을 사용, 통역=emulator
2.1. Unix, Linux, MacOS 사용자는 그냥 그대로 사용하면됨
2.2. Windows 사용자는 emulator을 사용해서
2.3. Posix Server에 원격제어해서 접속: Secure Shell을 이용해서
2-1. 실습 준비 - MacOS
MacOS: terminal 들어가서
pwd -> 현재 우리가 머물고 있는 directory가 나온다
ls -> 그 디렉토리에 있는 파일 목록이 나온다
2-2. 실습 준비 - Windows
Google에 ‘posix emulator for windows’ -> ‘git’
Git Bash 켜서
pwd
ls
이게 잘 실행이되면 posix 명령이 윈도우에서 잘 실행되고 있는 것
컴퓨터를 사용하는 이유? 정보 때문에 -> Data를 어딘가 저장하고 가공해줘야함
어디에 저장? = “File” = 컴퓨터의 핵
많아진 File을 정리 정돈하기 위해서 만들어진 곳 = “Directory”
파일: 데이터, 그 데이터를 처리하는 프로그램을 저장
운영체제를 다룬다 = 파일을 다룬다
pwd: print working directory
/ : root directory
rm: remove
home directory
cd: change directory
cd /
cd /Users/solee
cd ~ : 자신이 어디에 있건 홈디렉토리로 이동
ls: directory에 있는 list print
ls —help or man ls: ls manual 즉, 사용 설명서 -> q를 누르면 빠져나올 수 있음
ls -l: 현재 디레토리에 있는 파일, 디렉토리 정보들
touch: make empty file
touch showfile.txt : showfile.txt 파일을 현재 디렉토리에 생성
touch .hiddenfile.txt : 맨앞에 ‘.’이 붙으면 linux 계열의 컴퓨터에서 파일이 숨겨진채로 생성된다.(파일이 존재함에도 보이지 않는것)
ls -a: show all files
mkdir posix
cd ./posix = cd posix
mv dummy dummy2 -> dummy라는 폴더(=디렉토리)의 이름을 dummy2로 바꾼다.
rm -r dummy
cd .. : 상대적으로 부모 directory로 간다 -> 상대경로
cd / : 내가 지금 컴퓨터 어디 directory에 있건 root directory로 간다 -> 절대경로
cd ./posix : 내가 어디위치하느냐에 따라서 이동하는 경로가 달라지기 때문에 상대경로로 이동하는 것임
cd /Users/solee/posix: 내가 어디위치하느냐에 상관없이 무조건 저 위치로 이동하는 것이므로 상대경로로 이동하는 것임
nano: text editor
nano가 설치되어 있는 경우 그냥 터미널 창에 nano라고 입력하면 실행이된다.
cat hello.txt: hello.txt 안에 내용 읽기
nano hello.txt: hello.txt파일을 nano에서 열기
mv hello.txt hello_world.txt: 이름 바꾸기
mv hello_world ../hello_world.txt: 진짜 이동의 의미 -> 엔터를 누르면 실행, ctrl+c 누르면 취소
pwd: print working directory
/: root directory
~: home directory
cd: change directory
—help: simple manual
man command: manual
ls -l: list in long format
touch: make empty file
.filename: hidden file
ls -a: show all files
mkdir: make directory
./: current directory
../: parent directory
mv: move(rename)
rm -r: remove directory
rm: remove file
nano: text editor
;: command seperator
&&: and operator
==> 나는 Command Line Interface 를 사용할 줄 아는 사람이야!
CLI를 이용해서 우리가 해야하는 일을 컴퓨터한테 한번에 쫙 이야기해주고 우리가 떠나도 컴퓨터 알아서 그 일을 처리해주도록.
ls -R: 현재 디렉토리에 있는 디렉토리 안에 파일들도 다 출력해줌
mkdir dummy;cd dummy;touch hello.txt;ls -R: ';'을 통해서 명령을 연달아 해줄 수 있음
mkdir dummy&&cd dummy&&touch hello.txt&&ls -R
cd: no such file or directory: dumm
실행해야할 일을 컴퓨터에 전달해서 컴퓨터가 자동으로 그 일을 하게 하는 방법에 대해서 설명하였음. 이것만으로도 CLI는 충분히 혁명적.
여기서 멈추지 말고, 반복적인 일이 있으면 이것을 파일에 쭉~ 적어놓은다음. 파일 안에 네가 해야할 일을 적어놓았으니깐 여기있는걸 실행해! 이것을 program 이라고 한다. 정교하게 동작하는 program을 만들고 싶으면 shell script라는 것을 공부.
program의 다른 이름은 package. 남이 만든 것, 내가 만든 것을 다른 사람이 사용하게 만들 수 있음.
컴퓨터에 기본적으로 내장되어있지 않은 패키지를 설치하는 아주 여러방법이 있음. 그중 가장 쉬운 방법이 package manager를 이용하는 것. 마치 아이폰 앱스토어에서 어플리케이션을 쉽게 받아서 사용할 수 있게끔 해놓은 것을 command line에서도 똑같이 할 수 있음. 운영체제마다 다양한 pakage manager가 있음.
Package Manager
Linux: apt-get, yum
MacOS: homebrew
Windows: chocolatey
컴퓨터를 관리하는 방법
+추가
ls, cd, git, python, rm, tmuz, pip, tail, php, ssh, vim, mysql, screen,,
다중 사용자 시스템: 옛날에는 컴퓨터가 비싸서 하나의 운영체제를 나눠서 썼음. 다른 사람이 파일을 바꿔버릴 수 있는 위험. 그래서 permission(권한)이 필요함.
super user, root user
홈브류Homebrew는 맥스 호웰Hax Howell이 만든 맥OSmacOS 용 패키지 관리 애플리케이션입니다. 홈브류는 루비로 개발되고 있으며, 2009년 처음 릴리스되었습니다. 2019년 2월에 2.0이 릴리즈 되었으며, 2021년 2월 5일 애플 실리콘을 공식 지원하는 3.0.0 버전이 릴리스되었습니다. 홈브류 이전에도 커맨드라인에서 사용가능한 맥OS 용 패키지 관리자들이 있었습니다만, 현재는 홈브류가 사실상 표준으로 자리잡았습니다. 맥OS에서 프로그래밍을 하는 프로그래머들에게는 거의 필수적인 도구입니다. apt-get 등 리눅스의 패키지 관리자들과 사용법이 비슷해서 쉽게 사용할 수 있다는 장점이 있습니다. 홈브류는 주로 커맨드라인 도구나 시스템 패키지들을 설치하는 데 사용합니다만, 캐스크Cask 확장을 통해 GUI 애플리케이션 설치에도 사용할 수 있습니다. 기본적으로 맥OS용 패키지 관리자이지만, 리눅스나 윈도우의 WSL도 지원하고 있습니다.
brew(=apt-get) help
brew update
brew
brew search git: 설치된 git이 포함된 패키지들을 모두 출력. 일반 패키지와 cask 패키지로 나눠져서 출력됨.
brew install "package name": 패키지 설치하기
brew install python
brew-cask install goolge-chrome: brew-cask란 homebrew의 확장판으로 Mac용 GUI 어플리케이션을 명령어로 설치한다.
'wget + URL' 을 통해서 파일을 다운로드 받을 수 있음.
'wget -O img_name.jpeg + URL': 파일 이름 설정해주면서 다운 가능