Comment remplacer une séquence de commandes par une seule commande sous Linux?

0

Comment pouvons-nous remplacer les commandes suivantes

netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n

par notre commande spéciale comme ceci:

ab1

ma moyenne est que je veux utiliser ma commande

ab1

au lieu de

netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n

Comment puis-je faire ceci?

Dani
la source

Réponses:

4

Vous pouvez utiliser un alias ou installer un script exécutable dans un répertoire inclus dans votre $ PATH.

En supposant que bash, un alias "global" puisse être défini dans /etc/bash.bashrc(ou ~/.bashrcsi un seul utilisateur a besoin de cet alias pour être défini). En supposant que ksh, ce soit en /etc/ksh.kshrc(ou ~/.kshrc). La définition d'alias peut être faite en ajoutant une ligne telle que:

alias ab1='netstat -nat | awk "{print \$6}" | sort | uniq -c | sort -n'
SYN
la source
Je pense que sous Linux, nous avons une commande spéciale et cette commande est de remplacer la commande par une autre commande. J'ai oublié cette commande. Je veux recharger mon esprit avec la réponse dont j'ai besoin
Dani
ce fichier est vide /etc/bash.bashrc m nous devrions le créer?
Dani
vous n'utilisez peut-être pas bash. Qu'est-ce que echo $SHELLvous dit?
SYN
2
À moins que vous ne vouliez forcer l’alias sur tous les utilisateurs du système, n’utilisez pas / etc / bashrc; utiliser ~ / .bashrc
Jeff Schaller
echo $ SHELL / bin / bash
Dani
1
alias ab1='netstat -nat | awk '\''{print $6}'\'' | sort | uniq -c | sort -n'

Je recommanderais de placer cela dans votre ~/.bashrcdossier.

Jeff Schaller
la source
ça ne peut pas marcher. Les guillemets simples ne s'échapperont pas comme prévu.
SYN
Bon point; Je ne suis pas à un shell à tester; Je pense qu'il vous faut: '\' 'pour chacun'
Jeff Schaller
-bash: ab1: commande non trouvée
Dani
1

Mettez le code ci-dessous dans votre fichier .bashrc.

ab1(){
netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n
}

et source le fichier bashrc

. ~/.bashrc

maintenant, tapez ab1 dans votre terminal

Kamaraj
la source