Questions de test de base Linux (2) Questions de test de commande de base du shell

  1. Afficher uniquement l'adresse IP utilisée dans les informations de la carte réseau

ifconfig 网卡名 | head -n 2 | tail -n 1 | cut -d " " -f 10

Insérez la description de l'image ici


  1. Trouvez l'utilisateur avec le plus grand UID parmi les utilisateurs qui peuvent se connecter au système et afficher son nom

grep bash /etc/passwd | cut -d : -f 1,3 | sort -nr -t : -k 2 | head -n 1 | cut -d : -f 1

Insérez la description de l'image ici

  1. L'hôte actuel est un serveur Web et les 5 premières adresses IP ayant accédé au serveur Web sont capturées

#方法1
cut -d " " -f 1 /etc/httpd/logs/access_log | uniq -c | sort -k 1 -nr | head -n 5 | awk '{print $2}'
#方法2
cut -d " " -f 1 /etc/httpd/logs/access_log | uniq -c | sort -k 1 -nr | head -n 5 | sed 's/^ *//g' | cut -d " " -f 2

  1. Exécutez le script user_check.sh pour déterminer le type d'utilisateur

Les types d'utilisateurs sont:

  1. super utilisateur
  2. utilisateur système
  3. utilisateur commun

#!/bin/bash
username=$1
#判断有无输入用户名
[ -z $username ] && {
    
    
	echo "ERROR: Please input username following script !"
	exit
}	
#判断用户是否存在
id $username &> /dev/null || {
    
    
	echo "ERROR: user "$username" is not exist !"
	exit
}

userid=$(id -u $username)
user_shell=$( grep $username /etc/passwd | cut -d : -f 7 )
#用户id等于0为超级用户
[ "$userid" -eq "0" ] && {
    
    
	echo $username is super user !
	exit
}
#用户id小于1000,且可登陆就为系统用户
[ "$userid" -lt "1000" ] && [ ! "$user_shell" = "/bin/bash" ] && {
    
    
	echo $username is system user !
	exit
}
#用户id大于等于1000,且可登陆就为普通用户
[ "$userid" -ge "1000" ] && [ "$user_shell" = "/bin/bash" ] && {
    
    
	echo $username is common user !
	exit
}
#其他情况
echo "unknow user type !"

Insérez la description de l'image ici

  1. Écrivez le script file_check.sh pour effectuer les tâches suivantes
  1. Si le fichier de test n'est pas spécifié après le script, une erreur "Aucun fichier de test spécifié, veuillez préciser" est signalée
  2. Si le fichier spécifié n'existe pas après le script, une erreur «Ce fichier n'existe pas» est signalée
  3. Lorsque le fichier existe, veuillez vérifier le type de fichier et l'afficher dans la sortie

#!/bin/bash
filename=$1
#判断有误输入文件名
[ -z $filename ] && {
    
    
	echo Error: please input file folloeing script !
	exit
	}
#判断此文件是否存在
[ -e $filename ] || {
    
    
	echo file $filename is not exist !
	exit
}
#判断此文件的文件类型是否为目录
[ -d $filename ] && {
    
    
	echo file $filename is 目录 !
	exit
}
#判断此文件的文件类型是否为套接字
[ -S $filename ] && {
    
    
    echo file $filename is 套接字 !
    exit
}
#判断此文件的文件类型是否为软链接
[ -L $filename ] && {
    
    
    echo file $filename is 软链接 !
    exit
}
#判断此文件的文件类型是否为普通文件
[ -f $filename ] && {
    
    
    echo file $filename is 普通文件 !
    exit
}
#判断此文件的文件类型是否为块设备
[ -b $filename ] && {
    
    
    echo file $filename is 块设备 !
    exit
}
#判断此文件的文件类型是否为字符设备
[ -c $filename ] && {
    
    
    echo file $filename is 字符设备 !
    exit
}

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46069582/article/details/111186752
conseillé
Classement