Linux系统操作离不开命令,基础命令更显得尤为重要,下面几个让我们来一一尝试

ls:列出当前目录的内容或指定目录

  用法:ls [options] [files_or_dirs]

     ls -a包含隐藏文件

     ls -l显示额外的信息
     ls -R目录递归通过
     ls -ld目录和符号链接信息
     ls -1 文件分行显示
     ls –S 按从大到小排序
     ls –u 配合-t选项,显示并按atime从新到旧排序
     ls –U 不排序按目录存放顺序显示

ls -a 列出目录下的所有文件或目录包括隐藏文件

[root@localhost /]# ls -a.             bin   etc   lib64  opt   run   sys      tmp..            boot  home  media  proc  sbin  test     usr.autorelabel  dev   lib   mnt    root  srv   testdir  var

ls -R

[root@localhost /]# ls -R /home/home:mageedu  shui  xiaoshui/home/mageedu:/home/shui:/home/xiaoshui:text/home/xiaoshui/text:

ls -1

[root@localhost /]# ls -1 /home/mageedushuixiaoshui

ls -S 按照所占内存从大到小进行排序

[root@localhost /]# ls -Sl /roottotal 16-rw-------  1 root     root     5237 Jul 28 12:23 history.1-rw-------. 1 root     root     2633 Jul 25 20:42 anaconda-ks.cfg-rw-------  1 root     root      119 Jul 26 14:28 history_logdrwxr-xr-x  2 root     root        6 Jul 27 15:11 testdrwxrwxr-x  2 xiaoshui xiaoshui    6 Jul 27 15:15 text-rw-r--r--  1 root     root        0 Jul 26 17:32 1-rw-r--r--  1 root     root        0 Jul 26 17:32 100-rw-r--r--  1 root     root        0 Jul 26 17:32 12

ls -tu 按照atime(访问时间进行排序)

[root@localhost /]# ls -ltu /roottotal 16drwxr-xr-x  2 root     root        6 Jul 28 20:03 testdrwxrwxr-x  2 xiaoshui xiaoshui    6 Jul 28 20:03 text-rw-------  1 root     root     5237 Jul 28 12:23 history.1-rw-r--r--  1 root     root        0 Jul 27 09:13 1-rw-r--r--  1 root     root        0 Jul 26 17:32 12-rw-r--r--  1 root     root        0 Jul 26 17:32 100-rw-------  1 root     root      119 Jul 26 14:28 history_log-rw-------. 1 root     root     2633 Jul 25 20:42 anaconda-ks.cfg

cp命令,copy即复制的意思,强大且常用的一条命令,总结一下,可以长来看看

cp [OPTION]... [-T] SOURCE DESTcp [OPTION]... SOURCE... DIRECTORYcp [OPTION]... -t DIRECTORY SOURCE...

SOURCE是文件:

   如果目标不存在:新建DEST,并将SOURCE中内容填充至DEST中

[root@localhost ~]# ls1  100  12  anaconda-ks.cfg  history.1  history_log  test  text[root@localhost ~]# cp /etc/issue /root/xiaoshui[root@localhost ~]# ls1  100  12  anaconda-ks.cfg  history.1  history_log  test  text  xiaoshui

DEST中

   如果目标存在:
   如果DEST是文件:将SOURCE中的内容覆盖至DEST中:

[root@localhost ~]# cat /root/xiaoshui hello,world[root@localhost ~]# cp /etc/issue /root/xiaoshui cp: overwrite ‘/root/xiaoshui’? y[root@localhost ~]# cat /root/xiaoshui \SKernel \r on an \mMage Education Learning Serviceshttp://www.magedu.comtty is \lhostname is \ncurrent time is \t

    如果DEST是目录:在DEST下新建与原文件同名的文件,并将SOURCE中内容填充至新文件中:

