skapa ett sh shell-script i linux

Permalänk
Kontot avslutas

skapa ett sh shell-script i linux

hej, pluggar en linux-kurs och har svårt att lösa en uppgift. Uppgiften går i stort sett ut på att man ska skriva ett shell-script i bash sh som har några mappar med filer och filinnehåll i. Jag bifogar uppgiften, teorien som ska lösa den och mitt försök med uppgiften i pdf:er, sh-fil och annan fil här under. Jag har försökt att lösa den men stöter på felmeddelandena "no such file or directory" eller "no such directory" oavsett om jag använder linux i virtualbox eller wsl:s debian, ubuntu och kali. Den enda sh-fil som har kunnat exekvera är en liten en som heter Stayhome.sh. Är nåt fel på koden i lab2.sh? Trots att jag har skapat lab2.sh så finns inte den och inte några andra mappar eller filer alls i sökvägen C/Users/username/Documents och när jag försöker att köra och hitta den sökvägen står det att den inte finns.
Jag är en noob i programmering och kan "bara" html, css och att kopiera vissa javscript rader från nätet, så saker måste kanske bokstaveras för mig. Läraren har uppmuntrar oss studenter att ta hjälp av varandra, så jag fuskar inte om jag tar hjälp. Sen har jag som sagt föröskt själv på olika sätt, vilket ni kan läsa i rapporten. Börjar att bli riktigt trött på uppgiften.

Fil lab2.sh:

#!/bin/sh
touch filett.txt
echo "fil ett." > filett.txt
mkdir -p laborationtva/katalog1
mkdir -p laborationtva/katalogtva

cd laborationtva
touch filtvaa.txt
echo "fil två." > filtvaa.txt
touch filtree.txt
echo "fil tre." > filtree.txt

cd katalog1
touch pgm.sh

cat >> pgm.sh <<EOL
#!/bin/sh
echo "Antal rader i $PWD/datafil.txt:"
wc -l < $PWD/datafil.txt
echo "Antal rader i $PWD/../katalogtva/datafil.txt:"
wc -l < $PWD/../katalogtva/datafil.txt
EOL

chmod +x pgm.sh

touch datafil.txt
echo "detta är datafil 1." > datafil.txt
cd ../katalogtva
touch datafil.txt
echo "detta är datafil 2." > datafil.txt
touch filfyra.txt
echo "fil fyra." > filfyra.txt

Uppgiftens rapport(om ni vill se lite hur jag har försökt att göra uppgiften, den är lång bara för att den tvunget skulle vara det)
:
"Innehållsförteckning

1.Inledning
1.1.Bakgrund
1.2.Syfte
2.Planering och genomförande
2.1.Planering
2.2.Genomförande
3.Beskrivning av slutresultat
4.Slutsatser
6.Referenser
I.Bilaga/-or

