Bash tips

Δύο μικρά tips.

Read More →

Facepalm of the day

Cisco switches will allow you to add a Vlan to one or more interfaces, even if the Vlan does not exist on the device. MAC addresses will then appear in the MAC database as expected, but traffic will not flow.

Μεταβλητές περιβάλλοντος

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

Όνομα Περιγραφή
$BASH_VERSINFO Περιέχει μόνο την κύρια έκδοση του Bash, π.χ. 4.
$BASH_VERSION Περιέχει την πλήρη έκδοση του Bash, π.χ. 4.2.45(1)-release
$EDITOR Περιέχει την προτίμηση σε επεξεργαστή κειμένου (π.χ. Vi, Emacs).
$LANG Περιέχει το locale που χρησιμοποιείται στο σύστημα σε περίπτωση που δεν είναι ορισμένες οι μεταβλητές τοπικότητας (μπορείτε να τις δείτε με την εντολή locale).
$MAILCHECK Καθορίζει πόσο συχνά (σε δευτερόλεπτα) το BASH θα ελέγχει αν ο χρήστης έχει email, οπότε και εμφανίζει ένα μήνυμα όμοιο με You have new mail in /var/spool/mail/root πριν από το prompt.
$OLDPWD Περιέχει την απόλυτη διαδρομή του αμέσως προηγούμενου φακέλου στον οποίο βρισκόταν ο χρήστης.
$PATH Μια λίστα από διαδρομές φακέλων (χωρισμένες μεταξύ τους με διπλή τελεία :), στους οποίους αναζητά το κέλυφος τα εκτελέσιμα αρχεία των εντολών που πληκτρολογεί ο χρήστης. Αν υπάρχουν περισσότερα από ένα εκτελέσιμα με το ίδιο όνομα, έχει προτεραιότητα εκείνο του οποίου η διαδρομή συναντάται νωρίτερα στην $PATH.
$PWD Περιέχει την απόλυτη διαδρομή του φακέλου στον οποίο βρίσκεται εκείνη τη στιγμή ο χρήστης.
$SHELL Περιέχει την απόλυτη διαδρομή του κελύφους που χρησιμοποιείται. Στις περισσότερες διανομές, από προεπιλογή είναι το /bin/bash.
$XDISPLAYMANAGER Η τιμή είναι είτε XDM, είτε GDM, είτε KDM, ανάλογα με τον προεπιλεγμένο διαχειριστή παραθύρων του γραφικού περιβάλλοντος. Η τιμή συχνά καθορίζεται μέσα στο αρχείο /etc/sysconfig/desktop.
$HOME Η μεταβλητή `$HOME` περιέχει τη διαδρομή για τον προσωπικό φάκελο του χρήστη. Μπορεί να φανεί χρήσιμη σε περιβάλλοντα στα οποία οι προσωπικοί φάκελοι των χρηστών συνδέονται σε πολλά συστήματα ταυτόχρονα μέσω δικτύου (για παράδειγμα μέσω NFS), και η σύνδεση γίνεται σε διαδρομή διαφορετική από την προεπιλεγμένη, για παράδειγμα στο /usr/homes αντί στο /home.

/etc/deluser.conf

The /etc/deluser.conf configuration file contains the defaults for deluser, the tool for deleting users from a system usually found on Debian-based systems. An example of the file:

# /etc/deluser.conf: `deluser' configuration.

# Remove home directory and mail spool when user is removed
REMOVE_HOME = 0

# Remove all files on the system owned by the user to be removed
REMOVE_ALL_FILES = 0

# Backup files before removing them. This options has only an effect if
# REMOVE_HOME or REMOVE_ALL_FILES is set.
BACKUP = 0

# target directory for the backup file
BACKUP_TO = "."

# delete a group even there are still users in this group
ONLY_IF_EMPTY = 0

# exclude these filesystem types when searching for files of a user to backup
EXCLUDE_FSTYPES = "(proc|sysfs|usbfs|devpts|tmpfs)"

rpm

Στις διανομές που είναι βασισμένες στο Red Hat (Fedora, CentOS, και εν μέρει Mandriva, OpenSUSE) το πρόγραμμα rpm μπορεί να διαχειριστεί πακέτα λογισμικού.

Επιλογές

