N-22-南京-修 第二周作业

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


cp命令:用于复制件或目录文

[root@localhost etc]# cp -i /etc/passwd /tmp/123
[root@localhost etc]# cd /tmp
[root@localhost tmp]# ls
123           //cp/etc目录下得passwd至/tmp目录下并更名为123。此为单源复制,源文件可以为文件也可以是目录但必须是一个
[root@localhost tmp]# cp -r /etc /tmp/
[root@localhost tmp]# ls /tmp
123  etc  
[root@localhost tmp]#  //-r复制目录。此为多源复制,目标文件必须是目录 
注意:文件属主得不同会带来文件权限上得变化 如要备份-r选项改为-a
[root@localhost etc]# cp -d ./favicon.png /tmp

常用选项:

-i:交互式复制,即覆盖之前提醒用户确认;

-f:强制覆盖目标文件;

-r, -R:递归复制目录;

-d:复制符号链接文件本身,而非其指向的源文件;

-a:-dR –preserve=all, archive,用于实现归档;



mv命令:移动文件、目录 或更名

[root@localhost tmp]# ls
123  etc  favicon.png  lianxi1.sh
[root@localhost tmp]# mv 123 234
[root@localhost tmp]# ls
234  etc  favicon.png  lianxi1.sh  
[root@localhost tmp]#              //重命名 注意:重命名目录名也可不加选项
[root@localhost tmp]# mv 234 ./magedu.com
[root@localhost tmp]# ls /tmp/magedu.com
234  machine-id  mtab    
[root@localhost tmp]#              //移动

常用选项:

-i:交互式;

-f:当目标文件存在,强行覆盖




rm命令:删除

[root@localhost magedu.com]# ls
234  machine-id  mtab
[root@localhost magedu.com]# rm 234  //直接跟目标文件名即可
rm: remove regular file ‘234’? y   //root用户使用rm时,其别名默认为rm -i 即交互式。
[root@localhost magedu.com]# ls
machine-id  mtab
[root@localhost magedu.com]#
[root@localhost tmp]# rm -r ./etc              //删除目录
rm: descend into directory ‘./etc’? y        //管理员的rm别名默认为rm -i,同上
rm: remove regular file ‘./etc/fstab’? y
[root@localhost tmp]# rm -rf ./etc      //-f 强行删除,切记危险操作

常用选项:

-i:交互式

-f:强制

-r: 递归删除

注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)


bash命令执行的状态结果:

bash通过状态返回值来输出此结果

成功:0

失败:1-255

命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;

[xujie@localhost ~]$ ls
[xujie@localhost ~]$ echo $?
0
[xujie@localhost ~]$
[xujie@localhost ~]$ lls
-bash: lls: command not found
[xujie@localhost ~]$ echo $?
127
[xujie@localhost ~]$

命令行展开:

~:自动展开为用户的家目录,或指定的用户的家目录;

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

例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b


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

  (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

[root@localhost tmp]# mkdir -pv {a,d}_{b,c}
mkdir: created directory ‘a_b’
mkdir: created directory ‘a_c’
mkdir: created directory ‘d_b’
mkdir: created directory ‘d_c’
[root@localhost tmp]#
[root@localhost tmp]# mkdir -pv /tmp/mylinux/{bin,boot,boot/grub,dev,etc,etc/{rc.d/init.d
,sysconfig/network-scrip}lib,lib/modules,lib64,proc,sbin,sys,tmp,usr,usr/loca/{bin,sbin},
var/{lock,log,run}}
[root@localhost tmp]# tree mylinux
mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.dlib
│   └── sysconfig
│       └── network-scriplib
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── loca
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

24 directories, 0 files

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

[root@localhost tmp]# ls
mylinux    
[root@localhost tmp]# stat mylinux    //使用stat命令查看文件的元数据
File: ‘mylinux’      //文件名         
Size: 4096   Blocks: 8     IO Block: 4096   directory    //文件大小,占据多少个块,IO块,文件的类型
                     注: Blocks:8  IO Block:4096  占据8个块,每一个块的大小4096字节
Device: fd00h/64768d    Inode: 458214      Links: 14    //所在的设备号,索引节点号,硬链接
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)  //权限,UID,组ID
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-08-20 23:00:34.989551567 -0400                //最近访问,读取数据流
Modify: 2016-08-20 22:59:39.296555079 -0400     //这三个时间代表时间戳//最近更改,元数据改变
Change: 2016-08-20 22:59:39.296555079 -0400                //最近改动,数据改变
 Birth: -
[root@localhost tmp]#

修改时间戳:touch命令 touch命令通常只改变Access Time和Modify Time

[root@localhost tmp]# stat ./mylinux/
  File: ‘./mylinux/’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 458214      Links: 14
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-08-20 23:00:34.989551567 -0400
Modify: 2016-08-20 22:59:39.296555079 -0400
Change: 2016-08-20 22:59:39.296555079 -0400
 Birth: -
[root@localhost tmp]# touch ./mylinux/
[root@localhost tmp]# stat ./mylinux/
  File: ‘./mylinux/’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 458214      Links: 14
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-08-21 00:38:12.418182188 -0400
Modify: 2016-08-21 00:38:12.418182188 -0400
Change: 2016-08-21 00:38:12.418182188 -0400
 Birth: -
