Κατανοηση bashrc και bash_profile

...εγκαταστάσεις, αναβαθμίσεις, διαχείριση partitions, boot-loader, κλπ

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

Κανόνες Δ. Συζήτησης
Στην ενότητα αυτή γράφουμε θέματα/ προβλήματα μόνο για το UBUNTU ή τα παράγωγά του.

Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Stefanos » 25 Σεπ 2015, 02:11

Καλησπέρα. Προσπαθώ να καταλάβω τη διαφορά μεταξυ των δυο.
Η απορια μου προεκυψε απο την ανάγκη να τρεχω ενα cgi χωριςνα χρειαζεται καθε φορα να πληκτρολογω όλο το path και να ο τρέχω απλα. Οποτε μαλλον export PATH=$PATH: blah blah. Αλλα μετα απο reboot αυτο χανεται.
Γνώσεις ⇛ Linux: Ελάχιστες ┃ Προγραμματισμός: Ελαχιστος┃ Αγγλικά: Πολύ Καλά
Λειτουργικό ⇛ Linux Ubuntu 16.04
Προδιαγραφές ⇛ Dual core Intel i5-5200U CPU @ 2,2 GHz│4GB Ram│ AMD Radeon R5 M330 1 GB│ Intel Wildcat Point-LP High Definition Audio Controller
Laptop ⇛ Lenovo G50-80
Stefanos
punkTUX
punkTUX
 
Δημοσιεύσεις: 230
Εγγραφή: 03 Αύγ 2008, 03:59
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό fog » 25 Σεπ 2015, 09:45

Για το τι είναι το καθένα δες εδώ.
Αν θες μια διαδρομή να βρίσκεται στο path σου, να χρησιμοποιείς δηλαδή από εκεί μέσα εκτελέσιμα χωρίς την ανάγκη να πληκτρολογείς όλη τη διαδρομή ή να την κάνεις πρώτα export, την προσθέτεις μέσω του .bashrc στο path.

Προσθέτεις μέσα στο .bashrc μια γραμμή της μορφής πχ. :
Κώδικας: Επιλογή όλων
export PATH=/home/fog/localbin:$PATH

βάζοντας τη διαδρομή ή τις διαδρομές που θες. Για να δεις όλες τις διαδρομές που βρίσκονται στο path δίνεις την εντολή:
Κώδικας: Επιλογή όλων
echo $PATH
Γνώσεις Linux: ✔✔✔✓✓ ┃ Προγραμματισμού: ✓✓✓✓✓ ┃ Αγγλικών: ✔✔✔✓✓
Ubuntu 16.04 64bit ‖ Lubuntu 16.10 64bit || 4.4.0-34-generic
Intel Core i7-6700HQ CPU @ 3.50GHzRAM 12GB ‖Toshiba Satellite P50-C
Intel Skylake Integrated Graphics ⋮ nVidia GM107M [GeForce GTX 950M]
enp4s0: Realtek RTL8111 Gigabit Ethernet Controller⋮ wlp3s0: Intel Wireless 3165
blog || github
Άβαταρ μέλους
fog
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 655
Εγγραφή: 31 Μαρ 2015, 13:33
Τοποθεσία: /home/fog
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Stefanos » 26 Σεπ 2015, 17:35

Ευχαριστω!!

Επισης ερώτηση: οταν φτιάψνουμε ενα script που ειναι καλο να το σωζουμε? ας πουμε εχω ένα τωρα που ειναι στο /home. Αλλα κάτι μου λεει οτι δεν ειναι εκει η θέση του....
Γνώσεις ⇛ Linux: Ελάχιστες ┃ Προγραμματισμός: Ελαχιστος┃ Αγγλικά: Πολύ Καλά
Λειτουργικό ⇛ Linux Ubuntu 16.04
Προδιαγραφές ⇛ Dual core Intel i5-5200U CPU @ 2,2 GHz│4GB Ram│ AMD Radeon R5 M330 1 GB│ Intel Wildcat Point-LP High Definition Audio Controller
Laptop ⇛ Lenovo G50-80
Stefanos
punkTUX
punkTUX
 
