Linux基础练习题(五)
1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
[root@bj-1-142 ~]# mke2fs -t ext4 -m3 -L MYDATA -b 2048 /dev/sdb1
# 配置默认挂在属性启用acl
[root@bj-1-142 ~]# tune2fs -o acl /dev/sdb1
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
[root@bj-1-142 ~]# mount -o noatime,noexec /dev/sdb1 /data/mydata/
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
[root@bj-1-142 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (20973568-167772159,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-167772159,默认为 167772159):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
# 格式化swap分区并启用之
[root@bj-1-142 ~]# swapon /dev/sdb2
[root@bj-1-142 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            977         244         139          11         593         560
Swap:          3072           0        3072
3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
[root@bj-1-142 ~]# cat disk.sh
#!/bin/bash
# Filename: disk.sh
# Author: enzhi.wang
# Date: 2017-02-15
# chkconfig:
# discription:
# print current system all disks
echo "print disk list."
fdisk -l | grep -o  "/dev/sd[a-z]"| uniq
# print all disk partition
echo "file system disk space usage"
df -h |grep "/dev/sd[a-z]"
4、总结RAID的各个级别及其组合方式和性能的不同;
RAID0特性:
 1、读写性能提升;
 2、可用空间,N*min
 3、无容错能力;
 4、最小磁盘数2,2+
RAID1特性:
 1、读性能提升,写性能略有下降,同一份数据要存两份;
 2、可用空间,1*min,磁盘总空间的一半;
 3、有冗余能力;
 4、最少磁盘数,2,2+;
RAID5特性:
 1、读写性能提升;
 2、可用空间,N-1*min;
 3、有冗余能力;
 4、最少磁盘数,3,3+;
RAID10特性:
 1、读写性能提升;
 2、可用空间,N*min/2;
 3、有冗余能力,每组镜像最多只能坏一块;
 4、最少磁盘数,4,4+;
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
[root@bj-1-160-enzhi ~]# mdadm -C /dev/md0 -a yes -l 1 -c 128 -n 2 /dev/sd[b,c]1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
[root@bj-1-160-enzhi ~]# mdadm -C /dev/md0 -c 256 -l 5 -n 3 /dev/sd[b,c,d]1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@bj-1-160-enzhi ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Feb 15 21:11:09 2017
     Raid Level : raid5
     Array Size : 4204544 (4.01 GiB 4.31 GB)
  Used Dev Size : 2102272 (2.00 GiB 2.15 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Wed Feb 15 21:11:20 2017
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
         Layout : left-symmetric
     Chunk Size : 256K
           Name : bj-1-160-enzhi.com:0  (local to host bj-1-160-enzhi.com)
           UUID : 93d0b6f4:43f15ed3:8d289e89:bd0dea44
         Events : 18
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       3       8       49        2      active sync   /dev/sdd1
[root@bj-1-160-enzhi ~]# mkfs.ext4 /dev/md0
[root@bj-1-160-enzhi ~]# mkdir /backup
[root@bj-1-160-enzhi ~]# vim /etc/fstab
/dev/md0                /backup                 ext4    defaults,noatime,acl    0 0
[root@bj-1-160-enzhi ~]# mount -a
[root@bj-1-160-enzhi ~]# mount |grep "/dev/md0"
/dev/md0 on /backup type ext4 (rw,noatime,acl)
7、写一个脚本
 (1) 接受一个以上文件路径作为参数;
 (2) 显示每个文件拥有的行数;
 (3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash
# -*- coding: utf-8 -*-
# Filename:    files.sh
# Author: enzhi.wang
# Date: 2017-02-15
# Description:
if [ $# -lt 1 ];then
    echo "Usage: $0 /path/to/somefile ..."
    exit 2
fi
count=0
# 如果参数为目录文件则提示用户不是文件
for f in $*;do
    if [ -d $f ];then
        echo "error $f is a directory."
           exit 4
    else
        lines=$(wc -l $f|awk '{print $1}')
        echo "$f line sum = $lines"
        let count++
    fi
done
echo "本次共为$count个文件统计了行数."
8、写一个脚本
 (1) 传递两个以上字符串当作用户名;
 (2) 创建这些用户;且密码同用户名;
 (3) 总结说明共创建了几个用户;
#!/bin/bash
# -*- coding: utf-8 -*-
# Filename:    adduser1.sh
# Author: enzhi.wang
# Date: 2017-02-15
# Description:
if [ $# -lt 1 ];then
    echo "Usage: $0 username1 username2 ..."
    exit 2
fi
count=0
for u in $*;do
    if id $u &>/dev/null;then
        echo "error user $u is exists."
    else
        useradd $u
        echo "$u"|passwd --stdin $u &>/dev/null
        echo "useradd $u is finished."
        let count++
    fi
done
echo "create $count users."
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash
# -*- coding: utf-8 -*-
# Filename:    adduser2.sh
# Author: enzhi.wang
# Date: 2017-02-15
# Description:
uid_sum=0
for i in {1..20};do
    useradd visitor$i
    uid=$(id -u visitor$i)
    uid_sum=$[$uid_sum + $uid]
done
echo "UID sum $uid_sum"
												
											Linux基础练习题(五)的更多相关文章
- Linux基础练习题(二)
		
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
 - Linux基础练习题之(四)
		
Linux基础练习题 请详细总结vim编辑器的使用并完成以下练习题 1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的 ...
 - linux基础(五)
		
一.linux网络原理及基础设置 ifconfig 命令:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址. [root@bogon ~]# ifconfig ens33: flags=41 ...
 - linux基础练习题(2)
		
Linux命令作业(关卡二) 练习题1 理解操作系统的作用,以及各种操作系统的不同 要求: 为什么要有OS?没有OS能行吗?原因是什么? Linux内核指的是什么? Linux主要应用在哪些地方? 使 ...
 - linux基础练习题(1)
		
Linux命令作业(关卡一) 练习题1 理解操作系统的作用,以及各种操作系统的不同 要求: 简述什么是OS 简述应用程序.硬件.OS的关系 列举出3种常见的操作系统 简述Ubuntu和Linux的关系 ...
 - Linux基础练习题
		
1.列出当前系统上所有已经登录的用户名,注意:同一个用户登录多次,则只显示一次即可. [root@bj-1-160-enzhi ~]# who|cut -d ' ' -f 1|uniq -c 2 ro ...
 - linux基础练习题(3)
		
关卡三 练习题 在家路径下创建A文件夹 在上一步创建的A文件夹中,创建B/C/D文件夹 在上一步所在的路径中,创建C/E/F文件夹 使用目录树查看文件夹结构 A/B/C中创建一个hello.py文件 ...
 - Linux 基础练习题
		
Linux 测试 1.找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写 [root@localhost proc]# grep -i '^s' /proc/meminfo [ ...
 - Linux基础练习题(三)
		
1.显示当前系统上root.fedora或user1用户的默认shell: [root@www ~]# egrep "^(root|fedora|user1)" /etc/pass ...
 
随机推荐
- osgEarth编译——以VS2012为例
			
整理记录下 osgEarth编译过程. osgEarth是依赖于OSG的三维地理平台. 准备工作 OpenSceneGraph-3.4.0.zip OSG_3RDPARTY_DIR http:/ ...
 - Git与Github。
			
Git是一款免费,开源的分布是版本,用于敏捷高效的处理任何或小或大的项目.分布式相对于集中式的最大区别在于开发者可以提到本地,每个开发者通过克隆,在本地磁盘内拷贝一个完整的GIt仓库. Git的功能特 ...
 - CentOS7 安装 JIRA 7.2.x 教程:下载、安装、汉化、破解
			
1.先看视频,参考着能装出个试用版来,不同的地方后面再做说明.JIRA 安装视频(Linux) http://www.confluence.cn/pages/viewpage.action?pageI ...
 - Scala编程实战
			
项目概述 需求 目前大多数的分布式架构底层通信都是通过RPC实现的,RPC框架非常多,比如前我们学过的Hadoop项目的RPC通信框架,但是Hadoop在设计之初就是为了运行长达数小时的批量而设计的, ...
 - 浅析Linux操作系统是如何工作的(思维导图)
			
SA***189 多任务计算机运转机制如下思维导图所示: 小结: Linux操作系统是一个在时钟的节拍下,各个模块紧密协作.密不可分的整体,而整个Linux系统都是建立在存储程序的基础之上,正是有了程 ...
 - Python学习---django下的cookie操作 180201
			
什么是Cookies 什么是Cookies cookies设置的原因: 1. http请求的无记忆性: 2.加快访问速度 3. 减少服务器压力 cookies特点: cookies保存在客户端浏览器 ...
 - openresty及lua的随机函数
			
我们都知道,所谓的随机都是伪随机,随机的结果是由随机算法和随机种子决定的. 所以,当我们没有初始化的时候,如果直接使用math.random(),那么出来的值肯定是每次都一样,因为种子等于0. 因此, ...
 - 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft
			
前言 随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一 ...
 - 20、资源与本地化 System.Resources
			
可以将字符串.图像或对象数据等资源包含在资源文件中,方便应用程序使用. .NET Framework 提供了五种创建资源文件的方法: •创建一个包含字符串资源的文本文件.或创建一个包含字符串.图像或对 ...
 - 左右值无限级分类 MVC + EntityFramework 的简单实现
			
在度娘上查了大半个月的资料,最后发现每个网友分享的文章都有一定的错误(PS:大家是故意的么?).最后是在看了一个ASP版本后知道了大概流程:看了一个存储过程实现的文章后知道了大概需要的功能:看了一个S ...