All (175) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ๐ Python * code๋ก Ubuntu file, directory ์ญ์ ํ๊ธฐ 1. ํ์ผ์ ์ง์ธ ๋ ๐ os.remove() import os os.remove(๊ฒฝ๋ก) - path๊ฐ ๋๋ ํ ๋ฆฌ(ํด๋)์ธ ๊ฒฝ์ฐ OSError๊ฐ ๋ฐ์ํฉ๋๋ค. - ํ์ฌ ์ฌ์ฉ์ค์ธ ํ์ผ์ ์ง์ฐ๋ ค๊ณ ํ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. - windows exception ๋ฐ์ - unix directory entry๋ ์ ๊ฑฐ๋์ง๋ง ํ์ผ ์ฌ์ฉ์ด ๋๋๊ธฐ ์ ๊น์ง๋ ์ ์ฅ์ฅ์น์์ ์ ๊ฑฐ๋์ง ์์ต๋๋ค. 2. ๋น ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ธ ๋ ๐ os.rmdir() import os os.rmdir(๊ฒฝ๋ก) - ๋๋ ํ ๋ฆฌ๊ฐ ๋น์ด์์ง ์์ผ๋ฉด OSError๊ฐ ๋ฐ์ํฉ๋๋ค. 3. ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ๋ฌผ ๋ชจ๋๋ฅผ ์ง์ธ ๋ ๐ shutil.rmtree() import shutil shutil.rmtree(๊ฒฝ๋ก[, ignore_errors[, oneror])] - ๋ค๋ง .. ๐ง Ubuntu * ํ์ผ์ rm ๋ง๊ณ ํด์งํต์ผ๋ก ์์ ํ๊ฒ ๋ณด๋ ์๋ค.. ์ฅฌ๋ฅต ์ด๊ฒ ์ ๊ฒ ์์ ์ ํ๋ค๊ฐ ๋๋ฃ ์ง์๋ถ์ด ์์ฑํด ๋์ ํ์ผ์ ๊น์ ์ ๋ก๋ ํ๊ณ ๊ธฐ์กด ์์ ํ๋ ๋๋ ํ ๋ฆฌ๋ ์ธ๋ชจ๊ฐ ์๋ค๋ ํ๋จํ์ ์ญ์ ๋ฅผ ํ๋๋ฐ.. ์ธ์์ ๋ง์์ ๊น์ ์ ๋ก๋ ๋ ๋ด์ฉ์ด ์๋ค ? ๋๋ฃ: ๐จ !!!!!!!!!!!!!!! ๋: ? . . . ? ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ๐จ ๊ทธ๋ ๋ค.. ์ค๋์์์ผ rm์ ๋ฌด์์์ ์ ์คํ ๊นจ๋ซ๊ฒ ๋ ๋๋.. ์ด์ ์์ผ ํด์งํต์ผ๋ก ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ธฐ ์์ํ๋ค ๐ท ๋๊ตฐ.. ์ฃ์ก๐ท.. ์ค๋นํ๊ธฐ Trash ๋๋ ์ด๋์ ์๋? ์ผ๋จ Trash๋ฅผ ์ฐพ์์ผ ๋ฒ๋ฆด ๊ฒ์ด ์๋๊ฐ!? ๊ทธ๋ ๋ค๋ฉด ์ผ๋จ Trash๊ฐ ์ด๋์ ์๋์ง ์ฐพ์๋ณด์ $ find ./ -name Trash ๋์ ๊ฒฝ์ฐ๋ Ubuntu 18.04 LTS์ธ๋ฐ ์์น๊ฐ ./.local/share/T.. โ Solved * [Python] ํ๊ธ encoding์ด ๋์ง ์์ ๋ โ Linux: Ubuntu 16.04 LTS + 2020/03/03 Python 3.6์ ๋ฌธ์์ด ์ธ์ ๋ฐฉ๋ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก utf-8 ์ด๊ธฐ ๋๋ฌธ์ ๋ค์์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ๋ฒ์ ๋ณ๋ก ๊ธฐ๋ณธ ์ธ/๋์ฝ๋ฉ ๋ฐฉ์์ด ๋ค๋ฅด๊ธฐ์ ๊ด๋ จ๋ ์๋ฌ๊ฐ ๋๋ฉด ์ฐพ์๋ณด๋ ๊ฒ์ด ์ข๊ฒ ๋ค. 1. ํ์ผ์ ๊ฐ์ฅ ์์ ์ฃผ์์ ์ฝ์ ํ๋ค. # -*- coding:utf-8 -*- ์์ ์ฃผ์๋ฌธ ์ดํ์ ๋์ค๋ ๋ชจ๋ ๋ฌธ์์ด์ด UTF-8 ํ์์ด๋ผ๋ ๊ฒ์ ๋ช ์ํ๋ ์ฝ๋์ด๋ค. ๋ณดํต์ ๊ฒฝ์ฐ ์์ ๋ฌธ์ฅํ๋๋ง ์ ์ด์ฃผ๋ ๊ฒ์ผ๋ก ์ ๋ฆฌ๊ฐ ๋๋ค. ํ์ง๋ง, ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค๋ณด๋ฉด ์ธ๋ถ์์ ๋ถ๋ฌ์จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ importํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ด ๊ฒฝ์ฐ ๋งค๋ฒ ๊ฐ ํ์ผ ์์์ ์ฃผ์์ ์ฝ์ ํด ์ฃผ๊ฑฐ๋ ์๋์ ๋ฐฉ๋ฒ์ main file์๋ค๊ฐ ์ฌ์ฉํด์ค๋ค. 2. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ณธ.. ๐ณ Docker * Timezone(์๊ฐ) ์ค์ ํ๊ธฐ ! Docker์ ๊ธฐ๋ณธ timezone์ UTC๋ก ๋์ด์์ด ํ๊ตญ์ ์๊ฐ์ผ๋ก ์ค์ ํ๋ ค๋ฉด KST๋ก ์์ ์ ํด ์ฃผ์ด์ผ ํ๋ค. Timezone์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ localhost timezone ๋๋ ํ ๋ฆฌ ๋ง์ดํธ Timezone์ ์์ ํ ์ ์๋ ํจํค์ง ์ค์น ํ ์กฐ์ etc... localhost timezone ๋๋ ํ ๋ฆฌ ๋ง์ดํธ ๋ณดํต localhost timezone ํด๋์ ๋ง์ดํธํ๋ ํ์์ผ๋ก ์ค์ ์ ์งํํ๋ค. ๋ฌผ๋ก host์ ์๊ฐ๋๋ฅผ ๋ง์ถฐ์ผ ํ๋ค๋ฉด ์ด ๋ฐฉ๋ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ง๋ง.. ์ด๋ฏธ ๋ง๋ค์ด์ง ์ปจํ ์ด๋์ timezone์ ์์ ํด์ผํ๋ค๋ฉด ์ปจํ ์ด๋๋ฅผ ์ด๋ฏธ์งํ ํ๊ณ ๋ค์ run ํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด.. ํ๋ ๋ฐฉ๋ฒ์ ๋ณ๋ก ์ด๋ ค์ด ๊ฒ ์๋ค. ์ผ๋จ timezone ํด๋ ์ค ์ํ๋ ์๊ฐ๋๋ฅผ /etc.. ๋ฏธ์ธ๋จผ์ง, ๋ ์จ API ์ด๋ค๊ฒ ์์๊น? ์์ ๊ฐ๋ฐ์์ ์ํ๋ฉด, ๊ฐ๋์ฉ API ์ค๋ฅ๋ก ์ ๋ณด๋ฅผ ์ ๋ด๋ ค์ฃผ๊ธฐ๋ ํ๋ ์ด๋ด ๋๋ฅผ ๋๋นํด์ ์ฌ๋ฌ ๊ตฐ๋ฐ์์ ์ ๋ณด๋ฅผ ๋ฐ์ ํ์๊ฐ ์๋ค๊ณ ํ๋ค. ๊ฐ๋จํ ์์๋ณด๊ธฐ 1. ๊ณต๊ณต๋ฐ์ดํฐํฌํธ - ๊ณต๊ณต API๋ค์ด ๊ฐ์ฅ ๋ง์ ๊ณณ์ด๋ฉฐ, ํ๊ฒฝ๊ณต๋จ(Air Korea)์์ ์ ๊ณตํด์ฃผ๋ ๋ฏธ์ธ๋จผ์ง API๋ฅผ ์ฌ์ฉํ ์ ์๋ค. - FREE!! ๋ง๊ทธ๋๋ก ๋ฌด๋ฃ๋ค. 2. ์ผ์ด์จ๋ - ๋ฏผ๊ฐ์ ์ฒด๋ผ ๋๋ถ๋ถ์ API๊ฐ ์ ๋ฃ์ด์ง๋ง ์ผ๋ถ API๋ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์๋ค. - 2017๋ 08์ 30์ผ ๊ธฐ์ค์ผ๋ก API ์๋น์ค ์ ์ ์ค๋จ์ ์ ์ธํด์ ๋ ์ด์ ์ฌ์ฉ์ด ๋ถ๊ฐํ๋ค. 3. SKํ๋๋ ๊ฐ๋ฐ์์ผํฐ - ๊ธฐ์์ฒญ์ด ์ง์ ๋ด๋ ค์ฃผ๋ ๊ฒ์ ์๊ณ SK์ ๊ธฐ์์ฒญ์ด ์๋ก ์ฐ๊ณํด์ ์๋น์ค๋ฅผ ํด์ฃผ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. - 2018๋ 04์ 03์ผ๋ถ๋ก ์๋น์ค๋ฅผ ์ค๋จํ์๋ค. - ๋ช .. ๐ง Ubuntu * ํ๊ฒฝ๋ณ์ ์ ์ฉ ๋ฐ ํฐ๋ฏธ๋ ์ข ๋ฃ ํ์๋ ์ ์งํ๋ ๋ฐฉ๋ฒ ! ํ์ฌ ํฐ๋ฏธ๋์๋ง ์ ์ฉํ๋ ๋ฐฉ๋ฒ ( 1ํ์ฑ ) $ export ์ด๋ฆ=๊ฐ name=value ํด์ฃผ์ค ๋ =์ ์ข์ฐ์ ๊ณต๋ฐฑ์ด ์์ผ๋ฉด ์๋ฉ๋๋ค. ๋น์นธ์ฃผ์ง ๋ง์ธ์! - - - - $ env | grep ์ด๋ฆ env๋ ์ ์ฉ๋ ํ๊ฒฝ ๋ณ์ ๋ชฉ๋ก์ ๋ค ๋ณด์ฌ์ค๋๋ค. ์ด๋, grep ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ์ง์ ํ ๋ณ์๊ฐ ์ ๋๋ก ์ ๋ฑ๋ก๋ฌ๋์ง ํ์ธ ํ ์ ์์ต๋๋ค. ํน์ $ echo $์ด๋ฆ์ ์ด์ฉํ์ฌ ํ์ธํ ์๋ ์์ต๋๋ค. - - - - ํ๊ฒฝ๋ณ์ ์ ์ฉํ๊ธฐ ( ํด์ง ํ์ง ์๋ ํ ์๊ตฌ์ฑ ) 1. ํ์ผ์์ bash.bashrc / bashrc $ vim /etc/bash.bashrc ํ์ผ์ ์์ ํด ์ฃผ์๋ฉด ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ํ๊ฒฝ๋ณ์๋ฅผ ์๊ตฌ์ ์ผ๋ก ๋ฑ๋กํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ํ์ผ์ ์ด์ด์ฃผ์๊ณ , ๋งจ ๋ง์ง๋ง ํน์ ๋งจ ์์ ์ฌ์ฉ์๊ฐ ์ํ๋ ํ๊ฒฝ๋ณ์.. ๐ GitHub Desktop ์ค์น ๋ฐ repository clone ๋ฐฉ๋ฒ! Install ํ์ฌ Windows์ MacOS ๊ฐ ๊ฐ์ ํด๋นํ๋ ์ค์น ํ์ผ์ ๋ฐฐํฌํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ผ๋จ ์ค์น๋ ๋งค.์ฐ.์ฝ.๋ค! ์๋ ์ฌ์ดํธ๋ก ์ด๋ํด์ ๋ค์ด๋ก๋ ํ์ผ์ ๋ฐ์์ ์คํ๋ง ์์ผ์ฃผ๋ฉด ๋๋ค! GitHub Desktop Simple collaboration from your desktop desktop.github.com Repository Clone GitHub Desktop์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ GitHub ํํ์ด์ง์์ Clone์ ํ ๋ GitHub Desktop์ ์คํ์ํค๋ ๋ฐฉ๋ฒ ์ด 2๊ฐ์ง๊ฐ ์์ต๋๋ค. 1. GitHub Homepage์์ Github Desktop ์ด๊ธฐ ์๋์ ๊ฐ์ด GitHub์์ ์ฐ๊ฒฐ์ ์ํ๋ repository ํ์ด์ ์ ์ํฉ๋๋ค. A. ํ๋ฉด์์ ๋ณด์ด๋ Clone or down.. ๐ง Ubuntu * ํฐ๋ฏธ๋์์ ์น ๋ธ๋ผ์ฐ์ (chrome) ์ด๊ธฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฌด๊ฒ๋ ํ์ง ์์๋ ํฐ๋ฏธ๋์ firefox๋ฅผ ์ ๋ ฅํ์ฌ firfox ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด ์ ์๋ค. ํ์ง๋ง, ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก chrome์ ์คํ์ํค๋ฉด ์ด๋ฆฌ์ง ์๋๋ค. $ firefox #firefox ๋ธ๋ผ์ฐ์ ์คํ $ chrome chrome: command not found ์ด์ ๋ ์คํํ์ผ์ ์์น๋ฅผ ์ ์ํด ๋์ ํ๊ฒฝ๋ณ์( PATH )์ ํฌ๋กฌ์ ์์น๊ฐ ์ ์๋์ด์์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค. 1. ํ๊ฒฝ ๋ณ์( PATH ) ํ์ผ ํธ์ง - ํ๊ฒฝ ๋ณ์ ํ์ผ์ ํธ์งํ์ฌ ํฌ๋กฌ์ ์ํด ์๋ ํด๋๋ฅผ ํ๊ฒฝ ๋ณ์์ ์ถ๊ฐ ์ํจ๋ค. 2. ํฌ๋กฌ ํ์ผ ์ด๋ - ํฌ๋กฌ ํ์ผ์ ์ด๋ฏธ ํ๊ฒฝ ๋ณ์์ ๋ฑ๋ก๋์ด ์๋ ํด๋์ ์ฎ๊ธด๋ค. A. locate ๋ช ๋ น์ด๋ก ์คํ ํ์ผ์ ์์น๋ฅผ ์ฐพ๋๋ค. ( /opt/googl.. ๐ณ Docker * ํ๊ธ ์ค์ , ํ๊ธ ๊นจ์ง ํด๊ฒฐํ๊ธฐ ๊ธฐ๋ณธ์ ์ผ๋ก docker๋ bash์ฐฝ ์ด์ฉ ์ ํ๊ธ ์ ๋ ฅ์ด ๋์ง ์๊ณ ๋ง๊ตฌ๋ง๊ตฌ ๊นจ์ ธ์ ๋์ค๊ฒ ๋๋ค. ํ๊ธ ์ ๋ ฅ์ ํ๊ธฐ ์ํด์๋ locales ์ค์ ์ ํด์ค์ผ ํ๋ค. python3์ ์ฐ๋ฉด์ ํ๊ธ๋ก ์ ์ด ๋์ ์ฃผ์๋ค์ด ๋ง์๋ฐ docker์ ํ๊ธ ์ค์ ์ ํด์ฃผ์ง ์์ผ๋ฉด, python ํ๋ก๊ทธ๋จ์ ์คํ ์์ผฐ์ ๋ encoding error๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. Install locales ๋น์ฐํ Docker์ ์ ์์ ํ ์ํ๋ผ๊ณ ์๊ฐํ์ง๋ง ํน์ ๋ชจ๋ฅด๋ ์ผ๋จ docker์ ์ ์์ ํ๋ค. $ apt-get install locales ์ ์ํ docker์์ locales๋ฅผ ์ค์นํด ์ค๋ค. Setting 1. Save environment values export LANGUAGE=ko_KR.UTF-8 export LANG=ko_.. Windows SSH ์ ์ ์ ์ง ์ํค๊ธฐ (feat. ์ธ์ ์ ์ง ์๊ฐ ์ค์ ํ๊ธฐ) ์๊ฒฉ์ผ๋ก ์ ์์ ํ๋ค ๋ณด๋ฉด, ์ผ์ ์๊ฐ ๋์ ํค ์ ๋ ฅ์ด ์์ ๋ ์๊ฒฉ ์ ์์ด ์ข ๋ฃ ๋๋ค. ๊ธธ๊ฒ๋ 24์๊ฐ ์งง๊ฒ๋ 300์ด๋ฉด ์ ์์ด ์ข ๋ฃ๋๋ค. Window์๋ ์๊ฒฉ ์ ์ ์ํด ์ฌ์ฉํ๋ ๋๊ตฌ putty์ ์ค์ ์ ๋ฐ๊พธ๋ฉด ๋๋ค. Connection ์ค์ ์ Sending of null packets to keep the session active ์ ํด๋นํ๋ ๋ถ๋ถ์ ์ค์ ์ 0์ด๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ์์ฝ๊ฒ ๊ฐ๋ฅํ๋ค. feat. ๋์น ์ฑ๊ฒ ์ง๋ง 3๋ถ์ผ๋ก ํ๊ณ ์ถ์ผ๋ฉด Sending of null packets to keep the session active ์ ํด๋นํ๋ ๋ถ๋ถ์ ์ค์ ์ 180์ด๋ก ์ค์ ํ๋ค. Thanks for How to Keep Alive SSH Sesstions ๐ง Ubuntu * SSH ์ ์ ์ ์ง ํค๊ธฐ ์๊ฒฉ์ผ๋ก ์ ์์ ํ๋ค ๋ณด๋ฉด, ์ผ์ ์๊ฐ ๋์ ํค ์ ๋ ฅ์ด ์์ ๋ ์๊ฒฉ ์ ์์ด ์ข ๋ฃ ๋๋ค. ๊ธธ๊ฒ๋ 24์๊ฐ ์งง๊ฒ๋ 300์ด๋ฉด ์ ์์ด ์ข ๋ฃ๋๋ค. โ linux user ๋ชจ๋์๊ฒ ์ ์ฉํ๊ณ ์ถ๋ค๋ฉด, $ vi /etc/ssh/ssh_config โ ์ง๊ธ ์ฌ์ฉ์ค์ธ user์๊ฒ๋ง ์ ์ฉํ๊ณ ์ถ๋ค๋ฉด, $ vi ~/.ssh/config ๐ก ํ์ผ์ ์ถ๊ฐ ํน์ ์์ ํด ์ฃผ๋ฉด ๋๋๋ฐ ๋ง์ฝ์ ์ ์์น์ ํด๋น ํ์ผ์ด ์๋ค๋ฉด ์์ฑ ํ ๋ด์ฉ์ ์ถ๊ฐํด ์ฃผ๋ฉด ๋๋ค. Insert the following: Host * ServerAliveInterval 300 ServerAliveCountMax 2 ์ฌ๊ธฐ์ ServerAliveInterval์ ๋จ์๋ sec์ด๋ฉฐ ServerAliveCountMax์ ๊ฐฏ์๋ ์ด์์๋ค๊ณ ๋ณด๋ผ ๋ฉ์์ง์ ์ ์ด๋ค. .. ๐ Python * OS ๋ช ๋ น์ด ๊ฒฐ๊ณผ๋ฅผ Python ์ฝ๋์์ ์ฌ์ฉํ ๋! ๐ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ฅผ ํ์ด์ฌ ์ฝ๋์์ os.system์ ์ด์ฉํ์ฌ ์ข ์ข ์คํํ๊ณค ํ๋ค. ํ์ง๋ง os.system์ ์ธ ๊ฒฝ์ฐ ๋ฌธ์์ด ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ๋.. ๐ซ ํด์ ์ธํฐ๋ท์ผ๋ก ์ฐพ์๋ณด์๋๋ Subprocess ๋ผ๋ ๊ธฐ๋ณธ ๋ชจ๋์ ์ด์ฉํ์ฌ ๋ฌธ์์ด ๊ฒฐ๊ณผ๋ฅผ ์ ์ฝ๊ฒ ๋ณ์ ๊ฐ์ผ๋ก ์ ์ฅ ํ ์ ์์๋ค. ๋ด์ฉ์ ๋ฐ์ท ํด์จ ํฌ์คํ ์์ communicate๋ ํ์ผ์ด ํฌ๊ฑฐ๋ unlimitedํ ๋ถ๋ถ์์๋ ์ฐ์ง ๋ง๋ผ๊ณ ํ๋ค๋ ๋๊ธ์ ๋ณด์๋ค. ์ ๊ทธ๋ฐ์ง๊น์ง๋ ์์ธํ ๋ณด์ง ์์์ผ๋ ๊ทธ๋ฐ ์ํฉ์ด๋ผ๋ฉด ์ข ๋ ์ฐพ์๋ณด๊ณ ์ ์ฉํ๋๋ก ํ์. ํ์ด์ฌ๋ฟ๋ง ์๋๋ผ ๋ญ๋ ๋ฌธ์๋ฅผ ๋ณผ ๋๋ ์์ ์ ๋ฒ์ ๊ณผ ๋ฌธ์์์ ์ค๋ช ํ๋ ๋ฒ์ ์ด ๊ฐ์ ์ง๋ฅผ ํญ์ ๋ณด์์ผ ํ๋ค. Let's do this 1. check_output(...) import subprocess da.. ์ด์ 1 ยทยทยท 11 12 13 14 15 ๋ค์