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
下一篇 2016-08-22

相关推荐

  • 文本处理工具-习题

    1 、找出ifconfig 命令结果中本机的所有IPv4地址 [root@centos7 ~]# ifconfig |head -2 |tail-1 |cut -dn -f2 |cut -d" " -f2 2 、查出分区空间使用率的最大百分比值 [root@centos7 ~]# df |cut -c44-46 |sort -n|tail…

    Linux干货 2016-08-15
  • RAID5的组建

        RAID5在实际场景中应用最多,RAID5最少使用3块硬盘,3块硬盘中允许1块硬盘损坏,RAID5它的最大特点是可以有一块硬盘做冗余,其使用率是 N-1存储空间(N表示硬盘数量)     首先创建分区,然后转换分区类型,最后保存退出。 注解:虚拟机总共有6块硬盘,我是从第3块硬盘开始做rai…

    Linux干货 2016-02-14
  • 马哥教育网络班22期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登陆多次,则只显示一次即可。     who | cut -d' ' -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。     who | sort -t' ' -k4 | …

    Linux干货 2016-08-29
  • 特殊权限之SUID、SGID、STICKY

    特殊权限        在系统中,难免有一些比较特殊的用户或文件目录,但是普通的权限有不能解决我们的需求,于是就有特殊权限帮我们解决这个问题 特殊权限有三个:SUID、SGID、STICKY      首先,先说说安全上下文: 进程以某用户的身份运行,那么进程将会以此用户身份去完成所有操作…

    Linux干货 2016-08-05
  • 推荐-LVS原理详解

    LVS原理详解 LVS原理详解 LVS简介 LVS结构与工作原理 一.LVS的结构 二.LVS内核模型 三.LVS的包转发模型 1.NAT模型: 2.DR模型: 3.TUN模型: 四.LVS的调度算法 LVS的调度算法分为静态与动态两类。 1.静态算法(4种):只根据算法进行调度 而不考虑后端服务器的实际连接情况和负载情况 2.动态算法(6种):前端的调度器…

    Linux干货 2016-03-27
  • 8月3号 用户权限作业

     1,当用户xiaoming 对/testdir  目录无执行权限时,意味着无法做哪些操作?   先创建目录/testdir,接着修改目录的/testdir的权限,用xiaoming的身份去进入/testdir目录 [root@localhost ~]# mkdir /testdir [root@l…

    Linux干货 2016-08-08

评论列表(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

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