Basic Shell-opdrachten voor bloggers
Het systeem van shell-commando's is een van de oudste talen voor systeemcommunicatie. Computers hebben vanaf het allereerste begin van de elektronische computer toegang gekregen tot de opdrachtregel, zelfs voordat besturingssystemen volledig waren ontwikkeld. Nu medio 2011 is het duidelijk om te zien hoe snel we zijn geëvolueerd.
Voor tech-enthousiastelingen en bloggers die sommige basishell-opdrachten begrijpen, kan u veel tijd besparen. Inzicht in het omgaan met de terminal en het schrijven van opdrachtregelinstructies om taken uit te voeren, is zo'n groot onderwerp. In geen geval mag u verwachten dat u de discussies hier bij uw eerste poging volledig begrijpt. Maar als het even kan, besteedt u wat tijd aan het onderzoeken en samenstellen van de kennis van het gebruik van een opdrachtregelinterface.
Ik deel enkele geweldige tips hieronder voor bloggers over de hele wereld. Houd er rekening mee dat een GUI die u gebruikt voor toegang tot de bestanden van een computer waarschijnlijk een of andere vorm van opdrachtregel heeft. Dit is de basis voor alle computergebruik, om opdrachten in te voeren en directe uitvoer te ontvangen. Voordat ik in de commando's en syntaxis spring, stel ik voor dat we eerst wat geschiedenis opruimen.
Linux Shell Command - in een notendop
Er zijn zoveel termen die hier worden gebruikt, het kan helpen sommige te verduidelijken. Hieronder heb ik een paar descriptoren opgenomen voor een enigszins controversieel vocabulaire.
- schelp - een basisprogramma dat gebruikersinvoer uitvoert en opdrachten uitvoert. shell is meestal een generieke term die verwijst naar een opdrachtregelinterface.
- terminal - de verbinding tussen de eindgebruiker en een computersysteem.
- Bash - een type shell-scripting dat het meest wordt gebruikt in Linux-omgevingen.
- commando - invoer op de computer met een ingestelde taak of lijst met instructies.
- pit - interne software geschreven in de kern van de meeste besturingssystemen. De kernel kan via elk shell-venster opdrachten krijgen om met fysieke computerprocessen om te gaan. d.w.z. geheugentoewijzing, hardware, externe apparaten, CPU-functionaliteit, enz.
Let op dat dit systeem al heel lang bestaat. In feite zijn de commandoregelfuncties tussen Linux en Mac OSX grotendeels identiek. Dit komt omdat Linux is gebouwd als een gratis open besturingssysteem van een Unix-besturingssysteem. Ondertussen bouwde Apple oorspronkelijk OS X van BSD, wat een Unix-systeem is.
Windows staat als een vreemde eend in de bijt geweest over de klassieke DOS (Disk Operating System). Sommige commando's lijken op elkaar, maar voor het grootste deel zal elke interactie met de opdrachtregel met een Windows-besturingssysteem veel verschillen van een Linux / Unix-systeem.
Een nieuwe terminal openen
Het Terminal-venster is de zwarte doos met een knipperende cursor die gretig op uw invoer wacht. Dit kan worden verhoogd via elk GUI-menu of ook door sneltoetsopdrachten toe te wijzen. In de Linux GUI zoekt u naar een applicatie met de naam terminal of konsole. Raadpleeg online met uw Linux-versiedocumentatie voor specifieke informatie, zoals Ubuntu of Debian.
Als u zich in een Mac-omgeving bevindt, is Spotlight de snelste manier om een terminalvenster te openen. command + option + spatiebalk opent een gloednieuwe spotlight-zoekopdracht, of u kunt ook op het vergrootglas klikken voor een dropdown-venster. Binnen type “terminal” en de resultatenlijst zou snel moeten worden ingevuld.
Ermee beginnen
Nu u een terminalvenster open heeft, kunnen we aan de slag! Om te beginnen wil je het navigeren in de mappen beter begrijpen. pwd
is een lijstopdracht om uw actieve map uit te voeren. Gekoppeld aan ls
u kunt de huidige map parseren en een bestandenlijst retourneren. Het vorige commando staat voor Print Working Directory terwijl de laatste staat voor List Files / Directories. Beide zijn leuk om mee te spelen en zullen geen bestanden beschadigen of bewerken.
Als je te maken hebt met een geretourneerde bestandsvermelding, zou je een paar dingen moeten opmerken. Ten eerste bevatten de lijsten zowel afzonderlijke bestanden als mappen. Elke vermelding zonder een documentextensie (.jpg, .gz, .rpm) wordt als een map beschouwd. U kunt op en neer gaan tussen deze met de CD
commando. Dit staat voor Change Directory en zou moeten werken zoals u verwacht.
Een snelkoppeling voor het manoeuvreren van een map naar boven gebruikt cd ... /
- Het mooie van deze truc is hoe snel je terug kunt navigeren tussen mappen en precies kunt vinden wat je zoekt. Telkens wanneer u een niveauoproep omhoog gaat pwd
om te zien waar je bent. Als u op zoek bent naar een specifieke map, belt u ook ls
zodat je een idee krijgt van waar je verder moet.
Als u binnen de hoofdmap wilt navigeren, voegt u eenvoudig een slash toe aan de URL. Als u zich bijvoorbeeld op dit moment in uw thuismap bevindt, hoeft u niet naar mappen te gaan totdat u thuis bent. Bel gewoon cd / home
en druk op Enter om naar de hoofdmap van je hoofdmap te gaan.
Het manipuleren van bestanden en mappen
Nu het mogelijk is om de interne werking van uw bestandssysteem te doorlopen, moeten we beginnen met het bouwen van bestanden. Als u geen fan bent van de grafische gebruikersinterface om mappaden te maken, hoeft u niet verder te zoeken dan onze eenvoudige opdrachtregel. mkdir
staat voor Make Directory en is de snelste manier om een solide bestandsstructuur op te bouwen.
Als je bent ingelogd als root, dan heb je geen problemen met rommelen. Wees echter alert, want soms kunnen bestandsrechten te streng zijn en uw toegang beperken om nieuwe mappen te maken. Bekijk de mkdir documentatiepagina voor voorbeelden van argumenten.
Om dit verder te dekken, wordt elke opdracht geleverd met een reeks mogelijke argumenten. Deze kunnen worden doorgegeven na het typen van de opdracht om aanvullende instellingen toe te passen. Een universeel voorbeeld is --helpen
die altijd een lijst met functies en ondersteuningsonderwerpen voor de huidige opdracht weergeeft. Probeer in te typen mkdir --help
en zie wat je terugkrijgt.
De cp
en mv
commando's worden gebruikt om respectievelijk bestanden te kopiëren en te verplaatsen. Je moet beide mappen al uitgeschreven hebben en wijzen naar waar het bestand zal komen. Elke opdracht vereist 2 argumenten, de eerste is een bestand naar keuze en de tweede een nieuwe bestemming om naartoe te kopiëren of te verplaatsen. evenzo rm bestandsnaam
kan worden gebruikt om bestanden te verwijderen (verwijderen) en rm -rf mapnaam /
om mappen te verwijderen. Maar wees voorzichtig hier omdat er geen undo-functie is in de schaal!
Overeenkomende jokerteksten
Het kunnen verplaatsen van bestanden en het kopiëren van mappen biedt een zekere mate van zekerheid. Maar uiteindelijk heeft het gebruik van deze kennis iets meer finesse nodig. Oorspronkelijk zou u shell-scripting gebruiken om grote taken te automatiseren die u liever niet zelf uitvoert.
Met opdrachten met jokertekens kunt u meerdere bestanden targeten in plaats van een enkele naam. Bij het invoeren van uw doel-URL zijn er twee extra symbolen om mee te spelen. Een asterik (*) wordt gebruikt om een willekeurig aantal jokertekens aan te duiden, terwijl een vraagteken (?) Voor een enkel teken staat.
Haakjes kunnen ook worden gebruikt om patronen aan te duiden. Binnen een reeks haakjes kunt u limieten definiëren voor de tekens of mogelijke jokertekens. Door een reeks dubbele punten [::] op te leggen zowel voor als achter de haakjes, kunt u kiezen uit een handvol voorlopers. Waaronder [: Alnum:]
voor alfanumeriek en [: Alpha:]
alleen voor alfabetische tekens. Als u alleen naar doelnummers wilt kijken [:cijfer:]
werkt net zo goed.
Dit hele systeem lijkt abstract zonder voorbeelden, dus ik heb er een paar hieronder gegeven.
- een* - komt overeen met alle bestandsnamen die met de letter beginnen “een”
- foo * .txt - komt overeen met alle tekstbestanden die beginnen met de letters “foo”. Merk op dat dit alleen tekstbestanden zal retourneren, zelfs als u andere mappen hebt die met foo beginnen
- foto?? - komt overeen met alle bestanden en mappen die beginnen met de woordfoto en vervolgt met exact 2 tekens
- [Xyz]? - komt overeen met elke bestandsnaam die begint met x, y of z en wordt gevolgd door exact 1 extra teken
Ik denk dat je hier ter zake komt. Het wildcard-systeem is erg complex, het is zeker niet voor bangeriken. Verwacht niet dat je de capaciteit hier volledig begrijpt nadat je een dag in de terminal hebt doorgebracht. Het vergt veel oefening en herhaling om vertrouwd te raken met shell scripting en wildcard callouts. Bekijk de infopagina Tux Files voor nog meer voorbeelden en informatie.
Bestandscompressie en opslag
Archiveren en archiveren van bestanden is slechts een deel van de moderne computerervaring. Ik verzend regelmatig e-mail en download nieuwe .zip-archieven. Deze bevatten afbeeldingen, pictogrammen, bibliotheekcode, lettertypen, Photoshop-mockups en nog veel meer. Het archiveren van mappen verlaagt niet alleen de bestandsgrootte, maar maakt het transport ook een stuk eenvoudiger.
Wanneer u in Linux / Unix werkt, zijn er een paar commando's die u kunt gebruiken om gegevens te archiveren. De twee vaak aangeraakt zijn ritssluiting en gzip. De verschillen zijn niet erg extreem en zeker niet opmerkelijk genoeg om de ene boven de andere te eisen. Het zijn slechts verschillende mechanismen voor compressie, gegevensopslag en bestandsschema's.
Elk van deze opdrachten heeft een prachtige schotel met mogelijke argumenten. U kunt de volledige lijst bekijken via de Linux-informatiepagina van About op de opdracht zip. zip -r is mogelijk de meest bekende shell-instructie die staat voor het recursief ophalen van alle bestanden en samen zippen. Dit betekent als u een commando opgeeft zoals zip -r mijnmap nieuwarchief
je haalt alle bestanden uit mijn map en voegt ze toe aan een nieuw archief met de naam newarchive.zip. Zonder -r zou u elke afzonderlijke bestandsnaam moeten opgeven in een lijstindeling in de lijst [file1.jpg file2.jpg etc]. Over scheertijd gesproken!
Nu werkt het commando voor gzip erg op dezelfde manier en deelt veel van dezelfde argumenten. De keuze om gzip over zip te gebruiken is echt een persoonlijke en zal geen invloed hebben op uw bestandsstructuren. Als u bestanden tussen verschillende besturingssystemen verplaatst, raad ik aan bij .zip te blijven omdat dit meer wordt geaccepteerd door de Windows-community. Maar we leven in een tijdperk van overvloedige software en open source-projecten, dus het is niet waarheidsgetrouw om te zeggen dat Windows .gz-archieven niet aankan. Maar het bestandsformaat van het archief is gewoon niet zo populair.
Bij het ontvangen van gecomprimeerde archieven kunt u ze ook uitpakken in nieuwe mappen, alleen via de opdrachtregel. Beide uitpakken en gunzip zijn de tegenhangers van hun originele archiefopdrachten. Evenzo is de lijst met argumenten net zo lang, zo niet langer. De basis unzip-opdracht heeft echter alleen een bestandslocatie nodig om actie uit te voeren. Als u vertrouwd bent met het werken met archiefsoftware, moet deze methode in elke Mac OS X-omgeving exact hetzelfde zijn.
Werken als een supergebruiker
Als u veel met de terminal werkt, komt supergebruikerstoegang van pas. Vooral als een webontwikkelaar of blogger, zoals je zult merken dat toestemmingsfouten na de derde of vierde keer extreem irritant worden.
Het is zeker mogelijk om direct in te loggen op het root-account en daar eindopdrachten uit te voeren. Dit wordt echter als een slechte gewoonte in het Linux-domein beschouwd, omdat de root-gebruiker alleen in een noodgeval moet worden gebruikt om een systeemstoring op te lossen of te corrigeren. Of als u toevallig uw hoofdinlogwachtwoord vergeet!
Om als supergebruiker in het systeem te komen, heb je het root-wachtwoord nodig. Typ in je terminalvenster su en druk op Enter. Dit staat voor een vervangende gebruiker en zonder verdere argumenten wordt aangenomen dat u op zoek bent naar toegang tot de hoofdmap. Voer het wachtwoord in en druk op Enter. Je moet naar een nieuwe regel worden geleid root @ Uwcomputer
. Om terug te keren naar uw account gebruikt u de Uitgang
commando.
Dit werkt nu goed voor de meeste Linux / Unix-systemen. Maar terwijl u werkt aan een Linux-box met Ubuntu of een vergelijkbaar besturingssysteem, ziet u wijzigingen in de supergebruikersinterface. In plaats daarvan werken Ubuntu-gebruikers met een opdracht sudo
die supergebruikerstoegang vervangt voor slechts één enkele opdracht.
Dit betekent dat u niet als supergebruiker in terminal bent ingelogd, maar een opdracht als supergebruiker kunt uitvoeren door het voorvoegsel toe te voegen sudo
. Houd er rekening mee dat Ubuntu een besturingssysteem is dat de sudo
commando. De OS X-terminal van Apple is een ander systeem dat inspeelt op de sudo super user-opdracht. Nadat u op Enter hebt gedrukt, wordt u opnieuw gevraagd om uw rootwachtwoord in te voeren, waarna de opdracht wordt uitgevoerd en u naar een nieuwe regel terugkeert als deze succesvol is.
Eigendom nemen over bestanden
Nog een ander probleem met toestemmingen komt voort uit bestandstoegang. Ik kan me niet voorstellen hoe vaak ik heb gewerkt aan bestandswijzigingen, maar ik heb ze niet kunnen toepassen vanwege onvoldoende machtigingen. U zult eventuele eigendomsveranderingen onder root, indien mogelijk, willen uitvoeren.
Het bevel chown
voor verandering Eigenaar is redelijk eenvoudig en werkt in bijna alle Linux- en Unix-omgevingen. Voor Ubuntu-gebruikers moet u uitvoeren sudo
vóór chown
commando's, tenzij je toevallig bent ingelogd als root.
Er zijn slechts twee afzonderlijke argumenten vereist om met succes uit te voeren. Eerst moet u de gebruikersnaam invoeren die het bestandseigendom zal krijgen, gevolgd door een spatie en de bestandsdirectory. Het systeem zal werken vanuit uw huidige werkdirectory om het bestand te kiezen. Maar als je de algehele hiërarchie wilt omzeilen, kun je beginnen met root met een forward-slash in je URL.
Het systeem van bestandseigendom is veel effectiever van toepassing op serveronderhoud. Als u shell-toegang tot een server hebt, moet u zeker weten hoe u bestanden manipuleert en hoe u bestandspermissies overneemt. De installatie van veel voorkomende webscripts vereist bijvoorbeeld bewerkingen van de database-informatie. Door eigenaar te worden van deze bestanden kom je niet in gevaar wanneer een hacker de serverconsole binnengaat.
Alles samenvoegen
Nu met al deze nieuwe opdrachten zou je moeten gaan experimenteren in de console van je keuze. Een geweldige plek om te beginnen met het opbouwen van uw kennis is van wildcards en het selecteren van bestanden vanuit uw OS. Als gebruiker van DOS en Linux zou ik in eerste instantie willen voorstellen om eerst met lichtere commando's te oefenen, om geen schade te veroorzaken aan uw bestanden en mappen.
Er kunnen slechte dingen gebeuren met de rm
commando en enkele foutieve jokertekens. Als u van plan bent iets te verwijderen, probeer dan uw jokertekens te gebruiken ls
eerste. Hiermee wordt de lijst met bestanden geretourneerd die u wilt verwijderen en als alles er goed uitziet, kunt u de opdracht altijd meteen uitvoeren! In elk terminalvenster drukt u eenvoudig op de pijl-omhoog om uw laatste opdrachtinvoer terug te brengen. Verwijder het ls en vervang het door rm dan ben je klaar om te gaan!
Er is veel dat u kunt uitvoeren binnen de opdrachtregel. Maar er zijn ook veel dingen die je niet kunt. Houd je nederig met je gebruik en ga niet overboord alleen maar om de technologische koning te worden. U kunt de CLI (Command Line Interface) voor de meeste al uw prestatietaken gebruiken. Maar eerlijk gezegd zijn er veel dingen die u sneller vanuit een GUI-perspectief kunt doen. Als je onderzoek doet en met sommige commando's speelt, zul je snel zien welke taken goed presteren in de terminal en welke het beste kunnen worden bewaard voor een muis en toetsenbord.
12 Shell-opdrachten die alle bloggers moeten weten
1. Nested Folders verwijderen
Met de opdracht rm kunt u bestanden en mappen van uw harde schijf verwijderen (ontkoppelen). Maar hoe zit het met een heleboel geneste mappen? Vooral als elke mapset opeenvolgende bestanden en niet-overeenkomende gegevens bevat. De optie -r zal recursief door alle volgende bestanden en mappen bladeren om de gegevens en mappen te verwijderen.
Als u de optie -f toevoegt, dwingt dit de aanwijzing om binnen uw opdrachten te blijven en u niet om een dialoogvenster te vragen. Er is geen retouruitvoer en zal niet-bestaande bestanden in alle submappen overslaan. Het hele commando in actie kan er als volgt uitzien:
rmdir -r -f / home / u / documenten / mydir1 / 2009
2. Verbinding maken met een database
Wanneer u vaak een back-endsysteem van een website gebruikt, moet u ervoor zorgen dat er een veilige verbinding tot stand wordt gebracht. Dit wordt dubbel voor databaseverbindingen waar website- en gebruikersinformatie wordt opgeslagen. Maar als u met een lokale database-installatie werkt, kunt u waarschijnlijk wegkomen met veel minder beveiligingsvereisten.
Afhankelijk van het systeem dat u gebruikt, zal er een verschillende syntaxis zijn om aan te passen. De basisoproep om verbinding te maken met een database is nog steeds in het algemeen hetzelfde. U hebt de naam nodig van de database die u gebruikt, uw gebruikersnaam, wachtwoord en mogelijk de database-hostnaam (meestal localhost). Ik heb twee shell-opdrachten toegevoegd om verbinding mee te maken, één voor MySQL en de andere voor Sybase.
mysql -u mijngebruikersnaam -h localhost -p
Hier zou je gewoon op enter drukken zonder wachtwoord. Als de shell-opdracht met succes toegang heeft tot die database en host, vraagt het om uw wachtwoord. Voer dit in op de nieuwe regel en druk nogmaals op enter. MySQL verwelkomt u bij succes.
isql -U mijngebruikersnaam -P <Sybase is een ander geweldig voorbeeld van databasesoftware. U kunt toegang krijgen tot dit soort databases met de opdracht isql, vergelijkbaar met de bovenstaande mysql. Hier geeft u alleen een gebruikersnaam en wachtwoord op en roept u de gebruik opdracht om uw database te kiezen.
3. Maak een back-up van een database
Nu dat je bent verbonden met de database, zijn er veel opdrachten die je zou kunnen uitvoeren. In het ideale geval wilt u vasthouden aan eenvoudige SQL-procedures en niet direct nieuwe gebruikers of artikelen toevoegen. Maar overweeg eens om een back-up te maken van uw volledige databasestructuur Nou, de commando's zijn vrij ingewikkeld, maar met 15-30 minuten aan onderzoek kun je ze waarschijnlijk uitzoeken.
Sybase is veel ingewikkelder en vereist enkele zware shell-opdrachten. Als je de back-upscripts van Ed Barlow bekijkt, ben ik er zeker van dat je met zijn pakketten kunt werken zonder probleem. Hij schetst enkele basisoplossingen om alle databasetabellen te dumpen, foutlogboeken te dumpen, databasestatistieken, logboeken uit te voeren, enz. Het is redelijk robuust en werkt goed voor bijna alles wat u nodig zou hebben.
MySQL-databases zijn op dezelfde manier en vereisen een redelijk lang shellscript. De inhoud vereist het kiezen van een lokale map om elke back-up op te slaan en a te bellen voor loop in BASH. Dit doorloopt elke database en haalt alle tabellen eruit als een .gz-archiefbestand met
$ mysqldump
en$ GZIP
. De volledige code kan worden gedownload van het Shell Script-artikel van nixCraft gericht op MySQL-dumps. Bewerk eenvoudig uw database / login-informatie en sla op als mysqlbackup.sh ergens op uw harde schijf. U kunt dit handmatig uitvoeren of als alternatief a cron job voor elke dag, week, maand, enz.4. Een database herstellen
Nu komen we bij het herstellen van de back-up van een databasebestand. Dit is niet zo gecompliceerd als je zou denken, hoewel ik uit het uiterlijk van de vorige code begrijp waarom. Maar bedenk dat het een stuk eenvoudiger is om eerdere bestanden te uploaden dan om gegevens van een externe server te verbinden en neer te halen.
In Sybase doe je veel meer werk in de dop. Maar het basiscommando is
laad database dbname
. U kunt dit volgen met verdere opties, en natuurlijk moet u verbonden zijn met de database voordat dit werkt. Als u vastzit, kunt u het Sybase-documentatiebestand als referentiepunt gebruiken.Met MySQL hebt u slechts één enkele opdracht nodig als u al bent aangemeld. Of zelfs als u niet bent, kunt u verbinding maken en tegelijkertijd de restore starten. Dit komt omdat de back-up van elk MySQL-databasebestand in feite SQL-code is, die de database vanuit het niets kan reconstrueren. Dit is de reden waarom sommige back-ups enorm groot zijn en vaak te groot om via webinterface zoals phpMyAdmin te uploaden.
U kunt de opdracht mysql met een enkele regel oproepen. Net als hiervoor voer je -u en -p in, maar vul je alleen je in gebruikersnaam aangezien uw wachtwoord naderhand wordt gevraagd. De onderstaande code zou perfect moeten werken:
mysql -u gebruikersnaam -p database < /path/to/dump_file.shDe enige variabelen die u wilt vervangen, zijn gebruikersnaam, database en uw back-uppad. De gebruikersnaam en databasehost zijn hetzelfde als voorheen wanneer u verbinding maakte. U hoeft dus alleen maar te vinden waar uw databaseback-up is opgeslagen, zodat u deze kunt bijwerken.
5. Directe Shell-downloads
De
wget
commando is erg interessant en biedt veel opties. GNU wget is een niet-interactief hulpprogramma om bestanden van internet te downloaden. Dit omvat standaard HTTP-, HTTPS- en FTP-protocollen in de mix.Om een basisbestand te downloaden, typt u wget bestandsnaam waar bestandsnaam de locatie van uw bestand is. Dit kan alles online zijn zoals https://assets.hongkiat.com/uploads/v4s/n_logo.gif voor het Hongkiat .gif-logobestand. Als u een shellscriptbestand maakt met veel variabelen, kunt u tijdens het werk grote batchvideo's, afbeeldingen, muziek of andere inhoud op de achtergrond downloaden. En houd er rekening mee dat u hier jokertekens kunt gebruiken, zoals * en? om grote mappen met bestanden te trekken.
Nu wilt u mogelijk ook inhoud downloaden via FTP. Veel van de tijd zult u echter niet met openbare ftp-servers werken en heeft u een gebruikersnaam / wachtwoord nodig. De inlogsyntaxis is een beetje verwarrend, maar ik heb hieronder een klein voorbeeld toegevoegd.
wget ftp: // gebruikersnaam: [email protected]/files/folder/*.jpg6. Mappen comprimeren
We hadden iets eerder compressies bekeken, maar alleen in de beschrijving. Er zijn enkele zeer eenvoudige primitieve voorbeelden van bestandscompressie die u overal vanuit de opdrachtregel kunt oproepen. Ik raad aan om de zip-opdracht te gebruiken als je nieuw bent bij Shell, alleen omdat het Linux-systeem verwarrend kan worden. Als u gzip of een ander alternatief wilt gebruiken, voelt u zich dan vrij.
Wanneer u een volledige zipopdracht aanroept, wilt u alle bestanden in uw nieuwe archief opnemen. De tweede parameter van een zip-opdracht is de map die u wilt, of een korte lijst met te rippen bestanden. Als u de optie -r recursief toevoegt, doorloopt uw mapstructuur elk bestand. Hieronder is het perfecte voorbeeld van een kleine mapcompressie.
zip -r newfile_name.zip / pad / naar / inhoud / map7. Massa vinden en vervangen
Wanneer u een grote verzameling bestanden hebt, zult u ze vaak hebben gelabeld of genummerd in een vergelijkbaar patroon. Met een grote verzameling websitebanners kunnen ze bijvoorbeeld allemaal het voorvoegsel of achtervoegsel 'banner' bevatten. Dit kan in alle bestanden in massa worden vervangen door het opdracht shell sed.
sed is een stream-editor die wordt gebruikt om basisteksttransformaties en bewerkingen in bestanden uit te voeren. Het staat bekend als het meest efficiënte commando omdat het vrijwel onmiddellijk door een enkele directory zal gaan. Hieronder ziet u een voorbeeldcode met de opdracht.
sed -i's / abc / xyz / g '* .jpgDus hierboven zouden we matchen voor niet-bestaande bestanden, maar in ons voorbeeld willen we een reeks afbeeldingen vervangen. We kijken in de directory en zijn van plan alle .jpg-afbeeldingen die aanwezig zijn te vervangen abc en vervanger xyz. Met de optie -i kunnen we bestanden op hun plaats automatisch bewerken zonder back-upvereisten. Neem snel een kijkje op de sed-documentatie voor meer informatie.
8. Maak nieuwe bestanden
Het kan vervelend zijn om een hele stapel van dezelfde bestanden in één keer te maken. Als u een grote set documenten of tekstbestanden wilt maken zonder software te gebruiken, is de opdrachtregel een geweldig hulpmiddel. Overweeg enkele van de editors die u direct vanuit shell ter beschikking staan.
vi / vim
is mogelijk de beste en meest bruikbare editor voor Linux CLI. Er zijn andere zoals JOE-teksteditor. Je zou ook een bestand kunnen maken met de opdracht cat, hoewel je alleen de inhoud van het bestand wilt bekijken en niets wilt bewerken.Met vi hoeft u slechts één regel code te bellen. Ik heb de onderstaande code toegevoegd die gewoon een vi-opdracht is gevolgd door je nieuwe bestandsnaam. Zodra je in vi-editor bent, typ je 'i' om nieuwe tekst te bewerken en in te voegen. Als u een bestand wilt opslaan en afsluiten, drukt u op de esc-toets gevolgd door dubbele punt + x (: + x) en drukt u op Enter. Het is een vreemde combinatie, maar het is verschrikkelijk veilig en als je eenmaal de dingen onder de knie hebt, wil je nooit meer terug!
vi /home/you/myfile.doc9. Shell-netwerkhulpmiddelen
De commandoregel van de shell biedt nogal wat hulpmiddelen voor netwerken. De ping commando kan worden gebruikt gevolgd door een IP- of webadres om de status van een website te controleren. Er wordt een pakketaanvraag naar de server verzonden en als u een reactie ontvangt, zal backshell de tijd en servergegevens uitvoeren. Dit kan handig zijn om te controleren of een website down is of op dezelfde manier als uw internetverbinding verbroken is.
Als u uw huidige instellingen wilt controleren, belt u met ifconfig commando. Dit lijkt erg op de opdracht ipconfig in Windows DOS. Maar met shell ifconfig krijgt u veel meer opties voor het configureren en implementeren van aangepaste DNS-instellingen. Een zeer vergelijkbaar commando netstat is net zo nuttig voor het weergeven van uw huidige open poorten en netwerken.
10. Pakketbeheer
Bij het werken met software-installaties via Shell, werk je voornamelijk met 2 verschillende versies van Unix. RPM Package Manager (RPM) en Debian Manager (DEB) zijn de meest bekende versies. Deze worden op de hoogte gehouden van de nieuwste pakketten die u kunt downloaden van de dichtstbijzijnde mirror-site.
De commando's lijken erg op installeren op beide versies. yum en opm zijn de twee opdrachten gereserveerd voor de voormalige pakketbeheerder. Hun code volgt
yum command package-name
. Dus bijvoorbeeld:yum installeer pakketnaamVoor Debian / Ubuntu-gebruikers gebruikt u de Debian Package Manager. Wederom volgt de syntaxis een vergelijkbare indeling waarbij u de pakketbeheerder-ID, de opdracht, aanroept en deze allemaal volgt met een pakketnaam. De twee onderstaande voorbeelden zijn geformatteerd voor respectievelijk een installatie en een upgrade.
apt-get install pakketnaam apt-get upgrade mypackage111. Genereer een lijst met de grootste bestanden
Organisatie is wat ervoor zorgt dat u blijft draaien op alle uren van uw werksessies. Wanneer u de bestanden uit het oog begint te verliezen en merkt dat uw mappen te groot worden, is het tijd voor een aantal schoonmaakbeurten. De
ls
commando is erg handig in shell omdat het je een groter perspectief geeft in sommige van je mappen.Dit omvat het sorteren van specifieke soorten bestanden en bestandsindelingen. Als u de grootste bestanden in een willekeurige map op uw harde schijf wilt vinden, kunt u de onderstaande opdracht toepassen.
ls -lSrhEr zijn 4 afzonderlijke opties verbonden aan deze opdracht. -l wordt gebruikt om volledige uitvoergegevens te vermelden. -S sorteert de volledige lijst op bestandsgrootte, aanvankelijk van grootste naar kleinste. Door -r toe te passen keren we de sorteervolgorde om zodat de grootste bestanden in je uitvoer onderaan eindigen. Dit is goed, omdat het shell-venster je helemaal onderaan je uitvoeropdrachten laat staan, dus het is gemakkelijker om door de lijst te bladeren. -h staat gewoon voor door mensen leesbare uitvoergegevens zodat je de bestandsgrootte in megabytes (MB) ziet in plaats van bytes.
12. Maak een e-mail On-the-Fly
Als u software voor uw e-mailaccounts gebruikt, bespaart deze opdracht u veel tijd. Vaak weet u het e-mailadres van een persoon die u wilt verzenden, maar u wilt uw tijd niet besteden aan het openen van uw e-mailclient. de
mailto:
opdracht werkt precies hetzelfde vanaf de opdrachtregel als vanuit elke browser of website.Zelfs als u het adres dat u wilt verzenden niet kent, voegt u gewoon alles toe. [email protected] werkt goed! Of wees creatief met uw eigen inhoud. Hoe dan ook, nadat je deze hit hebt ingevoerd, open je een gloednieuw e-mailberichtvenster met je afzenderadres. Je kunt je onderwerp / lichaam en CC's in een handomdraai aanpassen aan je eigen behoeften.
mailto: [email protected]Externe bronnen
Om verder te gaan op de weg van shell scripting is veel geduld en toewijding vereist. Er zijn honderden opdrachten om te begrijpen en zoveel subcategorieën om mee te doen. Besteed wat tijd aan rommelen in een consolevenster en zie hoe je de snelle workflow leuk vindt. Hopelijk kunnen de onderstaande links meer informatie bieden om je op gang te houden met shell scripting binnen Linux en Mac OS X.
- Mijn Top 10 Shell-opdrachten
- Linux-opdrachten - een praktische referentiegids
- Omgaan met opdrachtregelargumenten
- 40 Handige Mac OS X-shellscripts en terminalopdrachten
- Linux-opdrachten en shell-opdrachten
- Linux / Unix Cheat Sheets - De ultieme verzameling
- Lijst met 175 Mac OS X Terminal-opdrachten
- Overstappen naar Ubuntu vanuit Mac OS X
Conclusie
Ik heb tijd doorgebracht met alle 3 de grote besturingssystemen en ik moet zeggen dat ze allemaal fantastisch zijn in hun eigen ogen. Maar als je van een Linux OS werkt, wordt de terminal net zo belangrijk als elke grafische gebruikersinterface. Ik vind het erg belangrijk om zelfs de meest elementaire opdrachten te herkennen en binnen de opdrachtregelinterface te werken om te oefenen.
Degenen onder u die nieuw zijn in het systeem zullen zeker obstakels tegenkomen. Dit is een normaal onderdeel van het leerproces, maar houd je verstand en geef nooit op! Bouw jezelf op om solide, realistische doelen te verwachten. Leren van shell-scripting zal in eerste instantie veel werk vergen. Maar binnen een week of twee had je een aantal basisprincipes onder de knie moeten hebben en de terminal vlekkeloos moeten gebruiken (nou ja, meestal). Als je geheimen of geweldige tips hebt voor het werken met de Linux / Unix CLI, deel ze dan alsjeblieft in het onderstaande discussiegebied.