N26 第二周博客作业

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

常用的文件管理工具有: cp mv rm

cp 命令 : copy 的简写

语法格式:
    1) 单源复制 cp [OPTION]… [-T] SOURCE DEST
        若 DEST 不存在,则事先创建此文件,并复制内容到 DEST 中,
        若 DEST 存在,1.若 DEST 是非目录文件,则覆盖目标文件 2. 若 DEST 是目录文件,则先在 DEST 目录下创建一个与源文件同名的文件,并复制其数据流
    2) 多源复制 cp [OPTION]… SOURCE… DIRECTORY 或 cp    [OPTION]… -t DIRECTORY SOURCE…
        如果 DEST 不存在 ,报错
        如果 DEST 存在,1. 若 DEST 是非目录文件,错误 2. 若 DEST 是目录文件,则分别复制每个文件至目标目录中,并保持原名

常用选项:
    -i : 交互式复制
    -f : 强制覆盖目标文件
    -r,-R : 递归复制目录
    -d : 复制符号链接文件本身,而非其指向的源文件
    -a : -dR –preserve=all, archive
    –preserv=
        mode 权限
        ownership 从属关系
        timestamps 时间戳
        context 安全属性
        xattr 扩展属性
        links 符号链接
        all 上述所有属性

示例:
[root@432895f7d850 ~]# ls # 展示当前目录所包含的一般文件
anaconda-ks.cfg
[root@432895f7d850 ~]# cp anaconda-ks.cfg anaconda-ks-copy.cfg  # 复制一个文件
[root@432895f7d850 ~]# ls # 查看是否复制成功
anaconda-ks-copy.cfg  anaconda-ks.cfg
[root@432895f7d850 ~]# cp anaconda-ks.cfg /tmp/anaconda-ks-copy.cfg # 复制文件到另一个目录
[root@432895f7d850 ~]# ls /tmp
anaconda-ks-copy.cfg  ks-script-LRoSA2  yum.log
[root@432895f7d850 ~]# cp anaconda-ks.cfg /tmp/ # 复制文件到另一个目录
[root@432895f7d850 ~]# ls /tmp
anaconda-ks-copy.cfg  anaconda-ks.cfg  ks-script-LRoSA2  yum.log
[root@432895f7d850 ~]# mkdir a
[root@432895f7d850 ~]# cp a b # 复制目录
cp: omitting directory ‘a’
[root@432895f7d850 ~]# cp -r a b
[root@432895f7d850 ~]# ls # 复制目录成功
a  anaconda-ks-copy.cfg  anaconda-ks.cfg  b

mv 命令: move (rename) file 移动或重命名文件

语法格式:
    mv [OPTION]… [-T] SOURCE DEST
    mv [OPTION]… SOURCE… DIRECTORY
    mv [OPTION]… -t DIRECTORY SOURCE…

常用选项:
    -i,–interactive 在覆盖文件时进行提示
    -f,–force 在覆盖文件时不进行提示
    -n, –no-clobber 不覆盖一个现存的文件

示例:
    [root@432895f7d850 ~]# ls
    a  anaconda-ks-copy.cfg  anaconda-ks.cfg  b
    [root@432895f7d850 ~]# mv anaconda-ks-copy.cfg anaconda-ks-COPY.cfg # 重命名文件
    [root@432895f7d850 ~]# ls
    a  anaconda-ks-COPY.cfg  anaconda-ks.cfg  b
    [root@432895f7d850 ~]# mv /tmp/yum.log ~/ # 移动文件
    [root@432895f7d850 ~]# ls
    a  anaconda-ks-COPY.cfg  anaconda-ks.cfg  b  yum.log

rm 命令: remove files or directories

语法格式:
    rm [OPTION]… [FILE]…  

常用选项:
    -i : 交互式移除
    -f : 强制移除目标文件
    -r,-R : 递归移除目录

