Hur man Använder Kommandot i Linux

0
370

Ja kommando verkar för enkelt för att vara till någon praktisk användning, men i den här guiden kommer vi att visa dig sin ansökan och hur man kan dra nytta av sin uppdämda positivitet i Linux och macOS.

Ja Kommandot

Ja kommando är en av de enklaste kommandona i Linux och andra Unix-liknande operativsystem som macOS. Och med enkel, vi menar enkla i dess användning och dess genomförande. Källkoden för den ursprungliga versionen släpptes i System 7 Unix och skriven av Ken Thompson—uppgår till endast sex rader kod.

Men skriver inte det för att vara en liten enkel kommando. Det kan användas i några intressanta och användbara sätt.

Vad Behöver ja Göra?

De används utan parametrar på kommandoraden, ja kommandot beter sig som om du skulle skriva “y” och tryck Enter, om och om (och om och om) igen. Mycket snabbt. Och det kommer att fortsätta att göra så tills du trycker på Ctrl+C för att avbryta den.

ja

I själva verket, ja kan användas för att upprepade gånger för att generera ett meddelande som du väljer. Skriv helt enkelt ja, en plats, den sträng som du vill använda, och tryck sedan på Enter. Detta används ofta för att orsaka ja för att skapa en output stream av “ja” eller “nej” – strängar.

ja ja

ja vad du vill

Men Vad Är Det?

Utdata från ja kan ledas in i andra program eller skript.

Låter detta bekant? Du börjar en lång process som körs och steg bort, och lämnar det till att köra. När du återvänder till din dator, processen inte klar alls. I din frånvaro, det har ställde en fråga till dig och satt och väntade på ett “ja” eller “nej” svar.

Om du i förväg vet att alla dina svar kommer att vara positiva (“ja” eller “y”) eller negativ (“nej” eller “n”) som du kan använda för ja till att ge dessa svar för dig. Din långa processen kommer sedan att köras till slutförande utan uppsikt med ja ge svar på alla frågor processen frågar.

Hjälp ja Med Skript

Titta på följande Bash shell script. (Vi måste föreställa sig att detta är en del av en mycket större skript som kommer att ta lång tid att köra.)

#!/bin/bash

# …
# i mitten av några långa manus
# få ett svar från användaren
# …

echo “Är du glad att fortsätta? [y,n]”
läs ingång

# fick vi en ingående värde?
if [ “$in” == “” ]; then

echo “Ingenting var som anges av användaren”

# var det ett y eller ett ja?
elif [[ “$in” == “och” ]] || [[ “$in” == “ja” ]]; then

echo “Positiv respons: $input”

# behandla något annat som ett negativt svar
annat

echo “negativa svar: $input”

fi

Detta skript frågar en fråga och väntar på ett svar. Det logiska flödet i skriptet beslutas av indata från användaren.

  • Ett “ja” eller “y” visar på en positiv reaktion.
  • Alla andra insatsvaror som är anses vara ett negativt svar.
  • Trycka på Enter utan mata in text gör ingenting.

För att testa detta, kopiera manus till en fil och spara den som long_script.sh. Använd chmod för att göra den körbar.

chmod +x long_script.sh

Kör skriptet med följande kommando. Prova att ge “ja”, “y”, och något annat som indata, bland annat att trycka på Enter utan mata in text.

./long_script.sh

För att få ja till att ge vårt svar till skriptet fråga, rör produktionen från ja till skriptet.

ja | ./long_script.sh

Vissa manus är mer rigida i sina krav och accepterar endast hela ord “ja” som ett positivt svar. Kan du ge ett “ja” som en parameter för att ja, som följer:

ja ja | ./long_script.sh

Inte Säga ja Utan att Tänka Igenom Det

Du måste vara säker på att den ingång du ska mata in i ett skript eller program som definitivt kommer att ge dig det resultat du förväntar dig. För att kunna fatta det beslutet, du måste veta vilka frågor och vad ditt svar bör vara.

