Étiquette : bash

17 janvier 2019 /

Formatage du texte

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B1mTEXTE%20EN%20GRAS%5Ce%5B0m%22″ message= »Mettre le texte en gras » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B4mTEXTE%20SOULIGN%C3%89%5Ce%5B0m%22″ message= »Mettre le texte en souligné » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B5mTEXTE%20CLIGNOTANT%5Ce%5B0m%22″ message= »Mettre le texte en clignotant » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B7mTEXTE%20AVEC%20INVERSION%20DES%20COULEURS%5Ce%5B0m%22″ message= »Pour inverser la couleur du texte » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B8mTEXTE%20MASQU%C3%89%5Ce%5B0m%22″ message= »Pour masquer le texte (pour voir le texte, il suffit de faire un copier-coller) » highlight= » » provider= »manual »/]

Formatage de la couleur

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B39md%C3%A9faut%22″ message= »Couleur par défaut » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B30mNoir%22″ message= »Texte en noir » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B31mRouge%22″ message= »Texte en rouge » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B91mRouge%20clair%22″ message= »Texte en rouge clair » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B32mVert%22″ message= »Texte en vert » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B92mVert%20clair%22″ message= »Texte en vert clair » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B33mJaune%22″ message= »Texte en jaune » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B93mJaune%20clair%22″ message= »Texte en jaune clair » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B34mBleu%22″ message= »Texte en bleu » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B94mBleu%20clair%22″ message= »Texte en bleu clair » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B35mMauve%22″ message= »Texte en mauve » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B95mMauve%20clair%22″ message= »Texte en mauve clair » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B36mCyan%22″ message= »Texte en cyan » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B96mCyan%20clair%22″ message= »Texte en cyan clair » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B2mGris%22″ message= »Texte en gris » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B37mGris%20clair%22″ message= »Texte en gris clair » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B90mGris%20fonc%C3%A9%22″ message= »Texte en gris foncé » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »echo%20-e%20%22%5Ce%5B97mBlanc%22″ message= »Texte en blanc » highlight= » » provider= »manual »/]

11 août 2018 /

[pastacode lang= »bash » manual= »timeout%201%20bash%20-c%20’%3C%2Fdev%2Ftcp%2F216.58.207.46%2F443%20%26%26%20echo%20Le%20port%20est%20ouvert%20%7C%7C%20echo%20Le%20port%20est%20ferm%C3%A9’%20%7C%7C%20echo%20Timeout%0A » message= »Ici avec l’IP de Google sur le port 443″ highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »curl%20telnet%3A%2F%2F192.168..0.50%3A22″ message= »Dans le meme genre » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »curl%20-s%20192.168.0.50%3A22%20%3E%2Fdev%2Fnull%20%26%26%20echo%20Le%20port%20est%20ouvert%20%7C%7C%20echo%20Le%20port%20est%20ferm%C3%A9%0A » message= »Ou encore » highlight= » » provider= »manual »/]

3 janvier 2017 /

Je reprend l’exemple d’un fichier texte contenant une multitude d’identifiants.
Des identifiants qui commencent par 4 chiffres puis 2 lettres (exemple: 1502KQ) respecte le standard voulu, les autres non.

Nous souhaitons donc isoler les identifiants ne correspondant pas à ce standard.

Pour cela, crée un fichier, test.txt par exemple, et on y inscrit cette liste d’identifiants:

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
ADMIN01
ADMIN26
BIZOT
4569DF
BOURGAINET
CHACONNI
4126NR
4685ET
D?ALES
5016NW
DESOUSASSE06
FITGERERT
FRANCINETTE

Pour afficher les occurrences qui correspondent à notre expression régulière, [0-9]{4}[a-zA-Z]{2} (pour 4 chiffres et 2 lettres en minuscule ou majuscule):

egrep "[0-9]{4}[a-zA-Z]{2}" test.txt

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
4569DF
4126NR
4685ET
5016NW

Pour afficher au contraire les occurrences qui correspondent pas à notre expression régulière, on rajoute l’option « -v »:

egrep -v "[0-9]{4}[a-zA-Z]{2}" test.txt

ADMIN01
ADMIN26
BIZOT
BOURGAINET
CHACONNI
D?ALES
DESOUSASSE06
FITGERERT
FRANCINETTE

Note: On peut également utiliser grep avec l’option « -E » qui forcer grep à se comporter comme egrep:

grep -E "[0-9]{4}[a-zA-Z]{2}" test.txt

Autres exemples:

Recherche les mots dont b n’est pas suivi de o:

egrep "b[^o]" test.txt

Recherche toute ligne qui commence par « De: », « Sujet: » ou « Date: »:

egrep "^(De|Sujet|Date):" test.txt

