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?

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'

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.


ç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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.