管道、重定向和用户管理练习

前面一章学习了硬链接和软链接,回顾上一章节内容:

   硬链接在inode表中记录一个条目,所有的元数据和原始文件元数据相同。

       ·相当于两个名字。

       ·删除原始文件,另一个条目也能够找数据本身。

       ·不能跨分区链接

          ~]#ln [原始文件] 链接文件

   软链接在inode表中记录一个条目,指针指向原始文件条目,删除原始条目,符号连接找不到原始数据。

         ·新的inode号。

         ·可以跨分区链接,

         ·可以对目录进行链接

          ~]# ln -s [原始文件] 链接文件

那么问题来了,硬链接和软链接的到底区别是啥呢?

用官方的话来概括,一句话

       硬链接就是一个文件,他们共享inode条目。在inode table中多增加了一条原始文件相同记录,这条inode记录都指向同一个用户数据;

         软链接,他们不是同一个文件,在指定目录下创建了一个文件,这个文件的索引节点指针指向原始文件inode table记录。

   ##特点:硬链接:不能跨分区链接、删除另一个inode记录,依然能够通过另一条记录找到原始用户数据

用白话解释

        硬链接就是多了一个或多个文件名,删除这个文件名原始数据依然存在;

  软链接就是一条指针,指向原始文件记录。(/白话翻译不一定准确,安装自己的意思理解/)

   ##特点:软链接:能够跨分区操作,可以对目录进行链接

关于用户组的命令练习 

1、file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和

    释考验我们对tr命令的掌握程度和配合linux中计算器的灵活使用

    思路看到这种题我们应该能够想到我们要用哪种方法来计算?我这里就用我们所学习过的内容来进行解题。我们首先需要把文本中的空格给替换成‘+’通过计算器来进行计算

    解[expr $(($(tr ' ' '+' < file1)))]

[root@localhost ~]# expr $(($(tr ' ' '+' < file1)))
55
[root@localhost ~]#

2、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格

    释对tr命令的练习与掌握,以及对管道的理解。

    思路解这道题思路有很多,可以用我们学过的管道,也可以用重定向联合tr的删除来解题

    解:echo "xt.,l 1 jr#!$mn2 c*/fe3 uz4" | tr -d "[[:alpha:]]""[[:space:]]""[[:punt:]]"】

[root@localhost ~]# echo "xt.,l 1 jr#trmn2 c*/fe3 uz4" | tr -d "[[:alpha:]]""[[:space:]]""[[:punct:]]"
1234
[root@localhost ~]#

另一种解法如果这个这段字符串在abc.txt这个文件中保存的话,我们还可以用重定向输入来解题

    解:tr -d "[[:alpha:]]""[[:space:]]""[[:punct:]]" < abc.txt】 

[root@localhost ~]# echo "xt.,l 1 jr#trmn2 c*/fe3 uz4" > abc.txt 
[root@localhost ~]# cat ~/abc.txt 
xt.,l 1 jr#trmn2 c*/fe3 uz4
[root@localhost ~]# tr -d "[[:alpha:]]""[[:space:]]""[[:punct:]]" < abc.txt
1234
[root@localhost ~]#

3、将PATH变量每个目录显示在独立的一行

            释考验我们对tr命令的掌握程度和配合ECHO 和对变量的理解的灵活使用

    思路我们知道PATH变量中保存的都是外部命令的路径,而且每个路径都是以冒号分割。我们可以tr命令把冒号(:)替换成换行符(\n)

    解echo $PATH | tr ':' '\n'

[root@localhost ~]# echo $PATH | tr ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/.local/bin
/root/bin
[root@localhost ~]#

4、删除指定文件的空行

    释对tr命令-s选项的理解

    思路文本中的空行都是由每一个换行符组成的,而空行呢都是两个或多个换行符连在一起的,我们需要删除连续的空行就需要用到tr命令-s选项了。

    解【tr -s '\n' < file1】

[root@localhost ~]# cat file1 
1 2 3 4 5 6 7 8 9 10
sdf
sdf
sdf
sdf
[root@localhost ~]# tr -s  '\n' < file1 
1 2 3 4 5 6 7 8 9 10
sdf
sdf
sdf
sdf
[root@localhost ~]#

//我事先已经创建好了file1这个文件//

5、将文件中每个单词(字母)显示在独立的一行,并无空行

    释依然是涉及到tr的字符替换

    思路一个文中的英语单词无非就是用空格或,.来分割的,我们这些符号替换成换行符。

    解【cat a.txt |tr ' ,.' '\n' |tr -s '\n'】

