Η γραμμή εντολών!

...χαλαρή κουβεντούλα, γενικός σχολιασμός, φιλοσοφικές συζητήσεις, meeting point / γνωριμία

Συντονιστής: konnn

Re: Η γραμμή εντολών!

Δημοσίευσηαπό Qdata » 17 Ιουν 2011, 11:15

roman έγραψε:ls | grep -v .c


Και έτσι το ίδιο αποτέλεσμα έχει! :)
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό lucinos » 17 Ιουν 2011, 16:25

Κώδικας: Επιλογή όλων

ls|grep -v *.c

δεν κατάλαβα γιατί ξεχνάτε το αστράκι. Ναι σωστό είναι και αυτό. Έχω τουλάχιστον άλλες δυο λύσεις. :)
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό Qdata » 17 Ιουν 2011, 17:21

lucinos έγραψε:δεν κατάλαβα γιατί ξεχνάτε το αστράκι.


Κι όμως με το αστ(ε)ράκι αυτό δεν λειτουργεί!Για δες τι αποτέλεσμα βγάζει! :problem:
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό lucinos » 17 Ιουν 2011, 17:43

έφτιαξα μερικά αρχεία:
Κώδικας: Επιλογή όλων

$ ls
dfsasd.o dsfa.c dsfafdsc sfdafdsa.co

δυο απλές δοκιμές:
Κώδικας: Επιλογή όλων

$ ls|grep -v .c
dfsasd.o

Κώδικας: Επιλογή όλων

$ ls|grep -v *.c
dfsasd.o
dsfafdsc
sfdafdsa.co


και άλλες δοκιμές που έκανα νωρίτερα το *.c λειτουργει σωστά ενώ το .c όχι.
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό Qdata » 17 Ιουν 2011, 18:29

Κώδικας: Επιλογή όλων
$ ls
arxeio1.c arxeio3.c test1.txt test3.txt
arxeio2.c arxeio.c test2.txt test.txt


Κώδικας: Επιλογή όλων
$ ls|grep -v .c
test1.txt
test2.txt
test3.txt
test.txt


Αν το arxeio.c περιέχει μέσα του κώδικα της C:
Κώδικας: Επιλογή όλων
$ ls|grep -v *.c
arxeio.c:#include <stdio.h>
arxeio.c:
arxeio.c:main()
arxeio.c:{
arxeio.c: printf("Hello World!");
arxeio.c:}


ενώ αν κανένα αρχείο σε .c δεν περιέχει κώδικα τίποτα:
Κώδικας: Επιλογή όλων
$ ls|grep -v *.c
$


:problem: :think:
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό evolgen » 17 Ιουν 2011, 18:39

Κώδικας: Επιλογή όλων
find . ! -name "*.c"

:roll:
Το να μειώνεις ένα έργο ελεύθερου λογισμικού, επειδή θεωρείς το δικό σου καλύτερο,
είναι απαράδεκτη συμπεριφορά και δε συμβαδίζει με τις αρχές του ελεύθερου λογισμικού.

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό lucinos » 17 Ιουν 2011, 19:30

@Qdata
μάλλον δεν ξέρουμε πώς λειτουργεί η grep ...
ίσως δεν είναι τυχαίο ότι δεν την έχω συμπεριλάβει στον οδηγό μου! :D

@evolgen
ωραίος
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό lucinos » 13 Ιούλ 2011, 09:51

Σχετικά με το πρόβλημα που έθεσα, ας ανακεφαλαιώσουμε τις ιδέες ασχέτως αν καταφέραμε να τις κάνουμε να λειτουργήσουν. Όλες οι ιδέες που θα αναφέρω είναι καταρχήν έγκυρες και σίγουρα πρέπει να υπάρχει τρόπος να υλοποιηθούν.

1) Δεν αναφέρθηκε αλλά η πρώτη ιδέα που προσωπικά μού ήρθε στο μυαλό είναι να χρησιμοποιήσουμε απλά το bash ως έχει. Σίγουρα όχι πολύ όμορφο αλλά μπορεί να γίνει με:
Κώδικας: Επιλογή όλων

ls -d *{[!c],[!.]c}

Μού κάνει εντύπωση που μόνο εγώ το σκέφτηκα.

