: sw를 개발하고 실행할 수 있는 편리한 플랫폼
-> 1970년대 초반에 개발된 운영체제
-> 쉽게 수정해서 다른 컴퓨터에 적용할 수 있음
-> 유닉스를 기반으로 하는 다양한 운영체제 등장
---> 즉, 유닉스는 sw를 개발하고 실행할 수 있는 플랫폼이고, 이를 기반으로 한 운영체제들이 많이 등장하였음. 그리고 명령어를 통해 컴퓨터와 소통을 하게되는데, 유닉스를 사용하는 운영체제에서 주로 사용하는 유닉스 커맨드에 대해서 배울 것임.
즉, 개발자가 유닉스 커맨드 통해서 파일 설치하고, 폴더 관리하고, 협업하고 그런 방법들을 배워볼 것이다.
유닉스
: 개발자들이 소프트웨어를 개발하고 실행할 수 있는 편리한 플랫폼. 사람들이 여러 컴퓨터에 사용하기 위해 변형을 시도함. but, 지불해야 했음. POSIX라는 표준이 있었음.
리눅스
: 유닉스 사용을 위해서는 지불을 해야만 했음. 따라서 유닉스와 코드는 다르지만, 유사한 운영체제를 직접 만들기 시작했고, 무료로 배포되어 사용할 수 있는 유닉스와 유사한 운영체제가 리눅스이다.
-> Ubuntu 또한, 리눅스를 변형해서 만들어진 것
--> 유닉스라는 좋은 운영체제가 만들어지고, 이걸 자유롭게 번형하고 배포할 수 있는 리눅스가 만들어지면서 프로그래밍 업계에 큰 영향을 미쳤다.
-> POSIX 표준 인증 절차 거친 운영체제와 인증 절차 거치지 않았지만, 비슷한 운영체제
--> 결론은 !! 리눅스, 우분투, macos등등 모든 운영체제들이 유닉스에서 변형되어진 것이다. 그 중에서도 리눅스는 무료로 배포하기 위한 것. 여기에서 변형된 것이 우분투. 무료 배포가능한 리눅스의 등장 이후, 위와 같은 다양한 운영체제들이 등장함. 즉, 모든 운영체제들이 유닉스에 근간을 두고 있다는 것이다. 따라서 위의 모든 운영체제들이 유닉스 커맨드를 공통으로 사용할 수 있다.
: 실제 명령어를 입력하는 검은 창
: 이 부분을 prompt 라고 하고, '%'는 prompt의 끝을 알린다.
-> 이 뒤에 커맨드를 입력하는 것임
: 커맨드+옵션+아규먼트
man+커맨드
: 커맨드에서 사용법에 대한 공식 메뉴얼 제공
<메뉴얼 보는 방법>
--> 필요할 땐, 인터넷 검색!
유닉스 디렉토리 구조
: 트리구조
: root 디렉토리부터 계속 뻗어나감
파일 경로
: 디렉토리나 폴더의 위치를 문자열로 표기
-> root에서부터의 해당 파일까지의 경로를 써줌.
-> 루트 디렉토리: '/'
-> 현재 사용자의 홈 디렉토리: '~'
pwd (Print Working Directory)
: 현재 위치의 디렉토리 경로, Working Directory의 경로 알려줌
cd (Change Directory)
: 디렉토리의 위치 변경
-> cd/: 이전 디렉토리로 이동
ls (List)
: 디렉토리 안의 것들 보여줌
절대 경로
: root deriectory를 기준으로 어떤 파일이나 디렉토리의 고유한 경로 표시하는 것
-> 경로가 길어질수록 불편해짐
상대 경로
: 현재 자신이 위치해 있는 디렉토리(Working Directory)를 기준으로
-> 현재 디렉토리: '.'으로 표시
-> 상위 디렉토리: '..'으로 표시
--> './' 없어도 현재의 디렉토리로 인식함
--> 멀리 떨어져있는 디렉토리로 이동할 경우 절대 경로가 더 굳일수도
<vim의 4가지 사용 모드>
1. 일반
2. 입력: 테스트 입력하기 위해서 (i 단축키)
3. 비주얼
4. 명령
-> 처음에는 일반 모드로 실행되고, 단축키 통해서 다른 모드로 이동
-> 일반 모드로 가려면 'esc'키
<파일 저장하고 종료하기>
<단축키 정리>
-> 이미 존재할 경우, 그곳으로 이동/ 그렇지 않으면 이름 변경
-> Jul 디렉토리를 다시 꺼내옴
--> mv는 디렉토리나 파일 옮기거나, 이름 변경할 때 쓰이는데, 이미 존재하는 디렉토리이면 이동/ 없으면 이름 변경
: 똑같은 파일의 이름이 목적지에 있을 경우 덮어씌움!
-> 이런 현상을 방지하기 위한 게, i 옵션! 사용자에게 덮어씌울 것인지 아닌지 물어봄
-> path2가 이미 존재하면 그 곳으로 복사, 그렇지 않으면 그 이름을 가진 파일이나 디렉토리 생성
-> 이미 존재하면 덮어씌우게 되는데, i를 통해 덮어씌울지 사용자에게 물어봄
디렉토리를 복사할 때는 꼭 r 옵션을 써야 함
-> 그냥 디렉토리 삭제하면 오류나므로 r옵션과 함께 써줘야 함 (하위 요소들도 모두 지운다는 뜻)
-> ri옵션을 통해 각 하위요소들과 해당 디렉토리를 모두 다 지울 것인지 확인함
디렉토리를 삭제할 때는 꼭 r 옵션을 써야 함
: CLI환경에서 커맨드를 통해 외부 프로그램을 설치할 수 있다. 하지만, 환경에 따라 사용하는 커맨드가 달라진다.
외부 프로그램 설치 전 apt update
: 인터넷에서 외부 프로그램의 최신 정보 가져옴
-> 외부 프로그램 설치 전 꼭 해줘야 함
-> 하지만, 관리자 권한이 아니라 오류가 난다. 관리자 권한을 획득해야 함
sudo apt update
프로그램 설치
: 잠시 관리자 권한을 획득하기 위한 커맨드
-> 특히, 설치 작업을 할 때 필요한 경우가 많음
윈도우 파일은 '/mnt/c'에 존재!
: wsl은 위에서 말했듯, 윈도우에서 유닉스 커맨드를 사용하기 위한 툴로, wsl는 윈도우 안에 존재하는 '하위 시스템'이므로 리눅스 환경에서 윈도우 파일에 쉽게 접근할 수 있다.
-> 가상 머신이나 듀얼 부팅인 경우에는 별도의 리눅스 환경이 세팅되는 것이므로 윈도우 파일에 접근이 어렵다.
https://www.codeit.kr/topics/practical-unix-commands/lessons/4925
-> 위의 링크에 powershell 사용법에 대한 내용이 있다.
powershell: 윈도우 전용 커맨드라인 툴
-> 시스템 관리, 자동화, 개발 등 다양한 작업 할 수 있음
-> cmdlet: 동작과 대상 사이에 '-'
cmd (Command Prompt) : 윈도우 전용 커맨드라인 툴
-> powershell에 비해 기능이 적다.
: 컴퓨터에서 코드를 통해 명령을 실행하는 것이 cli환경이다. 그런데 대부분 많은 운영체제가 유닉스에 기반을 두고 있어 유닉스 커맨드 라인을 사용한다. 그래서 이 시간에는 다양한 커맨드들에 대해서 배워보았다. 특히 디렉토리나 파일과 관련된 커맨드들에 대해서 배워보았다. 파일 경로들에 대해서도 익혔다. 커맨드+옵션+아규먼트 구성으로 되어있고 커맨드들로는 ls(현재 파일의 정보),pwd, cd, mkdir, rm, cp, mv(디렉토리는 무조건 -r옵션과 함께), vim(작성) 등이 있다. 그래서 각 커맨드들의 사용 방법에 대해서 익혀보았다. 그리고 마지막으로 윈도우의 커맨드라인 툴인 powershell에 대해서 알아보았다. 유닉스 커맨드 라인이랑은 조금 차이가 있다. 위의 명령어들을 모두 외울 필요는 없지만 필요할 때 찾아서 쓰면된다.