当前位置: 首页 > news >正文

Linux入门篇(一)

Linux

  • 前言
  • Linux初探
    • Linux内核
    • GNU实用工具
      • shell
    • Linux发行版
    • bash shell 基础
      • Linux文件系统
      • Linux文件操作命令

前言

  在阅读诸如docker之类的书的时候,经常碰到Linux的知识。同时,大部分的盲区也是在Linux方面。因此就想稍微了解一下这个广为人使用的操作系统吧。
  众所周知,不经常使用的话,遗忘的速度让我们都惊讶不已呀!现在你去看看你一个月前写的一个项目代码试试(狗头保命!)。因为,由于目前阶段我对Linux使用的需求还不是很大。所以也清楚对于诸多书里边实战的部分,如果我在假期学习了开学也是基本忘记了。因此,我目前是让我对Linux初步有一个了解,而不再是门外汉之类的水平,让我能在其余的技术中不至于被卡壳即可了。(但是,看看还是必要的,看时候翻起来找也方便嘛)

  好了,废话到此!

Linux初探

首先Linux系统大致可以划分为以下四个部分(有的书忽略了GNU,或者严格的说是没有单独列出来吧)

  • Linux内核
  • GNU工具
  • 图形化桌面环境
  • 应用软件

各个部分的协作构成如下图
在这里插入图片描述

Linux内核

内核主要负责以下4个功能

  • 系统内存管理
  • 软件程序管理
  • 硬件设备管理
  • 文件系统管理
  1. 系统内存管理:操作系统内核的主要功能之一是内存管理。内核不仅管理服务器上的可用物理内存,还可以创建并管理虚拟内存(实际并不存在的内存)。
     内核通过硬盘上称为交换空间(swap space)的存储区域来实现虚拟内存。内核在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统以为自己拥有比物理内存更多的可用内存。

  2. 软件程序管理。Linux操作系统称运行中的程序为进程。进程可以在后台运行,也可以在后台运行。内核控制着Linux系统如何管理运行在系统中的所有进程。
     内核创建第一个进程(称为init进程)来启动系统中所有其他进程。当内核启动时,会将init进程载入虚拟内存。内核在启动其他进程时,会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。

  3. 硬件设备管理。内核的另一职责是管理硬件。任何Linux系统需要与之通信的设备都必须在内核代码中加入其驱动程序。驱动程序相当于应用程序和硬件设备的“中间人”,允许内核同设备之间交换数据。目前流行的想Linux内核中插入设备驱动的方法为将设备驱动模块加入内核
     为此,开发人员提出了内核模块的概念。允许在无须重新编译内核的情况下将驱动程序插入运行中的内核。
     Linux将硬件设备视为一种特殊文件,称为设备文件。其大致分为三种:①字符设备文件;②块设备文件;③网络设备文件。

  4. 文件系统管理。不同于其他一些操作系统,Linux内核支持通过不同类型的文件系统读写硬盘数据。除了自有的多种文件系统,Linux还能够读写其他操作系统(比如Microsoft Windows)的文件系统。内核必须在编译时就加入对所有要用到的文件系统的支持。

GNU实用工具

除了由内核来控制硬件设备,操作系统还需要实用工具来实现各种标准功能,比如控制文件和程序。而,Linus的Linux内核和GNU操作系统实用工具结合在一起,产生了一款完成且功能丰富的自由操作系统。
 供Linux系统实用的这组GNU核心工具称为core utilities 软件包。其由三部分构成

  • 文件实用工具
  • 文本实用工具
  • 进程实用工具

其中我们最为熟悉的无疑是其中的交换工具---- shell了。

shell

GNU/Linux shell是一种特殊的交互式工具,为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统中的进程的途径。shell的核心是命令行提示符,负责shell的交互部分,允许用户输入文本命令,然后解释命令并在内核中执行。

  • shell包含一组内部命令,可用于完成复制文件、移动文件、重命名文件、显示和终止系统中正在运行的程序这类操作。除此之外,shell也允许在命令行提示符中输入程序的名称,它会将程序名称传递给内核以启动程序。
  • 也可以将多个shell命令放入文件中作为程序执行。这些文件称作shell脚本。凡是能在命令行中执行的命令都可放入shell脚本中作为一组命令执行。这为创建通常需要执行多个命令的实用工具提供了极大的便利。
  • 在Linux系统中,有相当多的shell可供使用。不同的shell有不同的特性,有些适用于创建脚本,有些则适用于管理进程。所有Linux发行版默认的shell都是bash shell。bash !!!

