Zoeken op website

Handige opdrachten om een opdrachtregelchatserver te maken en ongewenste pakketten in Linux te verwijderen


Hier zijn we dan met het volgende deel van Linux Command Line Tips en trucs. Als je ons vorige bericht over Linux Tricks hebt gemist, kun je het hier vinden.

  1. 5 Linux-opdrachtregeltrucs

In dit bericht introduceren we 6 opdrachtregeltips, namelijk het maken van Linux-opdrachtregelchat met behulp van de Netcat-opdracht, het direct toevoegen van een kolom vanuit de uitvoer van een opdracht, verwijder weespakketten van Debian en CentOS, haal lokale en externe IP op vanaf de opdrachtregel, krijg gekleurde uitvoer in de terminal en decodeer verschillende kleurcodes en als laatste maar niet de minste hashtags-implementatie in de Linux-opdrachtregel. Laten we ze een voor een bekijken.

1. Maak een Linux Commandline Chat Server

We maken allemaal al heel lang gebruik van de chatservice. Wij zijn bekend met Google chat, Hangout, Facebook chat, Whatsapp, Hike en diverse andere applicaties en geïntegreerde chatdiensten. Weet je dat het Linux nc-commando van je Linux-box een chatserver kan maken met slechts één opdrachtregel.

Wat is nc-commando in Linux en wat het doet?

nc is de afschrijving van het Linux netcat-commando. Het hulpprogramma nc wordt vaak Zwitsers zakmes genoemd, gebaseerd op het aantal ingebouwde mogelijkheden. Het wordt gebruikt als foutopsporingstool, onderzoekstool, lezen en schrijven naar een netwerkverbinding met behulp van TCP/UDP, DNS forward/reverse-controle.

Het wordt prominent gebruikt voor poortscannen, bestandsoverdracht, achterdeur- en poortluisteren. nc heeft de mogelijkheid om elke lokale ongebruikte poort en elk lokaal netwerkbronadres te gebruiken.

Gebruik de opdracht nc (op server met IP-adres: 192.168.0.7) om direct een berichtenserver op de opdrachtregel te maken.

nc -l -vv -p 11119

Uitleg van de bovenstaande opdrachtschakelaars.

  1. -v: betekent uitgebreid
  2. -vv : uitgebreider
  3. -p : Het lokale poortnummer

U kunt 11119 vervangen door een ander lokaal poortnummer.

Voer vervolgens op de clientcomputer (IP-adres: 192.168.0.15) de volgende opdracht uit om de chatsessie naar de machine te initialiseren (waar de berichtenserver actief is).

nc 192.168.0.7 11119

Opmerking: u kunt de chatsessie beëindigen door op de ctrl+c-toets te drukken en ook nc-chat is een één-op-één-service.

2. Waarden in een kolom optellen in Linux

Hoe u de numerieke waarden van een kolom, gegenereerd als uitvoer van een opdracht, direct in de terminal kunt optellen.

De uitvoer van het ‘ls -l‘ commando.

ls -l

Merk op dat de tweede kolom numeriek is, wat het aantal symbolische links vertegenwoordigt, en de vijfde kolom numeriek is, wat de grootte van het bestand vertegenwoordigt. Stel dat we de waarden van de vijfde kolom meteen moeten optellen.

Vermeld de inhoud van de vijfde kolom zonder iets anders af te drukken. We zullen hiervoor het commando ‘awk’ gebruiken. ‘$5‘ vertegenwoordigt 5e kolom.

ls -l | awk '{print $5}'

Gebruik nu awk om de som van de uitvoer van de 5e kolom af te drukken door deze in een pipelining te plaatsen.

ls -l | awk '{print $5}' | awk '{total = total + $1}END{print total}'

Hoe weespakketten in Linux verwijderen?

Wees pakketten zijn pakketten die worden geïnstalleerd als afhankelijkheid van een ander pakket en die niet langer nodig zijn wanneer het originele pakket wordt verwijderd.

Stel dat we een pakket gtprogram hebben geïnstalleerd dat afhankelijk was van gtdependency. We kunnen gtprogram niet installeren tenzij gtdependency is geïnstalleerd.

Als we gtprogram verwijderen, wordt gtdependency niet standaard verwijderd. En als we gtdependency niet verwijderen, blijft het een Orpahn-pakket zonder enige verbinding met een ander pakket.

yum autoremove                [On RedHat Systems]

apt-get autoremove                [On Debian Systems]

Je moet weespakketten altijd verwijderen om de Linux-box gevuld te houden met alleen de noodzakelijke dingen en niets anders.

4. Hoe u een lokaal en openbaar IP-adres van de Linux-server kunt verkrijgen

Om uw lokale IP-adres te verkrijgen, voert u het onderstaande one-liner-script uit.

ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:

