ºìÁªLinuxÃÅ»§
Linux°ïÖú

¿ìËٱ༭ Shell ÃüÁîÐÐ

·¢²¼Ê±¼ä:2006-01-08 09:54:54À´Ô´:ºìÁª×÷Õß:ABC
ÏëÆðÌýµÃ×î¶àµÄ¾ÍÊÇ *nux µÄ³õѧÕß˵×î·³¾ÍÊÇ Linux / Unix µÄÃüÁîÐУ¬
ËùÒÔ¾ÍÓÐÁËÕâ¸öÌâÄ¿¡£

Èç¹ûÄãÊǸöÐÔ¼±µÄÈË¿ÉÒÔÏȳ¢ÊÔÏÂÎÄÕ½áβµÄ×ÛºÏÁ·Ï°Ìå»áһϠShell µÄ¿ì½Ý¼ü£¬
Ò²ÐíÕâÑùÔÙ¿´È«ÎÄ»á¸üÓÐȤ¡£

Æäʵ£¬ÃüÁîÐÐÊÊÓ¦ÁË£¬¿ÉÄܱÈͼÐνçÃæ¸üÓÐЧÂÊ¡£
ÖÁÉÙ¶ÔÎÒÀ´ËµÊÇÕâÑù£¬ÎÒÏÖÔÚÒ»¿´¼ûÄÇЩËùνµÄ IDE ¾ÍÓÐÑÛ»¨çÔÂҸоõ£¬
ÕæÕýÓÃÀ´Ð´´úÂëµÄÃæ»ý¶¼±»¼·µ½Ö»ÓÐÒ»°üÑÌÄÇô´óÁË£¬ºÇºÇ¡£
ÓÐʱΪÕÒ¸öÑ¡ÏºÜ³¤Ê±¼äÕÒ¶Ô»°¿ò£¬Ò²ºÜÍ´¿à°É¡£

ΪʲôÄÇô¶àÈ˺¦ÅÂÃüÁîÐÐÄØ£¿

ÎÒÏë×î´óµÄÎÊÌâ¾ÍÊǺܶàÈ˾õµÃÃüÁîÐеÄÊäÈëºÍ±à¼­¶¼ºÜ¡°Âý¡±£¬ºÜµÍЧ¡£
µ«ÊǶÔÓÚ Linux / Unix ÕâÀà´ÓÄں˵õ½ÕûÌå¼Ü¹¹£¬ÔÙµ½ÄÄÅÂÊÇ×îСµÄÒ»¸öÓ¦ÓÃСÈí¼þ¶¼ÒÔÎı¾À´Ö§³ÅµÄϵͳ£¬
ûÓÐæµÊìµÄÃüÁîÐм¼ÇÉȷʵÊÇÍ治תµÄ¡£Ï£Íû±¾ÎÄÄܶÔÄãÌá¸ßÃüÁîÐÐʹÓÃЧÂÊÓаïÖú¡£

µ«ÊÇÓÉÓÚ Linux / Unix µÄ·¢ÐаæʵÔÚÊÇÌ«¶à£¬Shell µÄÖ÷Á÷°æ±¾Ò²Óкü¸¸ö£¬
ËùÒÔ£¬±¾ÎÄËù˵µÄÄÚÈÝ£¬¿ÉÄܺÍÄãµÄϵͳÓгöÈ룬µ«ÊÇ˼ÏëÊÇÒ»ÑùµÄ£¬ÔÚÄã×Ô¼ºµÄƽ̨ÉÏÃþË÷һϣ¬
ÄãÒ²»áÕÒµ½ÄãµÄƽ̨̫ϱ༭ÃüÁîÐеļ¼Çɺ͹æÂÉ¡£

ÁíÍ⣬Shell µÄºÜ¶à¿ì½Ý¼üºÍ VIM, Emacs µÄ¿ì½Ý¼üÊÇÏàͨµÄ£¬
ËùÒÔ£¬ÊìÁ·Ê¹Óà Shell ¿ì½Ý¼ü£¬¶ÔÊÊÓ¦ *nux ϵÄÆäËûÈí¼þÓкܺõÄÆôʾ×÷Óá£