Linux发行版

我们将完整的Linux系统包称为发行版。大量不同的Linux发行版可以满足你可能存在的各种计算需求。

 大多数发行版是为某个特定用户群定制的,比如商业用户、多媒体爱好者、软件开发人员或者普通家庭用户。每种定制的发行版都包含了支持特定功能所需的各种软件包,比如多媒体爱好者要用到的音频和视频编辑软件,软件开发人员要用到的编译器和集成开发环境(IDE)。
不同的Linux发行版通常分为两类。

  • 完整的核心Linux发行版
  • 特定用途的Linux发行版

如下两张图片分别为常见的完整版和特定用途版

在这里插入图片描述
        图一:完整的核心Linux发行版

在这里插入图片描述
        图二:特定用途的核心Linux发行版

bash shell 基础

GNU bash shell是一个程序,提供了对Linux系统的交互式访问。它是作为普通程序运行的,通常是在用户登录终端时启动。系统启动的shell程序取决于用户账户的配置。(也就是说,我们可以通过这里查看默认启动的shell程序或者更改默认启动的shell程序)
/etc/passwd文件包含了所有系统用户账户以及每个用户的基本配置信息。

  1. 默认的 bash shell 提示符是美元符号($),这个符号表明shell在等待用户输入命令。(不同的Linux发行版会采用不同格式的提示符)。一般这还能提供额外的辅助信息。如当前用户名、主机名。波浪号(~)表明shell会话当前位于主目录中。如Ubuntu中的提示符:
christine@UDesktop:~$
  1. man命令可以访问Linux系统的手册主页。在man命令之后跟上想要查看的命令名,就可以显示相应的手册页。

Linux文件系统

  Linux的路径中不使用驱动器盘符。在Windows中,计算机上安装的物理驱动器的分区决定了文件路径。Windows会为每个物理磁盘分区分配一个盘符,每个分区都有自己的目录结构,用于访问存储在其中的文件。
 而Linux则采用另一种方式。Linux会将文件存储在名为虚拟目录(virtual directory)的单个目录结构中。虚拟目录会将计算机中所有存储设备的文件路径都纳入单个目录结构。
  Linux虚拟目录结构只包含一个称为根(root)目录的基础目录。根目录下的目录和文件会按照其访问路径一一列出,这点跟Windows类似。

这是一个Linux中的文件路径:/home/rich/documents/test.doc

 这表明文件test.doc位于Documents目录,该目录位于rich目录,而rich目录则包含在home目录中。

 要注意两点:①Linux使用正斜线来分隔文件路径中的目录。反斜线是用作反义字符的;尔②文件路径本身并没有提供任何有关文件真实存放在哪个物理磁盘中的信息。

  1. Linux虚拟目录中比较复杂的部分是它如何来协调管理各个存储设备。我们称在Linux系统中安装的第一块硬盘为根驱动器。根驱动器包含了虚拟目录的核心,其他目录都是从那里开始构建的。如下图在这里插入图片描述
  2. Linux会使用根驱动器上一些特别的目录作为挂载点(mount point)。挂载点是虚拟目录中分配给额外存储设备的目录。Linux会让文件和目录出现在这些挂载点目录中,即便它们位于其他物理驱动器中。
      系统文件通常存储在根驱动器中,而用户文件则存储在其他驱动器中,如下图在这里插入图片描述
  3. 在切花目录的时候,cd命令我们应该都是很熟悉的了。其中地址分为绝对地址和相对地址。其中有两个特殊字符可用于相对路径中:①单点号(.),表示当前目录;②双点号(…),表示当前目录的父目录。如使用../etc表示去到该目录的上一级,从中选择etc目录

Linux文件操作命令

