马哥教育网络20期+第二周练习博客

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
3、请使用命令行展开功能来完成以下练习:
   (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
   (2)、创建/tmp/mylinux目录下的:
mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │       └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │       ├── bin
    │       └── sbin
    └── var
        ├── lock
        ├── log
        └── run
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

1、linux常用、基础文件管理命令

ls 查看目录文件

    常用选项有:

-a:显示所有档案及目录; 
-A:显示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项; 
-l:与“-C”选项功能相反,所有输出信息用单列格式输出; 
-F:在每个输出项后追加文件的类型标识符, 
-i:显示文件索引节点号(inode)。
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。
-s:显示文件和目录的大小,以区块为单位;
-R:递归处理

复制命令 cp

cp [option]..[-T] sou_file  des_file 复制文件到文件
cp [option]..sou_file dir_file 复制文件到目录 
cp [option].. -t dir_file sou_file 复制文件到目录
常用option              
-i 提示是否覆盖 
-R -r 递归复制目录及目录中的文件、子目录
-v 显示复制过程
-f 强制复制
-a 归档 备份,相当于-dR --presverv=all,保留文件所有属性

mv 移动文件

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用option	
-i 提示是否覆盖
-f 强制覆盖

rm 删除工具,默认只能删除文件、

rm [option].. file_name
常用options有:
-i 提示是否要删除
-f 强制删除
-r 递归删除目录及目录下的文件、子目录

2bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

bash的工作特性之命令执行状态返回值存储在$?中,使用echo $?显示,其中0表示成功执行成功,1-255的数字则表示执行失败

    如:

[root@localhost ~]# cd /mnt
[root@localhost mnt]# echo $?
0   --->0表示cd /mnt 执行成功
[root@localhost mnt]# ls -a
.  ..  hgfs
[root@localhost mnt]# echo $?
0  --->0表示ls -a  执行成功
[root@localhost mnt]# la 12312421321
-bash: la: command not found
[root@localhost mnt]# echo $?
127  --->127表示执行失败
[root@localhost mnt]#

命令行展开

~: 展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

3. 请使用命令行展开功能来完成以下练习:

    创建/tmp目录下的:a_c, a_d, b_c, b_d

[root@localhost mnt]# mkdir {a,b}_{c,d}
[root@localhost mnt]# ls
a_c  a_d  b_c  b_d  hgfs
[root@localhost mnt]#

  创建/tmp/mylinux目录下的

mylinux/

   ├── bin

   ├── boot

      └── grub

   ├── dev

   ├── etc

      ├── rc.d

         └── init.d

      └── sysconfig

          └── network-scripts

   ├── lib

      └── modules

   ├── lib64

   ├── proc

   ├── sbin

   ├── sys

   ├── tmp

   ├── usr

      └── local

          ├── bin

          └── sbin

   └── var

       ├── lock

       ├── log

       └── run

root@localhost mnt]# mkdir -p mylinux/{bin,boot/{grup},dev,etc/{rc.d/{init.d},sysconfig/{network-scripts}},lib/{module
s},lib64,proc,sbin,sys,tmp,usr/{lcoal/{bin,sbin}},var/{lock,lgo,run}}[root@localhost mnt]# cd mylinux/
[root@localhost mylinux]# ls -R
.:
bin  boot  dev  etc  lib  lib64  proc  sbin  sys  tmp  usr  var
 
./bin:
 
./boot:
{grup}
 
./boot/{grup}:
 
./dev:
 
./etc:
rc.d  sysconfig
 
./etc/rc.d:
{init.d}
 
./etc/rc.d/{init.d}:
 
./etc/sysconfig:
{network-scripts}
 
./etc/sysconfig/{network-scripts}:
 
./lib:
{modules}
 
./lib/{modules}:
 
./lib64:
 
./proc:
 
./sbin:
 
./sys:
 
./tmp:
 
./usr:
{lcoal
 
./usr/{lcoal:
bin}  sbin}
 
./usr/{lcoal/bin}:
 
./usr/{lcoal/sbin}:
 
./var:
lgo  lock  run
 
./var/lgo:
 
./var/lock:
 
./var/run:

4. 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

stat 查看时间戳

[root@localhost mnt]# stat mylinux/
  File: `mylinux/'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 274810      Links: 14
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-20 20:35:14.315886505 +0800
Modify: 2016-06-20 20:35:01.926885104 +0800
Change: 2016-06-20 20:35:01.926885104 +0800
[root@localhost mnt]#

touch 修改文件的时间戳

[root@localhost mnt]# stat /etc/fstab 
  File: `/etc/fstab'
  Size: 875       	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 403417      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-19 12:27:03.116999300 +0800
