公司动态
Linux——基础指令(上)
♂️个人主页进击的荆棘作者其它专栏《数据结构与算法》《算法》《C起始之路》目录1.Linux背景2.使用XShell远程登录Linux3.Linux下基本指令4.Linux权限的问题1.Linux背景1.1发展史Linux与UNIX有着很深的关系因此介绍Linux得先从UNIX说起。UNIX发展的历史●1968年一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。●1969-1970年ATT的贝尔实验室研究人员Ken Tompson和Dennis Ritchie在采用很多Multics特点的基础上开发了UNIX系统。它运行在小型机上满足了系统对科研环境的要求。从产生开始UNIX就是一个有价值的、高效的、多用户和多任务的操作系统。●UNIX从满足个人的设计需求开始逐步成长为由许多开发商所支持的标准软件产品。●第一个UNIX版本是免费给许多知名大学的计算机系使用的。●1972年贝尔实验室开始发放商业版本并且给许多不同的用户授权使用这个系统使用者之一是加州大学伯克莱分校的计算机系。伯克莱给系统增加了许多新的特点后来成为了标准。●1975年伯克莱由下属部分BSD发行了自己的UNIX版本。UNIX的BSD版本成为ATT贝尔实验室版本的主要竞争者而其它独立开发出的UNIX版本也开始萌生。●1980年微软公司开发了叫做Xenix的UNIX PC版本。ATT发行了第一个商业版本。名叫System III后来被称对商用软件产品支持良好的System V所代替。●同时UNIX的BSD版本不断发展在70年代末BSD UNIX成为了国防部的高科技研究机构科研项目的基础。结果是伯克莱发行了一个叫做BSD Release 4.2的有效版本。●它包括了高级的文件管理器和基于TCP/IP网络协议的网络特点。现在TCP/IP被Internet所使用。BSD Release 4.2被许多厂商所采用例如SUNMicrosystem。●UNIX不同版本的出现导致了UNIX标准的需要软件开发商不知道他们的程序运行在哪些版本上比较合适。●到80年代中期两个竞争的标准出现了一个是基于ATT的UNIX版本另一个是BSD版本。在书店里可以发现分别适用于不同版本的UNIX的书一些是System V另一些集中在BSD UNIX。●ATT建立了一个叫UNIX系统实验室的新组织它的作用是综合UNIX的不同版本集中开发一个标准系统。●1991年UNIX综合实验室综合了System V Release 3SUN OS和Xenix的所有特点发行了System V Release 4.为了于System V Release 4竞争一些其它公式如IBM和惠普Open Software FoundationOSF去产生自己的UNIX标准版本继而出现两个标准商用版本OSF版本和Release 4。●1993年ATT把它的UNIX转卖给Novell公司。UNIX系统实验室成为了Novell的UNIX系统小组的一部分。Novell发行了基于System V Relea 4的自己的UNIX版本的UNIXWare它可以和Novell公式的Netware系统相联。SUN公司已经把System V Relea 4融进了它的SUN OS发行了Solaris。两个相互竞争的UNIX使用的图形用户界面一个叫Motif另一个叫Openlook已经合并为一个新的工作平台标准叫做通用平台环境CDE。Linux的发展历史●1991年10月5日赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组comp.os.minix中宣布了他编制出了一种类似UNIX的小操作系统做Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发该系统是由一名叫Andrew S Tanenbaum的教师开发的。也许有人会猜想所发布的这个系统应该是Linux的0.01版本实际上并不是。真正的Linux 0.01版本并没有被发布原因是0.01版本并不实用。Linus仅仅在第一个Linus的FTP站点http://ftp:/nic.funet.fi)上提供过这个版本的源代码。●Torvalds于10月5日发布的这个Linux版本被称为0.02版本他能够运行GNU Bourne Again Shellbash和GNU的C编译程序gcc以及为数不多的其它语言。Torvalds决定没有想到他设想的一种能针对高级业余爱好者和黑客们的操作系统已经产生这就是人们所称的Linux。●Linux发布时的版本是0.02后来又有0.03版然后又跳到0.1.版。因为世界各地越来越多的程序员都开始开发Linux他已经达到0.95版。这就意味着正式公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的。●对比一下Windows的发展史1.2开源●Linux是一种自由和开放源代码的类UNIX操作系统该操作系统的内核由Linus Torvalds在1991年首次发布之后再加上用户空间的应用程序之后就成为了Linux操作系统。严格来讲Linux只是操纵系统内核本身的那通常采用“Linux内核”来表达该意思。而Linux则常用于指基于Linux内核的完整操作系统它包括GUI组件和许多其它使用工具。●GNU通用公共许可协议GNU General Public License简称GNU GPL或GPL是一个广泛被使用的自由软件许可协议条款最初由理查德托曼为GNU计划而撰写GPL给予了计算机程序自由软件的定义任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式且必须公开源代码。●Linux是自由软件和开发源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证任何个人和机构都可以自由地使用Linux的所有底层源代码也可以自由地修改和再发布。随着Linux操作系统飞速发展各种集成在Linux上的开源软件和实用工具也得到了应用和普及因此Linux也成为了开源软件的代名词。1.3官网The Linux Kernel Archives1.4企业应用现状●Linux在服务器领域的发展随着开源软件在世界范围内影响力日益增强Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额已经形成了大规模市场应用的局面。并且保值这快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外考虑到Linux的快速成长性以及国家相关政策的扶持力度Linux服务器产品一定能够冲击更大的服务器市场。据权威部门统计目前Linux在服务器领域已经占据75%的市场份额同时Linux在服务器市场的迅速崛起已经引起全球IT产业的高度关注并以强劲的势头成为服务器操作系统领域中的中坚力量。●Linux在桌面领域的发展近年来特别在国内市场Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都都出的Linux桌面操作系统目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUS、Ubuntu也相继推出了基于Linux的桌面系统特别是Ubuntu Linux已经积累了大量的社区用户。但是从系统的整体功能、性能来看Linux桌面系统于Windows系列相比还有一定的差距主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。●Linux在移动嵌入式领域的发展Linux的低成本、强大的定制功能以及良好的移植性能使得Linux在嵌入式系统方面也得到广泛应用目前Linux广泛应用于手机、平板电脑、路由器、电视格电子游戏机等领域。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上的。目前Android已经成为全球最流行的智能手机操作系统据2015年权威部门最新统计Android操作系统的全球市场份额已达74.56%。此外思科在网络防火墙和路由器也使用了定制的Linux阿里云也开发了一套基于Linux的操作系统“YunOS”可用于智能手机、平板电脑和网络电视常见的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的Linux来实现而这一切均归功于Linux与开源的力量。●Linux在云计算/大数据领域的发展互联网产业的迅猛发展促使云计算、大数据产业的形成并快速发展云计算、大数据作为一个基于开源软件的平台Linux占据了核心优势据Linux基金会的研究86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建目前Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。1.5发行版本●DebianDebian运行起来极其稳定这使得它非常适合用于服务器。debian这款操作系统无疑并不适合新手用户而是适合系统管理员和高级用户。●UbuntuUbuntu是Debian的一款衍生版也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定会爱不释手的一款操作系统。●红帽企业级Linux这是一款面向商业市场的Linux发行版。它由服务器版本支持众多处理器架构包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师RHCSA/RHCE对系统管理员进行培训和认证。●CentOSCentOS是一款企业级Linux发行版它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱又能领略红帽企业级Linux对他们来说CentOS值得一试。此外CentOS的外观和行为似乎与发行版红帽企业级Linux如出一辙。CentOS使用YUM来管理软件包。●Fedora小巧的Fedora适合哪些人向尝试最先进的技术等不及程序的稳定版出来。其实Fedora就是红帽公司的一个测试平台产品在成为企业级发行版之前在该平台上进行开发和测试。Fedora是一款非常好的发行版又庞大的用户论坛软件库中还有为数不少的软件包。●Kali LinuxKali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上而Kali的魅力或威力就是来自于此。此外支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具无论是Wifi、数据库还是其它任何工具都设计成立马可以使用。Kali使用APT开管理软件包。毫无疑问Kali Linux是一款渗透测试工具或者是文明黑客青睐的操作系统。●……家庭/学校免费 – NetSarang Website1.6OS概念定位使计算机更好用这是操作系统的根本要义2.使用XShell远程登录Linux2.1关于Linux桌面在以后的工作中没有机会使用图形化界面。思考为什么不适用图形化界面2.2下载安装XShellXShell是一个远程终端软件下载官网XSHELL – NetSarang Website下载安装的时候选择免费版本“home/school”2.3查看Linux主机ip终端控制台查看2.4使用XShell登录主机在XShell终端下敲ssh [ip]若网络畅通将会提示输入用户名密码。输入即可正确登录。XShell下的复制粘贴复制ctrlinsert有些insert需要配合fn来按粘贴shiftinsertctrlc/ctrlv是不行的。XShell进入/退出全屏altenter3.Linux下基本指令3.1ls指令语法ls [选项] [目录或文件]功能对于目录该命令列出该目录下的所有子目录与文件。对于文件将列出文件名以及其它信息。常用选项●-a列出目录下的所有文件包括以.开头的隐含文件。●-l列出文件的详细信息。例如[rootVM-0-6-centos ~]# clear [rootVM-0-6-centos ~]# ls mydir test.c test.txt [rootVM-0-6-centos ~]# ls -a . .. .bash_history .bash_logout .bash_profile .bashrc .cache .config .cshrc .lesshst mydir .npmrc .orca_term .pip .pydistutils.cfg .ssh .tcshrc test.c test.txt [rootVM-0-6-centos ~]# ls -a -l total 80 dr-xr-x---. 8 root root 4096 Jul 7 16:41 . dr-xr-xr-x. 19 root root 4096 Jul 7 21:11 .. -rw------- 1 root root 11319 Jul 7 21:11 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc drwxr-xr-x 4 root root 4096 Mar 22 02:55 .cache drwxr-xr-x 3 root root 4096 Mar 7 2019 .config -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc -rw------- 1 root root 69 Jul 4 23:17 .lesshst drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 44 Mar 20 22:54 .npmrc drwxr-xr-x 2 root root 4096 Jul 2 21:41 .orca_term drwxr-xr-x 2 root root 4096 Mar 20 22:54 .pip -rw-r--r-- 1 root root 73 Mar 20 22:54 .pydistutils.cfg drwx------ 2 root root 4096 Mar 20 23:34 .ssh -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc -rw-r--r-- 1 root root 0 Jul 7 16:27 test.c -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt3.2pwd命令语法pwd功能显示用户当前所在的目录常用选项无例如[rootVM-0-6-centos ~]# pwd /root3.3cd指令Linux理论知识路径的认识●Linux系统中磁盘上的文件何目录被组成一棵目录树每个节点都是目录或文件●其中普通文件一定是目录树的叶子节点●目录可能是叶子空目录也可能是路上节点●理解路径存在的意义树状组织方式都是为了保证快速定位查找到指定的文件而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点都只有一个父节点所有从根目录开始定位指定文件路径具有唯一性●绝对路径一般从/开始不依赖其它目录的定位文件的方式●相对路径相对于当前用户所处目录定位文件的路径方式●绝对路径一般不会随着用户的路径变化而丧失唯一性一般在特定服务的配置文件中经常被使用●相对路径因为它的便捷性一般在命令行中使用较多语法cd 目录名功能改变工作目录。将当前工作目录改变到指定的目录下例如//返回上级目录 [rootVM-0-6-centos mydir]# clear [rootVM-0-6-centos mydir]# pwd /root/mydir [rootVM-0-6-centos mydir]# cd .. [rootVM-0-6-centos ~]# pwd /root //绝对路径定位目录或者文件 [rootVM-0-6-centos ~]# pwd /root [rootVM-0-6-centos ~]# cd /root/mydir [rootVM-0-6-centos mydir]# pwd /root/mydir //相对路径定位目录或文件 [rootVM-0-6-centos mydir]# pwd /root/mydir [rootVM-0-6-centos mydir]# cd ../temp [rootVM-0-6-centos temp]# pwd /root/temp //每次新建一个用户都会在/home目录下为新用户创建新的工作目录目录以新用户名称命名 //root用户在安装操作系统的时候就已经内置了工作目录/root [rootVM-0-6-centos temp]# ls /home lighthouse user1 //快速进入自己的家目录 [rootVM-0-6-centos temp]# whoami root [rootVM-0-6-centos temp]# pwd /root/temp [rootVM-0-6-centos temp]# cd ~ [rootVM-0-6-centos ~]# pwd /root //返回最近访问的目录 [rootVM-0-6-centos ~]# pwd //当前所在目录 /root [rootVM-0-6-centos ~]# cd / //进入/目录 [rootVM-0-6-centos /]# pwd / [rootVM-0-6-centos /]# cd - //直接可以会退到最近一次所处的目录/root /root [rootVM-0-6-centos ~]# pwd /root [rootVM-0-6-centos ~]# cd - //直接可以会退到最近一次所处的目录/ / [rootVM-0-6-centos /]# pwd / [rootVM-0-6-centos /]# cd - //同上 /root [rootVM-0-6-centos ~]# pwd /root3.4touch指令Linux理论知识文件类型的认识语法touch [选项]… 文件…功能touch命令参数可更改文档或目录的日期时间包括存取时间和更改时间或新建一个不存在的文件。常用选项●-a :change only the access time●-c :change only the modification time例如//创建普通文件 [rootVM-0-6-centos ~]# ls mydir test.c test.txt [rootVM-0-6-centos ~]# touch newFile.txt [rootVM-0-6-centos ~]# ls mydir newFile.txt test.c test.txt //查看文件时间 [rootVM-0-6-centos ~]# stat newFile.txt File: ‘newFile.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 395142 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-07-07 22:07:52.742545133 0800 Modify: 2026-07-07 22:07:52.742545133 0800 Change: 2026-07-07 22:07:52.742545133 0800 Birth: - //修改文件access时间 [rootVM-0-6-centos ~]# touch -a newFile.txt [rootVM-0-6-centos ~]# stat newFile.txt File: ‘newFile.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 395142 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-07-07 22:10:28.222602380 0800 Modify: 2026-07-07 22:07:52.742545133 0800 Change: 2026-07-07 22:10:28.222602380 0800 //该时间为何会变化 Birth: - //修改文件Modify时间 [rootVM-0-6-centos ~]# touch -m newFile.txt [rootVM-0-6-centos ~]# stat newFile.txt File: ‘newFile.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 395142 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-07-07 22:10:28.222602380 0800 Modify: 2026-07-07 22:12:03.474638556 0800 Change: 2026-07-07 22:12:03.474638556 0800 Birth: -3.5mkdir指令语法mkdir [选项] dirname…功能在当前目录下创建一个名为“dirname”的目录常用选项●-p/-parents可以是一个路径名称。此时若路径中的某些目录尚不存在加上此选项后系统将自动建立好哪些尚不存在的目录即一次可建立多个目录例如//创建普通空目录 [rootVM-0-6-centos ~]# ls -l total 8 drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt [rootVM-0-6-centos ~]# mkdir dir1 [rootVM-0-6-centos ~]# ls -l total 12 drwxr-xr-x 2 root root 4096 Jul 7 22:19 dir1 drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt //递归建立多个目录创建指定路径 [rootVM-0-6-centos ~]# mkdir -p a/b/c/d [rootVM-0-6-centos ~]# ls -l total 16 drwxr-xr-x 3 root root 4096 Jul 7 22:21 a drwxr-xr-x 2 root root 4096 Jul 7 22:19 dir1 drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt [rootVM-0-6-centos ~]# tree a a -- b -- c -- d 3 directories, 0 files //tree命令是一个递归以树状结构显示指定目录的命令若没有安装CentOS下 //若当前用户是rootyum install -y tree //若当前用户是普通用户sudo yum install -y tree3.6rmkdir指定rm指令rmdir是一个与mkdir相对应的命令mkdir是建立目录而rmdir是删除命令语法rmdir [-p] [dirName]适用对象具有当前目录操作权限的所有使用者功能删除空目录常用选项●-p 当子目录被删除后若父目录也变成空目录的话就连带父目录一起删除例如//删除空目录 [rootVM-0-6-centos ~]# ll total 16 drwxr-xr-x 3 root root 4096 Jul 7 22:21 a drwxr-xr-x 2 root root 4096 Jul 7 22:19 dir1 drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt [rootVM-0-6-centos ~]# tree dir1/ dir1/ 0 directories, 0 files [rootVM-0-6-centos ~]# rmdir dir1 [rootVM-0-6-centos ~]# ll total 12 drwxr-xr-x 3 root root 4096 Jul 7 22:21 a drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt //删除路径 [rootVM-0-6-centos ~]# tree a a -- b -- c -- d 3 directories, 0 files [rootVM-0-6-centos ~]# rmdir -p a/b/c/d [rootVM-0-6-centos ~]# ll total 8 drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt //指定路径中有不为空的路径便无法删除 [rootVM-0-6-centos ~]# mkdir -p a/b/c/d [rootVM-0-6-centos ~]# rmdir -p a/b/c rmdir: failed to remove ‘a/b/c’: Directory not empty [rootVM-0-6-centos ~]# touch a/myfile.text [rootVM-0-6-centos ~]# touch a/b/myfile.text [rootVM-0-6-centos ~]# tree a/ a/ |-- b | |-- c | | -- d | -- myfile.text -- myfile.text 3 directories, 2 files [rootVM-0-6-centos ~]# rmdir -p a/b/c/d rmdir: failed to remove directory ‘a/b’: Directory not emptyrm命令可以同时删除文件和目录语法rm [-f-i-r-v] [dirName/dir]适用对象所有使用者功能删除文件或目录常用选项●-f 即使文件属性为只读即写保护亦直接删除●-i删除前逐一询问确定●-r 删除目录及其下所有文件例如//删除普通文件 [rootVM-0-6-centos ~]# ll total 12 drwxr-xr-x 3 root root 4096 Jul 7 22:37 a drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir -rw-r--r-- 1 root root 12 Jul 7 16:41 test.txt [rootVM-0-6-centos ~]# rm test.txt rm: remove regular file ‘test.txt’? y [rootVM-0-6-centos ~]# ll total 8 drwxr-xr-x 3 root root 4096 Jul 7 22:37 a drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir //删除目录文件 [rootVM-0-6-centos ~]# ll total 8 drwxr-xr-x 3 root root 4096 Jul 7 22:37 a drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir [rootVM-0-6-centos ~]# rm a rm: cannot remove ‘a’: Is a directory [rootVM-0-6-centos ~]# rm -r a rm: descend into directory ‘a’? y rm: descend into directory ‘a/b’? y rm: remove regular empty file ‘a/b/myfile.text’? y rm: remove directory ‘a/b’? y rm: remove regular empty file ‘a/myfile.text’? y rm: remove directory ‘a’? y [rootVM-0-6-centos ~]# ll total 4 drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir //递归强制删除非空目录 [rootVM-0-6-centos ~]# tree mydir mydir -- test.txt 0 directories, 1 file [rootVM-0-6-centos ~]# rm -f mydir rm: cannot remove ‘mydir’: Is a directory [rootVM-0-6-centos ~]# rm -rf mydir [rootVM-0-6-centos ~]# ll total 03.7man指令Linux的命令有很多参数所以不可能全记住可以通过联机手册获取帮助语法man [选项] 命令常用选项解释一下man手册分为9章不同系统可能会有差异●1是普通命令●2是系统调用如openwrite之类的通过这个至少可以很方便的查到这个函数需要加什么头文件●3是库函数如printffread是特殊文件也就是/dev下的各种设备文件●4略●5是指文件的格式如passwd就会说明这个文件中各个字段的含义●6是给游戏留的由各个游戏自己定义●7是附件还有一些变量如向environ这种全局变量在这里就有说明●8是系统管理用的命令这些命令只能由root使用如ifconfig●9略例如[rootVM-0-6-centos ~]# man printf //查看printf指令 [rootVM-0-6-centos ~]# man fork //查看系统调用默认没有这个指令man自动去2号手册里查找 [rootVM-0-6-centos ~]# man 2 fork //查看系统调用 [rootVM-0-6-centos ~]# man 3 printf //查看C库函数 [rootVM-0-6-centos ~]# man 7 signal //查看变量 [rootVM-0-6-centos ~]# man 7 environ [rootVM-0-6-centos ~]# man man //查看man手册自己3.8cp指令语法cp [选项] 源文件或目录 目标文件或目录功能复制文件或目录说明●cp指令用于复制文件或目录●如同时指定两个以上的文件或目录且最后的目的地是一个已经存在的目录则它会把前面指定的所有文件或目录复制到此目录中常用选项●-f或--force强行复制文件或目录不论目的文件或目录是否已经存在●-i或--interactive覆盖文件之前先询问用户●-r递归处理将指定目录下的文件与子目录一并处理。若源文件或目录的形态不属于目录或符号链接则一律视为普通文件处理。例如//cp普通文件 [rootVM-0-6-centos ~]# echo hello linux myfile.txt [rootVM-0-6-centos ~]# cat myfile.txt hello linux [rootVM-0-6-centos ~]# ll total 4 -rw-r--r-- 1 root root 12 Jul 9 20:01 myfile.txt [rootVM-0-6-centos ~]# cp myfile.txt myfile-backup.txt [rootVM-0-6-centos ~]# ll total 8 -rw-r--r-- 1 root root 12 Jul 9 20:02 myfile-backup.txt -rw-r--r-- 1 root root 12 Jul 9 20:01 myfile.txt [rootVM-0-6-centos ~]# cat myfile-backup.txt hello linux //将多个文件拷贝到指定路径下 [rootVM-0-6-centos ~]# ll total 8 -rw-r--r-- 1 root root 12 Jul 9 20:02 myfile-backup.txt -rw-r--r-- 1 root root 12 Jul 9 20:03 myfile.txt [rootVM-0-6-centos ~]# mkdir dir [rootVM-0-6-centos ~]# ll total 12 drwxr-xr-x 2 root root 4096 Jul 9 20:11 dir -rw-r--r-- 1 root root 12 Jul 9 20:02 myfile-backup.txt -rw-r--r-- 1 root root 12 Jul 9 20:03 myfile.txt [rootVM-0-6-centos ~]# cp *.txt dir //*表示通配符匹配所有.txt结尾的文件名 [rootVM-0-6-centos ~]# ll total 12 drwxr-xr-x 2 root root 4096 Jul 9 20:11 dir -rw-r--r-- 1 root root 12 Jul 9 20:02 myfile-backup.txt -rw-r--r-- 1 root root 12 Jul 9 20:03 myfile.txt [rootVM-0-6-centos ~]# tree dir dir |-- myfile-backup.txt -- myfile.txt 0 directories, 2 files //cp若目标文件存在就覆盖 [rootVM-0-6-centos ~]# echo hello myfile.txt [rootVM-0-6-centos ~]# cat myfile.txt hello [rootVM-0-6-centos ~]# cp myfile.txt myfile-backup.txt cp: overwrite ‘myfile-backup.txt’? y [rootVM-0-6-centos ~]# cat myfile-backup.txt hello //递归强制拷贝整个目录 [rootVM-0-6-centos ~]# tree . |-- dir | |-- myfile-backup.txt | -- myfile.txt |-- myfile-backup.txt -- myfile.txt 1 directory, 4 files [rootVM-0-6-centos ~]# cp -rf ./ test [rootVM-0-6-centos ~]# tree test test |-- dir | |-- myfile-backup.txt | -- myfile.txt -- myfile-backup.txt 1 directory, 3 files