Linux系统编程--初识Linux

news2024/11/26 4:31:40

目录

一、相关概念

1、Unix系统

2、操作系统

操作系统的分类:

流行的操作系统:

3、Ubuntu系统及特点

二、Ubuntu安装

三、Linux目录

/根目录

路径分类:

四、shell指令

1、命令行提示符:

2、指令

2.1命令基本的操作:

2.2基本命令:

用户管理类命令

文件目录相关命令

1、ls

2、cd

3、mkdir

4、touch

5、rm

6、cp

7、mv

8、链接 ln

系统管理命令

网络管理命令

其他命令

软件安装

五、可传参程序


一、相关概念

1、Unix系统

Unix系统是一个具有深远影响的操作系统,它的核心特点和设计理念对整个计算机行业产生了重要影响。以下是Unix系统的主要特点和影响的总结:

  1. 多用户和多任务:Unix系统支持多个用户同时使用,允许并发执行多个任务,这使得它非常适合于服务器和多用户工作环境。

  2. 层次文件系统:Unix的文件系统以/为根目录,采用层次结构,使得文件和目录的组织变得直观和有序。

  3. 命令行界面(CLI):Unix的CLI功能强大,用户可以通过命令行执行复杂的操作,这提高了效率并允许自动化。

  4. 脚本编程:Shell脚本允许用户编写自动化脚本,简化了任务的批量处理和系统管理。

  5. 网络通信:Unix从设计之初就支持网络通信,特别是TCP/IP协议,使其成为网络服务器的理想选择。

  6. 可移植性:Unix系统的可移植性设计使其能够跨不同硬件平台运行。

  7. 开源:许多Unix变种如Linux是开源的,这促进了广泛的社区支持和定制化开发。

  8. 管道和过滤器:Unix的管道操作允许将多个命令串联起来,进行复杂的数据处理。

  9. 程序和工具:Unix提供了丰富的标准程序和工具,增强了其功能性。

  10. 权限系统:Unix的权限系统确保了系统的安全性,通过用户和组的概念来控制对资源的访问。

  11. 模块化设计:Unix的设计哲学推崇模块化和“一切皆文件”的理念,这使得系统易于理解和维护。

  12. Unix哲学:Unix的设计哲学强调构建小而专注的工具,这些工具可以组合使用以解决复杂的问题。

  13. 变种和应用:Unix有许多变种,如Linux、Solaris、AIX和HP-UX等,这些变种在服务器、工作站和嵌入式系统中得到了广泛应用。

2、操作系统

操作系统(Operating System,简称OS)是计算机系统中最基本的系统软件,负责管理计算机硬件资源并为用户和其他软件提供运行环境。操作系统的主要功能和特点包括:

  1. 进程管理:操作系统负责创建、调度和终止进程。它允许多个进程同时运行,通过分时或多核处理器实现。

  2. 内存管理:操作系统管理计算机的内存,包括分配和回收内存空间,以及决定哪些程序应该被加载到内存中。

  3. 文件系统管理:操作系统提供文件和目录的组织结构,允许用户存储、检索和管理数据。

  4. 设备管理:操作系统控制和管理连接到计算机的各种硬件设备,如打印机、键盘、鼠标、硬盘等。

  5. 用户界面:操作系统提供用户界面,允许用户与计算机交互。这可以是命令行界面(CLI)或图形用户界面(GUI)。

  6. 网络通信:操作系统支持网络协议,允许计算机与其他设备通信和数据交换。

  7. 安全性:操作系统提供用户认证、权限控制和加密等安全特性,以保护系统和数据不受未授权访问。

  8. 系统维护:操作系统负责系统的维护任务,如性能监控、错误检测和恢复。

  9. 资源分配:操作系统公平地分配计算机资源,如CPU时间、内存空间和磁盘I/O,给不同的程序。

  10. 抽象:操作系统为应用程序提供抽象层,隐藏了底层硬件的复杂性。

  11. 标准化:操作系统提供一组标准化的接口和API,使得应用程序开发更加方便。

  12. 可移植性:好的操作系统设计允许应用程序在不同的硬件平台上运行,而无需或仅需很少修改。

  13. 系统调用:操作系统提供系统调用接口,允许应用程序请求操作系统服务。

  14. 错误处理:操作系统能够处理硬件和软件错误,并采取适当的恢复措施。

  15. 多任务和多用户支持:现代操作系统支持多用户和多任务,允许多个用户和程序同时运行。

