참고(출처): https://k-mozzi.tistory.com/213
1) 시간 순서에 따라 명령을 내릴 수 있다.
2) 자원을 적게 사용한다.
3) 자동화가 가능하다.
-unix와 그에 파생된 linux, macos는 모두 posix 따르기 때문에 명령어의 문법과 사용할 수 있는 프로그램이 동일하다.
1) Unix
2) Linux
3) MacOS
1) 윈도우는 cmd, powershell 이라고 하는 독자적인 방법을 갖고 있기 때문에, posix와 호환이 되지 않는다. 하지만 emulator를 설치하면 윈도우도 posix와 같은 방법으로 제어할 수 있게 된다. 즉 emulator는 통역사와 같은 역할을 하게 된다.
2) 별도의 서버를 마련한다. 그 서버는 POSIX(unix, linux, macOs)에 호환되는 서버이다. 우리의 운영체제에서 posix 서버에 원격으로 접속하는 것이다. 이 때 사용하는 도구가 SSH다.
컴퓨터를 사용하는 이유: 정보를 만들기 위해 Data를 파일에 저장하고 Data를 가공한다.
어떤 분야건 4가지 처리 방법 CRUD를 파악하면 기본은 안다고 할 수 있다.
File과 관련된 CRUD, Directory와 관련된 CRUD를 알면 강의는 끝난다.
1) pwd(print working directory): 현재 디렉토리의 위치를 출력한다.
→ / : root directory(절대 경로)
→ ./ : current directory
→ ../ : parent directory(상대 경로) (그냥 .. 만 사용해도 상위 위치로 이동한다.)
2) cd(change directory): 참조하는 디렉토리를 변경한다.
→ 해당 커맨드 뒤에 이동하고싶은 디렉토리의 위치를 입력한다.
→ cd ~ 를 입력하면 자신의 홈 디렉토리로 이동한다.
3) ls: 현재 위치에 어떤 파일과 디렉토리가 있는지 확인한다.
→ ls -l: 해당 파일과 디렉토리의 상세 정보를 출력한다.
→ 파일의 이름 앞에 '.'이 있으면 해당 파일은 숨겨진 파일이다. (ls -a 를 입력하면 hidden file도 출력됨)
→ ls -R: 모든 디렉토리의 하위 파일까지 출력한다.
4) touch: 빈 파일을 생성한다.
5) mkdir(make directory): 빈 디렉토리(폴더)를 생성한다.
ex) mkdir dummy -> dummy라는 폴더를 생성
6) mv(move): 디렉토리나 파일의 이름을 변경한다.
→ 현재 파일 이름 뒤에 바꿀 파일 이름을 입력한다.
ex) mv dummy2 dummy -> dummy2 폴더의 이름을 dummy로 변경
7) rm: 현재 머물고있는 파일(디렉토리)을 삭제한다.
→ rm -r: 디렉토리(폴더) 삭제.
rm 뒤에는 보통 파일이름이 온다. 만약 디렉토리를 삭제하려면
rm -r을 써야한다.
최상위 디렉토리로 가는 방법 : cd /
(현재 위치하고 있는 곳의)부모 디렉토리로 가는 방법 : cd ../
--> ./는 현재 디렉토리고, ../는 부모 디렉토리가 된다.
ex) Users/live/posix 에서 cd ./를 누르고 pwd를 누르면
같은 곳이지만, cd ../를 누르고 pwd를 누르면 Users/live로 이동한다.
cd / : 절대경로를 사용한 것
cd ../ : 상대경로를 사용한 것
Users/live 폴더에서 posix 폴더로 이동하려면,
cd (./)posix 를 치면 된다. 이는 상대경로를 이용한 것이다.
cd /Users/live/posix 를 치면 똑같이 posix 폴더로 이동한다.
이는 절대경로를 이용한 것이다.
정리하자면..
./는 그냥 'cd (디렉토리 이름)' 으로 사용했을때만 생략이 가능하다.
cd / 는 '/' 즉 최상위 디렉토리로 가는 것.(위치를 지정하는 것이니 상대경로)
절대경로는 어디에 있건 이동할 수 있고,
상대경로는 그곳에 있어야 이동할 수 있다.
Yoon@DESKTOP-H73F8N5 MINGW64 ~
$ pwd
/c/Users/Yoon
Yoon@DESKTOP-H73F8N5 MINGW64 ~
$ cd posix
Yoon@DESKTOP-H73F8N5 MINGW64 ~/posix
$ pwd
/c/Users/Yoon/posix
Yoon@DESKTOP-H73F8N5 MINGW64 ~/posix
$ nano
Yoon@DESKTOP-H73F8N5 MINGW64 ~/posix
$ ls -al
total 17
drwxr-xr-x 1 Yoon 197121 0 Mar 26 13:36 ./
drwxr-xr-x 1 Yoon 197121 0 Mar 26 13:36 ../
-rw-r--r-- 1 Yoon 197121 13 Mar 26 13:38 hello.txt
Yoon@DESKTOP-H73F8N5 MINGW64 ~/posix
$ nano hello.txt
Yoon@DESKTOP-H73F8N5 MINGW64 ~/posix
$ cat hello.txt
hello world!
git bash에서 nano를 입력하면 새 창이 뜨는데,
거기에서 파일을 생성 or 삭제할 수 있다.
nano 창에서 내용을 쓰고, ctrl + A를 누르면 이를 저장한다.
hello.txt를 쓰면 posix 폴더에 hello.txt 파일이 만들어진다.
cat 뒤에 파일 이름을 입력하면 터미널 창에 해당 파일의 내용이 출력된다.
$ cat hello.txt
hello world
파일 이름 수정:
mv hello.txt hello_world.txt <- 이름이 hello_world.txt로 바뀜
파일 삭제:
rm hello_world.txt
touch: 빈 파일을 생성한다.
ex) touch hello.txt
여러 명령어를 나눠서 쓰지 않고 한 줄에 쓸 수 있다.
세미콜론(;)을 명령어 마다 붙이면 된다.
$ mkdir dummy; cd dummy; touch hello.txt; cd ..; ls -R
dummy 디렉토리 생성 -> dummy로 이동 -> hello.txt 빈파일 생성 -> 부모 디렉토리로 돌아와 -> ls -R(폴더 밑 모든 파일 출력)
만약 중간에 코드를 잘못 쓴다면..?
$ mkdir dummy; cd dumy; touch hello.txt; cd ..; ls -R
--> 실행이 안된다.
$ mkdir dummy&&cd dumy&&touch hello.txt&&cd ..&&ls -R
--> 만약 중간에 오류가 발생하면 뒤에 있는 명령이 실행되지 않는다.
즉, dummy 디렉토리까지만 생긴다.
후속공부: Shell Script, Package Manager(apt-get, yum, homebrew, chocolatey),Maintain(top, htop, computer architecture), Network, 컴퓨터 구조