示例:

    [root@432895f7d850 ~]# ls
    a  anaconda-ks-COPY.cfg  anaconda-ks.cfg  b  yum.log
    [root@432895f7d850 ~]# rm anaconda-ks-COPY.cfg # 移除文件
    rm: remove regular file ‘anaconda-ks-COPY.cfg’? y
    [root@432895f7d850 ~]# rm -f yum.log # 强制移除文件
    [root@432895f7d850 ~]# rm -r a # 移除目录
    rm: remove directory ‘a’? y
    [root@432895f7d850 ~]# rm -rf b # 强制移除目录
    [root@432895f7d850 ~]# ls

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

bash的工作特性之命令执行状态返回值

说明:
    bash 通过状态返回值来输出此结果: 0 表示成功,其他值(1-255)表示失败
    命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
    命令正常执行时,有的还回有命令返回值,根据命令及其功能不同,结果各不相同;

示例:

    [root@432895f7d850 tmp]# ls
    a_c  a_d  b_c  b_d  mylinux
    [root@432895f7d850 tmp]# echo $?
    0
    [root@432895f7d850 tmp]# useradd lc
    useradd: user ‘lc’ already exists
    [root@432895f7d850 tmp]# echo $?
    9
    [root@432895f7d850 tmp]# lss
    bash: lss: command not found
    [root@432895f7d850 tmp]# echo $?
    127

bash的工作特性之命令行展开

说明:
    在 bash 中,~ 会被自动展开为用户的家目录;
    {} 可承载一个以逗号(,)分隔的路径列表,并能够将其展开为多个路径

示例:

    [root@432895f7d850 tmp]# mkdir -pv /tmp/x/{p1/{a,b},/p2}
    mkdir: created directory ‘/tmp/x’
    mkdir: created directory ‘/tmp/x/p1’
    mkdir: created directory ‘/tmp/x/p1/a’
    mkdir: created directory ‘/tmp/x/p1/b’
    mkdir: created directory ‘/tmp/x//p2’
    [root@432895f7d850 tmp]# tree  /tmp/x
    /tmp/x
    |– p1
    |   |– a
    |   -- b<br />
&nbsp;&nbsp;&nbsp;
— p2

    4 directories, 0 files

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

(1) 命令如下

    [root@432895f7d850 tmp]# touch /tmp/{a,b}_{c,d}
    [root@432895f7d850 tmp]# ls # 确认是否创建成功
    a_c  a_d  b_c  b_d

(2)命令如下

    [root@432895f7d850 tmp]# mkdir -p 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@432895f7d850 tmp]# tree -L 3 mylinux/ # 确认是否创建成功
    mylinux/
    |– bin
    |– boot
    |   -- grub<br />
&nbsp;&nbsp;&nbsp; |-- dev<br />
&nbsp;&nbsp;&nbsp; |-- etc<br />
&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |-- rc.d<br />
&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp;
— init.d
    |   -- sysconfig<br />
&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
— network-scripts
    |– lib
    |   -- modules<br />
&nbsp;&nbsp;&nbsp; |-- lib64<br />
&nbsp;&nbsp;&nbsp; |-- proc<br />
&nbsp;&nbsp;&nbsp; |-- sbin<br />
&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;
— sys
    |– tmp
    |– usr
    |   -- local<br />
&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-- bin<br />
&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
— sbin
    -- var<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-- lock<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-- log<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
— run

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

文件的元数据包括:

File 文件名,
Size 文件大小,Blocks:数据块,IO Block:IO 块
Links 文件链接数,Uid 属主, Gid 属组
Acess 最近一次访问文件的时间
Modify 最近一次修改文件的时间
Change 最近一次改变文件的时间

可以使用 stat 命令来查看这些元数据信息。
语法格式是: stat [OPTION]… FILE…
    
可以使用 touch 命令来修改文件的时间戳信息。
语法格式
    touch [OPTION]… FILE…

常用选项
    -c:指定的文件路径不存在时不予创建
    -a:仅修改access times
    -m:仅修改modify times
    -t STAM:[[CC]YY]MMDDhhmm[.ss]

