bash shell
bash´Â GNU Àç´ÜÀÇ ´ëÇ¥ÀûÀÎ ÀÛÇ°À¸·Î 20³â ÀÌ»óÀÇ ¿ª»ç¸¦ °¡Áø ½©·Î ´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷ÆÇ ¹× Mac OS X°¡ ±âº» ½©·Î äÅÃÇÑ ½©ÀÌ´Ù. ¿¹ÀüºÎÅÍ À¯´Ð½º¿¡¼ »ç¿ëÇÏ´ø Bourne shell(sh)À» ´ëÄ¡ÇÏ·Á°í ¸¸µé¾úÀ¸¹Ç·Î sh¿Í ȣȯµÇ¸é¼ ´Ù¾çÇÏ°í Æí¸®ÇÑ ±â´ÉÀ» Æ÷ÇÔÇÏ°í ÀÖÀ¸¹Ç·Î È¿À²ÀûÀ¸·Î ÀÛ¾÷À» ÇÒ ¼ö ÀÖÀ¸¸ç ŸÀÌÇÎÀ» ÃÖ¼ÒÈÇÏ°í ½Ç¼ö¸¦ ¹æÁöÇÒ ¼ö ÀÖ´Ù.
Ư¡
ÅÇ ¿Ï¼º(tab completion)
bash´Â ÅÇ ¿Ï¼ºÀ̶ó´Â ¾ÆÁÖ Æí¸®ÇÑ ±â´ÉÀ» Á¦°øÇÏ°í ÀÖ´Ù. »ç¿ëÇÏ·Á´Â ¸í·ÉÀÇ ÀϺθ¸ ÀÔ·ÂÇÏ°í ¸í·É ¿Ï¼º ´ÜÃàÅ°ÀÎ ÅÇÅ°¸¦ ´©¸£¸é ÇØ´ç ¸í·ÉÀ» ¿Ï¼ºÇØ ÁØ´Ù.
¸¸¾à ÀÔ·ÂµÈ ¸í·É¾î¿Í Áߺ¹µÇ´Â ¸í·ÉÀÌ ¸¹À» °æ¿ì ÅÇÀ» ÇÑ ¹ø ´õ ´©¸£¸é Áߺ¹µÇ´Â ¸ðµç ¸í·ÉÀ» Ç¥½ÃÇØ ÁØ´Ù. ´ÙÀ½ ȸéó·³ ssh-copy-id ¸¦ ½ÇÇàÇÒ °æ¿ì ss ¸¸ Ä¡°í ÅÇÅ°¸¦ ´©¸£¸é ss ·Î ½ÃÀ۵Ǵ ¸ðµç ¸í·É¾î¸¦ Ç¥½ÃÇØ ÁØ´Ù.
ÀÌÈÄ ssh ¸¦ Ä¡°í ¶Ç ÅÇÀ» Ä¥ °æ¿ì ssh ·Î ½ÃÀÛÇÏ´Â ¸í·É¾î°¡ ¸¹À¸¹Ç·Î ssh ±îÁö¸¸ ¿Ï¼ºÇØÁÖ°í Áߺ¹µÇ´Â ¸í·É¾îµéÀ» Ç¥½ÃÇØ ÁØ´Ù. ÀÌ »óÅ¿¡¼ ssh-c ¸¦ ÀÔ·ÂÈÄ ÅÇ Å°¸¦ ´©¸£¸é ssh-c ·Î ½ÃÀ۵Ǵ ¸í·É¾î´Â ssh-copy-id ¹Û¿¡ ¾øÀ¸¹Ç·Î ssh-copy-id ¸í·ÉÀ» ¿Ï¼ºÇØ ÁØ´Ù.
ÅÇ ¿Ï¼º ±â´ÉÀº ÆÄÀÏ¸í¿¡ ´ëÇؼµµ ¾µ ¼ö ÀÖ´Ù. ¸¸¾à vi ·Î bash ÀÇ ¼³Á¤ ÆÄÀÏÀÎ .bash_profile À» ÆíÁýÇÒ °æ¿ì vi .ba ¸¸ Ä¡°í ÅÇ Å°¸¦ ´©¸¦ °æ¿ì ¾Æ·¡¿Í °°ÀÌ vi .bash·Î ¸í·ÉÇàÀ» ¿Ï¼ºÇØ ÁØ´Ù.
ÀÌ »óÅ¿¡¼ ÅÇÀ» ÇÑ ¹ø ´õ ´©¸£¸é .bash ·Î ½ÃÀÛÇÏ´Â ÆÄÀϸíµéÀ» ¸ðµÎ Ç¥½ÃÇØ ÁØ´Ù. ¿©±â¿¡¼ vi .bash_p ±îÁö¸¸ ÀÔ·ÂÇÏ°í ÅÇÀ» ´©¸£¸é Áߺ¹µÇ´Â À̸§ÀÌ ¾øÀ¸¹Ç·Î vi .bash_profile ¸í·É¾î°¡ ¿Ï¼ºµÈ´Ù.
ÅÇ ¿Ï¼º ±â´É¿¡ Àͼ÷ÇØ Áö¸é Àüü¸¦ ŸÀÌÇÎÇÒ ÇÊ¿ä¾øÀÌ ºü¸£°í Æí¸®ÇÏ°Ô ÇØ´ç ¸í·É¾î¸¦ ½ÇÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î ŸÀÌÇÎ ½Ç¼öµµ ÁÙÀÌ°í È¿À²ÀûÀ¸·Î ¾÷¹«¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù.
¸í·ÉÇà È÷½ºÅ丮
Ä¿¼Ç¥ Å°¸¦ ÀÌ¿ëÇÏ¿© È£ÃâÇß´ø ¸í·É¾î¸¦ ´Ù½Ã ºÒ·¯ ³¾ ¼ö ÀÖ´Ù. ÀÌ ±â´ÉÀ» ÀÌ¿ëÇÏ¿© ¿¹Àü¿¡ ÀÔ·ÂÇÑ ¸í·É¾î¸¦ ¹Ù·Î È£ÃâÇÏ¿© Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù.
±ä ¸í·É¾î¸¦ ÀÔ·ÂÇÏ´Ù°¡ Áß°£¿¡ ¿ÀŸ°¡ ³ª¼ Á¦´ë·Î ½ÇÇàÀÌ ¾È µÇ¾úÀ» °æ¿ì óÀ½ºÎÅÍ ÀÔ·ÂÇÏÁö ¾Ê°í È÷½ºÅ丮·Î È£ÃâÇÏ¿© ¿ÀŸ³ ºÎºÐ¸¸ ¼öÁ¤ÇÏ¿© »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ÀÂÊ Ä¿¼Ç¥ ¡è ´Â ÀÌÀü ¸í·É¾î¸¦ È£ÃâÇÏ°í ¾Æ·¡ÂÊ Ä¿¼Ç¥ ¡é´Â ¿¹Àü ¸í·É¾î ¸ñ·Ï¿¡¼ ÀÌÈÄ ¸í·É¾î¸¦ È£ÃâÇÒ °æ¿ì¿¡ »ç¿ëÇÑ´Ù.
¸¸¾à ls, last, ps ¼¼ °³ ¸í·É¾î¸¦ ¼ø¼´ë·Î ½ÇÇàÈÄ ¡è ¸¦ ÇÑ ¹ø ´©¸£¸é ¸¶Áö¸·¿¡ ½ÇÇàÇÑ ps °¡ È£ÃâµÇ¸ç ¡è ¸¦ ¶Ç ´©¸£¸é last °¡ È£ÃâµÈ´Ù. ÀÌ »óÅ¿¡¼ ¡é¸¦ ´©¸£¸é last ÀÇ ÀÌÈÄ ¸í·É¾îÀÎ ps°¡ È£ÃâµÇ°í ¡è ¸¦ ´©¸¦ °æ¿ì last ÀÇ ÀÌÀü ¸í·É¾îÀÎ ls °¡ È£ÃâµÈ´Ù.
alias
bash¿¡ ³»ÀåµÈ ¸í·É¾î·Î ±ä ¸í·É¾î¸¦ º°¸íÀ» ÁöÁ¤ÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ±â´ÉÀÌ´Ù. name=value Çü½ÄÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½ ¸í·É¾î·Î vi ¸¦ ½ÇÇàÇÒ °æ¿ì vim ÀÌ ±¸µ¿µÇ°Ô ÇÒ ¼ö ÀÖ´Ù.
ÁöÁ¤µÈ alias ¸¦ ÇØÁ¦ÇÏ·Á¸é unlias ¸í·É¾î¿¡ alias ¸íÀ» ÁÖ¾î¼ ½ÇÇàÇÏ¸é µÈ´Ù. ´ÙÀ½ ¸í·ÉÀº vi alias ¸¦ ÇØÁ¦ÇÑ´Ù.
¿É¼Ç¾øÀÌ alias ¸í·ÉÀ» ½ÇÇàÇϸé -p ¿É¼ÇÀ» ºÙÀÎ °Í°ú µ¿ÀÏÇÑ È¿°ú¸¦ ³ªÅ¸³»¸ç ÀÌ °æ¿ì µî·ÏµÈ ¸ðµç alias ¸¦ Ç¥½ÃÇÑ´Ù.
Áß°ýÈ£ È®Àå(brace expansion)
Áß°ýÈ£ È®ÀåÀº bash ¿¡¸¸ ÀÖ´Â µ¶Æ¯ÇÑ ±â´ÉÀ¸·Î ÀÓÀÇÀÇ ¹®ÀÚ¿À» »ý¼ºÇÏ°í À̸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â ±â´ÉÀ¸·Î °ýÈ£¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ¸í·É¾î¸¦ È®´ëÇØ ÁֹǷΠµ¿ÀÏÇÑ ¸í·É¾î¸¦ ºñ½ÁÇÑ ÆĶó¹ÌÅÍ·Î ¿©·¯ ¹ø È£ÃâÇØ¾ß ÇÒ °æ¿ì ¸Å¿ì Æí¸®ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¹®¹ýÀº Áß°ýÈ£¾È¿¡ È®ÀåÇÒ ¹®ÀÚ¿À» ÄÞ¸¶(,) ¸¦ ±¸ºÐÀÚ·Î ÇÏ¿© ±â¼úÇϸç Áß°ýÈ£ ¾Õ µÚ¿¡´Â ġȯµÇÁö ¾Ê´Â ÆÐÅÏÀ» Àû¾îÁØ´Ù. ÀÌÇظ¦ À§ÇØ °£´ÜÇÑ ¿¹Á¦¸¦ »ìÆì º¸ÀÚ.
¸¸¾à abf, acf, adf, aef ¶ó´Â ¹®ÀÚ¸¦ echo ·Î ¿¬¼ÓÀûÀ¸·Î Ãâ·ÂÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù°í °¡Á¤ÇØ º¸ÀÚ. ¿©±â¿¡¼ ½ÃÀÛÇÏ´Â 'a' ¹®ÀÚ¿Í ¸¶Áö¸· 'f' ¹®ÀÚ´Â °íÁ¤µÇ¾î ÀÖ°í Áß°£¿¡ ÇÑ °¡Áö ¹®ÀÚ¸¸ ¹Ù²î°Ô µÇ¹Ç·Î Áß°ýÈ£ È®Àå ±â´ÉÀ» »ç¿ëÇÏ¿© °£´ÜÇÏ°Ô ´ÙÀ½°ú °°ÀÌ ±â¼úÇÒ ¼ö ÀÖ´Ù.
ÇÑ °æ·Î ¹Ø¿¡ ¿©·¯ °³ÀÇ ÇÏÀ§ µð·ºÅ͸®¸¦ »ý¼ºÇØ¾ß ÇÏ´Â ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù°í °¡Á¤ÇØ º¸ÀÚ. (ÈĹݿ¡ ±â¼úÇÏ´Â gitlab À̳ª redmine µî ¼³Ä¡³ª ½Ã½ºÅÛ ¿î¿µ ÀÛ¾÷½Ã ÀÌ·± »óȲÀº ºó¹øÇÏ°Ô ¹ß»ýÇÑ´Ù.)
¿¹·Î /var/www/ µð·ºÅ͸® ¹Ø¿¡ example.com À̶ó´Â ÇÏÀ§ µð·ºÅ͸®¸¦ ¸¸µé°í ÀÌ ¹Ø¿¡ contents, logs, uploads ¶ó´Â ¼¼ °³ÀÇ ÇÏÀ§ µð·ºÅ͸®¸¦ ¸¸µé¾î¾ß ÇÒ °æ¿ì mkdir À» »ç¿ëÇÑ´Ù¸é ÃÖ¼Ò ´ÙÀ½°ú °°ÀÌ ¼¼ ¹øÀÇ mkdir ¸í·ÉÀ» ¼öÇàÇØ¾ß ÇÑ´Ù.
¿©·¯ ¹ø mkdir ¸í·É¾î¸¦ ½ÇÇàÇÏÁö ¾Ê°í brace expansion ±â´ÉÀ» È°¿ëÇÏ¸é ´ÙÀ½°ú °°ÀÌ ÇÑ ¹øÀÇ Å¸ÀÌÇÎÀ¸·Î °ýÈ£¿¡ ÀÖ´Â ¼¼ °³ÀÇ ¹®ÀÚ°¡ ġȯµÇ¾î mkdir À» °¢°¢ ¼¼ ¹ø ½ÇÇàÇÑ °Í°ú µ¿ÀÏÇÑ È¿°ú¸¦ °®°Ô µÇ¹Ç·Î ¼¼ °³ÀÇ µð·ºÅ͸®¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.
mkdir ½ÇÇà½Ã -p ¿É¼ÇÀ» ÁÖ¸é ºÎ¸ð µð·ºÅ͸®°¡ ¾øÀ» °æ¿ì »ý¼ºÇÏ°Ô µÈ´Ù.
±×·¯¹Ç·Î óÀ½ ¸í·É¾îÀÎ mkdir /var/www/example.com/contents ½ÇÇà½Ã example.com µð·ºÅ丮°¡ ¾ø´Ù¸é »ý¼ºÇϹǷΠ¸ÕÀú example.com À» »ý¼ºÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
for loop
¸í·É¾î¸¦ ¿©·¯ ¹ø ½ÇÇàÇÒ ¶§³ª Áõ°¡ÇÏ´Â ÆÐÅÏÀ» ó¸®ÇÒ ¶§ À¯¿ëÇÑ ±â´ÉÀ¸·Î for ±¸¹®µÚ¿¡ °ýÈ£·Î {½ÃÀÛ°ª..Á¾·á°ª..Áõ°¡°ª} À» ½áÁÖ°í ·çÇÁ¸¦ µ¹ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â 1ºÎÅÍ 10±îÁö 2¾¿ Áõ°¡ÇϹǷΠÃÑ ´Ù¼¸ ¹øÀ» ½ÇÇàÇÏ°Ô µÈ´Ù.
¸¶Áö¸·ÀÇ Áõ°¡°ªÀº »ý·«Çصµ µÇ¹Ç·Î ´ÙÀ½ ¿¹Á¦´Â ¿ ¹øÀ» ½ÇÇàÇÑ´Ù.
°£´ÜÇÑ º¯¼ö export
½© ½ºÅ©¸³Æ®³ª ¼³Á¤ ÆÄÀϵ ¼³Á¤ÇÑ ³»¿ëÀ» Àü¿ªÀûÀ¸·Î ÀÐÀ¸·Á¸é export Å°¿öµå¸¦ »ç¿ëÇÏ¿© Àü¿ª ¼³Á¤ÇØ¾ß ÇÑ´Ù. ±âÁ¸ À¯´Ð½º¿¡¼ »ç¿ëÇÏ´Â sh ´Â export ½Ã ´ÙÀ½°ú °°ÀÌ µÎ ´Ü°è·Î ³ª´²¼ ¼³Á¤ÇØ¾ß ÇÑ´Ù.
bash ´Â º¯¼ö¸¦ ¼±¾ðÇÏ¸é¼ ¹Ù·Î export ¸í·ÉÀ» Àû¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î ´ÙÀ½°ú °°ÀÌ °£´ÜÇÏ°Ô ÇÑ ¹®ÀåÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ÁÙ ÆíÁý(line-editing)
¸í·ÉÇà È÷½ºÅ丮³ª ÅÇ ¿Ï¼º°°Àº bash ¸¸ÀÇ Æí¸®ÇÑ command line ´É·ÂÀº readline À̶ó´Â º°µµÀÇ library ·Î 󸮵ȴÙ. ¿ø·¡ readline Àº bash ÀÇ ÀϺο´À¸³ª ¿ö³« À¯¿ëÇÏ°í ¾²ÀÓ»õ°¡ ¸¹¾Æ¼ º°µµÀÇ ¶óÀ̺귯¸®·Î ºÐ¸®µÇ¾î °ü¸®µÇ°í ÀÖ´Ù.
command ±â¹ÝÀ¸·Î µ¿ÀÛÇÏ´Â ÇÁ·Î±×·¥¿¡ È÷½ºÅ丮³ª ÅÇ ¿Ï¼º ±â´ÉÀÌ ÇÊ¿äÇϸé readline library ¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ ÆíÀǼºÀ» ³ôÀϼö ÀÖ´Ù. ´ëÇ¥ÀûÀ¸·Î MySQL DBMS ¿¡ ³»ÀåµÈ ¸í·ÉÇà Ŭ¶óÀ̾ðÆ®ÀÎ mysql ¸í·Éµµ readline À» »ç¿ëÇÏ°í ÀÖ´Ù.
ÁÙ ÆíÁý ±â´ÉÀº bash ÀÇ ¸í·ÉÁÙÀ» ÆíÁýÇÒ ¼ö ¾µ ¼ö ÀÖ´Â ±â´ÉÀ¸·Î Àͼ÷ÇØÁö¸é ¸Å¿ì È¿À²ÀûÀ¸·Î ÀÛ¾÷ÇÒ ¼ö ÀÖ´Â À¯¿ëÇÑ ±â´ÉÀÌ´Ù. ¸ÕÀú bash ¿¡ ±âº» ¼³Á¤µÈ readline ¸í·É°ú ¸ÅÇÎµÈ Å°º¸µå ´ÜÃàÅ°´Â bind -p ¸í·É¾î·Î º¼ ¼ö ÀÖ´Ù.
ÁÙ ÆíÁýÀº ¸¹Àº ±â´ÉÀ» °®°í ÀÖÁö¸¸ ¸¹ÀÌ ¾²ÀÌ°í À¯¿ëÇÑ ±â´É°ú ´ÜÃàÅ°¸¦ Á¤¸®ÇØ º¸¸é ´ÙÀ½°ú °°´Ù. (\C´Â Ctrl key, \e ´Â Esc Key ÀÌ´Ù)
Key | action | ºñ°í |
---|---|---|
\C-a | line ÀÇ Ã³À½À¸·Î °¡±â | |
\C-e | line ÀÇ ³¡À¸·Î °¡±â | |
\C-p | ¿¹Àü history·Î °¡±â | Å°º¸µåÀÇ ÀÂÊ Ä¿¼Ç¥ ¡è µ¿ÀÏ ("\e[A") |
\C-n | ´ÙÀ½ history·Î °¡±â | Å°º¸µåÀÇ ¾Æ·¡ÂÊ Ä¿¼Ç¥ÀÇ ¡éµ¿ÀÏ("\e[B") |
\C-r | reverse increment search | ¿¹Àü¿¡ »ç¿ëÇß´ø ¸í·É¾î¸¦ ÇÑ ±ÛÀÚ¾¿ Ä¡¸é¼ ãÀ»¼ö ÀÖÀ½. ¸¹Àº ¸í·É¾î¸¦ ¼öÇàÇßÀ»¶§ ¿¹Àü ¸í·É¾î È£Ãâ½Ã À¯¿ë |
\e-u | lineÀÇ ¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î º¯°æ | |
\e-l | lineÀÇ ¹®ÀÚ¸¦ ¼Ò¹®ÀÚ·Î º¯°æ |
ÀÌÁ¦ ÁÙ ÆíÁý ±â´ÉÀ» ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¾Ë¾Æ º¸ÀÚ. /etc µð·ºÅ͸®¿¡¼ xml ÆÄÀÏÁß ³»¿ë¿¡ UTF-8 ÀÌ µé¾î°¡´Â °É ã¾Æ¼ ¸ñ·ÏÀ» Ãâ·ÂÇÏ´Â ´ÙÀ½ ¸í·É¾î°¡ ÀÖ´Ù.
find /etc -name \*.xml -exec grep UTF-8 /dev/null {} \;
Àú ±æ°í º¹ÀâÇÑ ¸í·É¾î¸¦ Ä¡´Ù°¡ ½Ç¼ö·Î find ´ë½Å fond ¶ó°í Ä¡°í ½ÇÇàÇϸé command not found ¿¡·¯°¡ ³ª°í ½ÇÇàÀÌ µÇÁö ¾ÊÀ» °ÍÀÌ´Ù.
ÀÌÁ¦ sh »ç¿ëÀÚ´Â Àú ±ä ¸í·É¾î¸¦ óÀ½ºÎÅÍ ´Ù½Ã ÃÄ¾ß ÇÑ´Ù.
bash »ç¿ëÀÚ¶ó¸é À§ÂÊ Ä¿¼Ç¥·Î ¿ÀŸ³½ ¸í·É¾î¸¦ ºÒ·¯³»°í ¿ÞÂÊ Ä¿¼Å°·Î Ä¿¼¸¦ ¿ÀŸ³ ºÎºÐ±îÁö À̵¿½ÃÄÑ ¿ÀŸ¸¦ ¼öÁ¤ÇÏ°í Àç½ÇÇàÇÏ¸é µÈ´Ù.
ÇÏÁö¸¸ ÁÙ ÆíÁý ±â´ÉÀ» »ç¿ëÇÏ¸é ´õ °£´ÜÇØÁø´Ù. Ctrl-a ¸¦ ´©¸£¸é ÁÙÀÇ Ã³À½ ºÎºÐÀ¸·Î À̵¿ÇϹǷΠ¸Ç ¾ÕÀÇ f ¿¡ À§Ä¡ÇÏ°Ô µÇ¸ç ¿ìÃø Ä¿¼Å°¸¦ Çѹø¸¸ ´©¸£¸é ¹Ù·Î ¿ÀŸ¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.
¶Ç À¯¿ëÇÑ ±â´ÉÀº reverse increment search ±â´ÉÀÌ´Ù.
¿ª Á¡Áø Ž»ö(reverse increment search)
bash ÀÇ È÷½ºÅ丮´Â HISTSIZE ȯ°æ º¯¼ö¿¡ ÃÖ´ë ÀúÀåÇÒ ¼ö ÀÖ´Â °¹¼ö°¡ ÁöÁ¤µÇ¾î ÀÖ°í ±âº»°ªÀº 1,000 ÀÌ´Ù. ÀÌÁ¦ º¹ÀâÇÑ ÀÛ¾÷À» ¼öÇàÇÏ´À¶ó ¾ÆÁÖ ¸¹Àº ¸í·É¾î(200°³)¸¦ ½ÇÇàÇß´Ù°í ÇÏÀÚ. ±×Áß¿¡ Çϳª´Â À§ÀÇ find ¸í·É¾îÀε¥ ±× ¸í·É¾î¸¦ ÀçÈ£ÃâÇÒ ÀÏÀÌ »ý°å´Âµ¥ ±× ¸í·É¾î´Â 97¹ø°¿¡ ¾Õ¿¡ ½ÇÇàÇß¾ú´Ù.
±×·³ Ä¿¼Å°¸¦ 97¹øÀ» ´·¯¾ß ÇÒ±î? reverse increment search ±â´ÉÀ» »ç¿ëÇÏ¸é ¼øÂ÷ÀûÀ¸·Î ¿øÇÏ´Â ¸í·É¾î¸¦ ¼Õ½±°Ô ãÀ» ¼ö ÀÖ´Ù.
- bash ÇÁ·ÒÇÁÆ®¿¡¼ Ctrl-r Å°¸¦ ´·¯¼ ´ÙÀ½°ú °°ÀÌ Reverse-i-search ¸ðµå·Î µé¾î°£´Ù.
Prompt °¡ ¾ø¾îÁö°í ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂâÀÌ ¶á´Ù.
¼øÂ÷ÀûÀ¸·Î ãÀ¸¹Ç·Î ÇÑ ±ÛÀÚ¸¦ ÀÔ·ÂÇÒ¶§ ¸¶´Ù ÇØ´çÇÏ´Â ¸í·É¾î¸¦ º¸¿©ÁØ´Ù. ´ÙÀ½Ã³·³ fi ¸¸ Ãĵµ ¿¹Àü¿¡ ¼öÇàÇß´ø ¸í·ÉÁß fi ÀÖ´Â °É Ç¥½ÃÇÑ´Ù.
- È£ÃâÇÏ°íÀÚ ÇÏ´Â ¿¹Àü ¸í·É¾î¿Í ÀÏÄ¡ÇÒ ¶§±îÁö ³ª¸ÓÁö ¸í·É¾î¸¦ ÀÔ·ÂÈÄ ¿£Å͸¦ Ãļ ¸í·É¾î¸¦ ¼öÇàÇÑ´Ù.
ȯ°æ º¯¼ö¿Í ¼³Á¤
¼³Á¤ ÆÄÀÏ Ã³¸® ¼ø¼
bash ¸¦ ·Î±×ÀÎ ½©·Î »ç¿ëÇÒ °æ¿ì ¼³Á¤À» ÆÄÀÏ¿¡¼ ÀÐ°Ô µÈ´Ù. ¼³Á¤ ÆÄÀÏÀº ¸ÕÀú /etc/bashrc ÆÄÀÏÀÇ ¼³Á¤À» ÀÐ°í ¾È¿¡ ¸í·É¾î°¡ ÀÖÀ» °æ¿ì ½ÇÇàÇÏ°í ÀÌÈÄ¿¡ ~/.bashrc, ~/.bash_profile¼ø¼´ë·Î ó¸®ÇÑ´Ù.
»ç¿ëÀÚ°¡ logout ÇÒ °æ¿ì ~/.bash_logout ±×¸®°í /etc/bash.bash_logout ÆÄÀÏÀÌ ÀÖ´ÂÁö È®ÀÎÇÏ¿© ÀÖÀ» °æ¿ì ó¸®ÇÏ°Ô µÈ´Ù. ÀϹÝÀûÀ¸·Î ~/.bashrc ÆÄÀϺ¸´Ù´Â ~/.bash_profile ¿¡ °³ÀÎÀûÀÎ ³»¿ëÀ» ¼³Á¤ÇÑ´Ù.
¼³Á¤ ÆÄÀÏÀÌ º¯°æµÇ¾ú´Ù¸é source ~/.bash_profile ¶Ç´Â . ~/.bash_profile ¸í·ÉÀ¸·Î ¼³Á¤ ÆÄÀÏÀ» ´Ù½Ã ÀÐ¾î µé¿©¾ß ÇöÀç bash ¿¡ ¹Ý¿µµÈ´Ù.
ȯ°æ º¯¼ö
bash ´Â ¿©·¯ °¡Áö ȯ°æ º¯¼ö¸¦ ÅëÇØ µ¿ÀÛÀ» Á¦¾îÇÒ ¼ö ÀÖ´Ù. ±×Áß¿¡ ²À ¾Ë¾ÆµÎ¾î¾ß ÇÒ È¯°æ º¯¼ö¸¦ ¾Ë¾Æ º¸°í .bash_profile ¿¡ ¼³Á¤ÇØ º¸ÀÚ
VISUAL
VISUAL
ȯ°æ º¯¼ö´Â »ç¿ëÇÒ ÆíÁý±â¸¦ ÁöÁ¤Çϴ ȯ°æ º¯¼öÀÌ´Ù. ÀÌ º¯¼ö¸¦ ÁöÁ¤Çϸé ÆíÁý±â°¡ ÇÊ¿äÇÑ ÀÛ¾÷ÀÌ ÀÖÀ» °æ¿ì ¼³Á¤µÈ ÆíÁý±â¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¿¹·Î crontab À» ÆíÁýÇϰųª Å͹̳ο¡¼ ¼ºê¹öÀüÀ̳ª git µîÀÇ ¹öÀü °ü¸® ÇÁ·Î±×·¥¿¡¼ Ä¿¹Ô ¸Þ½ÃÁö ÀÛ¼ºµîÀÇ ÀÛ¾÷ÀÌ ÀÖ´Ù.
EDITOR º¯¼ö¿Í ¿ëµµ´Â µ¿ÀÏÇϳª EDITOR´Â ed °°Àº ÁÙ ±â¹ÝÀÇ ÆíÁý±â¸¦ ÁöÁ¤ÇÏ°í vim °°Àº ±â´ÉÀÌ ¸¹Àº ÆíÁý±â´Â VISUAL º¯¼ö·Î ÁöÁ¤ÇÏ´Â°Ô ÀϹÝÀûÀÌ´Ù.
cron ÇÁ·Î±×·¥À̳ª svn, git µîÀº VISUAL º¯¼ö¸¦ È®ÀÎÇÏ°í ¾øÀ» °æ¿ì EDITOR º¯¼ö¸¦ ã´Â´Ù.
¼³Á¤ ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇÏ¸é µÈ´Ù.
export VISUAL=/usr/bin/vim
PS1
bashÀÇ ÇÁ·ÒÇÁÆ® ¸ð¾çÀ» ÁöÁ¤ÇÏ´Â º¯¼öÀÌ´Ù. ±âº» ¼³Á¤Àº [\u@\h \W]\$ À̸ç "»ç¿ëÀÚ¸í@È£½ºÆ®¸í ÀÛ¾÷µð·ºÅ͸®" ¸¦ ÇÁ·ÒÇÁÆ®¿¡ Ç¥½ÃÇÏ°Ô µÈ´Ù. ÇÊÀÚÀÇ °æ¿ì ´ÙÀ½ PS1 º¯¼ö¸¦ »ç¿ëÇϴµ¥ ÀÌ·² °æ¿ì Ä÷¯·Î Àüü °æ·Î¸¦ Ç¥½ÃÇϹǷΠ°¡µ¶¼ºÀÌ ÁÁÀº ÀåÁ¡ÀÌ ÀÖ´Ù.
À§¿¡ Àִ ȸéÀº CentOS ±âº» ¼³Á¤ÀÌ¸ç ¾Æ·¡¿¡ Àִ ȸéÀÌ ÇÊÀÚÀÇ PS1 ¼³Á¤Àε¥ ÀÌ°É »ç¿ëÇÒ µ¶ÀÚµéÀº º¹ÀâÇϹǷΠÁ÷Á¢ Ä¡Áö ¸»°í ºÎ·Ï ¼Ò½º¸¦ Âü°íÇÏÀÚ.
PATH
bash °¡ ½ÇÇà ÇÁ·Î±×·¥À» ã´Â °æ·Î¸¦ ÁöÁ¤Çϴ ȯ°æ º¯¼öÀÌ´Ù. ÄÝ·Ð(:) À¸·Î ±¸ºÐÇÏ¿© ¿©·¯ °³¸¦ ¼³Á¤ ÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥À» /usr/bin À̳ª /usr/local/bin °°Àº ÀϹÝÀûÀÌÁö ¾ÊÀº °æ·Î¿¡ ¼³Ä¡Çß´Ù¸é ÇØ´ç °æ·Î¸¦ PATH º¯¼ö¿¡ ÁöÁ¤ÇØ ÁÖ¾î¾ß Àý´ë °æ·Î¸¦ ÀÔ·ÂÇÏÁö ¾Ê°í »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¼³Á¤ ÆÄÀÏ¿¡ PATH Ãß°¡½Ã ±âÁ¸ PATH º¯¼ö¸¦ Àû¾îÁÖ°í ±× µÚ¿¡ Ãß°¡ÇÒ PATH ¸¦ Àû¾îÁÖ¸é µÈ´Ù.
export PATH=$PATH:/opt/myprog/bin
LD_LIBRARY_PATH
Á¤È®È÷´Â bash °¡ »ç¿ëÇÏ´Â º¯¼ö´Â ¾Æ´Ï°í ¸®´ª½ºÀÇ ÇÁ·Î±×·¥ ·Î´õ(loader) ÀÎ ld.so °¡ Âü°íÇÏ´Â º¯¼öÀÌ´Ù. ÇÁ·Î±×·¥ ½ÇÇà¿¡ ÇÊ¿äÇÑ µ¿Àû ¶óÀ̺귯¸®(È®ÀåÀÚ .so) ¸¦ ã´Â °æ·ÎÀ̸ç ÀÌ °æ·Î¿¡ ¶óÀ̺귯¸®°¡ ¾ø´Ù¸é ÇÁ·Î±×·¥ ½ÇÇà¿¡ ½ÇÆÐÇÑ´Ù.
ÇÁ·Î±×·¥ ¼³Ä¡½Ã µ¿Àû ¶óÀ̺귯¸®°¡ °°ÀÌ ¼³Ä¡µÆ´Âµ¥ /lib, /usr/lib, /usr/local/lib °°ÀÌ ÀϹÝÀûÀÎ °æ·Î°¡ ¾Æ´Ò °æ¿ì¿¡´Â ÀÌ È¯°æ º¯¼ö¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù.
LANG
¾î¶² ·ÎĶ(locale) À» »ç¿ëÇÒ Áö ¼³Á¤ÇÏ´Â º¯¼öÀÌ´Ù. ¼³Ä¡ ¾ð¾î¸¦ Çѱ۷ΠÇßÀ¸¸é ±âº» ·ÎĶÀº ko_KR.UTF-8 °¡ µÈ´Ù. ÀÌ °æ¿ì ÇÁ·Î±×·¥ÀÌ ´Ù°³±¹¾î¸¦ Áö¿øÇÏ°í ÇÑ±Û ¹ø¿ªÀÌ ÀÖÀ» °æ¿ì ¸Þ½ÃÁö°¡ Çѱ۷Πǥ½ÃµÇ¸ç man À¸·Î º¸´Â ½Ã½ºÅÛ ¸Å´º¾ó ÆäÀÌÁö, ±âŸ ¿¡·¯ ¸Þ½ÃÁöµîÀÌ Çѱ۷Πǥ½ÃµÈ´Ù.
Ȥ½Ã Å͹̳Π¼³Á¤ÀÌ À߸ø µÇ¾ú°Å³ª ÇѱÛÀ» Ãâ·ÂÇÒ ¼ö ¾ø´Â Å͹̳ÎÀ̰ųª µîÀÇ ÀÌÀ¯·Î ÇѱÛÀÌ ±úÁö¸é ·ÎĶÀ» ´Ù¸¥ ¾ð¾î·Î ¼³Á¤ÇØ ÁÖ¸é µÈ´Ù.
·ÎĶÀº Ç¥½Ã ¾ð¾î(LC_MESSAGES)¿Ü¿¡ ÈÆó Ç¥½Ã(LC_MONETARY), ¼ýÀÚ Ç¥½Ã(LC_NUMERIC), ½Ã°£´ë(LC_TIME) µî °³º° ¼³Á¤ º¯¼ö°¡ °¢°¢ ÀÖÀ¸¹Ç·Î Ç¥½Ã ¾ð¾î¸¸ ´Ù¸¥ ¾ð¾î·Î º¯°æÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½°ú °°ÀÌ ¼³Á¤Çϸé Ç¥½Ã ¾ð¾î¸¸ ¿µ¾î·Î ¼³Á¤µÈ´Ù.
export LC_MESSAGES=en_US.utf8
LANG º¯¼ö¿¡ ¼³Á¤ÇÏ´Â °ÍÀº ·ÎĶ °ü·Ã °³º° º¯¼ö¸¦ ÇÑ ¹ø¿¡ ¼³Á¤Çϱâ À§ÇÑ º¯¼öÀ̹ǷΠÀüü ·ÎĶÀ» º¯°æÇÒ °æ¿ì ´ÙÀ½Ã³·³ LANG º¯¼ö¸¦ ¼³Á¤ÇÏ¸é µÈ´Ù.
export LANG=en_US.utf8
ÇöÀç ¼³Á¤µÈ ·ÎĶÀº locale ¸í·ÉÀ» ½ÇÇàÇÏ¸é ¾Ë ¼ö ÀÖ´Ù.