본문 바로가기

Roadmap

OS and General Knowledge - 1

OS?

OS(Operating System)은 컴퓨터에서 실행되는 가장 중요한 소프트웨어이다. 메모리와 프로세스는 물론 모든 소프트웨어와 하드웨어를 관리하며 컴퓨터 언어를 구사할 수 있는 방법을 몰라도 우리는 컴퓨터를 사용할 수 있다.

대부분의 경우 여러 프로그램이 동시에 실행되고 있으며 모두 컴퓨터의 CPU(Central Processing Unit), 메모리 및 저장소에 접근해야 한다. OS는 이 모든 것을 조정하여 각 프로그램에 필요한 것을 할당한다.

우리가 잘 아는 대표적인 OS로는 Windows, Linux, mac os 등이 있으며 보통 GUI(Graphical User Interface) 환경을 제공한다. GUI 환경은 마우스를 사용하여 아이콘, 버튼, 메뉴 등을 클릭할 수 있으며 모든 것이 그래픽과 텍스트의 조합을 사용하여 화면에 명확하게 표기된다. CLI(Command Line Interface)는 window의 cmd나 linux, mac os의 terminal이 대표적이며 TUI(Text User Interface)환경은 linux의 vi 에디터가 대표적으로 키보드만을 사용하여 입력할 수 있다.

위에서 언급된 OS는 모두 PC용 OS로 모바일 용 OS로는 Android, iOS 등이 있다.

 

Terminal Usage

GUI를 사용하면 일상적인 작업에서 편리하며 별다른 지식 없이도 컴퓨터를 이용할 수 있지만 반복적이거나 OS에 대한 작업의 경우 텍스트 명령을 직접 입력하는 것이 좋다. 터미널을 사용하면 디렉토리를 탐색하거나 파일을 복사하는 것과 같은 작업을 수행하기 위해 컴퓨터에 간단한 텍스트 명령으로 처리할 수 있으며 복잡한 자동화 및 프로그래밍 기술의 기초를 형성할 수 있다.

 

 

간단한 터미널 명령어(windows 기준)

우선 터미널을 실행하기 위해서는

1. 검색 -> 명령 프롬프트

 

2. win + r -> cmd 입력

win + r을 누르면 보통 좌측 하단에 실행창이 열린다.

(win key는 키보드 좌측 하단 Ctrl key와 Alt key 사이)

3. 디렉토리에서 실행

가끔 파일이 위치한 디렉토리에서 명령 프롬프트를 열고 싶은데 잘 모르셔서 cd ~~~~ 하시는 분들이 있어서 기록한다.

디렉토리에서 그냥 우클릭 했을 경우

 

디렉토리에서 shift key + 우클릭 했을 경우

 

2번째 사진처럼 디렉토리에서 Shift key + 마우스 우클릭을 하면 그 위치에서 PowerShell을 열 수 있다.

 

더 많은 경우가 있겠지만 필자가 주로 사용하는 방법들을 나열하였다.

 

이제 터미널을 열었으니 정말 간단한 명령어 몇 가지만 소개하려 한다.

1. cd 터미널 내에서 디렉토리를 이동할 수 있다.

cd와 함께 이동할 디렉토리 명을 입력하면 이동이 가능하며 (..)은 상대 경로로서 한 단계 위로 벗어날 수 있다.

 

2. ipconfig

ipconfig는 자신의 컴퓨터가 연결된 네트워크 및 ip주소를 알 수 있다.

3. ping

사용법은 ping 주소 -t로 다른 유용한 사용처가 많겠지만 필자는 패킷이 잘 가는지 테스트하는데 쓴다.

종료는 Ctrl + c

 

4. netstat

netstat는 프로토콜, 주소, 외부로 나가는 주소, 현재 상태 등을 알 수 있으며 옵션에 따라 사용법이 무궁무진하다. 필자는 죽어있는 pid나 혹시 모르게 열려있는 port를 찾을 때 사용한다.

 

4개밖에 소개를 안 했지만 cmd에서 help라고 입력하면 엄청나게 많은 명령어들이 있다. 물론 나중에는 윈도우보다 리눅스에서 더 많이 작업하겠지만 백엔드든 프론드엔드든 터미널 환경에 익숙해지는 것은 나쁘지 않다. 아니, 좋다.

'Roadmap' 카테고리의 다른 글

OS and General Knowledge - 3  (0) 2022.02.03
OS and General Knowledge - 2  (0) 2022.01.26
Basic Frontend Knowledge - JavaScript  (0) 2022.01.24
Basic Frontend Knowledge - CSS  (0) 2022.01.21
Basic Frontend Knowledge - HTML  (0) 2022.01.20