示例:

    [root@432895f7d850 ~]# stat anaconda-ks.cfg
      File: ‘anaconda-ks.cfg’
      Size: 3354            Blocks: 8          IO Block: 4096   regular file
    Device: fe01h/65025d    Inode: 23068819    Links: 1
    Access: (0600/-rw——-)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2017-02-24 11:33:29.008304390 +0000                  
    Modify: 2016-12-14 14:59:34.000000000 +0000                             
    Change: 2017-02-24 11:23:16.131313547 +0000
    Birth: –
    [root@432895f7d850 ~]# touch -a -t 201702272036 anaconda-ks.cfg # 居然也可以定义一个未来的时间!!
    [root@432895f7d850 ~]# stat anaconda-ks.cfg
      File: ‘anaconda-ks.cfg’
      Size: 3354            Blocks: 8          IO Block: 4096   regular file
    Device: fe01h/65025d    Inode: 23068819    Links: 1
    Access: (0600/-rw——-)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2017-02-27 20:36:00.000000000 +0000
    Modify: 2016-12-14 14:59:34.000000000 +0000
    Change: 2017-02-24 12:37:02.560563384 +0000
     Birth: –

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

  1. 可以使用 alias 来查看、定义一个命令的别名
    —–
    查看别名: alias
    定义别名:alias 别名=‘COMMAND’
    注意:仅对当前的shell有效
    撤销别名:unalias 别名

    示例:

        [root@432895f7d850 ~]# alias
        alias cp=’cp -i’
        alias egrep=’egrep –color=auto’
        alias fgrep=’fgrep –color=auto’
        alias grep=’grep –color=auto’
        alias l.=’ls -d .* –color=auto’
        alias ll=’ls -l –color=auto’
        alias ls=’ls –color=auto’
        alias mv=’mv -i’
        alias rm=’rm -i’
        [root@432895f7d850 ~]# alias clc=’clear’
        [root@432895f7d850 ~]# alias | grep clc
        alias clc=’clear’
        [root@432895f7d850 ~]# unalias clc

  2. 要引用另一个命令的结果,可以用 反引号 或者 $() 包裹命令

    示例:

        [root@432895f7d850 ~]# pwd
        /root
        [root@432895f7d850 ~]# ls -al $(pwd)
        total 24
        dr-xr-x—  2 root root  114 Feb 24 11:51 .
        drwxr-xr-x 17 root root  273 Feb 24 11:27 ..
        -rw-r–r–  1 root root   18 Dec 29  2013 .bash_logout
        -rw-r–r–  1 root root  176 Dec 29  2013 .bash_profile
        -rw-r–r–  1 root root  176 Dec 29  2013 .bashrc
        -rw——-  1 root root 3354 Dec 14 14:59 anaconda-ks.cfg

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

所用命令为: ls -dl /var/l*[[:digit:]]*[a-z] 或者 ls -dl /var/l*[0-9]]*[a-z]
演示:

    [root@432895f7d850 var]# touch l2a a3c l33a lll
    [root@432895f7d850 var]# mkdir l22b b33c aaa
    [root@432895f7d850 var]# ls -dl /var/l[[:digit:]][a-z]
    drwxr-xr-x 2 root root 6 Feb 24 13:05 l22b
    -rw-r–r– 1 root root 0 Feb 24 13:05 l2a
    -rw-r–r– 1 root root 0 Feb 24 13:05 l33a

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

所用命令为: ls -dl /etc/[0-9]*[^0-9] 或者 ls -dl /etc/[0-9]*[^[:digit:]]
演示:
    
    [root@432895f7d850 etc]# touch 3a a3 33
    [root@432895f7d850 etc]# mkdir 2a a2 22
    [root@432895f7d850 etc]# ls -dl [0-9]*[^0-9]
    drwxr-xr-x 2 root root 6 Feb 24 13:12 2a
    -rw-r–r– 1 root root 0 Feb 24 13:12 3a

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