ÃüÁîÐеļ¼ÇɳýÁ˱¾ÎÄÌáµ½µÄ£¬»¹Óкܶ࣬Äã¿ÉÒÔ×Ô¼ºÂýÂý»ýÀÛ£¬ÊÕ¼¯ºÍÌå»á¡£
µ±È»Èç¹ûÄã¾­³£ÐèÒªÊäÈëºÜ·±ËöµÄÃüÁÄÇô½¨ÒéÄã×Ô¼ºÐ´ Shell ½Å±¾£¬
¶¨Òå function, alias µÈ¼¼ÇÉÀ´ÊµÏÖ¡£

ÎÒĿǰʹÓõÄϵͳÅäÖÃ

Äںˣº 2.6.14-gentoo-r5;
ϵͳ·¢Ðа棺 Gentoo Linux -- 2005.1;
Shell °æ±¾£º Gun bash -- 3.00.16
X Server: Xorg -- 6.8.2;
´°¿Úϵͳ£º Gnome -- 2.10.1£»
Öնˣº gnome-terminal -- 2.10.0;
ÏÖÔھͿªÊ¼°É

Ò»¡¢×Ô¶¯²¹Æ룺[Tab]
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
Õâ¸ö¼¼ÇɺܶàÈ˶¼Ó¦¸Ã»áÁË£¬¾ÍÊǵ±ÊäÈëÃüÁĿ¼»òÕßÊÇÎļþÃûµÄʱºò°´ [Tab] ¼ü¡£
ϵͳ¾Í»á°ïÄã²¹Æë¿ÉÄÜÒªÊäÈëµÄ¶«Î÷£¬Èç¹ûÓжà¸öÑ¡Ôñϵͳ»áÁбí³öÀ´¡£
Äã¿ÉÒÔ¿´Çå³þÖ®ºóÔÙ¶àÊäÈëÒ»¸ö»ò¶à¸ö charactor £¬ÔÙ°´[Tab]¡£

ʵÑ飺
$ ec

°´[Tab], ²¹ÆëΪ£º

$ echo

¶þ¡¢²éÕÒºÍÖ´ÐÐÀúÊ·ÃüÁ[Ctrl + r]
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
ÔÚÖÕ¶ËÖа´×½ [Ctrl] ¼üµÄͬʱ [r] ¼ü£¬³öÏÖÌáʾ£º
(reverse-i-search), ´ËʱÄã³¢ÊÔÒ»ÏÂÊäÈëÄãÒÔÇ°ÊäÈë¹ýµÄÃüÁ
µ±ÄãÿÊäÈëÒ»¸ö×Ö·ûµÄʱºò£¬Öն˶¼»á¹ö¶¯ÏÔʾÄãµÄÀúÊ·ÃüÁî¡£
µ±ÏÔʾµ½ÄãÏëÕҵĺÏÊʵÄÀúÊ·ÃüÁîµÄʱºò£¬Ö±½Ó[Enter]£¬¾ÍÖ´ÐÐÁËÀúÊ·ÃüÁî¡£

ʵÑ飺

$ echo "hello, world" [Enter]

$ hello, world