Je moet ifconfig geïnstalleerd hebben, zo niet, apt of yum de vereiste pakketten. Hier gaan we de uitvoer van ifconfig pijplijnen met het grep commando om de string “intel addr: te vinden.

We weten dat de opdracht ifconfig voldoende is om het lokale IP-adres uit te voeren. Maar ifconfig genereert nog veel meer uitvoer en onze zorg hier is om alleen een lokaal IP-adres te genereren en niets anders.

ifconfig | grep "inet addr:"

Hoewel de uitvoer nu meer aangepast is, hoeven we alleen ons lokale IP-adres te filteren en niets anders. Hiervoor zullen we awk gebruiken om de tweede kolom alleen af te drukken door deze te pipelinen met het bovenstaande script.

ifconfig | grep “inet addr:” | awk '{print $2}'

Uit de bovenstaande afbeelding blijkt duidelijk dat we de uitvoer sterk hebben aangepast, maar nog steeds niet wat we willen. Het loopback-adres 127.0.0.1 staat nog steeds in het resultaat.

We gebruiken de vlag use -v met grep, waardoor alleen de regels worden afgedrukt die niet overeenkomen met de regels die in het argument zijn opgegeven. Elke machine heeft hetzelfde loopback-adres 127.0.0.1, dus gebruik grep -v om de regels af te drukken die deze string niet hebben, door deze te pipelinen met bovenstaande uitvoer.

ifconfig | grep "inet addr" | awk '{print $2}' | grep -v '127.0.0.1'

We hebben bijna de gewenste uitvoer gegenereerd. Vervang gewoon de string (addr:) vanaf het begin. We zullen de opdracht cut gebruiken om alleen kolom twee af te drukken. De kolom 1 en kolom 2 zijn niet gescheiden door een tab, maar door (:), dus we moeten een scheidingsteken (-d gebruiken ) door de bovenstaande uitvoer te pipelinen.

ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:

Eindelijk! Het gewenste resultaat is behaald.

5. Linux-terminal kleuren

Mogelijk hebt u gekleurde uitvoer in de terminal gezien. U weet ook dat u gekleurde uitvoer in de terminal moet in-/uitschakelen. Als dit niet het geval is, kunt u de onderstaande stappen volgen.

In Linux heeft elke gebruiker het '.bashrc' bestand, dit bestand wordt gebruikt om je terminaluitvoer af te handelen. Open en bewerk dit bestand met de editor van uw keuze. Merk op dat dit bestand verborgen is (de punt aan het begin van het bestand betekent verborgen).

vi /home/$USER/.bashrc

Zorg ervoor dat de volgende regels hieronder geen commentaar bevatten. dat wil zeggen, het begint niet met een #.

if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dirc$
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

Eenmaal gedaan! Opslaan en afsluiten. Om de wijzigingen door te voeren, logt u uit en logt u opnieuw in.

Nu zult u zien dat bestanden en mappen in verschillende kleuren worden weergegeven, afhankelijk van het type bestand. Voer de onderstaande opdracht uit om de kleurcode te decoderen.

dircolors -p

Omdat de uitvoer te lang is, kunnen we de uitvoer met minder commando's pijplijnen, zodat we de uitvoer scherm voor scherm krijgen.

dircolors -p | less

6. Linux-opdrachten en -scripts hashen

We gebruiken hashtags op Twitter, Facebook en Google Plus (misschien op andere plaatsen, dat heb ik niet gemerkt). Deze hashtags maken het voor anderen gemakkelijker om naar een hashtag te zoeken. Zeer weinigen weten dat we hashtag kunnen gebruiken in de Linux-opdrachtregel.

We weten al dat # in configuratiebestanden en de meeste programmeertalen wordt behandeld als commentaarregel en wordt uitgesloten van uitvoering.

Voer een opdracht uit en maak vervolgens een hashtag van de opdracht, zodat we deze later kunnen vinden. Stel dat we een lang script hebben dat is uitgevoerd in punt 4 hierboven. Maak hiervoor nu een hashtag aan. We weten dat ifconfig kan worden uitgevoerd door een sudo- of root-gebruiker en dus als root fungeert.

ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d: #myip

Het bovenstaande script is gehasht met ‘mijnip‘. Zoek nu naar de hashtag in reverse-i-serach (druk op ctrl+r), in de terminal en typ ‘mijnip‘. U kunt het vanaf daar ook uitvoeren.

U kunt voor elke opdracht zoveel hashtags maken en deze later terugvinden met behulp van reverse-i-search.

Dat is het voor nu. We hebben hard gewerkt om interessante en deskundige inhoud voor u te produceren. Wat vind jij van hoe het met ons gaat? Elke suggestie is welkom. U kunt in het onderstaande vak reageren. Blijf verbonden! Een pluim.