管道、重定向和用戶管理練習

前面一章學習了硬鏈接和軟鏈接,回顧上一章節內容:

   硬鏈接在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.www58058.com/27706

(0)
皺 多利亞皺 多利亞
上一篇 2016-08-04
下一篇 2016-08-04

相關推薦

  • 馬哥教育網絡第21期-第十四周課程練習

    系統的INPUT和OUTPUT默認策略為DROP; iptables -P INPUT DROP iptables -P OUTPUT DROP 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問; web服務器僅允許…

    Linux干貨 2016-12-26
  • RAID磁盤列陣

                            RAID   RAID是英文Redundant Array o…

    Linux干貨 2016-09-07
  • ~~ 1;列出當前系統上所有已經登錄的用戶的用戶名,注意:同一用戶登錄多次,則只顯示 一次即可。 # who | cut -d" " -f 1 | sort -u 2;取出最后登錄到當前系統的用戶的相關信息 # id $(who | tail -1 |cut -d" " -f 1) # last | head -1 3…

    Linux干貨 2017-01-03
  • 創建yum源及httpd源碼編譯

    創建yum源及源碼編譯httpd yum本身相比于rpm來說,能夠將有依賴的包文件一次性的安裝完成,是相當的方便的。 yum的服務器支持的幾種格式: http、https、ftp、file 1、yum基礎命令 1、yum命令 yum [options] [command] [package …] [options]: 基本不用 [command]: re…

    Linux干貨 2017-08-08
  • Linux系統文件管理

    1、Linux的文件類型:       –:普通文件;       d:目錄文件;       b:塊設備:     &nbsp…

    Linux干貨 2016-08-04
欧美性久久久久