리눅스(우분투)

리눅스 설치 그리고 기본 명령어 휘갈리깅

e7e 2025. 2. 18. 18:01

리눅스는 유닉스(맥이 유닉스기반, 자바를 맹글었던 선마이크로시스템즈의 솔라리스가 유명)가

넘 비싸던 시절  유닉스를 공부하고 싶었지만, 살 돈이 모자라던 사람들이 모여서

유닉스 동작을 흉네 낸 OS를 맹글면서 시작되었고,

그 리더였던 리누스 토발즈는 오픈소스 단체의 대부로 엄청난 영향력을 행사하고 있고,

GIT도 맹글었디용

 

이제 부터 우분투 리눅스를 떨치할껀데, 이런거이 처음이라면(두번째 부턴 흔한 일!~~) 

마니 낯설수 있지만,  당신은 도전 천재 또쪈! 도전!!!!! 

 

아래 링크를 눌러 우분투(ubuntu desktop) 데스크탑 버젼 다운로드 받기(사이즈가 커 쪼메 시간 걸림)

https://ubuntu.com/download/desktop/thank-you?version=24.04.1&architecture=amd64&lts=true

 

가상 머신 맹글어 주는 오라클 버추얼박스 다운로드, virtualbox 사이트에 접속 

https://www.virtualbox.org

 

 

window에 설치할거라 window용 받고, 확장팩(기능 보완)도 다운로드 받장

 

버추얼 박스를  먼저 설치하공, 확장팩 더블 클릭으로 설치 하안당.

(확장팩은 버추얼박스 실행 후 도구 클릭 -> 확장 선택 -> 설치 선택 -> 파일 선택 해도 됨)

 

만약 VirtualBox 설치 시에 vc++ 어쩌구 저쩌구 메세지가 뜬다면 

microsoft visual c++ 재배포 가능 패키지 다운로드는 아래 링크에서 

https://aka.ms/vs/17/release/vc_redist.x64.exe

를 받아서 설치 후 컴터 재부팅 후  다시 설치하장. (귀차늘수 있당. 인정한당. 나도 잘못이 없당!!)

 

버추얼박스 실행

 

새로 만들기 -> 작성 (다운받은 ubuntu desktop iso 파일 선택)

 

■  하드웨어  메모리/ 프로세서  설정 화면

    메모리가 16G 이상 안되면  하지 않는게 좋다. 최소 8G 정도를 할당하장.

    프로세서 갯수는 대충 절반으로 

 

■ 가상 하드 디스크 설정 (미리 전체 크기 할당)

    25G가 기본값인데  본인 상황에 맞게 늘리장.... 줄이진 말고, 난 50G

■  요약 

    눈으로 휘리릭 확인하고, 완료 누르면 미디어 생성 중 ...  이라 나온다.

    이거이 가상 컴퓨터를 맹글고 있는 거시였던 거시였당.

    후다닥 되는 컴퓨터와 후텁지끈 느리게 되는 컴퓨터가 있었고, 내 껀 후자였땅.

 

끝나면 아래와 같은 화며니 나온당. (추카 추카)

전원을 켜기 전에 설정을 한번 눌러보면 이것 저것 나오는데,

나 가튼 경우는 비디오 메모리가 기본으로 16MB으로 작게 되어 있어서 64M로 올려 주었당.

 

이제 시작을 눌러  새 컴퓨터를 켜보도록 하장

허걱!  아래와 같은 무서운 화면을 난 초대한 적이 없당.~~ ㅠㅠ

 

당황하지 말지어당. 그냥 확인 누르고 , 가상 머신  전원 켜는 중.. 옆의

x도 눌러서 원래 대로 돌아가장....  세상 일이 한번에 잘 안되는 게 많당!..

 

윈도우 탐색기를 열어서 아래 경로로 이동하장. 

C:\Program Files\Oracle\VirtualBox\drivers\vboxsup

거기에 VBoxSup.inf 파일이 이쓸거시당. 그놈을 선택하고

마우스 오른쪽 버튼을 누르면 설치가 보인다. 선택하장

 

디바이스를 변경한단다 다른 선택지는 없다. 허락하장

작업을 완료했단다. (대체 무얼?  에러메세지를 다시 보면 대략 추측각이다)

화긴을 누르고, 컴터를 재부팅하장. (해보니, 재부팅 안하고는 못 이긴당)

 

다행이당. 재 부팅 후 시작하닝, 아까의 무서운 창은 지옥으로 갔당.

