7.29号作业:

1、  将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

tr [[:lower:]] [[:upper:]] < /etc/issue >/tmp/issue.out

tr [a-z] [A-Z]< /etc/issue>/tmp/issue.out

 

2、  将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

# w | tr [[:lower:]] [[:upper:]] > /tmp/who.out

3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:Hello,I am 用户名,the systemversion is here,pleasehelp me to check it ,thanks!

操作系统版本信息

   mail help root <<EOF

  < Hello, I am chesfer(`id -un`),the system versionis here,pleasehelpme to check it ,thanks!

  <`cat /etc/centos-release`

  <EOF

 



4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开。

  # ls/root/ | tr ‘\’n ‘ ’


 

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

   #echo "1+2+3+4+5+6+7+8+9+10" |bc

6、删除Windows文本文件中的'^M'字符


  #dos2unix win.txt

    或者

    # cat file | tr -d"\r" > win.txt

  

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

   # cat files | tr -d [[:alpha:]][[:punct:]]

 

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

   #echo $PATH | tr ":" "\n"

 

9、删除指定文件的空行

#cat>>test<<EOF

>hello world

>hengheng

>EOF

 

#cat test|tr -s '\n'

 

#cat filename

hello world

hengheng

 

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

 

cattest|tr ' ' '\n'|tr -s '\n '

11、软、硬链接区别

1)软链接可以跨文件系统 ,硬链接不可以。
2)关于 inode的问题 。硬链接不管有多少个,都指向的是同一个inode,会把inode链接数增加 ,只要inode的链接数不是 0,文件就一直存在,不管你删除的是源文件还是链接的文件。只要有一个存在,文件就存在。

 当你修改源文件或者链接文件任何一个的时候 ,其他的文件都会做同步的修改。软链接不直接使用inode号作为文件指针,而是使用文件路径名作为指针(软链接跟源文件的inode不一样)。

所以删除链接文件对源文件无影响,但是删除源文件,链接文件就会找不到要指向的文件 。

软链接有自己的inode,并在磁盘上有一小片空间存放路径名.
3)软链接可以对一个不存在的文件名进行链接 。
4)软链接可以对目录进行链接。


12、创建用户gentoo,附加组为binroot,默认shell/bin/csh,注释信息为"GentooDistribution"

# useradd -G bin,root -s /bin/csh -c "Gentoo Distribution"Gentoo

 

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

名字为admins 的组

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

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

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

# groupadd admins;

useradd -G admins natasha; echo"centos"|passwd --stdin natasha;

useradd -G admins harry; echo "centos"|passwd--stdin harry;

useradd -s /sbin/nologin -r sarah;
echo "centos"|passwd --stdin sarah

#一行执行多条命令,使用分号隔开。


7.25作业:

1. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
   # ls -d /var/l*[0-9]*[a-z]


   #ls /var/l*[[:digit:]][[:lower:]]

2. 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。    # ls -d /etc/[0-9]*[^0-9]     # ls -d /etc/[[:digit:]*][^[[:digit:]]]3. 显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
     # ls  /etc/[^[:alpha:]][[:alpha:]]*
     # ls [^A-Za-z][A-Za-z]*


以上题目一定注意区别跟   grep的区别,grep只能用在文档中,而这个是查找文件名。

启示: 想想上边这个跟使用find 查找的区别。


4、显示/etc目录下所有以m开头以非数字结尾的文件或目录



   ls /etc/m*[^[:digit:]]

   ls /etc/m*[^0-9]


5、显示/etc目录下,所有以.d结尾的文件或目录



   ls -d /etc/*.d



6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

 # ls /etc/[mnrp]*.conf




7、使用别名命令,每日将/etc/目录下所有文件,备份到/testdir/下独立的新目录下,并要求新目录格式为backupYYYY-mm-dd,备份过程可见

   # alias cpb="cp –rpv /etc/ /testdir/backup`date+%F-%M-%D`"


8、先创建/testdir/rootdir目录,再复制/root所有下文件到该目录内,并要求保留原有权限  # cp –rp /root/ /testdir/rootdir :复制多个文件到文件夹
9、 如何创建/testdir/dir1/x,/testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b,      /testdir/dir1/y/a,/testdir/dir1/y/b



 #mkdir–pv /testdir/dir1/{x/{a,b},y/{a,b}}


10、如何创建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b # mkdir -pv/testdir/dir2/{x/{a,b},y}

11、如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5,/testdir/dir5/dir3,

  /testdir/dir5/dir4



 # mkdir –pv /testdir/dir{3,4,5/dir{3,4}}


12、 只显示指定目录隐藏文件

 #ls –d /etc/.*

13、 只显示指定目录下的子目录()

 #ls -d /etc/*/