In het afgelopen decennium is Linux gegroeid van een alternatief besturingssysteem voor enthousiastelingen tot een essentiële tool voor het aandrijven van enkele van de meest robuuste software-infrastructuren ter wereld.
Met de omvang van dergelijke diensten die elke dag groter worden, is ook de vraag naar mensen die bekwaam zijn in het beheer van deze systemen toegenomen. Met de Linux Hands On-serie proberen we een paar stappen dichter bij de reis naar dat niveau te komen.
Sinds de afgelopen twee weken hebben we de Linux-terminal vanaf de grond af aan behandeld. We begonnen met de basis Linux-commando's en Linux-installatie op een virtuele machine in het eerste deel en daarna bouwden we daarbovenop met de tussenliggende Linux-opdrachten en een korte intro over Linux-processen en hoe je ze kunt bekijken en doden in het tweede deel.
Voor deze week gaan we eindelijk ons spel opvoeren!
Wat ga je leren?
- Productiviteit verhogen met opdrachtaliasing
- Schijfgebruik controleren op basis van volumes en bestandstypen
- Bestanden downloaden via het netwerk
- Basisprincipes van netwerkprobleemoplossing
- Diensten en hoe ze te beheren
- Gebruikerstoegangscontrole/sessiebeheer
- Het systeem afsluiten en opnieuw opstarten
Deze week behandelen we de geavanceerde terminalopdrachten. Deze commando's draaien om dingen die je meestal nodig hebt tijdens systeembeheer, we hebben ook een aantal commando's die je zullen helpen je doorlooptijd te verkorten en je productiviteit te verhogen.
1. Opdrachtaliassen
Dus het allereerste punt dat we gaan behandelen, zijn aliassen en dit raakt het productiviteitsgedeelte van de post. Zo vaak zul je merken dat je af en toe een commando herhaalt. In deze situaties, de bevelgeschiedenistechniek die ik in het eerste deel heb behandeld. De opdrachtgeschiedenis zal opmerken dat het u daadwerkelijk helpt tijd te besparen door te voorkomen dat u de opdracht typt, het wordt gecompenseerd wanneer u scrolt. Met behulp van een opdrachtalias kunt u al dit gedoe vermijden. Aliasing is handig wanneer u te maken hebt met opdrachten die bijzonder moeilijk te typen zijn en wanneer u geen plug-in voor automatisch aanvullen op uw terminal gebruikt.
Laten we, voordat we aliassen maken, kijken hoe we ze kunnen weergeven. Een alias (in de context van Linux-terminal) is een afkorting voor een traditionele terminalopdracht. Dit is echter niet exclusief voor Linux-terminalopdrachten. U kunt bijna elk denkbaar commando een alias geven.
Hier is een voorbeeld. Voor het committen aan een git repo gebruiken we git commit met de -m vlag. Laten we zeggen dat u deze opdracht gemiddeld minstens 10 tot 20 keer per week gebruikt. Het hele ding typen heeft geen zin, hier komt aliasing om de hoek kijken. Door een alias zoals laten we zeggen gitcmt te gebruiken, bespaar je jezelf de moeite om het hele ding te typen. Tel deze besparing op over een paar maanden en jaren en je hebt een paar extra uren. Verbaast je niet, nietwaar?
Oké, laten we eens kijken hoe we aliassen kunnen controleren en maken.
Om de reeds bestaande aliassen op te sommen, geeft u gewoon de alias commando zonder vlaggen en druk op enter. En de lijst met aliassen wordt naar u teruggestuurd.
Deze aliassen zijn meestal globale aliassen op systeemniveau die van toepassing zijn op alle gebruikers van het systeem.

Nu we weten hoe we alle aliassen op een systeem kunnen zien, laten we doorgaan en er een maken.
Hier is de syntaxis om een alias te maken.
alias ALIASNAME="ACTUAL_COMMAND_NAME"
Dus wat we in ons geval gaan doen, is een alias hebben voor het echo-commando, alleen voor demonstratiedoeleinden.
Typ gewoon het volgende en druk op enter.
alias ec="echo"