아래 화면이 뜨면 그냥 엔터를 괘니 쳐본당.

 

으미 있는 문구당. Try or Install Ubuntu

처음엔 설치 되지 않고, 메모리상에서만 실행 된당. 실행되는 모습을 보고 

맘에 들면 설치 하란 메세지당. 우린 설치 할꺼당.

첫 화면에서 install 글자가 들어간 아이콘이 보이면 그냥 따블 클릭이당.

 

Choose your language:   한국어

Accessibility in Ubuntu    그냥 다음 (관심 없음)

키보드 레이아웃을 선택하십시오:  다음(의심되면 키보드 테스트를 사용한당)

인터넷 연결이 나오면,  유선 연결 사용 상태로 다음

                                     (게스트 OS로 설치하는 거라, 호스트 OS가 연결되었으면 OK)

헉 An update is available for the installer 

                                       그냥 넘어가기엔 맘이 그렇당   Update now 버튼을 누르장

                                       close installer를 누르장

 

 

 

다시 이 아이를 누르장... ㅠㅠ

 

 

 

 

 

이전 단계를 반복한 뒤에 

 

Interactive installation을 선택 후 다음

Default selection을 선택 후 다음

그래픽..., 추가 미디어 ....  체크박스 모두 체크 후 다음

디스크 지우고 Ubuntu 설치 체크된 상태로 다음

계정 설정은 본인만 아는 아이디와 암호 설정 후  다음

      (만약 아무도 없는 집에서 혼자 쓸거라면 , 로그인 할 때 암호 요구 체크 해제)

Seoul 다음

설치 크을릭!~~  한번에 잘 되길~~ 기도하는데 기도가 막힘인가 숨이 막힌다.

지둘림의 시간~~~, 그저 그렇게....

 

코피도 마시고, 스모킹 페스티발도 하고, 발톱도 날이 서도록 다듬었당. 됐당!~~

 

Please remove the installation medium,then press Enter. 

가 화면에 보이면 엔터를 치장. 지금 부터는 설치가 된 우분투당.!!!

 

화면에 아이디가 보이면 마우스로 클릭하공, 암호를 치공 엔터당.

구지 이렇게 까지 할 필요가 있을까 하는 환영합니다 화면이 보인당.

다음 => Skip for now 다음 =>  아니요, 시스템 데이터를 .. 다음 => 마치기 를 누른당.

 

화면 왼쪽 아래  콩 3개를 달고 있는 반지 고리를 누른당.(마우스 올리면 앱표시라고 뜬당)

거기서 설정 => 디스플레이 =>  원하는 해상도를 고른당.(싫음 말공~~)

 

 

 

예전에 한글 설정도 한번 했어야 했는데,

이젠 다 되어 있당. 

화면 오른쪽 상단에

En 이란 곳을 클릭하면

왼쪽과 같은 화면이 보인당.

 

한국어 라디오 버튼을 체크해 둔당.

이제 한/영 버튼을 누르면

한글/영어 토글이 된당. 구시당.

 

 

절대반지(앱표시)를 클릭하고, 터미널을 클릭해서 실행해보장

ls 명령어를 입력해보면 기본 디렉토리 이름들이 한글이당!~~ 오호!~~ NO! NO! NO!

이거슨 참으로 개발자스럽지 못하당. 바꾸장.

터미널에 아래 명령어를 입력한단당.

export LANG=C
xdg-user-dirs-gtk-update

아래와 같은 창이 나타날꺼이당.

이제 ls 명령을 다시 입력해 보면 기본 디렉토리명이 영어로 바뀐 것을 확인 할 수 있당.

맘에 든당. 이제야 개발자 리눅스스럽당.~~

 

 

파이어폭스를 클릭하고, chrome  download를 검색 chrome 설치 파일을

다운로드(확장자 .deb)한 뒤,  설치한당.(친절하게 암호도 묻는당)

앱표시 클릭하면 크롬이 보이고, 클릭해서 실행하장.

기본 브라우져로 선택하고, 자동 전송은 체크 해제하고 확인하장.

대시보드에 크롬이 보이는데, 마우스 오른쪽 버튼을 눌러 

대시보드에 고정하장. (왜 이것만 쓸꺼니깡....)

 

이제 좀 쓸만한 상태가 된 것 같지만, 한가지 더 해야 한당.

OS는 항상 최신 상태로 유지하는 것이 좋당.

