oӬOZ쪺DGyO Shell Hz۫HunNLqA@~tΡ]O Linux B Unix Ϊ̬O Windows ^IB̤ͭjhťLoӦWA]uny@~tΡzN} Shell oӪFCLAbQ Shell eAڭ̥AѤ@UqB@paI|ӨҤlӻGAnqǿXӡy֡zɭԡAAqݭnFOHoNO@ӿXnݭnBJI]NOAAnyJz@ӫOAywz~|zLAUFOӤu@IKKIwpDAUFOOHNO kernel ]֤ߡ^u@FIAѤFܡHSI]NOAڭ̥nzLy Shell zNڭ̿JOP Kernel qAn Kernel iHwӥTL~u@IWAڭ̥iHzLUoiϨӻ@UG
- MNOݭnAw驰yĥdzoӵwtơA_h|nF
- @~tΪ֤ߥiH䴩oӴաAMٻݭnѴXʵ{oF
- ݭnϥΪ̡]NOA^JonOoI
![]()
WAڭ̤u@OywzAӱw骺Oy֤ߡzAAӡAڭ̨ϥΪ̤DOQΡyShellz@ kernel Ѫ yu UtilityzӾޱwڭ̥Tu@CAi@BӻAѩ kernel ťHyAӤH]SkOo kernel yAҥH̪qNoǥ shell Ӥ䴩FI]ꦭ DOS r]Oϥ shell ӷqrI shell WٴNs command.com AٰOoܡH ^_^^
@
HrWNӻA kernel Oy֤ߡzNA Shell OyߡzNAI]NOA shell O̥~YNNI kernel DO̤hNNաI֤߬O@~tΪ̩hFIoӮ֤߸Y]AFUت䴩w骺uIMoApGAwӷsAӧA kernel èS䴩ܡAܩpAA Shell OAjA]Skϵwu@Io˥iHAѤFܡHISIϹqDu@O֤ߪȡAOާ@֤ߨӴϥΪ̤u@AoO shell I]AɭԧA shell dFѥbѡAwou@ɭԡAЪ`NAzy֤ߡzO_TOHI𫐈FIoO kernel `~nF??
- ڷFnDz Shell OH
``ťoӰDGyڷFnDz shell OHOwgܦhuiHѧڳ]wڪDFHڬnohɶhǫOOHOH X-Window @XӫsNiHdwFܡHno·СHz?٬Oo@AajաAX-Window ٦ Web ]wuҦp webmin OunΪåALuiHUڭ̫²]wnڭ̪DAƦܬO@ǫܶi]wiHڭ̷dwCO VBird bdz̭]wgL۷hFA X-Window M˵A\MjjA web u]iHѧڭ̫ܤ͵AȡAOLOX@ӮMӤwAëDO@ӧ㪺MAҥHYǮɭԷAɯũΪ̬OϥΨLMzҲ( Ҧp tarball ӫD rpm ɮ )ɡAN|y]wxZFA~AݳsuɡArǿtפ@w֡AӥBAeX{_uΪ̬OT~yDA]A shell uOoDzߪ@uCӥBALiHz`J Linux AAѥLAӤOu|@ƹӤwIҿסyѧUۧU̡IzhN@IrҦFA|AP Linux ˪OI
@
ǪBͤ]ܥiRA`|GyھdzohFHS`ΡA]ΤIzKKISťLyѨήɤ֡HzAD@wML~ɭԡAzM|ıondzohF@IU]SrIU@AY@ѯuLФFAzӦpOnHOswˡH٬OlܤJIӷi|}ɡHΪ̬OܴNnFHoMAΫܦhҶqANH VBird [IӬݡAhǤ@I`OnAרڭ̥iHƦӵLwIƦܾǪ]SYAAѷ]N OK աISHnz@wnQoheաIAѷNܤF_FI
@
~ApGzu߷QnNzDznA}n shell {sgO@wݭnIN VBird ӻAںzDM٤hAuϰϤQAOpGCDnWXQӬd\L log file HάTAڥi|ƱIWA]ӨSIJvFIoӮɭԡApGǥ shell ѪROɦV( κٸƬyɦV )AHκuROAIڤR log file unOQNiHݧҦDnTFI۷nΩOI
@
ѩDz shell nBuOhhաIҥHApGzOӨtκzAΪ̦߷QnztΪܡA shell oӪFP shell scripts oӪFAuunݤ@ݡI
DO Shell Aڭ̨AѤ@U Linux ϥΪO@ shell OHI@ӡHD shell NOy@ shell ܡHzIiIѩ~ Unix ~NAoi̲AҥHѩ shell ̾ڵoi̪PN\hAҦp`ť쪺 Bourne SHell (sh) Bb Sun Yw] C SHellB ӷ~W`Ϊ K SHellB, ٦ TCSH AC@ Shell USICܩ Linux ϥΪo@تN٬y Bourne Again SHell ]² bash ^ zAo Shell O Bourne Shell WjA]Oǩ GNU [cUoiXӪIb shell uIeAӻ@ shell ²vaGĤ@Ӭy檺 shell O Steven Bourne oiXӪAFLҥHN٬ Bourne shell AΪ²٬ sh Iӫӥt@ӼsyǪ shell OѬfJܤjǪ Bill Joy ]p̪ BSD Unix tΤ shell Ao shell ykI C yAҥH~oW C shell A²٬ csh IѩbdzN Sun DդO۷ejA Sun DnO BSD 䤧@AҥH C shell ]Ot@ӫܭnӥByǫܼs shell @]]Ӧh{]pvϥΪNO C yաI^I
nFA BASH O@^ƩOHo shell O GNU penun𫗪@Aثe]O GNU @~tΤзǪ shell ALDnۮe sh AåB̾ڤ@ǨϥΪ̻ݨDAӥ[j shell AiHثeXGҦ Linux distribution Oϥ bash @z֤ߪDn shell I]AױzϥΪO distribution AAkݭnDz bash JRաIo shell nBAF Linux nϥΥL@w] shell OH BASH DnuIUXӡG
- ROsׯO] DOS doskey \^G
ϥ bash YAӤH{۷Ϊ@ӥ\NOyLOШϥιLOIzo\u۷ΡI]ڥunbOCyWUzNiHe@ӿJOIӦb Mandrake 9.0 w]OOХ\iHF 1000 ӡI]NOAAgUFLOQOUӤFAOɮצbAaؿ .bash_history ILAݭndNOA ~/.bash_history OOe@nJHeҰLOAӦܩo@nJҰ檺OQȦsbȰO餤Az\nXtΫAӫOOФ~|O .bash_history Io\OH̤jnBNOiHydߴgL|IzApiHDABJANiHlܱzUFOAH@uIp@Ӥ]ӷдoANOpGQbȤJIFALun½AgLOAnAOStΦ]ҦpJ MySQL KXbOCW^ܮeNQ}ѧA Linux DIҥHA̦nONOOƥشp@InI
- ɮפɥ\]ƥTʡ^G
oӥ\]۷ΡIDnOɥPɮצWٸɥG
- OɥGpGbROɭԤQUӦhAҦpO pcprofiledump aInFApGAJF pcprofile AAU [Tab] 䪺ܡA bash W|۰ʪN᭱ dump WӡIpGƪOOHU⦸ [Tab] N|ҦƪOLCXoINӯSרҰաANOybܦr᭱s⦸ <tab> Ahtη|NҦiHϥΪOCXӡIzpGڷQnDثetθ̭AҥH b }YOOHINOU b As⦸ <tab> NiHDաI
- ɮצWٸɥG~ApGA vi ŪYɮɡAҦp /etc/man.config oɮצnFAziHJ vi /etc/man. AU <tab> AɮצWٴN|Q۰ʪɻoIIܤKAӥBɮצW٩Ϊ̫OW٪TʤWAUZjaIOIuOܤK\AҥHAƨSơAb bash shell UAhX <tab> O@ӤߺDI
- ROOW(alias)]w\G
pڻݭnDoӥؿUҦɮס]]tɡ^ΩҦɮݩʡAڴNnUF ls -al o˪OCAIu·СAS֪N觋HINϥΩROOWrIҦpڳ̳wH lm oӦۭqROӨNWROA]NOA lm | ls -al o˪@ӥ\AKInp@OHNϥ alias YiIAiHbOCJ alias NiHDثeROOWǤFI]iHUFROӳ]wOWGalias lm='ls -al'
- u@(jobs)BeIG
oڭ̦b᪺귽z`|AΡIϥΫeBIiHu@i檺QIܩu@(jobs)γ~hsAiHڭHɱNu@IIӤȤpߨϥΤF [Ctrl] + C Ӱӵ{ǡIuOn˪I~A]iHb@nJҤAFhuتOI
- Shell scripts jj\G
b DOS ~NٰOoN@Ogb@_ҿתy妸ɡzaHb Linux U shell scripts hojj\AiHNz`ͬ`ݭnUFsOg@ɮסAɮרåBiHzLͤʦ觋ӶiDu@I]iHǥ shell ѪܼƤάOӶi]pAzIӳ]pUӴXGNO@Ӥp{yFI scripts \uOWGڪQ~IHeb DOS Uݭn{y~gFAb Linux Uϥ²檺 shell scripts NiHAFFIuQ`IIoڭ̦b`Aӽ͡I
bAѤF BASH uIAAӧڭ̭nӰQתOGpb Shell ѪҤUFOOH²檺AUFO觋G²aIOKIAӤ@ӰDGyShell OɭԶ}l Linux DIHzڭ̦b᭱|Ay}y{zСAo̥LhA]Awg}\FADKiJݨϥΪ login ACϥΪ̿JFbPKXAåBQ pass AgLF shell ܼɮŪ\A̫AϥΪ̶iJۤvyaؿzAҦp root aؿb /root UA@ϥΪ̪aؿhb /etc/passwd oɮ̭WwADNwgF@ӵ{Ǻ٬ bash Aާ@oI
[root@test /root]# command [-options] parameter1 parameter2 ...
O ﶵ Ѽ(1) Ѽ(2)1. command OW١AҦpܴ|O cd F
2. []äsbڪOAӥ[JѼƳ]wɡAq` - AɭԧWٷ|J -- ŸF
3. parameter1 parameter2.. ̪b option ᭱ѼơAΪ̬O command ѼơF
4. command, -options, parameter1.. oXөNNHŮӰϤAתŴX shell @F
5. OӪɭԡAiHϥ \ ŸӸ [Enter] ŸAϫOsU@CҡG
[root@test /root]# ls -al /root <==H ls CX /root oӥؿɻPݩʰѼơF
[root@test /root]# ./configure --prefix=/usr/local --with-tcp_wrappers \
> --with-pam <==oڤWOP@檺OAO[W \ ŸAOiHsU@I
[root@test /root]# ls -al /root <==oӫOPĤ@ӬۦPAťզr״XӡAȵ@ӨӳBzC
A~s BASH eAڭ̭nNܼoӪFӰQפ@fA]bḒӦhƻݭnisFAӳoǸƳO@ǪAȩҥAҦp mail s|b /var/spool/mail Baؿw]b /home/useraccount AMڭ̥iHܳoǭܼơAOpGܼƬO`өMAAקFYǰѼƤAKKIAMNnyѭlXsAsĶz~Io˦Gܳ·СAҥHoAN|ܼƳoӦnFXӤFI~AҦpڭ̦b{ɭԡAtΫDA ls oӫOb̡HӬO PATH oܼơAtη|zLoܼƸ̭ҳ]w|ḩǴMӫOtΡApG䤣쪺ܡA~bùWܡy command not found zrˡIoٳuOtιw]ܼƪتApGOӤH]w譱GҦpAng@Ӥj script ]妸ɡ^ɡAǸƦ]iѩϥΪ̲ߺDPӦtAp|nFAѩӸ|b script QϥΦb۷haApGUF@DAnק script ̭Ҧ|Aڤ@w|ƱIoӮɭԦpGϥܼơAӱNܼƪwqgb̫eA᭱|WٳHܼƨӨNAKKIAunק@Nקg script FIKܡIҥHA}n{]pv|ܼƪwqI]oӳڭ̦bUٷ|AI^
|²檺ҤlӻA sendmail smtp s mail |Og /etc/profile Y MAIL="/var/spool/mail/$USER"ӳ]wAӷڭקFWo@өNNAM᭫s}AKKKKIڪlNiHs줣P|hFIӥB|DIiHQyb Linux DWzoCMӰDoͦb pop3 oӪAȤWAѩ pop3 w]|Ob source code YAӥBNO /var/spool/mail oӸ|A]NOAקګץڪyܼơzA pop3 ҰʡIuGAҥHNLkH pop3 ӦHF]Ҧp OutLook Nu@F^I|oͱKXDOI
@
pGDzz@IAѩb Linux System UAҦOݭn@ӰXAӴNpPW쪺AAyuH shell Ӹ Linux qAObTnJ Linux IzoӮɭԧAN@ bash {ǡA]~iHug bash ӸtηqoIӦbiJ shell eA]pPW쪺Aѩtλݭn@ܼƨӴѥLƪs]Ϊ̬O@Ҫ]wѼƭȡAҦpO_nܱmⵥ^AҥHN@ǩҿתyܼzݭnŪJtΤFIoܼƨҦp PATHBHOMEBMAILBSHELLAOܭnAFϧOPۭqܼƪPAܼƳq`HjgrӪܩOI
@
F[A쩳yOܼzOH²檺AyܼƴNOH@դrβŸAӨN@dz]wΪ̬O@OdơIzAҦpGyVBirdzNOyzAҥHAŪ VBird ɭԡAtΦ۵MN|DIINOI²檺ҤliH PATH ӻIpGAy۹|P|z٦ILHܡAӾoynUFTOAӻݭnw|PɦWz~IҦpA ls OӻݭnHy/bin/lszӤUFO~AAbN|UiH ls OHӤݭnw|OHoO]tΤwgw]F@ǡyjM|(PATH)zFAҥHAݭn@ǫOɭԡAtδN|̷Ӹ PATH ]wӶiOjMIӳo PATH NOҿתܼƤFIpyܼzOHoNݭnϥΨ echo oӫOաI
- echo
ܼƤe
ykGNpPWdҡAڭ̭nܥثe PATH oܼƮɡAϥΤF echo AӬFnO_ܼơA Linux tιw]ܼƦW٫e|[W@ӡy $ zŸAҥHNng echo $PATH oI
[test @test test]# echo $variable
ѼƻG
dҡG
[test @test test]# echo $PATH
/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/loc
al/bin:/bin:/usr/bin:/usr/X11R6/bin
DGЦbùWܥXzܼ PATH, HOME P MAILG
G[root@test root]# echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
[root@test root]# echo $HOME
/root
[root@test root]# echo $MAIL
/var/spool/mail/root
h֪ܼƧrHϥ env P set ӬݬݡG
IJMܼƬOnA쩳h֪ܼƦb Linux tΤOHIAiH²檺ϥ env NiHDoIyWAb Linux w]pAϥ{jgr}ӳ]wܼƤ@묰tΤwݭnܼzAUCX Linux tΤ w]ܼƤeG
- env
ܥثetΤDnw]ܼƤe
ykGenv environment ²gAҥHAoӫODnbNثetΤDnܼŪXӡIOAOڭ٥iHۭqܼƶܡH]AF env oŪܼƪO~A٦@ӥiHNثetΤҦܼƸƳŪXӪOA٬ set Iset F|NWƳLŪXӤ~Aٷ|B~oǸT]@_ŪJ]q`PϥΪ̪]wI^
[test @test test]# env
ENV=/root/.bashrc <==ϥΪ̦ۭqܼƪ]wɮ
HISTSIZE=1000 <==ثeOOмƶq
HOME=/home/test <==nJ̪aؿ
HOSTNAME=test.adsldns.org <==oDDW
HOSTTYPE=i386 <==oDw鵥ŤjPA(i386, i686..)
INPUTRC=/etc/inputrc <==@ shell Jɮ׳]wB
LANGUAGE=C <==w]yt
LANG=zh_TW.Big5
P LANGUAGE AoӫhOU linux distribution `Ϊw]ytܼơAѩڪ Mandrake ϥΤwˡAҥHw]ytOAY zh_TW.Big5 ApGڭnקoܼơAiH /etc/sysconfig/i18n hקIU LC_xxx OPw]ܻytܼơA𫟺쪺O LC_TIME ApGbrUA̦nN LC_TIME 令Wܤ觋A~|ýXI
LC_COLLATE=zh_TW.Big5
LC_CTYPE=zh_TW.Big5
LC_MESSAGES=zh_TW.Big5
LC_MONETARY=zh_TW.Big5
LC_NUMERIC=zh_TW.Big5
LC_TIME=en
LESSOPEN=|/usr/bin/lesspipe.sh %s <==Ψӳ]w less ϥΪ@ script ɮ
LOGNAME=test <==nJ̪bMACHTYPE=i586-mandrake-linux-gnu
DwtƵ i586 P MMX šAܩ K7 PIII ᪺ANO i686 oIMAIL=/var/spool/mail/test <==nJ̪lw]maI
OSTYPE=linux-gnu <==@~tΪΦ(linux-gnu)
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/test/bin
PWD=/home/test <==ثenJ̩Ҧbؿ(Uؿ)
SHELL=/bin/bash <==nJ̨ϥΪ shell
USER=test <==ثeoӵnJ̪ϥΪ̦W
@
- set
ܥثetΤܼƤe
ykGset JNOJ set YiILF|ܥXثeyܼơz~A]|ܥXzyۭqܼơzOIǻPϥΪ̸ʪۭqܼƩOHڭ̤WȦCX`ܼƭoI
[test @test test]# set
BASH=/bin/bash <==BASH D{m|
BASH_VERSINFO=([0]="2" [1]="05" [2]="8" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu") <==BASH T
BASH_VERSION=$'2.05.8(1)-release' <==BASH
COLORS=/etc/DIR_COLORS <==ϥC
COLUMNS=100 <==ثeoӲݾϥΪ즳XӦrZ
HISTFILE=/home/vbird/.bash_history <==ثeΨӦsLOɮסA@
HISTFILESIZE=1000 <==s_ӪɮפAO̤j(u 1000 ӫO)
IFS=$' \t\n' <==w]jŸ
langfile=/home/vbird/.i18n <==ytܪɮ
LINES=40 <==ثeЩҦbmĴX
MAILCHECK=60 <==Cjh[ˬd@LsH()
PPID=24572 <==ثe bash oӤ{Ǫ ID I
PROMPT_COMMAND=$'echo -ne "\\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\\007"' <==ܦrܪe
SHELLOPTS=braceexpand:hashall:histexpand:monitor:history:interactive-comments:emacs
SUPPORTED=zh_TW.Big5:zh_TW:zh:en_US:en <==䴩yt
TERM=xterm <==ݾΦ
UID=500 <==nJ̪ϥΪ ID (UID)
$ <==ثe shell PID
?
̫@өRO^ǭȡAYeROQT|Ǧ^ 0 A_h|Ǭ 1 ΨL~NXC
@
ϥ set F|NtΪw]ȨqXӤ~AsaҦAۤv]wܼƤ]|QqXӡIPɻݭn`NOAYɦ۷hHPɦbuWܡAAܼƥu൹ۤvϥΡ]D諸OtΪw]ѼɡAp /etc/profile ^AӤ|zZOHINpPeһAѩAnJ Linux |o@ PID AӧA]wNuo PID Pl{ǦI~AonJҶi檺ܼƳ]wApGSʨ]wɡAo]wܼƦbUnJɱNQ]]{ PID oI^IҥHoApGAQnAܼƨCbAnJɭԦ۰ʴN]wnFANNA]wgJnJɸJ]wI
@
WܼƤA쪺O $ P ? oөNNAרO ? oܼơApGzW@өRO檺L{S~AoܼƴN|Q]w 0 ApGzWөRO~TAoܼƷ|ܦ 1 ΨL~NXI{bWʤլݬݱzWӫO榨GH
@echo $?
@
- ܼƳ]wWhG
nFAڭ̪DF@ǨtΪw]ܼƤFAOpGOڦۤvQn]w@ǧڦۤvܼơAӦp]wOHWhݭnuHIbeAinjaAѤ@Uۤv|Qӳ]wܼơH
Uڭ|XӨҤlӻ@UG
@ܼƳ]wG
[tets @test test]# 12name=VBrid <==~I]ܼƶ}YOƦrI [test @test test]# name = VBird <==~I]䤣ઽťաI [test @test test]# name=VBird <==TIecho $name VBird [test @test test]# name=VBird name <==~Iݭn[WIM|ܿ~I [test @test test]# name="VBird name" <==TIecho $name VBird name [test @test test]# name="VBird's name" <==TI ܼƲ֥[]wG
ܼƩU@Ӥl{ǡG
OOG
ܼƳ]wG
|
DGbܼƪ]wAPPOH
G P̤jPbMiHOܼƪeAȯO@rAӤ|SŸCڭ̥HUҤlG]zwqF@ܼơA name=VBird A{bQH name oܼƩwqX myname VBird its me oӤeAnpqwOH[root @test root]# name=VBirdo{FܡHSIϥΤFɭԡA $name Nh즳ܼƤeAȬ@rܫAӤwIo̥ݭnSOpߦbNI |
DGbOUFL{A quote ( ` ) oӲŸNNqH
G b@OAb ` ON|QAӨXӪGN~JTIҦp uname Vr |ܥXثe֤ߪAӧڭ̪֤ߪb /lib/modules ̭A]AAiH uname Vr X֤ߪAMAHy cd ؿzӥؿUAM]iHcd /lib/modules/`uname Vr`ӥؿUhI |
- export
Ao@ bash AYoF@ӵ{ǤFAOYAA@ bash AANiJyl{ǡzAoӵ{Ǫڭ̦b귽z`AԽ͡Ao̱zӷYiCѩzwgiJFӤl{ǡAҥHb{ǤܼƳ]wNA~sbCpzQnܼƤe~bl{ǤϥΡANаG
@export ܼ
@
IoӪFΦbyޥΥLHɮשΪ̨L{zɡA۷nIר乳ڱ``TɮפۤޥΨӤޥΥhApGѰO]w export ܡAPɮפۦPܼƭȡANݭn@AaƳ]w~IҥHAڥunbY@ɮרϥ export ܡAɮפޥήɡAN|ܼƤeŪiӡInΪ?ӡApGȤUF export ӨSܼƮɡAɱN|ҦyܼơzqXӳI]NOA export iHN@ۭqܼܦܼI
@
[root @test root]# export
declare -x BASH_ENV="/root/.bashrc"
declare -x CVSROOT="/usr/local/cvs/src/master"
declare -x HISTSIZE="50"
declare -x HOME="/root"
declare -x HOSTNAME="test.adsldns.org"
declare -x HOSTTYPE="i386"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="en_US"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:
bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=
01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh
=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.z
ip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;
31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=
01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x MACHTYPE="i386-redhat-linux-gnu"
declare -x MAIL="/var/spool/mail/root"
declare -x MANPATH=":/usr/local/netcdf/man"
declare -x OSTYPE="linux-gnu"
declare -x PATH="/usr/local/pgi/linux86/bin:/bin:/sbin:/usr/sbin:/usr/bin:
/usr/local/sbin:/usr/local/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
:/usr/local/netcdf/bin"
declare -x PGI="/usr/local/pgi"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
- unset
NONܼƪeG
@unset ܼ
@
- ܼƪĽdG
ѫe export HάAAiHܲMD@ƱANOAyܼƪ]wubثeo shell ҷsbAbUөΪ̬Obl{Ǥ ( l shell ) N|sbIznܼƦbUӵ{Ǥ]iH~ϥΡAjNOϥ export oөNNաI~A갣F shell Bl{ǥ~Ab}( scripts )sgAѩn|ϥΨ 2 ӥHW scripts @ӧ㪺MI]NOApA{A@䬰 scripts1.sh H scripts2.sh A scripts2.sh |hޥ scripts1.sh ܼơAoӮɭԡAKKIAb scripts1.sh ]wܼƽСydUOoH export ]wzA_hAܼƱNLkb scripts ۳QޥγIo scripts 槹Ab scripts ]wܼƤ]NyĤFIzC
@
- L`NƶG
EݤUܼƦGSȱoڭ̨ӯdNaAꤣMAܼƥiHڭ̪tκzܪ[²A|ӨҤlӻAڭ̴ HISTSIZE iHvOhAӦhܡAi|wU{AO_ݭnp@IOHMݭn㦹~A|]w譱AzϥΤ@먭ϥΪ̵nJtΡAAH su ഫ root ɡAWA@ܼƤOH쪺@먭̬DA]Az``|o{ root ϥΪO|y䤣IzNOܼƪ~]wաIoӮɭԡApGzNӤ@먭ϥΪ̪|]w root ΪOˤlAIഫɭԡANiHK۷hxZOIѵAѦҤFI
@
- readG
Wڭ̽ͨ쪺yܼơzOѡyOCz]wnIiiHHɨӴѨϥΥuHLHɿJܼƤeH]NOAܼƤeOѨϥΪ̥LJIIiHϥ read ӹFIoӪFby script z̭nաIҥHڭ̦b shell script ̭|AI
ykG@
[test @test test]# read name
testing <==oӮɭԿù|ݨϥΪ̥LJI
[test @test test]# echo $name
testing <==JܦFܼƪeաI
- arrayG
ͧF@ǰܼƤAAUӧڭ̥iH@y}C, ArrayzoFFIǹLƾӪDҿת}CaILiHϥΤ@ӡyơzӥ]t@ǤeIҦp A(1)=1, A(2)=4, A(3)=8 ˤlA A(n) NOơA n NO index()AӦbkNOoӨƹީұo쪺yezաIb Bash YѤFy@}CzjaӨϥΡAL]w榡OG
ykG`N@UIb]w}CɭԡALDnOH yrΤ, abc[]z˦ӳ]wILWhhP ܼƳ]wWh ۦPILAbŪ}CɭԴNݭn`NFIŪɭԡAOH ${}C} 觋ŪIoSOedIФjaSOdNOIMաA}CiHiƦrAA]iHOrꪺIiHաI
[test @test test]# a[]=e
[test @test test]# echo ${a[]}
ҡG
[test @test test]# a[1]=4
[test @test test]# a[2]=8
[test @test test]# echo ${a[1]} ${a[2]}
4 8
@
- $RANDOMG
ťLyHüơzoӪNaIHIb BASH ̭üƬOܼƨӪHüƦb^媺gk RANDOM աAҥHoA BASH wüƪܼƦWٴNO $RANDOM oIӵLq@UaI
ykGüƹ{]pvnAڭ̤@ϥΪ̡AnʴNSojաIuOXjaD@UNOFI
[test @test test]# echo $RANDOM
xxxx <==C|X{PƦrI
@
- evalG
ykGoӫO]Oᦳ쪺ILDnOΨӰܼƪy|NzΪIHWҤlӬݡA_A \$$year |ܦ $days Aӳo $days O@rIäOܼơILA[WF eval AoӦrN|QܦܼƤeIҥHA eval OΨӰyG|Nz\I
[test @test test]# eval variable
DG
[test @test test]# days=365
[test @test test]# year=days
[test @test test]# echo \$$year
$days <==Ĥ@ $ Q \ ܦ@rA \$ ᭱ $year N days աI
[test @test test]# eval echo \$$year
365
[W eval A \$$year ܦ $days yܼƤez|{XӳI
[test @tset test]# alias lm='ls -al | more' |
n`NOGyalias wqWhPܼƩwqWhXGۦPzAҥHAunb
alias ᭱[WA{yOWz='O Ѽ'}AHAunJ
lm N۷JF ls -al|more o@OIܤKaIt~Aڭ̪D root
iH( rm )ơIҥHAH root biu@ɡAݭnSOpߡAO`⪺ɭԡA
rm ѤF@ӰѼƨڭ̽T{O_nɮסANO -i oӰѼơIҥHAAiHo˰G
@
[test @tset test]# alias rm='rm -i' |
[test @tset
test]# alias
alias l.='ls -d .[a-zA-Z]* --color=tty' alias ll='ls -l' alias lm='ls -al' alias ls='ls --color=tty' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' |
ܩpGnROOWܡANϥ unalias aI
@
ROOWPܼƦPOHWAL̪NqNӤ@ˤFI alias
oةROOWAAiHNLQOإߤ@ӷsOW١AܩܼƫhȬON@ӼƭȩΪ̦rsbYӥNNqI|ӨҤlnFAڭ̪DHe
DOS ~NACXؿPɮ״NO dir AӲMùNO cls ApGڷQnb
linux ̭]ϥάۦPOOHNH alias ӶiOOW]wG
@
[test @test
test]# history
[test @test test]# [!number] [!command] [!!] ѼƻG number GĴXӫONF command GO}YXӦr ! GW@ӫONI dҡG [test @test test]# history <==UCXNO(1)vOsF(2)Oe 66 man rm 67 alias 68 man history 69 history [test @test test]# !66 <== 66 ӾvO [test @test test]# !! <==W@ӫO]bҤANO !66 @ӫOI^ [test @test test]# !al <==̪@H al }YOeANO 67 ӫOoI |
[test @test
test]# more .bashrc
# User specific aliases and functions PATH="/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/sbin:/usr/bin:$PATH" Export PATH Alias rm='rm
-i'
# Source global
definitions
|
[test @test test]# source ܼƳ]w |
oӨϥΪpbɭԩOH̱`oͦb@ӤHu@ҤhɭԤFI|ӨҤlӻAbڪjDAڱ``ݭntdTӤPפlACӮפlһݭnBzܼƭqwäۦPAڴNNoTӮפlOsgݩӮפlܼƳ]wɮסAڻݭnҮɡAN source ܼɡAp@ӡAܼƪ]wNܪ²KFFI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WUΦrA̱`ΪN *, ?, [] ` FIڭ̴X²檺ҤlG
[test @test
test]# ls test* <== * N᭱ױXӦrH(Sr]I)
[test @test test]# ls test? <== ? N᭱y@wzny@ӡzr [test @test test]# ls test??? <== ??? Ny@wnTӡzrI [test @test test]# cp test[1-5] /tmp <==N test1, test2, test3, test4, test5 YsbܡAN /tmp U [test @test test]# cd /lib/modules/`uname -r`/kernel/drivers <==Q ` ` A_Ӫey|zI |
- sOUF觋G
o̻ݭnAXӭnTAڭ̭WLAӫOgb@_AiHo˼gG
@command1; command2
@
QΤy ; zӤjAoӤNAN command1 浲GAcommand2 |QIpGڬOӬOAĤ@ command1 pG浲G~AĤGӴNQAiHo˰ܡHMiHANϥΤUӳsNNG
@command1 && command2
@
command1 || command2
ٰOoڭ̤eܼƤeA ? NܡHSANONe@Ӱ檺OeS~ApG~N^Ǭ 1 AS~N^Ǭ 0 AAiHg echo $? Ӭd߱oI && NONA command1 浲GǦ^Ȭ 0 ɭԡA]NOS~TɡAh command2 ~|}lA || ۤϡA command1 ~TɡA command2 ~|I|ӨҤlӻAڪtΤèS /vbird oӥؿAҥH ls /vbird ӷ|~T~AҥHAUTӫO|ܤOH
[root @test root]# ls /vbird ; ls /
[root @test root]# ls /vbird && ls /
[root @test root]# ls /vbird || ls /լݬI
[test @tset test]# /bin/more .bashrc<==ڦbؿ /home/test IoO|gkI |
[test @tset
test]# ls -al
total 728 drwx------ 3 vbird vbird 4096 May 19 14:53 . <==o@h|ݩʻ drwxr-xr-x 3 root root 4096 May 5 16:50 .. <==W@h|ݩʻ HUI |
[test @tset test]# ../../bin/more .bashrc <==@h@h^ڥؿAbiJ /bin gkI۹| |
xI褣Oy.zPy..zܡHӡy . zOFΪHIyBӤwgo{FANOyڦbɮתɭԡAWAä|DʷjMثeؿUɮz|ӨҤlӻAڦw˪ squid oӰɦb /usr/local/squid/bin/squid oɮסAMӧڦb /usr/local/squid/bin UF squid ɭԡAtη|iDAydoɮסIzuOFIoɮתrIoO]tιw] PATH ]|^èSثeؿU]wA]NOy.zoӸ|IAiHϥΡy echo $PATH zݬݡANiHDFIn]woӸ|OHoO]ywzҶqCѩtιw]O\Hb /tmp UgJɮתAU@~ߤ}ϥΪ̩Ϊ̬O Cracker JIAqAæbA /tmp YIF@Ӥp차AèW ls AnFAѧAH root nJA /tmp UAð ls AAݷ|GHIo /tmp/ls ѨLHӰγ\SDAO root Ӱoi|ɭP Cracker ҼַN쪺GIoFaHI MoIz٬OiHܦb ~/.bashrc ]wA . bA PATH ALäoijNOFI |
[test @tset bin]# ./squid <==H۹|[ӬݡIbؿUFOgkI |
|
1>> 2> 2>> < |
|
@wOOAܩkhiO˸mΪ̬OɮסI`NFI
1> P 2> èSťզrIӬϥλiH|ҦpUG
[test @test
test]# ls -al > list.txt
NܪGX list.txt ɮפAYɮץHsbhHNI [test @test test]# ls -al >> list.txt NܪG֥[ list.txt ɮפAɮ֥[A¸ƫOdI [test @test test]# ls -al 1> list.txt 2> list.err NܪơATX list.txt ~ƿX list.err [test @test test]# ls -al 1> list.txt 2>&1 NܪơAץTο~X list.txt I [test @test test]# ls -al 1> list.txt 2> /dev/null NܪơATX list.txt ~ƫhHI `NI~PTɮXP@ɮפAhHWkӼgI gL榡I |
o[۷nAרOb /etc/crontab 檺ɭԡApGڭ̤wgD~TASQn~T@ root HcANH 2> ft /dev/null oөU¬}˸mAӱNƥIoӬ۷nI
nFAy > , >> zoӪF観@wAڭ̨Ӳ`Jͤ@͡yROXɦVz[aIpeҭzAWA Linux 檺GAiHyTXzPy~Xzؤ觋CҦpAAH@먭 find oӫOɡAҦpy find / -name testing zɡAѩAO@먭ASǸƧO\@먭̶iJAҥHoAAϥ find ɡAN|~ToͤFIPɦpG testing oɮצbAiHiJƧAù]|X쵹AݡI]AN㦳TP~XoI]O٬ Stdout P Stderror^ҦpU浲GG̭y find: /home/root: Permission denied zNiDAӸƧASviJAoNO~XFAy /home/test/tseting zNOTXFI
[test @test test]# find / -name testing
find: /home/test1: Permission denied <==oO~X
find: /home/root: Permission denied <==oO~X
find: /home/masda: Permission denied <==oO~X
/home/test/testing <==oOyTzX
[test @test test]#nFApڭ̷QnNƿX list oɮפOHy find / -name testing > list z|GHAA|o{ list ̭sF诊ӡyTzXơAܩùW٬O|~TX{OI˸IpGQnNTP~ƤOsJPɮפݭnHIIbƪɦV譱ATgkӬOy 1> zPy 2> z~IOpGu > hw]OH 1> ӶiƪI 1> OXTơA 2> hO~ƿXءC]NOG
nFAWҤlAڭ̦pNƿX줣PahOHiHogG
- 1> GONTƿXwah
- 2> GON~ƿXwah
[test @test test]# find / -name testing 1> list_right 2> list_error oˤ@ӡA檺GA Permission X~T|] list_error oɮפAܩTXƫh|s list_right oɮפoIo˥iHAѤFܡHpGIVêܡAh𮧤@UAӬݬݧaII
[test @test test]# find / -name testing 1> list_right 2> /dev/null |
ܯ_I error message N|yFIzIuIt~ApGڭnNƳgP@ɮפOHoӮɭԼgkݭnΨSgkAЪ`NUgkI
[test @test
test]# find / -name testing 1> list 2> list<==~gk
[test @test tset]# find / -name testing 1> list 2>&1 <==Tgk |
ЯSOdNo@IOIPɼgJP@ɮݭnϥ 2>&1 ~I
1. LJơG
[root @test test]# mail -s "test" root <== -s ܼDA root I am root! <==HUƳOLJ That's OK . @@@@@ <==nLJɡAݭnb@檺̫e[W . YiI CC.@@@@@<==O_ݭnKƥHݭnܡAU Enter I EOF@@@@@<==ܰeXܦrӤwI 2. ɮץNJ
|
ܦaI ^_^ o˴NiHNHHXhoIҥHAxROɹܡAziO۷UI
[test @test
bin]# last
[test @test bin]# last | grep root [test @test bin]# last | grep root | wc -l |
- cut
ykGG
[root @test /root ]# cut -d "jr" [-cf] fields
ѼƻG
-d G᭱OΨӤjrAw]Oyťզrz
-c G᭱OyĴXӦrz
-f G᭱OĴXӰ϶H
dҡG
[root @test /root]# cat /etc/passwd | cut -d ":" -f 1
N passwd oɮ̭AC@Y : Ψӧ@jA
ӦCXĤ@Ӱ϶I]NOmWҦbաI[root @test /root]# last | cut -d " " -f1
HťզrjAæCXĤ@Ӱ϶I[root @test /root]# last | cut -c1-20
N last ᪺ơAC@檺 1-20 ӦrXӡI
o cut bܦnΡILAuADA``bR log ɮסA_hϥΨ cut |ähInFI cut Dnγ~bNyP@̭ƶiѡIzA̱`ϥΦbR@ǼƾکΤrƪɭԡIoO]ɭԧڭ̷|HYǦr@ΪѼơAMӱNƥ[HΡAHoڭ̩һݭnơCڤ]ܱ`ϥγoӥ\OIרObR log ɮתɭԡI
- sort
ykGG
[root @test /root ]# sort [-t jŸ] [(+_l)(-)] [-nru]
ѼƻG
-t jŸGϥΤjŸӹj}P϶Aw]O tab
+start -endGѲ start ϶ƧǨ end ϶
-n GϥΡy¼ƦrzƧǡ]_hN|HrAӱƧǡ^
-r GϦVƧ
-u GۦPX{@AuCX@I
dҡG
[root @test /root]# cat /etc/passwd | sort
NCXӪӤHbƧǡI[root @test /root]# cat /etc/passwd | sort -t: +2n
NӤHbAHϥΪ ID ӱƧǡ]H : ӤjAĤTӬ ID A
Ĥ@ӥN 0 G^[root @test /root]# cat /etc/passwd | sort -t: +2nr
Ϭ۱ƧoI
sort PˬOܱ`ΪOOI]ڭ̱``ݭn@ǸTաI|ӤWĤGӨҤlӻnFIѰ]AܦhbAӥBAQnD̤jϥΪ ID ثe@FIIϥ sort @UlNiHDIMϥ٤աIŪܤ@I
- wc
ykGG
[root @test /root ]# wc [-lmw]
ѼƻG
-l Gh֦
-m Gh֦r
-w Gh֦rH
dҡG
[root @test /root]# cat /etc/passwd | wc -l
oɮYh֦H[root @test /root]# cat /etc/passwd | wc -w
oɮYh֦rIH
wc ]iH@OHIoiOW~ⶡ WC OIoO۷Ϊpɮפe@ӤuճI|ӨҤlӻAAnDثeAbɮפh֭ӱbɡANϥΤW wc -l աI] /etc/passwd Y@N@ӨϥΪ̧rIҥHDƴNoh֪bbYFIӦpGnp@ɮYh֭ӦrɡAINϥ wc -w oӰѼƧaI
[root @test
/root ]# tr [-ds] SET1
ѼƻG -d GR SET1 oӦr -s GNƪrI dҡG [root @test /root]# last | tr '[a-z]' '[A-Z]' <==Npg令jg [root @test /root]# cat /etc/passwd | tr -d : <==KKI : oӲŸb /etc/passwd FI [root @test /root]# cat /home/test/dostxt | tr -d '\r' > dostxt-noM <==N DOS ɮתrŸ ^M ŸhI |