Top 50 des questions d'entrevue Shell Scripting & Réponses

Anonim

Télécharger le PDF

1: Qu'est-ce qu'une coquille?

Shell est une interface entre l'utilisateur et le noyau. Même s'il ne peut y avoir qu'un seul noyau; un système peut avoir plusieurs shell fonctionnant simultanément. Ainsi, chaque fois qu'un utilisateur entre une commande via le clavier, le shell communique avec le noyau pour l'exécuter, puis affiche la sortie à l'utilisateur.

2: Quels sont les différents types de shells couramment utilisés sur un système Linux typique?

csh, ksh, bash, Bourne. Le shell le plus couramment utilisé et le plus avancé utilisé aujourd'hui est "Bash".

3: Quel est l'équivalent d'un raccourci fichier que nous avons une fenêtre sur un système Linux?

Les raccourcis sont créés à l'aide de "liens" sous Linux. Il existe deux types de liens qui peuvent être utilisés à savoir "lien souple" et "lien dur".

4: Quelle est la différence entre les liens souples et durs?

Les liens logiciels sont liés au nom du fichier et peuvent également résider sur différents systèmes de fichiers; cependant les liens physiques sont liés à l'inode du fichier et doivent être sur le même système de fichiers que celui du fichier. La suppression du fichier d'origine rend le lien logiciel inactif (lien rompu) mais n'affecte pas le lien physique (le lien physique aura toujours accès à une copie du fichier)

5: Comment allez-vous passer et accéder aux arguments d'un script sous Linux?

Les arguments peuvent être passés comme suit:

scriptName "Arg1" "Arg2"

…. "Argn" et est accessible dans le script sous la forme $ 1, $ 2… $ n

6: Quelle est la signification de $ #?

$ # montre le nombre d'arguments passés au script.

7: Quelle est la différence entre $ * et $ @?

$ @ traite chaque argument entre guillemets comme des arguments séparés mais $ * considérera l'ensemble complet des paramètres de position comme une seule chaîne.

8: Utilisez la commande sed pour remplacer le contenu du fichier (émuler la commande tac)

Par exemple:

if cat filleABCDEFGH

Alors O / p devrait être

EFGHABCD

sed '1! G; h;$!d' file1

Ici, la commande G ajoute à l'espace de motif,

La commande h copie le tampon de motif pour contenir le tampon

et la commande d supprime l'espace de motif actuel.

9: Étant donné un fichier, remplacez toutes les occurrences du mot "ABC" par "DEF" de la 5ème ligne jusqu'à la fin uniquement dans les lignes contenant le mot "MNO"

sed -n '5,$p' file1|sed '/MNO/s/ABC/DEF/'

10: Étant donné un fichier, écrivez une séquence de commandes pour trouver le nombre de chaque mot.

tr -s "(backslash)040" 

"(barre oblique inverse) 011" est un équivalent octal de "caractère de tabulation" et

"(barre oblique inverse) 012" est un équivalent octal du caractère de nouvelle ligne.

11: Comment allez-vous trouver la 99 e ligne d'un fichier en utilisant uniquement la commande tail and head?

queue +99 fichier1 | tête -1

12: Imprimez la 10 e ligne sans utiliser la commande tail and head.

sed -n '10p' file1

13: Dans mon shell bash, je veux que mon invite soit au format '$ "Present working directory": "hostname"> et charge un fichier contenant une liste de fonctions définies par l'utilisateur dès que je me connecte, comment allez-vous automatiser cela ?

Dans le shell bash, nous pouvons créer un fichier ".profile" qui est automatiquement appelé dès que je me connecte et y écrit la syntaxe suivante.

export PS1='$ `pwd`:`hostname`>' .File1

Ici, File1 est le fichier contenant les fonctions définies par l'utilisateur et "." invoque ce fichier dans le shell actuel.

14: Expliquer le bit d'autorisation "s" dans un fichier?

Le bit "s" est appelé bit "set user id" (SUID).

Le bit "s" sur un fichier amène le processus à avoir les privilèges du propriétaire du fichier pendant l'instance du programme.