터미널을 열어 아래 명령어를 입력하고, 암호도 입력해 주장.

sudo apt update && sudo apt upgrade -y 

## 기다리다 끝나면 아래 명령으로 재부팅!!
sudo reboot

설명을 만나는 일은 너무 서두르지 말장. 다 알게 될 꺼이당.

 

만약 이 상태로 오래 쓸 거라면  게스트 확장CD 도 설치하장. (편리하게 해준당)

 

CD를 넣고 탐색기를 열어보면, 아래 처럼 보인당. 

프로그램 실행을 눌러보면 bzip2 와 tar를 설치하라고 한당... ~~ ㅠㅠ

귀차니즘이당. 그래도 편리하려면 설치해야 한당. 분노를 꾹꾹 누르고, 터미널을 열장.

sudo apt install bzip2

다시 프로그램 실행 을 눌러보장...  음  먼가를 한당..

기다려 본당.  return 누르란당. 누른당.  되었당.   먼가 바뀌었당.

느꼈는강?, 보았는강?.... 느낌 없다면 할 말 업쓰미당. ~~ ^-^

 

아마존 corretto jdk-21 버젼 설치는 아래 링크가 공식 문서

https://docs.aws.amazon.com/corretto/latest/corretto-21-ug/generic-linux-install.html

 

---------------- 알아야 할 용어들 ----------------------------------------------------

Terminal  (또미널), CLI(Command Line Interface)

Absolute Path / Relative Path  (덜대꼉료/상때꼉료)

Environment Variable (환경뼌수)

Shell (쉘 - 명령어해석기)

Pipeline, Redirect, Background (파이프라인, 리다이렉트,빽그라운드)

----------------------------------------------------------------------------------------------

 

apt                             ## advanced package tool , 윈도우 제어판의 프로그램 추가/삭제                        

sudo                            ## manager 권한 필요시 사용

pwd                             ## print working directory

mkdir merong                    ## make directory , option -p

cd  ./merong                    ## change directory

echo $PATH                      ## print on standard out

ls ~                            ## list, option -l -a

clear                           ## screen clear

man  ls                         ## manual

echo "Lovely Roze" > roze       ## output redirect 쭝요

cat  ./roze                     ## concaternate 파일 내용 보기, more

file ./roze                     ## 무신 파일이징?

ls -al | more                   ## | pipe line 쭝요

cp  roze jenni                  ## copy

mv  jenni ..                    ## move 

rm  roze                        ## remove,  option -fR

xeyes                           ## background process & 요기서 썰명 쭝요

ps                              ## process , option -ef

kill  프로세스넘버              ## kill process

xkill                           ## 마우스로 주기고 시픈 윈도우 창 클릭

history                         ## history, !활용

alias babo='ls -al'             ## 별명, unalias

ifconfig  -a                    ## network information

ln -s 원본 바로가깅             ## link 바로가기 맹글기

grep "찾을 문자열" 대상파일     ## 쭝요 

find ./ -name "*.c" | xargs grep -i "printf"       ## 쭝요

tar cvf 원하는이름.tar 묶꼬시픈파일들    ## multiple file -> single file

gzip 압축하고픈파일               ## compress

useradd roze -m                   ## user add

passwd roze                       ## setting roze user password


source 파일명                     ## 실행가능한 파일이어야 함, .의 다른 의미

chmod 777  파일명                 ## 파일 권한 썰쩡  쭝요

chown roze 파일명                 ## 쏘유짜  바꾸깅   쭝요

######################### 왜에? 그냥 #####################################

touch 파일명                    ## 악용 소지가 있음

whoami                          ## 나 대체 누구얌?

which javac                     ## javac 명령어 어디뒀어?

whereis javac                   ## which javac가 normal

tee                             ## 표준 입력을 표준출력과 파일로 echo로도 가능

df -h                           ## 누느로 화긴                          

du -sh  /home                   ## 누느로 그냥 화긴만

sudo apt install build-essential

vi (가장 빠른 에디터)  버젼업 vim 그냥 한번 해보깅 -> 맘에 안들면 xed나 gedit를 쓰면 됨

 

유닉스/리눅스에선 환경변수 PATH를 직접 관리해야 할 일들이 꽤 생긴당.

모르면 문제 해결을 못해 꽤나 좌절 스러울 수 있당.

 

 

새로운 JDK 버젼을 다운 받아고, 이거슬 적용하고 싶다면, 아래 처럼 하면 된당 

 

