【Linux】总结1-命令工具
文章目录
- 基础指令
- shell命令以及运行原理
- Linux权限
- 粘滞位
- 工具
基础指令
-
ls、pwd、touch、mkdir、netstat、cp、mv、cd、tar、zip、unzip、grep、pstack、ps、rm、cat、more、less、head、tail、find、ulimit -a、clear、whoami、man
-
touch:创建文件,也包括源代码文件;要注意,“-”:普通文件,“d”:文件夹文件。在Linux系统中,一切皆文件,且文件在Linux操作系统当中并不是以后缀来区分文件类型的。
-
rm:删除文件或文件夹,不可逆操作,慎用,删除文件夹加上-r参数:表示递归删除,此外,-i参数表示每一步都询问是否操作;-f:强制执行,不再进行询问
-
cat:查看文件内容;-n参数:在输出文件内容的同时也输出文件行号
-
head:查看文件内容,从文件头部开始默认查看10行
-
tail:查看文件内容,从文件尾部开始默认查看10行
-
find:查看文件所在路径 find [path] -name [filename]
-
grep:在文件中查找字符串的命令
shell命令以及运行原理
- Linux严格意义上说是一个操作系统,称为“核心 ”(kernel),但是我们一般用户 ,不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通
- 操作系统 = 操作系统内核 + 一堆应用;操作系统内核:管理计算机中的软硬件资源,本质上是一个软件
- 从技术角度:shell是命令行解释器,主要是将用户输入的命令递交给操作系统内核;同时将内核执行的结果反馈给用户,起到了一个承上启下的功能
- 简单总结一下:shell是一个命令行解释器;bash:一个具体的命令行解释器
Linux权限
-
字符表现形式:r:可读;w:可写;x:可执行;rwx相对位置固定,如果没有某个权限在该权限的位用“-”表示
-
八进制数值表现形式,有三个十进制数字,最左位标识r权限,中间位标识w权限,最右位标识x权限,每个数字由三位二进制数字转化为为十进制得到。在二进制中:rwx对应三个二进制数字,同样的,最左位标识r权限,中间位标识w权限,最右位标识x权限,每个二进制位若为1,则表示有该权限,为0则表示没有,比如100,则表示有r权限,没有w权限和x权限,转换为十进制是4,则十进制4表示r–权限
-
第一个字符标识该文件是普通文件还是文件夹,若是字符表现形式,则后面三个一组表示某类用户的权限,第一组表示文件所有者的权限(user–u),第二组表示所属组内用户针对该文件或文件夹的权限(group–g),第三组表示对于其他用户的权限(other–o),若是八进制数值表现形式,则每一个转换后的十进制数字单独为一组
-
修改权限
使用chmod命令:
- 字符修改方式:chmod [u/g/o] [+/-] [r/w/x] [filename],eg:chmod u-w a.out;如果不体现[u/g/o],则针对三类用户都做出修改
- 八进制数字修改方式:chmod [数字] [filename] eg:chmod 777 a.out
-
不同权限针对文件/文件夹的作用
- r:对文件而言,表示是否具有读取文件的权限;对文件夹而言,决定用户是否能够查看文件夹下的内容
- w:对于文件而言,表示是否具有能够修改文件内容的权限;对于文件夹而言,决定用户是否能够移动/删除文件夹下文件
- x:对于文件而言,表示是否具有执行文件内容的权限;对于文件夹而言,决定用户是否能够进入到文件夹
粘滞位
- 使用场景:给文件夹设置粘滞位
- 作用:设置了粘滞位的文件夹只能被以下用户删除文件:root用户(超级管理用户)、该文件夹的所有者、该文件的所有者
- 用chmod + t [文件夹] 设置粘滞位
工具
-
1、yum
yum的常规操作:查询软件信息、安装软件、移除软件,合称yum的三板斧
-
2、vim:代码编辑器
常见的三种模式:正常模式、插入模式、底行模式
正常模式下的快捷操作:
移动:移动光标:
-
上下左右键
-
h:左移;j:下移;k:上移;l:右移
-
gg:光标回到文本开始
-
G:光标回到文本末尾
-
^:光标回到所在行行首
-
$:光标回到所在行行尾
删除:删除内容
- x:删除光标所在字符
- [num]x:删除num个字符,包含光标所在字符
- X:删除光标所在位置前一个字符
- [num]X:删除num个字符,向前删除
- dd:删除本行内容
- [num]dd:删除num行内容,向下删除
复制:
-
[num]yy/yy:复制当前光标所在/num行
-
p:粘贴到光标所在行的下一行
-
P:粘贴到光标所在行的上一行
替换:
-
r:替换光标所在字符,一次替换一个
-
R:替换光标所到之处的字符,一次可以替换多个
撤销:
-
u:撤销上一次误操作的操作
-
ctrl+r:反撤销
更改:
- cw:更改光标所在处的字到字尾处,用了该命令后直接进入插入模式
- [c#w]:#代表的是几个字,表示说能修改几个字
跳跃:
- [#G]:#代表的是数字,eg:3G表示跳转到3行行首
删除:删除内容
- x:删除光标所在字符
- [num]x:删除num个字符,包含光标所在字符
- X:删除光标所在位置前一个字符
- [num]X:删除num个字符,向前删除
- dd:删除本行内容
- [num]dd:删除num行内容,向下删除
复制:
-
[num]yy/yy:复制当前光标所在/num行
-
p:粘贴到光标所在行的下一行
-
P:粘贴到光标所在行的上一行
替换:
-
r:替换光标所在字符,一次替换一个
-
R:替换光标所到之处的字符,一次可以替换多个
撤销:
-
u:撤销上一次误操作的操作
-
ctrl+r:反撤销
更改:
- cw:更改光标所在处的字到字尾处,用了该命令后直接进入插入模式
- [c#w]:#代表的是几个字,表示说能修改几个字
跳跃:[#G]:#代表的是数字,eg:3G表示跳转到3行行首
-
3、编译器:gcc/g++
gcc:编译C语言程序,后缀为.c
g++:编译C++/C程序,后缀可以为:.c/.cpp/.cc/.cxx/.hpp
生成可执行程序的4个过程:预处理(-E)、编译(-S)、汇编(-c)、链接 -
4、gdb:调试器
程序的发布方式有两种,一种是debug模式,一种是release模式,Linux下要得到debug版本的程序在编译时需要增加一个-g命令行参数,因为默认是不加-g的,则为release版本。debug比release多了调试信息,用gdb调试的时候一定是调试debug版本
调试的基础方法:
- l:查看源码,从main函数开始
- l[func_name]:查看某个函数的源码
- r:程序执行起来
- n:逐过程
- s:逐语句
- b [行号]:在改行设置断点
- i b:查看断点
- c:继续执行
- delete breakpoints:删除所有断点
- delete breakpoints n:删除序号为n的断点
- disable breakpoints:禁用断点
- enable breakpoints:启用断点
- info locals:查看当前栈帧局部变量的值
- p [变量名]:查看变量的值,不仅可以查看内置类型变量,也可以查看自定义类型变量(struct、class、this)
- bt:展示调用堆栈,可以通过调用堆栈来看代码执行的函数调用关系
- q:退出
三种使用场景:
- 事前:可执行程序执行之前
- 事中:可执行程序正在执行时
- 事后:运行完毕,发生崩溃,调试崩溃程序产生的coredump文件,coredump文件:核心转储文件,是在程序在崩溃(内存访问越界、解引用空指针、double free)的一瞬间内存的映像(相当于案发现场)
-
5、自动化构建项目:make
make是一个命令,是自动化构建项目的工具;makefile/Makefile是一个文件,文件内容包含了编译程序时的规则。make根据makefile的文件内容,进行解析,编译程序(构建项目)
make的工作方式:
- 只为生成第一个目标对象而服务,如果生成了目标对象,则后续文件当中的内容不再进行解析,如果为了生成第一个目标对象,需要先生成依赖对象,则在makefile文件中查找生成依赖对象的方法,如果发现依赖对象不存在,就报错返回
- 若依赖对象的最后一次修改时间先于目标对象的最后一次修改时间,则不再重新生成,意思就是依赖文件没有更新,目标对象就不必更新,不必再重新生成
makefile文件当中的自定义变量和内置变量:
内置变量:
- $^:所有依赖的对象
- $@:目标对象
- $<:代表第一个依赖对象
自定义变量:自己给变量起名字,后续使用$符号进行解析
-
6、git:版本管理工具
- 克隆仓库
- 提交到本地仓库
- 推送到远端仓库
- 将远端仓库内容更新到自己本地仓库
- git status
相关文章:

【Linux】总结1-命令工具
文章目录 基础指令shell命令以及运行原理Linux权限粘滞位工具 基础指令 ls、pwd、touch、mkdir、netstat、cp、mv、cd、tar、zip、unzip、grep、pstack、ps、rm、cat、more、less、head、tail、find、ulimit -a、clear、whoami、man touch:创建文件,也包…...
Git远程仓库
Git远程仓库 推送拉取git fetchgit pull 克隆 推送 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。那要怎么实现这种分布呢?我们可以找一台电脑充当服务器,也就是扮演远程仓库的角色,一直都处于开机…...

Redis缓存设计
缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。但是将缓存加入应用架构后也会带来一些问题,本文将针对这些问题介绍缓存使用技巧和设计方案。 1缓存的收益和成本 下图左侧为客户端直接调用存储层的架…...

华熙生物肌活:2023年版Bio-MESO肌活油性皮肤科学护肤指南
关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 以悦己和尝鲜为消费动机的他们,已迅速崛起成为护肤行业的焦点人群。而在新生代护肤议题中,“油性皮肤护理”已经成为一个至关重要的子集。今天,中国新生代人口数量…...

mysql索引介绍
索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下: 从索引存储结构划分:B Tree索引、Hash索引、全文索引 从应用层次划分:主键索引、唯一索引、单值索引、复合索引 从索引键值类型划分&am…...

说一下什么是tcp的2MSL,为什么客户端在 TIME-WAIT 状态必须等待 2MSL 的时间?
1.TCP之2MSL 1.1 MSL MSL:Maximum Segment Lifetime报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间 1.2为什么存在MSL TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段,并且TTL的限制是基于跳数 1.3…...
更新spring boot jar包中的BOOT-INF/lib目录下的jar包
更新spring-boot jar包中的BOOT-INF/lib目录下的jar包 场景 需要更新lib目录下某个jar包的配置文件 失败的解决方法 用解压软件依次打开spring-boot jar包(设为a.jar)、BOOT-INF/lib目录下的jar包(设为b.jar),然后修改…...

纯前端 -- html转pdf插件总结
一、html2canvasjsPDF(文字会被截断): 将HTML元素呈现给添加到PDF中的画布对象,不能仅使用jsPDF,需要html2canvas或rasterizeHTML html2canvasjsPDF的具体使用链接 二、html2pdf(内容显示不全文字会被截断…...
数据结构和算法基础
巩固基础,砥砺前行 。 只有不断重复,才能做到超越自己。 能坚持把简单的事情做到极致,也是不容易的。 数据结构和算法 程序 数据结构算法 数据结构是算法的基础 问题1:字符串匹配问题。str1 是否完全包含 str2 1)暴…...

JS二维数组转化为对象
将二维数组转化为对象的形式 转之前的数据: 转之后: const entries new Map([[foo, bar],[baz, 42],[beginNode, 202212151048010054],[beginNode, 202212151048447710],]); console.log(entries)const obj Object.fromEntries(entries);console.lo…...
通过 EPOLL 解决客户端同时连接多服务器的问题
项目需求是 程序上 同时配置了多个服务端 设备 每隔一段时间需要 比如1分钟 连一下服务器看下是否连通 并将结果上报给平台 原来是用线程池来做的 具体大概就是 定时器到了之后 遍历设备列表 找到设备之后 通过 socket连接 发送一个指令 等待服务器返回 用来检查是…...

JavaScript数据结构【进阶】
注:最后有面试挑战,看看自己掌握了吗 文章目录 使用 splice() 添加元素使用 slice() 复制数组元素使用展开运算符复制数组使用展开运算符合并数组使用 indexOf() 检查元素是否存在使用 for 循环遍历数组中的全部元素创建复杂的多维数组将键值对添加到对象…...

jQuery编程学习3(jQuery 其他方法: jQuery 拷贝对象、 jQuery 多库共存、jQuery 插件)
目录 jQuery 其他方法 1. jQuery 拷贝对象 $.extend()方法 2. jQuery 多库共存 问题概述: 客观需求: jQuery 解决方案:(两种方式) 3. jQuery 插件 jQuery 插件常用的网站: jQuery 插件使用步骤&…...

jvm——垃圾回收机制(GC)详解
开始之前有几个GC的基本问题 什么是GC? GC 是 garbage collection 的缩写,意思是垃圾回收——把内存(特别是堆内存)中不再使用的空间释放掉;清理不再使用的对象。 为什么要GC? 堆内存是各个线程共享的空间…...

计算机组成原理-笔记-第七章
目录 七、第七章——输入输出系统 1、IO设备与IO控制方式 (1)控制方式(查询,中断,DMA) (2)通道控制 (3)IO系统 (4)总结 2、外设…...

【Linux】网络基础2
文章目录 网络基础21. 应用层1.1 协议1.2 HTTP 协议1.2.1 URL1.2.2 urlencode和urldecode1.2.3 HTTP协议格式1.2.4 HTTP的方法1.2.5 HTTP的状态码1.2.6 HTTP 常见的header1.2.7 最简单的HTTP服务器 2. 传输层2.1 端口号2.1.1 端口号范围划分2.1.2 认识知名端口号2.1.3 netstat2…...
可视化绘图技巧100篇进阶篇(四)-三维簇状柱形图(3D Clustered Bar Chart)
目录 前言 适用场景 图例 柱形图 一、柱形图的特点 二、柱形图的类型...

架构设计第八讲:架构 - 理解架构的模式2 (重点)
架构设计第八讲:架构 - 理解架构的模式2 (重点) 本文是架构设计第8讲:架构 - 理解架构的模式2,整理自朱晔的互联网架构实践心得, 他是结合了 微软给出的云架构的一些模式的基础上加入他自己的理解来总结互联网架构中具体的一些模式。我在此基…...
Java中的Maven Shade插件是什么?
Maven Shade插件是一个非常有用的Maven插件,它可以帮助你在构建项目时打包所有依赖项,并将其打包到一个单独的JAR文件中。这对于在构建过程中使用多个依赖项的项目非常有用,因为它可以让你避免在每个依赖项中都包含所有依赖项,从而…...
ffmpeg的bpp是什么?
例如: AV_PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples) AV_PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... AV_PIX_FMT_BGR24, …...

Mac/iOS 如何解压 RAR 格式压缩包:常用工具与详细操作步骤
一、Mac 系统解压 RAR 文件之法 Mac 系统上解压 RAR 文件有多种方法,除了系统自带的一些简单功能外,还可以借助特定的软件来实现高效解压。以下将介绍几款常用工具的解压操作。 (一)解压专家解压步骤 解压专家 是一款在 Mac 和 …...
多标签多分类 用什么函数激活
在多标签多分类任务中,激活函数的选择需要根据任务特性和输出层的设计来决定。以下是常见的激活函数及其适用场景: 一、多标签分类任务的特点 每个样本可以属于多个类别(标签之间非互斥,例如一篇文章可能同时属于 “科技” 和 “…...

基于Scala实现Flink的三种基本时间窗口操作
目录 代码结构 代码解析 (1) 主程序入口 (2) 窗口联结(Window Join) (3) 间隔联结(Interval Join) (4) 窗口同组联结(CoGroup) (5) 执行任务 代码优化 (1) 时间戳分配 (2) 窗口大小 (3) 输出格式…...

vue3:十五、管理员管理-页面搭建
一、页面效果 实现管理员页面,完成管理员对应角色的中文名称显示,实现搜索栏,表格基本增删改查,分页等功能 二、修改问题 1、修改搜索框传递参数问题 (1)问题图示 如下图,之前搜索后,传递的数据不直接是一个value值,而是如下图的格式 查询可知这里传递的数据定义的是…...
零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
本期内容涉及到很多前面的内容,因此复习后可以更好的了解本期内容 介绍 XXE -"xml external entity injection"即"xml外部实体注入漏洞"。 概括一下就是"攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导…...
Doris 数据库深度解析:架构、原理与实战应用
一、Doris 的架构与原理 1. 架构组成 Doris 是一个分布式 MPP(大规模并行处理)数据库,它的架构主要由以下几部分组成: FE(Frontend):负责管理元数据、解析 SQL 查询、优化查询计划࿰…...
利用Pandas AI完成Excel大模型的结合实现自然语言问数
需求说明 实现对Excel工具的自然语言问数,即可以通过界面上传Excel文件,然后在文本框里通过语言对话的形式问出要统计的内容。比如: 用户数有多少? 语文成绩低于90的用户有多少? ..... 实现思路 Pandas AI是基于…...
Java八股文——MySQL篇
文章目录 Java八股文——MySQL篇慢查询如何定位慢查询?如何分析慢SQLExplain标准答案 索引索引类型索引底层数据结构什么是聚簇索引什么是非聚簇索引?(二级索引)(回表)聚集索引选取规则回表查询 什么是覆盖…...

【优选算法】C++滑动窗口
1、长度最小的子数组 思路: class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 滑动窗口// 1.left0,right0// 2.进窗口( nums[right])// 3.判断// 出窗口// (4.更新结果)// 总和大于等于 target 的长度最小的 子数组…...

关于物联网的基础知识(一)
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网的基础知识(一&a…...