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
- linux学习考试复习笔记
- SCJP考试复习笔记1
- SCJP考试复习笔记2
- SCJP考试复习笔记3
- SCJP考试复习笔记4
- 大数据学习笔记:Linux基础复习
- SCJP认证考试复习笔记系列之一
- SCJP认证考试复习笔记系列之一
- java scjp考试复习总结笔记
- 1z0-042考试复习笔记
- 系统分析员考试复习笔记-1:第一章 绪论
- 程序员考试学习笔记
- 复习考试
- 考试复习
- linux进程复习笔记
- linux命令复习笔记
- Linux 复习笔记1
- Linux 复习笔记
- JAVA序列化与反序列化基础 Serializable
- xcode 添加空模板
- FutureTask的cancel方法真的能停止掉一个正在执行的异步任务吗
- 仿联系人界面右侧索引栏
- 《Swift NSDictionary 的详细使用和部分方法介绍 和 哈希表(散列)的阐述和解释 》
- linux学习考试复习笔记
- linux恢复误删除文件-ext3grep
- Jqgrid入门-显示基本的表格
- 福利 | 据说,每一个 iOSer 都想要一张 Swift 大会门票
- Activity launchMode详解
- iOS点击手势(tap)
- VS2015安装
- python AES-16位加密解密功能实现
- php 7.0的时代到来