Προς το περιεχόμενο

[INFO] Η δύναμη της Κονσόλας


Manos-Sx

Προτεινόμενες αναρτήσεις

Και κάτι ακόμα.

Το ~/mplampla θεωρείται absolute path; (δεν νομίζω)

 

Προσωπικά έχω την εντύπωση ότι absolute path μπορούμε να θεωρήσουμε μόνο ότι ξεκινάει από την /.

 

 

Δες αν μπορείς να απαντήσεις και στην ερώτηση σχετικά με το absolute path που έκανα edit στο προηγούμενο post μου. Μόλις είδα σε κάποιες σημειώσεις ότι το θεωρεί absolute path. Με την ίδια λογική θεωρείται και το $ΗΟΜΕ/whatever absolute;

Δεν το είδα αυτό.

 

Δεν ξέρω να σου απαντήσω definitively σε αυτό. Υπάρχουν δύο αντικρουόμενες απόψεις για αυτό.

 

Η μία ομάδα λέει ότι absolute είναι μόνο το path που ξεκινά με / ενώ όλα τα άλλα είναι relative και ότι τα ~/τάδε, $HOME/δείνα είναι κατά συνέπεια relative επειδή δεν αρχίζουν με /.

 

Η άλλη ομάδα λέει ότι absolute είναι το path το οποίο μπορεί να προσπελαστεί ανεξάρτητα από τη θέση που βρίσκεσαι. Δηλαδή στο "κάποια_εντολή bin/ls" το bin/ls είναι relative επειδή θα δουλέψει σωστά μόνο όταν βρίσκεσαι μέσα στο /usr σε αντίθεση με το "κάποια εντολή /usr/bin/ls".

 

Με αυτό το σκεπτικό, το $HOME/δείνα είναι absolute επειδή όπου και να βρίσκεσαι θα προσπελάσεις το ίδιο αρχείο.

 

Αυτό που βρίσκω εγώ χαζό στη πρώτη θεώρηση είναι ότι το $HOME δεν υφίσταται σαν path αλλά θα γίνει expand από το shell οπότε το $HOME/δείνα γιατί να μην είναι absolute αφού στην πραγματικότητα ισοδυναμεί με το /home/τάδε_χρήστης/δείνα που αρχίζει με / ?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 889
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

 

Αυτό που βρίσκω εγώ χαζό στη πρώτη θεώρηση είναι ότι το $HOME δεν υφίσταται σαν path αλλά θα γίνει expand από το shell οπότε το $HOME/δείνα γιατί να μην είναι absolute αφού στην πραγματικότητα ισοδυναμεί με το /home/τάδε_χρήστης/δείνα που αρχίζει με / ?

Απ' την άλλη εγώ σκέφτομαι ότι η HOME είναι απλά μια μεταβλητή οπότε το $HOME/kati μπορεί να δείχνει κάπου και δύο στιγμές/εντολές μετά να δείχνει κάπου αλλού. Ενώ το /myhome/kati θα δείχνει πάντα στο ίδιο σημείο. Το ότι γίνεται expand πρώτα όμως, είναι και αυτό valid point.

 

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

 

Ευχαριστώ όπως και να 'χει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

γνώμη μου είναι οτι εξαρτάται από τη μεταβλητή που έχεις κάθε φορά

οι συγκεκριμένες env μεταβλητές γίνονται absolute path, οπότε absolute θα το χαρακτήριζα κι εγω

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με αυτό το σκεπτικό, το $HOME/δείνα είναι absolute επειδή όπου και να βρίσκεσαι θα προσπελάσεις το ίδιο αρχείο.

 

Αυτό που βρίσκω εγώ χαζό στη πρώτη θεώρηση είναι ότι το $HOME δεν υφίσταται σαν path αλλά θα γίνει expand από το shell οπότε το $HOME/δείνα γιατί να μην είναι absolute αφού στην πραγματικότητα ισοδυναμεί με το /home/τάδε_χρήστης/δείνα που αρχίζει με / ?

