Linux——基础指令(上)

💁‍♂️个人主页:进击的荆棘

👇作者其它专栏:

《数据结构与算法》《算法》《C++起始之路》


目录

1.Linux背景

2.使用XShell远程登录Linux

3.Linux下基本指令

4.Linux权限的问题


1.Linux背景

1.1发展史

Linux与UNIX有着很深的关系,因此介绍Linux得先从UNIX说起。

UNIX发展的历史

●1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。

●1969-1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础上开发了UNIX系统。它运行在小型机上,满足了系统对科研环境的要求。从产生开始,UNIX就是一个有价值的、高效的、多用户和多任务的操作系统。

●UNIX从满足个人的设计需求开始,逐步成长为由许多开发商所支持的标准软件产品。

●第一个UNIX版本是免费给许多知名大学的计算机系使用的。

●1972年,贝尔实验室开始发放商业版本,并且给许多不同的用户授权使用这个系统,使用者之一是加州大学伯克莱分校的计算机系。伯克莱给系统增加了许多新的特点,后来成为了标准。

●1975年伯克莱由下属部分BSD发行了自己的UNIX版本。UNIX的BSD版本成为AT&T贝尔实验室版本的主要竞争者,而其它独立开发出的UNIX版本也开始萌生。

●1980年微软公司开发了叫做Xenix的UNIX PC版本。AT&T发行了第一个商业版本。名叫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年代中期,两个竞争的标准出现了,一个是基于AT&T的UNIX版本,另一个是BSD版本。在书店里可以发现分别适用于不同版本的UNIX的书,一些是System V,另一些集中在BSD UNIX。

●AT&T建立了一个叫UNIX系统实验室的新组织,它的作用是综合UNIX的不同版本,集中开发一个标准系统。

●1991年,UNIX综合实验室综合了System V Release 3,SUN OS和Xenix的所有特点,发行了System V Release 4.为了于System V Release 4竞争,一些其它公式,如IBM和惠普Open Software Foundation(OSF)去产生自己的UNIX标准版本,继而出现两个标准商用版本OSF版本和Release 4。

●1993年,AT&T把它的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 Shell(bash)和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 Archives

1.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发行版本

●Debian

Debian运行起来极其稳定,这使得它非常适合用于服务器。debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。

●Ubuntu

Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定会爱不释手的一款操作系统。

●红帽企业级Linux

这是一款面向商业市场的Linux发行版。它由服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。

●CentOS

CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与发行版红帽企业级Linux如出一辙。CentOS使用YUM来管理软件包。

●Fedora

小巧的Fedora适合哪些人:向尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,又庞大的用户论坛,软件库中还有为数不少的软件包。

●Kali Linux

Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就是来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其它任何工具,都设计成立马可以使用。Kali使用APT开管理软件包。

毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客青睐的操作系统。

●……

家庭/学校免费 – NetSarang Website

1.6OS概念,定位

使计算机更好用!这是操作系统的根本要义

2.使用XShell远程登录Linux

2.1关于Linux桌面

在以后的工作中,没有机会使用图形化界面。

思考:为什么不适用图形化界面?

2.2下载安装XShell

XShell是一个远程终端软件,下载官网:XSHELL – NetSarang Website

下载安装的时候选择免费版本:“home/school”

2.3查看Linux主机ip

终端控制台查看

2.4使用XShell登录主机

在XShell终端下敲ssh [ip],若网络畅通,将会提示输入用户名密码。输入即可正确登录。

XShell下的复制粘贴

复制:ctrl+insert(有些insert需要配合fn来按)

粘贴:shift+insert

ctrl+c/ctrl+v是不行的。

XShell进入/退出全屏:alt+enter

3.Linux下基本指令

3.1ls指令

语法:ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其它信息。

常用选项:

●-a列出目录下的所有文件,包括以.开头的隐含文件。

●-l列出文件的详细信息。

例如:

[root@VM-0-6-centos ~]# clear [root@VM-0-6-centos ~]# ls mydir test.c test.txt [root@VM-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 [root@VM-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.txt

3.2pwd命令

语法:pwd

功能:显示用户当前所在的目录

常用选项:

例如:

[root@VM-0-6-centos ~]# pwd /root

3.3cd指令

Linux理论知识:路径的认识

●Linux系统中,磁盘上的文件何目录被组成一棵目录树,每个节点都是目录或文件

●其中普通文件一定是目录树的叶子节点

●目录可能是叶子(空目录),也可能是路上节点

理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所有从根目录开始,定位指定文件,路径具有唯一性

●绝对路径:一般从/开始,不依赖其它目录的定位文件的方式

●相对路径:相对于当前用户所处目录,定位文件的路径方式

