๊ธ€

RaspberryPi XRDP blank screen issue - ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ์›๊ฒฉ์ ‘์† ๋นˆ ํ™”๋ฉด ์ด์Šˆ

XRDP๋ฅผ ํ†ตํ•œ ์›๊ฒฉ ์ ‘์† ์‹œ, ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์— root ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๊ณ„์ •์œผ๋กœ ์ ‘์†ํ•˜๋ฉด ๋นˆ ํ™”๋ฉด๋งŒ ๋œจ๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์Œ. ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ ์œ ์ €๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ ‘์† ํ•˜๋ฉด ๋จ. ์ถœ์ฒ˜ : https://www.reddit.com/r/raspberry_pi/comments/qw1cdw/raspberry_pi_4_xrdp_windows_10_remote_desktop/

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ์™€์ดํŒŒ์ด ์ ˆ์ „๋ชจ๋“œ ํ•ด์ œ

์ด๋ฏธ์ง€
 ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์™€์ดํŒŒ์ด ์ ˆ์ „ ๋ชจ๋“œ๋ฅผ OFF ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ. sudo iwconfig wlan0 power off ๋ถ€ํŒ…์‹œ์— ์ž๋™์œผ๋กœ ์ ์šฉํ•˜๋ ค๋ฉด /etc/rc.local ํŒŒ์ผ์— ์•„๋ž˜ 1์ค„ ์ถ”๊ฐ€ /sbin/iwconfig wlan0 power off

[NO-IP] Dynamic Update Client Install on Raspberry PI

 Refer to  https://www.noip.com/support/knowledgebase/install-ip-duc-onto-raspberry-pi Client Install $ mkdir /home/pi/noip $ cd /home/pi/noip $ wget www.noip.com/client/linux/noip-duc-linux.tar.gz $ tar noip-duc-linux.tar.gz $ cd noip-2.1.9-1 $ sudo make $ sudo make install Client ์‹คํ–‰ $ sudo /usr/local/bin/noip2 Client ์‹คํ–‰ ํ™•์ธ $ sudo noip2 ­-S ๋ถ€ํŒ… ์‹œ์— ์ž๋™์œผ๋กœ noip2 ๊ฐ€ ์‹คํ–‰ ๋˜๋„๋ก ์„ค์ •. ๋‹ค์Œ ๋‚ด์šฉ์„ noip2 ํŒŒ์ผ๋กœ ์ž‘์„ฑ #! /bin/sh # . /etc/rc.d/init.d/functions # uncomment/modify for your killproc case "$1" in start) echo "Starting noip2." /usr/local/bin/noip2 ;; stop) echo -n "Shutting down noip2." killproc -TERM /usr/local/bin/noip2 ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0 'noip2' ํŒŒ์ผ์— ์‹คํ–‰๊ถŒํ•œ์„ ์ค€ ๋’ค '/etc/init.d'๋กœ ๋ณต์‚ฌ $ chmod +x noip2 $ cp noip2 /etc/init.d ๊ทธ ๋‹ค์Œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋Ÿฐ๋ ˆ๋ฒจ 3๋กœ ๋“ฑ๋ก. $ cd /etc/rc3.d $ ln -s ../init.d/noip2 S01noip2 ์žฌ๋ถ€ํŒ… ํ›„ ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒํƒœ์—์„œ 'ps -ef  | grep noip2' ๋ช…๋ น์–ด๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘ ์ค‘์ธ์ง€ ํ™•์ธ

Crontab - ์žฌ๋ถ€ํŒ… ํ›„ ์‹œ์ž‘ ์‹œ, ํŠน์ • ์œ ์ € ๊ถŒํ•œ์œผ๋กœ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

Root ๊ถŒํ•œ์œผ๋กœ ํฌ๋ก ํƒญ ์ž‘์„ฑ sudo crontab -e

[๊ต์œก] ๋ถ€๋ชจ์˜ ์ธ๋ฌธํ•™

๋…์„œ  ์ฑ… ์ฝ๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ์ž. ๋‹ค์Œ ์ด์•ผ๊ธฐ๋ฅผ ์ƒ์ƒํ•˜๊ฒŒ ํ•ด ๋ณด์ž. ๋ณธ์ธ์˜ ์ƒ๊ฐ์„ ๋งํ•˜๊ฒŒ ํ•ด ๋ณด์ž. ๊ณต๋ถ€ ํ•จ๊ป˜ ์•‰์•„์„œ ๊ณต๋ถ€ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ–์ž ํ•˜์ง€๋งŒ ์ฝ˜ํ…์ธ ๋Š” ๊ฐ์ž์˜ ๊ฒƒ์œผ๋กœ. ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ๋‹ค๋ฅธ์‚ฌ๋žŒ์—๊ฒŒ ๋‹ค์‹œ ๊ฐ€๋ฅด์น˜๊ฒŒ ํ•œ๋‹ค. ์ •์ ์ธ ๊ณต๋ถ€์— ๋งŒ์กฑํ•˜์ง€ ๋ง๊ณ  ์ฒดํ—˜์ ์ธ ๊ณต๋ถ€๋ฅผ ํ•˜๋„๋ก ๋„์™€์ฃผ์ž. ์šด๋™ ์šด๋™ ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ์ž. ์‚ฐ์ฑ…์„ ํ•˜๋ฉฐ ์ถฉ๋ถ„ํ•œ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๋„๋ก ํ•˜์ž. ๊ฐ€๋”์€ ์‚ฐ์ฑ…์„ ํ•˜๋ฉฐ ํ˜ผ์ž ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๊ฒŒ ํ•˜์ž. ์—ฌํ–‰ ํ•™์›์— ๋ณด๋‚ด์ง€ ๋ง๊ณ  ์—ฌํ–‰์„ ๋‹ค๋‹ˆ๋ฉด์„œ ๋‹ค์–‘ํ•œ ์„ธ์ƒ์— ๋ˆˆ์„ ๋œจ๊ฒŒ ํ•˜์ž. ๊ฐ™์ด ๊ณ„ํš์„ ์งœ๊ณ  ์—ญํ• ์„ ๋‚˜๋ˆ„์–ด์„œ ํ”„๋กœ์„ธ์Šค์— ์ฐธ์—ฌ ์‹œํ‚ค์ž. ์š”๋ฆฌ ๊ฐ™์ด ์žฌ๋ฃŒ๋ฅผ ๊ตฌ๋งคํ•˜๊ณ  ๋‹ค๋“ฌ๊ณ  ์กฐ๋ฆฌ๊นŒ์ง€ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ์ฐธ์—ฌ ์‹œํ‚ค์ž.

