ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 우분투 탐방기 - 아무튼 무언갈 깔짝여보자
    기록 2024. 1. 21. 06:30

    https://goldenrabbit.co.kr/2023/05/31/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%95%84%EC%88%98-%EB%AA%85%EB%A0%B9%EC%96%B4-21/

     

    백엔드 개발자를 위한 리눅스 필수 명령어 21 - 골든래빗

    제어할 수 없는 것에 의존하면 변화에 민감한, 흔들리기 쉬운 소프트웨어가 됩니다. 반대로 프로그래머는 설계를 하는 데 있어 외부에 의존하는 영역을 줄일수록 큰 변화에도 쉽게 흔들리지 않

    goldenrabbit.co.kr

     

    구글링을 하면서 우분투 터미널에서 필요한 명령어들이 뭐가 있을까 하면서 찾아보다가

    우연히 위 웹페이지를 찾게 되어, 할 수 있는 부분은 따라해보기로 하였다.

    물론 전혀 생소한 명령어부터...?

     

    ifconfig 명령어 입력 결과... 또 apt install의 시간이 왔다...

    라고 하는 순간 또 없는 것을 찾게 되었다...

    그러나 apt install net-tools 명령을 치면서 다음과 같은 결과가 출력된 것을 보면... 그냥 root 계정으로 올라가서 설치해야겠구나... 싶다...

    언어를 한글로 설정해서 그런가? 설치과정을 보여주는 메세지도 한글로 출력된다. 그리고 눈에 띄는 "204 k바이트"......
    net-tools 패키지 설치 후 ifconfig 명령 실행 결과

    inet6이나 ether는... 아무래도 버츄얼박스를 돌리는 데스크탑이 이더넷 연결이다보니

    우분투에서의 인터넷도 영향 있지 않을까 싶어 임의로 중간에 마스킹을 하였다.

    그러나 원래 데스크탑에서 Windows PowerShell에서의 ipconfig을 입력하였을 때 나오는

    링크-로컬 IPv6 주소와는 다른 걸 보면 다른건가... 싶기도...?

     

    앞서 언급한 PowerShell(파란바탕)에서의 ps, 그리고 우분투 터미널(자주색)에서의 ps

    ps 명령어는 간단하게도 "ProcesS"에서 따온 명령어였다. Problem Solving이 아니다. "추신"은 더더욱 아니고.

    다행히도 파워셸에서도 ps 명령어는 동일한 기능을 가진 명령어이기도 하고,

    백준 온라인 저지 문제를 풀 때, 모종의 오류로 실행하지 못할 때

    위와 같이 프로세스 목록 열람 --> taskkill 명령어를 통한 강제종료 로 해결을 몇 번 하기도 했으니 그렇게까지 생소한 명령어는 아니었다.

    다시 보니 kill이라는 리눅스 명령어가 이에 해당하는 것 같다.

     

    윈도 환경에서는 당연히 가상머신을 돌리고 있는 VirtualBox나 VirtualBoxVM 등 여러 프로세스가 동작하는 것을 확인할 수 있으며,

    우분투 환경에서는 터미널에서 명령어만 깔짝대서 그런가? bash 와 ps 단 두 개의 프로세스만 확인할 수 있었다.

    잠깐, 그렇다는 건 우분투 환경에서 다른 것을 실행하면 ps에서도 나오나...?

    그래서 파이어폭스로 유투브를 틀었는데... 음... 뭐지...?

    https://youtu.be/Kt3Da1pXsaw?si=uEMUu5cylGXTwL0w

    재생한 곡은 ZATOX - FOR EVER, 2018년 월디페 당시에 마무리를 장식했던 곡으로 아직도 여운이 깊었던 개인적인 하드스타일 명곡......

    이 문제가 아니고 재생 속도가 1.25배속으로 재생이 되는 것 같기도...? 다행히 수 분 뒤에 기본 1배속으로 돌아오긴 했는데 뭐지 이 찜찜한 기분은...?

    그리고 ps 명령어를 입력해도 파이어폭스와 같은 건 보이지도 않은데... 어......

    이 문제는 다음에 찾아보기로 하자...?

     

    그러고보니 프로그래밍이 잘 되나? 싶어 작성한 간단한 C언어 프로그램 그리고 컴파일 결과... 망...?

    그냥 단순하게 a라는 정수형 변수에 1을 설정하고, 이를 출력만 하면 되는 간단한 프로그램... 을 기대하였으나

    엥 뭐지? 이거 맞나...? 뭔가 잘못된 과정인 건가 싶어서 이전에 활용한 노트를 보며 다시 시도하였다.

     

    아...!

    아 맞다 출력 결과 파일은 기본적으로 "a.out"이라는 파일이지만,

    " ./a.out " 이라고 입력해야 이와 같이 정상적으로 출력 결과가 나오는 걸 잊고 있었다...

    그렇다면 역시 '그것'... 해야겠지...?

     

    모든 프로그래머들이 한 번 씩은 거쳐가는 그 문장, "Hello, world!"
    터미널 창에 선명히 드러난 안녕, 세상아!

    "Hello, world!" 이 한 문장을 출력하기 위해서는

    오타 없이 작성한 프로그래머의 정확한 소스 코드와 컴퓨터에서 진행되는 컴파일 과정을 거쳐야 비로소 빛을 보는 그 한 문장

    쓸데없이 철학적인가...?

    C언어에서 생소한 unistd.h 헤더와 write 함수. 혹시 "당신"은 아는가?

    물론 unistd.h 헤더와 write 함수를 이용하여 Hello, world! (개행 포함)를 출력하는 것 또한 가능했다.

    이 헤더에서는 리눅스 환경에서 사용하되, 윈도우에서는 사용하지 않는 헤더파일이기에

    윈도우 환경에 익숙하다면 아마 처음 접하는 헤더가 아닐까 싶다.

    물론 리눅스 환경을 다루게 된다던지 하는 사례도 있겠지만 아마 비교적 많은 사람들이 이 헤더를 알게 되는 경험이 있을 것이라 생각한다. 이 이야기도 언제 한 번 할 수 있을지?

    이번에는 C++ 언어로?

    그리고 알고리즘 문제 풀 때 주력으로 쓰는 C++ 언어로 Hello, world!를 출력하고자 한다.

    물론 << endl가 아닌 \n 개행을 쓰는 이유는 음... 버릇 때문인 것 같다. 이 또한 나중에 짧게 언급해볼까?

     

    (대충 아무튼 컴파일 안됨요 ㅇㅇㅅㄱ 라는 내용들)

    (우분투 기본 내장) gcc가 C언어만 컴파일이 되는건가? 분명 지원하지 않나...? C++이 안되는 건지, 아니면 다른 명령어로 컴파일을 해야하는지...

    는 구글에 검색한 결과, gcc가 아닌 g++ 이라는 명령어로 해야 하며, 또 설치해야 한다... 라는 답변을 얻을 수 있었다.

    https://yoonchang.tistory.com/9

     

    Linux환경에서 gcc로 C, C++ 컴파일하기

    [주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 GCC란? GNU Compiler Collection 줄여서 GCC라 한다. 원래

    yoonchang.tistory.com

     

    물론 위 블로그에서 gcc 명령어 뒤에 -lstdc++ 옵션을 넣어보라고 하셨는데

    진짜 아무것도 안했다. -lstdc++ 옵션을 넣는 것 말고는......

    ...... 이게 왜 되는거지??? 싶을 정도로 간단히 해결 가능한 문제였다.

    그리고 g++ 명령어로 c++ 소스파일 컴파일 후 실행. 와 된다!

    그러나 이 우분투에서 C나 C++ 프로그램 소스를 짜는 일은 없었다. 그럴바엔 윈도 환경에서 하지

    애초에 가상머신에서 우분투 운영체제를 설치하고, 터미널을 돌리는 목적이

    윈도우가 아닌 리눅스 환경에서 터미널 깔짝이면서 운영체제, 네트워크 등 여러가지를 실습해보려는 목적으로 시작한 것이기에

    목적이 생기지 않는 한 예를 들어서 리눅스 환경에서도 git 좀 깔짝여볼까? 하는 것 아닌 이상

    윈도우에서 충분히 되는데 우분투에서 굳이 뭘 하지는 않을 것 같기도 하다. (ex. 유투브 - 브금용도 등등)

     

    가능하다면 최종 목적으로는 우리 학교 운영체제 과목의 과제였던 NachOS 프로젝트.

    https://homes.cs.washington.edu/~tom/nachos/

     

    Nachos

     

    homes.cs.washington.edu

     

    Nachos OS project는 운영체제 실습을 위해 만들어졌으며, 현재까지도 국내의 다양한 대학들에서 실시하고 있는 과제 프로젝트이기도 합니다. 그러니까 운영체제 실습에 있어 수학의 정석 같은 느낌인가...?

    물론 제가 당시 운영체제 강의를 들었을 당시에는, (군복무로 인하여) 포맷된 머리와, 리눅스 환경에서의 경험이 전무하여 결국 팀원 분께 큰 부담을 드리게 된 개인적으로는 부끄럽고 아쉬웠던 과제였지만

    이후에 임베디드 과목과 졸업 후 짧은 경험을 통해 어느정도 이해하게 된 현재 시점에서 시도해 보면 어떨까? 하는 생각에 도전해보고 싶은 생각도 들기도 하네요.

     

    근데 이거 쓰고 또 구글링 해보니까 다른 실습하시던 분은 아예 우분투 OS 버전도 낮추는 등 좀 뭔가 그시기한게... 우분투 구버전부터 다시 받아야 하나 싶기도 하네요 에이 설마 아니겠지???

Designed by Tistory.