[root@localhost ~]# cat a.txt 
hello,world.
my name is xxx.aljsdf sdf 
[root@localhost ~]# cat a.txt |tr ' ,.' '\n' |tr -s '\n'
hello
world
my
name
is
xxx
aljsdf
sdf
[root@localhost ~]#

6、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

    释用用户管理命令来创建用户并且对其进行一些额外的注视

    思路创建用户useradd,添加附加组-g选项,shell使用-s选项,-c为注释

    解【useradd -G root,bin -s /bin/csh -c "Gentoo Distribution" gentoo】

[root@localhost ~]# useradd -G root,bin -s /bin/csh -c "Gentoo Distribution" gentoo
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
[root@localhost ~]#

//提示:创建用户成功了,但是警告我,这个家目录已经存在,无法从/etc/skel复制文件到这个目录,创建邮箱,文件存在。//

7、创建下面的用户、组和组成员关系

  名字为admins 的组

  用户natasha,使用admins 作为附属组

  用户harry,也使用admins 作为附属组

  用户sarah,不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos

    释解这道题有很多中方法,条件不一样解题思路也不一样,考验我们对基本的用户管理命令的掌握

    思路1、在没有创建用户和组的情况下,先创建组,在创建用户在创建密码

    2、在用户已经存在的情况下,创建组,把已有的用户添加到这个组里面来

    解:1

groupadd amins
useradd –G admins natasha
useradd –G admins harry
useradd –s /sbin/nologin sarah
echo centos | passwd –stdin natasha
echo centos | passwd –stdin harry
echo centos | passwd –stdin sarah

2、

groupadd amins
gpasswd -a natasha admins
gasswd -a harry admins
useradd –s /sbin/nologin sarah
echo centos | passwd –stdin natasha
echo centos | passwd –stdin harry
echo centos | passwd –stdin sarah

//如果密码存在第二个就不用设密码了。//

原创文章,作者:皱 多利亚,如若转载,请注明出处:http://www.178linux.com/27706

(0)
皱 多利亚皱 多利亚
上一篇 2016-08-04 14:42
下一篇 2016-08-04 14:42

相关推荐

  • yum用法第二篇-自定义创建yum仓库

    一、前言      上次写了yum命令的介绍及常见使用说明,这次打算继续整理下如何自定义创建yum仓库,这在企业中也是非常常见的设置方式,有些公司为了服务器安全是不允许连接外网的,自定义创建yum仓库正好可以实现局域网单独安装管理程序包这种需求。 二、用法说明      1.使用…

    Linux干货 2015-09-22
  • 管理systemd

    管理systemd init(系统的第一个进程): CentOS 5: SysV initCentOS 6: UpstartCentOS 7: Systemd Systemd:系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程 Systemd新特性: 系统引导时实现服务并行启动 按需启动守护进程 系统状态快照 自动化的…

    Linux干货 2016-09-22
  • 马哥教育网络班21期+第一周课程练习

    1、描述计算机的组成及其功能。 计算机由五大组件组成包括:计算器,控制器,存储,输入设备,输出设备。 运算器:做运算,且只能做二进制运算,包括算术运算和逻辑运算,如加减乘除,移位,取模。运算器的核心是加法器。 控制器:控制整个计算机部件之间协调。比如做计算,运算器先从存储器取数,运算器作运算,再回存存储器。这整个过程都由控制器做协调。  &nbsp…

    Linux干货 2016-07-12
  • shell脚本编程入门(一)

    概述 shell脚本就像是早期DOS年代的批处理文件(.bat),最简单的功能就是将许多命令写在一起,让用户很轻松能够一下子处理复杂的操作(执行一个脚本就能够一次执行多个命令)。而shell脚本更提供数组、循环、条件与逻辑判断等功能,让用户也可以直接以shell来编写程序,而不必使用类似C语言等传统程序编写的语法。 shell脚本基础 shell脚本是包含一…

    Linux干货 2016-08-15
  • Jumpserver 3.0 全新改版 更轻、更快、更便捷

               Jumpserver Wiki                       &…

    系统运维 2016-01-05
  • 10分钟学会理解和解决MySQL乱码问题

    本文将详细介绍MySQL乱码的成因和具体的解决方案。在阅读本文之前,强烈建议对字符集编码概念还比较模糊的同学 阅读下博主之前对相关概念的一篇科普:十分钟搞清字符集和字符编码 MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为。为了更好的解释这个…

    2015-03-17