[์ข…๊ต] ์†Œ๊ฐœํŒ…์—์„œ ์ข…๊ต๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ

์ง€๋‚œ๋ฒˆ์— ์ด์–ด์„œ ์ข…๊ต์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋˜ ํ•œ๋ฒˆ ํ•ด ๋ณผ๊นŒ ํ•œ๋‹ค. ๋‚˜๋Š” ์–ผ๊ตด๋„ ๋ณ„๋กœ๊ณ  ํ‚ค๋„ ์ž‘์€ ๋ฒ ํƒ€๋ฉ”์ผ์ธ์ง€๋ผ ์ฃผ๋ณ€์—์„œ ์†Œ๊ฐœํŒ…์„ ์‹œ์ผœ ์ค€๋‹ค๊ณ  ํ•˜๋ฉด ๋ฌป๊ณ  ๋”ฐ์ง€์ง€๋„ ์•Š๊ณ  ๋ฌด์กฐ๊ฑด OK๋ฅผ ํ–ˆ์—ˆ๋‹ค. ์‹ฌ์ง€์–ด ์ƒ๋Œ€๋ฐฉ ์‚ฌ์ง„๋„ ๋‹ฌ๋ผ๊ณ  ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ผ๋‹จ ์ฃผ์„ ์ž๊ฐ€ ๋‚˜๋ฅผ ์†Œ๊ฐœํŒ…์— ๋‚ด๋ณด๋‚ธ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ์ฃผ์„ ์ž๊ฐ€ ๋‚˜๋ฅผ ๊ทธ๋ž˜๋„ ์ž์‹ ์˜ ์ธ๋งฅ ์ค‘์— ์†Œ๊ฐœํŒ…์ด๋ผ๋Š” ์‹œ์žฅ์— ๋‚ด๋†“์•˜์„ ๋•Œ ๋ถ€๋„๋Ÿฝ์ง€ ์•Š๋‹ค๋Š” ์˜๋ฏธ๋ผ๊ณ  ์ƒ๊ฐ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ฃผ์„ ์ž์—๊ฒŒ ๊ณ ๋งˆ์›€์„ ๋А๋ผ๋ฉฐ ์ฒ˜์Œ์—” ๋“ค์–ด์˜ค๋Š” ์กฑ์กฑ ์†Œ๊ฐœํŒ…์— ๋‚˜๊ฐ”๋‹ค. ๋งŽ์ด๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋‹ค์–‘ํ•œ ๋ถ„๋“ค์„ ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๊ฒฐ๊ตญ ๋‚˜์ค‘์—๋Š” ์ข…๊ต์žˆ๋Š” ์‚ฌ๋žŒ์€ ์ •์ค‘ํžˆ ๊ฑฐ์ ˆํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ์šฐ์„  ์ˆœ์œ„ ์ข…๊ต๊ฐ€ ์ธ์ƒ 1์ˆœ์œ„ ์ธ ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋‹ค. ์ข…๊ต ์ƒํ™œ๊ณผ ๊ทธ ์™ธ ์‚ฌํšŒ์ƒํ™œ์„ ๊ท ํ˜•์žˆ๊ฒŒ ํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜ ์—†์ง€๋งŒ, ๊ณผ์œ ๋ถˆ๊ธ‰์ด๋ผ๊ณ  ๋„ˆ๋ฌด ์ง€๋‚˜์น˜๋ฉด ์—ญ์‹œ ์ข‹์ง€ ์•Š์€ ๋ฒ•. ํ•˜๋ฃจ ์ข…์ผ ์ข…๊ตํ™œ๋™์— ๋น ์ ธ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด, ๋‚˜์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ๋‹น์—ฐํžˆ ์ˆœ์œ„๊ถŒ ๋ฐ–์œผ๋กœ ๋ฐ€๋ ค๋‚˜๊ธฐ ๋•Œ๋ฌธ์—, ๋งŒ๋‚จ์„ ์ด์–ด๊ฐ€๋”๋ผ๋„ ์‹œ๊ฐ„์„ ๋งž์ถ”๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์–ด๋–ค ๋ถ„์€ ์ผ์š”์ผ์— ์˜ค์ „ 7์‹œ๋ถ€ํ„ฐ ์˜คํ›„5์‹œ๊นŒ์ง€ ๊ตํšŒ์—๋งŒ ์žˆ๋Š” ๋ถ„์ด ์žˆ์—ˆ๋‹ค. ๊ตํšŒ์—์„œ ์„ฑ๊ฐ€๋Œ€๋„ ํ•˜๊ณ  ์•„๋™๋ถ€ ์„ ์ƒ๋‹˜๋„ ํ•˜๊ณ , ๊ทธ ์™ธ ๊ธฐํƒ€ ์ด๋ฒคํŠธ ์ค€๋น„๋„ ํ•˜๊ธฐ์œ„ํ•ด ๊ฐ€๋” ํ† ์š”์ผ์—๋„ ๊ตํšŒ๋ฅผ ๋‚˜๊ฐ„๋‹ค. ๋ถ„๋ช… ํฌ๋ฆฌ์Šค๋งˆ์Šค๋•Œ์—๋„ ๋‚จ์ž์นœ๊ตฌ๋ณด๋‹ค๋Š” ํ•˜๋‚˜๋‹˜๊ณผ ํ•จ๊ป˜ ๊ตํšŒ์—์„œ ์˜ˆ๋ฐฐํƒ€์ž„์„ ๋ณด๋‚ผ๊ฒƒ์ž„์ด ๋ถ„๋ช… ํ•˜๋ฆฌ๋ผ. 2. ์ „๋„ ์ž๊พธ ์†Œ๊ฐœํŒ… ์ž๋ฆฌ์—์„œ ์ „๋„๋ฅผ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ๋ถ„์€ ์ฒ˜์Œ ๋งŒ๋‚œ ๋‚ ์— ๋Œ€๋œธ ์ข…๊ต๋ฅผ ๋ฌป๋”๋‹ˆ ๋‚ด๊ฐ€ ๋ฌด๊ต๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ, ๋ฐ”๋กœ ๊ตํšŒ๋ฅผ ๊ฐ™์ด ๋‹ค๋‹ˆ ์ž๊ณ  ํ–ˆ๋‹ค. ๋‚˜๋Š” ๋ฐ”๋กœ "์ €๋Š” ๋ฌด๊ต์—๋‹ค๊ฐ€ ๋ฌด์‹ ๋ก ์ž ์ž…๋‹ˆ๋‹ค" ๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ ๊ทธ ์ด์ƒ ๋Œ€ํ™”๋Š” ์ด์–ด์ง€์ง€ ์•Š์•˜๋‹ค. ๊ทธ๊ฒŒ ๊ทธ ๋ถ„์„ ๋ณธ ์ฒ˜์Œ์ด์ž ๋งˆ์ง€๋ง‰๋‚ ์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ข…์ข… ๋ช‡๋‹ค๋ฆฌ ๊ฑด๋„ˆ ์†Œ๊ฐœํŒ…์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ฃผ์„ ์ž๋„ ์—ฐ๋ฝ์ฒ˜๋งŒ ์ „๋‹ฌ๋ฐ›๊ณ  ๊ทธ ์ด์™ธ ์ •๋ณด๋Š” ๋ฌด์—‡์ธ์ง€ ๋“ฑ์€ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—” ์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์†Œ๊ฐœํŒ… ์ž๋ฆฌ์— ๋ฌด์กฐ๊ฑด ๋‚˜๊ฐ”๋‹ค. ๊ทธ ๋‹ค์Œ์ด ์ค‘์š”ํ•œ๋ฐ, ์ฒ˜์Œ ๋งŒ๋‚œ ์ž๋ฆฌ์—์„œ ๋Œ€๋œธ ์ง์ ‘์ ์œผ...

