skapa ett sh shell-script i linux

Permalänk
Medlem
Skrivet av nm96:

har filen körts utifrpn det du ser i terminalen orp?

Om `echo $?` skriver ut 0 då har programmet avslutat utan fel, allt annat än 0 är en typ av "felkod".

Permalänk
Kontot avslutas

Tack för er hjälp. Har lärt mig navigera bättre med cd ( förstår att jag letade efter kataloger och filer i kataloger där de inte fanns och att jag var tvunget att gå tillbaka till en katalog som hade mapparna och filerna som jag försökte gå in i) och att filer, saker och kommandon kan ha exekverats även om terminalen inte ger nåt svar på ett kommando.

Permalänk
Medlem

Välkommen i gänget @nm96 Ja, cd och ls är dina närmaste vänner och det är inte alls ovanligt att dessa används i bash-script. Ta nu nästa steg framåt, det finns sååå mycket mera att lära
TIPS: Var observant på vad bash erbjuder, och vad dina script erbjuder, de komplmenterar varandra i allra högsta grad i en enhetlig miljö.

Permalänk
Rekordmedlem

I win används inte bara mappar utan även bibliotek som samlar mappar, Dokument, Bilder och en del annat är alltså inte mappar utan bibliotek som kan innehålla flera olika mappar.
Om man högerklickar på en mapp så får man ett val att "ta med mapp i bibliotek" och där kan man lägga in valfri mapp tex i Dokument-biblioteket.
Dokument har alltså en sökväg och Dokument innehåller en mapp som har en annan sökväg men Dokument kan alltså innehålla flera olika mappar som har olika sökvägar och olika innehåll men allt visas under Dokument.
Ett bibliotek samlar länkar till den verkliga platsen datan lagras på så det gäller att hålla reda på sökvägarna och de kan bli mer svåröverskådliga om man blandar in bibliotek.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

Se till att inte heller använda dig av sudo. Om du bara håller dig till din egen katalog och gör filoperationer där så ska du absolut _inte_ behöva använda sudo. Vad som händer är att du exempelvis skapar mappar och filer som ägs av root:root.. Kontentan är att du kommer få felmeddelanden som lätt misstas för att filer/kataloger inte finns.

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Kontot avslutas

Tack Dimman och tack för din ärlighet och konstruktiva kritik.

Permalänk
Kontot avslutas

vad är sudo exakt.

En fråga som jag googlat men inte fattar. Borde kanske fatta den men gör inte det. Är sudo bara en användare, bara en grupp eller är sudo både en användare och grupp? Inlämning 3 i kursen kräver nog kanske att jag kan det för ska avgöra vilken anävndare som gör vad som osv. Är det alltid användaren sudo som har gjort ett kommando om man skriver sudo före ett kommando och inte står som root-användare? eller är det sudo och användare x? Om man står som root och går ett kommando med sudo, är det både användare sudo och root som gör kommandot eller bara root?

Permalänk
Kontot avslutas

användare, vad, resultat och varför

sudo echo ”Hello World” | tee /tmp/del3/a3/f1
Användare: sudo och deltva.
Vad: skriva Hello World i terminal och i fil f1 i katalog /tmp/del3/a1/f1. sudo skriver ut kommandot echo och deltva skriver ut kommandot tee.
Resultat: "Hello World" skrivs ut i terminalen men inte i fil f1.
Varför: Tee lägger till innehåll i någon mapp, katalog eller fil i linux-katalogen som i terminalen anges med åtföljande sökväg/ katalog som beskriver i vilken fil eller katalog som innehållet ska läggas till i. Tee gör även att innehåll skrivs ut och kan ses i terminalen.
Pipe-symbolen ”|” gör att man kan exekvera kommandon som annars normalt inte går att köra, exekvera och använda i kommandoskalet. Pipe gör även att man kan sammankoppla flera olika kommandon och köra dem tillsammans på en gång. Pipe gör t.ex. att de olika kommandona i ovannämnda och punktade kommandorad (som echo och tee) kan länkas samman och köras tillsammans på en och samma gång i en ordning där det ena kommandots input blir det andra kommandots output.
Bara användare root och grupp root får skriva i fil f1. Därför kan inte sudo kringgå root här för bara gruppen root får skriva i filen.

Vad är rätt och fel av det som jag har skrivit? Har googlat och läst avsedd teori för uppgift men fattar ej och vi fick ta hjälp som sagt.

Permalänk
Kontot avslutas

*ägare root menar jag, inte användare

Permalänk
Medlem
Skrivet av nm96:

