LINUX学习记录
回顾系列:两天的时间(2023.2.24-2023.2.25)重新学了遍Linux基础课,收获非常多,以前只会一些简单的Linux命令,对shell,git,管道,复杂Linux命令都不熟悉,学完之后终于是入门Linux了。
Tmux 和 Vim
-
Tmux
-
前缀符号(默认是
ctrl + b, y总修改了配置文件改成了ctrl + a) +a (attach)可以重新打开之前的 tmux 窗口。前缀符 +d可以挂起 tmux 窗口。 -
在 Acterminal中向外复制时,需要退出tmux进入bash,然后选中,
ctrl + insert + fn(本机)复制,shift + insert + fn(本机)粘贴 (或是ctrl + v)。 -
前缀符 + s可以查看所有的session。 -
bash 的配置文件是
.bashrc -
Vim
-
Vim的配置文件是家目录下的
.vimrc。cd命令可以直接进入环境变量$HOME的目录,也就是家目录。echo $HOME输出HOME的值
-
复制粘贴,需要
前缀符 + [,然后选中,前缀符 + ]粘贴。 -
gg (光标移动到第一行) , G (光标移动到最后一行) 。
gg=G可以格式化代码 (后者命令模式下输入:set paste设置粘贴模式,取消代码的缩进) -
v (选中文本),d(删除选中的文本),y(复制选中的文本)。dd(删除当前行),yy(复制当前行)。
ggvGd删除全文,ggvGy复制全部文本。
-
Shell编程
-
ipython3中使用!自动将这一行解释为shell脚本。 -
字符串可以用单引号,双引号,或者不引。
-
单引号与双引号的区别:
单引号中的内容会原样输出,不会执行、不会取变量;
双引号中的内容可以执行、可以取变量;name=yxc # 不用引号 echo 'hello, $name \"hh\"' # 单引号字符串,输出 hello, $name \"hh\" echo "hello, $name \"hh\"" # 双引号字符串,输出 hello, yxc "hh"
-
-
参数 说明 $# 代表文件传入参数个数。 $* 所有参数,使用空格隔开的字符串 $@ 每个参数,各自用双引号括起来的字符串 $$ 脚本当前运行的PID $? 上一条命令的 exit code, 0表示正常退出,非0为异常$(command) 返回 command命令的stdout (可嵌套)`command` 返回 command命令的stdout (不可嵌套)$0,$1,$2… $0 是文件名(包含路径), $$ i 表示第 i 个参数。 -
通过上个表格,有 Shell 中,$ 表示取值,# 表示个数,* 和 @ 表示取全部
-
读取数组中某个元素的值
${array[index]} -
`expr $a + $b` 很难用,符号注意要转义,一般不用Shell计算。
-
if 语句
a=3 b=4if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ] thenecho ${a}在范围内 fi -
循环语句
for ((expression; condition; expression)) do语句1语句2 donefor ((i=1; i<=10; i++)) // 双括号里边可以用c++的写法。 doecho $i done ------------------------------------------------- for var in val1 val2 val3 do语句1语句2... donefor i in a 2 cc doecho $i done -
用 Shell 写递归函数时,记得函数内部要用局部变量,不然可能出错。有一道练习题。
-
source 命令通常用于保留、更改当前shell中的环境变量。
管道、环境变量与常用命令
-
管道(管道类似于文件重定向,可以将前一个命令的
stdout重定向到下一个命令的stdin)和Shell结合就有了自动化运维,非常的方便。find . -name '*.py' | xargs cat | wc -l翻译:统计当前目录下所有以
.py结尾的文件,将输出结果作为 cat 的参数,运行之后,统计所有的行数。 -
配置
PATH环境变量的时候,都是向最后写入,因为Shell是逐行执行的,会覆盖之前的内容。如果想新加一个环境变量,
export PATH=/xxx/xxx:$PATH, 环境变量是用:隔开的。 -
ps aux查看进程,kill -9 pid杀进程,(可能出现那个进程不应该用 -9 参数杀死,而不能杀掉的情况) -
文件权限(10个字符)第一个表示类型,然后每3各一组,r(read,w(write,x(execute。
-
find /path/to/directory/ -name '*.py'搜索某个文件路径下的所有*.py文件 -
wc -l:统计行数
wc -w:统计单词数
wc -c:统计字节数 -
ag xxx:搜索当前目录下的所有文件,检索xxx字符串 -
grep xxx:从stdin中读入若干行数据,如果某行中包含xxx,则输出该行;否则忽略该行。 文件检索过滤。
-
xargs:将stdin中的数据用空格或回车分割成命令行参数
-
tar:压缩文件
tar -zcvf xxx.tar.gz /path/to/file/*:压缩(把/path/to/file/* 文件压缩成 xxx.tar.gz 文件)
tar -zxvf xxx.tar.gz:解压缩 -
diff xxx yyy:查找文件xxx与yyy的不同点
Git (原理就是SCP)
- 工作区:仓库目录,写代码的地方,独立的。
- 暂存区:将工作区写入版本库之前的缓冲区,独立的。
- 版本库:存放所有提交到本地仓库的代码
- 版本结构:每个节点表示一个代码版本。
1.先配置git的用户名和邮箱:
git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig文件中
git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在~/.gitconfig文件中
2.git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中
常用的:
git add XX :将当前目录的XX文件添加到暂存区
git add . :将所有待加入暂存区的文件加入暂存区
git status:查看仓库状态
git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支
git log:查看当前分支的所有版本
git reflog:查看HEAD指针的移动历史(包括被回滚的版本)git reset --hard HEAD^ 或 git reset --hard HEAD~:将代码库回滚到上一个版本git reset --hard HEAD^^:往上回滚两次,以此类推git reset --hard HEAD~100:往上回滚100个版本git reset --hard 版本号:回滚到某一特定版本必须先将本地仓库和远程仓库关联才能传:
首先需要将本地服务器的公钥:./ssh/id_ras.pub文件传给云服务器,如果本地没有ssh就生成一个。
git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库
git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下
SSH
-
ssh user@hostname 登录服务器。
user:用户名
hostname:IP地址或者域名 -
给要登录的服务器配置别名:
~/.ssh/config(~和 直接cd都是进入家[$HOME]目录)Host myserver1HostName IP地址或域名User 用户名 -
配置免密登录,想免密码登录哪个服务器,就将公钥传给哪个服务器即可。将公钥的内容复制到
~/.ssh/authorized_keys -
ssh 后边也可以执行命令,
ssh user@hostname command, 再配合Shell 实现管理多服务器的运维。
相关文章:
LINUX学习记录
回顾系列:两天的时间(2023.2.24-2023.2.25)重新学了遍Linux基础课,收获非常多,以前只会一些简单的Linux命令,对shell,git,管道,复杂Linux命令都不熟悉,学完之…...
华为OD机试用Python实现 -【狼羊过河 or 羊、狼、农夫过河】(2023-Q1 新题)
华为OD机试题 华为OD机试300题大纲狼羊过河 or 羊、狼、农夫过河题目描述输入描述输出描述说明示例一输入输出说明Python 代码实现代码实现思路华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址…...
【SAP Abap】X-DOC:SAP ABAP 语法更新之Open SQL
SAP ABAP 语法更新之Open SQL1、前言2、演示1、前言 自从 SAP 推出 SAP ON HANA,与之相随的 AS ABAP NW 7.40 版本以后,ABAP 语法也有了较多的更新,本篇对 Open Sql的语法更新部分做一个DEMO演示。 NW 7.40 以前 OpenSQL 的限制:…...
leetcode 困难 —— 数组中的逆序对(分治法)
题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 题解: ① 我最开始想的蠢方法(会超时,可跳过ÿ…...
02.24:图片的风格转换
Github网址:https://github.com/lengstrom/fast-style-transfer 在anaconda prompt中切换环境命令:activate 环境名 列出所有环境名:conda info --envs 安装环境:conda create -n 环境名 pythonx.x.x 删除某环境:co…...
[SSD综述 1.3] SSD及固态存储技术半个世纪发展史
在我们今天看来,SSD已不再是个新鲜事物。这多亏了存储行业的前辈们却摸爬滚打了将近半个世纪,才有了SSD的繁荣, 可惜很多前辈都没有机会看到。所有重大的技术革新都是这样,需要长期的技术积累,一代一代的工程师们默默的…...
PAT 1023 组个最小数(分数20)题目有bug
目录 题目描述: 题目讲解: 框架构建: 代码部分: 一个bug: 题目描述: 给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(…...
QML 中的 5 大布局
作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 QML 中,可以通过多种方式对元素进行布局 - 手动定位、坐标绑定定位、锚定位(anchors)、定位器和布局管理器。 说到 anchors,可能很多人都不太了解,它是 QML 中一个非常重要的概念,主要提供了一种相…...
使用Python进行数据分析——线性回归分析
大家好,线性回归是确定两种或两种以上变量之间互相依赖的定量关系的一种统计分析方法。根据自变量的个数,可以将线性回归分为一元线性回归和多元线性回归分析。一元线性回归:就是只包含一个自变量,且该自变量与因变量之间的关系是…...
我眼中的柔宇科技
关注、星标公众号,直达精彩内容来源:技术让梦想更伟大作者:李肖遥很早就知道了柔宇科技,当时是因为知道创始人刘自鸿,23岁清华本硕毕业,26岁获斯坦福大学电子工程博士学位,历时不超过3年&#x…...
Allegro如何快速把视图居中显示操作指导
Allegro如何快速把视图居中显示操作指导 用Allegro进行PCB设计的时候,为了方便检查和设计,时常需要将视图居中显示。一般地,会使用鼠标的中键进行放大和缩小,或者使用Zoom in和Zoom out来调整视图 Allegro还支持快速将视图居中 具体操作如下 点击View...
搜索相关功能
一、进入搜索页面 1.1 在pages下创建搜索页面为:search 1.2 在index.vue中点击进入搜素页面 onNavigationBarButtonTap(e){if(e.floatleft){uni.navigateTo({url:/pages/search/search})}},1.3 在pages.json中配置搜索页面头部 {"path" : "pages/…...
【从零开始制作 bt 下载器】一、了解 torrent 文件
【从零开始制作 bt 下载器】一、了解 torrent 文件写作背景了解 torrent 文件认识 bencodepython 解析 torrent 文件解密 torrent 文件结尾写作背景 最先开始是朋友向我诉说使用某雷下载结果显示因为版权无法下载,找其他的下载器有次数限制,于是来询问我…...
SystemVerilog-时序逻辑建模(5)多个时钟和时钟域交叉
数字硬件建模SystemVerilog-时序逻辑建模(5)多个时钟和时钟域交叉数字门级电路可分为两大类:组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点,在后面会作为单独的主题处理。组合逻辑描述了门级电路,其中逻…...
基本中型网络的仿真(RYU+Mininet的SDN架构)-以校园为例
目录 具体问题可以私聊博主 一、设计目标 1.1应用场景介绍 1.2应用场景设计要求 网络配置方式 网络技术要求 网络拓扑要求 互联互通 二、课程设计内容与原理 (1)预期网络拓扑结构和功能 (1)网络设备信息 …...
西北工业大学大学物理(II)期末试题选填解析2021-2022
2 金属薄片,就暗示了载流子是电子了。3 熟练掌握左右手即可。4 又是位移电流。6 感应电场。随时间变化着的磁场能在其周围空间激发一种电场,它能对处于其中的带电粒子施以力的作用,这就是涡旋电场,又叫感生电场。涡旋电场是非保守…...
【USB】windows热插拔通知接口分析
文章目录接口介绍概述过滤器介绍举例接收通知创建窗口参考文档接口介绍 概述 window提供了RegisterDeviceNotificationW方法,可以用来监听设备的热插拔事件。 HDEVNOTIFY RegisterDeviceNotificationW([in] HANDLE hRecipient,[in] LPVOID NotificationFilter,[in]…...
CMake入门
课程地址 文档地址 CMake可以用于所有的编程语言 HelloWorld 编写一个C文件: //hello.cpp #include <iostream>int main() {std::cout << "hello, world" <<std::endl;return 0; }手动编译: c hello.cpp书写CMakeList…...
python中一种编写config文件并及时更新的方法
contents0. Intro1. config.py2. 调用以及更新0. Intro 在pytorch或者其他深度学习框架中,有许多超参数需要调整,包括learning_rate,training_data_path等,因此编写一个config文件统一存放这些参数,方便调用/查看/修改…...
基于Windows下离线安装当前最新Arduino ESP32 SDK(2.0.7)固件开发包
基于Windows下离线安装当前最新Arduino ESP32 SDK(2.0.7)固件开发包✨写这篇的文章的初衷,是由于在前几天想通过离线一键安装包方式实现升级安装,结果发现解压后,可以找到开发板,但是无法上传代码ÿ…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
