Linux系统编程学习 NO.2 ——环境配置和基础指令的学习

news/2025/3/31 10:24:29/

操作系统根据使用方式分类

操作系统按照使用类型可分为图形化操作系统和指令操作系统。图形化操作系统的本质其实也是根据指令来操作的。指令更贴近操作系统的底层。而我在学习Linux系统编程时,采用命令行的方式来学习。
在这里插入图片描述
补充一个小知识:早期命令行操作系统的输入设备一般是键盘,而图形化界面操作系统的出现带来另一个输入设备,即鼠标。所以键盘鼠标不是一开始就一起出现的,是因为图形化界面操作系统的出现,衍生出了对于鼠标这一输入设备的需求

Linux学习的环境配置

1、裸机安装Linux或双系统学习(极不推荐)
2、配置Linux虚拟机(较不推荐)
3、使用云服务器(推荐)

云服务器学习

1、购买云服务器,选择最低配置即可。建议可以几个小伙伴何用一个,只是学习用途绝对是没有问题的。需要注意的是第一次登录需要重置root账户的密码
在这里插入图片描述

2、使用本地终端或者第三方远程登录软件如xshell来登录云服务器。
3、推荐使用用户账户来进行学习,这样可以模拟未来工作的使用场景,学习效果会更好。

登录云服务器指令

ssh 用户名@云服务器IP地址

如何增加新用户

添加加新用户指令

adduser 用户名

设置新用户密码指令

passwd 密码

在这里插入图片描述

删除用户

如果你的小伙伴不仅白蹭你的云服务器还对你破口大骂,这是你气不过想移除他的账号你可以这么做

userdel -r 用户名

Linux基本指令

指令的概念

Linux指令是Linux操作系统中可执行的命令,用于在命令行界面或终端窗口中执行各种操作,例如文件管理、文本编辑、进程管理、网络设置等等。Linux指令通常是由一个单词或多个单词组成的命令,可以带有参数和选项,以实现不同的功能。

1.ls指令

指令功能:对于目录,ls指令列出该目录下所有子目录和文件。对于文件,将列出文件名以及其他文件信息。
语法 :ls [选项] [目录或文件]
常用选项

-a 列出目录下所有文件,包括以.开头的隐含文件。
-d 将目录像文件一样显示,而不是显示其下的文件。如ls -d 指令目录
-i 输出文件的i节点的索引信息。如ls -ai 指令文件。
-k 以k字节的形式表示文件的大小。ls -alk 指定文件。
-l 列出文件的详细信息。
-n 用数字的UID,GID 代替名称。
-F 在每个文件名附上一个字符用于说明该文件的类型,"*“表示可执行普通文件;”/“表示目录;”@“表示符号链接;”|“表示FIFOs;”="表示套接字(sockets)。(目录类型自动识别)
-r 对目录反向排序
-t 以时间排序
-s 在文件名后面输出该文件的大小(大小排序)
-R 列出所有子目录下的文件(递归)
-1 一行只输出一个文件。

举例演示

ls -l 
ll

ls -l 等价于ll。这两条指令是一样的。
在这里插入图片描述
当然还可以拓展衍生出一些命令组合使用具体大家可以动手试试。我这里简单举例两个。

ll -a 列出当前目录下所有文件以及详细信息
ll -s 列出文件的详细信息和文件的大小

在这里插入图片描述

2.pwd指令

指令功能:显示用户当前所在的目录
语法:pwd
常用选项:无选项

举例

在这里插入图片描述
这里拓展一个小指令,即whoami指令,用于查看当前用户信息。
在这里插入图片描述

3.cd指令

Linux磁盘分区

在介绍这个指令之前,先介绍一下Linux系统磁盘文件分区的概念。Linux的磁盘目录结构一定是一颗多叉树。所以对于文件的增删查改,本质上就是对这颗多叉树的增删查改。
在这里插入图片描述
/分区,即根目录。存放所有文件和目录。home目录就是根目录下的一个子目录。用于存放用户的个人数据和配置文件。

绝对路径和相对路径

通常访问一个文件都是需要路径来进行定位的。路径定位文件具有唯一性。

绝对路径

绝对路径是指从文件系统的根目录开始描述文件或目录的路径。它包含完整的路径信息,从根目录开始一直到文件或目录的位置。在不同的操作系统中,绝对路径的表示方式可能有所不同。在Windows系统中,一个典型的绝对路径可能是:C:\Users\Administrator\Desktop\example.txt,其中C:\是根目录,Users是一级目录,Administrator是二级目录,Desktop是三级目录,example.txt是文件名。在Unix或Linux系统中,一个典型的绝对路径可能是:/home/user/example.txt,其中/表示根目录,home是一级目录,user是二级目录,example.txt是文件名。

相对路径

相对路径是指文件或目录相对于当前工作目录的路径。它不是从根目录开始的完整路径,而是从当前目录开始的路径。在命令行或代码中使用相对路径时,它们通常以“.”(表示当前目录)或“…”(表示上级目录)开头。相对路径可以方便地在同一文件夹或子文件夹中引用其他文件。

小结

绝对路径较长,通常用于配置固定文件等场景使用。
相对路径通常用于命令行输入使用。