1.pwd:显示出shell会话的当前目录,该目录称为当前工作目录
2. ls :①直接使用ls命令显示当前目录下的文件和子目录(不包括隐藏文件)。会按字母进行排序;②ls -F :使用-F选择会在目录名之后添加正斜线,类似地还会在可执行文件之后添加星号(*) ;③ls -a :会显示隐藏的文件。一般隐藏文件是文件名以点号(.)开始的文件;④ls -F -R:可以列出当前目录所包含的子目录中的文件;
3. touch:创建文件
4. 复制文件:cp source destination
5. 文件重命名(移动):在Linux中,重命名文件称为移动。因为在当前目录在,移动到的目的也是该目录,同时文件名变化了。这不就是重命名嘛。mv
6. 删除文件:rm
7. 创建目录:mkdir
8. 删除目录:rmdir。在默认情况下,该命令只删除目录。
9. 查看文件类型:file
10.查看整个文件:cat 。该命令会一次性加载显示全部内容。而more则是可以进行翻页来进行查看。
11. 查看部分文件:tail默认查看文件的末尾10行;head会默认显示文件前10行的内容。

相关文章:

Linux入门篇(一)

Linux前言Linux初探Linux内核GNU实用工具shellLinux发行版bash shell 基础Linux文件系统Linux文件操作命令前言 在阅读诸如docker之类的书的时候,经常碰到Linux的知识。同时,大部分的盲区也是在Linux方面。因此就想稍微了解一下这个广为人使用的操作系统…...

HTTPSHandler SSL Error

我在服务器ubuntu中,尝试使用pip3,但是出现下面的报错 ImportError: cannot import name HTTPSHandler 通过查询资料,发现报错的原因是,该pip3.5中没有安装好openssl. 我尝试在python3.5中使用import ssl, 确实是会显示下面的报错…...

基于Android的高校食堂餐厅配送系统

需求信息: 商家客户端: 1:登录注册:用户可以通过自己的信息进行账号的注册 2:发布菜单:发布自己经营的美食信息 3:用户订单:查看用户的购买订单 4:订单配送:对…...

Java设计模式-02工厂模式

为什么需要工厂模式,其作用什么?如何实现,代码演示解析优缺点。Q1:为什么需要工厂模式?工厂模式的作用(优点)是什么? 解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的…...

AXI-Lite 学习笔记

AXI-Lite 学习笔记 参考 FPGA:AXI_Lite总线基础2-1]、第二节 AXI总线介绍、ZYNQ PL与PS交互专题_哔哩哔哩_bilibili AXI-Lite总线系列1 - 基础知识_哔哩哔哩_bilibili AXI4 介绍 AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主…...

77页智慧城市顶层设计方案

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容:篇幅有限,无法完全展…...

JavaWeb--MavenMybatis基础

JavaWeb--Maven&Mybatis基础1 Maven1.1 Maven简介1.1.1 Maven模型1.1.2 仓库1.2 Maven基本使用1.2.1 Maven 常用命令1.2.2 Maven 生命周期1.3 IDEA使用Maven1.3.1 IDEA配置Maven环境1.3.2 Maven 坐标详解1.3.3 IDEA 创建 Maven项目1.3.4 IDEA 导入 Maven项目1.4 依赖管理1.…...

博客系统--测试用例编写

目录一,整体概览1.1,登录页面测试用例1.2,注册页面测试用例1.3,发布博客功能测试1.4,删除博客功能测试二,具体设计2.1,注册页面测试--等价类法2.2,删除博客功能测试--判定表法一&…...

SpringCloud Alibaba

文章目录🚏 第十七章 SpringCloud Alibaba入门简介🚬 一、为什么使用Alibaba🚭 1、spring netflix进入维护模式🚭 Spring cloud alibaba🚬 二、如何使用?🚬 三、版本对应🚏 第十八章…...

地平线slam算法岗位 面试分享

本专栏分享 计算机小伙伴秋招春招找工作的面试经验和面试的详情知识点 专栏首页:秋招算法类面经分享 主要分享计算机算法类在面试互联网公司时候一些真实的经验 小伙伴自我介绍: 写在前面,南京某炮专,研二上阶段,简历写了两个竞赛和一个项目,一个机器人相关的二等奖,一个…...

32、基于51单片机红外智能垃圾桶系统设计

摘要 随着现代化进程的日益推进,科技越来越发达,人们的生活水平也提高了,城市化程度越来越高,与此同时也带了许多问题,生活垃圾越来越多垃圾设施却不够完善。无论是在公共场合还是家庭厨房的垃圾大都是没有盖或者有盖…...

PIL.Image与cv2之间的常用API汇总

