[코드스테이츠] S1.Unit3 회고

JinYoung Choi·2022년 12월 19일
0

새벽에 월드컵 결승전을 보느라 얼마 못자 피곤하고 잠이 조금 쏟아졌다.
오전에 CLI에 대해 공부하고,
점심시간에 그대로 뻗어서 1시간 자고 일어나니 효과가 상당히 좋았고 상쾌한 오후 시간을 보냈다.
WSL2를 설치하다가 WslRegisterDistribution failed with error: 0x80370102 라는 오류가 떠서 헤매다가 구글에 검색해서 바이오스에서 vmx가상화 설정하는것을 따라해 해결했다. 아고라스테이츠에 물어볼까 했는데 검색으로 해결해서 너무 뿌듯했다!
내일부턴 새로운 유닛에 들어가고 페어프로그래밍을 한다고 한다. 모르는 사람들 앞에서 발표나 말하는걸 잘 하지 못해 걱정 되기도한다 하지만 이러한 기회가 아니면 언제 실력을 늘려보겠는가! 노력해서 발전해나가야 겠다.

CLI 기본 명령어

  • 명령줄 인터페이스(Command-Line Interface, CLI) : 명렁어로 컴퓨터를 제어하는 방식
  • 그래픽 사용자 인터페이스(Graphic User Interface) : 그래픽을 통해 컴퓨터를 제어하는 방식

WSL2 : WSL2는 Windows Subsystem for Linux 2의 약자로, Windows에서 리눅스 터미널을 실행할 수 있게 해주는 프로그램

우분투 : 리눅스 OS의 버전 중 하나 ( 무료이기에 잘 쓰임 )

  • 프롬프트(Prompt) : 터미널에서 키보드의 입력을 확인하고 편집할 수 있는 한줄의 공간

CLI 명령어 ( ★중요★ )

  • pwd: 현재 위치 확인하기
    • ex) pwd
  • mkdir: 새로운 폴더 생성하기
    • ex) mkdir helloWorld
  • ls: 특정 폴더에 포함된 파일이나 폴더 확인하기 ( -l , -a , -al or -la 등 옵션을 붙여 사용가능)
    • ex) ls -a 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력
    • ex) ls -l 폴더나 파일의 포맷을 전부 표현
    • ex) ls -la 폴더나 파일의 포맷을 전부 표현하면서 숨어있는 폴더나 파일을 포함한 모든 항목 출력
  • cd: 폴더에 진입하기
    • ex) cd helloWorld
  • touch: 파일 생성하기
    • ex) touch helloworld
  • > : 실행 결과를 파일로 저장하기
    • ex) echo 유어클래스에 가입할 때 사용한 이메일 > hi.txt
    • 명령어 echo는 echo 뒤의 내용을 화면으로 출력해주는 역할
  • cat: 파일의 내용을 터미널에 출력하기
    • ex) cat hi.txt
  • rm: 폴더나 파일 삭제하기 ( -r, -f , -rf 옵션 사용가능 )
    • ex) rm hi.txt
    • rm으로 삭제한 폴더나 파일은 휴지통을 거치지 않고 삭제
    • 옵션 없이 디렉토리 삭제 불가
    • rm -rf 는 디렉토리안 내용물이 있을때 주로 사용
    • rmdir 디렉토리안 내용물이 없을때 사용
  • mv: 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기
    • ex) mv hi.txt ./helloWorld
    • ex) mv hi.txt bye.txt ( 파일이름 변경이용 )
  • cp: 폴더나 파일을 복사하기 ( -r, -f , -rf 옵션 사용가능 )
    • ex) cp helloWorld.txt hiComputer.txt
    • rm과 마찬가지로 디렉토리 복사시 옵션 추가

절대 경로와 상대 경로

절대 경로는 기준점으로부터의 절대적인 위치를 나타낸다, 이 기준점을 루트폴더(/)라고 한다. 정리하면, 절대 경로는 특정 폴더나 파일이 루트 폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지 나타낸다
ex) /home/[username]/helloWorld/hello/

상대 경로는 특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타낸다. 현재 위치한 폴더는 점(.)으로 표현하고, 상위 폴더는 두 개의 점(..)으로 표현한다.
ex) ./hi

관리자(root) 권한

절대 경로의 기준점인 루트폴더(/)는 Linux의 관리자 영역이며 일반 사용자의 권한으로는 어떤 폴더나 파일도 생성, 변경, 삭제할 수 없다.
사용자가 새로운 프로그램을 설치하거나 변경 또는 삭제할 때에는, 관리자 권한이 필요한데, 관리자 권한을 이용할 수 있는 명령어 sudo를 사용한다.

  • sudo: 관리자 권한을 획득하는 명령어 ( 사용시 패스워드를 입력해야함 )
    ex) sudo mkdir sudoMkdir

sudo 명령어를 이용한 폴더 sudoMkdir의 폴더 소유자는 루트인걸 알 수 있다.

텍스트 에디터 nano

  • CLI 환경에서 사용하기 쉬운 에디터
    ex) nano 파일이름
    nano # 그냥 실행할 수도 있음

패키지와 패키지 매니저

리눅스 운영체제의 패키지와 패키지 매니저는 포장된 상품과 온라인 쇼핑몰 같은 역할을 한다.
패키지 매니저는 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구. 패키지 매니저를 스마트폰으로 비유하면, 앱 스토어와 그 역할이 비슷하다.

리눅스 패키지 파일의 구성

  • 프로그램 파일
  • 프로그램 설치 파일
  • 프로그램 설치 설명서
  • 프로그램에 대한 정보를 담은 파일

사용 명령어 : apt

패키지를 설치/삭제 등의 작업을 진행할 때는 sudo 명령어를 이용해서 관리자 권한을 얻어야 함.
ex) sudo apt install wget

사용 권한

user ( owner ) : user는 파일의 소유자 기본적으로 파일을 만든 사람이 소유자가 된다.

group : group에는 여러 user가 포함될 수 있다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다. 많은 사람이 파일에 액세스해야 하는 프로젝트가 있다고 가정할때, 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group 권한을 할당할 수 있다.

other : 파일에 대한 액세스 권한이 있는 다른 user이다. 파일을 만들지 않은 다른 모든 user를 의미한다. 따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있다.

chmod : 권한을 변경하는 명령어

  • chmod를 사용하여 폴더나 파일의 읽기,쓰기,실행 권한을 변경할 수 있다.
  • chmod로 권한을 변경하는 방식 두가지
    • Symbolic method : 더하기(+), 빼기(-), 할당(=)과 액세서(accessor) 유형을 표기해서 변경
    • Absolute form : rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경

환경변수

환경변수는 프로그램의 동작에 영향을 미치는 값들을 의미.

Windows에서는 환경변수를 영구적으로만 설정할 수 있다. 즉, 한 번 설정해두면 사용자가 삭제하지 않는 이상 환경변수가 사라지지 않는다.

profile
백엔드 취준생

0개의 댓글