Δημοσιεύσεις: 230
Εγγραφή: 03 Αύγ 2008, 03:59
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Learner » 26 Σεπ 2015, 18:18

Stefanos έγραψε:Επισης ερώτηση: οταν φτιάψνουμε ενα script που ειναι καλο να το σωζουμε?

Προσωπικά τα "πετάω" στον κατάλογο bin, τον οποίο δημιουργώ μέσα στον home μου.

Κώδικας: Επιλογή όλων
mkdir bin/
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Stefanos » 26 Σεπ 2015, 19:50

Κατσε γιατι τα μπερδευω.... άλλο το /home/bin και αλλο το /home/stefanos/bin ???
Γνώσεις ⇛ Linux: Ελάχιστες ┃ Προγραμματισμός: Ελαχιστος┃ Αγγλικά: Πολύ Καλά
Λειτουργικό ⇛ Linux Ubuntu 16.04
Προδιαγραφές ⇛ Dual core Intel i5-5200U CPU @ 2,2 GHz│4GB Ram│ AMD Radeon R5 M330 1 GB│ Intel Wildcat Point-LP High Definition Audio Controller
Laptop ⇛ Lenovo G50-80
Stefanos
punkTUX
punkTUX
 
Δημοσιεύσεις: 230
Εγγραφή: 03 Αύγ 2008, 03:59
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Learner » 26 Σεπ 2015, 20:44

Stefanos έγραψε:άλλο το /home/bin και αλλο το /home/stefanos/bin ???

Ναι, άλλο το ένα και άλλο το άλλο. Μιλάω για το /home/stefanos/bin (όχι το /home/bin). Με την εντολή παραπάνω μπορείς να δημιουργήσεις μόνο το /home/stefanos/bin, το /home/bin θέλει δικαιώματα διαχειριστή (δεν έχει και νόημα, μιας και κάτω από τον κατάλογο /home συνήθως δημιουργούμε προσωπικούς καταλόγους άλλων χρηστών).
Όταν λέμε "στον προσωπικό μου/σου κατάλογο" ή "στον /home μου"συνήθως εννοούμε μέσα στον /home/username/.
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Stefanos » 26 Σεπ 2015, 21:09

Το πιασα..!!! Αλλα ειτε το έχω στο /home "χυμα" ειτε σε ενα φακελο π.χ. /home/bin δεν ειναι καπως το ιδιο ??

Νομιζα οτι επρεπε να ειναι σε κάποιο φακελο του /usr/bin
Γνώσεις ⇛ Linux: Ελάχιστες ┃ Προγραμματισμός: Ελαχιστος┃ Αγγλικά: Πολύ Καλά
Λειτουργικό ⇛ Linux Ubuntu 16.04
Προδιαγραφές ⇛ Dual core Intel i5-5200U CPU @ 2,2 GHz│4GB Ram│ AMD Radeon R5 M330 1 GB│ Intel Wildcat Point-LP High Definition Audio Controller
Laptop ⇛ Lenovo G50-80
Stefanos
punkTUX
punkTUX
 
Δημοσιεύσεις: 230
Εγγραφή: 03 Αύγ 2008, 03:59
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Learner » 26 Σεπ 2015, 22:09

Stefanos έγραψε:Αλλα ειτε το έχω στο /home "χυμα" ειτε σε ενα φακελο π.χ. /home/bin δεν ειναι καπως το ιδιο ??

Ναι, περίπου το ίδιο είναι.

Stefanos έγραψε:Νομιζα οτι επρεπε να ειναι σε κάποιο φακελο του /usr/bin

