Fonctionnalités cachées de Linux


64

Réponses:


52

Pour lancer le bal, je trouve que l' écran est essentiel:

Lorsque screen est appelé, il crée une seule fenêtre avec un shell (ou la commande spécifiée), puis s’écarte de votre chemin pour vous permettre d’utiliser le programme normalement. Ensuite, à tout moment, vous pouvez créer de nouvelles fenêtres (plein écran) contenant d’autres programmes (y compris plusieurs shells), supprimer la fenêtre active, afficher la liste des fenêtres actives, activer et désactiver la journalisation de la sortie, copier le texte entre fenêtres, afficher l'historique de défilement, basculer d'une fenêtre à l'autre, etc. Toutes les fenêtres exécutent leurs programmes de manière totalement indépendante. Les programmes continuent de s'exécuter lorsque leur fenêtre n'est pas visible et même lorsque toute la session d'écran est détachée du terminal de l'utilisateur.


Quelqu'un at-il quelque chose à dire sur le déploiement des profils d'écran avec Ubuntu 9.04? Je les ai regardées pendant un moment, mais je ne leur ai pas
laissé

12
OMG! écran à nouveau?
setatakahashi

@ xkcd150, ils sont assez similaires, mais le plus gros gain est la ligne d'état. Il montre toutes vos fenêtres plus un tas de choses sur la machine.
staticsan

Et si vous voulez une bonne version de l'écran, utilisez tmux;)
Personne

45

