part2-4练习题整理

part2

正则匹配
练习1:
显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符繁荣文件或目录;

[root@localhost ~]# ls -d /var/l?[[:lower:]]
/var/lib  /var/log

练习2:
显示/etc目录下,以非数字开头,且以任意一位数字结尾的文件或目录;

[root@localhost ~]# ls -d /etc/[^0-9]*[0-9]
/etc/dbus-1  /etc/iproute2  /etc/pkcs11  /etc/polkit-1  /etc/sasl2  /etc/X11

练习3:显示/etc目录下,以字母开头,后面跟一个非字母及其它任意长度任意字符的文件或目录;

[root@localhost ~]# ls -d /etc/[a-z][^a-z]*
/etc/e2fsck.conf  /etc/X11

练习4:复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/magedu.com目录

[root@localhost ~]# cp -r /etc/m*[^0-9] /tmp/magedu.com
[root@localhost ~]# ls /tmp/magedu.com/
machine-id  makedumpfile.conf.sample  mke2fs.conf  modules-load.d  mtab    my.cnf.d
magic       man_db.conf               modprobe.d   motd            my.cnf

练习5:复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下;

[root@localhost ~]# cp -r /usr/share/man/man[0-9] /tmp/man
[root@localhost ~]# ls /tmp/man
man1  man2  man3  man4  man5  man6  man7  man8  man9

练习6:复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d目录下;

[root@localhost ~]# cp -r /etc/[mnrp]*.conf /tmp/conf.d/
[root@localhost ~]# ls /tmp/conf.d/
man_db.conf  mke2fs.conf  nsswitch.conf  resolv.conf  rsyslog.conf

grep练习
练习1:显示/etc/passwd文件中不以/bin/bash结尾的行;

[root@localhost ~]# grep -v "/bin/bash$" /etc/passwd

练习2:找出/etc/passwd文件中的两位数或三位数;

[root@localhost ~]# grep "\<[0-9]\{2,3\}\>" /etc/passwd

练习3:找出/etc/rc.d/rc.sysinit或/etc/grub2.cfg文件中,以至少一个空白字符开头,且后面非空白字符的行;

[root@localhost ~]# grep "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg 

练习4:找出“ps -ef”命令的结果中以root开始的行;

[root@localhost ~]# ps -ef |grep "^root"

find练习
练习1:查找/var目录下属主为root,且属组为mail的所有文件或目录;

[root@localhost ~]# find /var -user root -a -group mail -ls
50351361    0 drwxrwxr-x   2 root     mail          195 8月  6 11:16 /var/spool/mail
50651404    8 -rw-------   1 root     mail         6943 7月 30 19:12 /var/spool/mail/root

练习2:查找/usr目录下不属于root,bin或hadoop的所有文件或目录;用两个方法;

[root@localhost ~]# find /usr -not -user root -a -not -user bin -ls
[root@localhost ~]# find /usr -not \( -user root -o -user bin \) -ls 

练习3:查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用户的文件或目录

[root@localhost ~]# find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls

练习4:查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录;

[root@localhost ~]# find / \( -nouser -o -nogroup \) -atime -7 -ls

练习5:查找/etc目录下大于1M且类型为普通文件的所有文件;

[root@localhost ~]# find /etc -size +1M -type f -exec ls -lh {} \;

练习6:查找/etc目录下所有用户都没有写权限的文件;

[root@localhost ~]# find /etc -not -perm /222 -type f -ls

练习7:查找/etc目录下至少有一类用户没有执行权限的文件;

[root@localhost ~]# find /etc -not -perm -111 -type f -ls

练习8:查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的所有文件;

[root@localhost ~]# find /etc -perm -113 -type f -ls

part3

练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);

[root@localhost ~]# groupadd -g 5000 distro
[root@localhost ~]# groupadd -g 5001 peguin
[root@localhost ~]# useradd gentoo -u 4001 -G distro,peguin

练习2:创建用户fedora,其注释信息为“Fedora Core”,默认shell为/bin/tcsh;

[root@localhost ~]# useradd fedora -c "Fedora Core" -s /bin/tcsh