Logiken i skriptet, kommando, program eller kanske inte motsvarar dina förväntningar. I vårt exempel skript, frågan kan ha varit “vill du sluta? [y,n].” Om så hade varit fallet, ett negativt svar skulle ha gett skript för att gå vidare.

Du måste vara bekant med manus, kommando eller program innan du glatt röret ja till det.

Hjälp ja Med Kommandon

I sin linda, ja skulle användas med andra Linux-kommandon. Sedan dess har de flesta av de andra Linux-kommandon har sina egna sätt att köra utan mänsklig interaktion. ja är inte längre krävs för att uppnå detta.

Låt oss ta Ubuntu pakethanteraren apt-get som ett exempel. För att installera ett program utan att behöva trycka “y” halvvägs genom installationen, ja skulle ha använts enligt följande:

ja | sudo apt-get install fortune-mod

Samma resultat kan uppnås med -y (antar ja) alternativet apt-get:

sudo apt-get -y install fortune-mod

Du kommer att se att apt-get inte ens be sin vanliga “vill du fortsätta? [Y/n]” fråga. Det bara antog att svaret skulle vara “ja”.

På andra Linux-distributioner är situationen den samma. På Fedora du skulle ha använt denna typ av paket manager kommandot på en gång:

ja | yum install fortune-mod

Den dnf package manager har ersatt yum och dnf har sin egen -y (antar ja) alternativ.

dnf -y installera fortune-mod

Detsamma gäller cp, fsck och rm. Dessa kommandon var och en har sina egna -f (kraft) eller -y (antar ja) alternativ.

Så verkar det inte som att ja har förpassats till att bara jobba med manus? Inte riktigt. Det finns några knep i att den gamla hunden ännu.

Några Ytterligare ja Tricks

Du kan använda ja med en sekvens av siffror som genereras av följande punkter, för att styra en slinga av upprepade handlingar.

Denna one-liner är ett eko av det genererade siffror till terminal-fönstret och sedan samtal sova i en sekund.

I stället för att bara upprepa siffror till terminal-fönstret, kan du ringa ett annat kommando eller skript. Att kommandot eller skriptet inte ens behöver använda siffror, och de är bara där för att kick-starta varje cykel av slingan.

ja, “$(seq 1 20)” | läsa medan siffran; do echo siffra, sova 1; gjort

Ibland är det bra att ha en stor fil för att testa med. Kanske du vill öva på att använda zip-kommando, eller om du vill ha en stor fil för att testa FTP-uppladdningar med.

Du kan snabbt skapa stora filer med ja. Allt du behöver göra är att ge det en lång sträng av text du vill arbeta med och omdirigera utdata till en fil. Gör inga misstag; de filerna kommer att växa snabbt. Vara redo att trycka på Ctrl+C på några sekunder.

ja långa raden av meningslösa text för filen utfyllnad > test.txt
ls -lh test.txt
wc test.txt

Den fil som genereras här tog ungefär fem sekunder på att testa maskinen används till forskning denna artikel. ls rapporter om att det är 557 Mb i storlek och wc berätta för oss att det finns 12,4 miljoner rader i det.

Vi kan begränsa storleken på filen genom att bland annat chef i vår kommandosträng. Vi tala om hur många rader som ska ingå i filen. De -50 innebär huvud låter bara 50 linjer genom att den test.txt fil.

ja långa raden av meningslösa text för filen utfyllnad | head -50 > test.txt

Så snart det finns 50 rader i test.txt fil, kommer processen att sluta. Du behöver inte använda Ctrl+C. Det kommer till en graciös stopp på sin egen vilja.

wc rapporter om att det är exakt 50 rader i filen, 400 ord och det är 2350 byte i storlek.

Även om det fortfarande är användbara för utfodring svar till lång-kör skript (och några andra tricks), ja kommandot inte kommer att vara en del av din dagliga verktygslåda av kommandon. Men när du behöver det, du kommer att upptäcka att det är enkelheten själv—och alla i sex rader med gyllene koden.