文件查找和压缩打包

作业1

编写一个脚本/root/bin/createuser.sh,脚本的执行语法必须是:createuser.sh -u username -m password,选项与参数间可支持多空格,但不能顺序颠倒。

当未指定正确的选项或参数时,以错误输出方式提示“createuser.sh -u username -m password ”后退出脚本。

用户名必须以字母开头,可包括数字和_。否则不合法。以错误输出提示用户"用户名仅包含字母数据和下划线"

当用户名检测合法后,判断用户名是否已存在,若存在,再判断用户是否已设置过密码,若设置过密码,直接退出,未设置,则将密码设置为所指定的密码后以正确输出方式显示“username 密码已更新后退出”

当用户名不存在,则创建用户,并为该用户设置所指定的密码后以正确输出方式显示“用户username已创建并更新密码”

要求脚本执行过程中不能有非要求的其他输出结果出现。脚本在非正确方式退出时应反回给?参数非0值。

[ 4 -eq $# ] ||(echo 输入不合法,请输入createuser.sh -u username -m password ; exit 1)||exit 1

username=$2

[ -u == $1 ]&&[[ "$2" =~ ^[[:alpha:]][0-9a-z_]* ]]&&[ -m == $3 ]||(echo "输入不合法,用户名仅包括字母数字下划线";exit 1)||exit 1

mima=$4

id $2 &>/dev/null || (useradd $2 &&echo $4|passwd --stdin $2>/dev/null;echo "用户$2 已创建,密码为$4 ";set --;unset username mima;exit 1)||exit 0

id $2 &>/dev/null && (getent shadow $4 |egrep ‘\$‘[[:digit:]]‘\$‘ &>/dev/null && echo "用户名已存在且密码已创建 ";exit 2)

echo "$4" |passwd --stdin "$2">/dev/null

echo $2密码已更新

set --

unset username mima

exit 0

作业2

[ 4 -eq $# ] ||(echo 输入不合法,请输入createuser.sh -u username -m password ; exit 1)||exit 1

username=$2

[ -u == $1 ]&&[[ "$2" =~ ^[[:alpha:]][0-9a-z_]* ]]&&[ -m == $3 ]||(echo "输入不合法,用户名仅包括字母数字下划线";exit 1)||exit 1

mima=$4

id $2 &>/dev/null || (useradd $2 &&echo $4|passwd --stdin $2>/dev/null;echo "用户$2 已创建,密码为$4 ";set --;unset username mima;exit 1)||exit 0

id $2 &>/dev/null && (getent shadow $4 |egrep ‘\$‘[[:digit:]]‘\$‘ &>/dev/null && echo "用户名已存在且密码已创建 ";exit 2)

echo "$4" |passwd --stdin "$2">/dev/null

echo $2密码已更新

set --

unset username mima

exit 0


交互式登录(登录shell)

使用终端通过用户名密码登录、su - username

执行顺序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互登录 (非登录shell)

su username 、图形界面下打开终端、执行脚本、其他bash实例

执行顺序: ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

常用文件查找命令

find

-maxdepth level 最大搜索深度

-minxdepth level  最小搜索深度

-name 基于名称的精确查找

-iname 基于名称忽略大小写的精确查找查找

-inum 基于inode查找

-samefile 基于相同inode号的查找(查找硬链接)

-links n 硬链接为n的文件

-regex 支持正则 默认为(emacs标准)

-regextype egrep -regex 支持egrep同标准的正则

-user 用户名  基于文件owner的查找

-group 组名 基于文件group的查找

-uid userid 基于文件uid的查找

-gid groupid 基于文件gid的查找

-nouser 查找没有owner的文件

-nogroup 查找没有group的文件

-type 基于文件类型的查找

f: 普通文件

d: 目录文件

l: 符号链接文件

s:套接字文件

b: 块设备文件

c: 字符设备文件

p: 管道文件

-perm

mode:精确权限匹配

+mode[/mode] 任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,+ 从centos7开始淘汰换为/

-mode   每一类对象都必须同时拥有指定权限,与关系0 表示不关注

-print 默认

-delete 直接删除所查找到的文件,不询问。

-ls 长列出所查找到的文件

-fls file 将查找到的文件长列出导入到指定文件。

> file

-ok command \; 对查找到的文件当做下一命令的参数去执行(交互式)

-exec command \; 对查找到的文件当做下一命令的参数去执行(非交互式)执行cp命令不需要询问

文件压缩命令

compress(unncompress)、gzip(gunzip)、bzip2(bunzip)、zip(unzip)、xz

-d 解压缩

-k 保留原文件

-c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。

-f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.

-v 显示详细过程。

文件打包命令

tar

-cf 创建包名字  原文件(可以指定多个)

-tf 包名字   显示包中的文件名

-tvf 详细显示包中的文件名

-rf 包名字 新文件名(可以指定多个)

--delete -f 包名字 被删除的文件名(可以指定多个)

-xf 包名字 解出所有的文件到当前目录

-xf 包名字 文件名 解所指定的文件到当前目录

-C 解包到指定目录

-v 显示过程

-Jcf 创建包的名字(.tar.xz) 原文件(可以指定多个) 打包并用xz压缩

-jcf 创建包的名字(.tar.bz2) 原文件(可以指定多个) 打包并用bzip压缩

-zcf 创建包的名字(.tar.gz) 原文件(可以指定多个) 打包并用gzip压缩

-T 指定个列表,包含需要被打包的文件,以换行符为间隔

-X 指定个排除列表,以换行符为间隔

作业3

删除libc.so.6文件,并恢复。禁止用快照,重装。

重启虚拟机、快速按下ESC、选择CD光盘驱动、然后选择rescure installed systerm 救援模式(安装或升级所在的系统、安装系统用基本视频驱动、恢复安装的系统、从当地驱动器驱动、内存测试)选择语言、coutinue、然后有句话“chroot /mnt/sysimage”这句话的意思是你的系统将会被挂载到/mnt/sysimage目录下,选择OK就好了,接下来进入shall这时你进入的是光盘下的Linux,光盘中有一个完整的Linux系统,然后运行一条命令吧libc.so.6 复制到root下的lib64,注意此时的root是/mnt/sysimage

时间: 2025-01-02 16:02:23

文件查找和压缩打包的相关文章

关于文件查找和解压缩

文件查找和解压缩在文件系统上查找符合条件的文件,文件查找的工具有两个,locate 和 find文件查找分为:            locate      非实时查找 (在数据库查找)             updatedb   更新数据库            经常用于搜索稳定的文件,比如配置文件            var/lib/mlocate/mlocate.db 数据库路径             find     实时查找 locate :       查询系统上预建的文件索引

文件查找和压缩

在linux系统上,有一个核心思想,那就是一切皆文件.那我们在和linux系统打交道的同时,不免要和文件打交道.既然如此,那掌握文件查找.压缩.解压缩和文件归档类工具是我们必不可少的一项技能. 文件查找工具:locate.find locate是一款非实时性查询工具,它是根据事先建立的索引数据库来查找文件,索引的构建是在系统不繁忙时自动创建,需要遍历整个根文件系统,极其消耗资源,管理员也可以手工创建.正因为如此,所以locate查询文件比较快,但不能够精确查找,都是模糊查询. locate -i

linux基础学习-第十天(文件查找和压缩)

2016-08-12 授课内容: shell的流程控制 文件查找和压缩 shell的流程控制: 过程式编程语言: 顺序执行 选择执行 循环执行(未讲) 顺序执行: if语句: 单分支 if 判断条件; then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if CONDITION1; then if-true elifCONDITION2; then if-ture elifCONDITION3; then if-

第十章、文件查找和压缩

第十章.文件查找和压缩 本章内容 使用locate命令 使用find命令 压缩和解压缩工具 文件查找 在文件系统上查找符合条件的文件 文件查找:locate, find 非实时查找(数据库查找):locate 实时查找:find locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依赖于事先构建的索引 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb) 索引构建过程需要遍历整个根文件系统,极消耗资源 工作

7-2 文件查找和压缩归档

文件查找和压缩归档 文件查找 locate命令 介绍 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依赖于事先构建的索引 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb) 索引构建过程需要遍历整个根文件系统,极消耗资源 工作特点: 查找速度快 模糊查找 非实时查找 搜索的是文件的全路径,不仅仅是文件名 可能只搜索用户具备读取和执行权限的目录 语法 locate KEYWORD 常用选项 -i 不区分大小写的搜索

