0. ls

  • 命令概述
    ls 命令用于显示文件目录列表,默认不加参数时只显示非隐藏文件的文件名。

  • 命令语法
    ls [选项] [目录或者文件名]
    参数:
    -a-all的缩写,显示所有文件,包括隐藏文件(以.开头的文件);
    -h:将文件内容大小以 GB、KB 等易读方式显示;
    -l:列出长数据串,显示文件的属性与权限等数据信息;

1. cp

  • 命令概述
    cp 命令用于复制文件或文件目录到另一个文件目录,也能用于创建软链接与硬链接。

  • 命令语法
    cp [选项] [被复制文件或目录] [目标目录]
    参数:
    -a:相当于 -d -p -r 选项的集合。
    -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
    -i:询问。如果目标文件已经存在,则询问是否覆盖;
    -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
    -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
    -p:复制后目标文件保留源文件的属性,例如使用者、所属组、权限和时间;
    -r:递归复制,用于复制目录;
    -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。

  • 示例

    • 复制一个源文件到目标目录
      cp 1.txt /home/testDir/
    • 复制多个源文件到目标目录
      cp 1.txt 2.txt 3.txt /home/test/testDir/
    • 复制当前目录下某一种格式文件到目标目录
      cp *.txt /home/test/testDir/
    • 复制一个目录到目标目录
      cp -r test/ /home/test/testDir/
    • 创建文件软链接
      cp -s a.txt /home/test/testDir/b.txt
    • 创建文件硬链接
      cp -l a.txt /home/test/testDir/b.txt
    • 强制覆盖原有文件/目录
      cp -r -f a/* /home/test/testDir/

tips
软链接:类似于 Windows 中的快捷方式,创建时不会复制文件。
硬链接:在 Linux 中保存在磁盘分区中的文件,系统都会为它分配一个索引点(lnode)。它是该文件或目录在系统中的唯一标识符,而硬链接就是多个文件名同时指向同一个索引节点(lnode)。在索引节点存在多个链接的时候,删除一个链接不会影响索引本身和其他链接,只有当最后一个链接被删除且有新的时候要存储到磁盘上,删除的数据块及目录链接才会被释放。
硬链接只能在同一类型的文件系统中链接,不能跨文件系统。同时它只能对文件进行链接,不能链接目录。

2. scp

  • 命令概述
    scp 命令用于以加密的方式在本地主机与远程主机之间复制文件。

  • 命令语法
    scp [选项] [本地目录、文件或远程目录、文件] [本地目录、文件或远程目录、文件]
    参数:
    -1:使用 ssh 协议版本 1;
    -2:使用 ssh 协议版本 2;
    -4:使用 ipv4;
    -6:使用 ipv6;
    -B:以批处理模式运行;
    -C:使用压缩;
    -F:指定 ssh 配置文件;
    -i:identity_file 从指定文件中读取传输时使用的密钥文件(例如亚马逊云 pem),此参数直接传递给 ssh;
    -l:指定宽带限制;
    -o:指定使用的 ssh 选项;
    -P:指定远程主机的端口号;
    -p:保留文件的最后修改时间,最后访问时间和权限模式;
    -q:不显示复制进度;
    -r:以递归方式复制。

  • 示例

    • 从远程主机复制文件到本地目录
      scp root@yun.example.com:/home/test/testDir/1.txt /home/test/testDir/
    • 从本地上传文件到远程主机的指定目录
      scp /home/test/testDir/1.txt root@yun.example.com:/home/test/testDir/
    • 从本地上传文件到远程主机的指定目录(指定端口)
      scp -P 2333 /home/test/testDir/1.txt root@yun.example.com:/home/test/testDir/
    • 从本地上传目录到远程主机的指定目录
      scp -r /home/test/testDir/demo root@yun.example.com:/home/test/testDir/