Linux / Git

Kim-DaHam·2023년 2월 24일
0

🔥 학습 목표

  • 리눅스 터미널을 실행하고 기본적인 명령어를 사용할 수 있다.
  • node 명령어를 이용해 Node.js 런타임에서 JavaScript 파일을 실행할 수 있다.
  • Git/Github 이해하기

우리에겐 멋진 GUI 에디터가 다양히 존재하지만, 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 하는 경우가 있다. 따라서 터미널에서 에디터를 자유자재로 다룰 수 있도록 연습해야 한다.



🟩 CLI(Command-Line Interface)

입력하는 글자와 출력되는 글자로 컴퓨터와 소통하는 방식

🟣 CLI 명령어

⬜ 프롬프트(Prompt)

터미널에서 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간.

⬜ 기본 명령어

pwd : 현재 위치 확인하기
mkdir : 새로운 폴더 생성하기
ls : 특정 폴더에 포함된 파일이나 폴더 확인하기

  • ls -l : 파일의 포맷을 전부 표현. 폴더일 경우 drwxr-xr-x 파일인 경우 -rw-r--r--
  • ls -a : all 의 의미. 숨어있는 폴더나 파일을 포함한 모든 항목 출력
  • ls -al 또는 ls -la : 위 두 개 옵션을 모두 적용. 둘 다 똑같은 의미.

cd: 폴더에 진입
touch : 파일 생성하기 Ex) touch hi.txt
cat : 파일의 내용을 터미널에 출력하기
rm : 폴더나 파일 삭제하기

  • rm 은 단일 파일만 삭제할 수 있다.
  • rm -rf 으로 폴더 삭제 가능

mv : 폴더나 파일의 이름 변경 / 위치 옮기기

  • mv bye.txt bye/ : bye 폴더로 이동
  • mv bye.txt helloWorld.txt : bye.txt 이름을 helloWorld.txt로 변경

cp : 폴더나 파일 복사하기

  • cp [원본 파일 이름] [복사할 파일 이름]



🟣 관리자 권한과 경로

⬜ 절대 경로와 상대 경로

  • / : root
  • . : 현재 위치 ./ "현재 폴더 아래의"라는 뜻.
  • .. : 현재 위치 기준 한 단계 상위 폴더

⬜ 관리자 권한 획득 명령어 : sudo



🟣 텍스트 에디터 nano

⬜ nano 실행

nano 파일이름
  • CLI에서 코드 파일을 연다.
  • code hello.js 로 GUI 에디터 VScode를 여는 것과 같다.
  • ctrl+x : 종료



🟩 WSL2

🟣 Window에서 리눅스 환경 설정

⬜ 윈도우에서 WSL2로 Ubuntu 사용하기

설치 방법은 아래를 참고하였다.
🎁 wsl2 설치하기

⬜ 홈 디렉토리 위치

위와 같이 우분투 환경을 만들어주고 pwd 명령어를 입력하면 현재 위치인 홈 디렉토리가 나타난다. 보통은 home/Username 이다. ls -al 명령어를 실행하면 홈 디렉토리에 저장 된 파일들이 나타난다.

홈 디렉토리란 리눅스의 독립 공간이다. 멀티 유저 시스템에선 사용자마다 독립적인 공간을 제공하여 파일을 저장하도록 한다.

홈 디렉토리 경로는 운영체제마다 다르게 보인다. 리눅스에서 home/User 처럼 보이고, 윈도우에서는 C:\Users/User 와 같이 보인다.

⬜ 리눅스 드라이브 이동

그럼 C 드라이브 말고, 다른 드라이브로 이동은 어떻게 할까?

df -h 명령어를 입력하면 마운트 된 리눅스의 전체 시스템 디스크 사용량을 볼 수 있다.

만약 D드라이브로 이동하고 싶다면 D:\ 의 Mounted on 에 적힌 경로를 사용하면 된다. 나의 경우 cd /mnt/d 와 같이 입력하면 D 드라이브로 이동한다.

⬜ VScode에서 WSL 파일 연동하기

🎁 VScode WSL 연동
🎁 더 자세히

하지만 난 과제를 할 때 CLI로 js 파일 코드를 수정하기 싫었다...

그래서 위 참고 링크를 통하여 VScode에서 WSL 파일을 탐색/수정할 수 있게 만들었다. 폴더 위치를 열고 리눅스 우분투 터미널을 오픈하여 편하게 js파일을 수정할 수 있다.



🟣 패키지와 패키지매니저

⬜ Ubuntu OS 에서의 명령어

apt 명령어

  • apt update : 패키지 최신 정보 갱신. 관리자 권한 필요
  • apt list --upgrade : 업그레이드 가능한 패키지 목록 출력
  • apt upgrade : 전체 패키지 업그레이드. 관리자 권한 필요
  • apt --only-upgrade install 패키지 이름 : 특정 패키지만 업그레이드. 관리자 권한 필요
  • apt install 패키지 이름 : 패키지 설치. 관리자 권한 필요
  • apt list --installed : 설치된 패키지 보기
  • apt search 검색어 : 패키지 검색
  • apt show 패키지 이름 : 패키지 정보 확인
  • apt remove 패키지 이름 : 패키지 삭제. 관리자 권한 필요



🟣 Node.js

런타임(runtime)

어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳. 프로그래밍 언어가 실행되는 환경.

Node.js

JavaScript 런타임

⬜ nvm(Node Version Manager)

wget 설치

URL을 통해 파일을 다운로드하는 프로그램.

 wget -O goodjob.txt https://bit.ly/37sJqCo 

nvm 설치

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Node.js 설치

nvm install --lts // lts 버전의 Node.js 설치
node -v // 버전 확인

Node.js로 JavaScript 파일 실행하기

node helloWorld.js

pakage.json 생성하기

npm init



📔 오늘의 후기

  • 사실 리눅스 사용은 내게 어려운 일이었다. 일단 환경을 세팅 자체를 잘 이해하지 못 했었다. 그래서 그냥 덮어두고만 있던 거였는데... 이제 피할 길도 없으니 제대로 알아보자. 해서 여러 설치방법을 다 따라해보고, 기반을 이해하고, 내게 가장 간편한 wsl 을 최종 선택하였다. 명령어도 매번 기억이 안 나서 하나하나 검색했었는데 블로그에 한 번에 정리해두니까 기억도 오래 남을 거 같고 꺼내 쓰기 간편한 것 같다^^.
  • 코드스테이츠 과제를 하면서 자바스크립트 TDD(테스트 주도 개발)에 대해 관심이 무척 많아졌다. 사실 작년에 프로젝트 팀장님이 요즘은 이렇게 한다더라~ 하고 알려주셨는데, 나에게 TDD란 그냥 지난날 전공 책에서 스쳐지나가다 본 단어에 불과했고, 그땐 단기간에 프로젝트 완성하기에 바빠서 제대로 공부할 일이 없었다. 근데 코드스테이츠에서 제공한 테스트 검사를 실행해 보니까 나도 이렇게 직접 테스트 하면서 개발하고 싶다는 생각이 들었다... 검색하니까 Jest 라는 걸 사용해야 하는데 차근히 알아봐야겠다.
profile
다 하자

0개의 댓글