[root@localhost tmp]#

-c: 指定的文件路径不存在时不予创建;

-a: 仅修改access time;

-m:仅修改modify time;

-t STAMP 格式[[CC]YY]MMDDhhmm[.ss]年月日时分.秒

[root@localhost tmp]# touch -m -t 201609240815.45 ./mylinux/
[root@localhost tmp]# stat ./mylinux/
  File: ‘./mylinux/’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 458214      Links: 14
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-08-21 00:38:12.418182188 -0400
Modify: 2016-09-24 08:15:45.000000000 -0400
Change: 2016-08-21 00:45:19.599155249 -0400
 Birth: -
[root@localhost tmp]#


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

定义别名 alias命令:

[xujie@localhost ~]$ alias rm='rm -i'
[xujie@localhost ~]$ alias
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 rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[xujie@localhost ~]$

引用命令的执行结果:

num1=$(id 1 | grep -o "uid=[0-9]\+" | cut -d = -f 2)
[xujie@localhost ~]$ de='rm -i'
[xujie@localhost ~]$ echo $de
rm -i
[xujie@localhost ~]$

引用命令的执行结果: $(COMMAND)或`COMMAND`


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

[root@localhost tmp]# ls -d /var/l*[[:digit:]]*[[:lower:]]


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

[root@localhost tmp]# ls -d /etc/[0-9]*[^0-9]
/etc/0a0544d


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

[root@localhost tmp]# ls -d /etc/[^a-z][a-z]*


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

[root@localhost tmp]# touch tfile-`date +%Y-%m-%d-%H-%M-%S`


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

[root@localhost /]# cp -r `ls -d /etc/[p]*[^0-9]` /tmp/mytest1


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

[root@localhost /]# cp -r `ls -d /etc/*[.d]` /tmp/mytest2



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

[root@localhost /]# cp -r `ls -d /etc/[l,m,n]*[.conf]` /tmp/mytest3

原创文章,作者:N22-南京-修,如若转载,请注明出处:http://www.178linux.com/38039

(0)
N22-南京-修N22-南京-修
上一篇 2016-08-22 09:30
下一篇 2016-08-22 09:30

相关推荐

  • 8-5作业

    4、取本机ip地址 ifconfig | grep -o "1[0-9]\+\.[0-9]\+\.[0-9]\+\.[1-2][0-5][0-4]" 5、取各分区利用率的数值 df | grep "/dev/sda"|tr -s ' ' |cut -d" " -f5 |tr -d…

    Linux干货 2016-08-10
  • linux用户与组管理

    一、linux用户与组管理的基本介绍 1、任何一个用户想要使用Linux系统都要向管理员申请一个账号,对这些账号的管理即是对用户的管理,所谓组,就是多个账号的集合。用户和组管理可以提高用户的管理效率、工作效率以及系统的安全性,比如将同一个部门的成员放在一个组里并设置权限,这样可有效的对资源共享,同时可以避免其他部门的人恶意破坏。 2、用户和组的管理内容一般有…

    Linux干货 2016-08-02
  • Linux Yum源的安装配置​‍

    Linux Yum源的安装配置     一、基本概念   Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包…

    Linux干货 2015-05-11
  • Linux文本处理三剑客之awk详解

    前言 awk是一款强大的报告生成器,不同于sed和grep,它的侧重点是如何把文本信息更好的展示出来,常用与统计和格式化输出。awk相当于微型的shell,有着自己一套语法结构,例如:循环结构,数组,条件判断,函数,内置变量等功能。处理对象一般纯文本文件或纯文本信息。 用法详解 基本语法 awk [options] 'progra…

    Linux干货 2015-04-29
  • LINUX 下正确关机方法

    Linux下正确关机方法 Table of Contents 1关机前 1.1观察系统使用 1.2通知在线使用者关机 2关机 2.1 sy 2.2 shutdo 2.3 rebo 2.4 ha 2.5 powero 3执行 3.1等级 3.2等级 1关机前准备 1.1观察系统使用状态 谁在线:who 联网状态:netstat -a 后台执行的程序:ps -a…

    Linux干货 2017-08-21
  • 文本查看及处理工具

    文本查看及处理工具 wc wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数 语法 wc(选项)(参数) 选项 -c或–bytes或——chars:只显示Bytes数; -l或——lines:只显示列数; -w或——words:只显示字数。 参数 文件:需要统计的文件列表 实例 [root@localhost tmp]# cat …

    Linux干货 2018-03-18

评论列表(2条)

  • N22-南京-修
    N22-南京-修 2016-08-22 10:56

    [root@localhost /]# cp -r `ls -d /etc/p*[^0-9]` /tmp/mytest1
    [root@localhost /]# cp -r `ls -d /etc/*.d` /tmp/mytest2
    [root@localhost /]# cp -r `ls -d /etc/[l,m,n]*.conf` /tmp/mytest3
    以上最后三题的更正

  • 马哥教育
    马哥教育 2016-08-22 13:58

    写的很好,排版也很棒,加油,创建目录的题目跟题目的要求不一样啊