Linux系统编程基础

Linux操作系统

Linux不是一个具体的操作系统,而是一类操作系统的总称,具体版本成为发行版。

  • Red Hat:目前被IBM收购,收费版,目前最大的Linux供应商
  • CentOS: Red Hat退出的免费版
  • Ubuntu:界面比较友好

虚拟机

学习Linux系统,就需要有一个可用的Linux系统。我们也不能将自己系统换成Linux系统,因为Linux系统并不适合日常办公使用,所以我们需要借助虚拟机来获得可用的Linux系统环境进行学习。

什么是虚拟机?

借助虚拟化技术,我们可以在系统中,通过软件:模拟计算机硬件,并给虚拟硬件安装真实的操作系统。 这样,就可以在电脑中,虚拟出一个完整的电脑,以供我们学习Linux系统。

VMware WorkStation

我们选用VMware WorkStation软件来提供虚拟机。

下载地址: https://www.vmware.com/cn/products/workstation-pro.html

  • 我们只需要点击next就可以安装完成

下载CentOS操作系统 

我们需要下载操作系统的安装文件,CentOS7.6版本

Index of /7.6.1810/isos/x86_64

在VMware中安装CentOS操作系统:

先打开VMware软件 

按照步骤创建虚拟机:

点击完成后,即开启了CentOS系统的安装,耐心等待安装完成即可,后续都是自动化的。

对于操作系统的使用,有2种使用形式:

  • 图形化页面使用操作系统
  • 以命令的形式使用操作系统

不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。 

FinalShell 

我们使用VMware可以得到Linux虚拟机,但是在VMware中操作Linux的命令行页面不太方便,

我们可以通过第三方软件,FinalShell,远程连接到Linux操作系统之上。

Windows:  http://www.hostbuf.com/downloads/finalshell_install.exe

Linux基础命令 

Linux的目录结构是一个树型结构 ;Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘 Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面。

无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:

如:ls -l /home/demo

意思是以列表的形式,显示/home/demo目录内的内容


ls命令

当ls不使用参数,表示列出:当前工作目录的内容.

cd 切换工作目录

当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录 我们可以通过cd命令,更改当前所在的工作目录。

mkdir命令

mkdir命令可以创建新的目录(文件夹)

mkdir -p 选项

如果想要一次性创建多个层级的目录,可以使用此命令创建多个连续目录

touch 创建文件

可以通过touch命令创建文件

mv移动文件

mv 参数1  参数2
  • 如果参数2不存在,则进行改名操作

rm删除文件、文件夹 

grep命令 

可以通过grep命令,从文件中通过关键字过滤文件行。

ls | grep Desktop  # 过滤ls的结果

任何命令都支持:--help 选项, 可以通过这个选项,查看命令的帮助。 

ls --help  # 会列出ls命令的帮助文档

因为现在不管是云服务器,还是图形化界面,都可以很好的快速上手操作,就不过多赘述命令。

vi\vim编辑器

vi\vim是Linux中最经典的文本编辑器 同图形化界面中的 文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。

vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。

vim编辑器的三种工作模式:

  • 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
  • 如果文件路径表示的文件存在,那么此命令用于编辑已有文件 

 Linux用户和权限

我们如果不修改的话,就是一直在root用户操作;我们可以创建一个普通用户:cat

useradd -m cat

passwd  123   为用户指定密码

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。 

可以通过su命令切换到root得到最大权限。

我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。

在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权

为普通用户配置sudo认证

切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

在文件的最后添加:cat  ALL=(ALL)     NOPASSWD: ALL   

表示使用sudo命令,无需输入密码,最后通过 wq 保存。

Linux经常用到的操作

ctrl + c 强制停止

某些程序的运行,如果想要强制停止它,或者命令输入错误,可以使用快捷键ctrl + c。

ctrl + d 退出或登出

退出账户的登录或者退出某些特定程序的专属页面

光标移动快捷键:

ctrl + a,跳到命令开头   ctrl + e,跳到命令结尾

清屏

ctrl + l,或clear 可以清空终端内容

Linux里的“应用商店”

yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。

systemctl命令控制软件的启动和关闭 

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启。

能够被systemctl管理的软件,一般也称之为服务~

ln命令创建软连接:

在系统中创建软链接,可以将文件、文件夹链接到其它位置。

ln -s 参数1  参数2
  • 参数1:被链接的文件或文件夹
  • 参数2:要链接去的目的地

环境变量 

环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。

无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,这个就是借助环境变量中:PATH这个项目的值来做到的。

在Linux系统中,$符号被用于取”变量”的值。echo $PATH:就可以取得PATH这个环境变量的值,并通过echo语句输出出来。


Linux环境变量可以用户自行设置,其中分为:

  • 临时设置,语法:export 变量名=变量值 
  • 永久生效   针对所有用户生效,配置在系统的:/etc/profile文件中 然后通过语法:source 配置文件 进行立即生效。

自定义环境变量PATH:
在当前HOME目录内创建文件夹,myenv,在文件夹内创建文件hello

通过vim编辑器,在hello文件内填入:echo 哈哈哈哈哈

完成上述操作后,随意切换工作目录,执行hello命令尝试一下,会发现无法执行

临时修改PATH:export PATH=$PATH:/home/hello,再次执行mkhaha,无论在哪里都能执行了 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)

【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上) 大家好 我是寸铁👊 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)✨ 喜欢的小伙伴可以点点关注 💝 前言 本次文章分为上下两部分&…

【C语言】动态内存管理(上)

文章目录 前言1.为什么要存在动态内存2. malloc和free2.1 malloc2.2 free2.3 使用实例(malloc和free) 3. calloc3.1 calloc例子 前言 本文开始将开始学习C语言中一个比较重要的知识点或者是操作——动态内存管理。由于本次的知识比较重要,为…

科技赋能,智慧粮仓视频综合管理方案助力粮食安全

一、背景需求 随着科技的快速发展,智慧化、智能化管理已成为各行各业的重要发展方向。粮食仓储作为国家粮食安全战略的重要组成部分,其管理的科学性和智能化水平直接关系到粮食的存储安全、品质保障和运营效率。 因此,TSINGSEE青犀提出一套…

GaussDB常见调优指南

文章目录 GaussDB常见调优指南一. Analyze 统计信息解析二. Explain 分布式计划解析三. 性能调优总体策略详解四. 性能调优之坏味道 SQL 识别五. 性能调优之好味道表定义六. 性能调优之 SQL 改写七. 性能调优之路径干预八. 性能调优之 Plan hint 运用九. 性能调优之 GUC 参数调…

Linux 12:多线程2

1. 生产者消费者模型 生产者消费者模型有三种关系,两个角色,一个交易场所。 三种关系: 生产者之间是什么关系?竞争 - 互斥 消费者和消费者之间?竞争 - 互斥 消费者和消费者之间?互斥和同步 两个角色: 生产者和消费者 一个交…

git 提交的进阶操作

cherry-pick cherry-pick 是 Git 中的一种操作,允许你从一个分支中选择特定的 commit,并将其应用到另一个分支。它的主要用途是将特定的更改引入到其他分支,而无需合并整个分支历史。这在修复 bug 或者移植某些功能时特别有用。 cherry-pick 的使用场景 Bug 修复: 例如,你…

安卓手机怎么格式化?格式化后数据如何恢复?1篇文章全搞定

随着时间的推移,手机中的数据越积越多,有时候我们可能需要对其进行一次彻底的大扫除——格式化。它就像一把双刃剑,一方面能够清除手机中的冗余数据,提升手机的运行效率;另一方面,如果不慎操作,…

Postman导出excel文件

