Cliquez sur l'image pour voir une version plus grande
1. tar
Créer un nouveau fichier tar
$ tar cvf archive_name.tar dirname/
Extraire un fichier tar
$ tar xvf archive_name.tar
Afficher un fichier tar
$ tar tvf archive_name.tar
2. grep
Rechercher une chaîne dans un fichier (insensible à la casse)
$ grep -i "the" demo_file
Afficher la ligne correspondante trouvée, ainsi que les trois lignes qui suivent cette ligne
$ grep -A 3 -i "example" demo_text
Rechercher récursivement dans un dossier les fichiers contenant une chaîne spécifiée
$ grep -r "ramesh" *
3. find
Trouver des fichiers avec un nom de fichier spécifié (insensible à la casse)
$ find -iname "MyProgram.c"
Exécuter une commande sur les fichiers trouvés
$ find -iname "MyProgram.c" -exec md5sum {} \;
Trouver tous les fichiers vides dans le répertoire personnel
$ find ~ -empty
4. ssh
Se connecter à un hôte distant
$ ssh -l jsmith remotehost.example.com
Déboguer le client ssh
$ ssh -v -l jsmith remotehost.example.com
Afficher la version du client ssh
$ ssh -V
5. sed
Lorsque vous copiez des fichiers d'un système DOS vers Unix/Linux, chaque ligne du fichier se termine par \r\n. sed peut facilement le convertir en un fichier au format Unix, qui utilise \n à la fin des lignes
$ sed 's/.$//' filename
Inverser le contenu du fichier et l'afficher
$ sed -n '1!G; h; p' filename
Ajouter des numéros de ligne aux lignes non vides
$ sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'
6. awk
Supprimer les lignes dupliquées
$ awk '!($0 in array) { array[$0]; print}' temp
Afficher toutes les lignes de /etc/passwd dont l'uid et le gid sont identiques
$ awk -F ':' '$3=$4' /etc/passwd
Afficher les champs spécifiés d'un fichier
$ awk '{print $2,$5;}' employee.txt
7. vim
Ouvrir un fichier et aller à la ligne 10
$ vim +10 filename.txt
Ouvrir un fichier et aller à la première ligne correspondante
$ vim +/search-term filename.txt
Ouvrir un fichier en mode lecture seule
$ vim -R /etc/passwd
8. diff
Ignorer les espaces blancs lors de la comparaison
$ diff -w name_list.txt name_list_new.txt
9. sort
Trier le contenu du fichier par ordre croissant
$ sort names.txt
Trier le contenu du fichier par ordre décroissant
$ sort -r names.txt
Trier le contenu de /etc/passwd par le troisième champ
$ sort -t: -k 3n /etc/passwd | more
10. export
Afficher les variables d'environnement qui correspondent à la chaîne oracle
$ export | grep ORCALE declare -x ORACLE_BASE="/u01/app/oracle" declare -x ORACLE_HOME="/u01/app/oracle/product/10.2.0" declare -x ORACLE_SID="med" declare -x ORACLE_TERM="xterm"
Définir des variables d'environnement globales
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0
11. xargs
Copier tous les fichiers image sur un disque externe
$ ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
Compresser et empaqueter tous les fichiers jpd du système
$ find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
Télécharger les pages correspondant à toutes les URL listées dans le fichier
$ cat url-list.txt | xargs wget –c
12. ls
Afficher la taille du fichier dans un format lisible par l'humain (indiqué en MB, GB, ...)
$ ls -lh -rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz
Lister les fichiers par ordre croissant de date de dernière modification
$ ls -ltr
Afficher le type de fichier après le nom du fichier
$ ls -F
13. pwd
Afficher le répertoire de travail actuel
14. cd
cd - bascule entre les deux répertoires les plus récemment utilisés
Utiliser shopt -s cdspell permet de configurer la correction orthographique automatique pour la commande cd
15. gzip
Créer un fichier compressé *.gz
$ gzip test.txt
Décompresser un fichier *.gz
$ gzip -d test.txt.gz
Afficher le taux de compression
$ gzip -l *.gz
compressed uncompressed ratio uncompressed_name
23709 97975 75.8% asp-patch-rpms.txt
16. bzip2
Créer un fichier compressé *.bz2
$ bzip2 test.txt
Décompresser un fichier *.bz2
bzip2 -d test.txt.bz2
17. uzip
Décompresser un fichier *.zip
$ unzip test.zip
Afficher le contenu d'un fichier *.zip
$ unzip -l jasper.zip Archive: jasper.zip Length Date Time Name -------- ---- ---- ---- 40995 11-30-98 23:50 META-INF/MANIFEST.MF 32169 08-25-98 21:07 classes_ 15964 08-25-98 21:07 classes_names 10542 08-25-98 21:07 classes_ncomp
18. shutdown
Arrêter le système et couper immédiatement l'alimentation
$ shutdown -h now
Éteindre après 10 minutes
$ shutdown -h +10
Redémarrage
$ shutdown -r now
Forcer une vérification du système lors du redémarrage
$ shutdown -Fr now
19. ftp
L'utilisation de la commande ftp et de la commande sftp est globalement similaire : se connecter à un serveur FTP et télécharger plusieurs fichiers
$ ftp IP/hostname ftp> mget *.html
Afficher la liste des fichiers sur l'hôte distant
ftp> mls *.html - /ftptest/features.html /ftptest/index.html /ftptest/othertools.html /ftptest/samplereport.html /ftptest/usage.html
20. crontab
Afficher les entrées crontab d'un utilisateur
$ crontab -u john -l
Configurer une tâche planifiée qui s'exécute toutes les dix minutes
*/10 * * * * /home/ramesh/check-disk-space
21. service
La commande service est utilisée pour exécuter les scripts d'initialisation System V, qui se trouvent généralement dans /etc/init.d. Cette commande peut exécuter directement les scripts de ce dossier sans ajouter le chemin
Afficher l'état du service
$ service ssh status
Afficher l'état de tous les services
$ service --status-all
Redémarrer un service
$ service ssh restart
22. ps
La commande ps est utilisée pour afficher des informations sur les processus en cours d'exécution. La commande ps possède de nombreuses options ; seules quelques-unes sont répertoriées ici
Afficher tous les processus en cours d'exécution
$ ps -ef | more
Afficher les processus en cours d'exécution sous forme d'arborescence. L'option H indique d'afficher la hiérarchie des processus
$ ps -efH | more
23. free
Cette commande est utilisée pour afficher l'utilisation actuelle de la mémoire du système, y compris la mémoire utilisée, la mémoire disponible et la mémoire d'échange
Par défaut, free affiche l'utilisation de la mémoire en bytes
$ free
total used free shared buffers cached
Mem: 3566408 1580220 1986188 0 203988 902960
-/+ buffers/cache: 473272 3093136
Swap: 4000176 0 4000176
Si vous souhaitez afficher l'utilisation de la mémoire dans d'autres unités, vous devez ajouter une option : -g pour GB, -m pour MB, -k pour KB, -b pour bytes
$ free -g
total used free shared buffers cached
Mem: 3 1 1 0 0 0
-/+ buffers/cache: 0 2
Swap: 3 0 3
Si vous souhaitez afficher un résumé de toute la mémoire, utilisez l'option -t. L'utilisation de cette option ajoute une ligne de résumé à la sortie
$ free -t
total used free shared buffers cached
Mem: 3566408 1592148 1974260 0 204260 912556
-/+ buffers/cache: 475332 3091076
Swap: 4000176 0 4000176
Total: 7566584 1592148 5974436
24. top
La commande top affiche les processus qui occupent actuellement le plus de ressources dans le système (triés par utilisation du CPU par défaut). Si vous souhaitez modifier la méthode de tri, vous pouvez appuyer sur O (O majuscule) dans la liste des résultats pour afficher toutes les colonnes disponibles pour le tri, puis vous pouvez sélectionner la colonne selon laquelle vous souhaitez trier
Current Sort Field: P for window 1:Def Select sort field via field letter, type any other key to return a: PID = Process Id v: nDRT = Dirty Pages count d: UID = User Id y: WCHAN = Sleeping in Function e: USER = User Name z: Flags = Task Flags ........
Si vous souhaitez uniquement afficher les processus d'un utilisateur spécifique, vous pouvez utiliser l'option -u
$ top -u oracle
25. df
Afficher l’utilisation du disque du système de fichiers. Par défaut, df -k affiche l’utilisation du disque en octets
$ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 29530400 3233104 24797232 12% / /dev/sda2 120367992 50171596 64082060 44% /home
L’utilisation de l’option -h affiche l’utilisation du disque dans un format plus lisible par l’humain
$ df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 232Gi 84Gi 148Gi 37% 21998562 38864868 36% / devfs 187Ki 187Ki 0Bi 100% 648 0 100% /dev map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home /dev/disk0s4 466Gi 45Gi 421Gi 10% 112774 440997174 0% /Volumes/BOOTCAMP //app@izenesoft.cn/public 2.7Ti 1.3Ti 1.4Ti 48% 0 18446744073709551615 0% /Volumes/public
Utilisez l’option -T pour afficher le type de système de fichiers
$ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda1 ext4 29530400 3233120 24797216 12% / /dev/sda2 ext4 120367992 50171596 64082060 44% /home
26. kill
kill est utilisé pour terminer un processus. En général, on utilise d’abord ps -ef pour trouver un processus et obtenir son numéro de processus, puis on utilise kill -9 numéro de processus pour le terminer. Vous pouvez aussi utiliser killall, pkill ou xkill pour terminer des processus
$ ps -ef | grep vim ramesh 7243 7222 9 22:43 pts/2 00:00:00 vim $ kill -9 7243
27. rm
Confirmer avant de supprimer un fichier
$ rm -i filename.txt
L’utilisation de métacaractères du shell dans les noms de fichiers peut être très utile. Affichez les noms de fichiers et confirmez avant de les supprimer
$ rm -i file*
Supprimer récursivement tous les fichiers d’un dossier et supprimer également le dossier lui-même
$ rm -r example
28. cp
Copier file1 vers file2, en préservant les permissions, le propriétaire et l’horodatage du fichier
$ cp -p file1 file2
Copier file1 vers file2. Si file2 existe, il demandera s’il faut écraser
$ cp -i file1 file2
29. mv
Renommer file1 en file2. Si file2 existe, il demandera s'il faut l'écraser
$ mv -i file1 file2
Notez que si l'option -f est utilisée, aucune invite ne sera affichée
-v affiche le processus de renommage. Cette option est très pratique lorsque les noms de fichiers contiennent des caractères génériques
$ mv -v file1 file2
30. cat
Vous pouvez afficher le contenu de plusieurs fichiers à la fois. La commande suivante affiche d'abord le contenu de file1, puis celui de file2
$ cat file1 file2
L'option -n ajoute des numéros de ligne au début de chaque ligne
$ cat -n /etc/logrotate.conf
/var/log/btmp {
missingok
3 monthly
4 create 0660 root utmp
5 rotate 1
6 }
31. mount
Pour monter un système de fichiers, vous devez d'abord créer un répertoire, puis monter le système de fichiers dans ce répertoire
# mkdir /u01 # mount /dev/sdb1 /u01
Vous pouvez également l'ajouter à fstab pour un montage automatique, afin que le système de fichiers soit chargé à chaque redémarrage du système
/dev/sdb1 /u01 ext2 defaults 0 2
32. chmod
chmod est utilisé pour modifier les permissions des fichiers et des répertoires
Accorder au propriétaire et au groupe du fichier spécifié toutes les permissions (y compris lecture, écriture et exécution)
$ chmod ug+rwx file.txt
Supprimer toutes les permissions du groupe du fichier spécifié
$ chmod g-rwx file.txt
Modifier les permissions d'un répertoire et modifier récursivement les permissions de tous les fichiers et sous-répertoires de ce répertoire
$ chmod -R ug+rwx file.txt
33. chown
chown est utilisé pour changer le propriétaire et le groupe d'un fichier
Changer simultanément le propriétaire d'un fichier en oracle et le groupe en db
$ chown oracle:dba dbora.sh
Utiliser l'option -R pour modifier récursivement un répertoire et les fichiers qu'il contient
$ chown -R oracle:dba /home/oracle
34. passwd
passwd est utilisé pour changer un mot de passe sur la ligne de commande. L'utilisation de cette commande nécessite de saisir d'abord l'ancien mot de passe, puis de saisir un nouveau mot de passe
$ passwd
Le superutilisateur peut utiliser cette commande pour changer les mots de passe d'autres utilisateurs. Dans ce cas, il n'est pas nécessaire de saisir le mot de passe de l'utilisateur
# passwd USERNAME
passwd peut également supprimer le mot de passe d'un utilisateur. Cette commande ne peut être utilisée que par l'utilisateur root. Après la suppression du mot de passe, l'utilisateur peut se connecter au système sans saisir de mot de passe
# passwd -d USERNAME
35. mkdir
Créer un répertoire nommé temp dans le répertoire personnel
$ mkdir ~/temp
Utilisez l'option -p pour créer tous les répertoires inexistants le long d'un chemin
$ mkdir -p dir1/dir2/dir3/dir4/
36. ifconfig
ifconfig permet d'afficher et de configurer les interfaces réseau d'un système Linux
Afficher toutes les interfaces réseau et leur état
$ ifconfig -a
Utilisez les commandes up et down pour démarrer ou arrêter une interface
$ ifconfig eth0 up
$ ifconfig eth0 down
37. uname
uname peut afficher certaines informations système importantes, telles que le nom du noyau, le nom d'hôte, la version du noyau, le type de processeur, etc.
$ uname -a Linux john-laptop 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:12:52 UTC 2010 i686 GNU/Linux
38. whereis
Lorsque vous ne connaissez pas l'emplacement d'une commande, vous pouvez utiliser la commande whereis. L'exemple suivant utilise whereis pour trouver l'emplacement de ls
$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Lorsque vous souhaitez trouver l'emplacement d'un programme exécutable, mais que le programme ne se trouve pas dans les répertoires par défaut de whereis, vous pouvez utiliser l'option -B et spécifier un répertoire comme argument de cette option. La commande suivante recherche la commande lsmk dans le répertoire /tmp
$ whereis -u -B /tmp -f lsmk lsmk: /tmp/lsmk
39. whatis
whatis affiche des informations de description pour une commande
$ whatis ls ls (1) - list directory contents $ whatis ifconfig ifconfig (8) - configure a network interface
40. locate
La commande locate peut afficher le chemin d'un fichier spécifié (ou d'un groupe de fichiers). Elle utilise une base de données créée par updatedb
La commande suivante affichera tous les fichiers du système qui contiennent la chaîne crontab
$ locate crontab /etc/anacrontab /etc/crontab /usr/bin/crontab /usr/share/doc/cron/examples/crontab2english.pl.gz /usr/share/man/man1/crontab.1.gz /usr/share/man/man5/anacrontab.5.gz /usr/share/man/man5/crontab.5.gz /usr/share/vim/vim72/syntax/crontab.vim
41. man
Afficher la page de manuel d'une commande
$ man crontab
Certaines commandes peuvent avoir plusieurs pages de manuel ; chaque page de manuel correspond à un type de commande
$ man SECTION-NUMBER commandname
Les pages de manuel peuvent généralement être divisées en 8 types de commandes
- Commandes utilisateur
- Appels système
- Fonctions de bibliothèque C
- Périphériques et interfaces réseau
- Formats de fichiers
- Jeux et économiseurs d'écran
- Environnement, tables et macros
- Commandes d'administrateur système et commandes exécutées en arrière-plan
Par exemple, lorsque nous exécutons whatis crontab, vous pouvez voir que crontab a deux types de commandes, 1 et 5. Nous pouvons donc utiliser la commande suivante pour afficher la page de manuel du type de commande 5
$ whatis crontab crontab (1) - maintain crontab files for individual users (V3) crontab (5) - tables for driving cron $ man 5 crontab
42. tail
La commande tail affiche par défaut les 10 dernières lignes de texte d'un fichier
$ tail filename.txt
Vous pouvez utiliser l'option -n pour spécifier le nombre de lignes à afficher
$ tail -n N filename.txt
Vous pouvez également utiliser l'option -f pour visualiser en temps réel. Après l'exécution de cette commande, elle attend. Si de nouvelles lignes sont ajoutées à la fin du fichier, elle continuera à afficher les nouvelles lignes. Cette option est très utile lors de la consultation des journaux. Vous pouvez interrompre la commande en appuyant sur CTRL-C.
$ tail -f log-file
43. less
Cette commande peut afficher le contenu du fichier sans charger le fichier entier, ce qui est très utile lors de la consultation de grands fichiers journaux.
$ less huge-log-file.log
Lorsque vous ouvrez un fichier avec la commande less, les deux touches suivantes vous aideront beaucoup ; elles servent à faire défiler vers l'avant et vers l'arrière.
CTRL+F – forward one window CTRL+B – backward one window
44. su
su命令用于切换用户账号,超级用户使用这个命令可以切换到任何其他用户而不用输入密码
$ su - USERNAME
Exécutez une commande avec un autre nom d'utilisateur. Dans l'exemple ci-dessous, l'utilisateur john exécute la commande ls en utilisant le nom d'utilisateur raj, puis revient au compte de john après l'exécution.
[john@dev-server]$ su - raj -c 'ls' [john@dev-server]$
Connectez-vous en tant qu'utilisateur spécifié et utilisez le programme shell spécifié au lieu de celui par défaut.
$ su -s 'SHELLNAME' USERNAME
45. mysql
MySQL est peut-être la base de données la plus largement utilisée sous Linux. Même si vous n'avez pas installé MySQL sur votre serveur, vous pouvez toujours utiliser le client MySQL pour vous connecter à un serveur MySQL distant.
Pour vous connecter à une base de données distante, vous devez saisir le mot de passe.
$ mysql -u root -p -h 192.168.1.2
Se connecter à une base de données locale.
$ mysql -u root -p
Vous pouvez également saisir le mot de passe de la base de données sur la ligne de commande. Ajoutez simplement le mot de passe comme argument après -p. Il peut être écrit directement après p sans espace.
46. yum
Installez Apache avec yum.
$ yum install httpd
Mettez à jour Apache.
$ yum update httpd
Désinstallez/supprimez Apache.
$ yum remove httpd
47. rpm
Installer Apache avec rpm.
# rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm
Mettez à jour Apache.
# rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm
Désinstallez/supprimez Apache.
# rpm -ev httpd
48. ping
Pinguez un hôte distant, en n'envoyant que 5 paquets de données.
$ ping -c 5 gmail.com
49. date
Régler la date du système.
# date -s "01/31/2010 23:59:53"
Lorsque vous avez modifié l'heure du système, vous devez synchroniser l'heure matérielle et l'heure du système.
# hwclock –systohc # hwclock --systohc –utc
50. wget
Utilisez wget pour télécharger des logiciels, de la musique et des vidéos depuis Internet.
$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
Téléchargez un fichier et enregistrez-le avec un nom de fichier spécifié.
$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
Traduction : https://zhuanlan.zhihu.com/p/28674639
Original : http://www.thegeekstuff.com/2010/11/50-linux-commands/