1. Inledning
Jag ska skriva om hur uppgiften med laborerande med kommandoraden( alltså kommandoskalet) genom ett skapande av en viss specifik typ av fil gick till och vad den resulterade i.
1.1. Bakgrund
Uppgiften gick ut på att man skulle laborera med kommandoskalets kommandorad. Man skulle öppna en texteditor och i den skriva ett skalprogram som heter lab2.sh i Linux kommandoskals programmeringsspråk Bourne Shell. Detta skalprogram skulle då sparas som en Bourne Shell- fil (fil som var skriven i programmeringsspråket Bourne Shell) och det genom att ge filen filändelsen -.sh då .sh är en förkortning för programmeringsspråket Bourne shell. I det här skalprogrammet skulle man då genom att skriva kommandon i programmerinsspråket Bourne shell(sh) göra följande: skapa en katalogstruktur samt även skapa några filer i vilka textinnehåll skulle skapas enligt en viss struktur, skapa en fil som skulle vara en annan Bourne Shell-fil (som skulle heta pgm.sh) och få skalprogrammet att skriva ut antalet rader i katalogerna katalog1:s och katalog2:s data.txt-filer. Avslutningsvis skulle man exekvera de två .sh filerna.
1.2. Syfte
Syftet med uppgiften har varit att lära sig att skriva och exekvera kommandon och skalprogram i programmeringsspråket och shell-script språket Bourne shell(sh) i linux operativsystems terminal och att kunna göra det i såväl Linux-terminalen(för där skriver man ett kommando för att köra .sh filer) och i en texteditor. Jag har velat få svar på frågorna: Hur skapar man en Bourne shell-fil? Hur skapar man kommandon och skalprogram i språket Bourne-shell? Hur exekverar man ett skalprogram eller kommandon som är skrivna i språket Bourne shell?
2. Planering och genomförande
2.1. Planering
Min planering var att genomföra uppgiften på följande sätt: läsa igenom den till uppgiften angivna F2-föreläsningens pdf och i synnerhet då den del där olika kommandon i Bourne Shell-språket listas i en tabell, skapa en Bourne-shell fil som heter lab2.sh och i den skriva kommandon i Bourne-shell programmeringsspråket i den för att skapa de sh-programmen som efterfrågas i uppgiften och till sist sedan exekvera genom att skriva in rätt kommandorad på rätt ställe, som då är i en texteditor eller i ett slags kommandoskal för Linux( i nån form utav linux-terminal).
Jag visste att min i virtualbox installerade debian distro(från inlämning 1) fungerade sådär då flera kommandon inte gick att köra i dess linux-terminal. Att flera kommandon inte gick att köra i debiandistrons linux-terminal och att debiandistron saknade en sudo-användare fick mig att tro att jag behövde en ny linuxmiljö för inlämningsuppgift 2 och fick mig att tro att jag måste föräkra mig om att den skulle fungera och kunna köra inläming 2:s skalprogram. Jag planerade därför att för att lösa inlämningsuppgift 2 installera ett multum av linuxmiljöer och typer av linuxmiljöer. Poängen med det var att försäkra mig om att på något sätt kunna framgångsrikt exekvera hela det skalprogram som jag skulle skriva och inte bara några av dess kommandon, för jag tänkte att åtminstone en av dessa linuxmiljör eller typer av linuxmiljöer måste kunna köra hela skalprogrammet lab2.sh och pgm.sh istället för bara delar av dessa.
Min planering för att skaffa dessa linuxmiljöer och typer av linuxmiljöer var dels att inför uppgiften gå in i Windows inställningar och där aktivera Windows subsystem for linux(wsl) och sedan gå in i Microsoft store och från Microsoft store installera apparna(och linux-distrorna) Debian, Kali, Ubuntu och linux-systemet wsl(windows subsystem for linux). Den var dels även att ladda ner och installera git-bash då jag hade läst på nätet att git-bash kan exekvera shell-scripts(skalprogram) och då alltså användas för att lösa uppgiften. Den var slutligen även att ladda ner en linux mint iso-fil och linuxdistron pop:s iso-fil och installera dessa två linuxdistros i virtualbox.
2.2. Genomförande
Jag började med att googla på hur man aktiverar och installerar wsl i Windows 10. Sedan följde jag instruktionerna genom att knappa in windows features i sökfältet bredvid Windows-startmenyn, klicka på ”Turn Windows features on or off” och sedan bocka i alternativet Windows subsystem for linux. Sedan startade jag om datorn då det behövdes för att inställningen skulle bli aktiv. Efter det läste jag att man skulle aktivera Windows developer mode för att aktivera wsl och gjorde då det genom att gå in i Windows 10:s settings-apps settings>Update & Security>For developers och där bläddra ner till och aktivera alternativ developer-mode. Sedan googlade jag för att se hur man installerar wsl, debian, ubuntu och kali som Windows 10-appar och följde instruktionerna genom att knappa in windows features i sökfältet bredvid Windows-startmenyn, klicka på ”Turn Windows features on or off” och sedan bocka i alternativet ”Virtual machine platform”, klicka på Windows-startmeny, bläddra ner till och öppna appen Microsoft store, söka i sökfältet efter wsl, debian, ubuntu och kali och sedan klicka på install. När linuxdistro- apparna var installerade dubbelklickade jag på deras appikoner för att få upp deras terminaler. I terminalerna läste jag något i stil med ”Installing, this may take a few minutes…”. Sedan kunde jag läsa att terminalerna bad mig att skapa ett unix konto, vilket jag gjorde. Sedan bad terminalerna mig att skapa lösenord, vilket jag gjorde. Då meddelade terminalerna att installationen hade lyckats och att jag kunde använda kommandot sudo för att köra kommandon som administratör.
Jag kollade efter det på en youtube-video för att se hur man kunde göra för att köra Bourne Shell-skalprogram( eller shell-scripts som det heter på engelska) i Windows 10. Videon visade att man med git-bash kunde köra .sh filer genom att dra dem in i git-bash terminal och den visade var man kunde ladda ner och installera gitbash. Videon visade även att man genom att skriva kommandot cd /mnt/c/Users/”username”/Documents och sedan sh filename.sh i Windows Microsoft stores linux-appars terminaler kunde exekvera skalprogram. Därför laddade jag ner och installerade gitbash då jag tänkte att git-bash kunde hjälpa mig att lösa inlämningsuppgift 2 då man skulle kunna köra dess skalprogram i gitbash. Jag testade att göra ett skalprogram innehållandes textinnehållet Stay Home precis som hon i videon gjorde och mycket riktigt exekverade både linux-appar och git-bash terminalerna skalprogrammet. Jag behöll gitbash, wsl och linux-apparna som alternativ att exekvera inlämningusppgift 2 via.
Som ett alternativ till att köra inlämningsuppgift 2:s skalprogram via skapade jag en virtuell maskin av linuxdistron linux mint i virtualbox med valda inställningar som linux, oracle linux(64-bit), 25 gb hårddiskstorlek, basminnets och videominnets och processorns grönfrägade område maxade, create a virtual hard disk now, vdi, empty>blå disklogga>choose a disk file och sedan väljande av linux mints iso-fil. Jag installerade linux mint i virtualbox, testade kommmandon som sudo apt update && full-upgrade -yyyyy i terminalen. De funkade och jag tänkte då att jag nu har flera fungerande linuxmiljöer och linuxtyper att exekvera inlämingsuppgift 2:s skalprogram i och med.
Efter detta öppnade jag filen F2.pdf, läste igenom den och läste igenom tabellen över de olika kommandona i bash- språket och Bourne shell- språket. Sen öppnade jag Notepad, skapade en fil med namnet lab2.sh och började att i den skriva in olika kommandon i språket Bourne shell(som till exempel #!/bin/sh för att markera att filen var en Bourneshell fil(sh-fil). Jag skapade sen en likadan fil med gedit-appen i linux mint i virtualbox. När jag var klar med filerna och tyckte att inlämingsuppgift 2 var löst testade jag att köra skalprogrammen lab2.sh och pgm.sh i alla mina typer av linuxmiljöer(det vill säga i linux mint i virtual box, i en linux-app( ubuntu) och i git-bash. Jag försökte att köra filerna med kommandona sh lab2.sh, ./katt.sh i terminalerna och genom att dra filen lab2.sh in i git-bash terminalen. Jag försökte även att köra filerna genom att först använda kommandona cd /mnt/c/Users/”username”/Documents, chmod +x pgm.sh och chmod +x lab2.sh innan jag körde kommandona sh lab2.sh och ./katt.sh eller drog in lab2.sh i git-bash-terminalen. Jag försökte även att köra de två sh- filerna med dessa kommandon efter att ha valt att öppna lab2.sh med Notepad, Emacs och Visual studio code och försökte även att köra de två sh-filerna efter att ha skapat genvägar av windows-mappen Documents mappar( i en av dessa låg min lab2.sh) och fört över dessa till lokal disk C>Users>”username”>Documents då jag såg att jag inte hade några mappar eller mappen med lab2-sh där men i Onedrive och This PC>Documents.
3. Beskrivning av slutresultat
Mitt första och lilla skalprogram StayHome.sh skapades som en Borune-shell fil då jag i Windows file explorer kunde utläsa SH Source File under kolumnen Type och då jag använde kommandot #!/bin/sh för att göra filen till en Bourne shell-fil. Det exekverades i Windows 10:s ubuntu-app med kommandona cd /mnt/c/Users/”username”/Documents, sh StayHome.sh, ./StayHome.sh och genom att man drog in filen i git-bash och tryckte på enter-knappen, för när dessa saker gjordes visades textinnehållet ”Stay Home” i terminalerna, vilket jag hade skrivit in med echo-kommandot echo ”Stay Home” i StayHome.sh-filen. Inlämingsuppgift 2:s skalprogram lab2.sh skapades som en Bourne-shell fil då jag i Windows file explorer kunde utläsa SH source File under kolumnen Type och då jag använde kommandot #!/bin/sh för att göra filen till en Bourne shell-fil. När jag använde kommandona chmod +x lab2.sh, chmod +x pgm.sh , cd /mnt/c/Users/”username”/Documents, sh lab2.sh, ./lab2.sh i linux mint i virtual box, linux-apparna och git-bash fick jag bara svar från terminalerna i form av meddelanden som ”command not found” och ”No such file or directory” och skalprogrammen lab2.sh och pgm.sh exekverades inte. I gedit lyste kommandona i olika färger som rött, grönt, blå och beige.
4. Slutsatser
Jag lyckades att skapa ett litet skalprogram i programmeringsspråket bourne shell då StayHome.sh skalprogrammet kördes då meddelandet ”Stay Home” poppade upp i terminalerna, medan inlämningsuppgift 2:s två mycket större skalprogram lab2.sh och pgm.sh inte gick att exekvera då bara felmeddelanden som ”command not found” och ”No such file or directory” poppade upp i terminalerna. Jag lyckades alltså att skapa ett mindre och större skalprogram i bourne shell-språket, men kunde bara exekvera det mindre skalprogrammet och inte skalprogrammet lab2.sh. I texteditorn gedit lyste flera av mina kommandon i olika färger som rött, grönt och orange. Det fick mig att dra slutsatsen att åtminstone några av mina kommandon var korrekta, för texteditorer brukar markera och få ens kommandon att lysa med en viss färg om kommandona är rätt skrivna. Jag drar alltså slutsatsen att åtminstone några av skalprogrammet lab2.sh är rätt skrivna, för annars hade de inte lyst med en viss färg som röd, grön, blå och beige.
Jag trodde först att skalprogrammet lab2.sh inte gick att exekvera för att jag använde Windows linux-appar, wsl och git-bash. Hon i youtube-videon konstaterade att alla skalprogram som är skrivna i Bourne shell inte går att exekvera i Windows då de flesta av dessa skalprogram och deras kommandon är gjorda för Linux. Det fick mig att tro att jag var tvungen att testa att köra lab2.sh i en typ av linuxmiljö som låg utanför Windows operativsystem. Därför försökte jag då att köra filen som jag hade skapat i virtualbox linux mint, men jag fick samma felmeddelanden även där. Det fick mig att dra slutsatsen att orsaken till att skalprogrammet lab2.sh inte gick att exekvera inte var att man använde fel linuxmiljö, för virtualbox linux mint är en virtuell maskin som ligger utanför Windows os och filen exekverades ändå inte där.
Då det i terminalernas felmeddelanden stod ”no file or directory” när jag skrev sökvägen cd /mnt/c/Users/”username”/Documents tänkte jag att trots att jag har min lab2.sh i en mapp i sökvägarna This PC>Documents och Onedrive-Personal>Documents måste den saknas i sökvägen C>Users>”username”>Documents och jag tänkte att det kanske var därför som lab2.sh inte exekverades. Jag gick in i C>Users>”username”>Documents och fann att där inte fanns några mappar eller filer alls och inte heller någon fil som hette lab2.sh. Då jag fortfarande trodde att det här var orsaken till att lab2.sh inte kördes skapade jag en genväg av mappen som innehöll lab2.sh och skickade den mappen till C>Users>”username”>Documents. Jag förde även lab2.sh och dennas mapp till C>Users>”username”>Documents och bockade i alternativet ”always keep on this device” för att lagra lab2.sh och dennas mapp utanför Onedrives molnlagring. Jag trodde att det också kunde göra att filen kunde exekveras då jag hade läst på nätet att när filer och program lagrades i molnet kunde det bli problematiskt att nå och köra dem med kommandon då de då inte var lokalt lagrade på datorn. Sedan försökte jag pånytt att köra lab2.sh med kommandona chmod +x lab2.sh, chmod +x pgm.sh , cd /mnt/c/Users/”username”/Documents, sh lab2.sh, ./katt.sh i alla min olika typer av linuxmiljöer och skalprogrammet lab2.sh kördes fortfarande inte.
Jag lyckades alltså inte att köra lab2.sh i någon linuxmiljö och jag vet inte varför det inte fungerade att köra filen. Jag gissar att det kan ha att göra med att jag har skrivit fel kommandon i lab2.sh och/ eller i terminalerna och att jag har använt fel och ohela typer av linuxmiljöer. Kanske hade det alltså fungerat att köra skalprogrammet lab2.sh i ett usb:s, en raspberry pies, eller dators hårddisks hela och kompletta linux os som linuxmiljö och kanske inte."
5. Referenser
Litteraturförteckning
[1]: R. Hertzog, R. Mas, The Debian Administrator's Handbook, Debian Wheezy from Discovery to Mastery, 2013
[2]: R. Hertzog, R. Mas, The Debian Administrator's Handbook, Debian Squeezy from Discovery to Mastery, 2013

Internet
[1]: A. Jackson, F2, Introduktion till Linux och små nätverk, 2023
https://hig.instructure.com/courses/5715/files/824912?module_...
[1]: A. Wanjala, makeuseof, How to Enable Windows Subsystem for Linux, 2021
https://www.makeuseof.com/enable-windows-subsystem-for-linux/
[1]: SSL.com support team, SSL, Enable Linux Subsystem and Install Ubuntu in Windows 10, 2020 https://www.ssl.com/how-to/enable-linux-subsystem-install-ubu...
[1]: G. Phillips, makeuseof, You Can Now Install Windows Subsystem for Linux From the Microsoft Store, 2021 https://www.makeuseof.com/install-windows-subsystem-for-windo...
[1]: M. Huc, Pureinfotech, You can now install WSL from Microsoft Store on Windows 11, 2021 https://pureinfotech.com/install-wsl-microsoft-store-windows-...
[1]: Computer Hope, Unix and Linux commands help, 2020 https://www.computerhope.com/unix.htm
[1]: F. Wahab, addictivetips, How to run a Shell script on Windows 10, 2021 https://www.addictivetips.com/windows-tips/run-shell-script-o...
[1]: The authors, Ruby on Rails Demos ’n’ Deets, Setting Up Windows Subsystem for Linux (WSL) and Windows Terminal, 2020 https://human-se.github.io/rails-demos-n-deets-2020/demo-wsl/
I. Bilaga/-or
#!/bin/sh
touch filett.txt
echo "fil ett." > filett.txt
mkdir -p laborationtva/katalog1
mkdir -p laborationtva/katalogtva
cd laborationtva
touch filtvaa.txt
echo "fil två." > filtvaa.txt
touch filtree.txt
echo "fil tre." > filtree.txt
cd katalog1
touch pgm.sh
cat >> pgm.sh <<EOL
#!/bin/sh
echo "Antal rader i $PWD/datafil.txt:"
wc -l < $PWD/datafil.txt
echo "Antal rader i $PWD/../katalogtva/datafil.txt:"
wc -l < $PWD/../katalogtva/datafil.txt
EOL
chmod +x pgm.sh
touch datafil.txt
echo "detta är datafil 1." > datafil.txt
cd ../katalogtva
touch datafil.txt
echo "detta är datafil 2." > datafil.txt
touch filfyra.txt
echo "fil fyra." > filfyra.txt

Permalänk
Medlem

Ett tips är att antingen lägga till `-x` i shebang-raden `#!/bin/sh -x` alternativt kan man använda `set -x` på en egen rad. Då kommer skalet att printa allt den exekverar och då kommer du se vart den fallerar.

Permalänk
Medlem

Jag har planerat att läsa denna tråden imorgon mellan 11:00-17:30, återkommer.

Permalänk
Medlem

Scriptet funkar utmärkt. Min /bin/sh är en symlänk till /bin/dash.

Det enda jag gjorde var "chmod +x lab2.sh" och "./lab2.sh". Rätt mappar och filer skapas och scriptet pgm.sh är exekverbart och fungerar också.

Jag får intrycket att du inte förstår konceptet filhantering:

Citat:

Trots att jag har skapat lab2.sh så finns inte den och inte några andra mappar eller filer alls i sökvägen C/Users/username/Documents och när jag försöker att köra och hitta den sökvägen står det att den inte finns.

Du måste köra filen från där du skapat den.

Permalänk
Kontot avslutas

Kul att det funkar för dig.
Problemet är att varken command prompt eller linux- terminalerna hittar lab2.sh på min dator eller ens Documents eller min användare.

Så här står det:
Microsoft Windows [Version 10.0.19045.2728]
(c) Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>cd documents
The system cannot find the path specified.

C:\WINDOWS\system32>cd Documents
The system cannot find the path specified.

C:\WINDOWS\system32>

aisjdji@DESKTOP-FUV95TB:~$ cd /mnt/c/Users
ajidjdjd@DESKTOP-FUV95TB:/mnt/c/Users$
qidjidj@DESKTOP-FUV95TB:/mnt/c/Users$ cd mnt/c/Users/username/
-bash: cd: mnt/c/Users/username/: No such file or directory
asujsjuw@DESKTOP-FUV95TB:/mnt/c/Users$ cd /mnt/c/Users/username
-bash: cd: /mnt/c/Users/username: No such file or directory
jqijdi@DESKTOP-FUV95TB:/mnt/c/Users$ cd /mnt/c/Users/username/Documents
-bash: cd: /mnt/c/Users/username/Documents: No such file or directory
akksiws@DESKTOP-FUV95TB:/mnt/c/Users$

Permalänk
Rekordmedlem
Skrivet av nm96:

Kul att det funkar för dig.
Problemet är att varken command prompt eller linux- terminalerna hittar lab2.sh på min dator eller ens Documents eller min användare.

Så här står det:
Microsoft Windows [Version 10.0.19045.2728]
(c) Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>cd documents
The system cannot find the path specified.

C:\WINDOWS\system32>cd Documents
The system cannot find the path specified.

C:\WINDOWS\system32>

aisjdji@DESKTOP-FUV95TB:~$ cd /mnt/c/Users
ajidjdjd@DESKTOP-FUV95TB:/mnt/c/Users$
qidjidj@DESKTOP-FUV95TB:/mnt/c/Users$ cd mnt/c/Users/username/
-bash: cd: mnt/c/Users/username/: No such file or directory
asujsjuw@DESKTOP-FUV95TB:/mnt/c/Users$ cd /mnt/c/Users/username
-bash: cd: /mnt/c/Users/username: No such file or directory
jqijdi@DESKTOP-FUV95TB:/mnt/c/Users$ cd /mnt/c/Users/username/Documents
-bash: cd: /mnt/c/Users/username/Documents: No such file or directory
akksiws@DESKTOP-FUV95TB:/mnt/c/Users$

Har du verkligen en mapp som heter documents i system32 ?
För det är ju dit du försöker hoppa, om du söker den vanliga dokumentmappen så ligger den som C:\Users\ANVÄNDARNAMN\Documents
anger du verkligen rätt sökväg ?

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
Kontot avslutas

Nej. Skrev rätt användarnman nu men det hjälper inte. Står fortfarande bara "no such file" när jag försöker att köra filen.

Permalänk
Kontot avslutas

står såhär nu:
aididi@DESKTOP-FUV95TB:/mnt/c/Users/adodi/Documents$ cd /mnt/c/Users/aidj/Documents/högre studier/
-bash: cd: too many arguments
aisi9da@DESKTOP-FUV95TB:/mnt/c/Users/aaddk/Documents$ ls
'My Music' 'My Pictures' 'My Videos'
auauaud@DESKTOP-FUV95TB:/mnt/c/Users/aiadidi/Documents$

Får det nån att förstå vad problemet är?

Permalänk
Medlem

Du har ett mellanslag/blanktecken i sökvägen, vilket då blir två argument, dvs ett för mycket för cd.

Permalänk
Kontot avslutas

har försökt att nå och navigera till min lab2.sh med OneDrive i sökvägen i command prompt och linux-terminal och utan OneDrive efter att jag har slutat synka Documents-mappen till Onedrive. Får fortfarande samma felmeddelande med "no such file exists".

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av nm96:

har försökt att nå och navigera till min lab2.sh med OneDrive i sökvägen i command prompt och linux-terminal och utan OneDrive efter att jag har slutat synka Documents-mappen till Onedrive. Får fortfarande samma felmeddelande med "no such file exists".

cd /mnt/c/Users/aidj/Documents/högre studier/

Detta kommando fungerar inte då det blir två argument: cd /mnt/c/Users/aidj/Documents/högre
och "studier/"

Detta kommer du runt genom att sätta "" på sökvägen:
cd "/mnt/c/Users/aidj/Documents/högre studier/"

Att använda mellanslag i sökvägar är allmänt smärtsamt.

Spontant så tror jag att lite ChatGPT hade hjälpt dig lösa såna här Level 0-problem.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av nm96:

Kul att det funkar för dig.
Problemet är att varken command prompt eller linux- terminalerna hittar lab2.sh på min dator eller ens Documents eller min användare.

Så här står det:
Microsoft Windows [Version 10.0.19045.2728]
(c) Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>cd documents
The system cannot find the path specified.

C:\WINDOWS\system32>cd Documents
The system cannot find the path specified.

C:\WINDOWS\system32>

aisjdji@DESKTOP-FUV95TB:~$ cd /mnt/c/Users
ajidjdjd@DESKTOP-FUV95TB:/mnt/c/Users$
qidjidj@DESKTOP-FUV95TB:/mnt/c/Users$ cd mnt/c/Users/username/
-bash: cd: mnt/c/Users/username/: No such file or directory
asujsjuw@DESKTOP-FUV95TB:/mnt/c/Users$ cd /mnt/c/Users/username
-bash: cd: /mnt/c/Users/username: No such file or directory
jqijdi@DESKTOP-FUV95TB:/mnt/c/Users$ cd /mnt/c/Users/username/Documents
-bash: cd: /mnt/c/Users/username/Documents: No such file or directory
akksiws@DESKTOP-FUV95TB:/mnt/c/Users$

Skrivet av nm96:

står såhär nu:
aididi@DESKTOP-FUV95TB:/mnt/c/Users/adodi/Documents$ cd /mnt/c/Users/aidj/Documents/högre studier/
-bash: cd: too many arguments
aisi9da@DESKTOP-FUV95TB:/mnt/c/Users/aaddk/Documents$ ls
'My Music' 'My Pictures' 'My Videos'
auauaud@DESKTOP-FUV95TB:/mnt/c/Users/aiadidi/Documents$

Får det nån att förstå vad problemet är?

Jag är ledsen men jag ser inte hur du ska kunna klara uppgiften när du inte hanterar basala saker som att orientera dig i filsystemet. Inget illa menat här utan jag tror att du behöver ta Linux-kursen igen från början innan du ger dig på shellscript.

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Kontot avslutas

Ok tack, men felmeddandena är kvar.

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av nm96:

Ok tack, men felmeddandena är kvar.

Troligen är väl Onedrive och WSL inte helt kompisar.
Jag kör en utvecklingsfolder:
C:\dev\git\mittRepo

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Kontot avslutas

Filen gick att exekvera i virtualbox linux men filen hade fel.
När jag försöker att exekvera lab2.sh i linux i virtualbox står det så här efter att jag har gått in i Documents och använt chmod +x lab2.sh, sh lab2.sh och sudo för de två kommandona.
lab2.sh: 28: cant cd to ../katalogtva.
Vet nån hur det kan lösas?

Permalänk
Medlem

Flytta allting till linux filsystem istället och se hur mycket det löser.

Permalänk
Kontot avslutas

Hur gör jag det? Menar du att jag ska byta tråd till en om linux filsystem?

Permalänk
Medlem
Skrivet av nm96:

Hur gör jag det? Menar du att jag ska byta tråd till en om linux filsystem?

Nej jag antar att han menar att du inte ska jobba i C:\users\namn\documents.

Utan jobba i din /home katalog i linux. O inte blanda in windows mappar i det.

Visa signatur

ASUS X570-F, AMD Ryzen 9 3900x, 16Gb RAM, Gigabyte 2070Super auros

Permalänk
Medlem
Skrivet av nm96:

Filen gick att exekvera i virtualbox linux men filen hade fel.
När jag försöker att exekvera lab2.sh i linux i virtualbox står det så här efter att jag har gått in i Documents och använt chmod +x lab2.sh, sh lab2.sh och sudo för de två kommandona.
lab2.sh: 28: cant cd to ../katalogtva.
Vet nån hur det kan lösas?

Ja, från någon som har ett par decenniers erfarenhet av Linux så kan jag bara rekommendera dig att läsa kursen från början. Du saknar basala kunskaper; det är inget illa menat med detta, det är bara något som blir tydligt från de frågor du ställer. Du försöker byta katalog till en som heter 'katalogtva' från den nuvarande du står i. Det går inte, antagligen för att 1) katalogen inte finns eller 2) nuvarande cwd är inte den du förväntar dig.

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Medlem