Δεν είναι ανάγκη να το τοποθετήσεις σε κατάλογο που απαιτεί δικαιώματα (ή ο κάτοχος του είναι ο) root. Στο Ubuntu υπάρχει μια μικρή διαφορά, το αρχείο .profile περιέχει ήδη μέσα κώδικα ο οποίος επιτρέπει στον κατάλογο /home/username/bin να συμπεριλαμβάνεται στην PATH. Με αυτόν τον τρόπο, ότι ρίξεις μέσα σε αυτόν τον κατάλογο, θα μπορείς να το καλείς(εκτελείς) κατευθείαν από το τερματικό χωρίς να χρειάζεται το absolute(full) path.
Δίνοντας
Κώδικας: Επιλογή όλων
cat .profile

θα δεις τον κώδικα ο οποίος κάνει αυτή τη δουλειά
Κώδικας: Επιλογή όλων

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Stefanos » 15 Οκτ 2015, 18:18

Επανερχομαι λιγο.

Εχω εγκαταστησει τον apache απο source code στο /usr/local/apache2. Οποτε για να μπορω με apachectl -k start | stop να ξεκιναω/σταματω τον apache πρεπει να δωσω στο $PATH που ειναι εγκατεστημένος ο apache. Οποτε εχουμε και λεμε:

Κώδικας: Επιλογή όλων
echo 'export PATH=$PATH:/usr/local/apache/bin' >> /home/stefanos/.profile


Δίνοντας απλά apachectl -k stop όλα καλα. Ο apache σταματαει να τρεχει. Δίνοντας apachectl -k start | restart παιρνω το παρακάω μηνυμα:

Κώδικας: Επιλογή όλων
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
httpd not running, trying to start
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs


Οπότε υποθέτω ότι πρεπει να ειμαι root. δίνοντας λοιπον: sudo apachectl -k start | restart μου δινει:

Κώδικας: Επιλογή όλων
sudo: apachectl: command not found


Οπότε τι γινεται σε αυτη την περίπτωση?

Επίσης είδα κάπου ότι μπορουμε να κάνουμ export $PATH και στο /etc/environment. Με τη διαφορα ότι εκει μπορούν απλά όλοι οι χρήστες να "χρησιμοποιοιυν" το $PATH αυτο
Γνώσεις ⇛ Linux: Ελάχιστες ┃ Προγραμματισμός: Ελαχιστος┃ Αγγλικά: Πολύ Καλά
Λειτουργικό ⇛ Linux Ubuntu 16.04
Προδιαγραφές ⇛ Dual core Intel i5-5200U CPU @ 2,2 GHz│4GB Ram│ AMD Radeon R5 M330 1 GB│ Intel Wildcat Point-LP High Definition Audio Controller
Laptop ⇛ Lenovo G50-80
Stefanos
punkTUX
punkTUX
 
Δημοσιεύσεις: 230
Εγγραφή: 03 Αύγ 2008, 03:59
Εκτύπωση

Re: Κατανοηση bashrc και bash_profile

Δημοσίευσηαπό Learner » 16 Οκτ 2015, 12:33

Γιατί έκανες εγκατάσταση από source code ; υπάρχει σημαντική διαφορά σε σχέση με το έτοιμο πακέτο που υπάρχει στα αποθετήρια του Ubuntu, το οποίο είναι αυτό-ρυθμιζόμενο;

Stefanos έγραψε:
Κώδικας: Επιλογή όλων
sudo: apachectl: command not found

Έχει σχέση με την sudo.
Μπορείς να δίνεις
Κώδικας: Επιλογή όλων
sudo env "PATH=$PATH:/usr/local/apache/bin" apachectl start # ή restart

μπορείς επίσης να ρυθμίσεις την sudo τροποποιώντας την μεταβλητή secure_path η οποία για λόγους ασφαλείας είναι οριοθετημένη στο Ubuntu.

Το /etc/environment είναι για μεταβλητές περιβάλλοντος.
Διάβασε σχετικά: https://help.ubuntu.com/community/EnvironmentVariables
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Επόμενο

Επιστροφή στο Λειτουργικό Σύστημα