Par exemple, l'exécution de la commande "passwd" pour modifier le mot de passe actuel oblige l'utilisateur à écrire son nouveau mot de passe dans le fichier miroir même s'il a "root" comme propriétaire.

15: Je souhaite créer un répertoire afin que n'importe qui dans le groupe puisse créer un fichier et accéder au fichier de n'importe quelle personne qu'il contient, mais personne ne devrait pouvoir supprimer un fichier autre que celui créé par lui-même.

Nous pouvons créer le répertoire donnant un accès en lecture et exécution à tout le monde dans le groupe et en activant son bit "t" comme suit:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Comment savoir depuis combien de temps le système fonctionne?

Nous pouvons trouver cela en utilisant la commande "uptime".

17: Comment un utilisateur peut-il trouver toutes les informations sur un utilisateur spécifique comme son shell par défaut, son nom réel, son répertoire par défaut, quand et depuis combien de temps il utilise le système?

doigt "loginName"

… Où loginName est le nom de connexion du

utilisateur dont les informations sont attendues.

18: Quelle est la différence entre $$ et $ !?

$$ donne l'identifiant du processus en cours d'exécution alors que $! Affiche l'ID de processus du processus récemment passé en arrière-plan.

19: Que sont les processus zombies?

Ce sont les processus qui sont morts mais dont le statut de sortie n'est toujours pas sélectionné par le processus parent. Ces processus, même s'ils ne sont pas fonctionnels, ont toujours leur entrée d'identifiant de processus dans la table de processus.

20: Comment allez-vous copier un fichier d'une machine à une autre?

Nous pouvons utiliser des utilitaires comme "ftp", "scp" ou "rsync" pour copier un fichier d'une machine à une autre.

Par exemple, en utilisant ftp:

Nom d'hôte FTP

> mettre file1

> au revoir

Au-dessus des copies, fichier file1 du système local vers le système de destination dont le nom d'hôte est spécifié.

21: Je souhaite surveiller un fichier journal mis à jour en permanence, quelle commande peut être utilisée pour y parvenir le plus efficacement?

Nous pouvons utiliser tail -f filename. Cela entraînera uniquement l'affichage des 10 dernières lignes par défaut sur std o / p qui affiche en permanence la partie mise à jour du fichier.

22: Je souhaite me connecter à un serveur distant et exécuter certaines commandes, comment puis-je y parvenir?

Nous pouvons utiliser ssh pour faire ceci:

ssh nom d'utilisateur @ serverIP -p sshport

Exemple

ssh Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer JavaScript pour le visualiser. -p 22

Une fois la commande ci-dessus exécutée, il vous sera demandé de saisir le mot de passe

23: J'ai 2 fichiers et je veux imprimer les enregistrements qui sont communs aux deux.

Nous pouvons utiliser la commande "comm" comme suit:

comm -12 fichier1 fichier2… 12 supprimera le contenu qui est

unique respectivement au 1 er et au 2 e fichier.

24: Ecrire un script pour imprimer les 10 premiers éléments de la série Fibonacci.

#!/bin/sha=1b=1echo $aecho $bfor I in 1 2 3 4 5 6 7 8doc=ab=$ab=$(($a+$c))echo $bdone

25: Comment allez-vous vous connecter à un serveur de base de données depuis Linux?

Nous pouvons utiliser l'utilitaire isql fourni avec le pilote client ouvert comme suit:

isql -S nom_serveur -U nom d'utilisateur -P mot de passe

26: Quels sont les 3 flux standard sous Linux?

0 - Entrée standard1 - Sortie standard2 - Erreur standard

27: Je veux lire toutes les entrées de la commande à partir de fichier1, diriger toutes les sorties vers fichier2 et l'erreur dans le fichier 3, comment puis-je y parvenir?

commande fichier2 2> fichier3

28: Qu'arrivera-t-il à mon processus actuel lorsque j'exécute une commande à l'aide de exec?

"exec" superpose le processus nouvellement fourchu sur le processus actuel; Ainsi, lorsque j'exécute la commande en utilisant exec, la commande est exécutée sur le shell actuel sans créer de nouveaux processus.

Par exemple, l'exécution de "exec ls" sur l'invite de commande exécutera ls et une fois que ls sera sortie, le processus s'arrêtera

