{"id":181,"date":"2026-05-13T09:24:40","date_gmt":"2026-05-13T01:24:40","guid":{"rendered":"https:\/\/junai.ai\/blog\/linux-pipe-redirection-12\/"},"modified":"2026-05-13T09:24:40","modified_gmt":"2026-05-13T01:24:40","slug":"linux-pipe-redirection-12","status":"publish","type":"post","link":"https:\/\/junai.ai\/blog\/linux-pipe-redirection-12\/","title":{"rendered":"\ub9ac\ub205\uc2a4 \ud30c\uc774\ud504\uc640 \ub9ac\ub2e4\uc774\ub809\uc158 \u2014 \uba85\ub839 \uc870\ub9bd \uc644\uc804 \uc815\ub9ac (12\ud3b8)"},"content":{"rendered":"\n<!-- WordPress REST API \ubc1c\ud589\uc6a9 HTML (\uc790\ub3d9 \uc0dd\uc131) -->\n<!-- WP-FEATURED-MEDIA-ID: 171 -->\n<div style=\"max-width:800px;margin:0 auto;\">\n<style>\n:root{\n  --color-primary:#1e40af;--color-accent:#3b82f6;--color-bg:#fafafa;--color-bg-card:#ffffff;\n  --color-text:#1e293b;--color-text-muted:#64748b;--hero-start:#0f172a;--hero-end:#1e40af;\n  --font-body:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;\n  --size-body:17px;--line-height:1.75;--h1-size:32px;--h2-size:27px;--h3-size:20px;\n}\n*{margin:0;padding:0;box-sizing:border-box;}\n.wrap{max-width:760px;margin:0 auto;padding:0 20px;}\n.hero{background:linear-gradient(135deg,var(--hero-start) 0%,var(--hero-end) 100%);color:#fff;padding:64px 0 56px;text-align:center;}\n.hero .eyebrow{display:inline-block;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:#93c5fd;font-weight:700;margin-bottom:16px;}\n.hero h1{font-size:var(--h1-size);line-height:1.32;letter-spacing:-0.3px;font-weight:800;margin-bottom:18px;}\n.hero p.sub{font-size:18px;color:#cbd5e1;max-width:620px;margin:0 auto;}\n.hero .meta{margin-top:22px;font-size:14px;color:#94a3b8;}\n.hero-img{display:block;width:100%;height:auto;}\narticle{padding:48px 0 24px;}\narticle h2{font-size:var(--h2-size);line-height:1.35;letter-spacing:-0.3px;font-weight:800;margin:48px 0 18px;padding-left:14px;border-left:5px solid var(--color-primary);}\narticle h2:first-of-type{margin-top:8px;}\narticle h3{font-size:var(--h3-size);font-weight:700;margin:28px 0 10px;color:#0f172a;}\narticle p{margin:0 0 18px;}\narticle ul,article ol{margin:0 0 18px 4px;padding-left:22px;}\narticle li{margin-bottom:9px;}\narticle strong{color:#0f172a;font-weight:700;}\narticle a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px;}\narticle code{background:#0f172a;color:#e2e8f0;padding:2px 7px;border-radius:5px;font-size:0.9em;font-family:'SF Mono',Menlo,Consolas,monospace;}\n.intro p:first-child{font-size:19px;color:#334155;}\n.notice{background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;padding:14px 18px;margin:0 0 30px;font-size:15px;color:#3730a3;}\n.notice b{color:#312e81;}\n.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:22px 0;}\ntable{width:100%;border-collapse:collapse;font-size:15px;background:var(--color-bg-card);}\nth,td{padding:11px 12px;text-align:left;border-bottom:1px solid #e2e8f0;vertical-align:top;}\nth{background:#f1f5f9;font-weight:700;color:#0f172a;}\ntd:first-child,th:first-child{font-weight:700;}\n@media (max-width:560px){\n  .tablewrap table,.tablewrap thead,.tablewrap tbody,.tablewrap tr,.tablewrap th,.tablewrap td{display:block;width:auto;}\n  .tablewrap thead{display:none;}\n  .tablewrap tr{margin:0 0 14px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;}\n  .tablewrap td{border:none;border-bottom:1px solid #f1f5f9;padding:9px 14px;}\n  .tablewrap td:first-child{background:#f1f5f9;font-weight:800;font-size:15.5px;}\n  .tablewrap td:last-child{border-bottom:none;}\n  .tablewrap td[data-label]::before{content:attr(data-label) \" \u2014 \";font-weight:700;color:var(--color-primary);}\n}\n.databox{background:#eff6ff;border-left:4px solid var(--color-accent);border-radius:0 8px 8px 0;padding:16px 18px;margin:20px 0;font-size:15.5px;}\n.databox b{color:var(--color-primary);}\n.warnbox{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border-radius:10px;padding:16px 18px;margin:22px 0;font-size:15.5px;color:#78350f;}\n.cmd{background:#0f172a;color:#e2e8f0;border-radius:10px;padding:14px 16px;margin:14px 0;font-family:'SF Mono',Menlo,Consolas,monospace;font-size:14px;line-height:1.8;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:pre-wrap;}\n.cmd .c{color:#7dd3fc;}\n.cmd .o{color:#94a3b8;}\n.cmd .g{color:#fde68a;}\n.roadmap{background:var(--color-bg-card);border:1px solid #e2e8f0;border-radius:12px;padding:18px 20px;margin:24px 0;font-size:15px;}\n.roadmap h3{margin:0 0 10px;font-size:17px;color:#0f172a;}\n.roadmap ol{margin:0 0 0 4px;padding-left:20px;}\n.roadmap li{margin-bottom:5px;color:#475569;}\n.cta{background:#0f172a;color:#e2e8f0;border-radius:14px;padding:26px 24px;margin:40px 0 8px;text-align:center;}\n.cta h3{color:#fff;margin:0 0 8px;font-size:19px;}\n.cta p{margin:0 0 4px;font-size:15px;color:#cbd5e1;}\nfooter{padding:30px 0 50px;text-align:center;color:var(--color-text-muted);font-size:13.5px;}\n@media (max-width:480px){:root{--h1-size:23px;--h2-size:20px;--size-body:16px;}.hero{padding:48px 0 40px;}article{padding:34px 0 16px;}.cmd{font-size:12.5px;}}\n<\/style>\n<header class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"eyebrow\">\uc6b0\ubd84\ud22c \u00b7 \ub9ac\ub205\uc2a4 \uc785\ubb38 \u2014 12\ud3b8 (\uae30\ucd08)<\/span>\n    <h1>\ub9ac\ub205\uc2a4 \ud30c\uc774\ud504\uc640 \ub9ac\ub2e4\uc774\ub809\uc158 \u2014 | &gt; &gt;&gt; 2&gt;<\/h1>\n    <p class=\"sub\">\ub9ac\ub205\uc2a4\uac00 &#8220;\uc791\uc740 \ub3c4\uad6c\ub97c \uc870\ub9bd\ud574 \ud070 \uc77c\uc744 \ud55c\ub2e4&#8221;\uace0 \ud588\uc8e0. \uadf8 \uc870\ub9bd\uc744 \uac00\ub2a5\ud558\uac8c \ud558\ub294 \uac8c \uc774 \uae30\ud638 \uba87 \uac1c\uc785\ub2c8\ub2e4 \u2014 \uc774\uac78 \uc54c\uba74 \uba85\ub839\uc904\uc774 \uac11\uc790\uae30 \uac15\ub825\ud574\uc838\uc694.<\/p>\n    <p class=\"meta\">2026\ub144 5\uc6d4 12\uc77c \u00b7 \uc57d 8\ubd84 \u00b7 26\ud3b8 \uc785\ubb38 \uc2dc\ub9ac\uc988 12\ud3b8<\/p>\n  <\/div>\n<\/header>\n\n<img decoding=\"async\" class=\"hero-img\" src=\"https:\/\/junai.ai\/blog\/wp-content\/uploads\/2026\/05\/hero-15.jpg\" alt=\"\ud130\ubbf8\ub110\uc5d0\uc11c \uba85\ub839\uc5b4\ub97c \ud30c\uc774\ud504\uc640 \ub9ac\ub2e4\uc774\ub809\uc158\uc73c\ub85c \uc5f0\uacb0\ud55c \ud654\uba74 \u2014 \ub9ac\ub205\uc2a4 \ud30c\uc774\ud504\uc640 \ub9ac\ub2e4\uc774\ub809\uc158\uc744 \uc0c1\uc9d5\ud558\ub294 \uc77c\ub7ec\uc2a4\ud2b8\">\n\n<div class=\"wrap\">\n<article>\n\n  <div class=\"intro\">\n    <p>7\ud3b8\uc5d0\uc11c <code>sort fruits.txt | uniq -c<\/code> \ud55c \uc904\ub85c &#8220;\uacfc\uc77c\ubcc4 \uac1c\uc218&#8221;\uac00 \ub098\uc624\ub294 \uac78 \ubd24\uc8e0. &#8220;\uc791\uc740 \ub3c4\uad6c\ub97c \ud30c\uc774\ud504\ub85c \uc870\ub9bd\ud55c\ub2e4&#8221; \u2014 \uadf8\uac8c \ub9ac\ub205\uc2a4\uc758 \ucca0\ud559\uc774\ub77c\uace0\ub3c4 \ud588\uace0\uc694. \uc774\ubc88 \ud3b8\uc740 \uadf8 <strong>\uc870\ub9bd \uae30\ud638\ub4e4<\/strong>\uc744 \uc81c\ub300\ub85c \uc815\ub9ac\ud569\ub2c8\ub2e4: \ud30c\uc774\ud504 <code>|<\/code>, \ub9ac\ub2e4\uc774\ub809\uc158 <code>&gt;<\/code>\u00b7<code>&gt;&gt;<\/code>\u00b7<code>&lt;<\/code>, \uadf8\ub9ac\uace0 \uc5d0\ub7ec\ub97c \ub530\ub85c \ub2e4\ub8e8\ub294 <code>2&gt;<\/code>\u00b7<code>2&gt;&amp;1<\/code>\u00b7<code>\/dev\/null<\/code>.<\/p>\n    <p>\uba3c\uc800 \uba38\ub9bf\uc18d\uc5d0 \uadf8\ub9bc \ud558\ub098 \u2014 \ubaa8\ub4e0 \uba85\ub839\uc5d0\ub294 <strong>\uc785\uad6c \ud558\ub098, \ucd9c\uad6c \ub458<\/strong>\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub4e4\uc5b4\uc624\ub294 \uacf3(<strong>stdin<\/strong>), \uc815\uc0c1 \uacb0\uacfc\uac00 \ub098\uac00\ub294 \uacf3(<strong>stdout<\/strong>), \uc5d0\ub7ec \uba54\uc2dc\uc9c0\uac00 \ub098\uac00\ub294 \uacf3(<strong>stderr<\/strong>). \ud3c9\uc18c\uc5d4 stdin=\ud0a4\ubcf4\ub4dc, stdout\u00b7stderr=\ud654\uba74. \ub9ac\ub2e4\uc774\ub809\uc158\uacfc \ud30c\uc774\ud504\ub294 \uadf8 \uc785\uad6c\u00b7\ucd9c\uad6c\ub97c <strong>\ub2e4\ub978 \ub370\ub85c \ub3cc\ub9ac\ub294<\/strong> \uc7a5\uce58\uc608\uc694 \u2014 \ucd9c\uad6c\ub97c \ud30c\uc77c\ub85c(<code>&gt;<\/code>), \ub610\ub294 \ub2e4\uc74c \uba85\ub839\uc758 \uc785\uad6c\ub85c(<code>|<\/code>). <strong>26\ud3b8 \uc785\ubb38 \uc2dc\ub9ac\uc988 12\ud3b8<\/strong>, \uc5ec\uae30\uae4c\uc9c0\uac00 &#8220;\uae30\ucd08&#8221; \ubb36\uc74c\uc785\ub2c8\ub2e4.<\/p>\n  <\/div>\n\n  <div class=\"notice\">\n    <b>\uc900\ube44\ubb3c \u2014<\/b> \uc6b0\ubd84\ud22c + \ud130\ubbf8\ub110. 6\ud3b8(\ud30c\uc77c \uba85\ub839\uc5b4)\u00b77\ud3b8(\ud14d\uc2a4\ud2b8 \uba85\ub839\uc5b4 \u2014 \ud30c\uc774\ud504 \ub9db\ubcf4\uae30)\uc744 \ubd24\ub2e4\uba74 \ubc14\ub85c \uc774\uc5b4\uc9d1\ub2c8\ub2e4. 6\ud3b8\uc5d0\uc11c \ub9cc\ub4e0 <code>~\/linux-practice<\/code>\uc5d0\uc11c \uc2e4\uc2b5\ud558\uc138\uc694. \ub2e4 \uc548\uc804\ud55c \uba85\ub839\uc785\ub2c8\ub2e4.\n  <\/div>\n\n  <h2>\uc785\uad6c \ud558\ub098, \ucd9c\uad6c \ub458 \u2014 stdin \u00b7 stdout \u00b7 stderr<\/h2>\n  <p>\ub9ac\ub205\uc2a4\uc5d0\uc11c \ubaa8\ub4e0 \uba85\ub839\uc740 \uc774 \uc138 \uac1c\uc758 &#8220;\ud1b5\ub85c&#8221;\ub97c \uac00\uc9d1\ub2c8\ub2e4. \ubc88\ud638\uac00 \ubd99\uc5b4 \uc788\uc5b4\uc694 \u2014 \uc774 \ubc88\ud638\uac00 \ub098\uc911\uc5d0 <code>2&gt;<\/code> \uac19\uc740 \ub370\uc11c \uc4f0\uc785\ub2c8\ub2e4.<\/p>\n  <div class=\"tablewrap\">\n  <table>\n    <thead><tr><th>\ud1b5\ub85c (\ubc88\ud638)<\/th><th>\ubb54\uac00 \/ \ud3c9\uc18c \uc5f0\uacb0 \ub300\uc0c1<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td>stdin (0)<\/td><td data-label=\"\ubb54\uac00\">\ud45c\uc900 \uc785\ub825 \u2014 \uba85\ub839\uc774 \ub370\uc774\ud130\ub97c <strong>\ubc1b\ub294<\/strong> \uacf3. \ud3c9\uc18c\uc5d4 \ud0a4\ubcf4\ub4dc. \ud30c\uc774\ud504 <code>|<\/code>\ub85c \uc55e \uba85\ub839\uc758 \ucd9c\ub825\uc744 \uc5ec\uae30\ub85c \ud758\ub824\ubcf4\ub0c4.<\/td><\/tr>\n      <tr><td>stdout (1)<\/td><td data-label=\"\ubb54\uac00\">\ud45c\uc900 \ucd9c\ub825 \u2014 \uba85\ub839\uc758 <strong>\uc815\uc0c1 \uacb0\uacfc<\/strong>\uac00 \ub098\uac00\ub294 \uacf3. \ud3c9\uc18c\uc5d4 \ud654\uba74. <code>&gt;<\/code>\u00b7<code>&gt;&gt;<\/code>\ub85c \ud30c\uc77c\uc5d0 \ub2f4\uc744 \uc218 \uc788\uc74c.<\/td><\/tr>\n      <tr><td>stderr (2)<\/td><td data-label=\"\ubb54\uac00\">\ud45c\uc900 \uc5d0\ub7ec \u2014 <strong>\uc5d0\ub7ec\u00b7\uacbd\uace0 \uba54\uc2dc\uc9c0<\/strong>\ub9cc \ub530\ub85c \ub098\uac00\ub294 \uacf3. \ud3c9\uc18c\uc5d4 \ud654\uba74(\uadf8\ub798\uc11c stdout\uacfc \uc11e\uc5ec \ubcf4\uc784). <code>2&gt;<\/code>\ub85c \ub530\ub85c \ube84 \uc218 \uc788\uc74c.<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p>\uc65c \uc815\uc0c1 \uacb0\uacfc(1)\uc640 \uc5d0\ub7ec(2)\ub97c \ub530\ub85c \ub458\uae4c\uc694? \u2014 \uadf8\ub798\uc57c &#8220;\uacb0\uacfc\ub9cc \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud558\uace0, \uc5d0\ub7ec\ub294 \ud654\uba74\uc5d0\uc11c \ub530\ub85c \ubcf4\uae30&#8221; \uac19\uc740 \uac8c \ub429\ub2c8\ub2e4. \ud3c9\uc18c \ud654\uba74\uc5d0\uc120 \ub458\uc774 \uc11e\uc5ec \ub098\uc640\uc11c \uad6c\ubd84\uc774 \uc548 \uac00\uc9c0\ub9cc, \ub9ac\ub2e4\uc774\ub809\uc158\uc744 \uc4f0\uba74 \uac01\uac01 \ub2e4\ub978 \ub370\ub85c \ubcf4\ub0bc \uc218 \uc788\uc5b4\uc694. \uc774\uac8c \ud575\uc2ec \uc544\uc774\ub514\uc5b4\uc785\ub2c8\ub2e4.<\/p>\n\n  <h2>\ub9ac\ub2e4\uc774\ub809\uc158 \u2014 &gt; \u00b7 &gt;&gt; \u00b7 &lt;<\/h2>\n  <p>&#8220;\ucd9c\uad6c(\ub610\ub294 \uc785\uad6c)\ub97c \ud654\uba74\/\ud0a4\ubcf4\ub4dc \ub300\uc2e0 \ud30c\uc77c\ub85c.&#8221; \uc138 \uac00\uc9c0\uba74 \ucda9\ubd84\ud569\ub2c8\ub2e4.<\/p>\n  <div class=\"cmd\"><span class=\"c\">$<\/span> ls ~ &gt; home-list.txt\n<span class=\"o\">                       \u2190 ls \uc758 \uacb0\uacfc(stdout)\ub97c \ud654\uba74\uc774 \uc544\ub2c8\ub77c home-list.txt \uc5d0 \uc800\uc7a5. \ud30c\uc77c \uc788\uc73c\uba74 \ub36e\uc5b4\uc500<\/span>\n<span class=\"c\">$<\/span> echo &#8220;\ucd94\uac00 \uc904&#8221; &gt;&gt; home-list.txt\n<span class=\"o\">                       \u2190 &gt;&gt; \ub294 &#8216;\uc774\uc5b4\uc4f0\uae30&#8217;. \ud30c\uc77c \ub05d\uc5d0 \ub367\ubd99\uc784 (\ub36e\uc5b4\uc4f0\uae30 X). \ub85c\uadf8 \ubaa8\uc744 \ub54c \uc790\uc8fc<\/span>\n<span class=\"c\">$<\/span> cat home-list.txt\n<span class=\"o\">                       \u2190 \uc798 \ub2f4\uacbc\ub294\uc9c0 \ud655\uc778 (7\ud3b8\uc758 cat)<\/span>\n<span class=\"c\">$<\/span> sort &lt; fruits.txt\n<span class=\"o\">                       \u2190 &lt; \ub294 &#8216;\ud30c\uc77c\uc744 \uc785\ub825(stdin)\uc73c\ub85c&#8217;. = sort fruits.txt \uc640 \uacb0\uacfc \uac19\uc74c (\ubcf4\ud1b5 \uc778\uc790\ub97c \uc4f0\uc9c0\ub9cc, \uc774\ub7f0 \ud615\ud0dc\ub3c4 \uc788\ub2e4\ub294 \uac83\ub9cc)<\/span><\/div>\n  <div class=\"warnbox\"><strong>\u26a0\ufe0f <code>&gt;<\/code> \ub294 \ubb3b\uc9c0 \uc54a\uace0 \ub36e\uc5b4\uc501\ub2c8\ub2e4<\/strong> \u2014 \ub418\ub3cc\ub9ac\uae30 \uc5c6\uc74c. \uc911\uc694\ud55c \ud30c\uc77c \uc774\ub984\uc73c\ub85c <code>\uba85\ub839 &gt; \uc911\uc694\ud30c\uc77c.txt<\/code> \ud558\uba74 \uadf8 \ud30c\uc77c \ub0b4\uc6a9\uc774 \uadf8 \uba85\ub839\uc758 \ucd9c\ub825\uc73c\ub85c \ud1b5\uc9f8\ub85c \ubc14\ub01d\ub2c8\ub2e4. \uc774\uc5b4 \ubd99\uc774\uace0 \uc2f6\uc744 \ub550 \ubc18\ub4dc\uc2dc <code>&gt;&gt;<\/code>. \uadf8\ub9ac\uace0 <code>cat a &gt; a<\/code> \ucc98\ub7fc \uac19\uc740 \ud30c\uc77c\uc744 \uc785\ub825\uc774\uc790 \ucd9c\ub825\uc73c\ub85c \uc4f0\uba74 \ub0b4\uc6a9\uc774 \ub0a0\uc544\uac00\uc694 \u2014 \ud558\uc9c0 \ub9c8\uc138\uc694.<\/div>\n\n  <h2>\uc5d0\ub7ec \ub530\ub85c \ub2e4\ub8e8\uae30 \u2014 2&gt; \u00b7 2&gt;&amp;1 \u00b7 \/dev\/null<\/h2>\n  <p>\uc5ec\uae30\uac00 \ucc98\uc74c \ubcf4\uba74 \ud5f7\uac08\ub9ac\ub294\ub370, \ud328\ud134 \uba87 \uac1c\ub9cc \uc678\uc6b0\uba74 \ub429\ub2c8\ub2e4.<\/p>\n  <div class=\"cmd\"><span class=\"c\">$<\/span> ls ~ \/\uc5c6\ub294\ud3f4\ub354 &gt; out.txt 2&gt; err.txt\n<span class=\"o\">                       \u2190 \uc815\uc0c1\uacb0\uacfc\ub294 out.txt \ub85c(1=stdout), \uc5d0\ub7ec\ub294 err.txt \ub85c(2=stderr) \u2014 \ub530\ub85c\ub530\ub85c<\/span>\n<span class=\"c\">$<\/span> \uba85\ub839 &gt; all.txt 2&gt;&amp;1\n<span class=\"o\">                       \u2190 2&gt;&amp;1 = &#8220;\uc5d0\ub7ec(2)\ub3c4 \ucd9c\ub825(1)\uc774 \uac00\ub294 \ub370\ub85c \ud569\uccd0\ub77c&#8221; \u2192 \uc815\uc0c1+\uc5d0\ub7ec \uc804\ubd80 all.txt \uc5d0. \uc21c\uc11c \uc911\uc694: &gt; \uba3c\uc800, 2&gt;&amp;1 \ub4a4<\/span>\n<span class=\"c\">$<\/span> \uba85\ub839 &amp;&gt; all.txt\n<span class=\"o\">                       \u2190 \uc704\uc640 \uac19\uc740 \ub73b\uc758 \uc9e7\uc740 \ud45c\uae30 (bash). &#8220;stdout+stderr \ub458 \ub2e4 all.txt \ub85c&#8221;<\/span>\n<span class=\"c\">$<\/span> \uc2dc\ub044\ub7ec\uc6b4\uba85\ub839 2&gt; \/dev\/null\n<span class=\"o\">                       \u2190 \/dev\/null = &#8216;\ub9ac\ub205\uc2a4\uc758 \ube14\ub799\ud640&#8217;. \uc5d0\ub7ec \uba54\uc2dc\uc9c0\ub97c \uadf8\ub0e5 \ubc84\ub9bc(\uc548 \ubcf4\uace0 \uc2f6\uc744 \ub54c)<\/span>\n<span class=\"c\">$<\/span> \uba85\ub839 &gt; \/dev\/null 2&gt;&amp;1\n<span class=\"o\">                       \u2190 \uc815\uc0c1\uacb0\uacfc\ub3c4 \uc5d0\ub7ec\ub3c4 \uc804\ubd80 \ubc84\ub9bc (&#8220;\uc544\ubb34\uac83\ub3c4 \ucd9c\ub825\ud558\uc9c0 \ub9c8&#8221;). cron \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \uc790\uc8fc \ubd04<\/span><\/div>\n  <p>\uc81c\uc77c \ub9ce\uc774 \uc4f0\ub294 \ub458\ub9cc \uae30\uc5b5\ud558\uc138\uc694 \u2014 <strong><code>2&gt; \/dev\/null<\/code><\/strong>(&#8220;\uc5d0\ub7ec\ub294 \uc870\uc6a9\ud788 \ubb34\uc2dc&#8221;) \uacfc <strong><code>&gt; \ud30c\uc77c 2&gt;&amp;1<\/code><\/strong>(&#8220;\uc815\uc0c1+\uc5d0\ub7ec \uc804\ubd80 \uc774 \ud30c\uc77c\uc5d0 \ub85c\uadf8&#8221;). \ub098\uba38\uc9c0\ub294 \ud544\uc694\ud560 \ub54c \uc704 \ud45c \ubcf4\uace0 \uc870\ud569\ud558\uba74 \ub429\ub2c8\ub2e4. (\ucc38\uace0\ub85c cron \uc791\uc5c5 \uc904 \ub05d\uc5d0 \ud754\ud788 \ubd99\ub294 <code>&gt;\/dev\/null 2&gt;&amp;1<\/code>\uc774 \ubc14\ub85c &#8220;\uc774 \uc791\uc5c5\uc740 \ucd9c\ub825 \uba54\uc77c \ubcf4\ub0b4\uc9c0 \ub9c8&#8221;\ub77c\ub294 \ub73b\uc774\uc5d0\uc694 \u2014 \uc2dc\ub9ac\uc988 20\ud3b8 cron\uc5d0\uc11c \ub2e4\uc2dc.)<\/p>\n\n  <h2>\ud30c\uc774\ud504 | \u2014 \uba85\ub839 \uc870\ub9bd\uc758 \ud575\uc2ec<\/h2>\n  <p>\ub9ac\ub2e4\uc774\ub809\uc158\uc774 &#8220;\ucd9c\uad6c\ub97c \ud30c\uc77c\ub85c&#8221;\ub77c\uba74, \ud30c\uc774\ud504 <code>|<\/code>\ub294 <strong>&#8220;\uc55e \uba85\ub839\uc758 \ucd9c\uad6c(stdout)\ub97c \ub4a4 \uba85\ub839\uc758 \uc785\uad6c(stdin)\ub85c \uc9c1\uc811 \uc5f0\uacb0&#8221;<\/strong>\uc785\ub2c8\ub2e4. \ud30c\uc77c\uc744 \uac70\uce58\uc9c0 \uc54a\uace0 \ubc14\ub85c \ud758\ub824\ubcf4\ub0b4\ub294 \uac70\uc8e0. 7\ud3b8\uc5d0\uc11c \ub9db\ubd24\uc9c0\ub9cc \uc774\uc81c \ubcf8\uaca9\uc801\uc73c\ub85c.<\/p>\n  <div class=\"cmd\"><span class=\"c\">$<\/span> ls \/usr\/bin | wc -l\n<span class=\"o\">                       \u2190 \/usr\/bin \uc758 \ud56d\ubaa9\uc744 \u2192 wc -l \ub85c \uc148. &#8220;\uc124\uce58\ub41c \uba85\ub839\uc5b4\uac00 \uba87 \uac1c\ub098 \ub418\ub098&#8221;<\/span>\n<span class=\"c\">$<\/span> cat \/var\/log\/syslog | grep -i error | tail -20\n<span class=\"o\">                       \u2190 \ub85c\uadf8\ub97c \u2192 &#8216;error&#8217; \ub4e0 \uc904\ub9cc \uace8\ub77c \u2192 \ub9c8\uc9c0\ub9c9 20\uc904. \ud2b8\ub7ec\ube14\uc288\ud305 \ub2e8\uace8 \uc870\ud569<\/span>\n<span class=\"c\">$<\/span> apt list &#8211;installed | grep python | wc -l\n<span class=\"o\">                       \u2190 \uc124\uce58\ub41c \ud328\ud0a4\uc9c0 \u2192 python \ub4e4\uc5b4\uac04 \uac83\ub9cc \u2192 \uac1c\uc218. 11\ud3b8 apt + 7\ud3b8 grep + \ud30c\uc774\ud504<\/span>\n<span class=\"c\">$<\/span> ps aux | grep firefox\n<span class=\"o\">                       \u2190 \uc2e4\ud589 \uc911\uc778 \ud504\ub85c\uc138\uc2a4 \ubaa9\ub85d \u2192 firefox \ub4e0 \uc904\ub9cc (\ud504\ub85c\uc138\uc2a4 \uad00\ub9ac\ub294 14\ud3b8)<\/span>\n<span class=\"c\">$<\/span> ls ~ | tee saved-list.txt | wc -l\n<span class=\"o\">                       \u2190 tee: \ud758\ub7ec\uac00\ub294 \uac78 \ud30c\uc77c(saved-list.txt)\uc5d0\ub3c4 \uc800\uc7a5\ud558\uba74\uc11c \ub3d9\uc2dc\uc5d0 \ub2e4\uc74c(wc)\uc73c\ub85c\ub3c4 \ub118\uae40. &#8220;\uc911\uac04\uc5d0 \ud55c \ubd80 \ub5a0\ub450\uae30&#8221;<\/span><\/div>\n  <p>\ud30c\uc774\ud504\ub294 \uba87 \uac1c\ub4e0 \uc774\uc744 \uc218 \uc788\uc5b4\uc694 \u2014 <code>A | B | C | D<\/code>. \uac01 \ub3c4\uad6c\ub294 \ud55c \uac00\uc9c0\ub9cc \uc798\ud558\uace0, \uc870\ub9bd\uc73c\ub85c \ubcf5\uc7a1\ud55c \uc77c\uc744 \ud569\ub2c8\ub2e4. <code>grep<\/code>(\uac70\ub974\uae30)\u00b7<code>sort<\/code>(\uc815\ub82c)\u00b7<code>uniq<\/code>(\uc911\ubcf5\uc81c\uac70)\u00b7<code>wc<\/code>(\uc138\uae30)\u00b7<code>head<\/code>\/<code>tail<\/code>(\uc55e\ub4a4 \uc790\ub974\uae30) \u2014 7\ud3b8\uc758 \uc774 \ub3c4\uad6c\ub4e4\uc774 \ud30c\uc774\ud504\uc758 \ub2e8\uace8 \ubd80\ud488\uc785\ub2c8\ub2e4. (\ud55c \ub2e8\uacc4 \ub354 \ub098\uc544\uac04 <code>xargs<\/code>\u00b7<code>awk<\/code>\u00b7<code>sed<\/code>\ub294 23\ud3b8\uc5d0\uc11c.)<\/p>\n\n  <h2>\uc2e4\uc804 \uc870\ud569 5\uc120 + \uc815\ub9ac<\/h2>\n  <p>&#8220;\uc774\ub7f0 \uac78 \ud55c \uc904\ub85c?&#8221; \uc2f6\uc740 \uc2e4\uc804 \uc608\uc2dc\ub4e4 \u2014 \ub2e4 \uc704\uc5d0\uc11c \ubc30\uc6b4 \ubd80\ud488 \uc870\ud569\uc785\ub2c8\ub2e4.<\/p>\n  <div class=\"cmd\"><span class=\"o\"># 1) \ud070 \ud30c\uc77c \ucc3e\uae30: \ud648\uc5d0\uc11c 50MB \ub118\ub294 \ud30c\uc77c \ud06c\uae30\uc21c\uc73c\ub85c<\/span>\n<span class=\"c\">$<\/span> find ~ -type f -size +50M -exec ls -lh {} \\; 2&gt;\/dev\/null | sort -k5 -h\n<span class=\"o\"># 2) \ub514\uc2a4\ud06c \ub9ce\uc774 \uba39\ub294 \ud3f4\ub354 top 10<\/span>\n<span class=\"c\">$<\/span> du -sh ~\/* 2&gt;\/dev\/null | sort -h | tail -10\n<span class=\"o\"># 3) \uba85\ub839\uc5b4 \uc0ac\uc6a9 \ube48\ub3c4: \ucd5c\uadfc history \uc5d0\uc11c \uc81c\uc77c \ub9ce\uc774 \uce5c \uba85\ub839 10\uac1c<\/span>\n<span class=\"c\">$<\/span> history | awk &#8216;{print $2}&#8217; | sort | uniq -c | sort -rn | head -10\n<span class=\"o\"># 4) \uc5b4\ub5a4 \ub2e8\uc5b4\uac00 \ub4e0 \uc904 \uac1c\uc218\ub9cc<\/span>\n<span class=\"c\">$<\/span> grep -i &#8220;warning&#8221; \/var\/log\/syslog | wc -l\n<span class=\"o\"># 5) \uba85\ub839 \ucd9c\ub825 \ud654\uba74\uc5d0\ub3c4 \ubcf4\uace0 \ud30c\uc77c\uc5d0\ub3c4 \ub0a8\uae30\uae30<\/span>\n<span class=\"c\">$<\/span> sudo apt upgrade 2&gt;&amp;1 | tee ~\/upgrade-$(date +%F).log<\/div>\n  <div class=\"databox\"><b>\uc624\ub298\uc758 \uc815\ub9ac:<\/b> \uba85\ub839\uc740 \uc785\uad6c stdin(0) + \ucd9c\uad6c stdout(1)\u00b7stderr(2). \ub9ac\ub2e4\uc774\ub809\uc158: <code>&gt;<\/code>(\ub36e\uc5b4\uc4f0\uae30)\u00b7<code>&gt;&gt;<\/code>(\uc774\uc5b4\uc4f0\uae30)\u00b7<code>&lt;<\/code>(\ud30c\uc77c\uc744 \uc785\ub825\uc73c\ub85c). \uc5d0\ub7ec: <code>2&gt; \ud30c\uc77c<\/code>(\uc5d0\ub7ec \ub530\ub85c)\u00b7<code>2&gt;&amp;1<\/code>(\uc5d0\ub7ec\ub97c \ucd9c\ub825\uc5d0 \ud569\uce58\uae30)\u00b7<code>&amp;&gt; \ud30c\uc77c<\/code>(\ub458 \ub2e4)\u00b7<code>\/dev\/null<\/code>(\ubc84\ub9bc). \ud30c\uc774\ud504 <code>|<\/code>: \uc55e \ucd9c\ub825 \u2192 \ub4a4 \uc785\ub825 \uc9c1\uc811 \uc5f0\uacb0, \uba87 \uac1c\ub4e0 \uc774\uc74c. \uc678\uc6b8 \ub458: <code>2&gt;\/dev\/null<\/code>(&#8220;\uc5d0\ub7ec \ubb34\uc2dc&#8221;)\u00b7<code>&gt; \ud30c\uc77c 2&gt;&amp;1<\/code>(&#8220;\uc804\ubd80 \ub85c\uadf8&#8221;). <code>&gt;<\/code>\ub294 \ubb3b\uc9c0 \uc54a\uace0 \ub36e\uc5b4\uc4f4\ub2e4 \u2014 \uc911\uc694 \ud30c\uc77c \uc870\uc2ec.<\/div>\n\n  <div class=\"roadmap\">\n    <h3>\uc2dc\ub9ac\uc988 \ud750\ub984<\/h3>\n    <ol>\n      <li>1~5\ud3b8 \uc785\ubb38 \ubb36\uc74c \u2714 &nbsp; 6\ud3b8 \ud30c\uc77c \u2714 &nbsp; 7\ud3b8 \ud14d\uc2a4\ud2b8 \u2714 &nbsp; 8\ud3b8 nano \u2714 &nbsp; 9\ud3b8 \uad8c\ud55c \u2714 &nbsp; 10\ud3b8 \uc0ac\uc6a9\uc790\u00b7\uadf8\ub8f9 \u2714 &nbsp; 11\ud3b8 apt \u2714<\/li>\n      <li><strong>12\ud3b8 \u2014 \ud30c\uc774\ud504\uc640 \ub9ac\ub2e4\uc774\ub809\uc158 (\uc774 \uae00) \u2714 &nbsp;\u2014 &#8220;\uae30\ucd08&#8221; \ubb36\uc74c \uc644\ub8cc<\/strong><\/li>\n      <li>13\ud3b8 \u2014 vim \uae30\ucd08 (nano \ub2e4\uc74c \ub2e8\uacc4, \ub610\ub294 \uc11c\ubc84\uc5d0 nano \uc5c6\uc744 \ub54c) \u2014 &#8220;\uc911\uae09&#8221; \ubb36\uc74c \uc2dc\uc791<\/li>\n      <li>14\ud3b8~ \u2014 \ud504\ub85c\uc138\uc2a4 \uad00\ub9ac \/ \ub514\uc2a4\ud06c \/ \ub124\ud2b8\uc6cc\ud06c \uba85\ub839\uc5b4 \/ ufw \ubc29\ud654\ubcbd \/ SSH \ud0a4 \/ systemd \uc11c\ube44\uc2a4 \/ cron \u2026<\/li>\n    <\/ol>\n  <\/div>\n  <p>\uc624\ub298 \ud560 \uc77c: <code>~\/linux-practice<\/code>\uc5d0\uc11c <code>ls ~ &gt; list.txt<\/code> \u2192 <code>cat list.txt<\/code> \u2192 <code>echo \ucd94\uac00 &gt;&gt; list.txt<\/code> \u2192 <code>ls \/usr\/bin | wc -l<\/code> \u2192 <code>history | awk '{print $2}' | sort | uniq -c | sort -rn | head<\/code> \ud55c \ubc14\ud034. \ub9c8\uc9c0\ub9c9 \ud55c \uc904\uc5d0\uc11c &#8220;\ub0b4\uac00 \uc81c\uc77c \ub9ce\uc774 \uce5c \uba85\ub839&#8221; \uc774 \ub728\uba74, \ud30c\uc774\ud504 \uc870\ub9bd\uc758 \uac10\uc774 \uc635\ub2c8\ub2e4. 13\ud3b8\uc5d0\uc11c \ub9cc\ub098\uc694. (\uc178 \ub9ac\ub2e4\uc774\ub809\uc158 \uc804\uccb4\ub294 <a href=\"https:\/\/www.gnu.org\/software\/bash\/manual\/html_node\/Redirections.html\" target=\"_blank\" rel=\"noopener\">bash \ub9e4\ub274\uc5bc Redirections<\/a>\uc5d0.)<\/p>\n\n  <div class=\"cta\">\n    <h3>\uc6b0\ubd84\ud22c\u00b7\ub9ac\ub205\uc2a4 \uc785\ubb38 \uc2dc\ub9ac\uc988<\/h3>\n    <p>&#8220;\uae30\ucd08&#8221; \ubb36\uc74c \uc644\uc8fc \u2014 \ud30c\uc77c\u00b7\ud14d\uc2a4\ud2b8\u00b7\ud3b8\uc9d1\u00b7\uad8c\ud55c\u00b7\uacc4\uc815\u00b7\ud328\ud0a4\uc9c0\u00b7\ud30c\uc774\ud504\uae4c\uc9c0. 13\ud3b8 &#8220;vim \uae30\ucd08&#8221;\ub85c &#8220;\uc911\uae09&#8221; \ubb36\uc74c\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4.<\/p>\n    <p>\ub2e4\uc74c \ud3b8\uc740 <a href=\"https:\/\/junai.ai\/blog\/\" target=\"_blank\" rel=\"noopener\">JUNAI \ube14\ub85c\uadf8<\/a>\uc5d0\uc11c \uc774\uc5b4 \ubcf4\uc138\uc694.<\/p>\n  <\/div>\n\n<\/article>\n<\/div>\n\n<footer>\n  <div class=\"wrap\">\u00a9 2026 JUNAI \u00b7 \uc6b0\ubd84\ud22c\u00b7\ub9ac\ub205\uc2a4 \uc785\ubb38 \uc2dc\ub9ac\uc988 12\ud3b8 \u00b7 \ubcf8 \uae00\uc740 2026\ub144 5\uc6d4 12\uc77c \uae30\uc900\uc73c\ub85c \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/div>\n<\/footer>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>stdin\u00b7stdout\u00b7stderr \uc774\ud574, \ub9ac\ub2e4\uc774\ub809\uc158\uacfc \uc5d0\ub7ec \ucc98\ub9ac, \ud30c\uc774\ud504\ub85c \uba85\ub839 \uc870\ub9bd\ud558\uae30, \uc2e4\uc804 \uc870\ud569 5\uc120\uae4c\uc9c0. \ub9ac\ub205\uc2a4 \uc785\ubb38 12\ud3b8.<\/p>\n","protected":false},"author":1,"featured_media":171,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-181","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu-linux"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/comments?post=181"}],"version-history":[{"count":0,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media\/171"}],"wp:attachment":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}