Nu in plaats van te gebruiken echo, we kunnen gewoon typen ec gebruiken.
Houd er echter rekening mee dat deze alias slechts één sessie duurt, wat betekent dat als u de terminal sluit en opnieuw opent, deze niet langer zal werken. Om het permanent te maken, moet je je shell-configuratiebestand bewerken dat is opgeslagen op ~ / .bashrc
Open het bestand in nano, plaats de opdracht in dit bestand zoals weergegeven in de onderstaande schermafbeelding en sluit af.

Geef na het afsluiten het volgende commando:
source ~ / .bashrc

Zodra dit is gebeurd, is uw opdrachtalias permanent.
Laten we nu eens kijken hoe u een opdracht kunt unaliasen. Het tegenovergestelde effect wordt bereikt door de alias commando
Het alias commando zal niet alleen de alias uit de huidige sessie verwijderen, maar ook uit het shell-configuratiebestand.

2. waar is Commando
Vaak wanneer mensen software schrijven, onderhouden ze 2 verschillende omgevingen. Een ontwikkelomgeving die lijkt op de installatie van de productieserver en een normale lokale omgeving die aansluit bij de behoefte van de gebruiker. Om deze 2 ruimtes geïsoleerd/gescheiden van elkaar te houden, gebruiken de meeste mensen iets als Docker of zwerver, maar sommige mensen geven ook de voorkeur aan een handmatige aanpak. Als je in de tweede helft valt, is het vrij waarschijnlijk dat je dubbele binaire bestanden of dezelfde binaire bestanden met verschillende versies op dezelfde machine hebt. Dit volgende commando helpt je bij het opsommen van alle installaties van een bepaald binair bestand. Het commando heet whereis en het zal een lijst geven van de locatie waar een bepaald binair bestand samen met zijn documentatie is opgeslagen.
Hier is de syntaxis voor de waar is opdracht:
waar is BINARY_NAME
Nu we de syntaxis hebben gezien, gaan we kijken hoe we de opdracht whereis kunnen gebruiken:

Zoals je kunt zien, is de locatie van het git-binaire bestand op het systeem opgeslagen.
Deze opdracht, hoe simplistisch ook, zal enorm helpen als je compatibiliteitsproblemen tegenkomt tijdens het bouwen van iets.
3. service Commando:
Een langlopende operatie op de achtergrond wordt in Linux een service genoemd. Het Linux-besturingssysteem wordt geleverd met een groot aantal services die u kunt vinden door naar de map /etc/init.d te gaan. Hoewel we niet kunnen bespreken hoe u een aangepaste service kunt maken, omdat dat buiten het bestek van dit bericht valt, zou een eenvoudige zoekopdracht op StackOverflow zeker helpen om er een te maken. We zullen het echter hebben over het beheren van services. Waaronder het starten, stoppen met herstarten en het controleren van de status van de services.
De syntaxis van service commando zou als volgt zijn:
dienst SERVICE_NAME starten
Voor dit voorbeeld werken we met de sshd service die een beveiligde shell-server is van OpenBSD.
Om een service te starten gebruiken we service start gevolgd door de servicenaam (hier sshd).
dienst sshd starten
Laten we het hieronder in actie zien. En als er door op de enter-toets te drukken niets op de terminal verschijnt, betekent dit dat het met succes heeft gewerkt.

Laten we nu de status van dezelfde service controleren. Om dat te doen, gebruiken we de toestand optie samen met het service-commando. Zoals hieronder te zien is.
service sshd-status
Dit zou laten zien of de service actief is of niet, samen met andere nuttige details.

Nu we weten hoe we een service moeten starten en de status ervan kunnen controleren, gaan we kijken hoe we deze kunnen stoppen.
Om dit te doen gebruiken we de stop-optie samen met het service-commando. Als u nu de status controleert, zal deze u vertellen dat deze inactief is.
dienst sshd stoppen

Goed nu voor het laatste deel, we gaan de service herstarten. En om dit te doen, verrassingsverrassing, gebruiken we de herstartoptie.
dienst sshd restart