操作系统的分类:
  • 单用户操作系统:如MS-DOS、Windows 95/98等,主要面向个人计算机。
  • 多用户操作系统:如Unix、Linux等,支持多个用户同时使用。
  • 实时操作系统:如VxWorks、QNX等,对时间敏感,用于嵌入式系统。
  • 分布式操作系统:如Amoeba、ChorusOS等,管理多个物理或逻辑上分离的计算机。
  • 网络操作系统:如Windows Server、NetWare等,专注于网络功能和多用户访问。
流行的操作系统:
  • Windows:微软开发的一系列操作系统,广泛应用于个人计算机和服务器。
  • macOS:苹果公司开发的操作系统,用于Mac电脑。
  • Linux:一个开源的类Unix操作系统,有许多不同的发行版,如Ubuntu、Fedora等。
  • Unix:一系列多用户、多任务的操作系统,如Solaris、AIX、HP-UX等。
  • Android:基于Linux的操作系统,主要用于移动设备和嵌入式系统。

操作系统是计算机系统的核心,对整个计算机行业的发展起到了基础性的推动作用。

3、Ubuntu系统及特点

Ubuntu是一个流行的Linux操作系统,以其用户友好、免费开源、社区支持和安全性等特点而闻名。以下是Ubuntu系统的关键特点和优势的总结:

  1. 易用性:Ubuntu的图形用户界面(GUI)设计直观,易于安装和使用,适合新用户和非技术用户。

  2. 免费和开源:作为一个开源项目,Ubuntu允许用户自由使用、修改和分发,其源代码对所有人开放。

  3. 社区支持:拥有活跃的社区,用户可以从中获得帮助,社区成员积极贡献软件包和文档。

  4. 定期更新:提供包括安全更新和新软件在内的定期系统更新,有LTS(长期支持)和非LTS两种发布类型。

  5. 丰富的软件库:用户可以通过Ubuntu软件中心和APT等命令行工具轻松安装和更新软件。

  6. 桌面环境:最初使用Unity桌面环境,后来转为GNOME,提供了一致的用户体验。

  7. 安全性:包括基于AppArmor的强制访问控制系统和定期的安全更新,确保系统安全。

  8. 云集成:与云服务如AWS和Azure紧密集成,便于云部署。

  9. 硬件支持:支持广泛的硬件平台,包括个人计算机、服务器和嵌入式系统。

  10. 软件包管理:支持Snap和Flatpak等通用软件包格式,方便用户安装和运行应用程序。

  11. 官方变体:如Kubuntu和Xubuntu,提供不同的桌面环境选择,满足不同用户需求。

  12. 开发者友好:支持多种编程语言和开发工具,是许多开发者首选的开发环境。

  13. 多媒体支持:提供良好的音频和视频播放支持,以及图形和视频编辑工具。

Ubuntu的开放性和社区驱动的开发模式,以及其对云集成和多种硬件的支持,使其成为一个灵活、创新且不断进步的平台。它不仅适用于桌面计算,也广泛应用于服务器、云计算和物联网设备。

二、Ubuntu安装

三、Linux目录

目录为树形结构

最顶层结构:目录-->根目录-->用'/'表示

根目录的 . 和 .. 都代表自身

/根目录

路径分类:

        绝对路径:起始点为根目录 “/”

                        例如:/usr/local/bin 就是绝对路径        

        相对路径:起始点为当前目录

绝对路径优点是指向系统的绝对位置,不受其他因素影响

四、shell指令

1、命令行提示符:

2、指令


指令是具有特殊功能的程序,介于用户和操作系统的核心程序间间的一个接口

学习指令可以快速批量处理,Linux界面简洁,可以快速操作对应的命令达到自己的效果

2.1命令基本的操作:

格   式:指令 [选项] [文件名]

快捷键:

        命令补全:Tab

        通配符:*(代表所有)、?(表示该位置可以是任意一个单个字符)

2.2基本命令:
用户管理类命令

文件目录相关命令
1、ls

功能:显示当前目录的文件列表

格式:ls + 选项 +文件

2、cd

功能:切换至工作目录

格式:cd+文件

3、mkdir

功能:创建目录