[์ข…๊ต] ์œ ์น˜์›์ƒ์ด ๊นจ๋‹ฌ์Œ์œผ๋กœ ๋ฌด์‹ ๋ก ์ž๊ฐ€ ๋˜๊ธฐ๊นŒ์ง€

๋‚˜๋Š” ๋ฌด์‹ ๋ก ์ž์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ฏฟ๊ณ  ์žˆ๋Š” ์ข…๊ต๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ์ข…๊ต๋Š” ์—†์ง€๋งŒ ์‹ ์€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ, ์—ญ์‹œ ๋‚˜๋Š” ์‹ , ์ ˆ๋Œ€์ž, ์กฐ๋ฌผ์ฃผ์™€ ๊ฐ™์ด ๋ถˆ๋ฆฌ๋Š” ํŠน์ • ํ•œ ์กด์žฌ๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๊ฒช์€ ๋ช‡ ๊ฐ€์ง€ ๊ฒฝํ—˜๊ณผ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด ๋‚ด๊ฐ€ ์™œ ๋ฌด์‹ ๋ก ์ž๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ์ ์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ฒฝํ—˜ 1 1992๋…„, ๋™๋„ค ์œ ์น˜์›์—์„œ ๋งŒ๋‚˜ ์นœํ•ด์ง„ ์•„์ด๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ์–ด๋А ๋‚  ๊ทธ ์•„์ด๊ฐ€ ๋‚˜์—๊ฒŒ ๊ตํšŒ๋ฅผ ๊ฐ™์ด ๊ฐ€์ž๊ณ  ๊ถŒ์œ ๋ฅผ ํ–ˆ๋‹ค. ๊ฐ€๋ฉด ๋ง›์žˆ๋Š” ๊ฑธ ์ค€๋‹ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค๊ฐ€์˜ค๋Š” ์ผ์š”์ผ์— ๊ทธ ์•„์ด์™€ ํ•จ๊ป˜ ๊ตํšŒ์— ๊ฐ€๊ฒŒ ๋˜์—ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์—„์ฒญ ๋งŽ๊ณ  ์‹œ๋„๋Ÿฝ๊ณ  ๊ธด ์˜์ž์— ๋นฝ๋บต์ด ์•‰์•„์„œ ๋ญ”๊ฐ€ ๋‘๊บผ์šด ์ฑ…์„ ์•ž์— ๋†“๊ณ  ์žˆ์—ˆ๋‹ค. ๊ณง ์ด์–ด ์ฐฌ์†ก๊ฐ€๋ฅผ ๋ถ€๋ฅด๋Š”๋ฐ ๋‚ด์šฉ์ด ํ•˜๋‚˜๋‹˜ ์–ด์ฉŒ๊ณ  ์ฒœ๊ตญ ์–ด์ฉŒ๊ณ  ํ•˜๋Š” ๋‚ด์šฉ์ด์—ˆ๋‹ค... ๋‹น์‹œ ์–ด๋ฅธ๋“ค์ด ๋ณด๊ธฐ์—๋Š” ๊ณ ์ž‘ ์œ ์น˜์›์ƒ์ด์—ˆ์ง€๋งŒ, ๋‚˜๋Š” ์†๋ฒ”์ˆ˜ ์•„์ €์”จ๊ฐ€ ์ง„ํ–‰ํ•˜๋Š” ๊ฐ€์š”ํ†ฑํ…์„ ๋ณด๊ณ  ์ž๋ž๊ธฐ ๋•Œ๋ฌธ์— ๋™์š” ๊ฐ™์€ ๊ฑด ์ˆ˜์ค€์ด ๋‚ฎ์€ ๋…ธ๋ž˜๊ณ  ๋‚˜์™€ ๋งž์ง€ ์•Š๋Š”๋‹ค๊ณ  ์• ๋Š™์€์ด ๊ฐ™์€ ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ ๋•Œ๋ฌธ์ผ๊นŒ? ๊ตํšŒ์—์„œ ๋ถ€๋ฅด๋Š” ๋…ธ๋ž˜๊ฐ€ ๊ตฌ๋ฆฌ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐ”๋กœ ์•Œ์•„์ฐจ๋ ค ๋ฒ„๋ ธ๋‹ค. ํŠนํžˆ ๊ฐ€์‚ฌ๊ฐ€ ๊ตฌ๋ ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ˆ๋ฐฐ ์ค‘๊ฐ„์— ์‹ญ์ž๊ฐ€๊ฐ€ ๊ทธ๋ ค์ง„ ๊ฐˆ์ƒ‰ ํ˜ธ๊ทธ์™€ํŠธ ๋งˆ๋ฒ•์ฃผ๋จธ๋‹ˆ๊ฐ™์€๊ฑฐ์—๋‹ค๊ฐ€ ์‚ฌ๋žŒ๋“ค์ด ๋ˆ์„ ๋„ฃ๋Š” ๊ฒƒ์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๋‚ด ๋˜๋ž˜์• ๋“ค์€ ๋ถ€๋ชจ๋‹˜๊ป˜ ์ฒœ์›์งœ๋ฆฌ๋ฅผ ๋ฐ›์•„์„œ ์ฃผ๋จธ๋‹ˆ์— ๋ˆ์„ ๋„ฃ์—ˆ๋‹ค. ๊ทธ๋•Œ ๋‹น์‹œ์—” ํ—Œ๊ธˆ์ด ๋ญ”์ง€ ๊ทธ๋ฆฌ๊ณ  ์‹ญ์ผ์กฐ๋ผ๋Š” ๊ฐœ๋…์„ ๋ชจ๋ฅธ ์ฑ„, ๊ทธ ๋งˆ๋ฒ• ์ฃผ๋จธ๋‹ˆ๊ฐ€ ์‹ ์ž๋“ค์˜ ๋ˆ์„ ๋นจ์•„๋จน๋Š” ๋ชจ์Šต์„ ๊ทธ๋ƒฅ ์ณ๋‹ค๋ณด๊ธฐ๋งŒ ํ–ˆ๋‹ค. ๋‚˜๋Š” ๋ˆ์€ ์—†๊ณ  ๊ฐ€์ง„๊ฑฐ๋ผ๊ณค ๋ถ€๋ž„ ๋‘์ง์ด ์ „๋ถ€์ธ ์œ ์น˜์›์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ์ฐฌ์†ก๊ฐ€๋ฅผ ๋ถ€๋ฅด๊ณ  ๋‚˜์„œ๋Š” ๊ธฐ๋„๋ฅผ ํ•œ๋‹ค๊ณ  ์†์— ๊น์ง€๋ฅผ ๋ผ๊ณ  ๋ˆˆ์„ ๊ฐ์œผ๋ผ๊ณ  ํ–ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์ฃผ๊ธฐ๋„๋ฌธ(?)์„ ์™ธ๋Š”๋ฐ ๋‚ด์šฉ์ด ์œ ์น˜์›์ƒ์ธ ๋‚ด๊ฒŒ๋Š” ์ถฉ๊ฒฉ์ ์ด์—ˆ๋‹ค. ์‹œ์ž‘๋ถ€ํ„ฐ ๋Œ€๋œธ "ํ•˜๋Š˜์— ๊ณ„์‹  ์šฐ๋ฆฌ ์•„๋ฒ„์ง€~" ํ•˜๋Š”๋ฐ, ์šฐ๋ฆฌ ์•„๋น ๋Š” ์ง‘์— ์ž˜ ์žˆ๋Š”๋ฐ ๋ญ” ๊ฐœ์†Œ๋ฆฌ์ธ๊ฐ€ ์‹ถ์—ˆ๋‹ค... ๊ทธ๋‚ ์˜ ์˜ˆ๋ฐฐ๊ฐ€ ๋๋‚˜๊ณ , ์š”๊ตฌ๋ฅดํŠธ์™€ ์ดˆ์ฝ”ํŒŒ์ด๋ฅผ ๋‚˜๋ˆ„์–ด ์ฃผ์—ˆ๋‹ค. ๋ง›์žˆ๊ฒŒ ์ž˜ ๋จน์—ˆ๋‹ค. ์•„๋ฉ˜. ๊บผ์–ต. ๊ตํšŒ์— ์ด์œ ๋ˆ„๋‚˜๋“ค์ด ์žˆ์–ด์„œ ์ผ...

