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)固件开发包✨写这篇的文章的初衷,是由于在前几天想通过离线一键安装包方式实现升级安装,结果发现解压后,可以找到开发板,但是无法上传代码ÿ…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