Peut-être que je ne les utilise pas tous les jours, mais je les utilise fréquemment:

  • strace Découvrez quels fichiers sont chargés par le processus.
  • htop Un top plus joli.
  • mtr ping + traceroute combinés
  • lynx / links / w3m Si vous avez besoin d'une navigation sur la console
  • ettercap Excellent renifleur de réseau (je le préfère à WireShark)
  • scripting bash Chaque administrateur * nix devrait le savoir.
  • Un langage de programmation. Pour les choses plus complexes, évitez les scripts bash et utilisez quelque chose comme python / perl / ruby ​​/ tcl / ... (j'utilise Lisp)
  • Midnight Commander peut être idéal pour les gens qui ont aimé Norton Commander.
  • irssi Vous ne savez jamais quand vous voulez simplement demander quelque chose sur IRC.
  • wget / curl Téléchargez des éléments à partir de la ligne de commande.
  • scp Copier des choses sur ssh
  • lftp / ncftp Clients FTP sur les consoles.
  • iotop Vérifiez ce qui stresse vos disques
  • nmap bon scanner de port

J'ajouterais aussi
PiL

Les deux documents bash TLDP sont très mauvais.
Adaptr

33

J'ai été surpris de constater que vous pouvez exécuter des applications GUI distantes sur SSH, à l'aide du paramètre "-X". Par exemple:

# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &

La fenêtre gedit apparaît sur ma machine locale, modifiant le fichier "my.cnf" sur le serveur.

Je suppose que cela ne fonctionne que si votre ordinateur client dispose d'un environnement X, autrement dit, pas sous Windows. Mais cela fonctionne très bien sur mon Mac!


9
en utilisant xming sourceforge.net/projects/xming, vous pouvez également le faire fonctionner sous Windows!
xkcd150

3
Le transfert SSH utilise un cryptage qui ralentit tout. Si vous êtes sur un réseau local sécurisé, vous pouvez simplement envoyer des programmes d’un bureau Linux à une autre session X d’ordinateurs Linux. Très utile. J'avais l'habitude de faire tourner des films via mplayer comme ça sur mon bureau principal qui était branché sur le stero à l'une des extrémités du salon. Le son de mplayer sortait alors de la chaîne stéréo mais l’image parviendrait à mon ordinateur portable (via Ethernet) à l’autre bout du salon qui était branché au projecteur de données. Génial cinéma maison.
Gareth

5
Au lieu d'ajouter le -X à chaque fois, vous pouvez mettre à jour votre ssh_config avec une ligne hôte correspondant à vos hôtes internes et à votre espace d'adressage 'Host .domain.org 192.168. . * 'et activer l'option' ForwardX11 yes '
Zoredache

Je me suis habitué à -Y, mais je n'ai jamais appris la différence.
Notmyfault

-Y est un transfert X11 de confiance. C'est beaucoup plus sécurisé que -X (simple transfert X11). De nombreuses configurations sshd par défaut ne permettent pas -X maintenant, seulement -Y. Si vous utilisez -X, vous rencontrez des erreurs étranges, les applications se ferment avec des erreurs "MIT MAGIC COOKIE", puis utilisez -Y. Conclusion: n'utilisez pas -X, seulement -Y
wazoox le

33

Lsof est souvent ignoré, c’est un outil très utile. lsof vous permet d'afficher une liste de tous les fichiers ouverts sur le système, qui les utilise / ce qui les utilise, etc.

Par exemple:

root@tower:~ # umount /mnt/hardy
umount: /mnt/hardy: device is busy
umount: /mnt/hardy: device is busy
root@tower:~ # lsof | grep /mnt/hardy
bash       5966       root  cwd       DIR      253,2     1024          2 /mnt/hardy
root@tower:~ #

Maintenant, je vois que je suis connecté à un shell dans un autre terminal et / mnt / hardy est mon répertoire de travail actuel. Donc, je peux soit tuer ce shell, soit aller sur l’autre terminal et sortir de ce répertoire pour pouvoir le démonter.

C'est vraiment un exemple trivial, il est très pratique pour nettoyer les infestations occasionnelles de «bot». Les options sont nombreuses, voir man lof pour plus de détails.


2
La fusion est une autre astuce intéressante si vous n’êtes intéressé que par un fichier ou un point de montage.
bdonlan

1
Caché à coup sûr. Je cherche cette fonctionnalité depuis des lustres. (Je suis un noob cependant)
cgp

Lsof est vraiment magnifique. Combiné avec l'idée d'UNIX selon lequel tout (ou presque) est un fichier, il peut faire des choses étonnantes. Beaucoup de choses qui semblent initialement impossibles ou difficiles à faire s'avèrent être résolues avec un oneliner grâce aux options de lsof.
Pman


26

La pile réseau peut être laissée en fonctionnement après l’arrêt du système. Je ne sais pas s'il s'agit de la série de noyaux 2.6.x, mais sur les versions plus anciennes, vous pouvez configurer le pare-feu / le routage, puis arrêter le système sans un arrêt , laissant uniquement la pile réseau en cours d'exécution. Cela vous permettrait de créer un pare-feu bon marché (bien que statique) qui "ne puisse pas être piraté" - car il n'y a rien à pirater, car il n'y a pas de programmes ou de services, juste la partie de la pile réseau du noyau qui passe les paquets en avant et en arrière. ..


Sensationnel. Vraiment cool! +1 Je vais certainement essayer ceci avec un noyau 2.6 quand j'ai du temps libre.
wzzrd

C'est génial, mais comment est-ce que c'est impardonnable? Le noyau ne doit-il toujours pas fonctionner? Ou est-ce un noyau minimal?
Cdeszaq

7
"Noyau"? De quel "noyau" parlez-vous? Lorsqu'il passe dans ce mode, le seul code en cours d'exécution est le / pile réseau /. Aucune planification de tâches, aucune API, code, services, espace utilisateur, rien, zip, nada ... juste le son léger de paquets qui résonnent via Ethernet ... Voyez cela plus comme un appareil embarqué avec deux fonctions dans la vie - acceptez et envoyer des paquets. Je suppose que vous pouvez "pirater" ceci dans le sens où vous pouvez essayer de passer à travers des paquets, mais vous ne pouvez rien / directement / attaquer dans la pile elle-même.
Avery Payne

24

J'aime "localiser" - un moyen beaucoup plus facile de trouver des fichiers que le génial "trouver. -Name xxxx -print". Notez que vous devez utiliser la commande updatedb avec celle-ci pour mettre à jour votre index de fichier. voir les pages de manuel pour plus de détails.


4
Heureusement, de nombreuses distributions Linux incluent updatedb dans cron.daily :-).
Matt Solnit

