N26_第二周作业

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

文件管理命令:cp,mv,rm

1、cp命令

功能说明:复制copy
语法格式:
        单源复制:  cp [OPTION]… [-T] SOURCE DEST
        多源复制:cp [OPTION]… SOURCE… DIRECTORY
                       cp [OPTION]… -t DIRECTORY SOURCE…
单源复制:如果DEST不存在,则事先创建此文件,并复制源文件的数据流到DEST中;
          如果DEST存在:
          如果DEST是非目录文件,则覆盖目标文件;
          如果DEST是目录文件,则现在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
常用参数:
-i:交互式复制,即覆盖之前提醒用户确认
-f:强制覆盖目录文件
-r,-R:递归复制目录
-d:复制符号链接文件本身,而非其指向的源文件
-a:-dR –preserve=all,archive,用于实现归档
–preserve=
mode:权限
    ownership:属主和属组
    timestamps:时间戳
    context:安全标签
    xattr:扩展属性
    links:符号链接
    all:上述所有属性

示例:

[root@joylin test]# cp /tmp/passwd ./
[root@joylin test]# ll passwd 
-rw-r--r--. 1 root root 2229 2月  16 16:05 passwd
[root@joylin test]# cp -p /tmp/passwd ./passwd2
[root@joylin test]# ll /tmp/passwd ./passwd*
-rw-r--r--. 1 root root 2229 2月  16 16:05 ./passwd
-rw-r--r--. 1 root root 2229 2月  16 15:59 ./passwd2
-rw-r--r--. 1 root root 2229 2月  16 15:59 /tmp/passwd
[root@joylin test]# cp /etc/passwd /test/
[root@joylin test]# ln -s ./passwd /tmp/passwd_slink
[root@joylin test]# ln  ./passwd /tmp/passwd_hlink
[root@joylin test]# cp /etc/passwd /tmp/
[root@joylin test]# ll /tmp/passwd*
-rw-r--r--. 1 root root 2229 2月  16 15:59 /tmp/passwd
-rw-r--r--. 2 root root 2229 2月  16 15:58 /tmp/passwd_hlink
lrwxrwxrwx. 1 root root    8 2月  16 15:58 /tmp/passwd_slink -> ./passwd
[root@joylin test]# cp /tmp/passwd_slink ./ -f
[root@joylin test]# ll passwd
-rw-r--r--. 2 root root 2229 2月  16 15:58 passwd
[root@joylin test]# cp -d /tmp/passwd_slink ./passwd_slink2
[root@joylin test]# ll passwd
-rw-r--r--. 2 root root 2229 2月  16 15:58 passwd
[root@joylin test]# ll passwd*
-rw-r--r--. 2 root root 2229 2月  16 15:58 passwd
-rw-r--r--. 1 root root 2229 2月  16 16:02 passwd_slink
lrwxrwxrwx. 1 root root    8 2月  16 16:02 passwd_slink2 -> ./passwd

2、mv命令

功能说明:移动或重命名文件 move (rename) files
语法格式:
       mv [OPTION]… [-T] SOURCE DEST
       mv [OPTION]… SOURCE… DIRECTORY
       mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
    -i:交互式
    -f:force

示例:

[root@joylin test]# mv ./passwd3 /tmp/ #移动文件
[root@joylin test]# touch passwd3
[root@joylin test]# mv ./passwd3 /tmp/
mv:是否覆盖"/tmp/passwd3"? C
[root@joylin test]# mv ./passwd3 /tmp/ -f
[root@joylin test]# ll -d /tmp/11b/   #移动目录
drwxr-xr-x. 2 root root 6 2月  12 16:16 /tmp/11b/
[root@joylin test]# mv /tmp/11b/ /test/
[root@joylin test]# ls -d /test/11b/
/test/11b/
[root@joylin test]# mv /tmp/passwd2 /tmp/passwd #重命名文件
[root@joylin test]# ll /tmp/passwd
-rw-r--r--. 1 root root 2229 2月  16 15:59 /tmp/passwd
[root@joylin test]# mv 11b/ 1111b  #重命名目录
[root@joylin test]# ll -d 1111b/
drwxr-xr-x. 2 root root 6 2月  12 16:16 1111b/