●绝对路径一般不会随着用户的路径变化而丧失唯一性,一般在特定服务的配置文件中经常被使用

●相对路径因为它的便捷性,一般在命令行中使用较多

语法:cd 目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下

例如:

//返回上级目录 [root@VM-0-6-centos mydir]# clear [root@VM-0-6-centos mydir]# pwd /root/mydir [root@VM-0-6-centos mydir]# cd .. [root@VM-0-6-centos ~]# pwd /root //绝对路径定位目录或者文件 [root@VM-0-6-centos ~]# pwd /root [root@VM-0-6-centos ~]# cd /root/mydir [root@VM-0-6-centos mydir]# pwd /root/mydir //相对路径定位目录或文件 [root@VM-0-6-centos mydir]# pwd /root/mydir [root@VM-0-6-centos mydir]# cd ../temp [root@VM-0-6-centos temp]# pwd /root/temp //每次新建一个用户都会在/home目录下为新用户创建新的工作目录,目录以新用户名称命名 //root用户在安装操作系统的时候,就已经内置了工作目录:/root [root@VM-0-6-centos temp]# ls /home lighthouse user1 //快速进入自己的家目录 [root@VM-0-6-centos temp]# whoami root [root@VM-0-6-centos temp]# pwd /root/temp [root@VM-0-6-centos temp]# cd ~ [root@VM-0-6-centos ~]# pwd /root //返回最近访问的目录 [root@VM-0-6-centos ~]# pwd //当前所在目录 /root [root@VM-0-6-centos ~]# cd / //进入/目录 [root@VM-0-6-centos /]# pwd / [root@VM-0-6-centos /]# cd - //直接可以会退到最近一次所处的目录:/root /root [root@VM-0-6-centos ~]# pwd /root [root@VM-0-6-centos ~]# cd - //直接可以会退到最近一次所处的目录:/ / [root@VM-0-6-centos /]# pwd / [root@VM-0-6-centos /]# cd - //同上 /root [root@VM-0-6-centos ~]# pwd /root

3.4touch指令

Linux理论知识:文件类型的认识

语法:touch [选项]… 文件…

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或新建一个不存在的文件。

常用选项:

●-a :change only the access time

●-c :change only the modification time

例如:

//创建普通文件 [root@VM-0-6-centos ~]# ls mydir test.c test.txt [root@VM-0-6-centos ~]# touch newFile.txt [root@VM-0-6-centos ~]# ls mydir newFile.txt test.c test.txt //查看文件时间 [root@VM-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时间 [root@VM-0-6-centos ~]# touch -a newFile.txt [root@VM-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时间 [root@VM-0-6-centos ~]# touch -m newFile.txt [root@VM-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:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好哪些尚不存在的目录,即一次可建立多个目录

例如:

//创建普通空目录 [root@VM-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 [root@VM-0-6-centos ~]# mkdir dir1 [root@VM-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 //递归建立多个目录,创建指定路径 [root@VM-0-6-centos ~]# mkdir -p a/b/c/d [root@VM-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 [root@VM-0-6-centos ~]# tree a a `-- b `-- c `-- d 3 directories, 0 files //tree命令是一个递归以树状结构显示指定目录的命令,若没有安装(CentOS下) //若当前用户是root:yum install -y tree //若当前用户是普通用户:sudo yum install -y tree

3.6rmkdir指定&&rm指令

rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除命令

语法:rmdir [-p] [dirName]

适用对象:具有当前目录操作权限的所有使用者

功能:删除空目录

常用选项:

●-p 当子目录被删除后若父目录也变成空目录的话,就连带父目录一起删除

例如:

//删除空目录 [root@VM-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 [root@VM-0-6-centos ~]# tree dir1/ dir1/ 0 directories, 0 files [root@VM-0-6-centos ~]# rmdir dir1 [root@VM-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 //删除路径 [root@VM-0-6-centos ~]# tree a a `-- b `-- c `-- d 3 directories, 0 files [root@VM-0-6-centos ~]# rmdir -p a/b/c/d [root@VM-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 //指定路径中有不为空的路径,便无法删除 [root@VM-0-6-centos ~]# mkdir -p a/b/c/d [root@VM-0-6-centos ~]# rmdir -p a/b/c rmdir: failed to remove ‘a/b/c’: Directory not empty [root@VM-0-6-centos ~]# touch a/myfile.text [root@VM-0-6-centos ~]# touch a/b/myfile.text [root@VM-0-6-centos ~]# tree a/ a/ |-- b | |-- c | | `-- d | `-- myfile.text `-- myfile.text 3 directories, 2 files [root@VM-0-6-centos ~]# rmdir -p a/b/c/d rmdir: failed to remove directory ‘a/b’: Directory not empty

