linux学习考试复习笔记

来源:互联网 发布:minitool数据恢复软件 编辑:程序博客网 时间:2024/05/17 23:02
1.将用户涉及到的两个配置文件(详细信息与密码) 合并成一个文件,然后排序去冗输出为  简拼-1.txt 。  #cat  /proc/meminfo  /proc/cpuinfo  /proc/cpuinfo  /proc/meminfo | sort | uniq > test2.txt   #less test2.txt  2.将简拼-1.txt的文件内容再次追加写入 简拼-1.txt,然后将该文件的读写权限设置为 rw-rwxr-- , 并显示确认。#cat jianpin.txt > tmp.txt# cat tmp.txt >> jianpin.txt# chmod 674  quhaiping.txt$ $ll  quhp    //查看 文件 test 的权限  -rw-r--r-- 3.设置全局命令别名 简拼,其功能是 将当前系统所支持的所有文件系统的名字信息重定向为 简拼-3.txt 。查看系统支持的文件系统类型  #cd /lib/modules/2.6.35.6-45.fc14.i686/kernel/fs# ls # cd -/root    查看proc 文件系统    #ls>jianpin-4.txt4.显示能够登录(bash)的所有用户的详细信息,保存到文件 简拼-4.txt 。# cat /etc/passwd|cut -d':' -f1|grep o>jianpin-4.txt  #cut -d':'  -f1  /etc/passwd    回车符分隔显示所有用户  #cut -d':'  -f2  /etc/passwd   #cut -d':'  -f4  /etc/passwd    显示不同的列#cut -d':'  -f1  /etc/passwd | xargs -n 1  finger  > jianp_4.txt    显示所用用户5.信息一条命令获取网卡eth8 (如HWaddr 00:0C:29:38:0C:5A) 的MAC地址(00:0C:29:38:0C:5A)。问题: 需要获取当前机器的eth8 d IP(192.168.23.189) 并进一步获取Ip的网段前缀(192.168.23.)    #ifconfig   #ifconfig  eth9   #ifconfig  eth9 | grep "inet addr"    #ifconfig  eth9 | grep "inet addr"  | gawk '{print $2}'     #ifconfig  eth9 | grep "inet addr"  | gawk '{print $2}'  | cut -c6-20    #ifconfig  eth9 | grep "inet addr"  | gawk '{print $2}'  | cut -c6-165.将命令wget 所属软件包中包含的所有文件信息保存为简拼-6.txt,并通过rpm 命令将其删除.。rpm  包的删除#rpm  -e  vim-X11(包名)6.设置变量name,其值为“名字全拼+系统的版本号”,并显示该变量的值。变量的设置:   注意空格报错# var1=“lang is $LANG”    # var2=‘lang is $LANG’      //注意区分# echo $var1# echo $var27.从设备zero 拷贝1G数据到设备null(bs=4M),并将记录时间保存到文件 简拼-8.txt 。采用dd 命令测试并记录 sdb1 分区的读写性能   分别读写2G#  fdisk  /dev/sdbm for help  p for print  n for add   w for save输入n 回车; 输入p 回车 选择primary ; 输入1 回车 确认 分区号 ; 输入 起始位置,直接回车; 输入分区大小 +3068M 回车;输入p 回车确认创建成功; 输入w 回车 将磁盘信息写回#  time dd if=/dev/sdb1 of=/dev/null  bs=1M  count=2048记录分区读测试所得时间为 time_read_dd = ?if = input fileof = output filebs = block sizecount   数量 #  time dd if=/dev/zero  of=/dev/sdb1 bs=1M  count=2048记录分区写测试所得时间为 time_write_dd = ? 二、磁盘与文件系统(15分)。1. 在磁盘sdb,划分一个1G的普通分区sdb1,再划分一个3G的swap分区sdb2,在退出之前显示两个分区信息并截屏保存为 2-简拼-1.png ,下面步骤依次截图保存;在sdb上创建一个1G的分区 sdb1  #  fdisk  /dev/sdbm for help  p for print  n for add   w for save输入n 回车; 输入p 回车 选择primary ; 输入1 回车 确认 分区号 ; 输入 起始位置,直接回车; 输入分区大小 +3068M 回车;输入p 回车确认创建成功; 输入w 回车 将磁盘信息写回创建swap设备#fdisk  /dev/sdbn  p   1   +3068M     //创建sdb1t    修改系统ID182   改成swap的ID     //从linux分区切换成swap设备w#partprobe              //让内核更新分区表#mkswap   /dev/sdb1     构建swap格式挂载上# free#swapon   /dev/sdb1#free#swapon –s  列出目前使用的swap设备有哪些?2. 将所有磁盘与分区的详细信息 重定向保存为 文件 2-简拼.txt ;显示 sda sdb 两块磁盘的详细信息   #  fdisk –l >zhuj.txt3对分区sdb1 做ext4文件系统,并挂载到目录/mnt,  显示当前挂载分区的大小与类型,并追加写到2-简拼.txt把分区sdb1 格式化成ext3 文件系统   #  mkfs -t ext3  /dev/sdb1     把分区挂载到指定目录下   #  mkdir –p /mnt/name     #  mount  /dev/sdb1  /mnt/name    查看新挂载的分区 ,注意其大小变化, 因为其格式化文件系统占用了一些磁盘空间  # cd /mnt/name   # df –h   # df –h >zhuj.txtcat zhuj.txt   # df  -aT        比较这两个参数的区别   # mount5.   在 / 目录 也就是 sda 上进行 下面操作     # df -aTh     确认 / 目录在 挂载在 sda 磁盘上     # mkdir  -p   /mnt/name      # mkdir -p   /mnt/name/test_sda       # cp  /pro/cpuinfo    /mnt/name/cpu_sda      # dd if=/dev/zero  of=/mnt/name/test_sda/256M   bs=1M  count=256     # ll  /mnt/name         查看这个目录的文件与子目录     # df -h  /mnt/name      显示的是  sda磁盘的可用容量     # du  -ah  /mnt/name    显示的是  这个目录及子目录的大小  256M左右4.将分区sdb2添加成swap设备, 列出当前swap设备,追加保存到 2-简拼.txt ;创建swap设备   #fdisk  /dev/sdb       n  p   1   +3068M     //创建sdb1     t    修改系统ID       1     82   改成swap的ID     //从linux分区切换成swap设备     w  #partprobe              //让内核更新分区表  #mkswap   /dev/sdb1     构建swap格式挂载上   # free   #swapon   /dev/sdb1    #free  #swapon –s  列出目前使用的swap设备有哪些?5.查看当前swap设备的使用情况,追加保存到 2-简拼.txt 。三、Shell编程(15分)。 1. 实现shell脚本 3_全拼.sh,功能为一个简单的四则计算器,功能如下:1) 循环交互式要求输入三个变量  num1 oper num2 其中oper 可以为 + - * / 2)  循环的终止条件是当且仅当  这两个数值 均为 0  输出END。 3)  根据oper分别完成运算  如  2  +  3    则输出   2+3 =5 ; 再继续要求输入三个变量,再如 3 * 4 则输出 3 * 4 = 12; 如果oper 不属于这四种运算符则输出 Wrong Oper 之后继续要求输入。  2. 运行脚本, 依次计算四次  10+学号  学号-学号  学号#学号  0+0 。3. 将这脚本的运行过程依次截图保存为3-简拼-?.png 。 vim achmod + x 1.sh./1.shshell脚本代码如下:#!/bin/bashread -p "input num1:" aread -p "input num2:" bread -p "input operator:" ocase $o in+) let "res=a + b"echo $res;;-) let "res=a - b"echo $res;;/) awk 'BEGIN{printf "%.2f\n",'$a'/'$b'}';;*) let "res=a * b"echo $res;;esac exit 0唐:#!/bin/bashread -p "please input num1  " num1read -p "please input flag  " flagread -p " please input num2  " num2case $flag in        '+')                echo "$num1 $flag $num2=$(($num1+$num2))"                ;;        '-')                echo "$num1 $flag $num2=$(($num1-$num2))"                ;;        '/')                echo "$num1 $flag $num2=$(($num1/$num2))"                ;;        *)                echo "$num1 $flag $num2=$(($num1*$num2))"                ;;esacexit 0四、批量用户添加与删除(22分)。1. 实现shell脚本  4_学号.sh, 功能如下:1)脚本不需要配置文件,也不会生成任何配置文件;     2)命令行输入四个参数:前缀   位数   开始序号   终止序号 ;3) 利用这四个参数构建循环;4) 在循环中采用 useradd批量添加用户,使用passwd 命令确定用户密码与用户名相同 。2. 运行脚本   交互时输入 前缀=全拼  位数=5   开始序号=98  终止序号=102 ,将脚本的运行情况截图保存为 4-简拼-1.png 。3. 确认用户添加成功,复制passwd 到工作目录  passwd_add.txt作为验证。  4. 一个复杂命令删除刚刚创建成功的这些用户,将命令的运行情况截图保存为 4-简拼-2.png5. 确认用户删除成功,复制passwd 到工作目录  passwd_del.txt作为验证。#!/bin/bash accountfile="user:passwd"if [ -f "$accountfile" ]; thenmkdir –p "$accountfile"`date +%Y%m%d`mv $accountfile "$accountfile"`date +%Y%m%d`fitouch "$accountfile"read -p "qianzhui: "  username_start read -p "weishu: "  nu_nuread -p "star num: " nu_startread -p "shuliang: " nu_amountnu_end=$(($nu_start+$nu_amount-1))for (( i=$nu_start; i<=$nu_end; i++ ))do nu_len=${#i}nu_diff=$(($nu_nu-$nu_len))if [ "$nu_diff" != "0" ]; thennu_nn=00000000000nu_nn=${nu_nn:1:$nu_diff}fiaccount="$username_start""$nu_nn""$i"echo "$account":"$account" >> $accountfiledonecat "$accountfile" | cut -d':' -f1 | xargs -n 1 useradd pwunconvchpasswd < "$accountfile"pwconvecho "OK"exit 0#cat /etc/passwd    确认#cut -d':' -f1 user:passwd  | xargs -n 1  userdel -r #cat /etc/passwd   确认四个用户已成功删除用户的批量添加************第一种方法有配置文件采用 newusers 批量创建用户  .1  #groupadd  -g 800  linux2012 .2  #gvim  student.txt t001001:x:801:800::/home/t001001:/bin/basht001002:x:802:800::/home/t001002:/bin/basht001003:x:803:800::/home/t001003:/bin/basht001004:x:804:800::/home/t001004:/bin/bash.3  #gvim passwd.txtt001001:t001001t001002:123456t001003:123456t001004:123456    .4 #newusers  < student.txt  .5 #pwunconv         #chpasswd  < passwd.txt      #pwconv  .6 #cat /etc/passwd        #cat /etc/shadow    确认四个用户已成功创建****************第二种方法无配置文件7 利用 useradd  与 passwd --stdin  批量创建用户脚本 7.1  #gvim  account1.sh#!/bin/bash if [ ! -f "$1" ]; then echo "$1 no exist!" exit 1fiusernames=`cat $1`for username in $usernames douseradd $usernameecho $username | passwd --stdin  $username doneexit 0        7.2 #gvim std.txtstd001std002std003std004  7.3 #chmod +x *.sh       #./account1.sh   std.txt    成功创建std001-004, 可去 /etc/passwd 确认       #./account1.sh   std.txt2   报告 该文件不存在       #./account1.sh  7.4  #gvim  delaccount1.sh#!/bin/bashif [ ! -f "$1" ]; then echo "$1 no exist!"exit 1fiusernames=`cat $1`for username in $usernamesdoecho "$username will be deleted!"userdel -r  $usernamedoneexit 0       7.5  #chmod +x *.sh#./delaccount1.sh  std.txt   将这四个用户删除      ***********************第三种方法只需要输入 四个产生 前缀、位数、首位、数量 就可以批量创建  #gvim  account2.sh#!/bin/bash accountfile="user:passwd"if [ -f "$accountfile" ]; thenmv $accountfile "$accountfile"`date +%Y%m%d`fitouch "$accountfile"read -p "qianzhui: "  username_start read -p "weishu: "  nu_nuread -p "star num: " nu_startread -p "shuliang: " nu_amountnu_end=$(($nu_start+$nu_amount-1))for (( i=$nu_start; i<=$nu_end; i++ ))do  nu_len=${#i}nu_diff=$(($nu_nu-$nu_len))if [ "$nu_diff" != "0" ]; thennu_nn=00000000000nu_nn=${nu_nn:1:$nu_diff}fiaccount="$username_start""$nu_nn""$i"echo "$account":"$account" >> $accountfiledonecat "$accountfile" | cut -d':' -f1 | xargs -n 1 useradd pwunconvchpasswd < "$accountfile"pwconvecho "OK"exit 0

0 0
原创粉丝点击