Ασκησεις στο linux

...ασύγχρονα μαθήματα Τερματικού

Ασκησεις στο linux

Δημοσίευσηαπό Mibuntu » 16 Δεκ 2011, 15:26

Γεια σε ολο το Forum,ειμαι καινουργιος στο forum και εχω μεινει αρκετα πισω στο linux.. και εχασα αρκετα μαθηματα στο σχολειο λογο Οικογενειακων θεματων
και εχω μεινει λιγο πισω με της ασκησεις, και ηλπιζα πως καποιος με καλυτερες γνωσεις απο μενα να με βοηθουσε λιγο..

Μερικες απο της ασκησεις που εχω ειναι :

1. Φτιάξτε ένα script αρχείο το οποίο να το καλείτε με ένα όρισμα. Αν το όρισμα
είναι η λέξη Hello να σας δίνει μήνυμα "Hello to you too!", αν το όρισμα είναι
Hi να σας δίνει μήνυμα "Hi, how are you?" ενώ αν είναι κάποιο άλλο να σας
δίνει μήνυμα "What does var mean?"

2. Φτιάξτε ένα script αρχείο το οποίο καλώντας το με όρισμα `date` να σας δίνει το
εξής μήνυμα: "Today is day *day* of month *month* *year* and the
time is *time*".

3. Φτιάξτε ένα script αρχείο το οποίο να εμφανίζει ένα μενού στον χρήστη με 3
επιλογές. Κάθε μία από αυτές μπορεί να είναι μία εντολή της επιλογής σας (π.χ. 1.
date, 2. who, 3. ls). Αν ο χρήστης επιλέξει οτιδήποτε διαφορετικό από τα «1», «2»,
«3», να του εμφανίζει μήνυμα λάθους και το script να τερματίζεται

Οποιαδηποτε Βοηθεια Θα με βοηθουσε πολυ;
Mibuntu
babeTUX
babeTUX
 
Δημοσιεύσεις: 5
Εγγραφή: 16 Δεκ 2011, 15:10
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό Ilias95 » 16 Δεκ 2011, 15:41

Τι είδους βοήθεια χρειάζεσαι; Στο γράψιμο των scripts;
Επίσης τα scripts πρέπει να γραφούν σε bash ή σε άλλη γλώσσα;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό Mibuntu » 16 Δεκ 2011, 15:58

Κοιτα το μαθημα που κανουμε ειναι λειτουργικα Συστηματα και Κανουμε ubuntu εντολες πανω στο terminal μεσω τεχτ αρχειου. Προσπαθησα να τις κανω μονος μου αλλα δεν τα καταφερα και πολυ...Δυσκολευμαι στην συνταξη του script και στης εντολες που χρειαζονται για να λειτουργησουν σωστα,αυτα παθαινει κανεις οταν λειπει απο τις Παρουσιασεις των μαθηματων :/
Mibuntu
babeTUX
babeTUX
 
Δημοσιεύσεις: 5
Εγγραφή: 16 Δεκ 2011, 15:10
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό simosx » 16 Δεκ 2011, 16:11

Mibuntu έγραψε:Κοιτα το μαθημα που κανουμε ειναι λειτουργικα Συστηματα και Κανουμε ubuntu εντολες πανω στο terminal μεσω τεχτ αρχειου. Προσπαθησα να τις κανω μονος μου αλλα δεν τα καταφερα και πολυ...Δυσκολευμαι στην συνταξη του script και στης εντολες που χρειαζονται για να λειτουργησουν σωστα,αυτα παθαινει κανεις οταν λειπει απο τις Παρουσιασεις των μαθηματων :/


Off topic:
Εδώ θέλει μεταφορά στην ενότητα https://forum.ubuntu-gr.org/viewforum.php?f=65

Έχεις σύστημα με Ubuntu Linux; Έχει νόημα να σε ενθαρρύνουμε να επιλύσεις τις ασκήσεις με τις δικές σου δυνάμεις.

Στο φόρουμ έχουμε μαθήματα για το τερματικό (οπότε περιλαμβάνει και το φλοιό/shell και τα προγράμματα εντολών / shell scripts.
Δες την ενότητα https://forum.ubuntu-gr.org/viewforum.php?f=65
και συγκεκριμένα το μάθημα στο
https://forum.ubuntu-gr.org/viewtopic.php?f=65&t=18581
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό Ilias95 » 16 Δεκ 2011, 16:23

Ένας πολύ καλός οδηγός για κάποιον που θέλει να μάθει bash scripting είναι αυτός: Bash Guide for Beginners

Χωρίς να έχω ξανασχοληθεί με bash scripting, αλλά έχοντας κάποιες γνώσεις προγραμματισμού και ψάχνοντας λιγάκι στο παραπάνω link:

Άσκηση 1

1) Δημιουργείς ένα αρχείο κειμένου με τον παρακάτω κώδικα:
Κώδικας: Επιλογή όλων
#!/bin/bash
# This is a comment.

if [ "$1" == Hello ]; then
    echo "Hello to you too!"
elif [ "$1" == Hi ]; then
    echo "Hi, how are you?"
else
    echo "What does $1 mean?"
fi

