J'ai beaucoup de commandes à exécuter régulièrement, souvent avec la moindre variation.
En ce moment, je les stocke tous .bash_history
et les utilise CTRL- Rpour y accéder, mais je me demande s’il existe un meilleur moyen. Ce que je cherche:
- Facile d'ajouter une nouvelle commande
- Facile à rechercher et à ré-exécuter une commande voulue
- Évitez les commandes indésirables dans les suggestions
Malheureusement, bash_history n’est pas aussi fort à la troisième demande: si je fais quelques cd
- uns et ls
cela remplit rapidement le fichier d’historique. J'ai récemment appris HIST_SIZE
que vous pouvez configurer l'historique pour éviter les doublons ou certaines commandes, mais avant de configurer tout cela, je voulais m'assurer que c'était le meilleur moyen.
shell
command-history
Konerak
la source
la source
alias
peut - être plus utile. par exemple.alias gfc="git fetch origin"
Réponses:
Je trouve très utile les commandes readline suivantes
(être conscients qu'ils sont différents de l'habituel
reverse-search-history
,forward-search-history
, lié à Ctrl- R, Ctrl- S).J'ai ces commandes associées à Ctrl- Upet Ctrl- Downmettant les lignes suivantes dans
~/.inputrc
:Comment ils fonctionnent: écrivez quelques caractères du début de la commande, appuyez sur Ctrl- Upet la prochaine commande plus ancienne commençant par ce préfixe sera affichée, appuyez à nouveau pour voir le suivant, et ainsi de suite. Lorsque vous êtes satisfait, après avoir éventuellement modifié la commande, appuyez sur Enterpour exécuter.
la source
"\e[B": history-search-forward
et"\e[A": history-search-backward
HISTFILESIZE
et / ouHISTSIZE
(zsh ne prend en charge queHISTSIZE
, bash les deux) pour vous assurer que votre mémoire tampon est suffisamment grande. La question SO bash HISTSIZE vs. HISTFILESIZE? peut illuminer plus loin.Autre astuce: j'utilise parfois des commentaires pour marquer / marquer une commande:
puis:
la source
$_bookmark
. On pourrait faire valoir qu'il s'agit d'un pirate horrible exploitant le fait que les variables inexistantes s'étendent à rien, mais cela fonctionne certainement, avec la mise en garde que les espaces ne sont pas autorisés (utilisez _ à la place).Bien que de portée très limitée, je voudrais souligner ces deux espaces réservés d'extension:
est un développement d'espace réservé pour la dernière commande. Utile si vous avez oublié de mettre
sudo
avant la commande.répète le dernier paramètre. Utile si vous voulez répéter une commande différente avec
a/very/long/path/name/you/do/not/want/to/type/again
la source
Utilisez 'alias'
alias
est un excellent outil pour cela.Lorsque vous utilisez un alias, c'est exactement comme si vous l'aviez dactylographié, c'est donc assez flexible. Par exemple, vous pouvez l'utiliser avec des tuyaux:
Vous devriez pouvoir faire de "légères variations" en passant tous les drapeaux que vous n'avez pas déjà spécifiés.
la source
Je crée des scripts shell minimaux pour mes commandes fréquentes et leur donne des noms abrégés. Ils sont tous stockés au même endroit, auquel on ajoute
PATH
.De cette façon, j'ai un accès raccourci à des commandes très complexes et, contrairement à,
alias
je peux transformer les parties modifiables de ma tâche en arguments de ligne de commande de mon raccourci.la source
Je conserve une copie de .bash_history dans Git . Pour simplifier cela, j'ai mis
dans .bashrc et les commandes suivantes (modifiées pour une utilisation générale) dans un script de nettoyage
que je lance avant d’ajouter des lignes
git gui
. Puisque le fichier d'historique est modifié avec chaque commande, j'ai également une commande spéciale pour mettre à jour ce référentiel spécifique:la source
HISTCONTROL=ignorespace
, ce qui est important pour ne pas encombrer l’histoire parfois.Parmi toutes les autres réponses ici impliquant l'histoire.
J'ai mis
dans ~ / .bash_profile
En plus des autres commentaires concernant l'histoire
Une autre fonctionnalité utile ...
Commencer un rappel de l'histoire avec
se souviendra de la dernière commande qui a commencé avec les premières lettres
par exemple:
Vous n'avez pas mentionné si vous utilisez ou non une interface graphique ou uniquement une ligne de commande. Si vous utilisez une interface graphique, vous pouvez utiliser l'un des gestionnaires de Presse-papiers persistants pour copier / coller les commandes, les ID utilisateur, les mots de passe, les URL, etc. couramment utilisés.
la source
!find<ESC>CTRL-E
ça marche, mais je doute que je puisse m'en souvenir demain. Qu'est-ce que l'ESC CTRL-E?Apprendre à utiliser Ctrl-Ret Ctrl-Spermet de rechercher facilement les commandes que vous recherchez dans l'historique, et vous avez déjà trouvé la variable d'environnement HISTCONTROL ignorer les doublons et modifier le site du fichier d'historique de bash.
Je fais habituellement beaucoup Ctrl-Rde Ctrl-Echangements suivis et modifiés, si je sautais une commande trouvée en appuyant Ctrl-Rtrop souvent, Ctrl-Sà la rescousse.
la source
Je préfère toujours stocker les dernières commandes utilisées et leur sortie.
la source
En plus des bonnes réponses ci-dessus, si vous utilisez un gui basé sur kde ou gnome, alors AutoKey peut être incroyablement utile.
Il vous permet de créer des phrases déclenchées en saisissant quelques caractères ou en appuyant sur une touche de raccourci. Ces phrases sont ensuite substituées ou ajoutées à votre saisie.
Il prend également en charge les scripts écrits en python que vous pouvez faire faire presque n'importe quoi si vous connaissez python. Je ne connais pas encore python, mais je suis déjà en train de recevoir des scripts très basiques pour faire des choses ordonnées.
Tout semble provenir de votre clavier, de sorte que cela fonctionne avec toutes les applications acceptant la saisie au clavier - et avec votre bureau lui-même.
Il a beaucoup d'options contrôlant comment et où ces choses sont activées, vous pouvez donc en avoir certaines qui ne fonctionnent que dans votre console et d'autres qui ne fonctionnent que dans une autre fenêtre. Vous pouvez également configurer les phrases pour qu'elles s'exécutent dès que vous tapez la chaîne qui les déclenche ou attendez de leur donner le mot OK.
la source
Comme d’autres l’ont dit, alias est ton ami. Pour des choses un peu plus compliquées (quand vous avez besoin d'arguments quelque part entre les instructions), j'utilise des fonctions dans mon .zshrc, comme:
cela fonctionne comme localiser (je l'utilise quand, pour une raison quelconque, db n'est pas disponible). Ou
pour un substitut de killall.
la source
En plus d’utiliser Cntl-Rpour regarder en arrière dans le
.bash_history
, j’ai aussi un fichier README dans le~/develop
répertoire où je mets de longues commandes comme pourgit
/svn
, afin que je puisse y revenir plus tard quand j’aurai besoin. De même, je~/install/README
prévois de créer un fichier contenant tous les noms de paquetages habituels que j’installe habituellement après l’installation d’une nouvelle version de Linux / Ubuntu. L’idée est donc d’avoir un fichier README dans chaque répertoire, par exemple Vidéo, Audio, ... et de leur indiquer les commandes / conseils courants que vous devrez peut-être connaître ultérieurement.la source