练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其源文件仍能被用户访问;

[root@localhost ~]# usermod gentoo -md /var/tmp/gentoo

练习4:为gentoo新增附加组netadmin;

[root@localhost ~]# usermod gentoo -aG netadmin

用户管理命令练习
增加两个用户并设置好密码(写2行):John、Lucy

[root@localhost ~]# useradd John ; echo "123456"|passwd --stdin John
useradd:用户“John”已存在
更改用户 John 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd Lucy ; echo "123456"|passwd --stdin Lucy
更改用户 Lucy 的密码 。
passwd:所有的身份验证令牌已经成功更新。

查看各用户的基本信息(相关文件在/etc中)

[root@localhost ~]# cat /etc/passwd

查看各用户的密码信息

[root@localhost ~]# cat /etc/shadow

查找用户summer并显示其相关信息

[root@localhost ~]# grep "summer" /etc/passwd

将当前用户切换到John(进入其主目录)

[root@localhost ~]# su - John

显示当前登陆用户名

[John@localhost ~]$ whoami
John

将John的登陆密码改为:mima1234

[root@localhost ~]# echo "mima1234"|passwd --stdin John
更改用户 John 的密码 。
passwd:所有的身份验证令牌已经成功更新。

将John的账户有效期设为2017年12月31号

[root@localhost ~]# chage -E 17530 John

将John加入summer组中

[root@localhost ~]# usermod -aG test John

将用户名John改为Jack

[root@localhost ~]# usermod -l Jack John

将Jack的用户全名改为:Jack.willianmus

[root@localhost ~]# usermod -c "Jack.willianmus" Jack

用户切换到Lucy,删除Lucy的密码

[root@localhost ~]# vim /etc/sudoers.d/test
Lucy ALL=(ALL) /usr/bin/passwd 
[root@localhost ~]# su - Lucy
[Lucy@localhost ~]$ sudo passwd -d Lucy

删除用户Lucy

[root@localhost ~]# userdel Lucy

组管理命令练习
增加一个student组

[root@localhost ~]# groupadd student

查看所有组的基本信息

[root@localhost ~]# vim /etc/group

查看summer组中包含哪些用户名

[root@localhost ~]# cat /etc/group |grep "^summer"

将student组名改为teacher

[root@localhost ~]# groupmod -n teacher student

删除teacher组

[root@localhost ~]# groupdel teacher

练习:完成以下任务
1、新建系统组mariadb,新建系统用户mariadb,属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看其命令提示符;

[root@localhost ~]# groupadd mariadb;useradd -g mariadb -M -s /sbin/nologin mariadb
[root@localhost ~]# su - mariadb
su: 警告:无法更改到 /home/mariadb 目录: 没有那个文件或目录
This account is currently not available.

2、新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;

[root@localhost ~]# groupadd -g 5000 mageedu
[root@localhost ~]# useradd -d /users/gentoo gentoo;echo "gentoo"|passwd --stdin gentoo
useradd:用户“gentoo”已存在
更改用户 gentoo 的密码 。
passwd:所有的身份验证令牌已经成功更新。

3、新建用户fedora,其家目录为/users/fedora,密码同用户名;

[root@localhost ~]# useradd -d /users/fedora fedora;echo "fedora"|passwd --stdin fedora

4、新建用户www,其家目录为/users/www;删除www用户,但保留其家目录;

[root@localhost ~]# useradd -d /users/www www
[root@localhost ~]# userdel www

5、为用户gentoo和fedora新增附加组test;

[root@localhost ~]# usermod -aG test gentoo;usermod -aG test fedora

6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部所有文件的属组为mageedu,并让属组对目录本身拥有写权限;