Επιλογή Περιγραφή
--checksig Εντοπίζει την ψηφιακή υπογραφή ενός πακέτου .rpm ώστε να διαπιστωθεί η αυθεντικότητά του.
-e Απεγκαθιστά ένα πακέτο.
-F Αναβαθμίζει ένα πακέτο μόνο αν αυτό προϋπάρχει σε προηγούμενη έκδοση.
-i Εγκαθιστά ένα πακέτο για πρώτη φορά, δηλαδή δεν πρέπει στο σύστημα να υπάρχει ήδη πακέτο με το ίδιο όνομα. Αν υπάρχει τέτοιο πακέτο και είναι σε προηγούμενη έκδοση, δεν το αναβαθμίζει.
-i --test Χωρίς να εγκαθιστά το πακέτο, ελέγχει αν είναι δυνατή η εγκατάσταση. Ο πιο χρήσιμος έλεγχος που εκτελεί είναι για την ικανοποίηση των εξαρτήσεων.
-q Εξετάζει ένα πακέτο. Αν είναι εγκατεστημένο, επιστρέφει τον αριθμό έκδοσης.
-qa Επιστρέφει μια λίστα με όλα τα εγκατεστημένα πακέτα. Χρήσιμο αν θέλετε να πάρετε αυτή τη λίστα και να εγκαταστήσετε ακριβώς τα ίδια πακέτα σε ένα άλλο σύστημα.
-qi Επιστρέφει πληροφορίες για ένα εγκατεστημένο πακέτο. Η έξοδος είναι παρόμοια με εκείνη της εντολής yum info.
-U Εγκαθιστά ένα πακέτο, ή αν υπάρχει σε προηγούμενη έκδοση το αναβαθμίζει.

yum

Το yum είναι ένας μετα-διαχειριστής πακέτων, μπορεί να αναζητήσει για πακέτα λογισμικού σε πηγές που έχει ορίσει ο χρήστης, να τα κατεβάσει από το διαδίκτυο, να επιλύσει τις εξαρτήσεις τους, να τα εγκαταστήσει, και να τα απεγκαταστήσει.

Μπορεί επίσης να εγκαταστήσει ή να ενημερώσει σε νεότερη έκδοση ένα πακέτο .rpm το οποίο έχει κατεβάσει ο χρήστης, αλλά ταυτόχρονα να προσπαθήσει να επιλύσει τις εξαρτήσεις από τα αποθετήρια, με τις εντολές yum localinstall και yum localupdate αντίστοιχα.

Επιλογές

list
Αν εκτελεστεί χωρίς καμμιά παράμετρο, εμφανίζει μια λίστα με όλα τα πακέτα που είναι διαθέσιμα για εγκατάσταση από όλα τα ενεργοποιημένα αποθετήρια. Το πλήθος αυτών των πακέτων ανέρχεται συνήθως σε μερικές δεκάδες χιλιάδες. Αν δοθεί ως παράμετρος ένα όνομα πακέτου, τότε εμφανίζει πληροφορίες για την εγκατεστημένη έκδοση του πακέτου (αν υπάρχει) και την νεότερη διαθέσιμη έκδοση στα αποθετήρια (αν υπάρχει).
info
Εμφανίζει πληροφορίες για ένα πακέτο. Η έξοδος είναι παρόμοια με εκείνη της εντολής rpm -qi.
update
Αναβαθμίζει όλα τα εγκατεστημένα πακέτα στην πιο πρόσφατη έκδοση που υπάρχει διαθέσιμη στα repositories, μαζί με τις εξαρτήσεις τους.
update REGEX
Αναβαθμίζει όλα τα εγκατεστημένα πακέτα, το όνομα των οποίων ταιριάζει στην κανονική έκφραση REGEX, στην πιο πρόσφατη έκδοση που υπάρχει διαθέσιμη στα repositories, μαζί με τις εξαρτήσεις τους.
update --obsoletes
Αναβαθμίζει όλα τα εγκατεστημένα πακέτα στην πιο πρόσφατη έκδοση που υπάρχει διαθέσιμη στα repositories, μαζί με τις εξαρτήσεις τους. Στους ελέγχους για νέες εκδόσεις συμπεριλαμβάνονται και πακέτα που έχουν ξεπεραστεί. Η επιλογή αυτή είναι χρήσιμη για την αναβάθμιση σε νέες εκδόσεις ολόκληρων διανομών.
upgrade
Ίδιο με το yum update --obsoletes.