2) Η δεύτερη ιδέα είναι απλά να χρησιμοποιηθούν οι υπάρχουσες επιλογές στις ίδιες τις εντολές. Για παράδειγμα όπως βρήκε ο roman για παράδειγμα η ls έχει αυτήν την δυνατότητα. Το μόνο μειονέκτημα είναι ότι βασιζόμαστε στις δεδομένες δυνατότητες τών εντολών.

3) Η τρίτη ιδέα είναι να χρησιμοποιηθεί κάποιο τρίτο πρόγραμμα για να διαχωρίσει την ήρα από το στάρι. Πάλι ο roman σκέφτηκε την grep. Είναι σωστή ως ιδέα και σίγουρα κάπως πρέπει να μπορεί να λειτουργήσει. Κατά την γνώμη μου η καλύτερη ιδέα και κρίμα που δεν την ολοκληρώσαμε.

4) Επίσης όπως σκέφτηκε ο evolgen μπορεί να χρησιμοποιηθεί ένα πρόγραμμα ειδικευμένο στο ψάξιμο αρχείων. Συγκεκριμένα μπορεί να την κάνει την δουλειά το find

5) Τέλος μού κάνει εντύπωση που κανείς δεν σκέφτηκε να γουγλίσει το πρόβλημα. Μα κανένας; Να δει τέλος πάντων αν το bash έχει κάτι αντίστοιχο όπως το zsh. Και η αλήθεια είναι ότι έχει. Ίσως όχι εξίσου ισχυρό αλλά μια τόσο απλή δουλειά μπορεί να γίνει.
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό lucinos » 21 Ιούλ 2011, 08:46

Είχα ένα βίντεο που ο ήχος του ήταν σε ξεχωριστό αρχείο. Ούτε ο vlc και ούτε ο media player το βρίσκανε αυτόματα. Έψαξα ματαίως στις επιλογές μέσω γραφικού περιβάλλοντος. Τελικά η λύση βρέθηκε μόνο από γραμμή εντολών:
Κώδικας: Επιλογή όλων

vlc βίντεο --input-slave=ήχος


Να το έχετε υπόψιν σας.

Παλιότερα έχω πετύχει και άλλες περιπτώσεις που η επιλογή είναι μόνο στην γραμμή εντολών.
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: Η γραμμή εντολών!

Δημοσίευσηαπό lucinos » 09 Σεπ 2011, 11:08

Η παρουσίαση έχει φτάσει πλέον σε ένα ιδιαίτερα καλό σημείο νομίζω.

Πλέον την χώρισα σε τρία μέρη:
Μέρος πρώτο
Μέρος δεύτερο
Μέρος τρίτο

Επιπλέον υπάρχει μια σύνοψη (που θα συνεχίσω να συμπληρώνω αλλά αργά) και σχετική βιβλιογραφία.

Είναι νομίζω ιδιαίτερα κατάλληλη για τον κάθε αρχάριο, είτε τον ενδιαφέρει η γραμμή εντολών είτε δεν τον ενδιαφέρει, καθώς όλοι πιστεύω πρέπει να έχουν ένα μίνιμουμ κατανόησης. Οττιδήποτε άλλο έχω δει ως τώρα είτε δεν εξηγεί καλά το θέμα (αυτό δεν είναι απαραιτήτως κακό, μπορεί να μην έχει σκοπό να το εξηγήσει καλά), είτε είναι πολύ εκτενές (περιλαμβάνοντας θέματα που λογικά δεν ενδιαφέρουν κάποιον που πρώτη φορά ασχολείται. Πιστεύω λοιπόν ότι καλύπτεται ένα σημαντικό κενό.

Προσωπικά θα ήθελα να ακούσω γνώμες αλλά ιδιαίτερα από τούς πρωτάρηδες αν γίνεται να μού δώσουν μια εικόνα για την παρουσίαση:
α) τούς βοήθησε καθόλου;
β) τούς δυσκόλεψε κάπου;
γ) τούς κούρασε;
δ) πόσο χρόνο τούς πήρε;
ε) τούς έμεινε κάποια ιδιαίτερη απορία;
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Προηγούμενη

Επιστροφή στο Περί ανέμων