[root@localhost ~]# ls -l /root/test/total 0[root@localhost ~]# cp /etc/issue /root/test/[root@localhost ~]# ls -l /root/test/total 4-rw-r--r-- 1 root root 123 Jul 28 20:32 issue

cp SOURCE... DEST

   SOURCE...:多个文件
            DEST必须存在,且为目录,其它情形均会出错;

[root@localhost ~]# ls /root/text/f1  f2  f3  f4  f5[root@localhost ~]# cp /root/text/* /root/text1cp: target ‘/root/text1’ is not a directory[root@localhost ~]# cp /root/text/* /root/test/issue cp: target ‘/root/test/issue’ is not a directory[root@localhost ~]# mkdir text1[root@localhost ~]# cp /root/text/* /root/text1[root@localhost ~]# ls text1/f1  f2  f3  f4  f5

 如上所示,当SOURCE为多个文件时候,DEST不存在时或者为一个文件时都会报错,创建一个新的text1新的目录,cp成功

cp SOURCE DEST
  SOURCE是目录:此时使用选项:-r
     如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;

[root@localhost ~]# ls1  100  12  anaconda-ks.cfg  history.1  history_log  test  text  text1  xiaoshui[root@localhost ~]# ls testf1  f2  f3  f4  f5  issue[root@localhost ~]# cp /root/test/ /root/newtestcp: omitting directory ‘/root/test/’[root@localhost ~]# cp -r /root/test/ /root/newtest[root@localhost ~]# ls1  100  12  anaconda-ks.cfg  history.1  history_log  newtest  test  text  text1  xiaoshui[root@localhost ~]# ls /root/newtest/f1  f2  f3  f4  f5  issue

    如果DEST存在:

       如果DEST是文件:报错

[root@localhost ~]# ls1  100  12  anaconda-ks.cfg  history.1  history_log  newtest  test  text  text1  xiaoshui[root@localhost ~]# cp -r /root/test/ history.1cp: cannot overwrite non-directory ‘history.1’ with directory ‘/root/test/’

       如果DEST是目录:复制成功

[root@localhost ~]# cp -r /root/test/  /tmp[root@localhost ~]# ls /tmpbackup2016-07-28  fstab     ks-script-q9VyUw  nihao      systemd-private-0c68803c30a44dc89ab2a6d7cabf159a-cups.service-Jvhybl  test  yum.logerror.txt         issue.sh  ks-script-SYqw2e  right.txt  systemd-private-ac493ffd025a47b69ca2ea90b081675f-cups.service-uthsZ2  ts

-i:交互式

-r, -R: 递归复制目录及内部的所有内容;
-a: 归档,相当于-dR--preserv=all
-d:--no-dereference --preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
        mode: 权限
        ownership: 属主属组
        timestamp:
        links
        xattr
        context
        all
-p: 等同--preserv=mode,ownership,timestamp
-v: --verbose

在root用户下系统已经定义别名cp=cp -i,可以使用\cp使用命令。在普通用户下cp即cp

[root@localhost test]# aliasalias cp='cp -i'
[root@localhost test]# cp ../1 /root/test/cp: overwrite ‘/root/test/1’? y[root@localhost test]#
[xiaoshui@localhost ~]$ cp f1 ./text/f1[xiaoshui@localhost ~]$ cp f1 ./text/f1[xiaoshui@localhost ~]$ cp  -i f1 ./text/f1cp: overwrite ‘./text/f1’? y[xiaoshui@localhost ~]$

-f  普通用户家目录中出现root的文件时,cp如果不加-f,是无法覆盖目标文件issue的,会报错。如果加上-f ,没有问题,不过这不是覆盖,而是将目标文件删除,在重新创建一个名称相同的文件,如下所示。