Recherche et affiche chaque ligne du fichier test.txt qui contient l’occurence bonjour ou Bonjour, les numéros de ligne sont également affichés (option -n):

egrep -n "[bB]onjour" test.txt

Liste toute les lignes du fichier test.txt commençant avec le caractère $:

egrep "^\\$" test.txt

Liste tous les fichiers et répertoires dans le répertoire courant qui ne se terminent pas avec .txt:

ls -l | egrep "[^.txt]$"

Liste tous les fichiers et répertoires dans le répertoire courant qui se terminent avec .txt:

ls -l | egrep "[.txt]$"

Affiche uniquement les lignes dont le numéro de téléphone commence par un 1:

egrep "^1" test.txt

Recherche les lignes avec un 2 à la seconde position et n’importe quel caractère en première position:

egrep "^.2" test.txt

Recherche les lignes dont le premier caractère est différent de 1:

egrep "^[^1]" test.txt

1 mai 2016 /

Telnet, (depuis un serveur distant)

telnet 192.168.0.14 20000

Si le port est ouvert:

Trying 192.168.0.14...
Connected to entropia (192.168.0.14).
Escape character is '^]'.

Si le port est fermé (ou service non démarré):

Trying 192.168.0.14...
telnet: connect to address 192.168.0.14: Connection refused
telnet: Unable to connect to remote host: Connection refused

Netstat, (pour tester en local)

netstat -paunt | grep 3306; echo $?

Si le port est ouvert:

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1979/mysqld
0

Si le port est fermé (ou service non démarré):

1

Netcat, (depuis un serveur distant)

nc -v -z 192.168.0.14 3306; echo $?

Si le port est ouvert:

Connection to 192.168.0.14 3306 port [tcp/mysql] succeeded!
0

Si le port est fermé (ou service non démarré):

nc: connect to 192.168.0.14 port 3306(tcp) failed: Connection refused
1

nc  192.168.0.14 3306< /dev/null ; echo $?

Si le port est ouvert:

4
5.1.73▒d))4f*<,i▒N*'%#~rC8/#`0

Si le port est fermé (ou service non démarré):
1

Wget pour tester un serveur web, (depuis un serveur distant)

wget -qO- 192.168.0.14:80 ; echo $?

wget -q --spider 192.168.0.14:80 ; echo $?

Curl, (depuis un serveur distant)

curl telnet://192.168.0.14:22

Si le port est ouvert, la commande restera bloquée car elle attend que l’on saisisse quelque chose. ctrl+c pour sortir.

Si le port est fermé:

curl: (7) couldn't connect to host

Bash, (depuis un serveur distant)

timeout 1 bash -c 'cat < /dev/null > /dev/tcp/192.168.0.14/22' ; echo $?

Si le port est ouvert:
0
Si le port est fermé:

bash: connect: Connexion refusée
bash: /dev/tcp/192.168.0.14/22: Connexion refusée
1

Nmap, (depuis un serveur distant)

nmap -p 80 192.168.0.14

Si le port est ouvert:

Starting Nmap 5.51 ( http://nmap.org ) at 2016-03-29 10:00 CEST
Nmap scan report for entropia.local (192.168.0.14)
Host is up (0.00068s latency).
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 00:50:56:01:27:55 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Si le port est fermé:

Starting Nmap 5.51 ( http://nmap.org ) at 2016-03-29 10:06 CEST
Nmap scan report for entropia.local (192.168.0.14)
Host is up (0.00045s latency).
PORT   STATE  SERVICE
80/tcp closed http
MAC Address: 00:50:56:01:27:55 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

Pour tester plusieurs port en même temps:

nmap -p 22,1944,20000 192.168.0.14

Python, (depuis un serveur distant)

python
import socket
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('192.168.0.14' , 80))
clientsocket.sent('\n')

Si le port est ouvert, vous arriverez à faire un « clientsocket.sent(‘\n’) » (qui vous retournera surement cette une erreur):
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: '_socketobject' object has no attribute 'sent'

Si le port est fermé, au moment du « clientsocket.connect((‘192.168.0.14’ , 80)) » :
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused

26 novembre 2015 /

Si vous êtes plusieurs a travailler sur un serveur, et que vous souhaitez connaître les commandes qui ont été exécutées, cela est très simple.

Pour y parvenir, il faut éditer le fichier /etc/bash.bashrc:

vi /etc/bash.bashrc

A la fin du fichier rajouter cela:
PROMPT_COMMAND='history -a >(logger -t "$USER[$PWD] $SSH_CONNECTION")'

Il n’y a plus qu’a soucer pour prendre en compte les modifications:

source /etc/bash.bashrc

Vous pouvez maintenant voir les commandes dans /var/log/messages ou /var/log/syslog (Ubuntu).