Linux-Linux初识与基础指令

目录

1.Linux初识

1.1Linux课程介绍

1.2Linux的发展

1.3Linux版本

1.4Linux软件的安装和配置

1.5Linux的用处

2.Linux基础指令

2.1ls指令

2.1.1-l选项

2.1.2-a选项

2.2pwd指令

3.总结


1.Linux初识

1.1Linux课程介绍

Linux分为以下两部分:Linux系统--理论+实践,Linux网络--理论+实践。

Linux配置环境和语言:刚开始,配置环境是:Centos+vim+gdb,使用语言是C语言;到课程中后期配置环境:Ubuntu+VsCode,使用语言是C++。

提示:C++课程部分我已经学完,后面会把博客补上,前期的课程还是比较多的,所以这里先说一下以便后续的准备。

1.2Linux的发展

要了解Linux,先要理解一下操作系统,操作系统在电脑上一般是Windows,苹果,这两个主流的操作系统以及我们现在学的Linux也是一种操作系统,这些操作系统必须具有以下特点:更高效,更稳定,更安全。

Linux是开源项目,开源本质:发现问题且无利益冲突,相对于其他的闭源项目,Linux具有更高的安全性,因为开源代表它会有更多人维护它,从而有更大的优势!

那Linux为什么不被广泛使用?

主要原因是:(1)Linux比苹果晚;(2)Linux不是商业公司推动的,而是由开源组织推动。次要原因是:Linux并没有做出太多的图形化界面,在Windows和苹果上,我们所看到的图标这些都是图形化界面;因为没有图形化界面,所以Linux系统并不能吸引用户,而苹果为了赚钱,做的图形化界面很好,吸引了更多用户使用。

实际上,Linux不做这个图形化界面就是因为图形化界面用处不大,有资源浪费,而Linux只要保证有人用就行,所以综合来看Linux不被人了解也是很正常的!

为什么我们要学习Linux呢?

主要是为了找工作,因为企业几乎一定会选择Linux系统的!开源的Linux大多是免费的,而且Linux还稳定并且安全,否则如果用那些其他的操作系统,用户数据可能就被泄漏了。

1.3Linux版本

(1)商业化发行版:CentOS(大部分企业),ubuntu(学校、学生学),主要是生产厂商对操作系统进行定制,操作系统源代码底层差不多一样,只是CentOS匹配的人是大部分企业,而ubuntu则为学生罢了,所以我们用的发行版本在一定程度上是类似的,我们下载的镜像以配置后面的环境与其他的版本也类似。

(2)Linux的技术发行版:我们可以在Linux官网看:https://www.kernel.org,打开后界面这样:

在官网中可以下载各个版本的源代码,建议下载这个链接的源代码:

https://www.kernel.org/pub/linux/kernel/v2.6/

这个链接里面有很多种源代码,不过这些我们先不着急下载。

如果要下载的话,建议用不是最新的版本,因为最新版本可能问题比较多(有些用户使用后会提出问题,然后会改进代码这种,所以等他们把问题解决差不多再下最好,也就是说越老版本越稳定)!

1.4Linux软件的安装和配置

Windows是支持双系统的,所以各位可以试着搜一下双系统的安装方法,但是这个方法是不建议使用的,因为它可能导致各种问题,包括但不限于以下几种(deepseek搜索结果,请仔细甄别):

所以这种方式非常不建议使用!不过如果真的想尝试的,可以自己去网上搜索教程。

第二种就是用vmware虚拟机,也可以使用vitualbox+操作系统的镜像(CentOS71 ubuntu 20.04和22.04),这个对电脑的要求还是不低的,而且用虚拟机的话,后面做项目可能会导致电脑很卡,下载时电脑也比较卡,而且之前我尝试过下载虚拟机,差不多花了7个小时时间(没成功),主要是镜像下载起来很麻烦,所以需要使用虚拟机这种方式不仅需要电脑好,可能还需要有充足的时间,不过大部分电脑还是能装虚拟机的。综合来看,虚拟机也是一个比较推荐的方式。