在这里插入图片描述
指令功能:改变当前工作目录,将当前工作目录改变到指定的目录下。
语法:cd 目录名

举例演示

cd 目录名

在这里插入图片描述

cd .. 返回上级目录

在这里插入图片描述
当返回到根目录下,cd… 便无法再改变当前目录。

cd /home/user 绝对路径

在这里插入图片描述

cd ./dir1 相对路径

在这里插入图片描述

cd ~ 进入家目录

在这里插入图片描述

cd - 返回最近访问的目录

在这里插入图片描述

4.touch指令

指令功能:touch命令参数可更改文档或目录的时间日期,包括存取时间和更改时间,或者新建一个不存在的文件。
语法:touch [选项] [文件]
常用选项

-a 或者–time = atime或–time=use只更改存取时间。
-c 或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数负责解决BSD版本touch指令的兼容性问题。
-m 将–time=mtime 或–time=modify 只改动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。

距离演示

touch 文件

在这里插入图片描述

5.mkdir指令(重要)

指令功能:在当前目录下创建一个目录。
语法:mkdir [选项] [目录名称]
常用选项

-p 即-parents 可以是一个路径的名称。此时若路径中的某些目录尚不存在,加上本选项后,系统将自动创建那些尚不存在的目录,即一次创建多个目录。

举例演示

创建一个新目录
mkdir 目录名称
递归创建多个目录
mkdir -p 目录名称/目录名称/...

在这里插入图片描述

空目录需要占据存储空间吗

空目录其实是需要占据存储空间的。这是因为文件其实是有两个部分组成,即文件内容和文件信息。虽然空目录的没有文件内容,但是空目录依然有文件信息。例如创建的时间、目录的路径等都是文件的信息数据,是数据需要占据存储空间的。

文件 = 文件内容 + 文件属性

文件的操作

在前面的语言编程学习里,大部分接触的文件操作其实是对文件内容的操作,如写一个打印hello world程序。本质是对文件内容的操作,当然,文件属性也是可以操作的。如控制文件的读写属性。

文件操作 = 对文件内容操作 or 对文件属性的操作

6.rmdir指令和rm指令(重要)

rmdir是一个与mkdir相对应的指令。rmdir适用于删除空目录的指令。rm是可以同时删除目录或者文件的指令。
rmdir指令语法:rmdir [选项] [目录名称]
rmdir适用对象:具有当前目录操作权限的所有使用者

rmdir常用选项

-p 当子目录被删除后,如果父目录也变成空目录的haul,就连带父目录一起删除

举例演示

在这里插入图片描述
rm指令语法:rm [选项] [目录名称]
rm适用对象:所有使用者

rm常用选项

-f 即使文件属性为只读(即写权限保护),也直接删除。
-i 删除前逐一询问确认。
-r 递归删除目录以及其下所有文件

举例演示

在这里插入图片描述


http://www.ppmy.cn/news/71771.html

相关文章

实现Fast sigmoid和Softmax

Sigmoid 函数介绍 Sigmoid 函数(Logistic 函数)是神经网络中非常常用的激活函数,它的数学表示如下: 由于 e x e^x ex幂运算是非常耗时的计算,因此尝试通过替换sigmoid中的 e x e^x ex运算,来提高运行效率,同…

JSP自动排课系统(源代码+论文+开题报告)

计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多…

“探索C++非质变算法:如何更高效地处理数据“

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段>——目标Windows,MySQL,Qt,数据结构与算法,Linux,多线程&…

Kangas:计算机视觉中的Pandas

介绍 在计算机视觉领域,Kangas是一种越来越受欢迎的工具,用于图像数据处理和分析。类似于Pandas如何改变数据分析人员处理表格数据的方式,Kangas对计算机视觉任务也起到了同样的作用。 Kangas是Comet ML开源的工具,用于探索、分析…

Git——C站最详细的Git教程,一篇学会Git(window\linux通用)

Git——C站最详细的Git教程,一篇学会Git(window\linux通用) 文章目录 Git——C站最详细的Git教程,一篇学会Git(window\linux通用)Git简介Git作用为什么要进行源代码管理?Git的诞生Git管理源代码特点Git操作流程图解 工作区暂存区和仓库区工作区暂存区仓…

modbus协议与nodejs modbus-serial实现

nodejs可通过modbus-serial库来实现modbus协议 npm install modbus-srial 安装完后在examples目录下有例子说明如何使用,本文主要讲述作为客户端的使用方式。 polling_RTU是使用485串口来实现modbus通信, polling_TCP和 polling_UDP则使用TCP/UDP来实现…

深度学习中关于图像分类的设计

目录 一、前言 二、项目介绍 三、项目展示 四、项目经验分享 一、前言 深度学习是一种基于人工神经网络的机器学习技术,通过多层非线性变换来学习数据的高级抽象表示。深度学习在图像、语音、自然语言处理等领域都有广泛应用。深度学习的优点是可以处理大量数据…

AI 生成第6篇测试文章:用例编写指南

背景 在软件开发中,用例是描述系统如何与用户及其他系统交互的通用模型。用例可以帮助开发人员更好地理解和设计软件系统,同时也可作为系统的文档。因此,在编写用例时需要非常注意内容的细节和质量。 用例需要包含的内容 在编写用例时&…