[Ctrl + r ] (½Ó×ÅÊäÈë echo)
(reverse-i-search)`ch': echo "hello,world" [Enter]
$hello,world

Èý¡¢È¡Ïû±¾´ÎÃüÁîÊäÈ룺[Ctrl + c]
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
Õâ¸ö¿ì½Ý¼ü¿ÉÒÔʹÄã´ÓÒ»¸ö¿ÉÄÜÄãÒѾ­Ñá·³Á˵ÄÃüÁîÖа²È«µØÍ˳ö£¡£¡
Ò²ÐíÊǸö²»ÖµÒ»ÌáµÄС¼¼ÇÉ£¬µ«ÊǾ­Ñé¸æËßÎÒËüºÜÓÐÓá£
ºÜ¶à Unix ³õѧÕß»áÏ°¹ßÐԵذ´ [Enter] ÒÔ°ÚÍÑÀ§¾³£¬
µ«ÊÇ˵²»¶¨¾Í»á·¢ÉúÔÖÄÑÐÔµÄʼþ£¬Æ©Èçɾ³ýÁËÒ»¸öÖØÒªµÄÅäÖÃÎļþ£¬:(

ËÄ¡¢¹â±êÌøת¿ì½Ý¼ü£º
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
ΪÁË·½±ã´ó¼Ò¼ÇÒ䣬¼ÓµãÓ¢ÓïÖú¼ÇÓïÔÚºóÃæ :)

[Ctrl + a] ÌøתÖÁÃüÁîÐÐÊ× Ahead of line
[Ctrl + e] ÌøתÖÁÃüÁîÐÐβ End of line

[Ctrl + f] ÏòÇ°Ìøתһ¸ö×Ö·û jump Forward one character
[Ctrl + b] ÏòºóÌøתһ¸ö×Ö·û jump Backward one character

[Alt + f] ÏòÇ°Ìøתµ½ÏÂÒ»¸ö×ֵĵÚÒ»¸ö×Ö·û
[Alt + b] ÏòºóÌøתµ½ÏÂÒ»¸ö×ֵĵÚÒ»¸ö×Ö·û
Îå¡¢±à¼­ÃüÁîµÄ¿ì½Ý¼ü£º
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­

[Ctrl + w] Ïòºóɾ³ýÒ»¸ö×Ö£¬ÓÃÀ´¶Ô¸¶¸Õ¸ÕÊäÈëµÄ´íÎó×ÖºÜÓÐÓÃ

[Ctrl + u] ´Ó¹â±êµ±Ç°Î»ÖÃɾ³ýËùÓÐ×Ö·ûÖÁÐÐÊ×
[Ctrl + k] ´Ó¹â±êµ±Ç°Î»ÖÃɾ³ýËùÓÐ×Ö·ûÖÁÐÐβ

[Ctrl + d] ɾ³ý¹â±êµ±Ç°Î»ÖõÄ×Ö·û

[Ctrl + y] Õ³Ìù×îºóÒ»¸ö±»É¾³ýµÄ×Ö

[Alt + d] ɾ³ý´Ó¹â±êµ±Ç°Î»Ö㬵½µ±Ç°×ֵĽáβ×Ö·û
Áù¡¢ÅäÖÃÌáʾ£º
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
Èç¹ûÄãÊÇÓà Gnome ϵÄÖն˴°¿Ú gnome-teminal £¬
ÉÏÃæµÄ Gnu Shell ¿ì½Ý¼ü»á¸ú Gnome µÄ´°¿Ú¿ì½Ý¼üÓгåÍ»¡£

ÄÇôÄãÐèÒª×öÈçÏÂÅäÖãº
ÔÚ gnome-terminal µÄ²Ëµ¥À¸ÖÐÑ¡ "Edit" -] "Keyboard Shortcuts ..."
´ò¿ª "Keyboard Shortcuts" ¶Ô»°¿ò£¬²¢¹´Ñ¡ÏÂÃæÁ½¸ö¸´Ñ¡Ïî

"Disable all menu access keys (such as Alt+f to open File menu)"
"Disable menu shortcut key (F10 by default)"
ÖÁÓÚ KDE ÏÂÓ¦¸ÃÔõôÅä KDE µÄÖն˴°¿Ú£¬ÇëÊìϤ KDE µÄÅóÓѲ¹³äһϣ¬
ÎҺܾÃûÓà KDE ÁË£¬Ò²Ã»×°¡£

¡«¡«×ÛºÏÁ·Ï°¡«¡«
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
ÉÏÃæÁоٵĿì½Ý¼ü£¬Á·Ï°2¡«3ÌìÓ¦¸Ã¾ÍÄÜÊìÁ·£¬ÎªÁË´ó¼Ò¿ìËÙÀí½âºÍ¼ÇÒ䣬
ÎÒÃÇÀ´×ö¸öССµÄ£º

µÚÒ»²½£º$ echo "hello, world." [Enter]

ÎÒÃÇÏÈÊäÈë¡¡echo "hello, world" Õâ¸öÃüÁȻºó»Ø³µ£¬
Ò²¾Í¿´µ½ÁËÖն˵ÄÊä³ö£º
$ hello, world.

µÚ¶þ²½£º[Ctrl + r],

ÎÒÃÇÊÔÊÔÕÒ³öÀúÊ·ÃüÁî echo "hello, world.",
Õâʱ£¬ÎÒÃÇ°´[e],[c],[h]ÕâÈý¸ö¼ü£¬Õâ¸öÀúÊ·ÃüÁî´ó¸ÅÒѾ­ÕÒµ½ÁË£¬
Öն˵ÄÏÔʾӦ¸ÃÊÇÕâÑù£º
(reverse-i-search)`ech': echo "hello,world."
ÏÖÔÚ£¬Èç¹û[Enter]¾Í»áÔÙÒ»´ÎÖ´ÐÐÕâ¸öÃüÁ
µ«ÎÒÃÇÏÖÔÚÀ´Á·Ï°Ò»ÏÂÃüÁîÐеı༭¡£

