All Articles

wecode 3주차_1일 TIL_Linux의 기초를 알아보자

image.png 까만 터미널이 무서워서 색깔을 입혀본 나의 터미널쓰.. 터미널 너무 무서워서 싫어하는데… 개발 하려면 이제는 친해져야겠지! 하는 의미에서 써보는 포스팅 ㅠㅠ

Linux

대부분의 서버가 linux로 되어 있어서 개발하는 사람들이라면 짱짱 중요한 운영체제.( window는 서버로 잘 안쓴다고 한다.. 열일해라 윈도우). 일단 리눅스를 피할수없는 운명이므로…

  1. 잘 알아야하고
  2. 반복적으로 써서 익숙해져야 한다!

image.png(Linus Torvals)

리눅스는 1991년도에 Linus Torvals가 개발함. 리눅스를 개발한것 치고는 연봉이 6만 5천불 정도..!???? 원래는 더 받을 능력이 있지만 그냥 이 사람은 개발이 좋아서 하는 것… 대단쓰..!! 리눅스 말고 깃도 만들었는데 돈은 깃허브가 다 가져가네~~ 와우 ㅋㅋ

리눅스의 뿌리는 유닉스. 뿌리가 깊기 때문에 처음부터 끝까지 알긴 어렵고,.. 리눅스 전문 직군도 따로 있음! 그 정도로 학문의 깊이가 깊음 그러니까 우리는 개발자 선에서 필요한 정도만 알고 있으면 됨.

  • 리눅스의 디렉토리 구조
  • path
  • 설정

오늘 포스팅에선 이 정도를 살펴보려고 한다!

리눅스의 file system

리눅스는 기본적인 폴더 구조는 트리형태! /가 각각의 directory를 나타낸다. 윈도우에서는 \ 백슬러시. 디렉토리 구조는 두 가지 형태로 나뉘는데…

  1. 시스템 디렉토리 운영체제 관련한 것들이 담김.
  2. 유저 디렉토리 홈 디렉토리를 말한다.

ex) 유저 디렉토리 이동방법 활용쓰

  • cd / 입력시 홈 디렉토리로 이동~
  • cd만 치고 아무 것도 안 치면 홈 디렉토리로 이동!
  • ~(틸다) 치면 홈디렉토리로 감

(틸다라는 용어를 알았으니 이제붙턴 물결말고 틸다를 자주 써줘야겠다! 내가 아는 틸다는 틸다스윈튼밖에…☆)

경로

  1. 절대경로 내 위치랑 상관없이 절대적인 경로. root부터 타고 감.
  2. 상대경로 내 위치에 따라 움직임. . : 현재 내 위치 ..: 현재 내 위치보다 더 상위 디렉토리 ./: 같은 폴더안에 있다!

이거 진짜 왕 중요!! 터미널이나 비주얼 스튜디오에서 진짜진짜 자주 쓴다. 아직 헷갈려서 쳐보면서 확인하는데.. 한번 정리해놨으니 이제는 기억하겠지!

ex) cd ./temp 현재 내가 위치해있는 디렉토리 내부의 temp 디렉토리.

설정(configs)

우리가 코드 치면서 자주 보는 config file… 이건 환경을 설정하다라는 의미의 configure의 줄임말 이였다! 여튼 리눅스에서의 설정은 주로 파일을 통해서 하는데, 크게 시스템 설정과 유저 설정으로 나눠볼 수 있다.

  1. 시스템 설정 -> 어려우니까 다음기회에 정리할 예정쓰!
  2. 유저 설정 -> file에 있는 값들을 바꿔서 설정을 해줌.

다양한 설정파일들이 있는데… 그 중 제일 중요한건 shell이다! 우리는 보통 설정을 터미널 창을 통해 하게 되는데.. 그렇다면 shell가 terminal은 무슨 차이일까! shell이 회장님, terminal은 비서라고 생각하면 쉬울 것 같다.

사용자가 terminal에 명령어를 입력하면 그 명령어를 받아서 운영체제에 전달해주고, 운영체제가 그걸 실행시키면 결과값을 다시 전송하는게 바로 shell이 하는 역할이다. 이렇게 shell은 유저와 운영체제간의 중간다리 역할을 한다!!

shell의 종류도 여러가지가 있는데..

  • bash : 내가 윈도우 시절에 썼던 git bash 같은 애들
  • z shell(Zsh) : 요즘 핫한 shell. 터미널을 예쁘게 꾸밀수도 있고, 유용한 명령어가 많아서 생산성을 높일 수 있음.

shell 설정을 하려면.. 예를 들어 Zsh을 깐다고 생각해보자! 홈 디렉토리에 있지만 우리 눈엔 안 보인다… 착한 사람 눈에만 보인다 ㅎ zshrc파일은 .으로 시작되는 숨겨진 파일이라서 ls -a라는 명령어를 입력하면 그제서야 볼 수 있다!

환경변수(path environment variable)

환경변수란 linux라는 운영체제의 환경설정값을 저장하고 있는 변수를 말한다.(여기서 환경은 shell을 말한다.) 이렇게 말하면 잘 이해가 가지 않으니 예를 들어보겠다!!!

cd 우리가 자주 쓰는 이 명령어 cd는 놀랍게도 프로그램이다. 이미 경로설정이 잘 됭있기 때문에 path를 입력하지 않고 cd만 쳐도 실행이 되는것…! 넘나 씐기~ 그 밖에도… ls, mv, cp, cat, less, tail, nohup, rm, mkdir, clear, pwd, chown, grep, history,ps path 설정이 잘 되어있는 이러한 명령어들이 있다!

우리가 프로그램을 새로 설치했을 때 실행이 잘 안 될 경우가 있는데, 그건 바로 path 설정이 제대로 안 되어 있어서이다 ㅠㅠ 나도 이번에 eslint를 설치하느라 고생을 넘 많이 했는데 그게 다 path설정 때문에 발생한 문제였구나…

환경변수를 설정하는 방법에 대해서는 다음 기회에 저 명령어들과 함께 다룰 예정!!