๋ฐฉ๊ตฌ์„ ์šด๋™ - ๋ฌธํ‹€ ์ฒ ๋ด‰ (Pull up bar for doorways )

์ด๋ฏธ์ง€
๋‚˜์ด๋ฅผ ๋จน์€ ๊ฑด ํ•‘๊ณ„์— ๋ถˆ๊ณผํ•˜๊ณ , ๋ช‡ ๋…„ ์‚ฌ์ด ๊ทธ๋ƒฅ ๊ฒŒ์„๋Ÿฌ์ ธ์„œ ๋ชธ์ด ๋งŽ์ด ๋…ธ์‡ ํ•ด์กŒ๋‹ค. ๋‚ด์ผ ๋ชจ๋ ˆ ์ผํ”์„ ๋ฐ”๋ผ๋ณด๊ณ  ๊ณ„์‹  ์šฐ๋ฆฌ ์•„๋ถ€์ง€๊ฐ€ ๋‚˜๋ณด๋‹ค ๋” ๊ฑด๊ฐ•ํ•˜์‹œ๋‹ค... ์ด์ œ ์ •์‹ ์ฐจ๋ฆฌ๊ณ  ์šด๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ณจ๋กœ ๊ฐˆ ๊ฒƒ ๊ฐ™์•„์„œ ๋ฐฉ๊ตฌ์„์—์„œ๋ผ๋„ ์šด๋™์„ ์ข€ ํ•ด๋ณผ๊นŒ ํ•˜๊ณ  ๋ฌธํ‹€ ์ฒ ๋ด‰์„ ์ฃผ๋ฌธํ–ˆ๋‹ค. ๋ฐฐ์†ก์€ ์ผ์ฃผ์ผ์ „์— ์™”์ง€๋งŒ, ๋ฏธ๋ฃจ๊ณ  ๋ฏธ๋ฃจ๋‹ค ์˜ค๋Š˜์—์„œ์•ผ ์–ธ๋ฐ•์‹ฑ ํ•˜๊ณ  ์„ค์น˜๋ฅผ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์—ญ์‹œ ๋‚˜๋ž€๋†ˆ์€ ๊ธ€๋Ÿฌ๋จน์—ˆ๋‚˜๋ณด๋‹ค... ํ•˜... ๋‹น๊ทผ์— ๋‚ด๋†“์„๊นŒ? ์ผ๋‹จ ์–ธ๋ฐ•์‹ฑ & ์„ค์น˜ ๊ณ ๊ณ  ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ๋„“์ด๋Š” 75cm์—์„œ 96cm ์ด๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์ฑ…์ž๊ฐ€ ์žˆ์ง€๋งŒ, ์–ด๋ ค์›ก... ๊ผญ!! ๋ฐ˜๋“œ์‹œ ์„ค์น˜ ๋™์˜์ƒ์„ ์ฐธ๊ณ ํ•˜๋ผ๋Š” ๊ฒฝ๊ณ ๋ฌธ์ด ๋™๋ด‰ ๋˜์–ด ์žˆ๋‹ค. ๋™์˜์ƒ์„ ๋ณด๊ณ  ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์ž˜ ๋”ฐ๋ผ ํ•ด ๋ณด์ž. 3๋ฒˆ์—์„œ ๋ญ”๊ฐ€ ๋А๋‚Œ์ด ์Ž„.. ํ•˜์ง€๋งŒ ์–ธ๋ฐ•์‹ฑ์„ ํ•˜๊ณ  ์„ค์น˜๋ฅผ ํ•ด ๋ณด์ž. ๊นœ๋ฐ•ํ•˜๊ณ  ์ค‘๊ฐ„ ์„ค์น˜ ๊ณผ์ • ์‚ฌ์ง„์„ ๋ชป์ฐ์—ˆ๋‹ค. ์–ธ๋ฐ•์‹ฑ์„ ํ•˜๋‹ˆ, ๊ทธ์œฝํ•œ ์„์œ ๋ƒ„์ƒˆ๊ฐ€ ์ง„๋™์„ ํ•œ๋‹ค. 5๋…„ ์ „์— ๊ฐ”๋˜ ๋‘๋ฐ”์ด์˜ ์ถ”์–ต์ด ๋จธ๋ฆฟ์†์„ ์Šค์ณ๊ฐ€์ง€๋งŒ ์ด๋‚ด ์ •์‹ ์ฐจ๋ฆฌ๊ณ  ์„ค์น˜๋ฅผ ํ•ด๋ณด์ž. ์–‘์ชฝ ๋์„ ๋Œ๋ ค์„œ ๊ธธ์ด๋ฅผ ๋Š˜๋ ค์•ผ ํ•˜๋Š”๋ฐ, ๋‚ด๊ฐ€ ๋นก๋Œ€๊ฐ€๋ฆฌ๋ผ ๊ทธ๋Ÿฐ์ง€ ์™ผ์ชฝ ์กฐ์ •ํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ ์กฐ์ •ํ•˜๋ ค๋Š”๋ฐ ๋ฐ˜๋Œ€๋กœ ๋Œ๋ ค์„œ ๊ธธ์ด๊ฐ€ ๋‹ค์‹œ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์ด๋ ธ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์˜ค๋ฅธ์ชฝ์„ ๋Š˜๋ฆฌ๊ณ  ๋‹ค์‹œ ์™ผ์ชฝ๋„ ๋Š˜๋ฆฌ๋ ค๋Š”๋ฐ ๋ฐ˜๋Œ€๋กœ ๋Œ๋ ค์„œ ๊ธธ์ด๊ฐ€ ๋‹ค์‹œ ์ค„์–ด๋“ค๋”๋ผ... ์ด๋Ÿฐ X๊ฐ™์€ ๋งˆ์ˆ ๋ด‰! ์ด์ง“๊ฑฐ๋ฆฌ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ•˜๊ณ ์žˆ์ž๋‹ˆ ์šด๋™์€ ๊ฐœ๋ฟ” ๋•Œ๋ ค์น˜๊ณ  ํ˜ธ์‹ ์šฉ ์‡ ํŒŒ์ดํ”„๋กœ ์‚ฌ์šฉ ํ• ๊นŒ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ์–ด๋А์ •๋„ ๋ฌธํ‹€๊ธธ์ด์— ๋งž๊ฒŒ ๋˜๋ฉด, ์ œ์—์—์—์ผ ์ค‘์š”ํ•œ, ์ฒ ๋ด‰์„ ๋Œ๋ ค์„œ ๊ณ ์ • ์‹œ์ผœ์ฃผ๋Š” ์ž‘์—… ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ด๊ฑธ ์•ˆํ•˜๋ฉด ํด๋ง ์ธ์‹œ๋˜ํŠธ ๊ฐ€๋Šฅ์„ฑ ๋งค์šฐ ๋†’๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์„ธ์ดํ”„ํ‹ฐ๋ฝ(?) ์„ ํ™ˆ์— ๋งž์ถฐ๋„ฃ๊ณ  ๋Œ๋ ค์„œ ์ž ๊ฐ€์ฃผ๋ฉด ์„ค์น˜๊ฐ€ ์™„๋ฃŒ ๋˜์‹œ๊ฒ„๋‹ค. ๋งˆ์ฐธ๋‚ด! ์„ค์น˜ ์™„๋ฃŒ! ์ด์ œ ์ด ์ฃฝ์Œ์˜ ๋ฌธ์„ ์™”๋‹ค ๊ฐ”๋‹ค ์ง€๋‚˜ ์น  ๋•Œ ๋งˆ๋‹ค ๋ฌด์กฐ๊ฑด ํ„ฑ๊ฑธ์ด๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