rm命令可以同时删除文件和目录

语法:rm [-f-i-r-v] [dirName/dir]

适用对象:所有使用者

功能:删除文件或目录

常用选项:

●-f 即使文件属性为只读(即写保护),亦直接删除

●-i删除前逐一询问确定

●-r 删除目录及其下所有文件

例如:

//删除普通文件 [root@VM-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 [root@VM-0-6-centos ~]# rm test.txt rm: remove regular file ‘test.txt’? y [root@VM-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 //删除目录文件 [root@VM-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 [root@VM-0-6-centos ~]# rm a rm: cannot remove ‘a’: Is a directory [root@VM-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 [root@VM-0-6-centos ~]# ll total 4 drwxr-xr-x 2 root root 4096 Jul 7 16:43 mydir //递归强制删除非空目录 [root@VM-0-6-centos ~]# tree mydir mydir `-- test.txt 0 directories, 1 file [root@VM-0-6-centos ~]# rm -f mydir rm: cannot remove ‘mydir’: Is a directory [root@VM-0-6-centos ~]# rm -rf mydir [root@VM-0-6-centos ~]# ll total 0

3.7man指令

Linux的命令有很多参数,所以不可能全记住,可以通过联机手册获取帮助

语法:man [选项] 命令

常用选项

解释一下:man手册分为9章(不同系统可能会有差异)

●1是普通命令

●2是系统调用如open,write之类的(通过这个,至少可以很方便的查到这个函数,需要加什么头文件)

●3是库函数,如printf,fread是特殊文件,也就是/dev下的各种设备文件

●4略

●5是指文件的格式,如passwd,就会说明这个文件中各个字段的含义

●6是给游戏留的,由各个游戏自己定义

●7是附件还有一些变量,如向environ这种全局变量在这里就有说明

●8是系统管理用的命令,这些命令只能由root使用,如ifconfig

●9略

例如:

[root@VM-0-6-centos ~]# man printf //查看printf指令 [root@VM-0-6-centos ~]# man fork //查看系统调用,默认没有这个指令,man自动去2号手册里查找 [root@VM-0-6-centos ~]# man 2 fork //查看系统调用 [root@VM-0-6-centos ~]# man 3 printf //查看C库函数 [root@VM-0-6-centos ~]# man 7 signal //查看变量 [root@VM-0-6-centos ~]# man 7 environ [root@VM-0-6-centos ~]# man man //查看man手册自己

3.8cp指令

语法:cp [选项] 源文件或目录 目标文件或目录

功能:复制文件或目录

说明:

●cp指令用于复制文件或目录

●如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中

常用选项:

●-f或--force强行复制文件或目录,不论目的文件或目录是否已经存在

●-i或--interactive覆盖文件之前先询问用户

●-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。

例如:

//cp普通文件 [root@VM-0-6-centos ~]# echo 'hello linux' > myfile.txt [root@VM-0-6-centos ~]# cat myfile.txt hello linux [root@VM-0-6-centos ~]# ll total 4 -rw-r--r-- 1 root root 12 Jul 9 20:01 myfile.txt [root@VM-0-6-centos ~]# cp myfile.txt myfile-backup.txt [root@VM-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 [root@VM-0-6-centos ~]# cat myfile-backup.txt hello linux //将多个文件拷贝到指定路径下 [root@VM-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 [root@VM-0-6-centos ~]# mkdir dir [root@VM-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 [root@VM-0-6-centos ~]# cp *.txt dir //*表示通配符,匹配所有.txt结尾的文件名 [root@VM-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 [root@VM-0-6-centos ~]# tree dir dir |-- myfile-backup.txt `-- myfile.txt 0 directories, 2 files //cp若目标文件存在,就覆盖 [root@VM-0-6-centos ~]# echo 'hello' > myfile.txt [root@VM-0-6-centos ~]# cat myfile.txt hello [root@VM-0-6-centos ~]# cp myfile.txt myfile-backup.txt cp: overwrite ‘myfile-backup.txt’? y [root@VM-0-6-centos ~]# cat myfile-backup.txt hello //递归强制拷贝整个目录 [root@VM-0-6-centos ~]# tree . |-- dir | |-- myfile-backup.txt | `-- myfile.txt |-- myfile-backup.txt `-- myfile.txt 1 directory, 4 files [root@VM-0-6-centos ~]# cp -rf ./ test [root@VM-0-6-centos ~]# tree test test |-- dir | |-- myfile-backup.txt | `-- myfile.txt `-- myfile-backup.txt 1 directory, 3 files