[root@localhost ~]# cp -R /var/log /tmp
[root@localhost ~]# chown -R :test /tmp/log;chmod -R g=w /tmp/log
[root@localhost ~]# ll /tmp/log
总用量 5244
drwx-w-r-x 2 root test     176 12月 31 02:45 anaconda
drwx-w---- 2 root test      23 12月 31 02:45 audit
-rw--w---- 1 root test       0 12月 31 02:45 boot.log
-rw--w---- 1 root test    8552 12月 31 02:45 boot.log-20200808
-rw--w---- 1 root test   20829 12月 31 02:45 boot.log-20200809
-rw--w---- 1 root test   10793 12月 31 02:45 boot.log-20200812
-rw--w---- 1 root test   10848 12月 31 02:45 boot.log-20200813
-rw--w---- 1 root test   10346 12月 31 02:45 boot.log-20200815
-rw--w---- 1 root test   10507 12月 31 02:45 boot.log-20200819
-rw--w---- 1 root test   10044 12月 31 02:45 boot.log-20200820
-rw--w---- 1 root test    1152 12月 31 02:45 btmp

part4

练习作业
写出下列要求执行的命令,如果是在末行模式下执行,需写出“:”号,注意大小写。
1、向后搜索字符串stream /stream
2、向前搜索字符串uplook ?uplook
3、复制10行然后粘贴 10yy p
4、将光标移到第55行 55G
5、将光标移到最末行 G
6、删除共20行 20dd
7、恢复前一步的操作 u
8、将光标移到行首 0或着^
9、将光标移到行尾 $
10、将从第10行到第50行的内容写入/back/file1 :10,50w /back/file1
11、将从当前行开始,总共20行的内容存入/back/file2 :.,+19w /back/file2
12、读取/etc/conf/hello.txt文件的内容插入当前行后面
:r /etc/conf/hello.txt
13、替换第20行到第80行中所有httpd为bind
:20,80 s/http/bind/g
14、替换文中全部的root为admin :% s/root/admin/g
15、在每行的行首插入字符串new :% s/^/new/g
16、在第10行到第50行的行尾插入字符串new
:10,50 s/$/new/g
17、让vi显示每一行的行号 set nu
zip例子:
1、压缩install.log文件

[root@localhost ~]# zip install.log.zip install.log
  adding: install.log (deflated 47%)

2、压缩率分别为3和9

[root@localhost ~]# zip -3 file1.zip file1
  adding: file1 (deflated 43%)
[root@localhost ~]# zip -9 file.zip file1
  adding: file1 (deflated 47%)

3、将当前目录下所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件

[root@localhost ~]# zip -r test.zip ./*
  adding: aa (stored 0%)
  adding: anaconda-ks.cfg (deflated 45%)
  adding: etc/ (stored 0%)
  adding: etc/passwd (deflated 64%)
  adding: etc/passwd.zip (stored 0%)
  adding: file1 (deflated 47%)
  adding: file2 (stored 0%)
  adding: file3 (stored 0%)
  adding: libevent-2.1.8-stable.tar.gz (deflated 0%)
  adding: memcached-1.5.6.tar.gz (deflated 0%)

4、打包目录
5、删除压缩文件test.zip中的file1文件

[root@localhost ~]# zip -d test.zip file1
deleting: file1

6、向压缩文件test.zip中添加file1文件

[root@localhost ~]# zip -m test.zip file1
  adding: file1 (deflated 47%)

7、压缩文件时排除某个文件

[root@localhost ~]# zip test3.zip ./* -x file1
  adding: aa (stored 0%)
  adding: anaconda-ks.cfg (deflated 45%)
  adding: etc/ (stored 0%)
  adding: file2 (stored 0%)
  adding: file3 (stored 0%)
  adding: libevent-2.1.8-stable.tar.gz (deflated 0%)
  adding: memcached-1.5.6.tar.gz (deflated 0%)
  adding: test.zip (stored 0%)

unzip例子
1、将压缩文件test3.zip在指定目录/tmp下解压缩,如果已有相同文件存在,要求unzip命令不覆盖原先的文件

[root@localhost ~]# unzip -n test3.zip -d /tmp/              

2、查看压缩文件目录,但不解压

[root@localhost ~]# unzip -v test.zip

3、将压缩文件test3.zip在指定目录/tmp下解压缩,如果已有相同文件存在,要求unzip命令覆盖原先的文件

[root@localhost ~]# unzip -o test3.zip -d /tmp/

gzip例子
1、将etc目录下所有文件压缩成gzip文件

[root@localhost etc]# gzip *
[root@localhost etc]# ls
passwd.gz  passwd.zip.gz