less

less, similarly to more, can display a page-by-page view of a text document, on the command line. Compared to more, less has more features, the most significant of which is backwards scrolling. In a sense, less is like a version of Vi, but with a restricted feature set.

Navigation

You can navigate in a document with less:

  • Downwards, one line at a time with Enter or Down arrow.
  • Upwards, one line at a time with Up arrow.
  • Downwards, one page at a time with Spacebar, or Ctrl+V, or PageDown.
  • Upwards, on page at a time with Esc+V or PageUp.

Searching

You can search forwards in a document in less with the / key, which will take you to the first instance of the search term used, after the current line. You can also search backwards in the document, by prefixing you search term with ? instead of /.

In both cases, you can jump to the next instance of the search term with n, and to the previous one with N.

Exiting

You can exit less with the q key, or with Ctrl+C.

/etc/sysconfig/iptables

Το αρχείο κανόνων του iptables.

Παραδείγματα

Πρόσβαση ιστού

Μετά την εγκατάσταση κάποιου εξυπηρετητή ιστού (Apache, Lighttp, κλπ) πρέπει να ανοίξετε την θύρα στην οποία «ακούει» ο εξυπηρετητής. Από προεπιλογή είναι η 80. Ο πιο κάτω κανόνας στο αρχείο /etc/sysconfig/iptables ανοίγει την πρόσβαση στη θύρα 80, ανεξάρτητα από την IP που ζητά πρόσβαση:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Απομακρυσμένη πρόσβαση (ssh)

Για να επιτρέψετε την απομακρυσμένη πρόσβαση από οποιαδήποτε IP, μπορείτε να χρησιμοποιήσετε τον ίδιο κανόνα με το προηγούμενο παράδειγμα, αλλάζοντας απλά τον αριθμό της θύρας σε 22 (προεπιλεγμένη θύρα για το ssh). Για περισσότερη ασφάλεια, μπορείτε να περιορίσετε τις διευθύνσεις IP που θα έχουν δικαίωμα ssh στο σύστημα:

-A INPUT -m state --state NEW -m tcp -p tcp --source 192.168.0.0/16 --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j DROP

Στο πιο πάνω παράδειγμα, ο πρώτος κανόνας επιτρέπει την πρόσβαση σε οποιαδήποτε IP ξεκινά από «192.168», και την απαγορεύει σε οποιαδήποτε άλλη.

Αποτροπή αποστολής email

Αν δεν θέλετε οι χρήστες του συστήματος να στέλνουν email από το σύστημα, μπορείτε να απαγορεύσετε την έξοδο της θύρας 25:

-A OUTPUT -p tcp -m tcp --sport 25 -j DROP

Cream

Cream is an advanced text editor, created on top of Vim, and works on Windows, Linux and FreeBSD. As of the latest update of this document (see bottom of page for date), the code commits suggest that the project has been abandoned.

See Also

Ταξινόμηση φακέλων κατά μέγεθος

Μια εντολή για ταξινόμηση των φακέλων κατά μέγεθος στο Bash:

du -hsm | sort -n

Υπολογίζει το μέγεθος όλων των φακέλων σε MegaBytes και τους ταξινομεί σε αύξουσα σειρά μεγέθους. Μια διαφορετική εκδοχή:

du -s * | sort -n | cut -f 2 | xargs -d "\n" du -chs

Καλεί δύο φορές το du, την πρώτη για να πάρει τη λίστα με τους φακέλους και το μέγεθος (σε bytes). Ταξινομεί αριθμητικά, και μετά πασάρει τη λίστα με τα ονόματα μόνο των φακέλων -αυτή τη φορά ταξινομημένη κατά μέγεθος- ξανά στο du. Η επιλογή -d "\n" του xargs καθορίζει το delimiter. Αν παραληφθεί, οι φάκελοι στον οποίων το όνομα περιέχονται διαστήματα θεωρούνται πολλαπλά ορίσματα.

About

Hello, I'm Marios Zindilis and this is my website. Opinions are my own. You also find me on LinkedIn and GitHub.

Unless otherwise specified, content is licensed under CC0.

Search