29: Comment allez-vous émuler wc -l en utilisant awk?

awk 'END {print NR} fileName'

30: Étant donné un fichier, trouvez le nombre de lignes contenant le mot "ABC".

grep -c "ABC" fichier1

31: Quelle est la différence entre grep et egrep?

egrep est un grep étendu qui prend en charge les fonctionnalités ajoutées de grep comme "+" (1 ou plusieurs occurrences d'un caractère précédent), "?" (0 ou 1 occurrence d'un caractère précédent) et "|" (correspondance alternative)

32: Comment imprimerez-vous les noms de connexion de tous les utilisateurs sur un système?

/ etc / shadow file a tous les utilisateurs répertoriés.

awk -F ':' '{print $1}' /etc/shadow|uniq -u

33: Comment définir un tableau sous Linux?

Syntaxe en ksh:

Set -A arrayname= (element1 element2… element)In bashA=(element1 element2 element3… . elementn)

34: Notez la syntaxe de la boucle "for"

Syntaxe:

for iterator in (elements)doexecute commandsdone

35: Comment trouverez-vous l'espace disque total utilisé par un utilisateur spécifique?

du -s / home / user1…. où user1 est l'utilisateur pour lequel l'espace disque total doit être trouvé.

36: Ecrire la syntaxe des conditions "si" sous Linux?

Syntaxe

If condition is successfulthenexecute commandselseexecute commandsfi

37: Quelle est la signification de $?

La commande $? donne l'état de sortie de la dernière commande exécutée.

38: Comment supprimer toutes les lignes vides d'un fichier?

sed '[(backslash)011(backslash)040]*$/d' file1

où (barre oblique inverse) 011 est un équivalent octal de l'espace et

(barre oblique inverse) 040 est un équivalent octal de l'onglet

39: Comment insérer une ligne "ABCDEF" à chaque 100 e ligne d'un fichier?

fichier sed '100i \ ABCDEF' 1

40: Écrivez une séquence de commandes pour trouver tous les fichiers modifiés en moins de 2 jours et imprimez le nombre d'enregistrements de chacun.

trouver . -mtime -2 -exec wc -l {} \;

41: Comment puis-je définir l'autorisation rwx par défaut pour tous les utilisateurs sur chaque fichier créé dans le shell actuel?

On peut utiliser:

umask 777

Cela définira l'autorisation rwx par défaut pour chaque fichier créé pour chaque utilisateur.

42: Comment pouvons-nous trouver le nom du processus à partir de son identifiant de processus?

Nous pouvons utiliser "ps -p ProcessId"

43: Quels sont les quatre composants fondamentaux de chaque système de fichiers sous Linux?

Bootblock, super block, inode block et Datablock sont des composants fondamentaux de chaque système de fichiers sous Linux.

44: Qu'est-ce qu'un bloc de démarrage?

Ce bloc contient un petit programme appelé "Master Boot Record" (MBR) qui charge le noyau pendant le démarrage du système.

45: Qu'est-ce qu'un super bloc?

Le super bloc contient toutes les informations sur le système de fichiers comme la taille du système de fichiers, la taille du bloc utilisée par son nombre de blocs de données libres et la liste des inodes et des blocs de données libres.

46: Qu'est-ce qu'un bloc inode?

Ce bloc contient l'inode pour chaque fichier du système de fichiers ainsi que tous les attributs de fichier à l'exception de son nom.

47: Comment puis-je envoyer un e-mail avec un fichier compressé en pièce jointe?

zip file1.zip file1 | mailx -s "objet" ID de messagerie du destinataire

Contenu de l'e-mail

EOF

48: Comment créer des alias de commande dans un shell?

alias Aliasname = "Commande dont l'alias doit être créé".

49: Que sont les champs d'autorisation "c" et "b" d'un fichier?

Les champs d'autorisation "c" et "b" sont généralement associés à un fichier de périphérique. Il spécifie si un fichier est un fichier de caractères spéciaux ou un fichier spécial de bloc.

50: A quoi sert une ligne shebang?

La ligne Shebang en haut de chaque script détermine l'emplacement du moteur qui doit être utilisé pour exécuter le script.