Εφόσον το $HOME/tade μπορεί να είναι /home/litsa/tade ή να είναι /home/soula/tade ανάλογα με το ποιός το τρέχει, νομίζω ότι δεν μπορεί να θεωρηθεί absolute path...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εφόσον το $HOME/tade μπορεί να είναι /home/litsa/tade ή να είναι /home/soula/tade ανάλογα με το ποιός το τρέχει, νομίζω ότι δεν μπορεί να θεωρηθεί absolute path...

Πολυ σωστα.

Για αυτο το βαφτισαν: absolute path, επειδη ειναι απολυτο και δεν επιδεχεται η λεξη περιορισμους και αμφισβητησεις του τυπου (οπότε το $HOME/δείνα γιατί να μην είναι absolute αφού στην πραγματικότητα ισοδυναμεί με το /home/τάδε_χρήστης/δείνα που αρχίζει με / ?)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εφόσον το $HOME/tade μπορεί να είναι /home/litsa/tade ή να είναι /home/soula/tade ανάλογα με το ποιός το τρέχει, νομίζω ότι δεν μπορεί να θεωρηθεί absolute path...

Πολυ σωστα.

Για αυτο το βαφτισαν: absolute path, επειδη ειναι απολυτο και δεν επιδεχεται η λεξη περιορισμους και αμφισβητησεις του τυπου (οπότε το $HOME/δείνα γιατί να μην είναι absolute αφού στην πραγματικότητα ισοδυναμεί με το /home/τάδε_χρήστης/δείνα που αρχίζει με / ?)

Θεωρητικά έχετε δίκιο, πρακτικά όμως τίποτα δεν είναι απόλυτο και πάντα θα υπάρχουν διαφοροποιήσεις και αμφισβητήσεις. Με το σκεπτικό σας κανένα path δεν είναι absolute. Λόγω των symbolic links το /usr/local/mitsos/bin/tade μπορεί να δείχνει τη μία στιγμή στο /usr/share και την επόμενη στιγμή οπουδήποτε αλλού.

 

Για αυτό η δεύτερη ομάδα υποστήριξε την έννοια ότι absolute είναι το path που (στο ίδιο σύστημα αν θέλετε) προσπευλαύνει το ίδιο πράγμα ανεξάρτητα από οποιονδήποτε κατάλογο το τρέχεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

To $ΗΟΜΕ/mplah δέν είναι τίποτα γιατί απλούστατα δέν είναι reference στο filesystem, είναι ένα convention του οποιουδήποτε shell χρησιμοποιείς. Αφού γίνουν τα shell expansions τότε μπορείς να πείς άν ένα path είναι absolute ή relative.

Και για να μή λέμε πράματα στον αέρα ιδού:

http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11

 

 

 

If the pathname begins with a slash, the predecessor of the first filename in the pathname shall be taken to be the root directory of the process (such pathnames are referred to as "absolute pathnames"). If the pathname does not begin with a slash, the predecessor of the first filename of the pathname shall be taken to be the current working directory of the process (such pathnames are referred to as "relative pathnames")

Από το IEEE open standard.

 

Καλησπέρα σε όλους

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παιδιά σε ένα μηχάνημα που δεν θέλω να κάνω restart δοκίμασα κάποια αρχεία mkv για να δω αν παίζουν και μου έμεινε ο vlc να τρέχει και να τρώει 99% της CPU (σύμφωνα με το top).

 

Δεν μπορώ να το σκοτώσω ούτε μέσα από το top (πατώντας k και την pid) ούτε με την εντολή "killall vlc".Υπάρχει κάποια άλλη εντολή;

 

Το μηχάνημα τρέχει Debian LXDE και φαίνεται και το εικονίδιο του VLC στο tray αλλά δεν κάνει κάτι με δεξί ή αριστερό κλικ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παιδιά σε ένα μηχάνημα που δεν θέλω να κάνω restart δοκίμασα κάποια αρχεία mkv για να δω αν παίζουν και μου έμεινε ο vlc να τρέχει και να τρώει 99% της CPU (σύμφωνα με το top).

 