µÚÈý²½£º[Ctrl + a]

ÕâÑù£¬ÎÒÃǾÍÈ¡³öÁËÀúÊ·ÃüÁî echo "hello, world.",
²¢ÇÒ½«¹â±ê¶¨Î»µ½ÐÐÊ×£¬´Ëʱ£¬¹â±êÓ¦¸ÃÔÚ echo ÃüÁîµÄ e ×Ö·ûÉϸßÁÁ¡£
Öն˵ÄÏÔʾӦ¸ÃÊÇÕâÑù£º
$ echo "hello,world"

µÚËIJ½£º[Alt + d]

ɾ³ýÁËÃüÁî echo, ²¢ÇÒ¹â±êÈÔÈ»ÔÚÐÐÊס£
ÖÕ¶ËÏÔʾΪ£º
$ "hello, world."

µÚÎå²½£ºÊäÈëÃüÁî "printf"

ÎÒÃdz¢ÊÔÒ»ÏÂÓà Posix µÄϵͳµ÷Óà printf À´Ìæ´ú shell ÃüÁî echo,
ÊäÈë[p][r][n][t][f],
´ËʱÖÕ¶ËÏÔʾΪ£º
$ printf "hello, world."
²¢ÇÒ¹â±êÔÚ f ×Ö·ûºóÃæ¸ßÁÁ¡£

µÚÁù²½£º[Ctrl + e]

¹â±êÌøתµ½ÃüÁîÐÐβ²¿¡£

µÚÆß²½£º[Ctrl + b]

¹â±êºóÍËÒ»¸ö×Ö·û£¬´Ëʱ¹â±êÓ¦´¦ÓÚºóË«ÒýºÅ " ´¦¸ßÁÁ¡£

µÚ°Ë²½£ºÊäÈë»»ÐÐתÒå·û "\n"

ÊäÈë[\][n] £¬´ËʱµÄÖÕ¶ËÏÔʾӦ¸ÃΪ£º
$ printf "hello, world.\n"
¿ÉÒÔ[Enter]Ö´ÐÐÁË¡£

µ±ÄãÊìÁ·µÄʱºò£¬ÉÏÃæµÄ²½ÖèÓ¦¸ÃÔÚ£²£°ÃëÖ®ÄÚ¾ÍÍê³ÉÁË°É£¬
Ï£Íû´ó¼Ò¶¼ÄܳÉΪÃüÁîÐеĸßÊÖ£¡£¡£¡
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