Modify: 2016-06-19 12:26:54.081999285 +0800
Change: 2016-06-19 12:26:54.083999234 +0800
[root@localhost mnt]# touch /etc/fstab 
[root@localhost mnt]# stat /etc/fstab 
  File: `/etc/fstab'
  Size: 875       	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 403417      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-20 20:42:54.669885008 +0800
Modify: 2016-06-20 20:42:54.669885008 +0800
Change: 2016-06-20 20:42:54.669885008 +0800
[root@localhost mnt]#

五、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

    别名

[root@localhost mnt]# alias la='ls -a'
[root@localhost mnt]# la
.  ..  mylinux
[root@localhost mnt]# alias cdetc='cd /etc/sysconfig/'
[root@localhost mnt]# cdetc
[root@localhost sysconfig]#

       引用另一个命令的执行结果:通过管道 或 变量

[root@localhost www]# ls
htpasswrod  vhosts
[root@localhost www]# cat htpasswrod 
status:$apr1$R28ZTyJV$8GQ64MY8BxWwZSu6HGo040
123456
abc
[root@localhost www]# cat htpasswrod  | grep "status"
status:$apr1$R28ZTyJV$8GQ64MY8BxWwZSu6HGo040
[root@localhost www]#
[root@localhost www]# test=$( cat /www/htpasswrod)
[root@localhost www]# cat /www/htpasswrod 
status:$apr1$R28ZTyJV$8GQ64MY8BxWwZSu6HGo040
123456
abc
[root@localhost www]# echo $test
status:$apr1$R28ZTyJV$8GQ64MY8BxWwZSu6HGo040 123456 abc
[root@localhost www]#

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

[root@localhost www]# ls /var
account  crash  db     games  lib      local  log   named  opt       run    tmp  yp
cache    cvs    empty  gdm    llk100a  lock   mail  nis    preserve  spool  www
[root@localhost www]#  ls -d /var/l*[0-9]*[[:lower:]]
/var/llk100a
[root@localhost www]#  ls -d /var/l*[0-9]*[[:lower:]]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[root@localhost /]# ls /etc/[0-9]*[^0-9]
/etc/0kj  /etc/1kj
 
/etc/1abc:
 
/etc/234k:
[root@localhost /]#

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[root@localhost /]# ls /etc/[^a-z][a-z]*
/etc/0kj  /etc/1kj
 
/etc/1abc:

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile20160527093222

[root@localhost /]# touch /tmp/tfile$(date +%Y-%m-%d-%H-%M-%S)
[root@localhost /]# ls /tmp/tfile*
/tmp/tfile2016-06-20-21-41-46
[root@localhost /]#

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

cp -vrf /etc/p* /tmp/mytest1/

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

cp -vrf /etc/*.d /tmp/mytest2/

12、复制/etc/目录下所有以lmn开头,以.conf结尾的文件至/tmp/mytest3目录中。    

 cp -vrf /etc/[l,m,n]*.conf /tmp/mytest3






原创文章,作者:Net20-deamon,如若转载,请注明出处:http://www.178linux.com/19058

(0)
上一篇 2016-06-20 21:25
下一篇 2016-06-21 08:19

相关推荐

  • Linux权限管理与grep命令应用(第四周)

    第四周作业 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 [root@localhost ~]# cp -r /etc/skel/ /home/tuser1 [root@localhost ~]# ch…

    Linux干货 2016-09-15
  • Linux下如何使用sendEmail来发送邮件

    1)什么是sendEmail sendEmail是一个轻量级,命令行的SMTP邮件客户端(注意,不要跟sendmail混淆了)。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大,从此以后你就爱上了它。 2)安装sendEmail [root@zabbix ~]# wget http://…

    系统运维 2016-07-29
  • iptables 从入门到进阶

    Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或网络层防火墙)。在Linux中netfilter和iptables都是指Linux防火墙。区别在于: netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”的防火墙功能体系。 iptables:指的是…

    Linux干货 2017-01-10
  • 马哥教育第一天

    来到马哥教育第一天,初步接触IT,第一次写博客,不知道写点啥,记几个地址吧。

    2018-03-26
  • 如何监控Linux文件系统事件:inotify使用指南

    如何监控Linux文件系统事件:inotify使用指南 §·inotify初识 Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。 §·inoti…

    Linux干货 2016-10-30

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-21 22:31

    写的很好,案例也很详细,但是在元字符运用或者读题的时候没有把握好,在仔细读读题,加油