112 votes

Meilleures pratiques et astuces pour la ligne de commande Linux ?

J'aimerais ouvrir une discussion qui permettrait d'accumuler vos meilleures pratiques et astuces en matière de ligne de commande Linux (CLI).

J'ai cherché une telle discussion pour partager le commentaire ci-dessous mais je n'en ai pas trouvé, d'où ce post.

J'espère que nous pourrons tous en tirer des leçons.

Vous êtes invités à partager vos astuces Bash, grep, sed, AWK, /proc et toutes les autres pratiques d'administration système Linux/Unix, Shell et de programmation pour le bénéfice de tous.

0voto

Meta+. en bash pour parcourir le dernier argument des commandes précédentes. Idéal pour exécuter tail et grep dans diverses combinaisons.

0voto

Mohamed Points 793

CTRL+] x pour rechercher en avant le caractère "x", et Meta, CTRL+] x pour une recherche en arrière. Sur la plupart des systèmes, Meta peut être ESC ou ALT. Pour ESC, vous appuyez sur ESC puis relâchez, puis combinez CTRL et ], et enfin appuyez sur le caractère à rechercher. Pour ALT, vous appuyez en même temps sur CTRL + ALT + ], puis sur le caractère à rechercher.

Je trouve que c'est utile lors de l'édition de la commande d'historique.

Pour une commande très longue et très compliquée. J'utilise fc pour ouvrir vi(probablement vim sous linux) pour éditer la commande.

0voto

snuggles Points 196

Pour renommer plusieurs fichiers de façon similaire, j'ai trouvé le script suivant très utile et robuste au fil des ans.

Il met juste la sortie de ls dans votre éditeur de texte préféré. Il suffit de modifier le texte, de l'enregistrer et de le fermer. Les fichiers sont renommés en conséquence.

C'est particulièrement génial lorsque vous combinez cela avec l'édition de la colonne Vi ( Ctrl-v sélectionnez un bloc, I pour insérer avant ou A pour insérer après, tapez le texte, Esc ).

#!/usr/bin/ruby

RM = '/bin/rm'
MV = '/bin/mv'

from = Dir.entries('.').sort; from.delete('.'); from.delete('..')
from.sort!

from.delete_if {|i| i =~ /^\./} # Hidden files

tmp = "/tmp/renamer.#{Time.now.to_i}.#{(rand * 1000).to_i}"

File.open(tmp, 'w') do |f|
  from.each {|i| f.puts i}
end

ENV['EDITOR'] = 'vi' if ENV['EDITOR'].nil?
system("#{ENV['EDITOR']} #{tmp}")

to = File.open(tmp) {|f| f.readlines.collect{|l| l.chomp}}
`#{RM} #{tmp}`

if to.size != from.size
  STDERR.puts "renamer: ERROR: number of lines changed"
  exit(1)
end

from.each_with_index do |f, i|
  puts `#{MV} -v --interactive "#{f}" "#{to[i]}"` unless f == to[i]
end

J'appelle ce script renamer .

0voto

kloucks Points 1530

Pour copier une partie d'un système de fichiers sur un nouveau disque dur, on peut utiliser la méthode suivante

mkfs.ext4 /dev/sdb
mkdir /mnt/newhd
mount /dev/sdb /mnt/newhd/
rsync -av --hard-links --acls --one-file-system --xattrs /home/maxim/ /mnt/newhd/
echo '/dev/sdb /home/maxim ext4 defaults,user_xattr,noatime 0 1' >> /etc/fstab

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X