0 写在前面 在我们后端写接口的时候,前端页面还没有出来,我们就得先接口测试,在此记录下如何使用postman测试导出excel接口。 如果不会使用接口传参可以看我这篇博客如何使用Postman 1 方法一 2 方法二 3 写在末尾 虽然在代码中写入文件名…

Apache BookKeeper 一致性协议解析

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO replication)、快速扩容、灵活容错等特性。Pulsar 存储层依托于 BookKeeper 组件,所以本文简单探讨一下 BookK…

QXlsx读写excel

QXlsx读写excel 安装 QXlsx使用 qmake使用 CMake 基本用法1. 写入 Excel 文件2. 读取 Excel 文件 详细用法1. 设置单元格样式2. 合并单元格3. 创建图表4. 设置列宽和行高 完整示例 QXlsx 是一个用于在 Qt 应用中读写 Excel 文件的第三方库。它提供了丰富的 API,可以…

react 快速入门思维导图

在掌握了react中一下的几个步骤和语法,基本上就可以熟练的使用react了。 1、组件的使用。react创建组件主要是类组件和函数式组件,类组件有生命周期,而函数式组件没有。 2、jsx语法。react主要使用jsx语法,需要使用babel和webpa…

由delete引起的锁扩大

这句话意思是:假设delete语句物理删除数据,那么delete事务会持有gap lock,那么会造成锁扩大,而实际上delete操作会转为update操作,最终delete事务持有的gap lock退化为record lock,不会造成锁扩大 下面用SQ…

FPGA:频闪灯设计

1、需求 若在FPGA上实现LED灯一秒闪烁一次,先进行计算,1秒闪烁一次,即周期为1秒,开发板XC7A35TFFG-2的基本时钟输入由板载 50MHz 有源晶振提供,即频率为f 50MHz 。 则一个周期为 T 1 f 1 50 M H z 20 n s T\frac{…

十七、【机器学习】【非监督学习】- K-均值 (K-Means)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

学习系列一:YOLO系列目标检测框架之间介绍及对比

YOLO系列目标检测框架之间介绍及对比 华为HCIP AI高级工程师证书, 华为HCIA AI证书,目前从事视觉算法工作 文章目录 YOLO系列目标检测框架之间介绍及对比前言一、YOLOv1二、YOLOv2三、YOLOv3四、YOLOv4五、YOLOv5及后续算法 前言 YOLO系列算法 YOLO 创…

PyCharm创建一个空的python项目

1.设置项目路径 2.配置python解释器 右下角可以选择always

基于SpringBoot+Vue的财务管理系统(带1w+文档)

基于SpringBootVue的财务管理系统(带1w文档) 基于SpringBootVue的财务管理系统(带1w文档) 财务管理系统的开发运用java技术、springboot框架,MIS的总体思想,以及Mysql等技术的支持下共同完成了该系统的开发,实现了财务管理的信息化&#xff0…

C语言-网络编程-UDP通信创建流程

UDP 通信创建流程 UDP 是⼀个传输层的⽆连接的协议,我们编写代码⼀般是分为两个端。⼀个我们称之为发送端,另⼀ 个我们称之为接收端。正常⼀般是接收端先运⾏,然后等待结束发送端发送过来的数据。 创建套接字 首先,我们需要创建…

【数据分享】2013-2022年我国省市县三级的逐日SO2数据(excel\shp格式\免费获取)

空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000——2022年的省市县三级的逐日PM2.5数据和2013-2022年的省市县三级的逐日CO数据(均可查看之前的文章获悉详情)! 本次我们分享的是我国2013——2022年的省…

PySide(PyQt),使用 QGraphicsOpacityEffect 设置小部件的整体显示透明度

基本的demo 在 PySide6 中,可以使用 QGraphicsOpacityEffect 类来实现整体显示透明度。下面是一个简单的示例,演示了如何为 QLabel 设置透明度: from PySide6.QtWidgets import QApplication, QLabel, QGraphicsOpacityEffect, QVBoxL…