linux基础正则表达式、shell基础、文件查找和压缩

linux基础正则表达式.shell基础.文件查找和压缩 1.shell编程显示电脑的基本信息,初级基础脚本.只适合6.7版本的. COLOR="\033[1;36m" COLOREND="\033[0m" echo -e "CPU type is $COLOR `lscpu |grep 'Model name'|tr -s ' '|cut -d: -f2`$COLOREND" echo -e "Disk space is $COLOR

文件查找与压缩面试题

9.文件查找与压缩面试题 试题 自己做 1.find -name 111.txt 2.find /data/files -type f -mtime +7 -size +10M -exec rm {} \; 3.find /test -user jorm -name "abc*" 4.find -type f -ctime +30 -name "*.log" -size +1G -exec mv {} /tmp \; 5.tar -cf /data/etc_bak.

马哥-文件查找和压缩-查找篇

文件查找和压缩 文件查找 文件查找:locate:非实时查找 find:实时查找 locate [OPTION] PATTERN 非实时搜索 工作特点:查找速度快 模糊查找 非实时查找 搜索的是文件的全路径,不仅仅是文件名 可能只搜索用户具备读取和执行权限的目录 locate [OPTION] -i #不区分大小写 -n NUM #显示前NUM行 -r #使用正则表达式 #locate命令搜索的数据库 [[email protected] /data/shell]#ll /var/lib/mlo

Linux文件查找及压缩常用知识总结

一.文件查找 1.locate命令: locate KEYWORD 常用选项:     -i 执行区分大小写的搜索     -n  N只列举前N个匹配项目 查询系统上预建的文件索引数据库在:/var/lib/mlocate/mlocate.db上,由于事先建立索引,所以查找速度快. 2.find命令: 实时查找工具,通过遍历指定路径完成文件查找,查询的速度稍微慢点,精确查找,实时查找.可能只搜索用户具备读取和执行权限的目录. find - search for files in a direct