第三种就是使用云服务器,这种是最推荐的一种方式,这个我不方便透露太多细节,需要的可以自己去搜如何安装,这种方式是一个对电脑性能要求不高且安装速度比较快的一种方式,但是可能需要花一点钱,不过折算下来一年也不会多少。

以上的方式,最终要用Linux登陆:XShell,这个需要各位搜索XShell并安装最新版本的XShell,配置好环境后以后就只用在XShell上打开就行,经过上述步骤后就可以看到如下界面了:

安装的具体细节我这里不做过多讲解,只提供方式。

我的是用云服务器,使用的镜像是ubuntu 22.04,如果是其他的Linux版本(CentOS)可能会在运行结果上有差别,但是差别不大。

1.5Linux的用处

在Linux的课程介绍提到过,Linux是很多公司使用的操作系统,所以我们为了找工作需要学它,以下是Linux的用处:

1.进行命令行操作:

cpp 复制代码
root@lavm-dzlb5y1t8a:~# 

这是命令行,我们在后面输入字符,并按回车就可以查看该命令行运行的结果。如下示例是我创建一个名为code.txt的文件后删除code.txt的代码:

其中我们知道有root@......这一行代表命令行,而没有这个的则代表输出结果,其中root@......这一行是自动写出来的,#后面则是我执行的操作。

所以这是我们程序员使用Linux比较多的地方:命令行操作。

2.支持编程

比如我可以在Linux里面运行C语言代码,类似这样:

我们敲下回车后会进入以下界面:

我们就可以在这个界面编写C语言代码了,比如,我们输入以下代码:

cpp 复制代码
#include<stdio.h>
int main() 
{
printf("hello Linux\n");
return 0;
}

在这操作之后,我们按下Ctrl+X后再按Y,再按回车即可回到原来界面:

我们再输入gcc code.c回车并./a.out回车会有如下结果:

其实Linux确实可以运行其他语言,只是默认是C++而已,但是需要安装对应语言的安装包,这个感兴趣的可以自己去了解一下,因为这里涉及的知识点太多了,不方便讲。

所以Linux也是支持编程的,我们之后做项目可能会用到。

3.Linux支持系统和网络

我们输入whoami,按下回车就会有root这个结果:

这个代表我们当前用什么账号登录的该Linux系统,其实我们还可以在XShell新增用户,也就是说后面我们可以同时拥有很多账号,但是这个操作在我们日常也不怎么使用,不过我们在后续的学习过程中需要了解这个东西的用法。

2.Linux基础指令

2.1ls指令

语法:ls 选项 目录或文件

其中ls代表命令,\[\]代表这个东西可有可无,也就是说,我可以直接执行ls操作;也可以ls后接选项而不接目录或文件;还可以ls后接选项又接目录或文件。

功能:对于目录,该命令列出目录下的所有子目录与文件;对于文件,将列出文件名以及其他信息;若ls后没接任何目录或文件,则列出当前所处目录下的所有文件。

比如,我们在没有新建文件12.12的时候,执行ls操作,回车,得到如下结果:

这些代表我所在目录下的所有文件,但是如果我新建一个code.c的文件,再执行ls操作:

如果我们进行ls操作后接code.c文件,则会出现如下结果:

这个只列出了文件名,没有其他的信息,但是我们可以接一些其他选项从而能显示出其他信息。

不过在这之前我们可以先建一个目录后,再进入目录创建一部分文件演示另外一个功能:

先别管这些操作的具体含义,mkdir代表我创建了一个名字为12.12的目录,然后cd /root/12.12代表我进入到12.12这个目录。

如果我们直接ls的话,那么就会出现如下结果:

因为12.12这个是目录,而我们没有在它下面创建任何一个文件或者目录,所以,连一行都不会显示!

按照刚刚的方法,我们可以再创建名为hello的目录和名为code.c的文件:

