O

O-Linux&Shell-W5
PS: 本次作业难度比较大,设计的命令较多
step1 使用root用户在根目录下查找一个叫文件的具体路径,以备后面使用 。
step2 使用root用户对比使用四种文档查看命令查看/etc/文件 , 并且查询到root权限白名单的设置位置 。请问用more、less、head和tail中的哪一个命令能够实现查询特定字符串的作用 , 请理解和说明more、less、head和tail的区别 。
step3 使用root用户将用户(如无此用户请新建)列入sudo白名单 。
step4 分别使用(如无此用户请新建)和(如无此用户请新建)用户在自己用户的主目录的.文件中增加一条命令别名的内容,其中两个用户都是对cat命令命名,命令别名分别设置为、 。
step5 使用账户直接将、各自主目录下的.文件复制到/tmp目录下,并且文件名分别设定为、 。
step6 使用账户直接将和文件的所有者更换为 。
step7 **:**使用用户查看和文件中的内容,并将两个文件中内容不同的部分输出为另一个新文件 。comm和diff在这里选取哪个命令使用,为什么?
step8 使用用户将、文件中有关别名的内容提取出来依次写入和文件中 。
step9 使用用户新建一个文件,将和文件里的内容依次合并入文件中 。请理解说明一下符号>和>>的区别与联系 。
使用用户将文件进行排序并将结果输出到文件中 。
使用用户把文件里的文件内容合并到自己主目录的.文件当中,去除重复的行,并重启系统 。
使用用户分别使用和别名对主目录里的.文件进行查看 。请问是否可以操作成功,为什么?
写在解析之前的话
为了更好的管理Linux文章,我将会在我的个人公众号同步更新关于Linux的知识 , 也是为了期末复习的时候,方便寻找前期做过的题目,附上我的公众号(有矿真好 ID:)二维码:
Step1:
用root用户在根目录下操作,所以我们要先切换到根目录下,用到 cd /  , 然后再查找名为的文件路径,这时用到查找命令 find [路径] [选项] ,因为文件在当前目录,我们学过当前目录用. 来表示,指定名称的命令选项是-name ,命令如下:
cd /find . -name 'sudoers'
Step2:
用more less head tail 来查看文件
more 是我们最常用的工具之一 , 最常用的就是显示输出的内容 , 然后根据窗口的大小进行分页显示,然后还能提示文件的百分比 。less可以看作more的plus版本,还支持回车按行,空格翻页的效果,主要区别是less与more的算法不同 。head用于显示前十行tail 用于显示后十行
more /etc/sudoersless /etc/sudoershead /etc/sudoerstail /etc/sudoers
这一步不确定性较大
Step3:
添加用户,并且添加到root白名单,新建用户和添加白名单我们已经讲过:
useradd sunkangangpasswd sunkangkang #在这里我建议建用户同时设置密码#输入你合适的密码之后vi /etc/sudoers
在指定的位置添加上白名单,保存并退出:wq
Step4:
同样的新建两个用户 , 和第3步一样 , 然后分别切换到两个用户中,修改命令别名:
su [username]vi .bashrc#跳转到文件中,按i进入编辑模式#添加alias catliu='cat' #此处有无引号没关系#在另一个用户中输入alias catwang='cat'即可 , 步骤一样
Step5:
复制文件到指定目录并重命名我们也讲过cp [源文件路径] [目标文件目录]命令:(值得注意的是 , 在这里我们是跨用户复制,要用到sudo高级权限)
sudo cp /home/liulinlin/.bashrc /tmp/liulinlinsudo cp /home/wangcuncun/.bashrc /tmp/wangcuncun
Step6:
这里涉及到一个更改权限的命令chown:
** 一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者 , 也没有权限把自己的文件拥有者改设为别人 。只有系统管理者(root)才有这样的权限 。**
使用权限 : root
所以这里依然要用sudo
>>语法<
我们以下的操作目录是在/tmp下
所以:
sudo chown sunkangkang liulinlinsudo chown sunkangkang wangcuncun
不放心的可以ls -l查看一下 。
Step7:
查看文件我们在这里用cat
比较两个文件的命令有diff和comm
diff 是直接比较,给出两文件不同的内容
comm是排序后比较
输入到新的文件用输出重定向>或>>
> 直接重定向到文件,覆盖原有的内容
>> 从最后一行写入到文件 , 保留原来的内容
cat liulinlincat wangcuncundiff liulinlin wangcuncun >> bashrc_diff#此处也可以用 > 因为bashrc_diff 是个新的文件cat bashrc_diff#可以看到文件的内容
Step8:
提取别名并写入到新文件中,提取用到命令grep
grep [关键字] [文件路径]
写入就是输出重定向>或>> , 我们当时设置的别名是和 , 所以提取cat即可:
grep cat liulinlin > liulinlin_aliasgrep cat wancuncun > wangcuncun_alias
Step9:
新建文件用touch
依次合并到我们建好的文件中:
cat liulinlin_alias >> sunkangkang_aliascat wangcuncun_alias >> sunkangkang_alias
:
排序并写入新的文件,对文件内容排序用sort
sort sunkangkang_alias > sundakang
:
将排序好的文件合并到主目录下的.,所以我们将目录切换到主目录cd 排序好的文件在/tmp/ :
cat /tmp/sundakang >> .bashrc
重启
:
重启之后
catliu .bashrccatwang .bashrc
结果一目了然~
在这几次操作中都涉及到了目录的问题,我将会在公众号写一篇针对目录的文章 。
【O】一顿操作猛如虎之后,你是不是爱上这个无情的Linux了?