ç¥ãåãã«é ¼ã¾ãã¦ãã¡ãã£ã¨UNIXã®åæ©ãæããææ¥ãããã
ã¡ãã£ã¨ã¨ãã£ã¦ãçµæ§ãã£ã¤ãã§ãå ¥ã£ã¦ããã°ããã®ãã ãããã¯å®¶ã«ãã½ã³ã³ããªãã¨ããç´ äººã®å¦çã«ã2ã¶æéã»23æ¥ã»2ã³ããã¤ã§åºæ¬ãæããã¡ãã£ã¨ãããã¼ã«ãã·ã§ã«ã¹ã¯ãªããã§ä½ãããããªãããã°æ®éã®UNIX使ãã«ãã¦ãããã¨ããè¦æã§ããã
ä¸å¿ã®æç§æ¸ã¯æå®ãããã®ã ããèªåã§è²·ã£ã¦èªãã§ã¿ãã¨ããããã¾ãè¯ããªãã£ãã®ã§ä½¿ããªãã£ãããããã¯ãªãã¡ã¬ã³ã¹ã«ä½¿ã£ã¦ãã ãããã¨ãããã¨ã«ããã
代ããã«ä½¿ã£ãã®ã¯ãèªåãçã«åªãã¦ããã¨æãæ¬ãKernighan & Pikeã®ãUNIXããã°ã©ãã³ã°ç°å¢ãã§ããã1984å¹´åçã対象ã¯Version7 UNIXã¨é常ã«å¤ãã®ã§ãå 容ã¯å ¨é¨ä½ãç´ãã ãå ¨9ç« ããããCã§ãã¼ã«ãä½ãåºã6ç« ä»¥éã¯ãããªããï¼9ç« ãªãã¦troffã®è©³ç´°ã ãï¼ã5ç« ã§ä½ããã¼ã«ã¯ããªãå¤èãã®ã§ãããã¯èãæ¹ãç¨æ³ã使ãã®ã¿ãå®è³ªçã«ã¯awkã®éæ³ãè¦ãã4ç« ã¾ã§ã§ããã
ããã§ã200ãã¼ã¸ã»ã©ã®å 容ãç¾ä»£çã«çµã¿ç´ãå¿ è¦ããã£ããå¤ãé¨åãæ¨ã¦ãããæ°ãããã®ã§ç½®ãæãããï¼bashãããï¼ãgitã®ããã«ã¾ã£ããéãä½ç³»ãçµã¿è¾¼ãã ããã¦ãæ¯åã®è³æãä½ã£ã¦ãã£ãã
ã¾ã£ããæ¡ä»¶ãéãé¨åããã£ã¦ããã¨ãã°å¦çã¯1人1å°ã®Linuxãã¼ãPCã使ã£ã¦ãããVAXããã¬ã¿ã¤ã端æ«ãTSS端æ«ã¯ä½¿ããã¦ããªããå¤äººæ°ã§åããã·ã³ã使ããã¨ããªããããä»ã®ã¦ã¼ã¶ã¼ã®ãã°ã¤ã³ãã¦ããæ§åããããããããªé¨åã¯ä½¿ããªãããã¦ã¼ã¶ã¼éã®ã³ãã¥ãã±ã¼ã·ã§ã³ãè¡ãããªãããã¼ãã¼ããç¾ä»£ã®ãã½ã³ã³ã®ãã®ãªã®ã§ã2æ¥ç®ã®ææ¥ã§ã¯CapsLockãCtrlã«ç½®ãæãã使¥ããããCtrl-?ã§æä½ããä½ç³»ãæãããããã¤ã¹ããã¡ã¤ã«ã§ãããã¨ã示ãã®ã¯
cat /dev/input/mouse0 | od
ãããããã
è£ã£ãé¨åãããããUNIXããã°ã©ãã³ã°ç°å¢ãã§ã¯ããã£ã¨è§¦ãããã¦ããã ãã®ãã·ã§ã«ã®ã³ãã³ãã©ã¤ã³è§£éé åºãªã©ã¯ãã½ã¼ã¹ã調ã¹ã¦è©³ç´°ã«è§£èª¬ããå¿ è¦ããã£ãããã£ã¬ã¯ããªã®ãã¼ããã·ã§ã³ã®è©³ç´°ããã½ã¼ã¹ä»¥å¤ã«è§£èª¬ããªãã£ãã
ãããªãããªã§ã使¥éã¯è¨å¤§ã ããé²è¡ã«åããã¦çµã¿ç´ãã®ã§ãæå¾ã¾ã§é常ã«å¤§å¤ã ã£ããååä¸ã«ææ¥ãåå¾ã«ç¿æ¥ã®æ§æ³ããã¦å¿ è¦ãªæ å ±ãDynalistã«æ¸ãä¸ããç¿æ¥ã®æ4æããKeynoteã«è½ã¨ãã¦8æããã«å®¶ãåºãâ¦ãªã©ã¨ãããã¨ãæ¯é±ãã£ã¦ãããã²ã©ãèªè»¢è»ææ¥ã§ããããããã¾ããããããè¯ãææ¥ã«ãªã£ãã¨æãã
å ¨ä½çãªéæãæ¸ãã¦ãã:
- æãåããããªãã¨å¯ãã
- é²è¡ãéãã¨ä»ãã¦ããããªãå¦çãå¯ããé ãã¨åºæ¥ãå¦çãå¯ãã
- 復ç¿åã§ã¯å¯¾è±¡ã®å¦çã»ã©å¯ãã
å¦çã¯é«æ ¡ãåºãã¦ã®è¥è ãã»ã¨ãã©ãªã®ã§å¯ããè¥ãã¨ãããã¨ã¯ãç¡ç æéãå¤ãå¿ è¦ã§ããã¨ãããã¨ã§ãããã¾ããç ããªãæéãé ãã«ãããã¨ãããã¨ã ãã ããããã¯æ9æåã¨ããææ¥éå§æéãæ©ãããã®ã§ãã£ã¦ãå¦çã®ããã§ã¯ãªãã11æãããããããããã®ã ããæ®éã®å¦æ ¡ã¯ããã¯ãªã£ã¦ããªããããã«å°ãã
復ç¿ã¯ä½åº¦ãå ¥ããããããããããã®ã¯ãåºæ¬ã®ã§ãã¦ãªãå¦çã®ããã«ãåããã¨ãããä¸åº¦ç¹°ãè¿ãã¦ããã¤ããã ã£ããããããé²è¡é度ã¯åºæ¥ã¦ããå¦çããã¾ãéå±ã«ãªã£ã¦ããããªãã®ã§ãéãã«ãªãå¾åããããããããã¨æå³ãã¦ããªãã£ãäºãèµ·ããã
ããã£ã¦ããªãå¦çã»ã©å¯ãã®ã ã
éã«ãã§ãã¦ãå¦çã®æ¹ãããã£ãããè½ã¡ã¦ãï¼ãã¨é£ãã¤ãã¦ããã
ã¤ã¾ãã¯ã©ããªããã¨è¨ãã¨ãã¯ã©ã¹å ã®æ ¼å·®ã縮ããã¤ããã§ãã£ãå¾©ç¿ææ¥ããæ ¼å·®ãåºãããã¨ã«ç¹ããã®ã§ããã
ãããé£ããã
ããã°ã©ã ã¯æå³ããéãã«ã¯åãããæ¸ããã¨ããã«åãã
å¦çãããã¡ããæå³ããéãã«ã¯å¦ç¿ããªããä¸ããããæ¡ä»¶ã«åå¿ãã¦å¦ç¿ããï¼ã¾ãã¯ãããªãï¼ã ããªã®ã§ããã
伸ã³ãããå¦çã«ã¯ç«ã¡æ¢ã¾ããã«æãåã伸ã³ã¦ã»ããããé ãå¦çããã£ã¡ãæ¾ã£ã¦ããããã®ã ãããããããã®ä¸éã®ä¸éå端ãªç·ãè¡ããããªããããã«ã¯æ¹åã®ä½å°ãããã
ãã¦ããã¾ã¯æå¾ã®è©¦é¨ã®æ¡ç¹ä¸ã§ãããã³ã³ãã¥ã¼ã¿åéã®ãããã°ã©ã ãä½ã£ã¦åé¡ã解決ããåé¡ãã«ã¯ããã¡ãã®æå³ã¨ã¾ã£ããéã£ãåçãæ¥ãã®ã楽ããã
ãããã試é¨ã§ãæããå 容ãã©ãã ãå ¥ã£ã¦ãããã®ç¢ºèªãåãã®ã¯ãªããªãé£ããããã¡ãã®ç¨æãããã¼ãã«ã¯é£ãã§ããããèªåã§ä½ã£ããã¼ãã«ãé£ã³è¶ãã¦ããã®ã :
- ãã¾ã使ãããªãããã¡ããç¥ããªãæ©è½ã使ã£ã¦è§£æ±ºãã¦ããå¦çããããæ£è¦è¡¨ç¾ã工夫ããããã¨æã£ãsedã®ç½®æåé¡ã§ãsedã®sã³ãã³ãã®æ°åãã©ã°ã使ã£ã¦ç½®æä½ç½®ãæå®ãã¦è§£æ±ºããå¦çããããããããããã
- å顿ã®éãçªãã¦ã仿§ã¯æºãããã©ãããã¯ç¡ãã ãwãã¨ããåçãæ¸ãã¦ããå¦çããããåãsedã®åé¡ã§ããç½®æåæååãããç½®æå¾æååãã«ä¸¸ã ç½®ãæããå¦çã¨ãå ¨é¨åé¤ãã¦echoãç´ããå¦çãããããªãã»ã©1è¡ã ããæ¸ãæããã®ã«ãæ£è¦è¡¨ç¾ãæ½è±¡åããæå³ã¯ãªãã§ãããw
- æå³ã¨ã¯éããã®ã®ãããã¾ã§ã«æãããã¨ããã£ãã使ããããã·ã³ãã«ãªè§£ãæ¸ãã¦ããå¦çãããã
æå¾ã®è©±ã¯ããã§ãããawkã使ã£ã¦è±æããã¹ãã®ä¸ã®åèªã®æåæ°ã®çµ±è¨ãã¨ãããåé¡ãåºãããããã¯è¡ã®ä¸ã§ã«ã¼ããåããååèªã®length()ãé åã«å ¥ããæå¾ã«ããªã³ãããã°ããã
ã¨æã£ãã®ã ããtrã«ããåèªéã®ã¹ãã¼ã¹ãæ¹è¡ã«å¤æãããã¨ã§1è¡1åèªã®ã¹ããªã¼ã ãä½ãããããawk '{print length()}' ã«ããããã¨ã§1è¡1æ°åã®ã¹ããªã¼ã ã«ãã¦ããããsort | uniq -c | sortãããã¨ã§ãçããåºãã¦ããå¦çã夿°ããã
åé¡ãããåºãè¦ç¹ã§æããä¸ã§ãawkã使ããã¨ãã仿§ãæºããã¦ããã§ã¯ãªããããããã¦åªç§ï¼ï¼ï¼ã§ããã
ããã¦ãããããã®ãè¦ã¦ããã¨ãå¤ãã®å¦çããæ®éã®UNIX使ããã«ãªã£ãæ°ããããåé¡ãåºãè¦ç¹ã§æãã解決ã®ã¿ã«ãã©ã¼ã«ã¹ãã¦çæ¡ãæ¸ãã¦ããã¨ããã®ã¯ãã·ã§ã«ã¹ã¯ãªããã§éå ·ãèªä½ãããããªææ¥ã®æå³ã«ãããå¿ãã¦ããã
ææ¥ã§ããåããã®ãæ£è§£ãæé©åã¯å¾ããè¨æ¸¬ãã¦ãããã¨æãã¦ããã®ã§ãå¤ãã®çæ¡ã«ã¯è¯ãæç¸¾ãã¤ããï¼ã¾ããåããªãã®ãè²¼ã£ã¦ããå¦çãããã¾ããï¼ã
æããè ãæãããããã¨ããè¨èãããããæ¬å½ã«ãã®éãã§ããããã®ãããåå¼·ã«ãªã£ã2ã¶æéã§ããã
è¬è¾
ã½ã¼ã¹ã調ã¹ã¦å³å¯ãªä»æ§ãç¥ãããã¨ãã«çæ ¶è¦§è¾°ããã«ä¸æ¹ãªãã¬ãä¸è©±ã«ãªã£ããbashãªã©ã®æ°ããããã°ã©ã ã¯å°å³ã«ããã¸ãæ©è½è±å¯ã§ããã¤å®å ¨ãªæ¸ãæ¹ããã¦ããããã«è¡æ°ãè¨å¤§ã ãããã§ãçãç°¡æ½ãªVersion 6ãVersion 7ã®ã½ã¼ã¹ãåèã«ãã¦ããã¨ãããæã®Cã§æ¸ãããã·ã¹ãã ã¯ã·ã¹ãã ã§ãè¡æ°ããçããã®ã®ãç°¡æ½æ¥µã¾ããªãæ¸ãæ¹ã§å¤æ°ãç¥å·ã ãããå¦çã追ãã®ã大å¤ã§æã¦ä½ããã¨ãå¤ãã£ããããã«çæ ¶è¦§ããããã©ãã©ãï¼ãã¨ãã£ã¦æ¥ã¦ãä¸ç¬ã§çè§£ãã¦ããã¼ã£ã¨è§£èª¬ãã¦ãã ããã¨ããæå ä»®é¢ã¶ãããããããã«ã¼ã¨ã¯èãã¦ããããç®ãããã¾ãã°ããã®å®åãç®ã®å½ããã«ãã¦æåããããããã¨ããããã¾ãï¼
åèæç®
ææ¥ãããã«ããã£ã¦ä¸æ·ãã«ããæ¬ãèªã¿è¿ããæ¬ãããã«ã¯èªã¿èããããæ¬ãåèæç®ã¨ãã¦æãã¦ããã
Kernighan, Brian W. and Pike, Rob . 1984. UNIXããã°ã©ãã³ã°ç°å¢Â  ç³ç°æ´ä¹ ç£è¨³ 1985.
UNIXã®èãæ¹ãç¥ãã®ã«ãããã«åãæ¬ã¯ç¡ãã¨æãããã¡ãã¯85å¹´ã«åºãASCIIçï¼2åæã£ã¦ãwï¼ã
ãã¡ãã¯ä¸è¨ã®æ°çãå 容ã¯å¤ãã£ã¦ããªããæ°åãè²·ããã人ã«ã
Â
竹å éé. 2017. ããã°ã©ãã³ã°éã¸ã®æå¾
ãã¥ã¼ãªã³ã°å®å ¨ãæããéã«ãRitchieã®whileè¨èªã«ã¤ãã¦ããã®æ¬ããå«å¼ããããä»ã«ãããããåèã«ããé¨åãããã
Â
Lions, John. 1976.  Lions' Commentary on UNIXÂ Â å²©æ¬ ä¿¡ä¸è¨³Â 1997
å¤ä¸ã«ã¯ãªãããããèªãã§ããã
Â
ä¸ç°ã 2021. ã·ã§ã«ã»ã¯ã³ã©ã¤ãã¼160æ¬ããã¯Â
ãã®æ¬ã¯ãã¼ã«ã®ä½¿ãæ¹ããªã¼ã½ããã¯ã¹ã§ãããç¨ä¾ãå¤ãã
Â
Graham, Paul. 2004. Hackers and Painters å·äºå²æè¨³ 2005.
ããã«ã¼å¦æ ¡ã ã£ãã®ã§ãããã«ã¼ã®ã¨ãã»ã¤ãèªã¿èãããã
ããã§æããã®ã¯ãå 容ã使ç¨ããããææ¥ã®æ¹åæ§ã«å½±é¿ãä¸ããæç®ã§ãããã»ãã«ãJoel on SoftwareãSICPããã©ã¤ããã¤ãã¦ã¾ããããæãã¦çã£ã¦ãããã³ã³ãã¥ã¼ã¿ã®ããã¿ããªã©ãç¨æããããå®éã«ä½¿ãã«ã¯è³ããªãã£ãããããã使ããããã®ã§ããã
æ¹çå±¥æ´
2022-07-01 åç
2022-07-02 æ§æãå°ãå¤ãã¦å ç