3、rm命令

功能说明:删除文件或目录remove files or directories
语法格式:rm [OPTION]… FILE…
常用参数:
常用选项:
-i:interactive 交互式
-f:force 强制删除
-r:recursive 递归删除
删除目录:rm -rf /PATH/TO/DIR
危险操作:rm -rf  /*
注意:所有不用的文件建议不要直接删除,而是移动至某个专用的目录(模拟回收站)

示例:

[root@joylin test]# touch rm.txt
[root@joylin test]# rm rm.txt 
rm:是否删除普通空文件 "rm.txt"?n
[root@joylin test]# touch rm.txt -f
[root@joylin test]# mkdir software
[root@joylin test]# rm ./software/
rm: 无法删除"./software/": 是一个目录
[root@joylin test]# rm -rf ./software/

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

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

[root@joylin ~]# useradd gentoo
[root@joylin ~]# echo $?
0
[root@joylin ~]# useradd gentoo
useradd:用户“gentoo”已存在
[root@joylin ~]# echo $?
9
[root@joylin ~]# lss
bash: lss: 未找到命令...
相似命令是: 'ls'
[root@joylin ~]# echo $?
127

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

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

演示:

[root@joylin ~]# touch /tmp/{a_c,a_d,b_c,b_d}
[root@joylin ~]# ls -l /tmp/a_*
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/a_c
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/a_d
[root@joylin ~]# ls -l /tmp/b_*
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/b_c
-rw-r--r--. 1 root root 0 2月  21 13:53 /tmp/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

演示:

[root@joylin ~]# mkdir -p /tmp/mylinux/{bin,boot,dev,etc,lib,lib64,proc,sbin,sys,tmp,usr,var}
[root@joylin ~]# ls /tmp/mylinux/
bin  boot  dev  etc  lib  lib64  proc  sbin  sys  tmp  usr  var
[root@joylin ~]# mkdir -p /tmp/mylinux/boot/grub
[root@joylin ~]# mkdir -p /tmp/mylinux/etc/rc.d/init.d
[root@joylin ~]# mkdir -p /tmp/mylinux/etc/sysconfig/network-scripts
[root@joylin ~]# mkdir -p /tmp/mylinux/lib/modules
[root@joylin ~]# mkdir -p /tmp/mylinux/usr/local/{bin,sbin}
[root@joylin ~]# mkdir -p /tmp/mylinux/var/{lock,log,run}
[root@joylin ~]# tree -L 2 /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   └── sysconfig
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
└── var
    ├── lock
    ├── log
    └── run

20 directories, 0 files

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

1、元数据信息包含:

File:文件名
Size:表示文件数据流大小
Blocks:数据块
IO Block:IO块
硬链接数:
Access:用户对文件访问的权限
Uid:属主
Gid:属组
Access time:访问文件时间
Modify time:更改时间
Change time:改动时间

2、查看文件的元数据:stat命令

功能说明:stat – display file or file system status
语法格式:stat [OPTION]… FILE…
文件:包括元数据(metadata)和数据(data)
时间戳:
Access: 2017-02-06 19:12:02.501490477 +0800
Modify: 2017-02-08 19:51:36.672097524 +0800
Change: 2017-02-08 19:51:36.672097524 +0800
示例:

[root@joylin ~]# stat /test/
1         1a        22        a2        aaa       b         ff
11        1_a       333       a333      aaaa      bb        passwd
1111b/    1ab       a         aa        a b       BB        rm.txt
122       1b        A         aA        a,b       cc        software/
133       1c        a1        AA        aBBB      data      
[root@joylin ~]# stat /test/passwd 
  文件:"/test/passwd"
  大小:2234       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:100837381   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2017-02-16 19:29:24.104960293 +0800
最近更改:2017-02-16 19:29:24.104960293 +0800
最近改动:2017-02-16 19:29:24.110960628 +0800
创建时间:-

3、修改文件时间戳:touch命令

功能说明:touch – change file timestamps
语法格式:touch [OPTION]… FILE…
-c:指定的文件路径不存在时不予创建
-a:仅修改access times
-m:仅修改modify times
-t STAM:[[CC]YY]MMDDhhmm[.ss]
示例:

[root@joylin ~]# touch -a -t 201701161900 /test/passwd 
[root@joylin ~]# stat /test/passwd 
  文件:"/test/passwd"
  大小:2234       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:100837381   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2017-01-16 19:00:00.000000000 +0800
最近更改:2017-02-16 19:29:24.104960293 +0800
最近改动:2017-02-21 14:26:53.314521653 +0800
创建时间:-
[root@joylin ~]# touch -m -t 201701161930 /test/passwd 
[root@joylin ~]# stat /test/passwd 
  文件:"/test/passwd"
  大小:2234       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:100837381   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2017-01-16 19:00:00.000000000 +0800
最近更改:2017-01-16 19:30:00.000000000 +0800
最近改动:2017-02-21 14:28:03.580089027 +0800
创建时间:-

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

1、查看别名:alias

定义别名:alias 别名=‘COMMAND’
注意:仅对当前的shell有效
撤销别名:unalias 别名

示例:

[root@joylin ~]# 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'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@joylin ~]# alias cl='clear'
[root@joylin ~]# echo "alias cl='clear'" >>/etc/bashrc 
[root@joylin ~]# source /etc/bashrc 
[root@joylin ~]# alias |grep cl
alias cl='clear'
[root@joylin ~]# tail -1 /etc/bashrc 
alias cl='clear'
[root@joylin ~]# unalias cl

2、引用命令的执行结果:

       $(COMMAND)`COMMAND`

示例:

[root@joylin ~]# which find
/usr/bin/find
[root@joylin ~]# ls -l `which find`
-rwxr-xr-x. 1 root root 199200 11月 20 2015 /usr/bin/find
[root@joylin ~]# ls -l $(which find)
-rwxr-xr-x. 1 root root 199200 11月 20 2015 /usr/bin/find

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

演示:

[root@joylin test]# touch /var/1_a
[root@joylin test]# ls -d /var/1?[a-z]
/var/1_a
[root@joylin test]# mkdir /var/11b
[root@joylin test]# ls -d /var/1?[a-z]
/var/11b  /var/1_a
[root@joylin test]# ls -d /var/1?[[:lower:]]
/var/11b  /var/1_a
[root@joylin test]# ls /var/1?[[:lower:]]
/var/1_a

/var/11b:

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

演示:

[root@joylin test]# touch /etc/1ab
[root@joylin test]# ls -d /etc/[0-9]*[^0-9]
/etc/1ab 或者
[root@joylin test]# ls -d /etc/[[:digit:]]*[^[:digit:]]
/etc/1ab

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

演示:

[root@joylin test]# ls -d /etc/[^a-zA-Z]*
/etc/1ab

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

演示:

[root@joylin ~]# touch /tmp/tfile-$(date +%F-%H-%M-%S)
[root@joylin ~]# ls /tmp/tfile-2017-02-21-14-46-34 
/tmp/tfile-2017-02-21-14-46-34

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

演示:

[root@joylin ~]# mkdir /tmp/mytest1
[root@joylin ~]# ls -d /etc/p*[^0-9]
/etc/pam.d         /etc/pki           /etc/postfix         /etc/profile.d
/etc/passwd        /etc/plymouth      /etc/ppp             /etc/protocols
/etc/passwd-       /etc/pm            /etc/prelink.conf.d  /etc/pulse
/etc/pbm2ppa.conf  /etc/pnm2ppa.conf  /etc/printcap        /etc/purple
/etc/pinforc       /etc/popt.d        /etc/profile         /etc/python
[root@joylin ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/
[root@joylin ~]# ls -d /tmp/mytest1/
/tmp/mytest1/
[root@joylin ~]# ls /tmp/mytest1/
pam.d         pinforc   pnm2ppa.conf  prelink.conf.d  protocols
passwd        pki       popt.d        printcap        pulse
passwd-       plymouth  postfix       profile         purple
pbm2ppa.conf  pm        ppp           profile.d       python

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

演示:

[root@joylin ~]# mkdir /tmp/mytest2
[root@joylin ~]# ls -d /etc/*.d
/etc/auto.master.d      /etc/ld.so.conf.d    /etc/rc4.d
/etc/bash_completion.d  /etc/libibverbs.d    /etc/rc5.d
/etc/binfmt.d           /etc/logrotate.d     /etc/rc6.d
/etc/cgconfig.d         /etc/modprobe.d      /etc/rc.d
/etc/chkconfig.d        /etc/modules-load.d  /etc/request-key.d
/etc/cron.d             /etc/my.cnf.d        /etc/rsyslog.d
/etc/depmod.d           /etc/oddjobd.conf.d  /etc/rwtab.d
/etc/dnsmasq.d          /etc/pam.d           /etc/sane.d
/etc/dracut.conf.d      /etc/popt.d          /etc/setuptool.d
/etc/exports.d          /etc/prelink.conf.d  /etc/statetab.d
/etc/gdbinit.d          /etc/profile.d       /etc/sudoers.d
/etc/grub.d             /etc/rc0.d           /etc/sysctl.d
/etc/init.d             /etc/rc1.d           /etc/tmpfiles.d
/etc/ipsec.d            /etc/rc2.d           /etc/xinetd.d
/etc/krb5.conf.d        /etc/rc3.d           /etc/yum.repos.d
[root@joylin ~]# ls -d /etc/*.d|wc -l
45
[root@joylin ~]# cp -r /etc/*.d /tmp/mytest2
[root@joylin ~]# ls -d /tmp/mytest2/*|wc -l
45

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

演示:

[root@joylin ~]# ls /etc/[lmn]*.conf
/etc/ld.so.conf     /etc/logrotate.conf  /etc/nfsmount.conf
/etc/libaudit.conf  /etc/man_db.conf     /etc/nsswitch.conf
/etc/libuser.conf   /etc/mke2fs.conf     /etc/ntp.conf
/etc/locale.conf    /etc/mtools.conf     /etc/numad.conf
[root@joylin ~]# ls /etc/[lmn]*.conf|wc -l
12
[root@joylin ~]# mkdir /tmp/mytest3
[root@joylin ~]# cp /etc/[lmn]*.conf /tmp/mytest3/
[root@joylin ~]# ls /tmp/mytest3/* |wc -l
12

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

(0)
jaylinjaylin
上一篇 2017-02-21
下一篇 2017-02-21

相关推荐

  • AOP面向方面编程

    1.引言         软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块。于是出现了以系统模块化特性的面向对象程序设计技术。模块化的面向对象编程极度极地提高了软件系统的可读性、复用性和可扩展性。向对象方法的焦点在于选择对象作为模块的主要单元,并将对象与系统的…

    Linux干货 2015-04-07
  • linux发展历程简述

     linux发展历程简述 概述       本文写的linux 的发展历史,阅读本文你可以知道:           1.   linux的发音           2. &nbs…

    Linux干货 2016-10-14
  • tar、rpm和yum总结

    tar、rpm和yum总结 tar工具 tar是Tape ARchive的缩写,原意是磁带归档,进行数据备份。在linux中,用tar命令,可以把一大堆的文件和目录全部打包成一个文件,方便网络传输和备份数据。 tar不仅可以打包多个文件和目录,还可以对打包完的数据包进行压缩,进一步提升传输和备份质量。 选项 -c:设置新的备份文件-t:列出备份文件的内容 -…

    Linux干货 2017-08-04
  • 学习伊始宣言

    学习后的状态 以人事相宜为追求,优化职业资质 以胜任愉快为目标,保持职业体能 以创造绩效为主导,开发职业意识 以适应市场为基点,修养职业道德 学习宣言 如果不踏出第一步就永远也不可能到达目的地,让我们从此刻出发

    Linux干货 2016-11-28
  • shell-变量

    bash中变量的种类 根据变量的生效范围等标准:     本地变量:生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效     环境变量:生效范围为当前shell进程及其子进程    …

    Linux干货 2016-08-21
  • yum使用及编译安装

    前端程序包管理器     CentOS:yum,dnf     YUM:Yellowdog update Modifier     URL:ftp:// . . .     文件服务器:  …

    Linux干货 2016-08-24

评论列表(1条)

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

    如果对于某一个命令参数无法描述的清楚,请大胆的用man