9~16/91
  • 2023년 6월

    2023-06-28 15:54:05 6월 14일부터 20일까지 기말고사 기간이었고, 우리 과는 19일까지 시험이 있었다. 그리고 21일에 바로 병원에 입원, 22일에 수술을 받고 왔다. 기말고사 이번 기말고사는 공부한 과목이 진짜 없다. 각 과목 시험 당일 아침에 PDF 잠깐 본 정도가 전부.. 점점 다리가 더 불편해져서 자리에서 일어났다 앉았다 하는 게 힘들어지다 보니 계속 앉아만 있게 되고, 계속 앉아만 있다 보니 너무 지겹고 시간이 안 가서 재밌는 걸 찾게 되고, 재밌는 걸 찾아 하다 보니 공부는 안 하게 되고..^^ 그래서 진짜 이번 학기 학점은 거의 포기하고 있어서 평소에 잘 아는 과목 외에는 C까지 받을 각오를 했는데.. 다행히 B가 최하였다. C언어는 이번 수업만 들었다면 절대 못 따냈을 점수.. 작년에 스터디를 한 게 정말 도움이 많이 됐다. 웹, 해킹은 시험보다 과제로 커버한 과목들.. 이론 문제는 거의 찍은 듯. 그리고 남은 4개의 과목은 전부 C까지 각오한 과목들.. 침차시는 다 같이 망했나 보다.. 66점이 92까지 올라가버리네..? DB와 교양은 비워둔 문제와 답을 잘못 적은 문제가 많은 것 같은데.. B+, A를 받았다. AI.. 실기 시험으로 제출한 파일이 에러가 떠서 0에 가까운 점수를 받았음에도 B를 받았다. AI, DB, 교양은 중간고사랑 과제로 커버가 됐나 보다.. 수술 및 후기 인공 고관절 수술을 받았다. 수술이야 뭐 자고 일어나면 끝나있을 거라 별 걱정은 안 했는데, 문제는 재활이 매우 오래 걸린다. 탈구 위험 때문에 약 1달 반 동안 자세에 제한이 생기고, 3달간 목발을 사용하라고 한다. 운전도 6주까지는 못하는데, 병원에서는 3달까지 권장한다. 그럼 학교는..? 1달 동안 택시 타고 다녀야 하나………? 수술이 끝나고 마취가 풀린 후에 통증이 진짜 심해서 진통제를 계속 맞았는데, 다음날 저녁쯤부터는 점점 나아져서 지금은 많이 좋아졌다. 수술 과정에 근육을 자른다고 들었다. 이 때문인지 지금 수술받은 왼쪽 다리에 힘이 많이 안 들어간다. 이건 언제쯤 돌아오려나.. 그래도 회복은 꽤 빨리 되는 듯하다. 이 정도면 2달 채우기 전에 목발 필요 없을 것 같은데..? 그런데.. 퇴원 후 집에 오자마자 인공 고관절에서 손가락 마디 뼈 소리 나게 하는 그런 비슷한 소리가 났는데.. 이거 괜찮은 거겠지?.. 검색해 보니 인공관절 수술 후에 가끔 날 수 있는 소리라고 하는데 .. 통증도 없이 그냥 소리만 났고, 그 후로는 그런 적 없으니깐 괜찮겠지 뭐..
  • 문자와 문자열 (27866)

    2023-06-20 21:57:38 주어진 문자열에서 n번째 알파벳을 출력하라. Bash read str read n echo "${str:$n-1:1}" Node.js const [str, n] = require("fs").readFileSync(0).toString().trim().split("\n"); console.log( str[n*1-1] ); Python3 text = input() n = int(input()) print( text[n-1] ) Ruby str = gets.chomp n = gets.chomp.to_i puts str[n-1]
  • Dovecot: SSL_accept() failed

    2023-06-01 23:03:16 crontab 설정 시 설정된 명령어가 실행되면 root가 root에게 메일을 보낸다. 나는 메일 서버를 직접 구축해서 사용하고 있기 때문에 로컬 메일도 다 확인이 가능해서 이 메일을 자주 본다. 그런데 오늘 crontab에 설정한 명령어가 동작할 시간이 지났는데도 메일이 오지 않았다. 원인 일단 서버는 잘 살아있고, 설정한 명령어도 오류 없이 잘 동작한 것을 확인했다. 메일 서버도 정상적으로 돌아가고, 웹 메일 클라이언트도 접속이 됐다. 그리고 중요한 것은 웹에서는 메일이 정상적으로 들어와있었다는 것이다. 스마트폰에서 메일을 확인하기 위해 연결해둔 Dovecot 서버와 Gmail 앱이 동기화되지 않았던 것이다. 그래서 메일 로그를 확인했고, Dovecot의 SSL/TLS 에러라는 것을 알게 됐다. 정확한 에러 내용은 아래 사진 참고. 설정된 SSL 경로, 인증서 파일, 기간 등 모든 것들을 확인해 봤지만, 모든 게 정상이었다. 그리고 웹 메일 클라이언트로 메일을 보내서 테스트를 해봤는데.. 역시 SSL이 정상적으로 적용이 되어있다. 해결 결국 구글링을 했고, 어떤 글에서 ssl_min_protocol 설정을 하라고 한다. /etc/dovecot/conf.d/10-ssl.conf 파일을 확인해 보니 해당 부분이 주석 처리되어 있다. 주석을 풀고 Dovecot 재시작을 하니 정상적으로 Gmail 앱과 Dovecot이 동기화 됐다. 최근에 Dovecot 설정을 바꾼 적도 없는데 갑자기 왜 이런 에러가 뜬 거지..? Dovecot이 업데이트되면서 생긴 문제인가.. Gmail에서 요구하는 무언가 바뀐 건가.. 몰라 아무튼 해결.
  • 2023년 5월

    2023-06-01 20:53:12 한 달에 한 번 쓰는 것도 빼먹은 일기.. 서버에 오류가 떠서 포스트 하나 올리려고 들어왔다가 급하게 쓰는 일기..다. 일기를 이제 쓰는 이유 ..는 없고 그냥 까먹었다. 귀찮아. 4월 일기에 중간고사 얼마 안 남았다고 쓴 것 같은데.. 중간고사 끝나고 수업 몇 번 안 들은 것 같은데.. 왜 벌써 수업이 2주밖에 안 남았지..? 라고 생각한 게 얼마 안 된 것 같은데 왜 벌써 담주가 보강주..? 이상하다. 이건 뭔가 잘못됐다. 누군가 시간을 빼앗어갔다. 돌려줘.. 7개 수업 중 교양 빼고 다 과제가 있다. 학기 초부터 있었던 웹, 해킹과크래킹, C 웹은 기말 끝나고 +7일 까지라 할만하고, 해킹과크래킹이랑 C는 매주 수업이랑 관련된 과제라 마지막 수업까지 과제를 해야 한다. 그래도 이 정도면 그나마 괜찮았다.. 그리고 갑자기 3개의 과제가 한 번에 생겨버리고.. 제출 기간도 5/31, 6/5, 6/7로 다 몰려있다.. 으악 그중 2개는 너무 어렵다.. 처음에는 하고 싶어도 손을 댈 수가 없었다. 하지만 지금도 모르겠다. 우연히도 두 과목이 한 교수님 수업이다. 사랑합니다 교수님 과제 요약 데이터베이스: my.cnf, Replication 실습 및 정리 웹프로그래밍 - 개인 프로젝트 침입차단시스템: 포트폴리오 해킹과크래킹: 주간 보고서 AI프로그래밍: 머신러닝 성능 높이기 C프로그래밍: 수업시간에 다 못하면 과제 병원 수술하기 전 필요한 검사하고, 결과 나오는 데 며칠 걸리는 게 있다고 해서 결과는 따로 보러 갔다. 병원에 갈 때마다 매번 SRT 타고 갔는데 갑자기 이번에 기차표 아껴야지 하면서 직접 운전해서 갔다. 대구에서 서울로 당일치기 왕복 운전.. 물론 아빠랑 번갈아가면서 했지만. 첫날은 너무 피곤해서 집에 오자마자 뻗었는데, 그다음 주엔 두 번째라고 벌써 적응이 된 건지 집 와서 과제도 하고 놀다가 잤다. 그리고 다행히 이번엔 안 까먹고 진료확인서 떼왔다.. 또 까먹을 뻔. 아 맞다 누가 알감자 먹어달라고 했는데 못 먹었다..^^ 까먹음 ㅎㅎ 다음 달(?) 일기 예고 5월 일기니까 다음 달 맞음. 기말 끝나고 바로 왼쪽 다리 수술하러 가야 한다. 원래 같으면 지금쯤 수술 걱정을 하고 있겠지만 진짜 과제랑 시험 때문에 걱정할 틈이 없다. 다행인 건가…… 하여튼 수술 후기 가져오겠습니다..^^
  • VMware Kernel Module Updater Error

    2023-04-27 20:25:00 리눅스에서 VMware를 사용하다 보면 vmmon, vmnet 모듈을 업데이트해야 할 때가 있다. 하지만 VMware와 커널 버전이 호환되지 않으면 에러가 발생하면서 업데이트가 되지 않는다. 업데이트를 하지 않으면 VMware를 사용할 수 없기 때문에 어떻게든 해결을 해야 한다. 에러 내용 에러 내용은 위 경로의 로그파일에서 확인해도 되고, 터미널에서 업데이트 명령어인 sudo vmware-modconfig --console --install-all을 실행해도 된다. stddef.h 그리고 사진에는 없는 stdarg.h 헤더 파일을 찾을 수 없다는 에러다. 이 에러가 VMware와 커널 버전이 호환되지 않아서 발생하는 문제라고 한다. 최근에 소프트웨어를 업데이트하면서 커널 버전이 5.15에서 5.19로 업데이트가 된 듯.. 해결 방법 추가된 내용 위 sudo vmware-modconfig --console --install-all 명령을 사용했을 때 에러가 뜨지 않고 해결되는 경우도 있다. 먼저 사용해 보고 해결되지 않으면 아래 방법을 사용하길 바람. 기존 내용 아래 명령어를 하나씩 차례대로 입력하면 된다. 3번 라인의 git checkout 뒤에는 현재 설치된 VMware의 버전을 입력해야 한다. VMware 버전은 vmware --version 명령어로 확인할 수 있다. git clone https://github.com/mkubecek/vmware-host-modules.git cd vmware-host-modules git checkout [player/workstation]-x.x.x make VM_UNAME=`uname -r` sudo make install uname -r는 리눅스 커널 버전을 출력하는 명령어다. make install은 루트 권한으로 실행해야 한다. 하지만 찾을 수 없다던 헤더 파일을 찾아서 모듈 업데이트를 진행한 게 아니기 때문에 sudo vmware-modconfig --console --install-all 실행 시 여전히 에러가 발생한다. /usr/src 하위에 위 두 모듈이 있는 걸 보면 모듈이 있는 위치를 직접 잡아주면 될 것 같긴 한데.. VMware만 잘 돌아가면 되지 뭐.. 참고 사이트 https://communities.vmware.com/t5/VMware-Workstation-Pro/Compiling-vmmon-module-fails-on-linux-kernel-5-16-0-arch1-1/m-p/2921525/highlight/true#M176985
  • 아나콘다 설치 및 실행 (Linux)

    2023-04-25 18:15:00 리눅스 배포판 종류와 상관없이 설치할 수 있다. 설치 다운로드 페이지에 접속 후 리눅스 버전으로 다운로드 bash로 설치 # bash Anaconda3.sh 그냥 엔터 라이센스다. q를 누른 후 yes 입력 설치할 경로 선택. 기본값은 홈 디렉토리에 설치된다. 그리고 한참을 기다리다 보면 설치가 완료되고, 초기화를 하겠냐고 묻는데, 여기서 yes를 입력하면 ~/.bashrc 파일을 수정하여 앞으로 터미널을 실행할 때마다 콘다를 실행하게 된다. 나는 그냥 웹 서비스만 이용할 거라 no를 선택했다. Notebook/Lab 기본 디렉토리 변경 설정하지 않으면 Jupyter Notebook이나 lab에서 기본 경로가 매번 사용자의 홈 디렉토리로 뜨기 때문에 상당히 불편하다. 아나콘다 설치된 경로 아래 bin 디렉토리에 있는 jupyter 파일을 사용한다. # ./anaconda3/bin/jupyter notebook --generate-config # vi ~/.jupyter/jupyter_notebook_config.py c.NotebookApp.notebook_dir 문자열을 찾아 원하는 경로를 입력 후 해당 경로에 맞게 폴더 생성 실행 Natigator # ./anaconda3/bin/anaconda-navigator Jupyter Notebook/Lab Natigator에서 실행해도 되지만 터미널에서 바로 실행할 수도 있다. jupyter notebook, jupyter lab에서 공백 대신 -를 입력해도 된다. jupyter lab 형식으로 사용하면 jupyter-lab 등의 파일로 접근하는 듯. # ./anaconda3/bin/jupyter notebook # ./anaconda3/bin/jupyter lab 실행 파일 생성 아나콘다의 bin 디렉토리를 PATH에 등록하기는 싫고, 편하게 사용하고는 싶고.. 그래서 그냥 아래 스크립트 파일을 만들어놓고 명령어 사용하듯 쓰고 있으며, 모두 같은 위치에 있어야 한다. 리눅스는 ~/bin 디렉토리를 기본적으로 PATH 환경 변수에 등록하기 때문에 해당 위치에 있는 파일에 실행 권한을 주게 되면 명령어처럼 어느 위치에서든 파일명만 입력하여 사용할 수 있게 된다. 그래서 아래 파일을 모두 ~/bin에 두고 conda.conf 파일을 제외한 모든 파일에 실행 권한을 주고 사용하는 중이다. conda.conf 파일을 여러 개 사용하기 때문에 모든 파일에서 같은 값의 변수를 사용하기 위해 필요한 파일. 이 파일에 아나콘다 설치 경로가 입력되어 있다. 다른 경로에 설치했다면 CONDA_HOME 값만 변경해 주면 된다. FILENAME="${0##*/}" CONDA_HOME="$HOME"/anaconda3 CONDA_BIN="$CONDA_HOME"/bin JUPYTER="$CONDA_BIN"/jupyter NAVIGATOR="$CONDA_BIN"/anaconda-navigator anaconda-navigator ./anaconda3/bin/anaconda-navigator 파일은 터미널에서 실행 시 실시간 로그가 출력된다. 백그라운드로 실행하면서 해당 터미널을 닫아도 계속 실행되도록 하기 위해 따로 만들었다. 사용법: anaconda-navigator #!/usr/bin/env bash source `dirname "$0"`/conda.conf nohup $NAVIGATOR > /dev/null 2>&1 & jupyter jupyter notebook/lab을 실행, 중지하거나 실행 중인 서버의 목록을 볼 수 있는 스크립트. 나는 notebook/lab 외 다른 파일은 사용한 적이 없어서 어떻게 돌아가는지 모르기 때문에 notebook/lab만 지원한다. notebook, lab 둘 중 하나만 실행해도 둘 다 접속이 된다. notebook은 http://localhost:8888/tree, lab은 http://localhost:8888/lab. 단, tree, lab 입력 없이 웹 사이트 루트에 접속을 했다면 notebook/lab 둘 중 실행한 서버로 리다이렉트된다. 기존의 ./anaconda3/bin/jupyter 파일처럼 실행 시 웹 브라우저를 자동으로 띄우고 싶다면 NO_BROWSER 변수의 값을 변경하면 된다. 가끔씩 서버 실행 후 페이지 접근 시 인증이 필요한 경우가 생기는데, jupyter list를 사용하면 인증할 수 있는 URL이 출력된다. 사용법 시작: jupyter lab start [PORT_NUMBER] 지정한 포트 번호로 서버가 실행되며, 생략 시 기본 포트인 8888로 실행. 이미 사용 중인 포트라면 사용하지 않는 포트를 찾을 때까지 +1 중지 jupyter-lab stop: 서버가 하나만 실행 중일 때 해당 서버 중지 jupyter-lab stop [PORT_NUMBER]: 중지할 서버 포트 지정 (해당 포트 번호의 서버가 없으면 목록 출력) jupyter-lab stop all: 실행 중인 서버 모두 중지 목록: jupyter lab list 서버의 포트 및 토큰 인증을 위한 URL 확인 가능 #!/usr/bin/env bash source `dirname "$0"`/conda.conf SERVICE=$1 DO=$2 PORT=$3 SERVER="$JUPYTER-$SERVICE" NO_BROWSER=true if [ ! -f "$JUPYTER" ]; then echo "$FILENAME: Error: $JUPYTER not Exist." exit 1 elif [ ! -f "$SERVER" ]; then echo "$FILENAME: Error: $SERVER not Exist." exit 1 elif [ "$SERVICE" != "notebook" -a "$SERVICE" != "lab" ]; then echo "$FILENAME: Error: $SERVER is not supported." exit 1 fi GET_PORT() { local IDX="$1" test -z $IDX && IDX=2 local GET=`echo "$LIST" | head -$IDX | tail -1` GET=${GET%\/?token=*} GET=${GET##*\:} echo $GET } if [ "$DO" == "start" ]; then test -z "$PORT" && PORT=8888 OPT="" test $NO_BROWSER == true && OPT="--no-browser" nohup $SERVER --port=$PORT --allow-root $OPT > /dev/null 2>&1 & elif [ "$DO" == "list" -o "$DO" == "stop" ]; then LIST=`$SERVER list` LIST_CNT=`echo "$LIST" | wc -l` if [ "$DO" == "list" ]; then echo "$LIST" exit fi if [ $LIST_CNT == 1 ]; then echo -n "" exit elif [ "$PORT" == "" -a $LIST_CNT == 2 ]; then $SERVER stop `GET_PORT 2` exit elif [ "$PORT" != "" -a "$PORT" != "all" -a "`expr $PORT \* 0 2> /dev/null`" != 0 ]; then echo "Usage: $FILENAME server stop [PORT_NUMBER]" exit 1 fi for IDX in $(seq 2 $LIST_CNT); do X=`GET_PORT $IDX` if [ "$PORT" == "all" -o "$PORT" == $X ]; then $SERVER stop $X if [ "$PORT" != "all" ]; then exit fi fi done if [ "$PORT" == "all" ]; then exit fi echo -n "$LIST" exit 1 else echo "Usage: $FILENAME [ start | list | stop ]" fi 삭제 anaconda3 디렉토리에 모두 설치되기 때문에 해당 디렉토리만 삭제하면 된다. # rm -rf ./anaconda3
  • 우분투 설치 후 필요한 것들 설치

    2023-04-25 13:48:00 그냥 내가 설치한 것들 apt, snap install apt net-tools, openssh, curl gcc, g++, make, build-essential rename, p7zip, python3-pip, git, vim, gedit ufw, ffmpeg, gnome-shell-extensions, gimp, icoutils snap chromium, discord, steam, notion-snap-reborn # sudo apt -y install [package_name] # sudo snap install [package_name] RealVNC Viewer VNC Viewer 검색 후 다운로드 사이트 접속. 우분투는 데비안 계열이므로 DEB 파일로 다운로드. dpke 명령어로 설치 # sudo dpkg -i VNC-Viewer.deb 실행은 터미널에서 vncviewer 명령어를 입력하거나 “VNC Viewer” 앱을 누르면 된다. VPN Client 기본적으로는 OpenVPN, PP2P밖에 없으며, 다른 방식을 사용하려면 추가로 설치해야 한다. VPN 설정은 Settings - Network 탭에서 할 수 있다. 뒤에 -gnome이 없는 패키지도 있는데, 없는 패키지를 설치하면 VPN 설정 시 에러가 표시되며 VPN 이름밖에 설정할 수 없다. 아마 터미널에서 사용하는 전용 패키지인 것 같다. 물론 -gnome 설치 시 없는 패키지도 자동으로 설치가 된다. L2TP # sudo apt -y install network-manager-l2tp-gnome openconnect 이거 하나만 설치하면 아래 클라이언트를 모두 사용할 수 있다. Cisco AnyConnect or openconnect Juniper Network Connect Palo Alto Network GlobalProtect Pulse Connect Secure F5 BIG-IP SSL VPN Fortinet SSL VPN Array SSL VPN # sudo apt -y install network-manager-openconnect-gnome VirtualBox VirtualBox 검색 후 다운로드 사이트 접속. DEB 파일 .deb 파일이 다운로드 되므로 VNC와 마찬가지로 dpkg 명령어로 설치할 수 있다. # sudo dpkg -i virtualbox.deb 왜 이런진 모르겠지만 에러가 뜬다. 아래 명령어를 입력하면 제대로 설치가 된다. # sudo apt install -f Repository VirtualBox 6, 7 버전의 패키지만 추가되었고 기존에 존재하던 패키지들은 버전이 업데이트되지 않았다. 그래서 그런지 7.0 버전 설치 후 6.1 버전인 virtualbox-ext-pack 패키지를 설치하니 VirtualBox가 6.1 버전으로 다운그레이드 되었다. 파일 다운로드 아래에 “Debian-based Linux distributions” 부분이 있다. 이 부분을 따라 하면 Repository를 추가할 수 있다. 명령어 두 개 입력 <mydist> 부분은 jammy로 변경, 키링 경로도 변경해도 된다. apt update 명령어를 입력하면 VirtualBox의 Repo를 읽어오는 것을 확인할 수 있다. 제대로 추가되었나 확인 왼쪽이 Repo 추가하기 전 확인한 내용이다. 7.0 버전으로 설치 # sudo apt -y install virtualbox-7.0 VMware 최신 버전의 VMware는 쉽게 찾을 수 있다. Player, Pro 최신 버전이 아닌 다른 버전을 받으려면 아래 사이트에서 원하는 버전을 선택하면 된다. Player, Pro Player는 Pro와 달리 GO TO DOWNLOADS를 누른 후에 Windows/Linux 선택해서 다운로드하는 방식이다. 이 파일은 .deb가 아닌 .bundle 파일이다. 그냥 실행 권한 주고 실행시키면 자동으로 설치된다. # chmod +x VMware.bundle # sudo ./VMware.bundle Wireshark # sudo apt -y install wireshark GNS3 https://docs.gns3.com/docs/getting-started/installation/linux/ # sudo add-apt-repository ppa:gns3/ppa # sudo apt update # sudo apt install gns3-gui gns3-server 설치 시 Wireshark가 자동으로 설치된다. Packet Tracer https://www.netacad.com/ 로그인 후 Resources - Download Packet Tracer 접속 스크롤 내리다 보면 우분투용 다운로드 파일이 있다. dpkg로 설치 # sudo dpkg -i CiscoPacketTracer.deb VirtualBox와 비슷한 에러가 뜬다. VirtualBox와 마찬가지로 아래 명령어를 입력하면 된다. # sudo apt install -f Node.js 현재 apt install nodejs로 설치 시 최신 버전이 아닌 12.x 버전이다. 최신 버전을 설치하려면 PPA를 추가해야 한다. https://nodejs.org/ko/download/current에서 LTS 및 최신 버전 확인 원하는 버전으로 PPA 추가 # curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - # sudo apt -y install nodejs Rclone https://rclone.org/downloads/ 접속 후 Intel/AMD - 64 Bit 중 .deb 파일 다운로드 후 설치 # sudo dpkg -i rclone.deb Anaconda3 KakaoTalk
  • 우분투 초기 설정

    2023-04-21 17:53:00 그냥 내가 설정한 것들 첫 로그인 제일 처음 로그인을 하면 아래와 같은 창이 뜬다. 우분투와 다른 계정을 연결할 수 있다. 나는 그냥 Skip 우분투 프로를 사용할 수 있다. 우분투 계정이 필요하며, 사용 시 LTS 버전의 경우 5년 추가 지원을 해주는 등의 혜택이 있다. 우분투에게 내 시스템 정보를 보낼 것인가 위치 정보 동의 이러한 앱들을 설치할 수 있다. Root Password 터미널에서 sudo passwd 명령어를 입력하고 루트 패스워드 설정 Settings 상단바 오른쪽 클릭 후 Settings로 접속 Power (Screen Blank) 시간이 지나도 화면이 꺼지지 않도록 설정 그리고 그 아래 Automatic Suspend에서 On Battery Power를 Off Display (Resolution) 해상도 설정 Region & Language (한글 입력 설정) Format - US로 변경 위에 “Manage Installed Languages” 클릭 조금 기다리면 이런 화면이 뜬다. Install 후 기다리면 언어팩 같은 게 자동으로 다운로드 된다. Keyboard (한글 입력 설정) Korean(Hangul) 추가(위 Region & Language 과정 진행 후 재부팅 필요) 후 English는 제거. Korean(Hangul)의 Preferences 선택 표시한 단축키 Delete 후 리눅스에서 한/영 키, 한자 키 사용하기 설정 재부팅하면 윈도우처럼 한/영, 한자 키 사용 가능 Appearance 다크모드 및 테마 색상 변경 sudo 명령어 패스워드 생략 nano 에디터가 불편한 경우 텍스트 에디터 기본값을 먼저 변경하면 vi 에디터로 수정할 수 있다. sudo visudo 명령으로 /etc/sudoers 파일을 쉽게 수정할 수 있다. 파일 제일 아래에 추가해 주면 해당 유저는 sudo 명령어를 패스워드 없이 사용할 수 있다. 저장은 Ctrl+X -> y -> 엔터 Mirror(미러) 사이트 변경 모든 리눅스가 기본값으로는 OS 사이트로 되어있기 때문에 국내 OS를 제외하면 모두 해외 서버다. apt 명령어의 update, upgrade, install 등을 사용할 때 속도를 올리기 위해 국내 사이트로 변경한다. 우분투의 국내 미러 사이트는 KAIST, Kakao 등이 있다. 참고로 NAVER에는 CentOS, Rocky가 있다. sudo vi /etc/apt/sources.list 해당 파일을 수정해야 한다. 모든 kr.archive.ubuntu.com 문자열을 ftp.kaist.ac.kr로 변경 kr이 붙어서 국내 서버인 것 같지만.. 그냥 우분투 도메인에 kr만 갖다 붙인 영국 서버다. 데비안의 경우 security 미러도 KAIST 서버에 있어서 변경할 수 있는데 우분투는 다른 미러 사이트에도 없다. 적용 및 확인 우분투 설치 후 첫 apt upgrade 명령어는 시간이 오래 걸리는 게 정상이다. 데스크탑에 설치된 것들을 최신 버전으로 업데이트하는 것이니 생각날 때마다 해주는 것이 좋다. 차례대로 실행해야 한다. 텍스트 에디터 기본값 변경 우분투는 기본값이 nano다. # sudo update-alternatives --config editor 참고로 vim.basic은 apt 명령어로 vim 패키지 설치 시 생성된다.