2) Το αποθηκεύεις σαν exercise1.sh και το κάνεις εκτελέσιμο δίνοντας:
Κώδικας: Επιλογή όλων
chmod +x exercise1.sh

3) Το εκτελείς με ένα όρισμα. Παράδειγμα:
Κώδικας: Επιλογή όλων
ilias@ilias-pc:~$ ./exercise1.sh Hello
Hello to you too!
ilias@ilias-pc:~$ ./exercise1.sh Hi
Hi, how are you?
ilias@ilias-pc:~$ ./exercise1.sh milo
What does milo mean?
ilias@ilias-pc:~$ ./exercise1.sh mpanana
What does mpanana mean?
ilias@ilias-pc:~$


Επεξήγηση κώδικα

Η 1η γραμμή (#!/bin/bash) ονομάζεται shebang και δηλώνει ότι το αρχείο θα εκτελεστεί με τον φλοιό bash.
Οποιαδήποτε άλλη γραμμή ξεκινάει με # είναι σχόλιο.
Με τα if, elif, else δημιουργείς μια συνθήκη. Στο τέλος της συνθήκης βάζεις fi.
Το $ συμβολίζει μεταβλητές. Με $1, $2, $3 κλπ συμβολίζονται τα ορίσματα που δίνονται στο πρόγραμμα κατά την εκτέλεση.
Η εντολή echo εκτυπώνει μηνύματα.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό Mibuntu » 16 Δεκ 2011, 17:02

Πω φιλε μου Πραγματικα σε ευχαριστω,με βοηθαει πολυ ο κωδικας για την πρωτη ασκηση, και νομιζω πως ετσι γινεται και η δευτερη:

Κώδικας: Επιλογή όλων
#!/bin/bash
if [ "$1" == date  ]; then
    echo "Today is day *day* of month *month* *year* and the
time is *time*"
else
    echo " Wrong Message"
fi

αν κανω καποιο λαθος εχεις το ελευθερο να μου τα ψαλεις.
Τελευταία επεξεργασία από clepto και 16 Δεκ 2011, 17:28, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: προσθηκη bbcode
Mibuntu
babeTUX
babeTUX
 
Δημοσιεύσεις: 5
Εγγραφή: 16 Δεκ 2011, 15:10
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό Ilias95 » 16 Δεκ 2011, 17:23

Τον κώδικα βάζε τον σε code tags.

Η 2η άσκηση ζητάει κάτι παραπάνω.
Η εντολή date επιστρέφει την ημερομηνία και ώρα του συστήματος σου:
Κώδικας: Επιλογή όλων
ilias@ilias-pc:~$ date
Παρ 16 Δεκ 2011 04:17:12 μμ EET
ilias@ilias-pc:~$

Οπότε θέλει όπου *day*, *month* κλπ. να αντικαταστήσεις με αυτά που σου επιστρέφει η date.
Μια ιδέα είναι να "σπάσεις" το string που δίνει η date σε κομμάτια και να ορίσεις μεταβλητές day, month, year κτλ και ύστερα να τις εκτυπώσεις.
Προσπάθησε να το κάνεις ψάχνοντας και στο google και αν δεν τα καταφέρεις εδώ είμαστε. :)
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό clepto » 16 Δεκ 2011, 17:47

Μεταφέρθηκε στην κατάλληλη ενότητα

1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό Ilias95 » 16 Δεκ 2011, 19:24

@Mibuntu
Επειδή η πρόταση που έκανα παρά πάνω να κάνεις split το string είναι κάτι πιο δύσκολο και ίσως δεν το έχετε διδαχθεί παρατήρησα ότι η date σου δίνει έτοιμες τις πληροφορίες που χρειάζεσαι.

Πχ δίνοντας στο τερματικό:
Κώδικας: Επιλογή όλων
date +%A

Σου επιστρέφει την ημέρα.
Για να δεις όλες τις επιλογές δίνεις:
Κώδικας: Επιλογή όλων
date --help

Γενικώς να ξέρεις ότι κάθε εντολή έχει ένα manual (το οποίο το βλέπεις με "man command") ή σου δίνει τις πιο σημαντικές πληροφορίες αν την εκτλέσεις με παράμετρο --help.

Οπότε τώρα είναι πιο εύκολο να λύσεις την άσκηση.
Ορίστε η λύση αλλά καλύτερα προσπάθησε πρώτα να την υλοποιήσεις μόνος σου:
Spoiler: show
Κώδικας: Επιλογή όλων
#!/bin/bash

day=$(date +%A)
month=$(date +%B)
year=$(date +%Y)
time=$(date +%r)

if [ "$1" == date  ]; then
    echo "Today is day $day of month $month $year and the time is $time"
else
    echo "You must pass date as argument"
fi
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Ασκησεις στο linux

Δημοσίευσηαπό alkisg » 19 Δεκ 2011, 09:23

Η date δέχεται και κείμενο, π.χ.
date '+Today is day %A of month %B of year %Y and the time is %T'

Έτσι αποφεύγουμε να την καλούμε πολλές φορές, για λόγους απλότητας και βελτιστοποίησης.
alkisg
punkTUX
punkTUX
 
Δημοσιεύσεις: 190
Εγγραφή: 26 Μάιος 2008, 11:38
Εκτύπωση

Επόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Μαθήματα Τερματικού

cron