En fråga som jag googlat men inte fattar. Borde kanske fatta den men gör inte det. Är sudo bara en användare, bara en grupp eller är sudo både en användare och grupp? Inlämning 3 i kursen kräver nog kanske att jag kan det för ska avgöra vilken anävndare som gör vad som osv. Är det alltid användaren sudo som har gjort ett kommando om man skriver sudo före ett kommando och inte står som root-användare? eller är det sudo och användare x? Om man står som root och går ett kommando med sudo, är det både användare sudo och root som gör kommandot eller bara root?

sudo är varken en user eller grupp, det är ett kommando för att ge dig behörigheter som annan användre (oftast root) med regler som är specade i /etc/sudoers

Läs dessa:

https://sv.wikipedia.org/wiki/Sudo

https://blog.desdelinux.net/sv/cual-es-la-diferencia-entre-su...

Permalänk
Kontot avslutas

Tack Linus ska göra det.
touch /tmp/del3/a1/f1 Användare: deltva.
Vad: Skapa tom fil /tmp/del3/a1/f1 om den inte existerar.
Resultat: Filen skapas inte. Terminalen skriver: touch: cannot touch '/tmp/del3/a1/f1': Permission denied Varför: Användare deltva har inte rättighet att skriva i katalog /tmp/del3/a1 eller katalog /tmp/del3, utan root har det.

sudo touch /tmp/del3/a3/f1
Användare: root. Vad: Skapa tom fil i katalog /tmp/del3/a3 om den inte existerar. ◦ Resultat: Filen skapas utan problem. ◦Varför: För att touch skapar tom fil. För att trots att användare deltva inte har rätt att skriva i katalog /tmp/del3 eller /tmp/del3/a3 har deltva lagts till i gruppen sudo och därför kan användare deltva använda sig av sudo för att kringgå kravet på att man måste vara root för att få skriva i tmp/del3 och /tmp/del3/a3.

sudo echo ”Hello World” | tee /tmp/del3/a3/f1 ◦ Användare: root. ◦ Vad: Skriva ut orden Hello World i terminalen och i fil f1 i katalog /tmp/del3/a3. ◦ Resultat: Terminalen skriver ut ”Hello World” i terminalen men jag kan inte öppna f1 för att se om ”Hello World har skrivits ut där. ◦ Varför: Tee lägger till innehåll i någon mapp, katalog eller fil i linux-katalogen som i terminalen anges med åtföljande sökväg/ katalog som beskriver i vilken fil eller katalog som innehållet ska läggas till i. Tee gör även att innehåll skrivs ut och kan ses i terminalen. Pipe-symbolen ”|” gör att man kan exekvera kommandon som annars normalt inte går att köra, exekvera och använda i kommandoskalet. Pipe gör även att man kan sammankoppla flera olika kommandon och köra dem tillsammans på en gång. Pipe gör t.ex. att de olika kommandona i ovannämnda och punktade kommandorad (som echo och tee) kan länkas samman och köras tillsammans på en och samma gång i en ordning där det ena kommandots input blir det andra kommandots output. Varken användare deltva, ägare root eller grupp root får öppna fil f1. Därför kan inte sudo kringgå root här för användare deltva, ägare root och grupp root får inte öppna fil f1 ens när man gör sig till root användare med sudo för root får inte heller öppna f1.

Vad stämmer och stämmer inte av det som jag har skrivit här över? Nåt som inte har förstått och borde lära mig för att svara rätt? Kunde iaf ändra med chmod, chgrp och chown som man skulle, alltid nåt
hjälp för er:
deltva@DESKTOP-FUV95TB:/tmp/del3$ ls -la
total 16
drwxr-xr-x 4 deltva deltva 4096 Apr 19 06:37 .
drwxrwxrwt 4 root root 4096 Apr 19 08:00 ..
drwx------ 2 root deltva 4096 Apr 19 06:27 a1
-rwxr--r-- 1 deltva root 0 Apr 19 06:33 a2
drwxr--r-- 2 deltva deltva 4096 Apr 19 07:37 a3
-rwxrwxr-- 1 root root 0 Apr 19 06:33 a4
deltva@DESKTOP-FUV95TB:/tmp/del3$ cd ..
deltva@DESKTOP-FUV95TB:/tmp$ ls -la
total 28
drwxrwxrwt 4 root root 4096 Apr 19 08:00 .
drwxr-xr-x 18 root root 4096 Apr 19 02:19 ..
drwxrwxrwx 2 root root 60 Apr 19 02:19 .X11-unix
-rw-r--r-- 1 deltva deltva 9 Apr 19 08:00 World
drwxr-xr-x 4 deltva deltva 4096 Apr 19 06:37 del3
-rw-r--r-- 1 me me 12288 Apr 19 08:00 loggavlab3sdel3.txt
deltva@DESKTOP-FUV95TB:/tmp$