Laten we verder gaan.
4. df-opdracht
Aangezien dit deel van de serie gaat over het leren beheren van een Linux-systeem via de terminal, laten we een van de meest voorkomende taken leren die we uitvoeren tijdens het gebruik van een besturingssysteem. We gaan kijken hoe we de schijfruimte direct vanaf de terminal kunnen controleren. Hiervoor gebruiken we de opdracht df. Het staat voor schijf bestandssysteem en het wordt gebruikt om de hoeveelheid beschikbare schijfruimte op een bestandssysteem weer te geven.
Laten we beginnen met de syntaxis van het df-commando:
df [OPTIE]... [BESTAND]...
Laten we het df-commando in actie zien. Standaard, zonder dat er opties zijn opgegeven, zal het df-commando de grootte van individuele volumes weergeven in een formaat dat niet helemaal leesbaar is.

Dus om dat te voorkomen, gebruiken we de -h vlag, wat staat voor het door mensen leesbare formaat. Voer de volgende opdracht in:
df -h

En nu, zoals je kunt zien, heeft het de volumegrootte in Megabytes en Gigabytes. Er zijn een heleboel meer opties die het df-commando ondersteunt en ik raad u aan ze te bekijken met het man-commando.
5. du Commando
We hebben gezien hoe we de schijfruimtestatistieken voor onze machine kunnen bekijken, maar dat is slechts één stap naar volledige controle. Laten we eens kijken naar de ruimte die wordt ingenomen door afzonderlijke bestanden. Om dit te doen gebruiken we het du commando dat de schijfruimte schat die door bestanden wordt gebruikt.
Hier is de syntaxis voor het du-commando:
du [OPTIE]... [BESTAND]...
Standaard, zonder dat er opties zijn meegeleverd, kunnen we zien dat de opdracht de bestanden en ruimte weergeeft die ze innemen in een niet-leesbaar formaat.

Om er meer zin uit te halen, laten we de . gebruiken -h optie opnieuw, die de dingen in een voor mensen leesbaar formaat zal weergeven.
jij h
Zoals je hieronder kunt zien, heeft het nu de ruimte weergegeven die wordt ingenomen door alle soorten bestanden in eenheden die we kennen.

We kunnen ook doorgaan en controleren op de grootte die wordt ingenomen door een bepaald bestandstype in een map met behulp van de -s vlag. Laten we controleren op tekstbestanden in de huidige map.
du -s *.txt

6. passwd-opdracht
De volgende stap om volledige controle over het systeem te hebben, is het daadwerkelijk kunnen wijzigen van het wachtwoord. Ik bedoel, wat heb je aan een systeembeheerder als hij buitengesloten wordt van zijn eigen computer, toch? cool, dus we zullen kijken hoe we het wachtwoord kunnen wijzigen en hiervoor gebruiken we de passwd opdracht.
Hier is de syntaxis voor de opdracht passwd:
passwd [OPTIE] [GEBRUIKER]
En nu gebruiken we het passwd-commando als volgt:
passwd

Het is duidelijk dat Linux en Unix om veiligheidsredenen het wachtwoord niet in de vorm van sterretjes op de console tonen, want door de lengte van een wachtwoord te leren kennen, kun je 1 stap dichter bij brute force komen, maar geloof me op mijn woord en probeer het, het werkt.
Goed, laten we verder gaan.
7. wget-opdracht
Laten we nu eens kijken hoe u bestanden rechtstreeks vanaf uw terminal kunt downloaden. Als je dit al tegen jezelf zegt "is er iets dat hij voor de gebruikersinterface gaat achterlaten?", bedankt, maar ik zal proberen het niet te doen.
Om bestanden van internet te downloaden, gebruiken we de opdracht wget, wat staat voor web get. En het is een opdrachtregelprogramma om het bestand via een netwerk te downloaden. Het is heel gemakkelijk om het wget-commando te gebruiken. U hoeft alleen de URL naar het te downloaden bestand op te geven na de wget-opdracht.
Omwille van de structuur, hier is de syntaxis:
wget-URL_OF_FILE
En hier is een voorbeeldgebruik.

Wat interessant is aan wget is dat het de download kan hervatten als het mislukt vanwege een netwerkprobleem of andere redenen.
8 wie beveelt
Voor een systeembeheerder is toegangscontrole een andere belangrijke rol. Ze moeten de toegang tot het hoofdsysteem beheren en de activiteiten controleren en bewaken van degenen die momenteel zijn ingelogd. Deze volgende opdracht helpt u te controleren wie er momenteel op het systeem is ingelogd. Het commando heet die en hier is de syntaxis ervoor.
wie [ OPTIE ]... [ BESTAND ] [ ben ik ]
Laten we eens kijken hoe het who-commando werkt:

Omdat ik nu op een machine voor één gebruiker werk en alleen ik deze nu gebruik, ben ik de enige gebruiker die je in de schermafbeelding kunt zien. Maar ervan uitgaande dat u een productieserver beheert met meerdere 100 gebruikers die tegelijkertijd zijn ingelogd, dan zou u ze op dezelfde lijst zien. Zorg ervoor dat u alle beschikbare opties test voor wie het man-commando gebruikt.
9. ping-opdracht
Akkoord. Met deze volgende opdracht controleren we of een externe host online is of niet. Hiervoor gebruiken we het ping-commando. In de meest primitieve technische uitleg betekent dit dat het commando zal verzenden ICMP ECHO_REQUEST pakketten naar de host om de beschikbaarheid te controleren. Als de host beschikbaar is, reageert deze met een bevestiging en als dat niet het geval is, worden de pakketten verwijderd. Laten we eens kijken hoe we het ping-commando kunnen gebruiken.
De syntaxis is vrij eenvoudig.
ping [-LRUbdfnqrvVaAB] [-c count] [-m mark] [-i interval] [-l preload] [-p pattern] [-s packetsize] [-t ttl] [-w deadline] [-F flowlabel] [-I interface] [-M hint] [-N nioption] [-Q tos] [-S sndbuf] [-T tijdstempel optie] [-W timeout] [hop ...] bestemming
En hier is een voorbeeldgebruik.
ping google.com

Deze opdracht wordt meestal gebruikt bij het oplossen van netwerkproblemen. De uitvoer van de ping-opdracht bevat een aantal verschillende statistieken. Ten eerste bevat het de ICMP volgnummer dat het pakketnummer vertelt. Daarnaast bevat het ook de TTL veld dat de levensduur van een pakket specificeert, dwz het aantal routers waarnaar het kan springen voordat het daadwerkelijk wordt weggegooid.
10. afsluitopdracht
Oké, we zijn eindelijk aan het einde van dit deel. Laten we deze formeel afsluiten door te leren hoe we het systeem kunnen afsluiten vanaf de terminal. We zullen ook zien hoe u het systeem rechtstreeks vanaf de terminal zelf opnieuw kunt opstarten. Aangezien dit commando de machine daadwerkelijk afsluit, zal ik een demo op mijn server laten zien, waartoe ik toegang zal krijgen via een beveiligde shell via mijn hostmachine. Hier is de syntaxis voor de opdracht shutdown:
shutdown [-akrhPHfFnc] [-t sec] tijd [bericht]
Om de machine uit te schakelen, geven we gewoon de stillegging commando zonder opties. En om het opnieuw te starten, kunt u de -r vlag. Zo zou het eruit zien met de -r vlag.
afsluiten -r

En goed, er is eigenlijk niet veel te "zien" in de demo, behalve het feit dat je systeem zou afsluiten. Je kunt de video hierboven bekijken, waar ik laat zien dat mijn server daadwerkelijk wordt uitgeschakeld na de uitvoering van de opdracht.
Conclusie
Oké, mensen, we zijn aan het einde gekomen van deel 3 van de Linux Hands On-serie. Deel 1 behandelde de basis, dan bouwden we er bovenop in Deel 2 en in deel 3 hebben we ons gericht op het systeembeheeraspect van Linux. Zoals altijd raad ik je ten zeerste aan om deze geavanceerde Linux-terminalopdrachten uit te proberen in plaats van alleen het bericht te lezen of de video's te bekijken. Een van de dingen die ik zeer hoog in het vaandel heb, is vaardigheid en dat komt met uitgebreide oefening. Zorg ervoor dat je dat doet en als je fouten tegenkomt, of een vraag hebt, schrijf ons dan in de comments of op Twitter. Ik zie je volgende week weer met het laatste deel van deze serie en jongen, wat wordt het een leuke. Terwijl ik deel 4 ga opstellen, neem wat tijd en oefen deze commando's. Tot de volgende keer! Veel plezier met coderen!
laat een reactie achter
Heb je iets te zeggen over dit artikel? Voeg je commentaar toe en start de discussie.