[Shell] ์ค‘๊ด„ํ˜ธ ํ™•์žฅ (Curly Braces Extension)

 ์ค‘๊ด„ํ˜ธ ํ™•์žฅ ์€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฌธ์ž์—ด ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜๋Š” ์œ ์šฉํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด 1๋ถ€ํ„ฐ 10 ๊นŒ์ง€ ์ŠคํŽ˜์ด์Šค๋กœ ๊ตฌ๋ถ„๋œ ์ถœ๋ ฅ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. $ echo {1..10} 1 2 3 4 5 6 7 8 9 10 ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ touch {a..z}.txt $ ls a.txt c.txt e.txt g.txt i.txt k.txt m.txt o.txt q.txt s.txt u.txt w.txt y.txt b.txt d.txt f.txt h.txt j.txt l.txt n.txt p.txt r.txt t.txt v.txt x.txt z.txt ์ข€ ๋” ์‘์šฉ ํ•˜๋ฉด ๋ฐฑ์—…ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋ฐ์—๋„ ์ˆ˜์›” ํ•ฉ๋‹ˆ๋‹ค. $ ls | grep -e "[a-z]\.txt" | xargs -I{} cp {}{,.bak} $ ls a.txt c.txt.bak f.txt h.txt.bak k.txt m.txt.bak p.txt r.txt.bak u.txt w.txt.bak z.txt a.txt.bak d.txt f.txt.bak i.txt k.txt.bak n.txt p.txt.bak s.txt u.txt.bak x.txt z.txt.bak b.txt d.txt.bak g.txt i.txt.bak l.txt n.txt.bak q.txt s.txt.bak v.txt x.txt.bak b.txt.bak e.txt g.txt.bak j.txt l.txt.bak o.txt q.txt.bak t.txt v.txt.bak y.txt c.txt e.txt.bak h.txt j.txt.bak m.txt o.txt.bak r....

