next previous contents naprej nazaj vsebina relativno osnovna vprasanja ki jih navadno vprasujejo zacetniki kako odstranim datoteko katere ime se zacne z ` subject how do i remove a file whose name begins with a date thu mar est ugotovite nek nacin imenovanja datoteke da se ne zacne s pomisljajem najpreprostejsi odgovor je uporaba rm imedatoteke seveda predvidevamo da je imedatoteke`` v trenutnem imeniku ta metoda izogibanja interpretacije ` deluje tudi z drugimi ukazi veliko ukazov posebej tistih ki so bili napisani za uporabo rutine getopt `` za razclembo argumentov sprejmejo argument `` ki pomeni to je zadnja izbira vse po tem ni vec izbira`` torej lahko vasa razlicica rm razume tudi rm imedatoteke nekatere razlicice rm ki ne uporabljajo getopt ravnajo enako z enim samim `` torej lahko poskusite rm imedatoteke`` kako odstranim datoteko ki ima v svojem imenu cudne znake subject how do i remove a file with funny characters in the filename date thu mar est ce je cuden znak`` znak ` skocite na zadnji del tega odgovora ce je cuden znak nekaj drugega na primer presledek ali kontrolni znak ali znak s prizganim osmim bitom to so npr slovenske crke cszcsz`` nadaljujte z branjem prvi klasicni odgovor je rm i nek vzorec ki ustreza le datoteki ki jo zelite ki vas vprasa za vsako datoteko ki ustreza vzorcu ali jo zelite odstraniti morda v vasi ukazni lupini to ne bo delovalo pri znakih s prizganim osmim bitov ukazna lupina ga lahko odreze drugi klasicni odgovor je rm ri ki vas za vsako datoteko v imeniku vprasa ali naj jo odstrani odgovorite z y` pri problematicni datoteki in z n` pri vseh ostalih zal to ne deluje z veliko razlicicami rm prav tako zal se bo to sprehajalo po vseh podimenikih trenutnega imenika torej boste morda zacasno hoteli postaviti te imenike na chmod a x`` da vas ne bodo motili vedno globoko vdihnite in razmislite kaj pocnete in dvakrat preverite kaj ste napisali kadar uporabljate zastavico r`` ukaza rm ali znak ali angl wildcard v ukazni vrstici tretji klasicni odgovor je find type f ok rm ' ' \ kjer je `` skupina predikatov ki enolicno doloca ime datoteke ena od moznosti je da ugotovite stevilo inode problematicne datoteke z uporabo ls i `` in potem uporabite find inum ok rm ' ' \ ali find inum ok mv ' ' novo ime datoteke \ ok`` je varnostno preverjanje vprasalo vas bo za potrditev ukaza preden ga izvede namesto tega se lahko izognete vprasevanju z uporabo exec`` ce radi zivite nevarno ali ce domnevate da ime datoteke vsebuje zaporedje cudnih znakov ki vam bodo ob izpisu zmesali zaslon kaj ce ime datoteke vsebuje ` te datoteke so res posebni primeri in jih lahko ustvari le hroscata koda v jedru tipicno jih naredijo implementacije nfs ki ne pocistijo neveljavnih znakov iz imen datotek na oddaljenih strojih najprej poskusajte natanko razumeti zakaj je ta problem tako cuden spomnite se da so imeniki v unixu preprosto pari imen datotek in stevilk inode imenik tipicno vsebuje podobno informacijo ime datoteke inode datoteka datoteka c datoteka teoreticno sta ` in \ ` le dva znaka ki se ne moreta pojaviti v imenu datoteke ` zato ker se uporablja za locevanje imenikov in datotek in \ ` zato ker prekinja ime datoteke zal nekatere izvedbe omreznega datotecnega sistema nfs veselo ustvarjajo datoteke z vkljucenimi nagibnicami kot odgovor na zahteve oddaljenih strojev na primer to se lahko zgodi ko se nekdo na macu ali drugem ne unixu odloci narediti oddaljeno datoteko nfs na vasem unixu z datumom v imenu datoteke vas imenik na unixu ima potem v sebi tole ime datoteke inode taksne datoteke ne bo pobrisalo nobeno zgoraj opisano caranje z ukazoma find in rm saj morata tadva pripomocka in vsi drugi programi na unixu razumeti ` na obicajen nacin vsak obicajen program bo slej ko prej hotel narediti unlink kar kolikor se tice jedra pomeni pobrisi datoteko v podimeniku imenika `` toda to ni tisto kar imamo imamo datoteko imenovano `` v trenutnem imeniku to je komaj zaznavna a kljucna razlika kaj lahko naredite v tem primeru prva stvar ki jo poskusite je da se vrnete na maca ki je ustvaril ta zoprni vnos in pogledate ce lahko prepricate maca in vas lokalni streznik nfs v preimenovanje datoteke v nekaj brez nagibnic ce to ne deluje ali ni mogoce boste potrebovali pomoc vasega sistemskega upravitelja ki bo moral poskusiti nekaj od naslednjega uporabite ls i`` da boste izvedeli stevilko inode nesrecne datoteke potem odmestite datotecni sistem z umount in uporabite clri`` za izbris inodea in popravite datotecni sistem s fsck`` s stisnjenimi pestmi to unici podatke v datoteki ce jih zelite obdrzati lahko poskusite ustvarite nov imenik v istem starsevskem imeniku kot ga ima imenik ki vsebuje datoteko slabega imena premaknite vse kar lahko se pravi vse razen datoteke s slabim imenom iz starega imenika v novega napravite ls id`` na imeniku z datoteko s slabim imenom da dobite njegovo stevilko inumber odmestite datotecni sistem uporabite clri`` na imeniku vsebujocem sporno datoteko obnovite datotecni sistem s fsck`` potem boste datoteko poiskali takole namestite datotecni sistem preimenujte imenik ki ste ga ustvarili tako da bo imel isto ime kot stari imenik saj je stari imenik dokoncno pobrisal fsck`` premaknite datoteko iz imenika lost found`` v imenik s primernejsim imenom alternativa temu je popravljanje imenika na tezak nacin z brkljanjem po surovem datotecnem sistemu angl raw file system uporabite fsdb`` ce ga imate kako dobim rekurziven izpis vsebine imenika subject how do i get a recursive directory listing date thu mar est nekaj od tega bo naredilo to kar zelite ls r vse razlicice ls` nimajo r` find print to mora delovati povsod du a pokaze ime in velikost ce iscete vzorec z jokerji angl wildcard ki bo ustrezal vsem datotekam c`` v tem imeniku in pod njim ga ne boste nasli pac pa lahko uporabite nek ukaz `find name ' c' print` find`` je zmogljiv program poucite se o njem kako lahko dobim trenutni imenik v moj pozivnik subject how do i get the current directory into my prompt date thu mar est odvisno od tega katero ukazno lupino uporabljate v nekaterih ukaznih lupinah je to preprosto v drugih pa tezko ali nemogoce c shell csh vstavite tole v svojo datoteko cshrc preuredite spremenljivko pozivnika po svojem okusu alias setprompt 'set prompt cwd ' setprompt nastavitev uvodnega pozivnika alias cd 'chdir \ setprompt' ce uporabljate pushd in popd boste potrebovali tudi alias pushd 'pushd \ setprompt' alias popd 'popd \ setprompt' nekatere lupine csh nimajo spremenljivke cwd namesto tega lahko uporabite `pwd` ce zelite dobiti v vas pozivnik le zadnjo komponento vasega trenutnega imenik mail `` namesto usr spool mail `` lahko uporabite alias setprompt 'set prompt cwd t ' nekatere starejse lupine csh imajo zamenjan pomen operatorjev in poskusite false echo napaka ce izpise napaka`` morate zamenjati in in dobiti boljso razlicico csh bourne shell sh ce imate novejso razlicico bourneove ukazne lupine svr ali novejso lahko uporabite funkcijo lupine za izdelavo svojega ukaza denimo xcd`` xcd cd ps `pwd` ce imate starejso bourneovo ukazno lupino je to zapleteno a ne nemogoce dodajte tole v vaso datoteko profile login shell export login shell cmdfile tmp cd export cmdfile je sigurg izberite signal ki se navadno ne uporablja promptsig export promptsig trap ' cmdfile' promptsig in potem postavite to izvrsilno skripto brez zamikanja recimo ji xcd`` nekje v vaso pot path xcd directory change directory and set prompt by signalling the login shell to read a command file cat cmdfile not set eof cd ps \`pwd\` eof kill promptsig not set login shell not set zdaj spreminjajte imeniku z ukazom xcd nek imenik`` korn shell ksh vstavite to v vaso datoteko profile ps ' pwd ' ce zelite le zadnjo komponento imenika uporabite ps ' pwd ' t c shell tcsh tcsh je popularna izboljsana razlicica csh z nekaterimi dodatnimi vgrajenimi spremenljivkami in veliko drugih zmoznosti ~ trenutni imenik uporablja ~ za home polna pot trenutnega imenika c ali koncna komponenta trenutnega imenika tako da lahko preprosto ukazete set prompt ' ~ ' bash fsf jeva ukazna lupina bourne again shell`` simbol \w v ps daje polno ime poti trenutnega imenika z uporabo ~ za home \w daje temeljno ime angl basename trenutnega imenika torej lahko poleg zgornjih resitev za sh in ksh uporabite tudi ps '\w ' ali ps '\w ' kako preberem znake s terminala v skripto ukazne lupine subject how do i read characters from the terminal in a shell script date thu mar est v sh uporabite read navadno se uporabi podobna zanka while read vrstica do echo vrstica done v csh uporabite kot tukaj while set vrstica if vrstica break end zal se v csh ne da razlocevati med prazno vrstico in koncem datoteke ce uporabljate sh in bi radi prebrali en sam znak s terminala lahko poskusite nekaj podobnega temu echo n vstavite znak stty cbreak ali stty raw beriznak `dd if dev tty bs count dev null` stty cbreak echo echo hvala da ste vtipkali beriznak kako preimenujem foo v bar ali spremenim imena datotek v male crke subject how do i rename foo to bar or change file names to lowercase date thu mar est zakaj ne deluje mv foo bar`` premislite kako ukazna lupina razvija jokerje angl wildcards foo`` in bar`` se razvijeta preden ukaz mv sploh vidi argumente odvisno od vase ukazne lupine lahko to spodleti na vec nacinov csh izpise no match `` ker ne najde bar`` sh izvrsi mv a foo b foo c foo bar`` kar bo uspelo le ce imate en sam imenik ki ustreza bar`` kar je zelo neverjetno in skoraj zagotovo ni tisto kar ste imeli v mislih odvisno od vase ukazne lupine lahko to storite z zanko v kateri pozenete mv`` na vsaki posamezni datoteki ce ima vas sistem basename`` lahko uporabite c shell foreach f foo set base `basename f foo` mv f base bar end bourne shell for f in foo do base `basename f foo` mv f base bar done nekatere ukazne lupine imajo posebne lastnosti zamenjave spremenljivk angl variable substitution features torej lahko namesto uporabe basename`` uporabite preprosteje zanke kot so c shell foreach f foo mv f f r bar end korn shell for f in foo do mv f f foo bar done ce nimate ukaza basename`` ali bi zeleli preimenovati nekaj kot foo v bar lahko uporabite sed`` ali podobno stvar da oklestite prvotno ime datoteke na druge nacine a v splosnem je ideja zanke enaka s pripomockom sed`` lahko tudi spremenite imena datotek v ukaze za mv in izrocite ukaze za izvajanje lupini sh`` poskusite ls d foo sed e 's mv ' e 's foo bar ' sh program vladimirja lanina imenovan mmv`` opravi to delo in je bil aprila objavljen v comp sources unix volume issues and dovoljuje vam uporabo mmv ' foo' ' bar' zanke v ukaznih lupinah podobne zgornjim lahko sluzijo tudi za preslikavo imen datotek iz velikih v male crke ali obratno velike crke v imenih datotek prevedete v male na taksen nacin c shell foreach f mv f `echo f tr '' ''` end bourne shell for f in do mv f `echo f tr '' ''` done korn shell typeset l l for f in do l f mv f l done ce zelite biti posebno temeljiti in pravilno obravnavati datoteke s smesnimi` imeni vkljuceni presledki ali karkoli boste morali uporabiti bourne shell for f in do g `expr xxx f 'xxx\ \ ' tr '' ''` mv f g done ukaz expr vedno izpise ime datoteke tudi ce je to enako n` ali ce vsebuje ubezna zaporedja za system v kot je \c` nekatere razlicice ukaza tr`` potrebujejo ` nekatere ju ne v tem konkretnem primeru ju je povsem neskodljivo vkljuciti razlicice ukaza tr ki nocejo `` bodo primerno mislile da bi morale preslikati ` v ` ce imate namescen programski jezik perl`` lahko to skripto larryja walla za preimenovanje datotek uporabite zelo koristno uporabljate jo lahko za sirok spekter sprememb imen datotek usr bin perl primeri uporabe skripte rename avtor lwall rename 's \ orig ' orig rename 'y a z a z unless make ' rename ' bad ' f rename 'print s foo bar if stdin ~ y i' op shift for argv was eval op die if rename was unless was eq zakaj dobim ob rsh gostitelj ukaz`` subject why do i get when i rsh host command date thu mar est govorimo o programu za oddaljeno ukazno lupino rsh`` ali na nekaterih strojih remsh`` ali remote`` obstaja tudi ukazna lupina z omejitvami imenovana rsh`` ki pa je drugacna stvar ce vas oddaljeni racun uporablja c jevsko ukazno lupino csh bo oddaljeni gostitelj pognal csh da bi izvrsil vas ukaz` in ukazna lupina bo prebrala vaso oddaljeno datoteko cshrc morda ta cshrc vsebuje stty`` biff`` ali kaksen drug ukaz ki ni primeren za neinteraktivno ukazno lupino nepricakovan izhod ali sporocilo o napaki od teh ukazov lahko zapletejo vaso lupino rsh na cudne nacine tukaj je primer denimo da imate v vasi datoteki cshrc tole stty erase h biff y dobili boste cudna sporocila kot je tole rsh nek stroj date stty can't assign requested address where are you tue oct est podobne napake lahko dobite ce poganjate dolocena opravila pripomockov at`` ali cron`` ki prav tako bereta vaso datoteko cshrc na sreco je popravek preprost zelo verjetno je v vasi datoteki cshrc`` na kupe operacij ki jih preprosto ni vredno izvesti drugje kot v interaktivnih ukaznih lupinah npr set history n`` kar storite je to da jih objamete v vasi cshrc`` z if prompt then operacije endif ker v neinteraktivnih ukaznih lupinah spremenljivka prompt`` ne bo nastavljena bodo sporne operacije izvedene le v interaktivnih ukaznih lupinah morda boste tudi zeleli premakniti nekatere ukaze v vaso prijavno datoteko login ce se morajo ti ukazi izvesti le ko se prijavite v sistem iskanje nove poste neprebranih novicarskih sporocil in tako naprej jih je bolje imeti v datoteki login kako naj nastavim okoljsko spremenljivko spremenim imenik znotraj programa ali skripte ukazne lupine in dosezem da bo to upostevala moja trenutna ukazna lupina subject how do i and have that change affect my current shell date thu mar est v splosnem tega ne morete storiti vsaj ne brez posebnih priprav ko se ustvari otroski proces nasledi kopijo spremenljivk svojega oceta in trenutni imenik otrok lahko spremeni te vrednosti kolikor hoce vendar te spremembe ne bodo prizadele starsevske ukazne lupine saj otrok spreminja le kopijo originalnih podatkov mozne so nekatere posebne priprave vas otroski proces lahko izpise spremenjene spremenljivke ce je stars pripravljen prebrati ta izhod in ga razumeti tako da ustrezno nastavi lastne spremenljivke ukazne lupine lahko uredijo tudi poganjanje drugih skript ukaznih lupin v kontekstu trenutne namesto v otroskem procesu torej bodo spremembe prizadele tudi originalno ukazno lupino na primer ce imate skripto za csh imenovano mojaskripta`` cd zelo dolga pot setenv path nekaj nekaj drugega ali ekvivalentno skripto za bourneovo ali kornovo ukazno lupino cd zelo dolga pot path nekaj nekaj drugega export path in poskusate pognati mojaskripta`` v vasi ukazni lupini se bo vasa ukazna lupina razvejila in pognala lupinsko skripto v podprocesu podproces tudi poganja ukazno lupino ko vidi ukaz cd`` spremeni svoj trenuten imenik in ko vidi ukaz setenv`` spremeni svoje okolje vendar nobeden od slednjih ukazov nima vpliva na trenutni imenik ukazne lupine v katerem tipkate vase prijavne ukazne lupine denimo ce zelite prepricati vaso prijavno ukazno lupino da izvrsi skripto brez razvejevanja morate uporabiti ukaz `` za bourneovo ali kornovo lupino ali ukaz source`` za c jevsko lupino se pravi v bournovih ali kornovih ukaznih lupinah napisete mojaskripta v c jevski pa source myscript ce je vse kar poskusate storiti le sprememba imenika ali nastavitev okoljske spremenljivke bo verjetno najlazje da uporabite vzdevek angl alias v c jevski ali funkcijo v bourneovi kornovi ukazni lupini glejte razdelek kako lahko dobim trenutni imenik v moj pozivnik `` za nekaj primerov veliko bolj podroben odgovor je pripravil thomas michanek xtm telelogic se dobite ga lahko po ftp ju z naslova ftp ftp wg omron co jp pub unix faq docs script vs env kako lahko v csh loceno preusmerim stdout in stderr subject how do i redirect stdout and stderr separately in csh from msb sq com mark brader date mon oct v csh lahko preusmerite stdout z `` ali stdout in stderr skupaj z `` toda ni neposrednega nacina le za preusmeritev stderr najboljse kar lahko naredite je ukaz datoteka za stdout datoteka za stderr ki pozene ukaz`` v ukazni podlupini stdout se preusmeri znotraj podlupine v datoteko datoteka za stdout`` stdout in stderr podlupine pa se skupaj preusmerita v datoteko datoteka za stderr`` toda na tej tocki je stdout ze preusmerjen torej v datoteki datoteka za stderr`` konca pravzaprav le stderr ce je to kar zelite prepreciti preusmeritev stdout nasploh naj to za vas stori sh sh c 'ukaz datoteka za stderr' kako znotraj cshrc ugotovim ali sem prijavna ukazna lupina subject how do i tell inside cshrc if i'm a login shell date thu mar est ko ljudje govorijo tako pravzaprav s tem mislijo nekaj od tega kako lahko ugotovim ali gre za interaktivno ukazno lupino ali pa kako lahko ugotovim ali gre za najvisje nivojsko ukazno lupino morda lahko ugotovite ali je vasa ukazna lupina resnicno prijavna lupina se pravi bo prebrala login`` potem ko bo opravila z cshrc`` tako da zapravljate cas s ps`` in `` prijavne lupine imajo v splosnem imena ki se zacnejo s ` ce vas v resnici zanimata drugi dve vprasanji je tukaj nacin organizacije vase datoteke cshrc da to izveste if cshlevel then to je najvisje nivojska ukazna lupina morda prijavna lupina morda lupina pognana z 'rsh stroj neki ukaz' tukaj moramo nastaviti pot path in vse drugo kar zelimo imeti v vsaki od nasih ukaznih lupin setenv cshlevel set home ~username za vsak slucaj source ~ env okoljske stvari ki jih vedno zelimo else ta lupina je otrok ene od drugih ukaznih lupin zato nam ni treba ponovno nastaviti vseh okoljskih spremenljivk set tmp cshlevel tmp setenv cshlevel tmp endif izhod iz cshrc ce ni interaktivna npr pod rsh if prompt exit tukaj bi lahko nastavili pozivnik ali vzdevke ki bi bili uporabni le za interaktivne ukazne lupine source ~ aliases kako naj naredim lupinski ujemalni vzorec ki se ujema z vsemi datotekami razen z `` in `` subject how do i construct a matches all files except and date thu mar est in vi ste mislili da bo to preprosto ustreza vsem datotekam ki se ne zacenjajo z `` ustreza vsem datotekam ki se zacenjajo z `` toda to vkljucuje posebna vnosa `` in `` ki ju pogosto ne zelite le novejse ukazne lupine nekatere lupine uporabljajo `` namesto `` ukazne lupine posix a morajo sprejeti `` a lahko sprejmejo tudi `` prenosljive aplikacije ne bi smele uporabljati necitiranega `` takoj za `` ustreza vsem datotekam ki se zacnejo z `` in jim sledi ne `` zal bo to spregledalo foo`` ustreza datotekam ki se zacnejo z `` in so dolge vsaj tri znake to se prikupno izogne `` in `` a tudi spregleda a`` ce zelite varno ujemanje z vsemi datotekami razen `` in `` morate uporabiti vzorce ce nimate imen datotek kot je a`` lahko izpustite prvega alternativno lahko zaposlite zunanji program ali dva in uporabite substitucijo znotraj narekovaja angl backquote substitution to ali ls a` na nekaterih razlicicah unixa je precej dobro `ls a sed e ' \ d' e ' \ \ d'` a tudi to bo zamocilo pri datotekah z znaki za novo vrsto znaki ifs ali jokerjih v njihovih imenih v ksh lahko uporabite kako ugotovim zadnji argument v skripti bournove ukazne lupine subject how do i find the last argument in a bourne shell script date thu mar est odgovor napisala martin weitzel mikros systemware de martin mwtech uucp maarten litmaath maart nat vu nl ce ste prepricani da je stevilo argumentov najvec lahko uporabite eval zadnji \ v ukaznih lupinah zdruzljivih s standardom posix to deluje za vsako stevilo argumentov naslednje tudi deluje vedno for zadnji do done to se lahko posplosi takole for i do predpredzadnji predzadnji predzadnji zadnji zadnji i done zdaj pa denimo da zelite odstraniti zadnji argument seznama ali obrniti seznam argumentov ali dostopati neposredno do n tega argumenta kakrsenkoli je ze n tukaj je osnova kako to storite uporabljajoc le vgrajene konstrukte ukazne lupine ne da bi ustvarjali podprocese t u ostanek ' ' argv for h in '' ostanek do for t in t ostanek do for u in u ostanek do case in break esac eval argv h t u \ argv argv \ \ argv h t u\ shift done u done t done zdaj obnovimo argumente eval set x argv shift ta primer deluje za prvih argumentov dovolj dobro poglejte vrstici oznaceni z in in se prepricajte da se originalni argumenti res obnovijo ne glede na to katere cudne znake vsebujejo n ti argument lahko zdaj poiscete takole eval argn \ argv n ce zelite obrniti argumente mora biti vrstica oznacena z spremenjena v argv \ \ argv h t u\ argv kako odstranite zadnji argument vam je prepusceno za nalogo ce dovoljujete tudi podprocese ki morda izvajajo nevgrajene ukaze lahko spremenljivke argvn` dolocite preprosteje n for i do eval argv n \ i n `expr n ` done za obracanje argumentov obstaja se preprostejsa metoda ki niti ne ustvarja podprocesov ta pristop lahko uporabite tudi ko zelite pobrisati npr zadnji argument a v tem primeru se ne morete vec sklicevati neposredno na n ti argument saj so spremenljivke argvn` nastavljene v obratnem vrstnem redu argv for i do eval argv \ i argv \ \ argv \ argv shift done eval set x argv shift kaj je narobe ce imam ` v svoji poti path subject what's wrong with having ' ' in your path date thu mar est malce ozadja okoljska spremenljivka path je seznam imenikov locenih z dvopicji ko vpisete ukaz brez jasno dolocene poti npr napisete ls`` in ne bin ls`` vasa ukazna lupina isce izvrsilno datoteko s tem imenom po vseh imenikih nastetih v seznamu path lepo po vrsti in izvrsi prvi ustrezen program ki ga najde eden od imenikov v seznamu path je lahko trenutni imenik `` v seznamu path lahko uporabite tudi prazen imenik kot znak za trenutni imenik ta dva nacina sta ekvivalentna za uporabnike csh setenv path usr ucb bin usr bin setenv path usr ucb bin usr bin za uporabnike sh ali ksh path usr ucb bin usr bin export path path usr ucb bin usr bin export path posest `` nekje v path je udobno za poganjanje programov v trenutnem imeniku lahko pisete a out`` namesto a out`` a obstaja kavelj premislite kaj se zgodi v primeru da je `` prvi vnos v seznamu path denimo da je vas trenutni imenik javno dostopen za pisanje na primer tmp`` ce je tam slucajno program imenovan tmp ls`` ki ga je tam pustil kak drug uporabnik in napisete ls`` namesto da bi seveda pognali obicajen program bin ls`` bo vasa ukazna lupina pognala ls`` program tistega drugega uporabnika odvec je napisati da vas lahko poganjanje neznanega programa kot je ta preseneti malce bolje je imeti `` na koncu path setenv path usr ucb bin usr bin ce ste zdaj v tmp in napisete ls`` bo ukazna lupina preiskala usr ucb bin in usr bin za program imenovan ls`` preden bo pogledala v `` in tako je manj moznosti da bi nehote pognali program ls`` drugega uporabnika to ni varno ce ste neroden strojepisec in nekega dne napisete sl l`` namesto ls l`` tvegate da boste pognali sl`` ce obstaja kak bister`` programer lahko racuna na pogoste tipkarske napake in pusca programe s temi imeni raztrosene po javnih imenikih pazite veliko izkusenih uporabnikov unixa shaja povsem dobro ne da bi sploh imeli `` v path setenv path usr ucb bin usr bin ce naredite to boste morali za zagon programov pisati program`` namesto program a povecanje varnosti je verjetno vredno te zrtve kako lahko pozvonim na terminalski zvonec iz skripte ukazne lupine subject how do i ring the terminal bell during a shell script from uwe mpi sb mpg de uwe waldmann date fri apr odgovor je odvisen od razlicice vasega unixa ali raje od vrste programa echo`` ki je na voljo na vasem stroju bsd jevski echo`` uporablja izbiro n`` za preprecitev izpisa koncnega znaka za konec vrstice angl final newline in ne razume osmiskega zapisa \nnn ukaz se torej glasi echo n ' g' kjer g pomeni dobesedni znak bel vstavite ga lahko v emacsu s kombinacijo ctrl q ctrl g`` ali v vi z uporabo ctrl v ctrl g`` na unixih sysv echo`` razume zapis \nnn in uporablja \c za preprecitev izpisa koncnega znaka za konec vrstice torej je odgovor echo '\ \c' zakaj ne morem uporabiti talk`` za pogovor s prijateljem na stroju x subject why can't i use talk to talk with my friend on machine x from tmatimar isgtec com ted timar date thu mar est unix ima tri razsirjene programe talk`` in nobeden od njih se ne more pogovarjati z ostalima dvema stari`` talk steje za prva dva tipa ta razlicica pogosto imenovana otalk ni upostevala vrstnega reda bytov ko se je pogovarjala z drugimi stroji kot posledica se razlicica otalk za vax ni mogla pogovarjati z razlicico otalk za sun te razlicice talk a uporabljajo vrata okoli leta se je vecina proizvajalcev razen suna ki je potreboval let vec od svojih tekmecev dogovorila o standardu za novi program talk pogosto imenovan ntalk ki ve za omrezni vrstni red bytov ta talk deluje med vsemi stroji ki ga imajo ta razlicica talk a uporablja vrata dandanes obstaja nekaj programov talk ki govorijo ntalk in eno od razlicic otalk najbolj znan med njimi se imenuje ytalk`` zakaj koledar izpise napacen izhod subject why does calendar produce the wrong output from tmatimar isgtec com ted timar date thu sep edt pogosto ljudje ugotovijo da izhod unixovega koledarskega programa cal`` ne ustreza njihovim pricakovanjem koledar za september je zelo cuden september s m tu w th f s to je mesec v katerem so zda pravzaprav celoten britanski imperij zamenjale julijanski koledar z gregorijanskim drug pogost problem ki ga imajo ljudje s koledarskim programom je da mu podajajo argumente kot je cal `` to izpise koledar za september leta ne naprej nazaj vsebina