환경변수 등록법 

터미널을 열면 자동으로 로그인 홈 디레토리 아래의  .bashrc  쉘 파일이 자동으로 실행된당

요걸 이용해서  에디터로 .bashrc 파일을 열고 

xed ~/.bashrc

파일의 맨 뒤에 아래 내용을 추가 한 다음

## 환경변수 JAVA_HOME 등록
export JAVA_HOME="JDK 압축 푼 디렉토리 경로"

## 기존환경변수 PATH에 $JAVA_HOME/bin 추가
## 요걸 해야 javac. java, jar등  명령어를 아무 경로에서도 사용가능!!!
export PATH=$JAVA_HOME/bin:$pATH

터미널을 닫고 새로 열거낭, 아님 아래 처럼 직접 .bashrc 파일을 실행 주켜 준당.

soruce ~/.bashrc

리눅스 아직 익숙치 않다면, 꽤 어렵게 느껴질 수 있지만,

어려운 게 아니공, 아직 낯선거당, 어려운 것과 낯선것은완전 다르당.

낯선건 그저 시간 투자만 좀 더 투자하면  자동 해결 될 뿐이당.   

 

 

JDK 여러 버젼을 설치할 거라면 제공되는 update-alternatives 명령어를 쓰면 좋을 거시당 .

Oracle JDK1.8도 설치해 본당 ( 파일 이미 다운 되어서 /usr/lib/jvm 폴더에 압축 풀려 있어야 해용!) 

$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_202/bin/java" 1

$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_202/bin/javac" 1

#사실 요건 리눅스에선 별로 필요없당!
$ sudo update-alternatives --install "/usr/bin/javaws" "javaw" "/usr/lib/jvm/jdk1.8.0_202/bin/javaw" 1

# sudo update-alternatives --config java  # 여러 버젼 설치하면 요걸로 쉽게 바꾼당

 

 

네트워크 참조

아래 그림을 이해하고 Port Forwarding을 사용해 본당

 

FTP 서버 한번 맹글어 보깅! (요건 할만한 가치가 있음)

Port Forward & Bridged 도 확인!

 

vsftpd 패키지 FTP 서버 설치

## 설치
sudo apt install vsftpd
cd /home

## ftp 서버 root(홈) 디렉토리 만들기 & 누구나 쓰기 권한
sudo mkdir ftproot
sudo chown nobody/nogroup ftproot
sudo chmod a+w ftproot

## 사용자 리스트 파일 맹글고, 현재 사용자 추가
cd /etc
sudo touch vsftpd.userlist
echo $USER | sudo tee -a vsftpd.userlist

 

/etc/vsftpd.conf 설정 파일은 그냥 복사 붙여넣기 (local_root 와 userlist_file 부분만 신경!)

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/home/ftproot
write_enable=YES
local_umask=022
dirmessage_enable=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

 

vsftp 서버 다시 시작 (왜? 설정 파일 고쳤으니깡!)

sudo systemctl restart vsftpd

 

클라이언트에서 테스통,  (put은 보내기, get은 가져오깅!)

[WSL에서 가상머신 우분투에 설치한 ftp 접속은 NAT로는 음... 문제가 있음

=> 방화벽 설정과 싸우다가...  스스로 늪에 빠지고, 발버둥 치다 더 빠지고... 공허!!~~

=> 결국 그냥  Bridged롱]

 

 

Docker 설치

 

아래 링크를 참조 하는 것이 최선이당.

https://docs.docker.com/engine/install/ubuntu/

 

docker 명령 sudo 없이 사용하기

sudo gpasswd -a $USER docker
newgrp docker
docker version

 

 

아래 명령은 linux-mint를 위해 남겨 둔당.

$ sudo apt remove docker docker-engine docker.io containerd runc

$ sudo apt update

$ sudo apt install apt-transport-https

$  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable"  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io

## sudo 없이 docker명령 사용하고픔
$ sudo gpasswd -a $USER docker  ## sudo usermod -aG docker $USER
$ newgrp docker

## logout/login 안되면 재부팅 후, 아래 명령시 server 정보도 출력되어야 함!
$ docker version

 

혹?, 참고용(예전꺼)

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
## 
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable"

 

 

 

어느새 리눅스는 당신 옆으로 성큼 다가오고 말았당.!!

Linux is next to you 

 

https://www.youtube.com/watch?v=mqHxJZSfVuA