1
C'est aussi beaucoup, beaucoup plus rapide que trouver.
cgp

Il convient de souligner que certaines personnes considèrent la localisation comme un risque pour la sécurité. Cela étant dit, je l'utilise tout le temps :-)
baudtack

Les versions récentes de loc ont le commutateur -i pour ignorer les cas, très pratique.
niXar

Et en ce qui concerne la sécurité, il existe des versions de localisation sécurisées, qui vous permettent de "trouver" uniquement les fichiers que l'utilisateur connecté peut réellement voir.
Jürgen A. Erhard

19

Je trouve "ngrep" vraiment utile pour déboguer le code réseau sur des serveurs distants sans avoir à dérouter des fichiers tcpdump:

ngrep -d any -W byline port 80

par exemple, vous montrera les requêtes et réponses HTTP en direct.

Une autre chose que j'ai souvent trouvée utile est le commutateur "-e" de strace:

strace -p <pid> -e trace=open

affichera tous les appels système ouverts () pour un pid donné, et

strace -p <pid> -e trace=\!rt_sigprocmask

exclura tous les appels à rt_sigprocmask () de la sortie (utile pour le débogage du code RoR, qui semble effectuer énormément de ces appels lorsqu'il est conçu pour utiliser pthreads).


Maintenant, je commence vraiment à aimer Linux. :)
LE

17
apropos

DESCRIPTION Chaque page de manuel contient une brève description. apropos recherche dans les descriptions les occurrences de mot clé.

gyaresu@debian:~/bin$ apropos ettercap
etter.conf (5)       - Ettercap configuration file
ettercap (8)         - (unknown subject)
ettercap_curses (8)  - (unknown subject)
ettercap_plugins (8) - (unknown subject)

Je l'utilise toujours à la man -kplace, mais mon orthographe est altérée.
Mctylr

15

Heureusement, je n'ai eu besoin que de quelques fois, mais la clé Magic SysRq reste l'une de mes fonctions cachées préférées de tous les temps.

Alt + SysRq + RSEIUB


1
+1 Magic SysRQ est d'or. N'oubliez pas que "L'élevage des éléphants, c'est tellement ennuyeux", qui indique dans quel ordre utiliser les clés, bien que l'ordre ne soit pas figé. C’est pourquoi RSEIUB est utilisé ci-dessus: il synchronise les données sur le disque avant de donner les commandes 'terminate' et 'kill' au lieu de l’inverse. L'ordre correct est discutable.
Wzzrd