Δεν μπορώ να το σκοτώσω ούτε μέσα από το top (πατώντας k και την pid) ούτε με την εντολή "killall vlc".Υπάρχει κάποια άλλη εντολή;

 

Το μηχάνημα τρέχει Debian LXDE και φαίνεται και το εικονίδιο του VLC στο tray αλλά δεν κάνει κάτι με δεξί ή αριστερό κλικ.

Δοκίμασες με SIGKILL ? Το killall -9 vlc (ή kill -9 pid ή κάποιο ισοδύναμο) δουλεύει ?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ευχαριστώ ημίθεε, προφανώς η εντολή που έπρεπε να εκτελέσω πρώτα από όλες είναι η man killall ;)

:-D

Όλες οι "kill" εντολές από τη μάνα τους στέλνουν SIGTERM (15) το οποίο δέχεται η εφαρμογή και μπορεί να κάνει τις δουλειές της όπως να κλείσει ανοιχτά αρχεία και διάφορα τέτοια. Όταν όμως η εφαρμογή έχει κολλήσει τελείως, μπορείς να στείλεις SIGKILL (9) που δεν μπορεί να γίνει trap και σκοτώνει απευθείας την εφαρμογή.

 

Δυστυχώς υπάρχουν λίγες περιπτώσεις που ούτε αυτό λειτουργεί και η μόνη λύση είναι reboot. Αυτό συνήθως γίνεται σε περιπτώσεις με io σε κάποιο device όπως πχ να διαβάζεις από μια κάμερα, κτλ.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δυστυχώς υπάρχουν λίγες περιπτώσεις που ούτε αυτό λειτουργεί και η μόνη λύση είναι reboot. Αυτό συνήθως γίνεται σε περιπτώσεις με io σε κάποιο device όπως πχ να διαβάζεις από μια κάμερα, κτλ.

Εντάξει, δεν είμαι τρελός τελικά. Μου έχει συμβεί τουλάχιστον δύο φορές σε arch linux να μην μπορώ να σκοτώσω με τίποτα διεργασία. Αν θυμάμαι καλά την μία ήταν ο firefox και την άλλη κάποια εφαρμογή του open office.

 

Δεν είχα συνδεδεμένο άλλο εξωτερικό io device πλην των standard mouse, keyboard, speakers.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Να θυμίσω ότι όταν όλα έχουν κολλήσει είναι προτιμότερο το γνωστό κόλπο με τους ελέφαντες αντί για reboot πατώντας το κουμπάκι του PC:

https://en.wikipedia.org/wiki/Magic_SysRq_key

 

Κρατάς πατημένα τα Alt και SysRq και πατάς κατά σειρά και χωρίς βιασύνη (άσε και 1-2 δευτερόλεπτα πριν από κάθε πάτημα) τα πλήτρα R, E, I, S, U και B.

 

REISUB είναι τα αρχικά της φράσης: Raising Elephants Is So Utterly Boring (προφανώς δεν σημαίνει κάτι, απλώς είναι μια φράση σουρεαλιστική για να τη θυμάσαι!).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

REISUB είναι τα αρχικά της φράσης: Raising Elephants Is So Utterly Boring (προφανώς δεν σημαίνει κάτι, απλώς είναι μια φράση σουρεαλιστική για να τη θυμάσαι!).

Μια απορία που μου έρχεται κατά καιρούς είναι αν χρησιμοποιεί κανείς τη φράση για να το θυμάται ? :) Υποτίθεται είναι μνημονική φράση για να σε βοηθήσει να θυμάσαι τα αρχικά αλλά προσωπικά ποτέ δεν μπόρεσα να τη θυμηθώ ενώ το reisub το βρίσκω πολύ εύκολο. Και εύηχο είναι και ευκολομνημόνευτο. Το Rei είναι όπως το όνομα Ray ενώ το Sub είναι όπως το subroutine σε basic, fortran, γλώσσες γενικά.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...