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)
上一篇 2017-02-21 10:35
下一篇 2017-02-21 15:55

相关推荐

  • N26-第二周博客作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 一) 目录管理命令 1. cd :用于切换目录。命令格式为:cd dirname 命令使用技巧: ~]# cd 进入用户主目录 ~]# cd – 进入上一次所在目录 ~]# cd / 进入根目录 ~]# cd ~ 进入用户主目录 ~]# cd .. 返回上一级…

    2017-03-01
  • N25-第十一周

    1、详细描述一次加密通讯的过程,结合图示最佳。 发送者: 1.使用单项加密算法提取生成数据的特征码 2.使用自己的私钥加密特征码附加在数据后面 3.生成用于对称加密的临时密钥 4.用此临时密钥加密数据和已经使用私钥加密后的特征码 5.使用接收方的公钥加密此临时密钥,附加在对称后的数据后方 接收方: 1.使用自己的私钥解密的临时秘钥;从而获得对方的对称密钥 2…

    2017-06-05
  • httpd功能配置之访问控制

       httpd服务可以实现对资源访问控制,可以根据IP地址和用户两种方式进行控制。    一、用户认证控制      1、在站点根目录下创建一个目录及一个页面文件      2、修改/var/httpd/conf/httpd.conf文件   &n…

    Linux干货 2016-03-11
  • NET25-第11周作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 第一步:他们需要实现协商好对称加密算法,单向加密算法,公钥加密算法,交换公钥等。 第二步:B用户想要将数据传给A,首先需要使用单向加密算法取出数据的特征码,并用自己的私钥对这段特征码进行加密(数字签名),B用户生成临时对称密钥,并用对称密钥加密整段数据,B用户使用 A用户的公钥加密一次性对称密钥,附加在整段数据…

    Linux干货 2017-05-15
  • linux分区管理工具—fdisk

    一、关于为什么要分区       (1)为了数据的安全:当文件系统只有一个分区时,如果遇到分区需要格式化的情况,则硬盘里的数据无法保留,而如果提前对硬盘做了分区那么就可以很好地额解决这个问题;       (2)为了提升效率:硬盘(这里单指机械硬盘)分为外圈和…

    Linux干货 2016-03-12
  • grep、find练习

    1.显示当前系统上root,fedora或user1用户的默认shell [root@study ~]# cat /etc/passwd|grep -E "^(root|fedora|user1)"|cut -d: -f7 /bin/bash /bin/bash /bi…

    Linux干货 2016-11-27

评论列表(1条)

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

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