第二周作业

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

目录管理类命令:

cd:变更目录

  命令格式:cd [DIRECTORY]

pwd:显示当前目录的绝对路径

ls:显示文件或目录内容

    命令格式:ls [OPTION]… [FILE]…

    常用参数:

        -a:显示所有内容(包含以.开头的隐藏文件)。

        -l:以长格式显示文件夹内容。

        -d:只显示目录名称,不显示目录下的内容。

        -h:以人类易读的方式显示文件大小(如:4.0K)。

mkdir:创建目录

    命令格式:mkdir [OPTION]…DIRECTORY…

    常用参数:

        -p:表示目录存在时不返回错误,不存在时,自动创建目录。

        -v:显示创建过程的详细信息。

        -m MODE:创建目录时直接指定权限。

rmdir:删除目录

    命令格式:rmdir [OPTION]… DIRECTORY…

    常用参数:

        -v:显示执行过程。

tree:目录结构查看

    常用参数:

        -d:只显示目录。

        -L level:指定显示的层级数据。

        -P pattern:只显示指定pattern匹配到的路径。

文件管理类:

cp:复制命令

    命令格式:

        cp [OPTION]… [-T] SOURCE DEST

          cp [OPTION]… SOURCE… DIRECTORY

        cp [OPTION]… -t DIRECTORY SOURCE…

    常用参数:

        -i:交互式

        -r:递归复制目录及内部的所有内容。

        -a:归档,相当于-dR –preserve=all

            –preserve[=ATTR_LIST]

            mode:权限

            ownership:属主属组

            timestamp:时间戳

            links:符号链接

            xattr:扩展属性

            context:安全标签

            all:上述所有属性

        -d:表示不跟踪符号链接所指向的源文件–no-dereference –preserve=links

        -p:保持原有文件的属性信息。

        -f:强制覆盖

        -v:显示执行过程

    使用方法:

        单源复制:cp [OPTION]… [-T] SOURCE DEST

         如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;

        如果DEST存在:

            如果DEST是非目录文件:则覆盖目标文件;

            如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

        多源复制:

            cp [OPTION]… SOURCE… DIRECTORY

            cp [OPTION]… -t DIRECTORY SOURCE…

            如果DEST不存在:错误;

             如果DEST存在:

                如果DEST是非目录文件:错误;

                如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

mv:移动命令

    命令格式:

        mv [OPTION]… [-T] SOURCE DEST

          mv [OPTION]… SOURCE… DIRECTORY

          mv [OPTION]… -t DIRECTORY SOURCE…

    常用参数:

        -i:交互式

        -f:强制

rm:删除命令

    命令格式:rm [OPTION]… FILE…

    常用参数:

        -i:交互式

        -f:强制

        -r:递归

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

命令执行结果状态用 $? 表示。

    0:成功

    1 – 255:失败

命令行展开:

    ~:展开为当前用户的主目录。

    ~USERNAME:展开为指定用户的主目录。

    {}:可承载一个以逗号分隔的列表,并将其展开为多个路径。

    示例:

        /tmp/{a,b} = /tmp/a,/tmp/b

        /tmp/{tom,jerry}/h1 = /tmp/tom/h1,/tmp/jerry/h1

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