Imponerande att lyckas få till innehållet i lab2.sh som fungerar (enligt KAD) när du varken vet hur man kör det eller hur man tar reda på hur man kör det...

Eller missförstår jag, innehållet i lab2.sh kanske man fick från uppgiften?

Permalänk
Medlem

Ähh detta är en nybörjarkurs så det är väl nybörjare som ska läsa den? Eller ska man gå denna kurs efter att man har lärt sig allt? 🤣

Du kör aldrig mkdir katalogtva. Man måste skicka med en flagga till mkdir om man vill skapa mappar i mappar.

Skriv gärna in hela skriptet i senaste versionen. och hela kommandot med utskrift. Kom ihåg att radera alla mappar och filer som skriptet har skapat mellan varje test.

Hela utskriften. Till exempel:

Larrxi# ./skript
Hej output från skript
Larrxi#

Permalänk
Avstängd
Skrivet av nm96:

hej, pluggar en linux-kurs och har svårt att lösa en uppgift. Uppgiften går i stort sett ut på att man ska skriva ett shell-script i bash sh som har några mappar med filer och filinnehåll i. Jag bifogar uppgiften, teorien som ska lösa den och mitt försök med uppgiften i pdf:er, sh-fil och annan fil här under. Jag har försökt att lösa den men stöter på felmeddelandena "no such file or directory" eller "no such directory" oavsett om jag använder linux i virtualbox eller wsl:s debian, ubuntu och kali. Den enda sh-fil som har kunnat exekvera är en liten en som heter Stayhome.sh. Är nåt fel på koden i lab2.sh? Trots att jag har skapat lab2.sh så finns inte den och inte några andra mappar eller filer alls i sökvägen C/Users/username/Documents och när jag försöker att köra och hitta den sökvägen står det att den inte finns.
Jag är en noob i programmering och kan "bara" html, css och att kopiera vissa javscript rader från nätet, så saker måste kanske bokstaveras för mig. Läraren har uppmuntrar oss studenter att ta hjälp av varandra, så jag fuskar inte om jag tar hjälp. Sen har jag som sagt föröskt själv på olika sätt, vilket ni kan läsa i rapporten. Börjar att bli riktigt trött på uppgiften.