2、将上例中所有gzip文件解压并列出详细信息

[root@localhost etc]# gzip -dv *
passwd.gz:  64.0% -- replaced with passwd
passwd.zip.gz:   5.5% -- replaced with passwd.zip

3、详细列出例1中每个压缩文件信息但不解压

[root@localhost etc]# gzip -l *
         compressed        uncompressed  ratio uncompressed_name
                497                1311  64.0% passwd
                628                 634   5.5% passwd.zip
               1125                1945  43.7% (totals)

4、递归压缩目录

[root@localhost ~]# gzip -rv etc
gzip: etc/passwd.gz already has .gz suffix -- unchanged
gzip: etc/passwd.zip.gz already has .gz suffix -- unchanged

5、递归解压目录

[root@localhost ~]# gzip -dr etc

rpm例子
1、rpm包安装

[root@localhost Packages]# rpm -ivh xz-5.2.2-1.el7.x86_64.rpm
准备中...                          ################################# [100%]
 软件包 xz-5.2.2-1.el7.x86_64 已经安装

2、rpm包升级

[root@localhost Packages]# rpm -Uvh xz-5.2.2-1.el7.x86_64.rpm

3、包卸载

[root@localhost Packages]# rpm -e zip

4、查询rpm包是否安装

[root@localhost Packages]# rpm -q zip
未安装软件包 zip 
[root@localhost Packages]# rpm -q xz
xz-5.2.2-1.el7.x86_64

5、查询详细信息

[root@localhost Packages]# rpm -qi xz

6、查询软件包安装位置

[root@localhost Packages]# rpm -ql xz

7、查询系统文件属于哪个rpm包

[root@localhost Packages]# rpm -qf /usr/bin/xz
xz-5.2.2-1.el7.x86_64

8、查询软件包的依赖性

[root@localhost Packages]# rpm -qR xz

9、校验

[root@localhost Packages]# rpm -V xz
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是实现的代码: HTML代码: ```html <div class="part1-pic-bg"> <div class="part1-iconinfo1" data-target="part1-iconinfo1-content">Icon Info 1</div> <div class="part1-iconinfo2" data-target="part1-iconinfo2-content">Icon Info 2</div> <div class="part1-iconinfo3" data-target="part1-iconinfo3-content">Icon Info 3</div> <div class="part1-iconinfo4" data-target="part1-iconinfo4-content">Icon Info 4</div> <div class="part1-iconinfo" id="part1-iconinfo1-content">Icon Info 1 Content</div> <div class="part1-iconinfo" id="part1-iconinfo2-content">Icon Info 2 Content</div> <div class="part1-iconinfo" id="part1-iconinfo3-content">Icon Info 3 Content</div> <div class="part1-iconinfo" id="part1-iconinfo4-content">Icon Info 4 Content</div> </div> ``` CSS代码: ```css .part1-pic-bg { display: flex; flex-wrap: wrap; } .part1-iconinfo { display: none; width: 100%; margin-top: 10px; background-color: #f0f0f0; padding: 10px; } ``` jQuery代码: ```javascript $(document).ready(function() { $('.part1-pic-bg > div').click(function() { var target = '#' + $(this).data('target'); $(target).slideToggle(); }); $(document).click(function(event) { if (!$(event.target).closest('.part1-pic-bg').length) { $('.part1-iconinfo').slideUp(); } }); }); ``` 解释一下代码: 首先,在HTML代码中,我们给每个大盒子都添加了一个data-target属性,用来指定对应的小盒子的id值。 然后,我们在CSS代码中将所有的小盒子都隐藏了起来,并设置了一些样式。 接着,我们使用jQuery来实现点击大盒子显示对应的小盒子的功能。具体实现方式是,当点击大盒子时,我们获取它的data-target属性值,然后根据该值找到对应的小盒子,并使用slideToggle()方法来切换显示和隐藏状态。 最后,我们再通过jQuery来实现点击任意地方隐藏小盒子的功能。具体实现方式是,当用户点击文档中除了大盒子以外的任意地方时,我们就将所有的小盒子都隐藏起来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值