(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

[root@devops2 tmp]# touch /tmp/{a_c,a_d,b_c,b_d}
[root@devops2 tmp]# ls
a_c  a_d  b_c  b_d

(2)、创建/tmp/mylinux目录下的:

[root@devops2 tmp]# mkdir -p /tmp/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@devops2 tmp]# tree /tmp/mylinux/
/tmp/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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

文件的元数据包括:文件大小,权限,块数,块大小,文件类型,所在磁盘编号,inode,关联文件数,时间戳信息。

可通过stat命令进行查看:

[root@devops2 tmp]# stat /tmp/mylinux/
  File: `/tmp/mylinux/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 1835023     Links: 14
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-01-08 16:40:14.764841462 +0800
Modify: 2017-01-08 16:40:10.123180220 +0800
Change: 2017-01-08 16:40:10.123180220 +0800

access time:访问时间,atime,即:通过cat,more等读取其内容。

modify time:修改时间,mtime,即:改变文件内容。

change time:改变时间,ctime,即:元数据发生改变。

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

语法:alias new_name = 'old_name option'

[root@devops2 tmp]# alias grep='grep --color=auto'
[root@devops2 tmp]# alias|grep grep
alias grep='grep --color=auto'

注意:通过命令行定义的命令别名只对当前shell有效,如果想永久有效,需要定义在配置文件中,如:

仅对当前用户有效:~/.bashrc

对所有用户有效:/etc/bashrc

然后重新读取配置文件使别名生效:

source ~/.bashrc 或 source /etc/bashrc

引用其他命令执行结果

$(COMMAND) 或 `COMMAND`

[root@devops2 tmp]# currdir=`pwd`
[root@devops2 tmp]# echo $currdir
/tmp
[root@devops2 tmp]# filelist=$(ls)
[root@devops2 tmp]# echo $filelist
a_c a_d b_c b_d mylinux

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

[root@devops2 var]# ll -d /var/l*[[:digit:]]*[[:lower:]]
drwxr-xr-x 2 root root 4096 Jan  8 17:36 /var/l012abc
-rw-r--r-- 1 root root    0 Jan  8 17:39 /var/l9def

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

[root@devops2 etc]# ll -d /etc/[[:digit:]]*[^[:digit:]]
-rw-r--r-- 1 root root    0 Jan  8 17:45 /etc/1abc
drwxr-xr-x 2 root root 4096 Jan  8 17:45 /etc/2def

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

[root@devops2 etc]# ll -d /etc/[^[:alpha:]][[:alpha:]]*
-rw-r--r-- 1 root root    0 Jan  8 17:45 /etc/1abc
drwxr-xr-x 2 root root 4096 Jan  8 17:45 /etc/2def

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@devops2 tmp]# touch /tmp/file-$(date +%F-%H-%M-%S)
[root@devops2 tmp]# ls /tmp/file-2017-01-08-18-03-48 
/tmp/file-2017-01-08-18-03-48

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

[root@devops2 tmp]# mkdir /tmp/mytest{1,2,3}
[root@devops2 tmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
[root@devops2 tmp]# ls /tmp/mytest1/
pam.d    pcmcia     php.ini      plymouth                      portreserve    prelink.conf    profile.d
pango    pear       php.ini.bak  pm                            postfix        prelink.conf.d  protocols
passwd   pear.conf  pinforc      pm-utils-hd-apm-restore.conf  ppp            printcap        pulse
passwd-  php.d      pki          popt.d                        prelink.cache  profile

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

[root@devops2 tmp]# cp -r /etc/*.d /tmp/mytest2/
[root@devops2 tmp]# ls /tmp/mytest2/
bash_completion.d  event.d        makedev.d       prelink.conf.d  rc4.d          rwtab.d
cgconfig.d         init.d         modprobe.d      profile.d       rc5.d          setuptool.d
chkconfig.d        latrace.d      oddjobd.conf.d  rc0.d           rc6.d          statetab.d
cron.d             ld.so.conf.d   pam.d           rc1.d           rc.d           sudoers.d
depmod.d           logrotate.d    php.d           rc2.d           request-key.d  xinetd.d
dracut.conf.d      lsb-release.d  popt.d          rc3.d           rsyslog.d      yum.repos.d

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

[root@devops2 tmp]# cp /etc/{l,m,n}*.conf /tmp/mytest3
[root@devops2 tmp]# ls /tmp/mytest3/
latrace.conf  libaudit.conf  logrotate.conf  mke2fs.conf    nsswitch.conf  numad.conf
ld.so.conf    libuser.conf   ltrace.conf     nfsmount.conf  ntp.conf

原创文章,作者:N26-西安-方老喵,如若转载,请注明出处:http://www.178linux.com/66098

(0)
N26-西安-方老喵N26-西安-方老喵
上一篇 2017-01-08 17:47
下一篇 2017-01-08 22:05

相关推荐

  • 定时任务的完成contab

    采用crontab来完成 利用crontab来定时执行任务大致有如下三步: 1、编写shell脚本 2、利用crontab加入到定时任务队列 3、查看作业完成情况 一、如何建立shell脚本 Linux下有很多不同的shell,但我们通常使用bash(bourne again shell)进行编程,因为bash是免费的并且很容易使用 程序必须以下面的行开始(…

    Linux干货 2016-08-11
  • Linux 中cp 、rm和mv与inode之间的关系

    1.cp和inode          当文件不存在时,分配一个新的inode号,创建新文件;          当文件存在时,则inode号采用被覆盖之前的目标文件的inode号。 2.rm和ino…

    2017-07-21
  • 第十八周博客作业

    1、为LNMP架构添加memcached支持,并完成对缓存效果的测试报告; 操作系统: CentOS 7.210.0.0.51 nginx+php+mysql10.0.0.52 memcached 一. 环境准备: 搭建LNMP编译安装环境 1. 配置163的yum源和阿里云的epel源 [root@localhost ~]# mv /etc/yum.rep…

    2017-07-12
  • Docker 简介

    Docker在现有云计算虚拟化中是非常火的一个项目,那么他和虚拟化有什么不同呢 从上图来看,好像和我们之前说到的虚拟化并没有什么不同,但这里需要说明的是在各guest主机上,是没有操作系统的,他们共用Host主机上的内核空间,只对用户空间进行了隔离。 因此在这种环境下我们不把他称为虚拟化而称作容器。 此种方式的实现主要基于了linux内核自带的两项技术,分别…

    2017-03-19
  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod&nb…

    Linux干货 2016-09-05

评论列表(1条)

  • 马哥教育
    马哥教育 2017-02-27 17:03

    延续了之前的品质,再接再厉。