Un autre aide-mémoire: BUSIER (orthographié à l'envers).
Mei

13
NAME
 units -- conversion program

DESCRIPTION
 The units program converts quantities expressed in various scales to their 
equivalents in other scales.  The units program can only handle multiplicative
scale changes.  It cannot convert Celsius to Fahrenheit, for example.
It works interactively by prompting the user for input:

     You have: meters
     You want: feet
             * 3.2808399
             / 0.3048

     You have: cm^3
     You want: gallons
             * 0.00026417205
             / 3785.4118

     You have: meters/s
     You want: furlongs/fortnight
             * 6012.8848
             / 0.00016630952

     You have: 1|2 inch
     You want: cm
             * 1.27
             / 0.78740157

12

Ce n'est pas vraiment caché, mais peut-être pour ceux qui n'ont aucune expérience, mais j'aime vraiment pouvoir donner des listes et laisser bash les développer comme dans:

cp arq{,.bak}

ce qui est la même chose que taper

cp arq arq.bak

J'utilise aussi les raccourcis de l'historique (je ne pense pas que ce soit le bon terme, mais ...) comme

!! 

répéter la dernière commande, ou

^foo^bar 

remplacer foo par bar dans la dernière commande


12

ssh-copy-id pour transférer les clés ssh. L'ancienne méthode consistait à chatter la clé sur SSH et encore plus âgée à scp la clé puis à la clé. Si vous utilisez un port ssh non standard, cela fera l'affaire pour vous.

ssh-copy-id -i / chemin / vers / clé '-p nom d'hôte non standard'

Autrement..

ssh-copy-id -i / chemin / vers / clé nom_hôte


11

Consoles virtuelles. La plupart des gens savent comment utiliser (Ctrl-) Alt-F1 pour se rendre à la première console, etc., mais que se passe-t-il si vous en avez plus de 12? Vous pouvez utiliser les touches Alt-Gauche et Alt-Droite pour parcourir les autres. :-RÉ


wow, mec, à ce moment-là, utilisez simplement l'écran. hehe :) je l'ai dans mon .screenrc pour montrer une barre des tâches en bas me permettant de savoir que les écrans sont ouverts
Roy Rico

et quelle id la 12ème console exécute un environnement de bureau (par exemple, gnome)?
Behrooz

11

J'aime le paquet debian-goodies:

Description: Petits utilitaires de style boîte à outils pour les systèmes Debian
 Ces programmes sont conçus pour s’intégrer aux outils de shell standard,
 les étendre pour fonctionner sur le système de packaging Debian.
 .
  dgrep - Recherche une regex dans tous les fichiers des packages spécifiés
  dglob - Génère une liste de noms de paquets correspondant à un modèle
 .
 Ceux-ci sont également inclus, car ils sont utiles et ne justifient pas
 leurs propres paquets:
 .
  debget - Récupère un .deb pour un paquet dans la base de données APT
  dpigs - Montre quels paquets installés occupent le plus grand espace
  debman - Visualisez facilement les pages de manuel à partir d'un binaire .deb sans extraire
  debmany - Sélectionne les pages de manuel des paquets installés ou désinstallés
  checkrestart - Aide pour trouver et redémarrer des processus utilisant d'anciens
                 versions des fichiers mis à niveau (telles que les bibliothèques)
  popbugs - Affiche une liste personnalisée de bogues critiques pour la publication, basée sur
                 paquets que vous utilisez (en utilisant les données du concours de popularité)

et aussi moreutils, qui est fondamentalement d’impressionnants outils de tuyauterie sur roues:

Description: utilitaires supplémentaires unix
 C’est une collection grandissante d’outils Unix auxquels personne ne pensait
 écrire il y a trente ans.
 .
 Jusqu'à présent, il comprend les utilitaires suivants:
  - éponge: absorber l'entrée standard et écrire dans un fichier
  - ifdata: obtient les informations sur l'interface réseau sans analyser la sortie d'ifconfig
  - ifne: lance un programme si l'entrée standard n'est pas vide
  - vidir: éditer un répertoire dans votre éditeur de texte
  - vipe: insère un éditeur de texte dans un pipe
  - ts: entrée standard d'horodatage
  - combine: combine les lignes de deux fichiers en utilisant des opérations booléennes
  - pee: entrée standard des tuyaux
  - zrun: décompresse automatiquement les arguments en commande
  - méspipe: conduit deux commandes, en retournant le statut de sortie de la première
  - isutf8: vérifie si un fichier ou une entrée standard est utf-8
  - lckdo: exécuter un programme avec un verrou maintenu
Page d'accueil: http://kitenet.net/~joey/code/moreutils/

8

Une excellente "fonctionnalité" que j'utilise tous les jours au travail: possibilité de faire écouter SSH sur le port 443 pour pouvoir créer un tunnel qui contourne mon pare-feu professionnel, me permettant ainsi d'exécuter un proxy SOCKS local acheminé par SSH vers mon serveur Linux faisant face à Internet. .

Je peux complètement ignorer le pare-feu de mon entreprise.


3
Cela me fait toujours rire de penser aux personnes qui croient que vous pouvez "verrouiller" un réseau. Si vous laissez un seul port sur lequel le trafic peut s’écouler, vous êtes foutu.
baudtack

Et s’ils voient 3 Go de données circuler sur le port 443 à partir de votre ordinateur?
Wadih M.

Ajoutez le tire-bouchon au nix, et même les proxies https ne sont pas un problème !!
Niall Donegan

@ Wadih.M: c’est ainsi: de ssh à 443, renvoyez un paquet udp de la machine distante à un autre port avec netcat.send un autre paquet udp de votre emplacement à la machine.congrats.port distante, le port est perforé.
Behrooz


8

L’une des fonctionnalités les plus intéressantes de Linux, par opposition à Windows, réside dans le fait qu’il n’ya pratiquement aucune fonctionnalité cachée. Espérons que toutes les fonctionnalités non documentées sont suffisamment importantes pour savoir que la communauté fait son travail.


7

En voici quelques-unes que j'ai régulièrement utilisées:

  • sar - montre l'activité du système
  • vmstat - statistiques de mémoire virtuelle
  • iostat - stats io
  • pkill- like pgrepmais vous permet de tuer l'ID de processus retourné
  • xargs -I<string> - permet de remplacer des chaînes avec des données canalisées
  • at - planifier une tâche
  • tkdiff- diffutilité graphique

Ce ne sont probablement pas "cachés", mais je les trouve extrêmement utiles:

  • df -hk - affiche l'utilisation du disque dans un format lisible par l'homme
  • ls -ltr - liste des fichiers triés par date
  • while :; do...done- Remplacement (Bash) pour watchsi indisponible
  • perl -e- lancer un Perlextrait de la ligne de commande
  • free -kt - afficher les informations sur la mémoire (kilooctets avec total)

Je pense qu'il est plus facile d'écrire while true; do ...quewhile [ 1 ]; do ...
ptman

6

Commencez par cet article avec quelques astuces Linux. Mon préféré est pstree, qui affiche vos processus sous forme d'arborescence afin que vous puissiez voir quel processus est engendré.

Curl bat wget hors de wget pour à peu près tout ce que vous utiliseriez pour wget.

zgrep et zless sont parfaits pour la recherche de fichiers journaux compressés afin que vous n'ayez pas à les transférer par gunzip ou à laisser des éléments non compressés dans / var / log.


Synopsis, pour les paresseux ;-) 1.pgrep (comme ps meets grep) 2.pstree (liste les processus sous forme d'arborescence) 3.bc (un langage de calculatrice de précision arbitraire) 4.split (divise des fichiers volumineux en morceaux) 5 .nl (lignes de nombres) 6.mkfifo (permet à deux commandes de communiquer via un canal nommé) 7.ldd (affiche les dépendances de bibliothèques partagées) 8.col (supprime les sauts de ligne) 9.xmlwf (vérifie si un document XML est bien formé) 10.lsof (liste des fichiers ouverts)
nom d'utilisateur

(GNU) ps possède des drapeaux pour l’impression d’une arborescence. Y a-t-il autre chose que d'être plus facile à se souvenir de passer pour pstree?
Pman

Pourquoi curl serait mieux que wget? Et: zgrep et zless ne sont que le début; il y a aussi zcat et zmore.
Mei

6

ESC + .

'Colle' le dernier paramètre de la ligne précédente dans l'invite en cours

par exemple

ls -l /home/someuser/somedir/somefile

suivi par

rm ESC + .

Se traduit par

rm /home/someuser/somedir/somefile

C'est génial. Je ne savais pas ça.
Andrew Taylor

5

Je vois la yescommande très gentille:

yes | do_you_agree

De la page de manuel:

NAME
       yes - output a string repeatedly until killed

SYNOPSIS
       yes [STRING]...
       yes OPTION

5

Le concept est que tout sous Linux est un fichier .

Toutes les configurations sont dans des fichiers texte et tout ce qui se trouve sous Linux est traité comme un fichier. C'est une approche beaucoup plus simple qui rend très facile de changer les choses sous Linux. Sous Linux, même votre système de fichiers lui-même peut être visualisé sous forme de fichier.


Si vous aimez ce concept Unix de base, vous aimerez Plan9 OS.
Wazoox

4

C'est open source. Rien n'est "caché" si vous prenez la peine de regarder.


Malheureusement, l'open source a tendance à rendre les choses "cachées" plutôt difficiles à regarder.
Spoike

5
J'aurais prétendu le contraire - si une fonctionnalité est cachée dans une application source fermée, c'est au dev-shop de la divulguer. Dans une application open source, la fonctionnalité est à la portée de tous. En outre, le nombre de personnes en développement actif est généralement beaucoup plus important (plus de personnes connaissent et parlent de fonctionnalités «cachées»). Enfin, le développement open source étant largement axé sur la communauté, les utilisateurs se parlent généralement des fonctionnalités cachées.
Tom Wright

Je ne suis pas du tout le raisonnement de @ Spoike. Oui, il y a plus à regarder, mais ce que vous voyez est ce que vous obtenez.
Paul Tomblin

Je pense que vous discutez de la sémantique. Que diriez-vous de renommer "Fonctionnalités masquées de Linux?"
Spoulson

Je partiellement argumenter en faveur de Spoike que peut - être les choses sont « cachées » à cause du manque général de bonne à jour la documentation. Pour ne pas dire que cette affirmation est valable pour tous les projets, il existe cependant de nombreux projets pour lesquels une documentation complète (et je ne parle pas simplement de guides d'utilisation) manque quelque peu. Les fonctionnalités administratives de KDE, notamment en ce qui concerne la gestion des paramètres dans les fichiers rc et les effets réels de la définition d'un champ spécifique immuable, en sont un exemple parfait. Dans de nombreux cas, je me suis retrouvé à regarder dans le code source pour savoir comment les choses sont gérées.
Jason Mock

4

La caractéristique cachée est qu'il n'y a aucune caractéristique cachée. Le système fournit une quantité d'énergie énorme à laquelle vous avez un accès complet. Vous devez comprendre chaque élément et chaque outil disponible pour savoir quelle puissance est à votre portée.

Vous devriez commencer par comprendre chaque commande de / bin, / sbin, / usr / bin, / usr / sbin et tous les fichiers virtuels de / proc. Lisez les pages de manuel, d’autres documents et les sources si nécessaire.

Si vous n'êtes pas à l'aise pour lire une page de manuel ou pour lire le code source, c'est votre fonction cachée.



3
  • od- dump des fichiers au format octal et autres. Utile pour vérifier par exemple s'il y a de la merde de nomenclature au début du fichier
  • file - quel pourrait être le type de fichier d'un fichier donné?
  • lshw, lsusb, lspci- matériel de liste
  • tracepath - avons-nous affaire à un problème de MTU ici?
  • netwox contient plus de 200 outils liés au réseau
  • ip - pour la configuration / information du réseau
  • sysctl - informations sur le système de fichiers / réseau / noyau
  • ebtables - iptables pour bridge
  • vconfig - configuration du VLAN
  • brctl - Configuration du pont
  • socat- netcatsur les stéroïdes
  • ipgrab- tcpdumpcomme un utilitaire qui imprime des informations d'en-tête détaillées
  • dig - Quoi de neuf avec le serveur DNS maintenant?


3

Je viens de trouver celui-ci aujourd'hui:

dmidecode :
rapporte des informations sur le matériel de votre système, comme décrit dans le BIOS de votre système, conformément à la norme SMBIOS / DMI. Ces informations incluent généralement le fabricant du système, le nom du modèle, le numéro de série, la version du BIOS, le numéro d'inventaire, ainsi que de nombreux autres détails présentant un degré d'intérêt et une fiabilité variables, en fonction du fabricant. Cela inclut souvent l’état d’utilisation des connecteurs de la CPU, des connecteurs d’extension (AGP, PCI, ISA, par exemple) et des connecteurs de module de mémoire, ainsi que la liste des ports d’entrée / sortie (série, parallèle, USB).

Il est nettement plus facile de répondre aux questions concernant somerandomserver27 dans les installations de colo!


Vous aimerez aussi lspci, lsscsi, lsusb :)
wazoox

Eh oui, j'utilise les commandes ls * régulièrement - je ne savais pas qu'il y avait quoi que ce soit qui puisse extraire des informations sur le niveau de BIOS :)
gharper

3

Ce n’est pas vraiment une chose sous Linux, mais plutôt une chose Bash: la substitution de processus,

diff some_local_file <(ssh somehost "cat some_remote_file")

Ceci diffs un fichier local et un fichier distant récupéré via SSH sur une ligne.

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.