【Linux】Linux的基本指令(1)
A clown is always a clown.💓💓💓
目录
✨说在前面
🍋知识点一:Linux的背景
•🌰1.Unix发展的历史
•🌰2.Linux发展历史
•🌰3.企业应用现状
•🌰4.发行版本
🍋知识点二:Linux下基本指令
•🌰1.ls指令
•🌰2.pwd、cd指令
•🌰3.touch、mkdir指令
•🌰3.rmdir、rm指令
•🌰4.man、cp指令
• ✨SumUp结语
✨说在前面
亲爱的读者们大家好!💖💖💖,我们又见面了,我们从这一篇文章开始,将持续更新Linux的相关知识。当然,C++的知识没有结束,接下来会同时更新C++和Linux,大家也可以参考我的博客一起学习哦~
我们今天简单给大家讲解一下Linux的历史和相关的一些基本指令。s这一篇文章的内容不会太难,当然环境的安装需要大家自行下载,搭配的是xshell和云服务器。云服务器需要大家在腾讯云、阿里云或者华为云上购买,然后通过xshell来连接云服务器。当然链接已经给大家准备好,大家自行点击即可。
👇👇👇
💘💘💘相关链接如下(直接点击即可)华为云 (huaweicloud.com)
阿里云 (aliyun.com)
腾讯云 (tencent.com)
xshell下载(xshell.com)
🎉🎉🎉xshell + 云服务器🎉🎉🎉
博主主页传送门:愿天垂怜的博客
🍋知识点一:Linux的背景
•🌰1.Unix发展的历史
说到Linux,很多初学者可能会问Linux从哪里来?它是如何发展的?要介绍Linux的发展史,还得从Unix说起。
🔥1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。
🔥1969-1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础上开发了UINX系统。它运行在小型机上,满足了系统对科研环境的要求。从产生开始,UNIX就是一个有价值的、高效的、多用户和多任务的操作系统。
🔥UNIX从满足个人的设计需求开始,逐步成长为由许多不同开发商所支持的标准软件产品。
🔥第一个UNIX版本是免费给许多知名大学的计算机系使用的。
🔥1972年,贝尔实验室开始发放商业版本,并且给不同的用户授权使用这个系统,使用者之一是加州大学伯克莱分校的计算机系。伯克莱给系统增加了许多新的特点,后来成为了标准。
🔥1975年,伯克莱由下属部门BSD发行了自己的UNIX版本。UNIX的BSD版本成为AT&T贝尔实验室版本的主要竞争者,而其它的独立开发出的UNIX版本也开始萌生。
🔥1980年,微软公司开发了叫做Xenix的UNIX PC版本。AT&T发行了第一个商业版本。名叫System Ⅲ,后来被成为对商用软件产品良好支持的System Ⅴ所替代。
🔥同时UNIX的BSD版本不断发展,在70年代末期,BSD UNIX成为了国防部的高科技研究机构科研项目的基础。其结果,伯克莱发行了一个叫做BSD Release 4.2的有效版本。
🔥它包括了高级的文件管理器和基于TCP/IP网络协议的网络特点。现在TCP/IP被Internet所使用。BSD Release 4.2被许多厂商所采用,例如SUN Microsystem。
🔥UNIX不同版本的出现导致了UNIX标准的需要,软件开发商不知道他们的程序运行在哪些版本上比较合适。
🔥到80年代中期,两个竞争的标准出现了,一个是基于AT&T的UNIX版本,另一个是BSD版本。在今天的书店里你能发现分别适用于这两个版本的不同的UNIX的书,一些是System V,另一些集中在BSD UNIX。
🔥AT&T建立了一个叫UNIX系统实验室的新组织,它的作用就是综合UNIX的不同版本,集中开发一个标准系统。
🔥1991年,UNIX综合实验室综合了System V Release3,SUN OS和Xenix的所有特点,发行了System V Release 4。为了与System V Release 4 竞争,一些其它公司,如IBM和惠普Open Software Foundation(OSF)去产生自己的UNIX标准版本,继而出现了两个标准商业版本OSF版本和System Release 4。
🔥1993年,AT&T把它的UNIX转卖给Novell公司。UNIX系统实验室成为了Novell的UNIX系统小组的一部分。
🔥Novell发行了基于System V Release 4的自己的UNIX版本UNIXWare,它可以和Novell公司的Netware系统相联。SUN公司已经把System V Release 4 融进了它的SUN OS,发行了Solaris。两个相互竞争的UNIX使用的图形用户界面(一个叫Motif,另一个叫Openlook),已经合并为一个新的工作平台标准,叫做通用平台环境(CDE)。
•🌰2.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仅仅在第一个Linux的FTP站点(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.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的。
🔥Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在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也成为了开源软件的代名词。
•🌰3.企业应用现状
🔥Linux在服务器领域的发展
随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力度,Linux服务器产品一定能够冲击更大的服务器市场。据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。
🔥Linux在桌面领域的发展
近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。
🔥Linux在移动嵌入式领域的发展
Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%。此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的操作系统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量。
🔥Linux在云计算/大数据领域的发展
互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。
•🌰4.发行版本
🔥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是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。
🍋知识点二:Linux下基本指令
•🌰1.ls指令
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a | 列出目录下的所有文件,包括以 . 开头的隐含文件。 |
-d | 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录 |
-i | 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件 |
-k | 以 k 字节的形式表示文件的大小。ls –alk 指定文件 |
-l | 列出文件的详细信息。 |
-n | 用数字的 UID,GID 代替名称。 (介绍 UID, GID) |
-F | -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别) |
-r | 对目录反向排序。 |
-t | 以时间排序。 |
-s | 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件) |
-R | 列出所有子目录下的文件。(递归) |
-1 | 1一行只输出一个文件。 |
ls指令示例:
【ls-l】默认是自己的目录,但是也可以指定目录,指定目录里面的内容。
•🌰2.pwd、cd指令
pwd
语法:pwd
功能:显示一个用户当前所在的目录
注意:windows当中使用反斜杠【\】作为路径分隔符,而在linux当中我们使用斜杠【/】作为路径分隔符,在两个斜杠或反斜杠之间的一定是一个目录,而最后的有可能是目录,也有可能是普通文件。
cd
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
由此我们可以发现,第一个斜杠就意味着是根目录,再往上回退,就退无可退了。其实也就是说,Linux的文件结构,是一颗从 根目录/ 开始的多叉树,它的叶子节点一定是普通文件或空目录,而非叶子节点一定是一个非空目录。并且,任何一个叶子节点开始向回退,回到/的路径唯一,也就是路径具有唯一性,称为绝对路径;以非/为参照位置,定位一个文件,称为相对路径。绝对路径不会失效,可以在配置文件中进行使用;相对路径可能失效,但比较简单,在日常操作中用得多。
举例:
cd .. //返回上级目录
cd /home/litao/linux/ //绝对路径
cd ../day02/ //相对路径
cd ~ //进入用户的家目录
cd - //返回最近访问目录
使用示例:
注意:
1. 任何一个目录,即便是空的,系统也要默认给该目录自动生成【.】和【..】。
2. 任何一个linux用户,用特定的用户名登录系统时,默认在家目录/home下。
•🌰3.touch、mkdir指令
touch
语法:touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-a | 或--time=atime或--time=access或--time=use,只更改存取时间 |
-c | 或--no-create,不建立任何文档 |
-d | 使用指定的日期时间,而非现在的时间 |
-f | 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 |
-m | 或--time=mtime或--time=modify 只更改变动时间。 |
-r | 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 |
-t | 使用指定的日期时间,而非现在的时间 |
mkdir
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 "dirname"的目录
常用选项:
-p, --parents:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
举例1:
举例2:
注意: 【tree】命令需要输入yum install -y tree或者apt install -y tree进行安装
举例3:
命令,实际上就是文件。命令的本质其实就是可执行文件,等同于我们写的C/C++程序。这可能和大家理解的命令不一样,但这就是事实。所以,命令 = 程序。如果在命令行中,出现了异常情况,统一尝试Ctrl+C来终止异常。
•🌰3.rmdir、rm指令
rmdir
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
-f | 即使文件属性为只读(即写保护),亦直接删除 |
-i | 删除前逐一询问确认 |
-r | 删除目录及其下所有文件 |
举例1:
举例2:
在Linux中,*(星号)是一个非常重要的通配符(wildcard),它在多种上下文中具有不同的用途,但通常用于匹配任意数量的字符(包括零个字符)。这种机制在文件名匹配、命令参数扩展、正则表达式等场景中非常有用。
文件名匹配
在命令行或脚本中,*常用于匹配文件名。例如,如果你有一个目录,其中包含名为file1.txt、file2.txt、file3.txt的文件,你可以使用ll file*.
命令来列出所有file在前的文件。这里的file*就表示匹配任何以file在前的文件名。
•🌰4.man、cp指令
man
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法: man [选项] 命令
常用选项
-k | 根据关键字搜索联机帮助 |
num | 只在第num章节找 |
-a | 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。 |
解释一下,手册分为8章:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
cp
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:
-f | 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在 |
-i | 或 --interactive 覆盖文件之前先询问用户 |
-r | 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理 |
-R | 或 --recursive递归处理,将指定目录下的文件及子目录一并处理 |
举例1:
举例2:
举例:
注意:当使用cp srcfile / srcdst时,会把指定的文件,拷贝到目录内部。
• ✨SumUp结语
到这里本篇文章的内容就结束了,本节介绍了Linux的部分常见的基本指令。Linux的学习大家一定要自己动手,把命令敲一遍。Linux的命令很多,大家需要不断积累。希望大家能够认真学习,打好基础,迎接接下来的挑战,期待大家继续捧场~💖💖💖