所用命令为: ls -dl /etc/[^[:alpha:]][[:alpha:]]*
演示:
    
    [root@432895f7d850 ~]# touch 3a23
    [root@432895f7d850 ~]# mkdir 2a23
    [root@432895f7d850 ~]# ls -dl [^[:alpha:]][[:alpha:]]*
    drwxr-xr-x 2 root root 6 Feb 24 13:12 2a
    drwxr-xr-x 2 root root 6 Feb 24 13:20 2a23
    -rw-r–r– 1 root root 0 Feb 24 13:12 3a
    -rw-r–r– 1 root root 0 Feb 24 13:20 3a23

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

所用命令为: touch /tmp/tfile-$(date +%F-%H-%M-%S)
演示:
    
    [root@432895f7d850 ~]# touch /tmp/tfile-$(date +%F-%H-%M-%S)
    [root@432895f7d850 ~]# ls /tmp/tfile*                    
    /tmp/tfile-2017-02-24-13-27-33

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

所用命令为: cp -r /etc/p*[^0-9] /tmp/mytest1
演示:

    [root@432895f7d850 ~]# mkdir /tmp/mytest1
    [root@432895f7d850 ~]# touch /etc/{pp,p2}
    [root@432895f7d850 ~]# mkdir /etc/{pP,Pp}
    [root@432895f7d850 ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
    [root@432895f7d850 ~]# ls -al /tmp/mytest1/
    total 0
    drwxr-xr-x 3 root root  26 Feb 24 13:32 .
    drwxrwxrwt 8 root root 307 Feb 24 13:32 ..
    drwxr-xr-x 2 root root   6 Feb 24 13:32 pP
    -rw-r–r– 1 root root   0 Feb 24 13:32 pp

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

所用命令为: cp -r /etc/*.d /tmp/mytest2
演示:

    [root@432895f7d850 ~]# mkdir /tmp/mytest2
    [root@432895f7d850 ~]# touch /etc/{2,3}.d
    [root@432895f7d850 ~]# cp -r /etc/*.d /tmp/mytest2
    [root@432895f7d850 ~]# ls -al /tmp/mytest2
    total 4
    drwxr-xr-x 22 root root 4096 Feb 24 13:37 .
    drwxrwxrwt  9 root root  322 Feb 24 13:35 ..
    -rw-r–r–  1 root root    0 Feb 24 13:37 2.d
    -rw-r–r–  1 root root    0 Feb 24 13:37 3.d
    drwxr-xr-x  2 root root   28 Feb 24 13:37 bash_completion.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 binfmt.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 chkconfig.d
    drwxr-xr-x  2 root root   23 Feb 24 13:37 depmod.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 dracut.conf.d
    lrwxrwxrwx  1 root root   11 Feb 24 13:37 init.d -> rc.d/init.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 krb5.conf.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 ld.so.conf.d
    drwxr-xr-x  2 root root   17 Feb 24 13:37 logrotate.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 modprobe.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 modules-load.d
    drwxr-xr-x  2 root root  280 Feb 24 13:37 pam.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 popt.d
    drwxr-xr-x  2 root root   38 Feb 24 13:37 prelink.conf.d
    drwxr-xr-x  2 root root   84 Feb 24 13:37 profile.d
    drwxr-xr-x 10 root root  127 Feb 24 13:37 rc.d
    lrwxrwxrwx  1 root root   10 Feb 24 13:37 rc0.d -> rc.d/rc0.d
    lrwxrwxrwx  1 root root   10 Feb 24 13:37 rc1.d -> rc.d/rc1.d
    lrwxrwxrwx  1 root root   10 Feb 24 13:37 rc2.d -> rc.d/rc2.d
    lrwxrwxrwx  1 root root   10 Feb 24 13:37 rc3.d -> rc.d/rc3.d
    lrwxrwxrwx  1 root root   10 Feb 24 13:37 rc4.d -> rc.d/rc4.d
    lrwxrwxrwx  1 root root   10 Feb 24 13:37 rc5.d -> rc.d/rc5.d
    lrwxrwxrwx  1 root root   10 Feb 24 13:37 rc6.d -> rc.d/rc6.d
    drwxr-xr-x  2 root root   25 Feb 24 13:37 rsyslog.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 sysctl.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 tmpfiles.d
    drwxr-xr-x  2 root root    6 Feb 24 13:37 xinetd.d
    drwxr-xr-x  2 root root  187 Feb 24 13:37 yum.repos.d

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

所用命令为: cp /etc/{l,m,n}*.conf /tmp/mytest3
演示:

    [root@432895f7d850 ~]# touch /etc/m{2,3}.conf
    [root@432895f7d850 ~]# mkdir /tmp/mytest3
    [root@432895f7d850 ~]# cp /etc/{l,m,n}*.conf /tmp/mytest3
    [root@432895f7d850 ~]# ls -al /tmp/mytest3
    total 24
    drwxr-xr-x  2 root root  135 Feb 24 13:40 .
    drwxrwxrwt 10 root root 4096 Feb 24 13:40 ..
    -rw-r–r–  1 root root   28 Feb 24 13:40 ld.so.conf
    -rw-r—–  1 root root  191 Feb 24 13:40 libaudit.conf
    -rw-r–r–  1 root root 2391 Feb 24 13:40 libuser.conf
    -rw-r–r–  1 root root   19 Feb 24 13:40 locale.conf
    -rw-r–r–  1 root root    0 Feb 24 13:40 m2.conf
    -rw-r–r–  1 root root    0 Feb 24 13:40 m3.conf
    -rw-r–r–  1 root root 1742 Feb 24 13:40 nsswitch.conf

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

(0)
FSSlcFSSlc
上一篇 2017-02-24
下一篇 2017-02-24

相关推荐

  • N25第三周作业

    .列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登陆多次,则只显示一次即可。 此题主要考察命令who,cut,sort以及管道的基本用法:who:列出当前已登陆的用户名,登陆设备名,时间以及ip地址。 cut:    顾名思义就是截取之意, -d 指定要截取信息的分隔符,此处是以空格为分隔符,-f指定要截取的字段,此…

    Linux干货 2016-12-20
  • 磁盘管理(1)

    1、磁盘结构(机械硬盘) (1)磁盘构成: 磁臂(机械手臂):连接并固定磁头 马达(电机):可以转动盘片,让磁臂上的磁头可以在盘片上读写数据 扇区:最小的物理存储单位,每个扇区为512bytes 磁头:可以读写数据 盘片:主要记录数据 柱面:将扇区组成一个圆就是柱面,柱面是分区的最小单位 (2)磁盘接口 并口:IDE  SCSI&nbsp…

    Linux干货 2016-08-30
  • 源码包编译安装mariaDB

    前言     MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,并且之前是完全开源,所以大受欢迎。但由于后面MySQL卖给了SUN,随后SUN被Oracle收购,虽然也有开源免费版本,但是很多功能都需要另外购买商业版本,导致现在MySQL使用份额逐渐减少。所以M…

    Linux干货 2016-02-28
  • 萝卜运维记–第一周

    part1— ①描述计算机的组成及功能 ▲计算机是什么? 计算机(ENIAC):简述—-接收用户的指令,经过中央处理器处理过后,产生对使用者有用的信息。具有存储记忆,处理复杂数据运算的计算机器 Ⅰ 计算机组成及功能 ☆硬件部分: 1.中央处理器CPU(Central Processing Unit)↓↓↓↓:  &n…

    Linux干货 2016-12-06
  • 作业–权限管理

    1、当用户wangcai对/testdir目录无写权限时,该目录下的只读文件file1是否可修改和删除? [root@liang testdir]# su wangcai [wangcai@liang testdir]$ ll -a 总用量 8 drwxr-xr-x. &nbsp…

    Linux干货 2016-08-05
  • shell练习

    1 、编写脚本/root/bin/systeminfo.sh, 显示当前主机系统信息, 包括主机名,IPv4 地址,操作系统版本,内核版本,CPU 型 号,内存大小,硬盘大小。 运行后结果是: 2 、编写脚本/root/bin/backup.sh ,可实现每日将/etc/ 目录备 份到/root/etcYYYY-mm-dd中 运行结果是: 3 、编写脚本/r…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-06 19:48

    写的不错,请注意排版格式