O-LinuxShell-W5

2024-01-06 19:40
文章标签 linuxshell w5

本文主要是介绍O-LinuxShell-W5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

O-Linux&Shell-W5

PS: 本次作业难度比较大,设计的命令较多

step1 使用root用户在根目录下查找一个叫sudoers文件的具体路径,以备后面使用。

step2 使用root用户对比使用四种文档查看命令查看/etc/sudoers文件,并且查询到root权限白名单的设置位置。请问用more、less、head和tail中的哪一个命令能够实现查询特定字符串的作用,请理解和说明more、less、head和tail的区别。

step3 使用root用户将sunkangkang用户(如无此用户请新建)列入sudo白名单。

step4 分别使用liulinlin(如无此用户请新建)和wangcuncun(如无此用户请新建)用户在自己用户的主目录的.bashrc文件中增加一条命令别名的内容,其中两个用户都是对cat命令命名,命令别名分别设置为catliu、catwang。

step5 使用sunkangkang账户直接将liulinlin、wangcuncun各自主目录下的.bashrc文件复制到/tmp目录下,并且文件名分别设定为liulinlin、wangcuncun。

step6 使用sunkangkang账户直接将liulinlin和wangcuncun文件的所有者更换为sunkangkang。

step7 **:**使用sunkangkang用户查看liulinlin和wangcuncun文件中的内容,并将两个文件中内容不同的部分输出为另一个新文件bashrc_diff。comm和diff在这里选取哪个命令使用,为什么?

step8 使用sunkangkang用户将liulinlin、wangcuncun文件中有关别名的内容提取出来依次写入liulinlin_alias和wangcuncun_alias文件中。

step9 使用sunkangkang用户新建一个文件sunkangkang_alias,将liulinlin_alias和wangcuncun_alias文件里的内容依次合并入sunkangkang_alias文件中。请理解说明一下符号>和>>的区别与联系。

step10 使用sunkangkang用户将sunkangkang_alias文件进行排序并将结果输出到sundakang文件中。

step11 使用sunkangkang用户把sunkangkang文件里的文件内容合并到自己主目录的.bashrc文件当中,去除重复的行,并重启系统。

step12 使用sunkangkang用户分别使用catliu和catwang别名对sunkangkang主目录里的.bashrc文件进行查看。请问是否可以操作成功,为什么?

写在解析之前的话
为了更好的管理Linux文章,我将会在我的个人公众号同步更新关于Linux的知识,也是为了期末复习的时候,方便寻找前期做过的题目,附上我的公众号(有矿真好 ID:youkip)二维码:
在这里插入图片描述
Step1:
用root用户在根目录下操作,所以我们要先切换到根目录下,用到 cd / ,然后再查找名为sudoers的文件路径,这时用到查找命令 find [路径] [选项] , 因为sudoers文件在当前目录,我们学过当前目录用. 来表示,指定名称的命令选项是-name ,命令如下:

cd /
find . -name 'sudoers'

Step2:
more less head tail 来查看文件

  1. more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比。
  2. less可以看作more的plus版本,还支持回车按行,空格翻页的效果,主要区别是less与more的算法不同。
  3. head用于显示前十行
  4. tail 用于显示后十行
more /etc/sudoers
less /etc/sudoers
head /etc/sudoers
tail /etc/sudoers

这一步不确定性较大🤔
Step3:
添加sunkangkang用户,并且添加到root白名单,新建用户和添加白名单我们已经讲过:
https://blog.csdn.net/tianxujituan/article/details/104665256

useradd sunkangang
passwd 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/liulinlin
sudo cp /home/wangcuncun/.bashrc /tmp/wangcuncun

Step6:
这里涉及到一个更改权限的命令chown:
** 一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。**
使用权限 : root
所以这里依然要用sudo

>>语法<<
chown [选项] [用户user][:组group] [文件路径]

我们以下的操作目录是在/tmp下
所以:

sudo chown sunkangkang liulinlin
sudo chown sunkangkang wangcuncun

不放心的可以ls -l查看一下。

Step7:
查看文件我们在这里用cat
比较两个文件的命令有diffcomm
diff 是直接比较,给出两文件不同的内容
comm是排序后比较
输入到新的文件用输出重定向>>>
> 直接重定向到文件,覆盖原有的内容
>> 从最后一行写入到文件,保留原来的内容

cat liulinlin
cat wangcuncun
diff liulinlin wangcuncun >> bashrc_diff
#此处也可以用 > 因为bashrc_diff 是个新的文件
cat bashrc_diff
#可以看到文件的内容

Step8:
提取别名并写入到新文件中,提取用到命令grep
grep [关键字] [文件路径]
写入就是输出重定向>>>,我们当时设置的别名是catliu和catwang,所以提取cat即可:

grep cat liulinlin > liulinlin_alias
grep cat wancuncun > wangcuncun_alias

Step9:
新建文件用touch
依次合并到我们建好的文件中:

cat liulinlin_alias >> sunkangkang_alias
cat wangcuncun_alias >> sunkangkang_alias

Step10:
排序并写入新的文件,对文件内容排序用sort

sort sunkangkang_alias > sundakang

Step11:
将排序好的文件合并到主目录下的.bashrc,所以我们将目录切换到主目录cd 排序好的文件在/tmp/sundakang :

cat /tmp/sundakang >> .bashrc

重启reboot

Step12:
重启之后

catliu .bashrc
catwang .bashrc

结果一目了然~

在这几次操作中都涉及到了目录的问题,我将会在公众号写一篇针对目录的文章。

一顿操作猛如虎之后,你是不是爱上这个无情的Linux了?

这篇关于O-LinuxShell-W5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/577398

相关文章

采用全自动贴片机来组装和满足回流焊工艺,列产品小,效率高,低输出纹波—— TPVT-W5系列

TPVT-W5系列是一款标准的表面贴装电源模块,完全实现采用全自动贴片机来组装和满足回流焊工艺,大大提高产能和降低人工费用。此系列产品小,效率高,低输出纹波及提供3000V以上的直流电压隔离,SMD封装。

LinuxShell 学习心的

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signat

[01 LinuxShell ] 清华大学电子系科协软件部2023暑期培训

清华大学电子系科协软件部2023暑期培训_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV11N4y187ZE/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=3ef6540f8473c7367625a53b7b77fd66 本视频

linuxshell日常脚本命令(1)

Linux 清理make、configure生成的文件(灵感来自于quilt安装) make clean #make clean 可以清除make失败的内容 Linux 清理make、configure生成的文件 == make clean #清除上一次make命令生成的文件== make distclean #清除上一次make以及configure命令生成的文件 然后再 ma

面试题总结--LinuxShell相关

面试题总结–Linux&Shell (持续更新ing…) 文章目录 面试题总结--Linux&Shell (持续更新ing......)1.Linux常用命令1.Shell常用工具 1.Linux常用命令 序号命令命令解释1top查看内存2df -h查看磁盘存储情况3iotop查看磁盘IO读写4iotop -o直接查看比较高的磁盘读写程序5netstat -tunlp | g

linuxShell

http://www.runoob.com/linux/linux-intro.html Ls / ——目录结构 (1) 命令ls——列出文件 ls 显示当前目录文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以.doc结尾的所有文件 (2)命令cp——复制文件 cp

LinuxShell的 中括号[], 双中括号[[]], 双小括号(()) 笔记231207

LinuxShell的 中括号[], 双中括号[[]], 双小括号(()) 中括号[], 双中括号[[]], 双小括号(()) 都可用于条件判断 双中括号[[]] , 算是 中括号[]的增强 双中括号[[]] 的[[是bash的关键字, 并不是命令 [remotet@vb-f39 /]$ type [[[[ 是 shell 关键字 单双中括号[]和[[]] 既可以用于字符串比较, 也