æ¬æžã®ç¿»èš³çã¯ãLinuxã³ãã³ãã©ã€ã³ãç¿åŸããã人ã察象ãšããŠããŸãã ãã®ããŒã«ã广çã«äœ¿çšããæ©èœã¯ãå€ãã®æéãç¯çŽããŸãã ç¹ã«ãBashã·ã§ã«ãš21ã®äŸ¿å©ãªã³ãã³ãã«ã€ããŠèª¬æããŸãã ãŸããã³ãã³ããã©ã°ãšBashãšã€ãªã¢ã¹ã䜿çšããŠãé·ãåœä»€ã®å
¥åãé«éåããæ¹æ³ã«ã€ããŠã説æããŸãã

â
ãŸããããã°ã§bashã¹ã¯ãªããã«é¢ããäžé£ã®åºçç©ãèªãã§ãã ãããèŠçŽ
Linuxã³ãã³ãã©ã€ã³ã®äœ¿ç𿹿³ãåŠç¿ãããšãããã²ãŒãããã®ã«åœ¹ç«ã€å€ãã®æŠå¿µã«åºãããå¯èœæ§ããããŸãã ãLinuxããšãUnixãããã³ãã³ãã·ã§ã«ããšãã¿ãŒããã«ããªã©ããããã®äžéšã¯æ··åãããããšããããŸãã ãããããã³ä»ã®éèŠãªçšèªã«ã€ããŠè©±ããŸãããã
Unixã¯ã1970幎代ã«Bell Labsã«ãã£ãŠéçºãããäžè¬çãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãã 圌女ã®ã³ãŒãã¯ãã©ã€ããŒãã§ããã
Linuxã¯ãæã人æ°ã®ããUnixã©ã€ã¯ãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãã 仿¥ã§ã¯ãã³ã³ãã¥ãŒã¿ãŒãå«ãå€ãã®ããã€ã¹ã§äœ¿çšãããŠããŸãã
端æ«ããŸãã¯ç«¯æ«ãšãã¥ã¬ãŒã¿ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ãæäŸããããã°ã©ã ã§ãã è€æ°ã®ã¿ãŒããã«ãŠã£ã³ããŠãåæã«éãããšãã§ããŸãã
ã·ã§ã«ã¯ãç¹å¥ãªèšèªã§æžãããã³ãã³ãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«éä¿¡ã§ããããã°ã©ã ã§ãã
Bashã¯Bourne Again SHellã®ç¥ã§ãã ããã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã®å¯Ÿè©±ã«äœ¿çšãããæãäžè¬çãªã·ã§ã«èšèªã§ãã ããã«ãããã©ã«ãã®Bashã·ã§ã«ã¯macOSã«ãã£ãŠäœ¿çšãããŸãã
ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ïŒCLIïŒã¯ããŠãŒã¶ãŒãããŒããŒãããã³ãã³ããå
¥åããéã«ââ䜿çšãããŠãŒã¶ãŒãšã³ã³ãã¥ãŒã¿ãŒéã®ããåãã®æ¹æ³ã§ãããã³ã³ãã¥ãŒã¿ãŒã¯ãããã®ã³ãã³ããå®è¡ããŠããŠãŒã¶ãŒã«å¯ŸããŠããã¹ã圢åŒã§ã¡ãã»ãŒãžã衚瀺ããŸãã åºæ¬çã«ãCLIã¯ããã¡ã€ã«ãªã©ã®ç¹å®ã®ãšã³ãã£ãã£ã«é¢ããææ°æ
å ±ãååŸãããã¡ã€ã«ãæäœããããã«äœ¿çšãããŸãã ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãäž»ã«ããŠã¹ã§äœ¿çšãããã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒGUIïŒãšã¯åºå¥ããå¿
èŠããããŸãã ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãå€ãã®å Žåãåã«ã³ãã³ãã©ã€ã³ãšåŒã°ããŸãã
ã¹ã¯ãªããã¯ãäžé£ã®ã·ã§ã«ã³ãã³ããå«ãå°ããªããã°ã©ã ã§ãã ã¹ã¯ãªããã¯ãã¡ã€ã«ã«æžã蟌ãŸããç¹°ãè¿ã䜿çšã§ããŸãã ã¹ã¯ãªãããèšè¿°ãããšãã倿°ãæ¡ä»¶ä»ãæ§æãã«ãŒãã颿°ãããã³ãã®ä»ã®æ©èœã䜿çšã§ããŸãã
éèŠãªçšèªãæ€èšããã®ã§ãããã§ã¯çšèªãBashãããshellããããã³ãcommand lineãã亀æå¯èœãšããŠäœ¿çšãããdirectoryãããã³ãfolderãã®æŠå¿µã䜿çšããŸãã
ããã§äœ¿çšããæšæº
ã¹ããªãŒã ã¯ãæšæºå
¥åïŒæšæºå
¥åã
stdin ïŒãæšæºåºåïŒæšæºåºåã
stdout ïŒãããã³æšæºãšã©ãŒåºåïŒæšæºãšã©ãŒã
stderr ïŒã§ãã
以äžã«ç€ºãã³ãã³ãã®äŸã§
my_whateverãããªãã®ã«ééããå Žåãããã¯ãã®ãã©ã°ã¡ã³ããèªåã®ãã®ã«çœ®ãæããå¿
èŠãããããšãæå³ããŸãã ããšãã°ããã¡ã€ã«åã
ããã§ããã®è³æã䜿çšãããŠããããŒã ã®åæã«é²ãåã«ããªã¹ããšç°¡åãªèª¬æãèŠãŠã¿ãŸãããã
21ããã·ã¥ããŒã
informationæ
å ±ãå
¥æãã
man ïŒã³ãã³ãã®ãŠãŒã¶ãŒããã¥ã¢ã«ïŒãã«ãïŒã衚瀺ããŸããpwd ïŒäœæ¥ãã£ã¬ã¯ããªã«é¢ããæ
å ±ã衚瀺ããŸããls ïŒãã£ã¬ã¯ããªã®å
容ã衚瀺ããŸããps ïŒå®è¡äžã®ããã»ã¹ã«é¢ããæ
å ±ã衚瀺ã§ããŸãã
âãã¡ã€ã«ã·ã¹ãã ã®æäœ
cd ïŒäœæ¥ãã£ã¬ã¯ããªã倿ŽããŸããtouch ïŒãã¡ã€ã«ãäœæããŸããmkdir ïŒãã£ã¬ã¯ããªãäœæããŸããcp ïŒãã¡ã€ã«ãã³ããŒããŸããmv ïŒãã¡ã€ã«ãç§»åãŸãã¯åé€ããŸããln ïŒãªã³ã¯äœæã
âI / Oãªãã€ã¬ã¯ããšãã€ãã©ã€ã³
< ïŒ stdinãªãã€ã¬ã¯ãã> ïŒ stdoutãªãã€ã¬ã¯ãã| ïŒãã€ãã©ã€ã³ã䜿çšããŠãããã³ãã³ãã®åºåãå¥ã®ã³ãã³ãã®å
¥åã«ãªãã€ã¬ã¯ãããŸãã
filesãã¡ã€ã«ã®èªã¿åã
head ïŒãã¡ã€ã«ã®å
é ãèªã¿åããŸããtail ïŒãã¡ã€ã«ã®çµãããèªã¿åããŸããcat ïŒãã¡ã€ã«ãèªã¿åãããã®å
容ãç»é¢ã«è¡šç€ºãããããã¡ã€ã«ãé£çµããŸãã
filesãã¡ã€ã«ã®åé€ãããã»ã¹ã®åæ¢
rm ïŒãã¡ã€ã«ãåé€ããŸããkill ïŒããã»ã¹ã忢ããŸãã
âæ€çŽ¢
grep ïŒæ
å ±ãæ€çŽ¢ããŸããag ïŒé«åºŠãªæ€çŽ¢ããŒã ã
âã¢ãŒã«ã€ã
tar ïŒã¢ãŒã«ã€ããäœæããŠæäœããŸãã
ãããã®ããŒã ã«ã€ããŠè©³ãã説æããŸãããã
ããŒã ã®è©³çް
ãŸããçµæã
stdoutã®åœ¢åŒã§çºè¡ãããããŒã ãææ¡ããŸãããã éåžžããããã®çµæã¯ã¿ãŒããã«ãŠã£ã³ããŠã«è¡šç€ºãããŸãã
informationæ
å ±ãå
¥æãã
man command_name ïŒã³ãã³ãããã¥ã¢ã«ã®åºåãã€ãŸãåç
§æ
å ±ã
pwd ïŒçŸåšã®äœæ¥ãã£ã¬ã¯ããªãžã®ãã¹ã衚瀺ããŸãã ã³ãã³ãã©ã€ã³ã䜿çšããå ŽåããŠãŒã¶ãŒã¯å€ãã®å Žåãèªåãããã·ã¹ãã ã®æ£ç¢ºãªå ŽæãèŠã€ããå¿
èŠããããŸãã
ls ïŒãã£ã¬ã¯ããªã®å
容ã衚瀺ããŸãã ãã®ã³ãã³ããé »ç¹ã«äœ¿çšãããŸãã
ls -a ïŒé ããã¡ã€ã«ãåºåããŸãã
lsã®
-aãã©ã°ãããã«é©çšãããŸãã ãã©ã°ã䜿çšãããšãããŒã ã®åäœãã«ã¹ã¿ãã€ãºã§ããŸãã
ls -l ïŒè©³çްãªãã¡ã€ã«æ
å ±ã衚瀺ããŸãã
ãã©ã°ã¯çµã¿åãããããšãã§ããããšã«æ³šæããŠãã ããã ããšãã°ã次ã®ããã«ïŒ
ls -al ã
ps ïŒå®è¡äžã®ããã»ã¹ã衚瀺ããŸãã
ps -e ïŒçŸåšã®ãŠãŒã¶ãŒã·ã§ã«ã«é¢é£ããããã»ã¹ã ãã§ãªããå®è¡äžã®ãã¹ãŠã®ããã»ã¹ã«é¢ããæ
å ±ã衚瀺ããŸãã ãã®ã³ãã³ãã¯ããã®åœ¢åŒã§ãã䜿çšãããŸãã
âãã¡ã€ã«ã·ã¹ãã ã®æäœ
cd my_directory ïŒäœæ¥ãã£ã¬ã¯ããªã
my_directory倿Žã
my_directory ã ãã£ã¬ã¯ããªããªãŒã®1ã€äžã®ã¬ãã«ã«ç§»åããã«ã¯ãçžå¯Ÿãã¹
../ã
my_directoryãšããŠ
my_directoryãŸãã
CDã³ãã³ãtouch my_file ïŒ
my_fileãããã¹ã«
my_fileãäœæããŸãã
mkdir my_directory ïŒæå®ããããã¹ã«
my_directoryãã©ã«ããŒãäœæããŸãã
mv my_file target_directory ïŒ
my_fileãã¡ã€ã«ã
my_fileãã©ã«ããŒã«ç§»åããŸãã ã¿ãŒã²ãããã£ã¬ã¯ããªãæå®ãããšãã¯ã絶察ãã¹ã䜿çšããå¿
èŠããããŸãïŒ
../ãããªæ§é ã§ã¯ãããŸããïŒã
mvã³ãã³ãã䜿çšããŠããã¡ã€ã«ãŸãã¯ãã©ã«ããŒã®ååã倿Žããããšãã§ããŸãã ããšãã°ã次ã®ããã«ãªããŸãã
mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory ïŒ
mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directoryã®ã³ããŒãäœæãã
target_directoryãã©ã«ããŒã«é
眮ããŸãã
ln -s my_source_file my_target_file ïŒ
my_target_fileãã
my_source_fileãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæããŸãã ãªã³ã¯ã倿Žãããšãå
ã®ãã¡ã€ã«ã倿ŽãããŸãã
ãã¡ã€ã«
my_source_fileãåé€ããããšã
my_target_fileã¯æ®ããŸãã
lnã³ãã³ãã®
-sãã©ã°ã䜿çšãããšããã£ã¬ã¯ããªã®ãªã³ã¯ãäœæã§ããŸãã
次ã«ãI / Oãªãã€ã¬ã¯ããšãã€ãã©ã€ã³ã«ã€ããŠèª¬æããŸãã
âI / Oãªãã€ã¬ã¯ããšãã€ãã©ã€ã³
my_command < my_file ïŒæšæºå
¥åãã¡ã€ã«ïŒ
stdin ïŒã®èšè¿°åã
my_fileãã¡ã€ã«ã«
my_fileãŸãã ããã¯ãã³ãã³ããããŒããŒãããããŒã¿ãå
¥åããããšãæ³å®ããŠããããã®ããŒã¿ãäºåã«ãã¡ã€ã«ã«ä¿åãããŠããå Žåã«åœ¹ç«ã¡ãŸãã
my_command > my_file ïŒã³ãã³ãã®çµæãã€ãŸãéåžž
stdoutã«å
¥ã£ãŠç»é¢ã«è¡šç€ºããããã®ã
my_fileãã¡ã€ã«ã«
my_fileãŸãã ãã¡ã€ã«
my_fileãååšããªãå Žåã¯äœæãããŸãã ãã¡ã€ã«ãååšããå ŽåãäžæžããããŸãã
ããšãã°ã
ls > my_folder_contents.txtå®è¡ãããšãçŸåšã®äœæ¥ãã£ã¬ã¯ããªã«ãããã®ã®ãªã¹ããå«ãããã¹ããã¡ã€ã«ãäœæãããŸãã
èšå·
>代ããã«æ§é
>>䜿çšããå Žåãã³ãã³ãã®åºåããªãã€ã¬ã¯ãããããã¡ã€ã«ãããå Žåããã®ãã¡ã€ã«ã¯äžæžããããŸããã ããŒã¿ã¯ãã®ãã¡ã€ã«ã®æåŸã«è¿œå ãããŸãã
次ã«ããã€ãã©ã€ã³ããŒã¿ãèŠãŠã¿ãŸãããã
ããã³ãã³ãã®åºåãå¥ã®ã³ãã³ãã®å
¥åã«éãããŸãã ãããã€ããå¥ã®ãã€ãã«æ¥ç¶ãããããªãã®ã§ãfirst_command | second_command first_command | second_command ïŒãã€ãèšå·ã
| ãããããŒã ã®çµæãå¥ã®ããŒã ã«éä¿¡ããããã«äœ¿çšãããŸãã 説æããæ§é ã®å·ŠåŽã«ããã³ãã³ãã
stdoutã«éä¿¡ããããšããäºå®ã¯ããã€ãã©ã€ã³ã·ã³ãã«ã®å³åŽã«ããã³ãã³ãã®
stdin該åœããŸãã
Linuxã§ã¯ãã»ãŒãã¹ãŠã®é©åã«åœ¢æãããã³ãã³ãã䜿çšããŠãã€ãã©ã€ã³ãç·šæã§ããŸãã Linuxã®ãã¹ãŠã¯ãã€ãã©ã€ã³ã§ãããšããèšãããŸãã
ã³ã³ãã¢ã·ã³ãã«ã䜿çšããŠãè€æ°ã®ã³ãã³ããé£çµã§ããŸãã æ¬¡ã®ããã«ãªããŸãã
first_command | second_command | third_command
è€æ°ã®ããŒã ããã®ã³ã³ãã€ãŒããã€ãã©ã€ã³ãšæ¯èŒã§ããŸãã³ãã³ãã
|å·ŠåŽã«ããããšã«æ³šæããŠãã ãã
| stdoutã«äœãã
stdoutãŸããåºåããããã®ã¯ãã
stdin 2çªç®ã®ã³ãã³ãã®
stdinãšããŠäœ¿çšå¯èœã«ãªããŸãã ã€ãŸãããã€ãã©ã€ã³ã䜿çšããŠãã³ãã³ãã®äžŠåå®è¡ãåŠçããŠããããšãããããŸãã ããã«ãããäºæããªãçµæãçããå ŽåããããŸãã 詳现ã«ã€ããŠã¯ã
ãã¡ããã芧ãã ãã ã
次ã«ããã¡ã€ã«ããããŒã¿ãèªã¿åããç»é¢ã«è¡šç€ºããæ¹æ³ã«ã€ããŠèª¬æããŸãã
filesãã¡ã€ã«ã®èªã¿åã
head my_file ïŒãã¡ã€ã«ã®å
é ããè¡ãèªã¿åãã衚瀺ããŸãã ãã®ã³ãã³ãããã€ãã©ã€ã³ã®èŠçŽ ãšããŠäœ¿çšãããšããã¡ã€ã«ã®å
容ã ãã§ãªããã³ãã³ãã
stdinã«åºåããå
容ãèªã¿åãããšãã§ããŸãã
tail my_file ïŒãã¡ã€ã«ã®æ«å°Ÿããè¡ãèªã¿åããŸãã ãã®ã³ãã³ãã¯ããã€ãã©ã€ã³ã§ã䜿çšã§ããŸãã
é ãåã«ãããå°ŸãåŸãã«ãããã³ãã©ã€ãã©ãªã䜿çšããŠããŒã¿ãæäœããŠããå Žåã
headã³ãã³ããš
tailã³ãã³ãã¯ããªãã¿ã®ã¯ãã§ãã ããã§ãªãå Žåã¯ãäžã®å³ãèŠãŠãã ãããç°¡åã«æãåºããŸãã
ãã¡ã€ã«ãèªã¿èŸŒãä»ã®æ¹æ³ãèŠãŠã
catã«ã€ããŠè©±ããŸãããã
catã¯ãç»é¢ã«ãã¡ã€ã«ã®å
容ã衚瀺ããããè€æ°ã®ãã¡ã€ã«ãé£çµããŸãã åŒã³åºããããšãã«ãã®ã³ãã³ãã«æž¡ããããã¡ã€ã«ã®æ°ã«äŸåããŸãã
ç«ããŒã cat my_one_file.txt ïŒ1ã€ã®ãã¡ã€ã«ããã®ã³ãã³ãã«è»¢éããããšã
stdoutã«è¡šç€ºãããŸãã
圌女ã«2ã€ä»¥äžã®ãã¡ã€ã«ãæž¡ããšã圌女ã®åäœã¯ç°ãªããŸãã
cat my_file1.txt my_file2.txt ïŒå
¥åãšããŠããã€ãã®ãã¡ã€ã«ãåãåã£ããã®ã³ãã³ãã¯ããããã®å
容ãé£çµãã
stdoutçºçããããšã衚瀺ããŸãã
ãã¡ã€ã«ãé£çµããçµæãæ°ãããã¡ã€ã«ãšããŠä¿åããå¿
èŠãããå Žåã¯ã
>æŒç®åã䜿çšã§ããŸãã
cat my_file1.txt my_file2.txt > my_new_file.txt
次ã«ããã¡ã€ã«ãåé€ããŠããã»ã¹ã忢ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
filesãã¡ã€ã«ã®åé€ãããã»ã¹ã®åæ¢
rm my_file ïŒ
my_fileãã¡ã€ã«ãåé€ããŸãã
rm -r my_folder ïŒ
my_folderãã©ã«ããŒãšããã«å«ãŸãããã¹ãŠã®ãã¡ã€ã«ãšãã©ã«ããŒãåé€ããŸãã
-rãã©ã°ã¯ãã³ãã³ããååž°ã¢ãŒãã§æ©èœããããšã瀺ããŸãã
ã·ã¹ãã ããã¡ã€ã«ãŸãã¯ãã©ã«ããŒãåé€ããåæäœäžã«ç¢ºèªãæ±ããªãããã«ããã«ã¯ã
-fãã©ã°ã䜿çšããŸãã
kill 012345 ïŒæå®ãããå®è¡äžã®ããã»ã¹ã忢ããæ£ããã·ã£ããããŠã³ããæéãäžããŸãã
kill -9 012345 ïŒæå®ãããå®è¡äžããã»ã¹ã匷å¶çµäºããŸãã
-s SIGKILL圢åŒã®ãã©ã°ã¯ããã©ã°
-9ãšåãæå³ã§ãã
âæ€çŽ¢
ããŸããŸãªã³ãã³ãã䜿çšããŠããŒã¿ãæ€çŽ¢ã§ããŸãã ç¹ã«ã
grep ã
agããã³
ack ã ãããã®ã³ãã³ãã®ç޹ä»ã¯
grepããå§ããŸãã ããã¯ãå®çžŸã®ããä¿¡é Œã§ããããŒã ã§ãããä»ã®ããŒã ãããé
ãã圌ããšã¯ç°ãªãã䜿ããããã§ãã
Grepã³ãã³ãgrep my_regex my_file ïŒ
my_regexã§
my_fileæ€çŽ¢ã
my_file ã äžèŽãèŠã€ãããšãããããã«ã€ããŠæååå
šäœãè¿ãããŸãã ããã©ã«ãã§ã¯ã
my_regexæ£èŠè¡šçŸãšããŠæ±ãããŸãã
grep -i my_regex my_file ïŒæ€çŽ¢ã§ã¯å€§æåãšå°æåãåºå¥ãã
grep -i my_regex my_fileãã
grep -v my_regex my_file ïŒ
grep -v my_regex my_fileå«ãŸãªããã¹ãŠã®è¡ãè¿ããŸãã
-vãã©ã°ã¯å転ãæå³ããå€ãã®ããã°ã©ãã³ã°èšèªã§äœ¿çšå¯èœãª
NOTæŒç®åã«äŒŒãŠããŸãã
grep -c my_regex my_file ïŒãã¡ã€ã«ã§èŠã€ãã£ãæ€çŽ¢ãã¿ãŒã³ãšã®äžèŽæ°ã«é¢ããæ
å ±ãè¿ããŸãã
grep -R my_regex my_folder ïŒæå®ããããã©ã«ããŒããã³ãã®ãã©ã«ããŒã«ãããã¹ãŠã®ãã¡ã€ã«ã§ååž°æ€çŽ¢ãå®è¡ããŸãã
ããã§ã¯ã
agããŒã ã«ã€ããŠè©±ããŸãããã 圌女ã¯åŸã§
grepã«ç»å Žãã圌女ã¯ããéãã圌女ãšäžç·ã«ä»äºãããæ¹ã䟿å©ã§ãã
AgããŒã ag my_regex my_file ïŒè¡çªå·ã«é¢ããæ
å ±ãããã³
my_regexã§äžèŽããè¡èªäœã
my_regexãŸãã
ag -i my_regex my_file ïŒæ€çŽ¢ã§ã¯å€§æåãšå°æåãåºå¥ãã
ag -i my_regex my_fileãã
agã³ãã³ãã¯
.gitignoreãã¡ã€ã«ãèªåçã«åŠçãããã®ãã¡ã€ã«ã«ãªã¹ããããŠãããã©ã«ããŒãŸãã¯ãã¡ã€ã«ã«ãããã®ãåºåããé€å€ããŸãã ãšãŠã䟿å©ã§ãã
ag my_regex my_file -- skip-vcs-ignores ïŒèªåããŒãžã§ã³ç®¡çã·ã¹ãã ïŒ
.gitignore ïŒã®ãã¡ã€ã«ã®å
å®¹ã¯æ€çŽ¢äžã«èæ
®ãããŸããã
ããã«ã
agã³ãã³ãã«æ€çŽ¢ããé€å€ãããã¡ã€ã«ãã¹ãäŒããããã«ã
.agignoreãã¡ã€ã«ãäœæã§ããŸãã
ãã®ã»ã¯ã·ã§ã³ã®åé ã§ã
ackã³ãã³ãã«ã€ããŠèª¬æããŸããã
ackã³ãã³ããš
agã³ãã³ãã¯éåžžã«äŒŒãŠããã99ïŒ
äºææ§ããããšèšããŸãã ãã ãã
agã³ãã³ãã¯é«éãªã®ã§ãå
·äœçã«èª¬æããŸããã
次ã«ãã¢ãŒã«ã€ãã®æäœã«ã€ããŠèª¬æããŸãã
âã¢ãŒã«ã€ã
tar my_source_directory ïŒ
my_source_directoryãã©ã«ããŒã®ãã¡ã€ã«ãåäžã®tarballãã¡ã€ã«ã«çµåããŸãã ãã®ãããªãã¡ã€ã«ã¯ã倧éã®ãã¡ã€ã«ã誰ãã«è»¢éããããã«äœ¿çšãããšäŸ¿å©ã§ãã
tarã³ãã³ããã®ã³ãã³ãã§äœæãããtarballãã¡ã€ã«ã¯ãæ¡åŒµåã
.tar ïŒTape ARchiveïŒã®ãã¡ã€ã«ã§ãã ãããŒãããšããåèªãã³ãã³ãã®ååãšããã«ãã£ãŠäœæããããã¡ã€ã«ã®ååã®æ¡åŒµåã«é ãããŠãããšããäºå®ã¯ããã®ã³ãã³ããååšããŠããæéã瀺ããŠããŸãã
tar -cf my_file.tar my_source_directory ïŒ
my_source_directoryãã©ã«ããŒã®å
容ã§
my_file.tarãšããååã®tarballãã¡ã€ã«ãäœæããŸãã
-cãã©ã°ã¯ãäœæãã衚ãã
-fãã©ã°ã¯ããã¡ã€ã«ãã衚ããŸãã
.tarãã¡ã€ã«ã«ãããã¡ã€ã«ãæœåºããã«ã¯ã
tarã³ãã³ãããã©ã°
-x ïŒãæœåºããæœåºïŒããã³
-f ïŒããã¡ã€ã«ãããã¡ã€ã«ïŒãšãšãã«äœ¿çšããŸãã
tar -xf my_file.tar ïŒ
tar -xf my_file.tarããçŸåšã®äœæ¥ãã£ã¬ã¯ããªã«ãã¡ã€ã«ã
tar -xf my_file.tarãŸãã
次ã«ã
.tarãã¡ã€ã«ãå§çž®ããã³å§çž®è§£é€ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
tar -cfz my_file.tar.gz my_source_directory ïŒããã§ã
-zãã©ã°ïŒãzipãå§çž®ã¢ã«ãŽãªãºã ïŒã䜿çšãããšã
gzip ïŒGNU zipïŒã䜿çšããŠãã¡ã€ã«ãå§çž®ããå¿
èŠããããŸãã ãã¡ã€ã«ãå§çž®ãããšããã®ãããªãã¡ã€ã«ãä¿åãããšãã«ãã£ã¹ã¯å®¹éãç¯çŽãããŸãã ããšãã°ãä»ã®ãŠãŒã¶ãŒã«è»¢éããããã«ãã¡ã€ã«ãèšç»ãããŠããå Žåãããã«ããããã®ãããªãã¡ã€ã«ã®ããŠã³ããŒããé«éåãããŸãã
ã³ãã³ãã«
-zãã©ã°ã远å ããŠãäžèšã§æ€èšãã
.tarãã¡ã€ã«ã®å
å®¹ãæœåºããããšã«ããã
.tar.gzãã¡ã€ã«ãè§£åã§ããŸãã æ¬¡ã®ããã«ãªããŸãã
tar -xfz my_file.tar.gztarã³ãã³ãã«ã¯ãããã«å€ãã®äŸ¿å©ãªãã©ã°ãããããšã«æ³šæããŠãã ããã
ããã·ã¥ãšã€ãªã¢ã¹
Bashãšã€ãªã¢ã¹ïŒãšã€ãªã¢ã¹ãŸãã¯ç¥èªãšãåŒã°ããïŒã¯ãã³ãã³ããŸãã¯ãã®ã·ãŒã±ã³ã¹ã®ççž®åãäœæããããã«èšèšãããŠãããéåžžã®ã³ãã³ãã®ä»£ããã«ã³ãã³ãã䜿çšãããšãäœæ¥ãé«éåãããŸãã
python setup.py sdist bdist_wheel ããšã€ãªã¢ã¹
bu ããã®åŸãã«
python setup.py sdist bdist_wheelã«ãªã£ãŠããå Žåããã®ã³ãã³ããåŒã³åºãã«
python setup.py sdist bdist_wheel ããã®ãšã€ãªã¢ã¹ã䜿çšããŸãã
ãã®ãããªãšã€ãªã¢ã¹ãäœæããã«ã¯ã次ã®ã³ãã³ãã
~/.bash_profileãã¡ã€ã«ã«è¿œå ããã ãã§ãïŒ
alias bu="python setup.py sdist bdist_wheel"
ã·ã¹ãã ã«
~/.bash_profileãã¡ã€ã«ããªãå Žåã¯ã
touchã³ãã³ãã䜿çšããŠèªåã§äœæã§ããŸãã ãšã€ãªã¢ã¹ãäœæããããã¿ãŒããã«ãåèµ·åããŸãããã®åŸããã®ãšã€ãªã¢ã¹ã䜿çšã§ããŸãã ãã®å Žåã2æåã®å
¥åã¯ãPythonããã±ãŒãžã
æ§ç¯ããããã«èšèšãããã³ãã³ãã®30æå以äžã®å
¥åã眮ãæããŸãã
ãã䜿çšãããã³ãã³ãã®ãšã€ãªã¢ã¹ã
~/.bash_profile远å ã§ããŸãã
âçµæ
ãã®èšäºã§ã¯ã人æ°ã®ãã21ã®BashããŒã ã確èªããããŒã ã®ãšã€ãªã¢ã¹ã®äœæã«ã€ããŠèª¬æããŸããã ãã®ãããã¯ã«èå³ãããå Žåã¯ãBashã·ãªãŒãºã®åºçç©ã
ã芧ãã ãã ã
ããã§ã¯ããããã®åºçç©ã®PDFããŒãžã§ã³ãèŠã€ããããšãã§ããŸãã ããã«ãBashãåŠç¿ãããå Žåã¯ãä»ã®ãœãããŠã§ã¢ã·ã¹ãã ã®ç ç©¶ãšåæ§ã«ãããã§ç·Žç¿ããããšãéèŠã§ããããšãå¿ããªãã§ãã ããã
芪æãªãèªè
ïŒ ãã®èšäºã§èª¬æããã³ãã³ãã«ãåå¿è
ãç¥ã£ãŠãããšäŸ¿å©ãªã³ãã³ãã远å ããŠãã ããã
â
ãŸããããã°ã§bashã¹ã¯ãªããã«é¢ããäžé£ã®åºçç©ãèªãã§ãã ããã