Fil lab2.sh:

#!/bin/sh
touch filett.txt
echo "fil ett." > filett.txt
mkdir -p laborationtva/katalog1
mkdir -p laborationtva/katalogtva

cd laborationtva
touch filtvaa.txt
echo "fil två." > filtvaa.txt
touch filtree.txt
echo "fil tre." > filtree.txt

cd katalog1
touch pgm.sh

cat >> pgm.sh <<EOL
#!/bin/sh
echo "Antal rader i $PWD/datafil.txt:"
wc -l < $PWD/datafil.txt
echo "Antal rader i $PWD/../katalogtva/datafil.txt:"
wc -l < $PWD/../katalogtva/datafil.txt
EOL

chmod +x pgm.sh

touch datafil.txt
echo "detta är datafil 1." > datafil.txt
cd ../katalogtva
touch datafil.txt
echo "detta är datafil 2." > datafil.txt
touch filfyra.txt
echo "fil fyra." > filfyra.txt

Uppgiftens rapport(om ni vill se lite hur jag har försökt att göra uppgiften, den är lång bara för att den tvunget skulle vara det)
:
"Innehållsförteckning

1.Inledning
1.1.Bakgrund
1.2.Syfte
2.Planering och genomförande
2.1.Planering
2.2.Genomförande
3.Beskrivning av slutresultat
4.Slutsatser
6.Referenser
I.Bilaga/-or