[Linux] ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ ์ฐพ๊ธฐ (Find file including string)

์ด๋ฏธ์ง€
  ํ‰์†Œ ํŒŒ์ผ์„ ์ฐพ๊ธฐ์œ„ํ•ด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ์ž…๋‹ˆ๋‹ค. find . -name "*.*" | xargs grep -ns --color=auto "๊ฒ€์ƒ‰ํ‚ค์›Œ๋“œ" ์‚ฌ์šฉ ์‰˜ ์ปค๋งจ๋“œ : find, xargs, grep ( Windows ์—์„œ๋Š”  POSIX๊ธฐ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ๋™์„ ์œ„ํ•ด Cygwin ๋˜๋Š” MinGW ๋ฅผ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค. ) find : ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น -name "๊ฒ€์ƒ‰ํŒจํ„ด" : ์ง€์ •๋œ ๋ฌธ์ž์—ด ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ ๊ฒ€์ƒ‰ ( *.* : ๋ชจ๋“  ํŒŒ์ผ ํ˜•์‹ ) xargs : ํŒŒ์ดํ”„๋กœ ๋„˜๊ฒจ๋ฐ›๋Š” ์•ž ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ xargs ๋‹ค์Œ ๋ช…๋ น์–ด์˜ ์ธ์ž(Arguments)๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๋ช…๋ น grep :  ์ž…๋ ฅ์œผ๋กœ ์ „๋‹ฌ๋œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์—์„œ ํŠน์ • ๋ฌธ์ž์—ด์„ ์ฐพ๊ณ ์žํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น -n : ๋งค์นญ๋œ ๋ผ์ธ์„ ์ถœ๋ ฅํ•  ๋•Œ ํŒŒ์ผ ๋ผ์ธ ๋ฒˆํ˜ธ๋ฅผ ํ•จ๊ป˜ ์ถœ๋ ฅ ํ•จ. -s : ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š์Œ. --color=auto : ๊ฒฐ๊ณผ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปฌ๋Ÿฌ๋กœ ์ถœ๋ ฅ ํ•จ.  ์‚ฌ์šฉ ์˜ˆ์ œ) ๊ฒŒ์ž„์—์„œ ์‚ฌ์šฉ ๋˜๋Š”  ํŒŒ์ผ ์œ„์น˜์™€ ์ด๋ฆ„ ์ด ๊ถ๊ธˆํ•  ๊ฒฝ์šฐ, ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฒ€์ƒ‰ ํ•  ์ˆ˜ ์žˆ์Œ. 1. ๊ฒŒ์ž„์ด ์„ค์น˜๋œ ํด๋”๋กœ ์ด๋™. 2. ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ "๋งˆํ‹ธ๋‹ค" ๋กœ ๊ฒ€์ƒ‰. ( find . -name "*.*" | xargs grep -ns --color=auto "๋งˆํ‹ธ๋‹ค" ) 3. ํŒŒ์ผ ์œ„์น˜ ๋ฐ ์ด๋ฆ„๊ณผ "๋งˆํ‹ธ๋‹ค" ๋ฌธ์ž์—ด์ด ํŒŒ์ผ์˜ ๋ช‡ ๋ฒˆ์งธ ๋ผ์ธ์— ์œ„์น˜ํ•˜๋Š”์ง€ ํ™•์ธ. 