简单介绍 主要是因为经常用到这两个,经常弄混淆,所以,总结一番。持续更新。 from PIL import Image import cv2 as cv import numpy as np import matplotlib.pyplot as plt1、读取文件与写入文件 1.1 Image.open() img_pil Image.open…...

【csdn首发】全网爆火的从零到一落地接口自动化测试

前段时间写了一系列自动化测试相关的文章,当然更多的是方法和解决问题的思路角度去阐述我的一些观点。结合我自己实践自动化测试的一些经验以及个人理解,这篇文章来聊聊新手如何从零到一落地实践接口自动化测试。 为什么要做接口测试 测试理念的演变 早…...

基于应力的拓扑优化的高效3D灵敏度分析代码(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

PMP®十万个为什么(二)

11.我的职位与项目管理并没有多大联系,PMP对我应该就没有什么价值了吧? 其实不然,首先,我们知道项目管理是一个系统性的工作,在一个企业内部如果要把项目管理的工作做好,除了项目团队的工作与管理水平不断提…...

【Linux】生产者消费者模型

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…...

2023/2/13 蓝桥备战acwing刷题(set的使用、简单推个不等式+差分、快速幂、01背包模板回顾、类似01背包的题)

4454未初始化警告 set计数 #include<iostream> #include<set> using namespace std;int main(){int n,m;cin>>n>>m;set<int> s;int res 0;s.insert(0);while(m--){int l,r;cin>>l>>r;if(s.count(r)0){res;}s.insert(l);}cout<…...

【情人节专属】AI一键预测你和Ta的CP值

如何预测你和心仪的Ta有没有夫妻相&#xff1f;基于华为云ModelArts开发的【一键预测你和Ta的CP值】Demo帮你预测CP指数。该模型利用ssim算法综合计算五官特征相似程度&#xff0c;从而得出CP值。//夫妻相的原理在当今心理学、生物学仍有很大争议&#xff0c;夫妻相指数高并不意…...

一文浅谈sql中的 in与not in,exists与not exists的区别以及性能分析

文章目录1. 文章引言2. 查询对比2.1 in和exists2.2 not in 和not exists2.3 in 与 的区别3. 性能分析3.1 in和exists3.2 NOT IN 与NOT EXISTS4. 重要总结1. 文章引言 我们在工作的过程中&#xff0c;经常使用in&#xff0c;not in&#xff0c;exists&#xff0c;not exists来…...

2023前端面试题——JS篇

1.判断 js 类型的方式 1. typeof 可以判断出’string’,‘number’,‘boolean’,‘undefined’,‘symbol’ 但判断 typeof(null) 时值为 ‘object’; 判断数组和对象时值均为 ‘object’ 2. instanceof 原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置 …...

微服务中API网关的作用是什么?

目录 什么是API网关&#xff1f; 为什么要用API网关&#xff1f; API网关架构 API网关是如何实现这些功能的&#xff1f; 协议转换 链式处理 异步请求 什么是API网关&#xff1f; Api网关是微服务的重要组成部分&#xff0c;封装了系统内部的复杂结构&#xff0c;客户端…...

python爬虫--xpath模块简介

一、前言 前两篇博客讲解了爬虫解析网页数据的两种常用方法&#xff0c;re正则表达解析和beautifulsoup标签解析&#xff0c;所以今天的博客将围绕另外一种数据解析方法&#xff0c;它就是xpath模块解析&#xff0c;话不多说&#xff0c;进入内容&#xff1a; 一、简介 XPat…...

【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述

IBN研究综述一、IBN体系结构1.1 体系结构&#xff1a;1.2 闭环流程&#xff1a;1.3 IBN的自动化程度(逐步向前演进)&#xff1a;二、IBN 的实现方式2.1 意图获取&#xff1a;2.1.1 YANG、NEMO2.1.2 Frenetic、NetKAT、LAI2.2 意图转译&#xff1a;2.2.1 iNDIRA系统2.2.2 基于模…...

【云原生kubernetes】k8s service使用详解

一、什么是服务service&#xff1f; 在k8s里面&#xff0c;每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失&#xff0c;重启pod的ip地址会发生变化&#xff0c;此时客户如果访问原先的ip地址则会报错 &#xff1b; Service (服务)就是用来解决这个问题的…...

Python 数据可视化的 3 大步骤,你知道吗?

Python实现可视化的三个步骤&#xff1a; 确定问题&#xff0c;选择图形转换数据&#xff0c;应用函数参数设置&#xff0c;一目了然 1、首先&#xff0c;要知道我们用哪些库来画图? matplotlib Python中最基本的作图库就是matplotlib&#xff0c;是一个最基础的Python可视…...

CSS基础:盒子模型和浮动

盒子模型 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子&#xff0c;封装HTML元素。 它包括&#xff1a;外边距&#xff08;margin&#xff09;&#xff0c;边框&#xff08;bord…...

OpenHarmony使用Socket实现一个TCP服务端详解

点击获取BearPi-HM_Nano源码 ,以D4_iot_tcp_server为例: 点击查看:上一篇关于socket udp实现的解析 查看 TCPServerTask 方法实现: static void TCPServerTask(void) {//连接WifiWifiConnect("TP-LINK_65A8",...

kafka监控工具安装和使用

1. KafkaOffsetMonitor 该监控是基于一个jar包的形式运行&#xff0c;部署较为方便。只有监控功能&#xff0c;使用起来也较为安全(1)消费者组列表 (2)查看topic的历史消费信息. (3)每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner) (4)对consumer消费情况进…...

近期工作感悟

从应届生变为社畜已经半年了&#xff0c;在这里吐槽一下自己的所想给自己看。 首先是心理层面上的&#xff0c;初期大大增加的压力。 我觉得应届生能够来到大厂的&#xff0c;基本都是在大学有去规划学习&#xff0c;对自己技能比较认可的。比如我在学校自学游戏开发&#xff…...

大数据框架之Hadoop:HDFS(三)HDFS客户端操作(开发重点)

3.1 HDFS客户端环境准备 1&#xff0e;根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径&#xff08;例如&#xff1a;D:\javaEnv\hadoop-2.77&#xff09;&#xff0c;如下图所示。 2&#xff0e;配置HADOOP_HOME环境变量&#xff0c;如下图所示。 3&#…...

微网站怎么做百度关键词/百度搜索什么关键词能搜到网站

真没想到这个系列还能更新下去…之前本来就是想写个烟花写个黑白棋小程序图一乐的&#xff0c;结果搞个文化节活动找不着人来写js&#xff0c;只能自己上了&#xff0c;连熬三个大夜总算是把网上找的一千多行的开源代码理完、部分重构完了。 自认为无论是还原性还是交互都设计…...

如何做网站的百科/富阳seo关键词优化

1&#xff09;定义 json的定义&#xff08;javascript object notation&#xff09; 一种轻量级的数据交换格式&#xff0c;具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案&#xff08;有点类似于正则表达式 &#xff0c;获得了当今大部分语言的…...

展馆设计网站推荐/seo最强

首先如果没有限制的话&#xff0c;我们可以直接求出答案&#xff0c;假设对于n*m的矩阵&#xff0c;我们最上方一行和左方的一列随意确定&#xff0c;那么首先这写确定的状态肯定是不会不合法的&#xff0c;因为我们可以调整剩下的01状态来使得这一行一列的状态合法&#xff0c…...

铜陵建设行业培训学校网站/网络推广的途径有哪些

软件名称&#xff1a; Wise Registry Cleaner Pro(智能注册表清理)软件语言&#xff1a; 简体中文授权方式&#xff1a; 免费试用运行环境&#xff1a; Win7 / Vista / Win2003 / WinXP 软件大小&#xff1a; 2.3MB图片预览&#xff1a; 软件简介:Wise Registry Cleaner Pro有个…...

网站如何做收款二维码/友链对网站seo有帮助吗

启动靶场访问如下&#xff0c;输入1&#xff0c;报错&#xff0c;可知是字符型注入&#xff0c;变量由单引号包裹 输入1 and 11 --&#xff0c;显示正常 先直接用sqlmap注入一下&#xff0c;显示存在注入&#xff0c;但是始终注入不出来数据库&#xff0c;“[ERROR] unable to …...

顺德网站建设基本流程/长春网站建设方案咨询

TcpConnection类 封装了一个个的tcp连接&#xff0c;实现了socket的四种回调&#xff0c;以及注册一些上层的回调 class TcpConnection : noncopyable, public std::enable_shared_from_this<TcpConnection> { public:TcpConnection(EventLoop *loop,const std::string…...