这样我们可以发现ls就有结果了,因此我们还会发现另外一个特点:普通文件会显示成白色(无色),而目录会显示成蓝色。

那么,如何删除这些文件和目录,并回退到之前的操作呢?

我这里就只写代码了,这些操作后面会讲解的:

通过这些操作我们可以发现,在12.12这一个目录下已经不存在任何子目录或者文件了。

如果想回退到之前的路径(位置),可以这样操作:cd /root,我们可以通过ls来查看是否真的回退了:

因此我们又可以推出另外一个结论:12.06、12.12、code.c、d1都是root目录下的文件或子目录,也就是说,root也是目录!

接下来我们就可以讲ls后面的常用选项了,记住是:常用选项!不是全部选项!

2.1.1-l选项

用处:对于文件,列出文件的详细信息;对于目录,则列出该目录下所有文件以及子目录的详细信息。

例如,我们可以进行如下操作ls -l,结果为:

我们当前所处位置是在/root,这里能列出root目录下的所有文件和子目录的详细信息,那么如果不在该位置如何查询呢?

下面例子中,我们先到/root/12.12然后再列出/root的文件的详细信息的操作:

也就是说其实我们完全可以在ls -l操作后接一段路径(即文件或目录的位置),就可以直接得到该文件或者子目录的详细信息。

如果我们接一串文件的路径呢?

下面示例展现了当我们接/root/code.c文件后的结果:

可以看出,与之前的目录输出结果不同,它还会列出该文件的文件名。

实践讲完了,我们可以了解一下理论知识。

如果我们在Windows下新建一个空文件,那它会不会占据磁盘空间?

新建一个文件,显示为0kB,它代表的是文件的内容为空,如果我们理解它不占空间的话,那么实际上,我们刚刚ls -l /root/code.c是不会显示出任何内容的。也就是说,如果说文件只包含文件内容的话,那么这个说法是不对的!

所以说我们现在要重新再理解一下文件这个名字的含义:

文件名、文件修改时间、文件类型等等,我们都可以统称为文件属性,在我们创建文件时,这些文件属性就自动包含进去了,而在计算机中 属性 也算数据,所以,属性也要占据磁盘空间!换句话说,文件=文件内容+文件属性。

之后我们会对文件进行写入,追加,删除这些操作,而这些操作有两类:(1)对文件内容进行操作;(2)对文件属性进行操作。后面的touch指令会对文件属性进行操作,而cp和echo指令会对文件内容进行操作。

2.1.2-a选项

用处:列出目录下的所有文件,包括以.开头的隐藏文件。

比如,我们可以对/root进行ls -a操作:

我们需要先cd /root回到/root这个路径下,然后进行操作;或者直接ls -a /root也可以:

那么,如果我们不小心对文件进行-a操作会怎么样?

以下是我们对/root/code.c进行ls -a的操作后的结果

可以看到,它会输出该文件的路径。

如何理解-a操作?

-a可以理解成-all,也就是说-a可以列出所有文件,如果路径本身是文件,那么就列出该文件的(绝对)路径。

后面还有一些指令需要前置知识,所以等到合适的时机会进行讲解的,以后的指令也基本这样

2.2pwd指令

语法:pwd 选项

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

如:我们输入pwd有:

若我们进入/root/12.12则有:

pwd后面也可以接选项,但是都不常见,所以在这里就不多说了,后面用到再说!

3.总结

Linux是一个比较难学的一个东西,它比较抽象,但是只要肯努力,Linux一定会被你们拿下的!

相关推荐
FoldWinCard9 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
零涂毕业设计11 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud12311 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质11 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
SakitamaX11 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.11 小时前
Linux系统管理
linux·运维
阿龙的工作记录12 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手12 小时前
Linux的基本指令
linux·运维·服务器
hkj880813 小时前
Ubuntu 切换java版本
java·linux·ubuntu
撩得Android一次心动14 小时前
Linux编程笔记3【个人用】
linux·笔记