์ •๊ทœํ‘œํ˜„์‹ (Regular Expression)

  ์ •๊ทœํ‘œํ˜„์‹์ด๋ž€? ํŠน์ •ํ•œ ๊ทœ์น™ ์„ ๊ฐ€์ง„ ๋ฌธ์ž์—ด์˜ ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹ ์–ธ์–ด. ์ •๊ทœํ‘œํ˜„์‹์€  ์ •๊ทœ๋ฌธ์ž (๋ฌธ์ž ๊ทธ๋Œ€๋กœ์˜ ์˜๋ฏธ),  ๋ฉ”ํƒ€๋ฌธ์ž (ํŠน๋ณ„ํ•œ ์˜๋ฏธ), ๋˜๋Š” ์ด๋“ค์˜ ์กฐํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ ๋จ. ์ •๊ทœ ํ‘œํ˜„์‹์€ ๋งŽ์€ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฌธ์ž์—ด์˜  ๊ฒ€์ƒ‰ ๊ณผ  ์น˜ํ™˜ ํ•˜๋Š”๋ฐ ์šฉ์ดํ•˜๋‹ค. ์ •๊ทœํ‘œํ˜„์‹ ๋ฉ”ํƒ€๋ฌธ์ž๋Š” ์•„๋ž˜๋ฅผ ์ฐธ๊ณ . ๋ฉ”ํƒ€๋ฌธ์ž ์„ค๋ช… . new line (line feed) ๋ฅผ ์ œ์™ธํ•œ  1๊ฐœ์˜ ์ž„์˜์˜ ๋ฌธ์ž ์™€ ์ผ์น˜ ํ•จ ? ์•ž์— ์œ„์น˜ํ•œ ์ •๊ทœํ‘œํ˜„์‹ ๋˜๋Š” ๋ฌธ์ž๊ฐ€  0๊ฐœ ๋˜๋Š” 1๊ฐœ ์ธ ๊ฒƒ๊ณผ ์ผ์น˜ ํ•จ. * ์•ž์— ์œ„์น˜ํ•œ ์ •๊ทœํ‘œํ˜„์‹ ๋˜๋Š” ๋ฌธ์ž๊ฐ€  0๊ฐœ ์ด์ƒ ๋ฐ˜๋ณต ๋˜๋Š” ๊ฒƒ๊ณผ ์ผ์น˜ ํ•จ. + ์•ž์— ์œ„์น˜ํ•œ ์ •๊ทœํ‘œํ˜„์‹ ๋˜๋Š” ๋ฌธ์ž๊ฐ€  1๊ฐœ ์ด์ƒ ๋ฐ˜๋ณต ๋˜๋Š” ๊ฒƒ๊ณผ ์ผ์น˜ ํ•จ. {n} ์ •ํ™•ํžˆ n๋ฒˆ ์ผ์น˜ ํ•จ. {n,} n๋ฒˆ ๋˜๋Š” ๊ทธ ์ด์ƒ ์ผ์น˜ ํ•จ. {n,m} ์ ์–ด๋„ n๋ฒˆ ์ผ์น˜ํ•˜์ง€๋งŒ m๋ฒˆ์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.  n <= ์ผ์น˜ ํšŸ์ˆ˜ < m ^ ๋ฌธ์ž์—ด์ด๋‚˜ ํ–‰์˜ ์ฒ˜์Œ์„ ์˜๋ฏธ. $ ๋ฌธ์ž์—ด์ด๋‚˜ ํ–‰์˜ ๋์„ ์˜๋ฏธ. ( ) ์—ฌ๋Ÿฌ ์ •๊ทœํ‘œํ˜„์‹์„ ํ•˜๋‚˜๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค. | ์—ฌ๋Ÿฌ ์ •๊ทœํ‘œํ˜„์‹ ๋˜๋Š” ๋ฌธ์ž ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒ ํ•จ. ๋ฌธ์ž ํด๋ž˜์Šค ํ•˜๋‚˜์˜ ์ž‘์€ ์ผ๋ จ์˜ ๋ฌธ์ž์—ด๋“ค์„ ๋” ํฐ ์ง‘ํ•ฉ์˜ ๋ฌธ์ž์—ด๋“ค๊ณผ ์ผ์น˜์‹œํ‚ค๋„๋ก ํ•จ. ์ •๊ทœ ํ‘œํ˜„์‹ ์ž‘์„ฑ์— ์œ ์šฉ ํ•จ. ๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ๊ตฌ๋ถ„์— ์œ ์˜. ๋ธŒ๋ž˜ํ‚ท Vim ASCII ์„ค๋ช… [:lower:] \l [a-z] ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž ์ง‘ํ•ฉ [:upper:] \u [A-Z] ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž ์ง‘ํ•ฉ [:alpha:] \a [A-Za-z] ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž ์ง‘ํ•ฉ [:digit:] \d [0-9] ์ˆซ์ž ์ง‘ํ•ฉ \D [^0-9] ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋“ค์˜ ์ง‘ํ•ฉ [:xdigit:] \x [A-Fa-f0-9] 16์ง„์ˆ˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž ๋ฐ ๋ฌธ์ž ์ง‘ํ•ฉ [:alnum:...

[Linux] make - 3

์ด๋ฏธ์ง€
 ์ด์   Makefile ์„ src ์— ๋‘์ง€ ์•Š๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ๋”ฐ๋กœ ์ƒ์œ„ ํด๋”๋กœ ๋ถ„๋ฆฌ ํ•ด ๋ณด์ž /* include/my_math.h */ int add ( int x, int y) ; int subtract ( int x, int y) ; int multiply ( int x, int y) ; int divide ( int x, int y) ; ​ /* src/main.c */ # include <stdio.h> # include <pthread.h> # include <my_math.h> void * thread_func ( void *data) { printf ( "[%s]\n" , __func__); printf ( "%d\n" , add( 10 , 5 )); printf ( "%d\n" , subtract( 10 , 5 )); printf ( "%d\n" , multiply( 10 , 5 )); printf ( "%d\n" , divide( 10 , 5 )); return 0 ; } int main ( void ) { pthread_t thread; pthread_create(&thread, 0 , thread_func, 0 ); pthread_join(thread, 0 ); return 0 ; } /* src/add.c */ # include <my_math.h> int add ( int x, int y) { return x + y; } //----------------------------------------------------------------------------------...

[Linux] make - 2

์ด๋ฏธ์ง€
 ์ด์ „ ์˜ˆ์ œ์—์„œ๋Š” ์†Œ์ŠคํŒŒ์ผ๊ณผ ํ—ค๋”ํŒŒ์ผ์ด ๋™์ผํ•œ ๊ฒฝ๋กœ์— ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” cํŒŒ์ผ์€ src ํด๋”์—, hํŒŒ์ผ์€ include ํด๋”์— ๋‚˜๋ˆ„์–ด ์œ„์น˜ ์‹œํ‚ค๊ณ  ์ปดํŒŒ์ผ์„ ํ•ด ๋ณด์ž. ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. /* include/add.h */ int add ( int x, int y) ; /* src/add.c */ # include <add.h> int add ( int x, int y) { return x + y; } /* main.c */ # include <stdio.h> # include <add.h> int main ( void ) { int value = 0 ; value = add( 3 , 5 ); printf ( "%d\n" , value); return 0 ; } Make ํŒŒ์ผ์€ src ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๊ณ , ํ—ค๋”ํŒŒ์ผ์€ include ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์œผ๋ฏ€๋กœ, -I../include ๋ฅผ ์ถ”๊ฐ€ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. # src/Makefile CC = gcc CFLAGS = -I../ include -c TARGET = result OBJS = main.o add.o $(TARGET) : $(OBJS) $(CC) $(OBJS) -o $(TARGET) %.o: %.c $(CC) $(CFLAGS) $< clean: rm -rf $(OBJS) $(TARGET) ์ด๋ฒˆ์—” ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ์‚ดํŽด ๋ณด์ž. /* src/main.c */ # include <stdio.h> # include <pthread.h> void * thread_func ( void *data) { printf ( "%s\n" , __func__); } int main ( void ) { ...