Ò»¸öºÜ²»´íµÄbash½Å±¾±àд½Ì³Ì£¬ÖÁÉÙû½Ó´¥¹ýBASHµÄÒ²ÄÜ¿´¶®£¡
½¨Á¢Ò»¸ö½Å±¾
¡¡¡¡LinuxÖÐÓкöàÖв»
ͬµÄshell£¬µ«ÊÇͨ³£ÎÒÃÇʹÓÃbash (bourne again shell)
½øÐÐshell±à³Ì£¬ÒòΪbashÊÇÃâ·ÑµÄ²¢ÇÒºÜÈÝÒ×ʹÓá£ËùÒÔÔÚ±¾ÎÄÖбÊÕßËùÌṩµÄ½Å±¾¶¼ÊÇʹÓÃbash£¨µ«ÊÇÔÚ´ó¶àÊýÇé¿öÏ£¬ÕâЩ½Å±¾Í¬Ñù¿ÉÒÔÔÚ
bashµÄ´ó½ã£¬bourne shellÖÐÔËÐУ©¡£
¡¡¡¡ÈçͬÆäËûÓïÑÔÒ»Ñù£¬Í¨¹ýÎÒÃÇʹÓÃÈÎÒâÒ»ÖÖÎÄ×Ö±à¼Æ÷£¬±ÈÈçnedit¡¢kedit¡¢emacs¡¢vi
¡¡¡¡µÈÀ´±àдÎÒÃǵÄshell³ÌÐò¡£
¡¡¡¡³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
¡¡¡¡ÒªÊ¹½Å±¾¿ÉÖ´ÐУº
chmod +x filename
¡¡¡¡È»ºó£¬Äú¿ÉÒÔͨ¹ýÊäÈ룺 ./filename À´Ö´ÐÐÄúµÄ½Å±¾¡£
×¢ÊÍ
¡¡¡¡ÔÚ½øÐÐshell±à³Ìʱ£¬ÒÔ#¿ªÍ·µÄ¾ä×Ó±íʾעÊÍ£¬Ö±µ½ÕâÒ»ÐеĽáÊø¡£ÎÒÃÇÕæ³ÏµØ½¨ÒéÄúÔÚ³ÌÐòÖÐʹÓÃ×¢ÊÍ¡£Èç¹ûÄúʹÓÃÁË×¢ÊÍ£¬ÄÇô¼´Ê¹Ï൱³¤µÄʱ¼äÄÚûÓÐʹÓøýű¾£¬ÄúÒ²ÄÜÔں̵ܶÄʱ¼äÄÚÃ÷°×¸Ã½Å±¾µÄ×÷Óü°¹¤×÷ÔÀí¡£
±äÁ¿
¡¡¡¡ÔÚÆäËû±à³ÌÓïÑÔÖÐÄú±ØÐëʹÓñäÁ¿¡£ÔÚshell±à³ÌÖУ¬ËùÓеıäÁ¿¶¼ÓÉ×Ö·û´®×é³É£¬²¢ÇÒÄú²»ÐèÒª¶Ô±äÁ¿½øÐÐÉùÃ÷¡£Òª¸³Öµ¸øÒ»¸ö±äÁ¿£¬Äú¿ÉÒÔÕâÑùд£º
±äÁ¿Ãû=Öµ
¡¡¡¡È¡³ö±äÁ¿Öµ¿ÉÒÔ¼ÓÒ»¸öÃÀÔª·ûºÅ£¨$£©ÔÚ±äÁ¿Ç°Ã棺
#!/bin/sh
#¶Ô±äÁ¿¸³Öµ£º
a="hello world"
# ÏÖÔÚ´òÓ¡±äÁ¿aµÄÄÚÈÝ£º
echo "A is:"
echo $a
¡¡¡¡ÔÚÄúµÄ±à¼Æ÷ÖÐÊäÈëÒÔÉÏÄÚÈÝ£¬È»ºó½«Æä±£´æΪһ¸öÎļþfirst¡£Ö®ºóÖ´ÐÐchmod +x first
¡¡¡¡Ê¹Æä¿ÉÖ´ÐУ¬×îºóÊäÈë./firstÖ´Ðиýű¾¡£
¡¡¡¡Õâ¸ö½Å±¾½«»áÊä³ö£º
A is:
hello world
¡¡¡¡ÓÐʱºò±äÁ¿ÃûºÜÈÝÒ×ÓëÆäËûÎÄ×Ö»ìÏý£¬±ÈÈ磺
num=2
echo "this is the $numnd"
¡¡¡¡Õâ²¢²»»á´òÓ¡³ö"this is the 2nd"£¬¶ø½ö½ö´òÓ¡"this is the "£¬ÒòΪshell»áÈ¥ËÑË÷±äÁ¿numndµÄÖµ£¬µ«ÊÇÕâ¸ö±äÁ¿Ê±Ã»ÓÐÖµµÄ¡£¿ÉÒÔʹÓû¨À¨ºÅÀ´¸æËßshellÎÒÃÇÒª´òÓ¡µÄÊÇnum±äÁ¿£º
num=2
echo "this is the ${num}nd"
¡¡¡¡Õ⽫´òÓ¡£º this is the 2nd
¡¡¡¡ÓÐÐí¶à±äÁ¿ÊÇϵͳ×Ô¶¯É趨µÄ£¬Õ⽫ÔÚºóÃæʹÓÃÕâЩ±äÁ¿Ê±½øÐÐÌÖÂÛ¡£
¡¡¡¡Èç¹ûÄúÐèÒª´¦ÀíÊýѧ±í´ïʽ£¬ÄÇôÄúÐèҪʹÓÃÖîÈçexprµÈ³ÌÐò£¨¼ûÏÂÃ棩¡£
¡¡¡¡³ýÁËÒ»°ãµÄ½öÔÚ³ÌÐòÄÚÓÐЧµÄshell±äÁ¿ÒÔÍ⣬»¹Óл·¾³±äÁ¿¡£ÓÉexport¹Ø¼ü×Ö´¦Àí¹ýµÄ±äÁ¿½Ð×ö»·¾³±äÁ¿¡£ÎÒÃDz»¶Ô»·¾³±äÁ¿½øÐÐÌÖÂÛ£¬ÒòΪͨ³£Çé¿öϽö½öÔڵǼ½Å±¾ÖÐʹÓû·¾³±äÁ¿¡£
ShellÃüÁîºÍÁ÷³Ì¿ØÖÆ
¡¡¡¡ÔÚshell½Å±¾ÖпÉÒÔʹÓÃÈýÀàÃüÁ
1)Unix ÃüÁî:
¡¡¡¡ËäÈ»ÔÚshell½Å±¾ÖпÉÒÔʹÓÃÈÎÒâµÄunixÃüÁµ«ÊÇ»¹ÊÇÓÉһЩÏà¶Ô¸ü³£ÓõÄÃüÁî¡£ÕâЩÃüÁîͨ³£ÊÇÓÃÀ´½øÐÐÎļþºÍÎÄ×Ö²Ù×÷µÄ¡£
³£ÓÃÃüÁîÓï·¨¼°¹¦ÄÜ
¡¡¡¡echo "some text": ½«ÎÄ×ÖÄÚÈÝ´òÓ¡ÔÚÆÁÄ»ÉÏ
¡¡¡¡ls: ÎļþÁбí
¡¡¡¡wc ¨Cl filewc -w filewc -c file: ¼ÆËãÎļþÐÐÊý¼ÆËãÎļþÖеĵ¥´ÊÊý¼ÆËãÎļþÖеÄ×Ö·ûÊý
¡¡¡¡cp sourcefile destfile: Îļþ¿½±´
¡¡¡¡mv oldname newname : ÖØÃüÃûÎļþ»òÒƶ¯Îļþ
¡¡¡¡rm file: ɾ³ýÎļþ
¡¡¡¡grep 'pattern' file: ÔÚÎļþÄÚËÑË÷×Ö·û´®±ÈÈ磺grep 'searchstring' file.txt
¡¡¡¡cut -b colnum file: Ö¸¶¨ÓûÏÔʾµÄÎļþÄÚÈÝ·¶Î§£¬²¢½«ËüÃÇÊä³öµ½±ê×¼Êä³öÉ豸±ÈÈ磺Êä³öÿÐеÚ5¸öµ½µÚ9¸ö×Ö·ûcut -b5-9 file.txtǧÍò²»ÒªºÍcatÃüÁî»ìÏý£¬ÕâÊÇÁ½¸öÍêÈ«²»Í¬µÄÃüÁî
¡¡¡¡cat file.txt: Êä³öÎļþÄÚÈݵ½±ê×¼Êä³öÉ豸£¨ÆÁÄ»£©ÉÏ
¡¡¡¡file somefile: µÃµ½ÎļþÀàÐÍ
¡¡¡¡read var: ÌáʾÓû§ÊäÈ룬²¢½«ÊäÈ븳ֵ¸ø±äÁ¿
¡¡¡¡sort file.txt: ¶Ôfile.txtÎļþÖеÄÐнøÐÐÅÅÐò
¡¡¡¡uniq: ɾ³ýÎı¾ÎļþÖгöÏÖµÄÐÐÁбÈÈ磺 sort file.txt | uniq
¡¡¡¡expr: ½øÐÐÊýѧÔËËãExample: add 2 and 3expr 2 "+" 3
¡¡¡¡find: ËÑË÷Îļþ±ÈÈ磺¸ù¾ÝÎļþÃûËÑË÷find . -name filename -print
¡¡¡¡tee: ½«Êý¾ÝÊä³öµ½±ê×¼Êä³öÉ豸(ÆÁÄ») ºÍÎļþ±ÈÈ磺somecommand | tee outfile
¡¡¡¡basename file: ·µ»Ø²»°üº¬Â·¾¶µÄÎļþÃû±ÈÈ磺 basename /bin/tux½«·µ»Ø tux
¡¡¡¡dirname file: ·µ»ØÎļþËùÔÚ·¾¶±ÈÈ磺dirname /bin/tux½«·µ»Ø /bin
¡¡¡¡head file: ´òÓ¡Îı¾Îļþ¿ªÍ·¼¸ÐÐ
¡¡¡¡tail file : ´òÓ¡Îı¾Îļþĩβ¼¸ÐÐ
¡¡
¡¡sed:
SedÊÇÒ»¸ö»ù±¾µÄ²éÕÒÌæ»»³ÌÐò¡£¿ÉÒÔ´Ó±ê×¼ÊäÈ루±ÈÈçÃüÁî¹ÜµÀ£©¶ÁÈëÎı¾£¬²¢½«½á¹ûÊä³öµ½±ê×¼Êä³ö£¨ÆÁÄ»£©¡£¸ÃÃüÁî²ÉÓÃÕýÔò±í´ïʽ£¨¼û²Î¿¼£©½øÐÐËÑË÷¡£
²»ÒªºÍshellÖеÄͨÅä·ûÏà»ìÏý¡£±ÈÈ磺½«linuxfocus Ì滻Ϊ LinuxFocus £ºcat text.file | sed
's/linuxfocus/LinuxFocus/' > newtext.file
¡¡¡¡awk: awk
ÓÃÀ´´ÓÎı¾ÎļþÖÐÌáÈ¡×ֶΡ£È±Ê¡µØ£¬×ֶηָî·ûÊÇ¿Õ¸ñ£¬¿ÉÒÔʹÓÃ-FÖ¸¶¨ÆäËû·Ö¸î·û¡£cat file.txt | awk -F, '{print
$1 "," $3 }'ÕâÀïÎÒÃÇʹÓã¬×÷Ϊ×ֶηָî·û£¬Í¬Ê±´òÓ¡µÚÒ»¸öºÍµÚÈý¸ö×ֶΡ£Èç¹û¸ÃÎļþÄÚÈÝÈçÏ£º Adam Bor, 34,
IndiaKerry Miller, 22, USAÃüÁîÊä³ö½á¹ûΪ£ºAdam Bor, IndiaKerry Miller, USA
2) ¸ÅÄî: ¹ÜµÀ, Öض¨ÏòºÍ backtick
¡¡¡¡ÕâЩ²»ÊÇϵͳÃüÁµ«ÊÇËûÃÇÕæµÄºÜÖØÒª¡£
¡¡¡¡¹ÜµÀ (|) ½«Ò»¸öÃüÁîµÄÊä³ö×÷ΪÁíÍâÒ»¸öÃüÁîµÄÊäÈë¡£
grep "hello" file.txt | wc -l
¡¡¡¡ÔÚfile.txtÖÐËÑË÷°üº¬ÓС±hello¡±µÄÐв¢¼ÆËãÆäÐÐÊý¡£
¡¡¡¡ÔÚÕâÀïgrepÃüÁîµÄÊä³ö×÷ΪwcÃüÁîµÄÊäÈë¡£µ±È»Äú¿ÉÒÔʹÓöà¸öÃüÁî¡£
¡¡¡¡Öض¨Ïò£º½«ÃüÁîµÄ½á¹ûÊä³öµ½Îļþ£¬¶ø²»ÊDZê×¼Êä³ö£¨ÆÁÄ»£©¡£
¡¡¡¡> дÈëÎļþ²¢¸²¸Ç¾ÉÎļþ
¡¡¡¡>> ¼Óµ½ÎļþµÄβ²¿£¬±£Áô¾ÉÎļþÄÚÈÝ¡£
·´¶ÌбÏß
¡¡Ê¹Ó÷´¶ÌбÏß¿ÉÒÔ½«Ò»¸öÃüÁîµÄÊä³ö×÷ΪÁíÍâÒ»¸öÃüÁîµÄÒ»¸öÃüÁîÐвÎÊý¡£
¡¡¡¡ÃüÁ
find . -mtime -1 -type f -print
¡¡¡¡ÓÃÀ´²éÕÒ¹ýÈ¥24Сʱ£¨-mtime ¨C2Ôò±íʾ¹ýÈ¥48Сʱ£©ÄÚÐ޸ĹýµÄÎļþ¡£Èç¹ûÄúÏ뽫ËùÓвéÕÒµ½µÄÎļþ´òÒ»¸ö°ü£¬Ôò¿ÉÒÔʹÓÃÒÔϽű¾£º
#!/bin/sh
# The ticks are backticks (`) not normal quotes ('):
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
¡¡¡¡3) Á÷³Ì¿ØÖÆ
¡¡¡¡"if" ±í´ïʽ Èç¹ûÌõ¼þΪÕæÔòÖ´ÐÐthenºóÃæµÄ²¿·Ö£º
if ....; then
¡¡ ....
elif ....; then
¡¡ ....
else
¡¡ ....
fi
¡¡¡¡´ó¶àÊýÇé¿öÏ£¬¿ÉÒÔʹÓòâÊÔÃüÁîÀ´¶ÔÌõ¼þ½øÐвâÊÔ¡£±ÈÈç¿ÉÒԱȽÏ×Ö·û´®¡¢ÅжÏÎļþÊÇ·ñ´æÔÚ¼°ÊÇ·ñ¿É¶ÁµÈµÈ¡
¡¡¡¡Í¨³£ÓÃ" [ ] "À´±íʾÌõ¼þ²âÊÔ¡£×¢ÒâÕâÀïµÄ¿Õ¸ñºÜÖØÒª¡£ÒªÈ·±£·½À¨ºÅµÄ¿Õ¸ñ¡£
[ -f "somefile" ] £ºÅжÏÊÇ·ñÊÇÒ»¸öÎļþ
[ -x "/bin/ls" ] £ºÅжÏ/bin/lsÊÇ·ñ´æÔÚ²¢ÓпÉÖ´ÐÐȨÏÞ
[ -n "$var" ] £ºÅжÏ$var±äÁ¿ÊÇ·ñÓÐÖµ
[ "$a" = "$b" ] £ºÅжÏ$aºÍ$bÊÇ·ñÏàµÈ
¡¡¡¡Ö´ÐÐman test¿ÉÒԲ鿴ËùÓвâÊÔ±í´ïʽ¿ÉÒԱȽϺÍÅжϵÄÀàÐÍ¡£
¡¡¡¡Ö±½ÓÖ´ÐÐÒÔϽű¾£º
#!/bin/sh
if [ "$SHELL" = "/bin/bash" ]; then
¡¡echo "your login shell is the bash (bourne again shell)"
else
¡¡echo "your login shell is not bash but $SHELL"
fi
¡¡¡¡±äÁ¿$SHELL°üº¬Á˵ǼshellµÄÃû³Æ£¬ÎÒÃǺÍ/bin/bash½øÐÐÁ˱Ƚϡ£
¿ì½Ý²Ù×÷·û
¡¡¡¡ÊìϤCÓïÑÔµÄÅóÓÑ¿ÉÄÜ»áºÜϲ»¶ÏÂÃæµÄ±í´ïʽ£º
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors"
¡¡
¡¡ÕâÀï &&
¾ÍÊÇÒ»¸ö¿ì½Ý²Ù×÷·û£¬Èç¹û×ó±ßµÄ±í´ïʽΪÕæÔòÖ´ÐÐÓұߵÄÓï¾ä¡£ÄúÒ²¿ÉÒÔÈÏΪÊÇÂß¼ÔËËãÖеÄÓë²Ù×÷¡£ÉÏÀýÖбíʾÈç¹û/etc/shadowÎļþ´æÔÚÔò´òÓ¡¡±
This computer uses shadow passwors¡±¡£Í¬Ñù»ò²Ù×÷(||)ÔÚshell±à³ÌÖÐÒ²ÊÇ¿ÉÓõġ£ÕâÀïÓиöÀý×Ó£º
#!/bin/sh
mailfolder=/var/spool/mail/james
[ -r "$mailfolder" ]' '{ echo "Can not read $mailfolder" ; exit 1; }
echo "$mailfolder has mail from:"
grep "^From " $mailfolder
¡¡¡¡¸Ã½Å±¾Ê×ÏÈÅжÏmailfolderÊÇ·ñ¿É¶Á¡£Èç¹û¿É¶ÁÔò´òÓ¡¸ÃÎļþÖеÄ"From" Ò»ÐС£Èç¹û²»¿É¶ÁÔò»ò²Ù×÷ÉúЧ£¬´òÓ¡´íÎóÐÅÏ¢ºó½Å±¾Í˳ö¡£ÕâÀïÓиöÎÊÌ⣬ÄǾÍÊÇÎÒÃDZØÐëÓÐÁ½¸öÃüÁ
¡¡¡¡-´òÓ¡´íÎóÐÅÏ¢
¡¡¡¡-Í˳ö³ÌÐò
¡¡¡¡ÎÒÃÇʹÓû¨À¨ºÅÒÔÄäÃûº¯ÊýµÄÐÎʽ½«Á½¸öÃüÁî·Åµ½Ò»Æð×÷Ϊһ¸öÃüÁîʹÓá£Ò»°ãº¯Êý½«ÔÚÏÂÎÄÌá¼°¡£
¡¡¡¡²»ÓÃÓëºÍ»ò²Ù×÷·û£¬ÎÒÃÇÒ²¿ÉÒÔÓÃif±í´ïʽ×÷ÈκÎÊÂÇ飬µ«ÊÇʹÓÃÓë»ò²Ù×÷·û»á¸ü±ãÀûºÜ¶à¡£
¡¡¡¡case±í´ïʽ¿ÉÒÔÓÃÀ´Æ¥ÅäÒ»¸ö¸ø¶¨µÄ×Ö·û´®£¬¶ø²»ÊÇÊý×Ö¡£
case ... in
...) do something here ;;
esac
¡¡¡¡ÈÃÎÒÃÇ¿´Ò»¸öÀý×Ó¡£ fileÃüÁî¿ÉÒÔ±æ±ð³öÒ»¸ö¸ø¶¨ÎļþµÄÎļþÀàÐÍ£¬±ÈÈ磺
file lf.gz
¡¡¡¡Õ⽫·µ»Ø£º
lf.gz: gzip compressed data, deflated, original filename,
last modified: Mon Aug 27 23:09:18 2001, os: Unix
¡¡ÎÒÃÇÀûÓÃÕâÒ»µãдÁËÒ»¸ö½Ð×ösmartzipµÄ½Å±¾£¬¸Ã½Å±¾¿ÉÒÔ×Ô¶¯½âѹbzip2, gzip ºÍzip ÀàÐ͵ÄѹËõÎļþ£º
#!/bin/sh
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
¡¡¡¡unzip "$1" ;;
"$1: gzip compressed"*)
¡¡¡¡gunzip "$1" ;;
"$1: bzip2 compressed"*)
¡¡¡¡bunzip2 "$1" ;;
*) error "File $1 can not be uncompressed with smartzip";;
esac
¡¡¡¡Äú¿ÉÄÜ×¢Òâµ½ÎÒÃÇÔÚÕâÀïʹÓÃÁËÒ»¸öÌØÊâµÄ±äÁ¿$1¡£¸Ã±äÁ¿°üº¬ÁË´«µÝ¸ø¸Ã³ÌÐòµÄµÚÒ»¸ö²ÎÊýÖµ¡£Ò²¾ÍÊÇ˵£¬µ±ÎÒÃÇÔËÐУº
smartzip articles.zip
$1 ¾ÍÊÇ×Ö·û´® articles.zip
¡¡¡¡select ±í´ïʽÊÇÒ»ÖÖbashµÄÀ©Õ¹Ó¦Óã¬ÓÈÆäÉó¤ÓÚ½»»¥Ê½Ê¹Óá£Óû§¿ÉÒÔ´ÓÒ»×鲻ͬµÄÖµÖнøÐÐÑ¡Ôñ¡£
select var in ... ; do
¡¡break
done
.... now $var can be used ....
ÏÂÃæÊÇÒ»¸öÀý×Ó£º
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
¡¡¡¡¡¡¡¡break
done
echo "You have selected $var"
¡¡¡¡ÏÂÃæÊǸýű¾ÔËÐеĽá¹û£º
What is your favourite OS?
1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 1
You have selected Linux
¡¡¡¡ÄúÒ²¿ÉÒÔÔÚshellÖÐʹÓÃÈçϵÄloop±í´ïʽ£º
while ...; do
....
done
¡¡
¡¡while-loop ½«ÔËÐÐÖ±µ½±í´ïʽ²âÊÔΪÕæ¡£will run while the expression that we test for
is true. ¹Ø¼ü×Ö"break" ÓÃÀ´Ìø³öÑ»·¡£¶ø¹Ø¼ü×Ö¡±continue¡±ÓÃÀ´²»Ö´ÐÐÓàϵIJ¿·Ö¶øÖ±½ÓÌøµ½ÏÂÒ»¸öÑ»·¡£
¡¡¡¡for-loop±í´ïʽ²é¿´Ò»¸ö×Ö·û´®Áбí (×Ö·û´®Óÿոñ·Ö¸ô) È»ºó½«Æ丳¸øÒ»¸ö±äÁ¿£º
for var in ....; do
¡¡....
done
¡¡¡¡ÔÚÏÂÃæµÄÀý×ÓÖУ¬½«·Ö±ð´òÓ¡ABCµ½ÆÁÄ»ÉÏ£º
#!/bin/sh
for var in A B C ; do
¡¡echo "var is $var"
done
¡¡¡¡ÏÂÃæÊÇÒ»¸ö¸üΪÓÐÓõĽű¾showrpm£¬Æ书ÄÜÊÇ´òӡһЩRPM°üµÄͳ¼ÆÐÅÏ¢£º
#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in $*; do
¡¡if [ -r "$rpmpackage" ];then
¡¡¡¡echo "=============== $rpmpackage =============="
¡¡¡¡rpm -qi -p $rpmpackage
¡¡else
¡¡¡¡echo "ERROR: cannot read file $rpmpackage"
¡¡fi
done
¡¡¡¡ÕâÀï³öÏÖÁ˵ڶþ¸öÌØÊâµÄ±äÁ¿$*£¬¸Ã±äÁ¿°üº¬ÁËËùÓÐÊäÈëµÄÃüÁîÐвÎÊýÖµ¡£Èç¹ûÄúÔËÐÐshowrpm openssh.rpm w3m.rpm webgrep.rpm
¡¡¡¡´Ëʱ $* °üº¬ÁË 3 ¸ö×Ö·û´®£¬¼´openssh.rpm, w3m.rpm and webgrep.rpm.
ÒýºÅ
¡¡
¡¡ÔÚÏò³ÌÐò´«µÝÈκβÎÊý֮ǰ£¬³ÌÐò»áÀ©Õ¹Í¨Åä·ûºÍ±äÁ¿¡£ÕâÀïËùνÀ©Õ¹µÄÒâ˼ÊdzÌÐò»á°ÑͨÅä·û£¨±ÈÈç*£©Ìæ»»³ÉºÏÊʵÄÎļþÃû£¬Ëü±äÁ¿Ìæ»»³É±äÁ¿Öµ¡£ÎªÁË·À
Ö¹³ÌÐò×÷ÕâÖÖÌæ»»£¬Äú¿ÉÒÔʹÓÃÒýºÅ£ºÈÃÎÒÃÇÀ´¿´Ò»¸öÀý×Ó£¬¼ÙÉèÔÚµ±Ç°Ä¿Â¼ÏÂÓÐһЩÎļþ£¬Á½¸öjpgÎļþ£¬ mail.jpg ºÍtux.jpg¡£
#!/bin/sh
echo *.jpg
¡¡¡¡Õ⽫´òÓ¡³ö"mail.jpg tux.jpg"µÄ½á¹û¡£
¡¡¡¡ÒýºÅ (µ¥ÒýºÅºÍË«ÒýºÅ) ½«·ÀÖ¹ÕâÖÖͨÅä·ûÀ©Õ¹£º
#!/bin/sh
echo "*.jpg"
echo '*.jpg'
¡¡¡¡Õ⽫´òÓ¡"*.jpg" Á½´Î¡£
¡¡¡¡µ¥ÒýºÅ¸üÑϸñһЩ¡£Ëü¿ÉÒÔ·ÀÖ¹ÈκαäÁ¿À©Õ¹¡£Ë«ÒýºÅ¿ÉÒÔ·ÀֹͨÅä·ûÀ©Õ¹µ«ÔÊÐí±äÁ¿À©Õ¹¡£
#!/bin/sh
echo $SHELL
echo "$SHELL"
echo '$SHELL'
¡¡¡¡ÔËÐнá¹ûΪ£º
/bin/bash
/bin/bash
$SHELL
¡¡¡¡×îºó£¬»¹ÓÐÒ»ÖÖ·ÀÖ¹ÕâÖÖÀ©Õ¹µÄ·½·¨£¬ÄǾÍÊÇʹÓÃתÒå×Ö·û¡ª¡ª·´Ð±¸Ë£º
echo *.jpg
echo $SHELL
¡¡¡¡Õ⽫Êä³ö£º
*.jpg
$SHELL
Here documents
¡¡
¡¡µ±Òª½«¼¸ÐÐÎÄ×Ö´«µÝ¸øÒ»¸öÃüÁîʱ£¬here
documents£¨ÒëÕß×¢£ºÄ¿Ç°»¹Ã»Óмûµ½¹ý¶Ô¸Ã´ÊÊʺϵķÒ룩һÖÖ²»´íµÄ·½·¨¡£¶Ôÿ¸ö½Å±¾Ð´Ò»¶Î°ïÖúÐÔµÄÎÄ×ÖÊǺÜÓÐÓõģ¬´ËʱÈç¹ûÎÒÃÇËÄÓÐÄǸö
here documents¾Í²»±ØÓÃechoº¯ÊýÒ»ÐÐÐÐÊä³ö¡£ Ò»¸ö "Here document" ÒÔ <<
¿ªÍ·£¬ºóÃæ½ÓÉÏÒ»¸ö×Ö·û´®£¬Õâ¸ö×Ö·û´®»¹±ØÐë³öÏÖÔÚhere
documentµÄĩβ¡£ÏÂÃæÊÇÒ»¸öÀý×Ó£¬ÔÚ¸ÃÀý×ÓÖУ¬ÎÒÃǶԶà¸öÎļþ½øÐÐÖØÃüÃû£¬²¢ÇÒʹÓÃhere documents´òÓ¡°ïÖú£º
#!/bin/sh
# we have less than 3 arguments. Print the help text:
if [ $# -lt 3 ] ; then
cat <
ren -- renames a number of files using sed regular expressions
USAGE: ren 'regexp' 'replacement' files...
EXAMPLE: rename all *.HTM files in *.html:
¡¡ren 'HTM$' 'html' *.HTM
HELP
¡¡exit 0
fi
OLD="$1"
NEW="$2"
# The shift command removes one argument from the list of
# command line arguments.
shift
shift
# $* contains now all the files:
for file in $*; do
¡¡¡¡if [ -f "$file" ] ; then
¡¡¡¡¡¡newfile=`echo "$file" | sed "s/${OLD}/${NEW}/g"`
¡¡¡¡¡¡if [ -f "$newfile" ]; then
¡¡¡¡¡¡¡¡echo "ERROR: $newfile exists already"
¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡echo "renaming $file to $newfile ..."
¡¡¡¡¡¡¡¡mv "$file" "$newfile"
¡¡¡¡¡¡fi
¡¡¡¡fi
done
¡¡
¡¡ÕâÊÇÒ»¸ö¸´ÔÓһЩµÄÀý×Ó¡£ÈÃÎÒÃÇÏêϸÌÖÂÛһϡ£µÚÒ»¸öif±í´ïʽÅжÏÊäÈëÃüÁîÐвÎÊýÊÇ·ñСÓÚ3¸ö (ÌØÊâ±äÁ¿$# ±íʾ°üº¬²ÎÊýµÄ¸öÊý)
¡£Èç¹ûÊäÈë²ÎÊýСÓÚ3¸ö£¬Ôò½«°ïÖúÎÄ×Ö´«µÝ¸øcatÃüÁȻºóÓÉcatÃüÁÆä´òÓ¡ÔÚÆÁÄ»ÉÏ¡£´òÓ¡°ïÖúÎÄ×Öºó³ÌÐòÍ˳ö¡£Èç¹ûÊäÈë²ÎÊýµÈÓÚ»ò´óÓÚ3¸ö£¬ÎÒÃÇ
¾Í½«µÚÒ»¸ö²ÎÊý¸³Öµ¸ø±äÁ¿OLD£¬µÚ¶þ¸ö²ÎÊý¸³Öµ¸ø±äÁ¿NEW¡£ÏÂÒ»²½£¬ÎÒÃÇʹÓÃshiftÃüÁµÚÒ»¸öºÍµÚ¶þ¸ö²ÎÊý´Ó²ÎÊýÁбíÖÐɾ³ý£¬ÕâÑùÔÀ´µÄµÚÈý¸ö
²ÎÊý¾Í³ÉΪ²ÎÊýÁбí$*µÄµÚÒ»¸ö²ÎÊý¡£È»ºóÎÒÃÇ¿ªÊ¼Ñ»·£¬ÃüÁîÐвÎÊýÁÐ±í±»Ò»¸ö½ÓÒ»¸öµØ±»¸³Öµ¸ø±äÁ¿$file¡£½Ó×ÅÎÒÃÇÅжϸÃÎļþÊÇ·ñ´æÔÚ£¬Èç¹û´æÔÚÔò
ͨ¹ýsedÃüÁîËÑË÷ºÍÌæ»»À´²úÉúеÄÎļþÃû¡£È»ºó½«·´¶ÌбÏßÄÚÃüÁî½á¹û¸³Öµ¸ønewfile¡£ÕâÑùÎÒÃǾʹﵽÁËÎÒÃǵÄÄ¿µÄ£ºµÃµ½Á˾ÉÎļþÃûºÍÐÂÎļþÃû¡£È»
ºóʹÓÃmvÃüÁî½øÐÐÖØÃüÃû¡£
º¯Êý
¡¡¡¡Èç¹ûÄúдÁËһЩÉÔ΢¸´ÔÓһЩµÄ³ÌÐò£¬Äú¾Í»á·¢ÏÖÔÚ³ÌÐòÖпÉÄÜÔÚ¼¸¸öµØ·½Ê¹ÓÃÁËÏàͬµÄ´úÂ룬²¢ÇÒÄúÒ²»á·¢ÏÖ£¬Èç¹ûÎÒÃÇʹÓÃÁ˺¯Êý£¬»á·½±ãºÜ¶à¡£Ò»¸öº¯ÊýÊÇÕâ¸öÑù×ӵģº
functionname()
{
# inside the body $1 is the first argument given to the function
# $2 the second ...
body
}
¡¡¡¡ÄúÐèÒªÔÚÿ¸ö³ÌÐòµÄ¿ªÊ¼¶Ôº¯Êý½øÐÐÉùÃ÷¡£
¡¡¡¡ÏÂÃæÊÇÒ»¸ö½Ð×öxtitlebarµÄ½Å±¾£¬Ê¹ÓÃÕâ¸ö½Å±¾Äú¿ÉÒԸıäÖն˴°¿ÚµÄÃû³Æ¡£ÕâÀïʹÓÃÁËÒ»¸ö½Ð×öhelpµÄº¯Êý¡£ÕýÈçÄú¿ÉÒÔ¿´µ½µÄÄÇÑù£¬Õâ¸ö¶¨ÒåµÄº¯Êý±»Ê¹ÓÃÁËÁ½´Î¡£
#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
¡¡¡¡cat <
xtitlebar -- change the name of an xterm, gnome-terminal or kde konsole
USAGE: xtitlebar [-h] "string_for_titelbar"
OPTIONS: -h help text
EXAMPLE: xtitlebar "cvs"
HELP
¡¡¡¡exit 0
}
# in case of error or if -h is given we call the function help:
[ -z "$1" ] && help
[ "$1" = "-h" ] && help
# send the escape sequence to change the xterm titelbar:
echo -e "33]0;$107"
#
¡¡¡¡Ôڽű¾ÖÐÌṩ°ïÖúÊÇÒ»Öֺܺõıà³ÌÏ°¹ß£¬ÕâÑù·½±ãÆäËûÓû§£¨ºÍÄú£©Ê¹ÓúÍÀí½â½Å±¾¡£
ÃüÁîÐвÎÊý
¡¡
¡¡ÎÒÃÇÒѾ¼û¹ý$* ºÍ $1, $2 ... $9
µÈÌØÊâ±äÁ¿£¬ÕâЩÌØÊâ±äÁ¿°üº¬ÁËÓû§´ÓÃüÁîÐÐÊäÈëµÄ²ÎÊý¡£Æù½ñΪֹ£¬ÎÒÃǽö½öÁ˽âÁËһЩ¼òµ¥µÄÃüÁîÐÐÓï·¨£¨±ÈÈçһЩǿÖÆÐԵIJÎÊýºÍ²é¿´°ïÖúµÄ-hÑ¡Ï¡£
µ«ÊÇÔÚ±àд¸ü¸´ÔӵijÌÐòʱ£¬Äú¿ÉÄܻᷢÏÖÄúÐèÒª¸ü¶àµÄ×Ô¶¨ÒåµÄÑ¡Ïͨ³£µÄ¹ßÀýÊÇÔÚËùÓпÉÑ¡µÄ²ÎÊý֮ǰ¼ÓÒ»¸ö¼õºÅ£¬ºóÃæÔÙ¼ÓÉϲÎÊýÖµ (±ÈÈçÎļþÃû)¡£
¡¡¡¡Óкö෽·¨¿ÉÒÔʵÏÖ¶ÔÊäÈë²ÎÊýµÄ·ÖÎö£¬µ«ÊÇÏÂÃæµÄʹÓÃcase±í´ïʽµÄÀý×ÓÎÞÒÅÊÇÒ»¸ö²»´íµÄ·½·¨¡£
#!/bin/sh
help()
{
¡¡cat <
This is a generic command line parser demo.
USAGE EXAMPLE: cmdparser -l hello -f -- -somefile1 somefile2
HELP
¡¡exit 0
}
while [ -n "$1" ]; do
case $1 in
¡¡¡¡-h) help;shift 1;; # function help is called
¡¡¡¡-f) opt_f=1;shift 1;; # variable opt_f is set
¡¡¡¡-l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2
¡¡¡¡--) shift;break;; # end of options
¡¡¡¡-*) echo "error: no such option $1. -h for help";exit 1;;
¡¡¡¡*) break;;
esac
done
echo "opt_f is $opt_f"
echo "opt_l is $opt_l"
echo "first arg is $1"
echo "2nd arg is $2"
¡¡¡¡Äú¿ÉÒÔÕâÑùÔËÐиýű¾£º
cmdparser -l hello -f -- -somefile1 somefile2
¡¡¡¡·µ»ØµÄ½á¹ûÊÇ£º
opt_f is 1
opt_l is hello
first arg is -somefile1
2nd arg is somefile2
¡¡¡¡Õâ¸ö½Å±¾ÊÇÈçºÎ¹¤×÷µÄÄØ£¿½Å±¾Ê×ÏÈÔÚËùÓÐÊäÈëÃüÁîÐвÎÊýÖнøÐÐÑ»·£¬½«ÊäÈë²ÎÊýÓëcase±í´ïʽ½øÐбȽϣ¬Èç¹ûÆ¥ÅäÔòÉèÖÃÒ»¸ö±äÁ¿²¢ÇÒÒƳý¸Ã²ÎÊý¡£¸ù¾ÝunixϵͳµÄ¹ßÀý£¬Ê×ÏÈÊäÈëµÄÓ¦¸ÃÊÇ°üº¬¼õºÅµÄ²ÎÊý¡£
ʵÀý
¡¡¡¡Ò»°ã±à³Ì²½Öè
¡¡¡¡ÏÖÔÚÎÒÃÇÀ´ÌÖÂÛ±àдһ¸ö½Å±¾µÄÒ»°ã²½Öè¡£ÈκÎÓÅÐãµÄ½Å±¾¶¼Ó¦¸Ã¾ßÓаïÖúºÍÊäÈë²ÎÊý¡£²¢ÇÒдһ¸öα½Å±¾£¨framework.sh£©£¬¸Ã½Å±¾°üº¬ÁË´ó¶àÊý½Å±¾¶¼ÐèÒªµÄ¿ò¼Ü½á¹¹£¬ÊÇÒ»¸ö·Ç³£²»´íµÄÖ÷Òâ¡£Õâʱºò£¬ÔÚдһ¸öеĽű¾Ê±ÎÒÃÇÖ»ÐèÒªÖ´ÐÐÒ»ÏÂcopyÃüÁ
cp framework.sh myscript
¡¡È»ºóÔÙ²åÈë×Ô¼ºµÄº¯Êý¡£
¡¡¡¡ÈÃÎÒÃÇÔÙ¿´Á½¸öÀý×Ó£º
¡¡¡¡¶þ½øÖƵ½Ê®½øÖƵÄת»»
¡¡¡¡½Å±¾ b2d ½«¶þ½øÖÆÊý (±ÈÈç 1101) ת»»ÎªÏàÓ¦µÄÊ®½øÖÆÊý¡£ÕâÒ²ÊÇÒ»¸öÓÃexprÃüÁî½øÐÐÊýѧÔËËãµÄÀý×Ó£º
#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
¡¡cat <
b2h -- convert binary to decimal
USAGE: b2h [-h] binarynum
OPTIONS: -h help text
EXAMPLE: b2h 111010
will return 58
HELP
¡¡exit 0
}
error()
{
¡¡¡¡# print an error and exit
¡¡¡¡echo "$1"
¡¡¡¡exit 1
}
lastchar()
{
¡¡¡¡# return the last character of a string in $rval
¡¡¡¡if [ -z "$1" ]; then
¡¡¡¡¡¡¡¡# empty string
¡¡¡¡¡¡¡¡rval=""
¡¡¡¡¡¡¡¡return
¡¡¡¡fi
¡¡¡¡# wc puts some space behind the output this is why we need sed:
¡¡¡¡numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
¡¡¡¡# now cut out the last char
¡¡¡¡rval=`echo -n "$1" | cut -b $numofchar`
}
chop()
{
¡¡¡¡# remove the last character in string and return it in $rval
¡¡¡¡if [ -z "$1" ]; then
¡¡¡¡¡¡¡¡# empty string
¡¡¡¡¡¡¡¡rval=""
¡¡¡¡¡¡¡¡return
¡¡¡¡fi
¡¡¡¡# wc puts some space behind the output this is why we need sed:
¡¡¡¡numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
¡¡¡¡if [ "$numofchar" = "1" ]; then
¡¡¡¡¡¡¡¡# only one char in string
¡¡¡¡¡¡¡¡rval=""
¡¡¡¡¡¡¡¡return
¡¡¡¡fi
¡¡¡¡numofcharminus1=`expr $numofchar "-" 1`
¡¡¡¡# now cut all but the last char:
¡¡¡¡rval=`echo -n "$1" | cut -b 0-${numofcharminus1}`
}
while [ -n "$1" ]; do
case $1 in
¡¡¡¡-h) help;shift 1;; # function help is called
¡¡¡¡--) shift;break;; # end of options
¡¡¡¡-*) error "error: no such option $1. -h for help";;
¡¡¡¡*) break;;
esac
done
# The main program
sum=0
weight=1
# one arg must be given:
[ -z "$1" ] && help
binnum="$1"
binnumorig="$1"
while [ -n "$binnum" ]; do
¡¡¡¡lastchar "$binnum"
¡¡¡¡if [ "$rval" = "1" ]; then
¡¡¡¡¡¡¡¡sum=`expr "$weight" "+" "$sum"`
¡¡¡¡fi
¡¡¡¡# remove the last position in $binnum
¡¡¡¡chop "$binnum"
¡¡¡¡binnum="$rval"
¡¡¡¡weight=`expr "$weight" "*" 2`
done
echo "binary $binnumorig is decimal $sum"
#
¡¡¡¡¸Ã½Å±¾Ê¹ÓõÄËã·¨ÊÇÀûÓÃÊ®½øÖƺͶþ½øÖÆÊýȨֵ (1,2,4,8,16,..)£¬±ÈÈç¶þ½øÖÆ"10"¿ÉÒÔÕâÑùת»»³ÉÊ®½øÖÆ£º
0 * 1 + 1 * 2 = 2
¡¡¡¡ÎªÁ˵õ½µ¥¸öµÄ¶þ½øÖÆÊýÎÒÃÇÊÇÓÃÁËlastchar º¯Êý¡£¸Ãº¯ÊýʹÓÃwc ¨Cc¼ÆËã×Ö·û¸öÊý£¬È»ºóʹÓÃcutÃüÁîÈ¡³öĩβһ¸ö×Ö·û¡£Chopº¯ÊýµÄ¹¦ÄÜÔòÊÇÒƳý×îºóÒ»¸ö×Ö·û¡£
¡¡¡¡ÎļþÑ»·³ÌÐò
¡¡
¡¡»òÐíÄúÊÇÏ뽫ËùÓз¢³öµÄÓʼþ±£´æµ½Ò»¸öÎļþÖеÄÈËÃÇÖеÄÒ»Ô±£¬µ«ÊÇÔÚ¹ýÁ˼¸¸öÔÂÒÔºó£¬Õâ¸öÎļþ¿ÉÄÜ»á±äµÃºÜ´óÒÔÖÁÓÚʹ¶Ô¸ÃÎļþµÄ·ÃÎÊËٶȱäÂý¡£ÏÂÃæµÄ½Å
±¾rotatefile
¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£Õâ¸ö½Å±¾¿ÉÒÔÖØÃüÃûÓʼþ±£´æÎļþ£¨¼ÙÉèΪoutmail£©Îªoutmail.1£¬¶ø¶ÔÓÚoutmail.1¾Í±ä³ÉÁËoutmail.2
µÈµÈµÈµÈ...
#!/bin/sh
# vim: set sw=4 ts=4 et:
ver="0.1"
help()
{
¡¡¡¡cat <
rotatefile -- rotate the file name
USAGE: rotatefile [-h] filename
OPTIONS: -h help text
EXAMPLE: rotatefile out
This will e.g rename out.2 to out.3, out.1 to out.2, out to out.1
and create an empty out-file
The max number is 10
version $ver
HELP
¡¡¡¡exit 0
}
error()
{
¡¡¡¡echo "$1"
¡¡¡¡exit 1
}
while [ -n "$1" ]; do
case $1 in
¡¡¡¡-h) help;shift 1;;
¡¡¡¡--) break;;
¡¡¡¡-*) echo "error: no such option $1. -h for help";exit 1;;
¡¡¡¡*) break;;
esac
done
# input check:
if [ -z "$1" ] ; then
error "ERROR: you must specify a file, use -h for help"
fi
filen="$1"
# rename any .1 , .2 etc file:
for n in 9 8 7 6 5 4 3 2 1; do
¡¡¡¡if [ -f "$filen.$n" ]; then
¡¡¡¡¡¡¡¡p=`expr $n + 1`
¡¡¡¡¡¡¡¡echo "mv $filen.$n $filen.$p"
¡¡¡¡¡¡¡¡mv $filen.$n $filen.$p
¡¡¡¡fi
done
# rename the original file:
if [ -f "$filen" ]; then
¡¡¡¡echo "mv $filen $filen.1"
¡¡¡¡mv $filen $filen.1
fi
echo touch $filen
touch $filen
¡¡¡¡Õâ¸ö½Å±¾ÊÇÈçºÎ¹¤×÷µÄÄØ£¿ÔÚ¼ì²âÓû§ÌṩÁËÒ»¸öÎļþÃûÒÔºó£¬ÎÒÃǽøÐÐÒ»¸ö9µ½1µÄÑ»·¡£Îļþ9±»ÃüÃûΪ10£¬Îļþ8ÖØÃüÃûΪ9µÈµÈ¡£Ñ»·Íê³ÉÖ®ºó£¬ÎÒÃǽ«ÔʼÎļþÃüÃûΪÎļþ1ͬʱ½¨Á¢Ò»¸öÓëÔʼÎļþͬÃûµÄ¿ÕÎļþ¡£
µ÷ÊÔ
¡¡¡¡×î¼òµ¥µÄµ÷ÊÔÃüÁȻÊÇʹÓÃechoÃüÁî¡£Äú¿ÉÒÔʹÓÃechoÔÚÈκλ³Òɳö´íµÄµØ·½´òÓ¡ÈκαäÁ¿Öµ¡£ÕâÒ²ÊǾø´ó¶àÊýµÄshell³ÌÐòÔ±Òª»¨·Ñ80%µÄʱ¼äÀ´µ÷ÊÔ³ÌÐòµÄÔÒò¡£Shell³ÌÐòµÄºÃ´¦ÔÚÓÚ²»ÐèÒªÖØбàÒ룬²åÈëÒ»¸öechoÃüÁîÒ²²»ÐèÒª¶àÉÙʱ¼ä¡£
¡¡¡¡shellÒ²ÓÐÒ»¸öÕæʵµÄµ÷ÊÔģʽ¡£Èç¹ûÔڽű¾"strangescript" ÖÐÓдíÎó£¬Äú¿ÉÒÔÕâÑùÀ´½øÐе÷ÊÔ£º
sh -x strangescript
¡¡¡¡Õ⽫ִÐиýű¾²¢ÏÔʾËùÓбäÁ¿µÄÖµ¡£
¡¡¡¡shell»¹ÓÐÒ»¸ö²»ÐèÒªÖ´Ðнű¾Ö»ÊǼì²éÓï·¨µÄģʽ¡£¿ÉÒÔÕâÑùʹÓãº
sh -n your_script
¡¡¡¡Õ⽫·µ»ØËùÓÐÓï·¨´íÎó¡£
¡¡¡¡ÎÒÃÇÏ£ÍûÄúÏÖÔÚ¿ÉÒÔ¿ªÊ¼Ð´Äú×Ô¼ºµÄshell½Å±¾£¬Ï£ÍûÄúÍæµÃ¿ªÐÄ¡£
ÍƼöÐÅÏ¢
- linuxÃüÁîѧϰ±Ê¼Ç£¨11£©£ºnlÃüÁî
- linuxÃüÁîѧϰ±Ê¼Ç£¨5£©£ºrmÃüÁî
- linuxÃüÁîѧϰ±Ê¼Ç£¨4£©£ºmkdirÃüÁî
- linuxÃüÁîѧϰ±Ê¼Ç£¨1£©£ºlsÃüÁî
- ½«CentosµÄyumÔ´¸ü»»Îª¹úÄڵİ¢ÀïÔÆÔ´
- ʹÓÃNginxÌí¼Óheader·ÀÖ¹ÍøÒ³±»frame
- linuxϼÓËÙscp´«Êä´óÎļþµÄËÙ¶È
- linuxϵͳÉ϶ÔnginxÈÕÖ¾·Ö¸î´¦Àí
- lnmp/nginxϵͳÕæÕýÓÐЧµÄͼƬ·ÀµÁÁ´ÍêÕûÉèÖÃÏê½â
- Í»ÆÆÊ®Íò²¢·¢µÄNginxµÄÅäÖü°ÓÅ»¯
ÈÈÃÅÐÅÏ¢
- nohup: redirecting stderr to stdou....
- ʹÓÃlog_formatΪNginx·þÎñÆ÷ÉèÖøüÏêϸµÄÈÕÖ¾¸ñʽ
- jquery easyUI--dataGrid-Json
- [Ô´´]·ÂGoogle Reader¡¢ÐÂÀË΢²©¡¢ÌÚѶ΢²©µ....
- ÀûÓÃKeepalived+mysql¹¹½¨¸ß¿ÉÓÃMySQLË«Ö÷×Ô¶....
- Nginx+keepalivedʵÏÖ¸ºÔؾùºâºÍË«»úÈȱ¸¸ß¿ÉÓÃ
- jqueryʵÏÖÒ³Ãæ¼ÓÔؽø¶ÈÌõ
- Rolling cURL: PHP²¢·¢×î¼Ñʵ¼ù
- codeigniter ·ÓÉÖÕ¼«ÓÅ»¯(url rewrite)
- linuxÏÂÉèÖÃsshÎÞÃÜÂëµÇ¼
×î½ü¸üÐÂ
- ²éÕÒ²¢É¾³ý.svnĿ¼Îļþ
- redis ÆßÖÖÊý¾ÝÀàÐ͵ÄʹÓó¡¾°
- linux ÏÂÎļþ¸´ÖƵ½windowsÏÂÂÒÂëµÄ½â¾ö°ì·¨
- nginx³öÏÖ502 upstream sent too big he....
- linuxÏÂsudoÅäÖÃÏê½â
- linuxÃüÁîѧϰ±Ê¼Ç£¨15£©£ºtailÃüÁî
- linuxÃüÁîѧϰ±Ê¼Ç£¨14£©£ºheadÃüÁî
- linuxÃüÁîѧϰ±Ê¼Ç£¨13£©£ºlessÃüÁî
- linuxÃüÁîѧϰ±Ê¼Ç£¨12£©£ºmoreÃüÁî
- ¼ÓÃÜËã·¨±È½Ï3DES AES RSA ECC MD5 SHA1µÈ
ÆÀÂÛ