[xiaoshui@localhost ~]$ ls -ltotal 4-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:10 f1-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:11 f2-rw-r--r-- 1 root     root     123 Jul 29 09:56 issuedrwxrwxr-x 2 xiaoshui xiaoshui  24 Jul 28 21:14 textdrwxrwxr-x 2 xiaoshui xiaoshui  15 Jul 28 21:12 text2[xiaoshui@localhost ~]$ cp /etc/fstab /home/xiaoshui/issue cp: cannot create regular file ‘/home/xiaoshui/issue’: Permission denied[xiaoshui@localhost ~]$ cp -f /etc/fstab /home/xiaoshui/issue [xiaoshui@localhost ~]$ lsf1  f2  issue  text  text2[xiaoshui@localhost ~]$ ls -ltotal 4-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:10 f1-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:11 f2-rw-r--r-- 1 xiaoshui xiaoshui 595 Jul 29 09:57 issuedrwxrwxr-x 2 xiaoshui xiaoshui  24 Jul 28 21:14 textdrwxrwxr-x 2 xiaoshui xiaoshui  15 Jul 28 21:12 text2

-r, -R: 递归复制目录及内部的所有内容,当复制的内容存在目录时,此时需要加上-r,R选项

[xiaoshui@localhost ~]$ cp /home/xiaoshui/ /tmp/cp: omitting directory ‘/home/xiaoshui/’[xiaoshui@localhost ~]$ cp -R /home/xiaoshui/ /tmp[xiaoshui@localhost ~]$ ls /tmp/backup2016-07-28  f2     issue.sh          right.txt                                                             testclear             fstab  ks-script-q9VyUw  systemd-private-0c68803c30a44dc89ab2a6d7cabf159a-cups.service-Jvhybl  tserror.txt         home   ks-script-SYqw2e  systemd-private-ac493ffd025a47b69ca2ea90b081675f-cups.service-uthsZ2  xiaoshuif1                issue  nihao             systemd-private-ef1ab9dc007d41718d97c88fdff754b8-cups.service-McXBL9  yum.log

-d:--no-dereference --preserv=links 不复制原文件,只复制链接名,如果不加-d,则复制的内容是软链接指向的原文件,文件名称为软链接的名字,如下所示:

  不加-d前

[root@localhost ~]# ls -l  /etc/redhat-release lrwxrwxrwx. 1 root root 14 Jul 25 20:07 /etc/redhat-release -> centos-release[root@localhost ~]# cp /etc/redhat-release  newtest/[root@localhost ~]# ls -l newtest/total 4-rw-r--r-- 1 root root 38 Jul 29 10:34 redhat-release

 加上-d后

lrwxrwxrwx. 1 root root 14 Jul 25 20:07 /etc/redhat-release -> centos-release[root@localhost ~]# cp -d /etc/redhat-release new2[root@localhost ~]# ls new2redhat-release[root@localhost ~]# ls -l new2total 0lrwxrwxrwx 1 root root 14 Jul 29 10:38 redhat-release -> centos-release[root@localhost ~]#

--preserv[=ATTR_LIST]

        mode: 权限
        ownership: 属主属组
        timestamp:
        links
        xattr
        context
        all

 目前只学到ownership和timestamp,所以后面的几个参数先不管,--preserv=ownership是指保持属主属组的,timestamp是保持其时间戳的,若想都保留,中间使用“,”隔开

  如果不加--perserv,发现属组属主和时间戳都改变了

[root@localhost ~]# ls /home/xiaoshui/f1 -l-rw-rw-r-- 1 xiaoshui xiaoshui 0 Jul 29 10:53 /home/xiaoshui/f1[root@localhost ~]# cp /home/xiaoshui/f1 new2/[root@localhost new2]# ls -ltotal 0-rw-r--r-- 1 root root  0 Jul 29 10:56 f1

加上--preserv=ownership,timestamp,发现属主属组和时间戳都保留下来了

[root@localhost new2]# ls -ltotal 0-rw-rw-r-- 1 xiaoshui xiaoshui  0 Jul 29 10:53 f1

-p: 等同--preserv=mode,ownership,timestamp

-v 详细信息

多总结多练习,才能达到熟练掌握并应用的程度。