格式:mkdir+选项+文件

4、touch

功能:创建文件

格式:touch+选项+文件

5、rm

功能:删除一个目录的一个或者多个文件目录

格式:rm+选项+文件

6、cp

功能:将一个或者多个源文件或者目录复制到指定的目的文件或目录

格式:cp+选项+源文件+目录

7、mv

功能:将一个或者多个源文件或者目录移动到指定的目的文件或目录

格式:mv+选项+源文件+目录

8、链接 ln

功能:设置链接

系统管理命令

网络管理命令

其他命令

软件安装

五、可传参程序

可传参主程序

#include <stdio.h>

int main(int argc, char* argv)//命令行参数的个数、记录命令行的参数
{
    
    return 0;
}

无传参主程序
#include <stdio.h>

int main(void)//
{
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1660062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Meta FAIR: 深层网络不合理的低效性

这篇文章的标题"The Unreasonable Ineffectiveness of the Deeper Layers"巧妙地呼应了著名物理学家尤金维格纳在1960年发表的一篇论文"数学在自然科学中不合理的有效性"(The Unreasonable Effectiveness of Mathematics in the Natural Sciences)。维格纳…

ubuntu22.04服务器docker-compose方式部署ldap服务

一&#xff1a;系统版本 二&#xff1a;部署环境 节点名称 IP 部署组件及版本 配置文件路径 机器CPU 机器内存 机器存储 Ldap 10.10.10.111 self-service-password:latest phpldapadmin:latest openldap:latest openldap:/data/openldap/config phpldapadmin&#x…

梅兰日兰NSJ400N断路器NSJ400N可议价

梅兰日兰 NSJ400N 3 极 400 安培 600 伏交流电 紧凑型断路器 制造商的原始标签 脱扣单元&#xff1a;LS 功能 –&#xff08;长时间和短时间&#xff09; 负载侧凸耳 中断额定值&#xff1a;65kA 240 Vac 35kA 480 伏交流电压 18kA 600 伏交流电压 &#xff08;外观可能与照…

01、vue+openlayers6实现自定义测量功能(提供源码)

首先先封装一些openlayers的工具函数&#xff0c;如下所示&#xff1a; import VectorSource from ol/source/Vector; import VectorLayer from ol/layer/Vector; import Style from ol/style/Style; import Fill from ol/style/Fill; import Stroke from ol/style/Stroke; im…

【SpringBoot整合系列】SpringBoot整合RabbitMQ-消息过期(死信队列和延迟队列)

目录 业务场景传统轮询消息队列完整版 默认情况TTL&#xff08;消息的有效期&#xff09;TTL 的设置有两种不同的方式单条消息过期队列消息过期特殊情况 死信队列概述应用场景产生原因原理图死信交换机死信队列实现一下 延迟队列背景定时任务&#xff1f;延迟队列实现思路代码 …

Spring @Repository 注解

Spring 的项目严重依赖注解。 Repository 注解 在Spring2.0之前的版本中&#xff0c;Repository注解可以标记在任何的类上&#xff0c;用来表明该类是用来执行与数据库相关的操作(即dao对象)&#xff0c;并支持自动处理数据库操作产生的异常 在Spring2.5版本中&#xff0c;引…

校园网拨号上网环境下多开虚拟机,实现宿主机与虚拟机互通,并访问外部网络

校园网某些登录客户端只允许同一时间一台设备登录&#xff0c;因此必须使用NAT模式共享宿主机的真实IP&#xff0c;相当于访问外网时只使用宿主机IP&#xff0c;此方式通过虚拟网卡与物理网卡之间的数据转发实现访问外网及互通 经验证&#xff0c;将centos的物理地址与主机物理…

【概率论基础】 一篇文章缕清概率论常见概念关系

碎碎念&#xff1a;再写CSDN之前有一小段时间写数模公众号的经历&#xff0c;但是公众号看的人实在太少了&#xff0c;而且排版和公式、代码编辑都没有CSDN这么方便&#xff0c;所以坚持一算时间就没有更新了。公众号大多写的是概念性的基础&#xff0c;稍加修改搬到咱们的主战…

《二十二》Qt 音频编程实战---做一个音频播放器

1.UI界面制作 作为一个音乐播放器&#xff0c;最基础的肯定就是播放、暂停、上一首以及下一首&#xff0c;为了使这个界面好看一点&#xff0c;还加入了音量控制、进度条、歌曲列表等内容&#xff0c;至于这种配色和效果好不好看&#xff0c;我也不知道&#xff0c;个人审美一如…

C语言初阶(6) - 指针

目录 1.指针是什么&#xff1f; 2. 指针和指针类型 2.1 指针 - 整数 2.2 指针的解引用 3. 野指针 3.1 野指针成因 3.2 如何规避野指针 4. 常量指针和指针常量 (const) 4.1.常量指针 4.2.指针常量 5. 指针运算 5.1 指针-整数 5.2 指针-指针 5.3指针的关系运算 6.…

离线使用evaluate

一、目录 步骤demorouge-n 含义 二、实现 步骤 离线使用evaluate: 1. 下载evaluate 文件&#xff1a;https://github.com/huggingface/evaluate/tree/main2. 离线使用 路径/evaluate-main/metrics/rougedemo import evaluate离线使用evaluate: 1. 下载evaluate 文件&…

Android 百度语音识别(详细步骤+源码),京东android面试题

改好之后&#xff0c;请注意&#xff0c;每个人都是不一样&#xff0c;你如果发现你创建的应用的配置的值和我创建的是一模一样的&#xff0c;你马上去百度提BUG&#xff0c;他们的程序员要就要下岗了~ OK&#xff0c;现在配置也完成了&#xff0c;接下来就是使用了。 ③ 使用…

五一超级课堂---Llama3-Tutorial(Llama 3 超级课堂)---第四节Llama 3 高效部署实践(LMDeploy 版)

课程文档&#xff1a; https://github.com/SmartFlowAI/Llama3-Tutorial 课程视频&#xff1a; https://space.bilibili.com/3546636263360696/channel/collectiondetail?sid2892740&spm_id_from333.788.0.0 操作平台&#xff1a; https://studio.intern-ai.org.cn/consol…

浅谈现代消息队列与云存储

一、前言 1970 年代末&#xff0c;消息系统用于管理多主机的打印作业&#xff0c;这种削峰解耦的能力逐渐被标准化为“点对点模型”和稍复杂的“发布订阅模型”&#xff0c;实现了数据处理的分布式协同。随着时代的发展&#xff0c;Kafka&#xff0c;Amazon SQS&#xff0c;Ro…

charts3D地球--添加航线

要在地球视角下画出海运路线图 方案 添加 globl 地球创建geo地理坐标系创建canvas对象用于承载地图世界地图this.worldChart//初始化canvas节点let cav = document.createElement("canvas");this.$echarts.registerMap("world", geoJson);this.worldChart…

AVL树的原理及其实现

文章目录 前言了解AVL树AVL树的特点AVL树的节点调整方案右单旋为什么要右单旋呢&#xff1f;右单旋代码 左单旋为什么要左单旋&#xff1f;左单旋代码 左右双旋左右双旋之后平衡因子的情况左右双旋代码实现 右左双旋右左双旋代码&#xff1a; 简单测试 前言 回顾我们对于二叉搜…

保研面试408复习 4——操作系统、计网

文章目录 1、操作系统一、文件系统中文件是如何组织的&#xff1f;二、文件的整体概述三、UNIX外存空闲空间管理 2、计算机网络一、CSMA/CD 协议&#xff08;数据链路层协议&#xff09;二、以太网MAC帧MTU 标记文字记忆&#xff0c;加粗文字注意&#xff0c;普通文字理解。 1、…

值得推荐的10+REST API测试工具

什么是API&#xff1f; API是一个软件解决方案&#xff0c;作为中介&#xff0c;使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值&#xff1a; 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码&#xff1b;这些是为移动开…

qml 和 c++类的数据交互

1、 新建一个需要交互的C++类 1)添加QObject头文件 2)添加自QObject的继承 3)添加Q_OBJECT宏 4)使用Q_PROPERTY,定义两个交互的属性,并设置读写的方法和变更属性的信号。 5)添加方法、槽函数和变量 2、在main.cpp中添加实例化对象的QML上下文 1)添加需要QML交互的…

Kubernetes学习-集群搭建篇(一) 搭建Master结点

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Kubernetes渐进式学习-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 集群搭建方式 3. 环境说明 4. 利用kubeadm初始化Ma…