Grundlegende Testfragen für Linux (2) Testfragen für Shell-Grundbefehle

  1. Zeigen Sie nur die in den Netzwerkkarteninformationen verwendete IP an

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

Fügen Sie hier eine Bildbeschreibung ein


  1. Finden Sie den Benutzer mit der größten UID heraus, der sich beim System anmelden und seinen Namen anzeigen kann

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

Fügen Sie hier eine Bildbeschreibung ein

  1. Der aktuelle Host ist ein Webserver, und die fünf wichtigsten IP-Adressen, die auf den Webserver zugegriffen haben, werden erfasst

#方法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. Führen Sie das Skript user_check.sh aus, um den Benutzertyp zu bestimmen

Die Benutzertypen sind:

  1. Super User
  2. Systembenutzer
  3. gewöhnlicher Benutzer

#!/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 !"

Fügen Sie hier eine Bildbeschreibung ein

  1. Schreiben Sie das Skript file_check.sh, um die folgenden Aufgaben auszuführen
  1. Wenn die Testdatei nach dem Skript nicht angegeben wird, wird der Fehler "Keine Testdatei angegeben, bitte angeben" angezeigt.
  2. Wenn die angegebene Datei nach dem Skript nicht vorhanden ist, wird der Fehler "Diese Datei existiert nicht" gemeldet
  3. Wenn die Datei vorhanden ist, überprüfen Sie den Dateityp und zeigen Sie ihn in der Ausgabe an

#!/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
}

Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/weixin_46069582/article/details/111186752
Empfohlen
Rangfolge