1. Inledning
Jag ska skriva om hur uppgiften med laborerande med kommandoraden( alltså kommandoskalet) genom ett skapande av en viss specifik typ av fil gick till och vad den resulterade i.
1.1. Bakgrund
Uppgiften gick ut på att man skulle laborera med kommandoskalets kommandorad. Man skulle öppna en texteditor och i den skriva ett skalprogram som heter lab2.sh i Linux kommandoskals programmeringsspråk Bourne Shell. Detta skalprogram skulle då sparas som en Bourne Shell- fil (fil som var skriven i programmeringsspråket Bourne Shell) och det genom att ge filen filändelsen -.sh då .sh är en förkortning för programmeringsspråket Bourne shell. I det här skalprogrammet skulle man då genom att skriva kommandon i programmerinsspråket Bourne shell(sh) göra följande: skapa en katalogstruktur samt även skapa några filer i vilka textinnehåll skulle skapas enligt en viss struktur, skapa en fil som skulle vara en annan Bourne Shell-fil (som skulle heta pgm.sh) och få skalprogrammet att skriva ut antalet rader i katalogerna katalog1:s och katalog2:s data.txt-filer. Avslutningsvis skulle man exekvera de två .sh filerna.
1.2. Syfte
Syftet med uppgiften har varit att lära sig att skriva och exekvera kommandon och skalprogram i programmeringsspråket och shell-script språket Bourne shell(sh) i linux operativsystems terminal och att kunna göra det i såväl Linux-terminalen(för där skriver man ett kommando för att köra .sh filer) och i en texteditor. Jag har velat få svar på frågorna: Hur skapar man en Bourne shell-fil? Hur skapar man kommandon och skalprogram i språket Bourne-shell? Hur exekverar man ett skalprogram eller kommandon som är skrivna i språket Bourne shell?
2. Planering och genomförande
2.1. Planering
Min planering var att genomföra uppgiften på följande sätt: läsa igenom den till uppgiften angivna F2-föreläsningens pdf och i synnerhet då den del där olika kommandon i Bourne Shell-språket listas i en tabell, skapa en Bourne-shell fil som heter lab2.sh och i den skriva kommandon i Bourne-shell programmeringsspråket i den för att skapa de sh-programmen som efterfrågas i uppgiften och till sist sedan exekvera genom att skriva in rätt kommandorad på rätt ställe, som då är i en texteditor eller i ett slags kommandoskal för Linux( i nån form utav linux-terminal).
Jag visste att min i virtualbox installerade debian distro(från inlämning 1) fungerade sådär då flera kommandon inte gick att köra i dess linux-terminal. Att flera kommandon inte gick att köra i debiandistrons linux-terminal och att debiandistron saknade en sudo-användare fick mig att tro att jag behövde en ny linuxmiljö för inlämningsuppgift 2 och fick mig att tro att jag måste föräkra mig om att den skulle fungera och kunna köra inläming 2:s skalprogram. Jag planerade därför att för att lösa inlämningsuppgift 2 installera ett multum av linuxmiljöer och typer av linuxmiljöer. Poängen med det var att försäkra mig om att på något sätt kunna framgångsrikt exekvera hela det skalprogram som jag skulle skriva och inte bara några av dess kommandon, för jag tänkte att åtminstone en av dessa linuxmiljör eller typer av linuxmiljöer måste kunna köra hela skalprogrammet lab2.sh och pgm.sh istället för bara delar av dessa.
Min planering för att skaffa dessa linuxmiljöer och typer av linuxmiljöer var dels att inför uppgiften gå in i Windows inställningar och där aktivera Windows subsystem for linux(wsl) och sedan gå in i Microsoft store och från Microsoft store installera apparna(och linux-distrorna) Debian, Kali, Ubuntu och linux-systemet wsl(windows subsystem for linux). Den var dels även att ladda ner och installera git-bash då jag hade läst på nätet att git-bash kan exekvera shell-scripts(skalprogram) och då alltså användas för att lösa uppgiften. Den var slutligen även att ladda ner en linux mint iso-fil och linuxdistron pop:s iso-fil och installera dessa två linuxdistros i virtualbox.
2.2. Genomförande
Jag började med att googla på hur man aktiverar och installerar wsl i Windows 10. Sedan följde jag instruktionerna genom att knappa in windows features i sökfältet bredvid Windows-startmenyn, klicka på ”Turn Windows features on or off” och sedan bocka i alternativet Windows subsystem for linux. Sedan startade jag om datorn då det behövdes för att inställningen skulle bli aktiv. Efter det läste jag att man skulle aktivera Windows developer mode för att aktivera wsl och gjorde då det genom att gå in i Windows 10:s settings-apps settings>Update & Security>For developers och där bläddra ner till och aktivera alternativ developer-mode. Sedan googlade jag för att se hur man installerar wsl, debian, ubuntu och kali som Windows 10-appar och följde instruktionerna genom att knappa in windows features i sökfältet bredvid Windows-startmenyn, klicka på ”Turn Windows features on or off” och sedan bocka i alternativet ”Virtual machine platform”, klicka på Windows-startmeny, bläddra ner till och öppna appen Microsoft store, söka i sökfältet efter wsl, debian, ubuntu och kali och sedan klicka på install. När linuxdistro- apparna var installerade dubbelklickade jag på deras appikoner för att få upp deras terminaler. I terminalerna läste jag något i stil med ”Installing, this may take a few minutes…”. Sedan kunde jag läsa att terminalerna bad mig att skapa ett unix konto, vilket jag gjorde. Sedan bad terminalerna mig att skapa lösenord, vilket jag gjorde. Då meddelade terminalerna att installationen hade lyckats och att jag kunde använda kommandot sudo för att köra kommandon som administratör.
Jag kollade efter det på en youtube-video för att se hur man kunde göra för att köra Bourne Shell-skalprogram( eller shell-scripts som det heter på engelska) i Windows 10. Videon visade att man med git-bash kunde köra .sh filer genom att dra dem in i git-bash terminal och den visade var man kunde ladda ner och installera gitbash. Videon visade även att man genom att skriva kommandot cd /mnt/c/Users/”username”/Documents och sedan sh filename.sh i Windows Microsoft stores linux-appars terminaler kunde exekvera skalprogram. Därför laddade jag ner och installerade gitbash då jag tänkte att git-bash kunde hjälpa mig att lösa inlämningsuppgift 2 då man skulle kunna köra dess skalprogram i gitbash. Jag testade att göra ett skalprogram innehållandes textinnehållet Stay Home precis som hon i videon gjorde och mycket riktigt exekverade både linux-appar och git-bash terminalerna skalprogrammet. Jag behöll gitbash, wsl och linux-apparna som alternativ att exekvera inlämningusppgift 2 via.
Som ett alternativ till att köra inlämningsuppgift 2:s skalprogram via skapade jag en virtuell maskin av linuxdistron linux mint i virtualbox med valda inställningar som linux, oracle linux(64-bit), 25 gb hårddiskstorlek, basminnets och videominnets och processorns grönfrägade område maxade, create a virtual hard disk now, vdi, empty>blå disklogga>choose a disk file och sedan väljande av linux mints iso-fil. Jag installerade linux mint i virtualbox, testade kommmandon som sudo apt update && full-upgrade -yyyyy i terminalen. De funkade och jag tänkte då att jag nu har flera fungerande linuxmiljöer och linuxtyper att exekvera inlämingsuppgift 2:s skalprogram i och med.
Efter detta öppnade jag filen F2.pdf, läste igenom den och läste igenom tabellen över de olika kommandona i bash- språket och Bourne shell- språket. Sen öppnade jag Notepad, skapade en fil med namnet lab2.sh och började att i den skriva in olika kommandon i språket Bourne shell(som till exempel #!/bin/sh för att markera att filen var en Bourneshell fil(sh-fil). Jag skapade sen en likadan fil med gedit-appen i linux mint i virtualbox. När jag var klar med filerna och tyckte att inlämingsuppgift 2 var löst testade jag att köra skalprogrammen lab2.sh och pgm.sh i alla mina typer av linuxmiljöer(det vill säga i linux mint i virtual box, i en linux-app( ubuntu) och i git-bash. Jag försökte att köra filerna med kommandona sh lab2.sh, ./katt.sh i terminalerna och genom att dra filen lab2.sh in i git-bash terminalen. Jag försökte även att köra filerna genom att först använda kommandona cd /mnt/c/Users/”username”/Documents, chmod +x pgm.sh och chmod +x lab2.sh innan jag körde kommandona sh lab2.sh och ./katt.sh eller drog in lab2.sh i git-bash-terminalen. Jag försökte även att köra de två sh- filerna med dessa kommandon efter att ha valt att öppna lab2.sh med Notepad, Emacs och Visual studio code och försökte även att köra de två sh-filerna efter att ha skapat genvägar av windows-mappen Documents mappar( i en av dessa låg min lab2.sh) och fört över dessa till lokal disk C>Users>”username”>Documents då jag såg att jag inte hade några mappar eller mappen med lab2-sh där men i Onedrive och This PC>Documents.
3. Beskrivning av slutresultat
Mitt första och lilla skalprogram StayHome.sh skapades som en Borune-shell fil då jag i Windows file explorer kunde utläsa SH Source File under kolumnen Type och då jag använde kommandot #!/bin/sh för att göra filen till en Bourne shell-fil. Det exekverades i Windows 10:s ubuntu-app med kommandona cd /mnt/c/Users/”username”/Documents, sh StayHome.sh, ./StayHome.sh och genom att man drog in filen i git-bash och tryckte på enter-knappen, för när dessa saker gjordes visades textinnehållet ”Stay Home” i terminalerna, vilket jag hade skrivit in med echo-kommandot echo ”Stay Home” i StayHome.sh-filen. Inlämingsuppgift 2:s skalprogram lab2.sh skapades som en Bourne-shell fil då jag i Windows file explorer kunde utläsa SH source File under kolumnen Type och då jag använde kommandot #!/bin/sh för att göra filen till en Bourne shell-fil. När jag använde kommandona chmod +x lab2.sh, chmod +x pgm.sh , cd /mnt/c/Users/”username”/Documents, sh lab2.sh, ./lab2.sh i linux mint i virtual box, linux-apparna och git-bash fick jag bara svar från terminalerna i form av meddelanden som ”command not found” och ”No such file or directory” och skalprogrammen lab2.sh och pgm.sh exekverades inte. I gedit lyste kommandona i olika färger som rött, grönt, blå och beige.
4. Slutsatser
Jag lyckades att skapa ett litet skalprogram i programmeringsspråket bourne shell då StayHome.sh skalprogrammet kördes då meddelandet ”Stay Home” poppade upp i terminalerna, medan inlämningsuppgift 2:s två mycket större skalprogram lab2.sh och pgm.sh inte gick att exekvera då bara felmeddelanden som ”command not found” och ”No such file or directory” poppade upp i terminalerna. Jag lyckades alltså att skapa ett mindre och större skalprogram i bourne shell-språket, men kunde bara exekvera det mindre skalprogrammet och inte skalprogrammet lab2.sh. I texteditorn gedit lyste flera av mina kommandon i olika färger som rött, grönt och orange. Det fick mig att dra slutsatsen att åtminstone några av mina kommandon var korrekta, för texteditorer brukar markera och få ens kommandon att lysa med en viss färg om kommandona är rätt skrivna. Jag drar alltså slutsatsen att åtminstone några av skalprogrammet lab2.sh är rätt skrivna, för annars hade de inte lyst med en viss färg som röd, grön, blå och beige.
Jag trodde först att skalprogrammet lab2.sh inte gick att exekvera för att jag använde Windows linux-appar, wsl och git-bash. Hon i youtube-videon konstaterade att alla skalprogram som är skrivna i Bourne shell inte går att exekvera i Windows då de flesta av dessa skalprogram och deras kommandon är gjorda för Linux. Det fick mig att tro att jag var tvungen att testa att köra lab2.sh i en typ av linuxmiljö som låg utanför Windows operativsystem. Därför försökte jag då att köra filen som jag hade skapat i virtualbox linux mint, men jag fick samma felmeddelanden även där. Det fick mig att dra slutsatsen att orsaken till att skalprogrammet lab2.sh inte gick att exekvera inte var att man använde fel linuxmiljö, för virtualbox linux mint är en virtuell maskin som ligger utanför Windows os och filen exekverades ändå inte där.
Då det i terminalernas felmeddelanden stod ”no file or directory” när jag skrev sökvägen cd /mnt/c/Users/”username”/Documents tänkte jag att trots att jag har min lab2.sh i en mapp i sökvägarna This PC>Documents och Onedrive-Personal>Documents måste den saknas i sökvägen C>Users>”username”>Documents och jag tänkte att det kanske var därför som lab2.sh inte exekverades. Jag gick in i C>Users>”username”>Documents och fann att där inte fanns några mappar eller filer alls och inte heller någon fil som hette lab2.sh. Då jag fortfarande trodde att det här var orsaken till att lab2.sh inte kördes skapade jag en genväg av mappen som innehöll lab2.sh och skickade den mappen till C>Users>”username”>Documents. Jag förde även lab2.sh och dennas mapp till C>Users>”username”>Documents och bockade i alternativet ”always keep on this device” för att lagra lab2.sh och dennas mapp utanför Onedrives molnlagring. Jag trodde att det också kunde göra att filen kunde exekveras då jag hade läst på nätet att när filer och program lagrades i molnet kunde det bli problematiskt att nå och köra dem med kommandon då de då inte var lokalt lagrade på datorn. Sedan försökte jag pånytt att köra lab2.sh med kommandona chmod +x lab2.sh, chmod +x pgm.sh , cd /mnt/c/Users/”username”/Documents, sh lab2.sh, ./katt.sh i alla min olika typer av linuxmiljöer och skalprogrammet lab2.sh kördes fortfarande inte.
Jag lyckades alltså inte att köra lab2.sh i någon linuxmiljö och jag vet inte varför det inte fungerade att köra filen. Jag gissar att det kan ha att göra med att jag har skrivit fel kommandon i lab2.sh och/ eller i terminalerna och att jag har använt fel och ohela typer av linuxmiljöer. Kanske hade det alltså fungerat att köra skalprogrammet lab2.sh i ett usb:s, en raspberry pies, eller dators hårddisks hela och kompletta linux os som linuxmiljö och kanske inte."
5. Referenser
Litteraturförteckning
[1]: R. Hertzog, R. Mas, The Debian Administrator's Handbook, Debian Wheezy from Discovery to Mastery, 2013
[2]: R. Hertzog, R. Mas, The Debian Administrator's Handbook, Debian Squeezy from Discovery to Mastery, 2013

Internet
[1]: A. Jackson, F2, Introduktion till Linux och små nätverk, 2023
https://hig.instructure.com/courses/5715/files/824912?module_...
[1]: A. Wanjala, makeuseof, How to Enable Windows Subsystem for Linux, 2021
https://www.makeuseof.com/enable-windows-subsystem-for-linux/
[1]: SSL.com support team, SSL, Enable Linux Subsystem and Install Ubuntu in Windows 10, 2020 https://www.ssl.com/how-to/enable-linux-subsystem-install-ubu...
[1]: G. Phillips, makeuseof, You Can Now Install Windows Subsystem for Linux From the Microsoft Store, 2021 https://www.makeuseof.com/install-windows-subsystem-for-windo...
[1]: M. Huc, Pureinfotech, You can now install WSL from Microsoft Store on Windows 11, 2021 https://pureinfotech.com/install-wsl-microsoft-store-windows-...
[1]: Computer Hope, Unix and Linux commands help, 2020 https://www.computerhope.com/unix.htm
[1]: F. Wahab, addictivetips, How to run a Shell script on Windows 10, 2021 https://www.addictivetips.com/windows-tips/run-shell-script-o...
[1]: The authors, Ruby on Rails Demos ’n’ Deets, Setting Up Windows Subsystem for Linux (WSL) and Windows Terminal, 2020 https://human-se.github.io/rails-demos-n-deets-2020/demo-wsl/
I. Bilaga/-or
#!/bin/sh
touch filett.txt
echo "fil ett." > filett.txt
mkdir -p laborationtva/katalog1
mkdir -p laborationtva/katalogtva
cd laborationtva
touch filtvaa.txt
echo "fil två." > filtvaa.txt
touch filtree.txt
echo "fil tre." > filtree.txt
cd katalog1
touch pgm.sh
cat >> pgm.sh <<EOL
#!/bin/sh
echo "Antal rader i $PWD/datafil.txt:"
wc -l < $PWD/datafil.txt
echo "Antal rader i $PWD/../katalogtva/datafil.txt:"
wc -l < $PWD/../katalogtva/datafil.txt
EOL
chmod +x pgm.sh
touch datafil.txt
echo "detta är datafil 1." > datafil.txt
cd ../katalogtva
touch datafil.txt
echo "detta är datafil 2." > datafil.txt
touch filfyra.txt
echo "fil fyra." > filfyra.txt

Kul att du delar med dig verkligen för en som aldrig pluggat sådant här i skolan och är helt självlärd men du har mkt att lära, det hjälper dig inte men lämna in detta.. Sen resten är väldigt rörigt.

touch fill{ett,tvaa,tree}.txt mkdir -p laborationtva/{/katalogtva,katalog1}

Är det lärromaterialet som lärt dig använda '>' på en ny fil?

Det är fell och framförallt farlgit det stårt i manualen på första 20 sidorna och förklaarar varför också.Varför skriva "touch" och sedan ">" ? Du skriver ju över filen med ">" ändå så du behöver inte touch i det läget. räcker men det är _livsfarligt_ för >skriver över filen och blir zero

echo "hello world" > filett.txt echo "hello world" |tee filett.txt

Använder du tee så kan du se stdout samtidigt som du skriver till filen.

För att göra ett komnmando igen, så använd "!!" (arrow left,up,right.down) fanns inte förr.

Permalänk
Medlem
Skrivet av Larrxi:

Ähh detta är en nybörjarkurs så det är väl nybörjare som ska läsa den? Eller ska man gå denna kurs efter att man har lärt sig allt? 🤣
...

Nej, men å andra sidan övar du inte ekvationssystem innan du lärt dig de fyra räknesätten...

Visa signatur

Citera mig för svar.
Arch Linux

Permalänk
Kontot avslutas

Tack för vänligheten alla och tack för tipset Dimman. Har en fråga här som jag har googlat men inte fått svar på.
Kan ett kommando ha körts/exkeverats även om terminalen inte ger nåt svar? Tänker att kommandon och saker borde köras ibland även om terminalen inte svarar för när jag har gjort chmod så svarar inte terminalen med nåt men när jag efter kommandot kör ls -la så har ändringar skett och kommandona har alltså körts.
Kan/ har alltså de två sista kommandona här under exekverats? Har filen körts och exekverats?
me@wsl:~$ cd Documents
-bash: cd: Documents: No such file or directory
me@wsl:~$ cd "Documents"
-bash: cd: Documents: No such file or directory
me@wsl:~$ ls
filett.txt lab2.sh laborationtva
me@wsl:~$ sudo chmod +x lab2.sh
me@wsl:~$ sudo sh lab2.sh
me@wsl:~$

Permalänk
Medlem
Skrivet av nm96:

Tack för vänligheten alla och tack för tipset Dimman. Har en fråga här som jag har googlat men inte fått svar på.
Kan ett kommando ha körts/exkeverats även om terminalen inte ger nåt svar? Tänker att kommandon och saker borde köras ibland även om terminalen inte svarar för när jag har gjort chmod så svarar inte terminalen med nåt men när jag efter kommandot kör ls -la så har ändringar skett och kommandona har alltså körts.
Kan/ har alltså de två sista kommandona här under exekverats? Har filen körts och exekverats?
me@wsl:~$ cd Documents
-bash: cd: Documents: No such file or directory
me@wsl:~$ cd "Documents"
-bash: cd: Documents: No such file or directory
me@wsl:~$ ls
filett.txt lab2.sh laborationtva
me@wsl:~$ sudo chmod +x lab2.sh
me@wsl:~$ sudo sh lab2.sh
me@wsl:~$

Ett kommando behöver inte skriva ut någon output(till stdout). Kommandon ger dock en status i form av en exit code. Du kan skriva ut den direkt efter att kommandot körts genom exempelvis `echo $?`. Kör du något emellan så kommer du få det kommandots exit code så viktigt att vara noggrann.

Permalänk
Medlem
Skrivet av nm96:

Tack för vänligheten alla och tack för tipset Dimman. Har en fråga här som jag har googlat men inte fått svar på.
Kan ett kommando ha körts/exkeverats även om terminalen inte ger nåt svar? Tänker att kommandon och saker borde köras ibland även om terminalen inte svarar för när jag har gjort chmod så svarar inte terminalen med nåt men när jag efter kommandot kör ls -la så har ändringar skett och kommandona har alltså körts.
Kan/ har alltså de två sista kommandona här under exekverats? Har filen körts och exekverats?
me@wsl:~$ cd Documents
-bash: cd: Documents: No such file or directory
me@wsl:~$ cd "Documents"
-bash: cd: Documents: No such file or directory
me@wsl:~$ ls
filett.txt lab2.sh laborationtva
me@wsl:~$ sudo chmod +x lab2.sh
me@wsl:~$ sudo sh lab2.sh
me@wsl:~$

Som nämnts tidigare i tråden, du verkar försöka köra change directory till en mapp som inte finns där du förväntar dig att den ska. Som tidigare när du stod i C:\Windows\System32 och försöker köra cd Documents så borde kommandoraden varit

cd..
cd..
cd users
cd DittUserName
cd Documents

Då kommer du nå en sökväg som heter C:\Users\DittUserName\Documents, vilket är platsen där dokumentmappen vanligen ligger i Windows. Det finns snyggare sätt att navigera dit också men när man precis börjat med filhantering så är sättet ovan ganska tacksamt för att illustrera varje steg.

Vet inte om det hjälper men ett mer verklighetsbaserat sätt att illustrera det på: Du ska hämta ett brev i din brevlåda, om du tar 10 steg framåt från din ytterdörr så är du vid din brevlåda och kan hämta brevet. Det du gör just nu är att du står i duschen vänd mot väggen och försöker ta samma 10 steg framåt men oavsett hur många gånger du gör det så är du inte vid brevlådan.

Permalänk
Kontot avslutas

Tack för tipset. Kom in i Documents nu. Bara ett helvete att jag inte har några mappar och filer där trots att de finns i this pc >documents och onedrive> documents. Har försökt få filer och mappar att dyka upp i C:\Users\username\Documents men förgäves. Filer och mappar hämtas nu tillbaka med nån slags recovery tool och hoppas att det hjälper. Ska lab2.sh kunna köras även om det inte finns några mappar och filer alls och inte då lab2.sh heller i den sökvägen? Det räckte med din instruktion, duschberättelsen kanske är pedagogisk för andra.

Permalänk
Kontot avslutas

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

Permalänk
Kontot avslutas

var gång som jag har kört kommandot sh lab2.sh med resultatet att det bara kommer en ny rad med terminalens användarnman utan svar fårn terminalen så har mapparoch filer skapats nånstans, det är bara skapade pgm.sh som kanske ser konstig ut. så lab2.sh borde då ha körts, eller?

Permalänk
Medlem
Skrivet av nm96:

REDACTED
me@wsl:~$ cd "Documents"
-bash: cd: Documents: No such file or directory
me@wsl:~$ ls
filett.txt lab2.sh laborationtva <------------- Scriptet har körts!
me@wsl:~$ sudo chmod +x lab2.sh
me@wsl:~$ sudo sh lab2.sh
me@wsl:~$

Se min notering i citatet ovan, där du med "ls" listar resultatfilerna från scriptet lab2.sh.
Om du i denna situtation ger kommandot "pwd" eller "echo $PWD" så kommer du att se var dina filer har skapats.

Lägg till dessa två rader efter rad två i lab2.sh så får du lite mer "liv" i exemplet.

echo hej # Skriver ut hej som kvittens på att scriptet faktiskt körs. pwd # Skriver ut nuvarande position i filsystemet där scriptet körs.