Terminal 명령어 1

Joshua Kim·2022년 9월 9일
0

terminal

목록 보기
3/6

Terminal 정의 조금 더??

맥에서 우리는 Terminal을 쓴다. Terminal은 '커맨드라인 인터페이스(CLI)' 가 물리적으로 구현된 것이다.

CLI: 오로지 문자열로만 이루어진 인터페이스. 사진이나 문자를 출력하는 것은 불가능하다.

맥에서 기본적으로 사용하는 터미널은 정확히 '가상 터미널 기계'라고 한다. 터미널 말고도 개발자들은 iterm2 라는 CLI 구현체를 사용하기도 한다. 왜 굳이 그런 귀찮은 짓을...

REPL 라고 불리기도 한다고 한다. REPL 은 Read-Eval-Print-Loop 이라고 한다. Terminal 말고도, Python에서 나오는 기본적인 idle shell 을 생각해보면

  • 사용자가 입력
  • 프로그램이 계산
  • 결과 출력
  • 그다음에 처음으로 돌아가서 계속 반복

하는 과정을 거친다.

가상??

프로그래밍을 하다보면 온갖 곳에서 '가상'이라는 단어를 보게 된다. Terminal과 관련이 있는 것 같기도 하고, 아닌것 같기도 해서 이번 기회에 정리하고 가면 더 좋을 것 같다.

가상머신: 하드웨어를 소프트웨어적으로 구현해서 그 위에서 운영체제가 작동되도록 하는 기술

잘 이해가 안되서 혼자 그림을 그려보았다.

장점이 무엇일까?

물리적으로 돌아가는 컴퓨터와는 달리, 소프트웨어로 컴퓨터를 구현하면 우리는 god이 될 수 있다.

예를 들어서 12일에 컴퓨터에 오류가 생겼다 치자. 우리는 컴퓨터를 고치러 서비스 센터에 가겠지만, 만약 가상환경을 사용했다면 시간을 그 전으로 돌리면 된다!!! 가상환경은 소프트웨어, 즉 우리의 손아귀에서 돌아가기 때문이다. 바이러스 회피나 백업 같은 측면에서 유리하다.

그리고 하나의 컴퓨터에서 여러개의 독립적인 가상환경을 만들 수 있으므로(안될 이유가 없죠? 우리가 god이니까)만약 우리가 맥을 쓰고있다면, 리눅스와 윈도우의 가상환경을 만들어서 쾌적한 인생을 달성할 수있다.

물론 진짜 god이 되는 건 아니다. 당연히 실제 컴퓨터에서 운영체제를 돌리는 것보다 성능적으로 훨씬 열화가 될 것이다.

실제로 우리 삶에서 쓰이는 소프트웨어들을 보면 컴퓨터에서 모바일 게임을 할 수 있게 만드는 블루스택, 아니면 맥에서 윈도우 돌릴 수 있게 해주는 패러렐즈 등이 있다.

아나콘다 같은 환경은 파이썬 한정으로만 편리하게 쓸 수 있는 가상환경이다. 나같은 초보들은 뭐가 뭔지 몰라서 패키지 같은 것들을 일단 막 설치해보기 십상이다. 그러다보면 버젼이나 호환성 면에서 문제가 생기지 않을까. 가상환경은 이같은 문제들을 해결해 줄 수 있을 것 같다.

아직은 안해보았지만, 시간 나면 해봐야겠다. 개인적으로 공창컴 수업에서 아나콘다 썼으면 재밌지 않았을까 싶다.

밑은 나중에 라고 하고 절대 안하겠지만 할 파이썬 가상머신 튜토리얼.

사실 인터넷 돌아다니다 보니, 가상환경도 에뮬레이션, 가상화, 반가상화등으로 나뉜다고 하는데, 거기까지는 이해를 못하겠어서 이렇게 엉성한 설명밖에는 못하겠다. 나중에 다시 시간되면 이해하기 위해 이렇게 링크를 남겨놓는다.

명령어

사실 명령어 먼저 들어갈려고 했는데 앞에서 너무 힘을 빼버렸다;
간단하게 가보자.

경로

그에 앞서서 일단 경로에 대해 알아보자.

위키백과 왈)

경로 또는 패스(path)는 파일이나 디렉터리의 일반적인 형태로서 파일 시스템에서 고유한 위치를 지정한다. 경로는 문자열로 표현되는 디렉터리 트리 계층을 따라 시스템 위치를 가리키며 여기에서 구분자로 분리되는 경로 구성 요소를 통해 각각의 디렉터리를 대표하게 된다. 구분 문자는 대체적으로 슬래시("/"), 역슬래시 문자("\"), 콜론(":")이지만 일부 운영 체제는 다른 구분 문자를 사용할 수 있다. 경로는 현대 운영 체제에서 일반화된 디렉터리/파일 관계를 표현하기 위해 컴퓨터 과학 분야에 널리 쓰이며 URL의 구성에 필수적이다. 리소스는 절대 경로와 상대 경로로 표현할 수 있다

절대경로: 절대적인 경로

상대경로: 상대적인 경로

농담인 것 같지만 50%는 납득 되는 설명인 것 같다. 컴퓨터마다 파일 시스템은 다르고, 기준점 또한 다르다. 얘를 들어서 내가 docs 폴더에 있다면 경로는 무엇일까?

경로의 기준점이 하드드라이브라면 'C:\user\docs\Letter.txt' 가 될 수 있고, 기준점이 user라면 'docs/Letter.txt'일 것이다.

기준점이 하드드라이브인 경우가 절대경로라고 할 수 있지 않을까?

상대 경로 같은 경우에는, 어떤 기준점을 기준으로 하위 디렉토리에 있으면 'docs/Letter.txt' 같이 선택 가능.

상위 디렉토리에 있으면 '..\user' 같은 느낌으로.

파일 시스템

우리는 컴퓨터 내에 있는 파일들을 사용하기 위해

windows 에서는

mac 에서는

요놈 쓴다. 그렇지만, terminal은 CLI 구현체 이므로 아이콘 같은게 나올 수 없으므로, 명령어를 통해서 파일을 조회해야 한다.

터미널 안녕?

pwd를 써서 현재 경로를 한번 봐보자. 일반적으로 맥에선 사용자 디렉토리에서 시작한다고 한다. users/<user_name> 이런 식으로?

맥이나 리눅스에서는 경로의 구분자를 /로 쓴다. 윈도우나 다른 운영체제나 궁금하다고?

여기있는 %은 프롬프트를 의미한다. 쉘마다 생김새 달라질 수있는데, 파이썬 idle 쉘에선 >>>로 보인다.

파일 관리자 처럼 파일 내를 왔다리 갔다리 해볼까?

cd Desktop <- 상대 경로.

cd /Users/joshua <- 절대 경로

ls 를 하면 현재 디렉토리에서 무슨 파일이 있는 지를 보여준다.

ls -l 로 하면 더 멋있게 보여준다.

- 는 flag라고 부름.

Flags are used to modify the behavior of a command. For example ls -a , -a tells the ls executable to list all files in the directoy, including hidden ones. Flags are also called OPTIONS.

다른 의미로 옵션이라고도 한덴다. ls 에 옵션 여러개 더있지만 시간상 생략.

오늘은 여기서 끝!

)참고 문헌

profile
정시템 22 김예준

0개의 댓글