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)固件开发包✨写这篇的文章的初衷,是由于在前几天想通过离线一键安装包方式实现升级安装,结果发现解压后,可以找到开发板,但是无法上传代码ÿ…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...