Φόρτωση περιεχομένου...
Φόρτωση περιεχομένου...
Συνδυάστε stdin, stdout, stderr, pipelines και βασική επεξεργασία κειμένου με awk και sed.
Στο Linux, κάθε διεργασία που ξεκινά λαμβάνει αυτόματα τρεις προεπιλεγμένες ροές (streams), γνωστές ως File Descriptors (FD):
bash# Ανακατεύθυνση stdout σε αρχείο (αντικατάσταση / overwrite) echo "PORT=3000" > .env # Προσάρτηση stdout στο τέλος του αρχείου (append) echo "NODE_ENV=production" >> .env # Ανακατεύθυνση stderr σε ξεχωριστό log αρχείο npm run build 2> build_errors.log # Συνδυασμός stdout και stderr στο ίδιο αρχείο npm run build > build_all.log 2>&1 # ή στη σύγχρονη σύνταξη του Bash: npm run build &> build_all.log # Απόρριψη όλων των μηνυμάτων (σιωπηλή εκτέλεση) find / -name "myapp" 2>/dev/null
|)Το pipeline διοχετεύει το stdout της αριστερής εντολής απευθείας στο stdin της δεξιάς, χωρίς να γράφεται ενδιάμεσο αρχείο στο δίσκο:
bash# Εύρεση των 10 πιο συχνών IPs σε ένα access log αρχείο Nginx awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10
awk για Στήλες και ΦιλτράρισμαΤο awk επεξεργάζεται αρχεία γραμμή-προς-γραμμή, διαχωρίζοντας αυτόματα σε πεδία ($1, $2, κ.λπ.):
bash# Εκτύπωση μόνο του ονόματος διεργασίας και του PID από το ps ps aux | awk '{print $2, $11}' | head -15 # Φιλτράρισμα: εμφάνιση γραμμών όπου η χρήση μνήμης ($4) υπερβαίνει το 5% ps aux | awk '$4 > 5.0 {print $2, $4, $11}'
sed για Μαζική Αντικατάσταση (Stream Editor)Το sed είναι ιδανικό για programmatic configuration updates σε CI/CD pipelines:
bash# Αντικατάσταση κειμένου απευθείας στο αρχείο (-i flag) sed -i 's/PORT=3000/PORT=8080/g' /var/www/myapp/.env # Αφαίρεση όλων των κενών γραμμών από ένα αρχείο sed -i '/^$/d' server.conf