Ubuntu指令学习(个人记录、偶尔更新)
Ubuntu指令学习
- 0、一点常用指令列表
- 一、Ubuntu下复制与移动,cp/mv
- 二、Ubuntu下echo 与 重定向>,>>
- 三、Ubuntu下chmod,用户权限
- 四、Ubuntu下的tar打包,gzip压缩
- 五、Ubuntu(22.04)下系统语言为中文,切换主目录文件名为英文。
- 六、Ubuntu下GitHub访问
- 七、Ubuntu使用sudo apt install安装时,提示正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 xxxx(unattended--upgr)持有的问题。
- 八、Ubuntu下执行脚本
- 九、Ubuntu下的环境变量
0、一点常用指令列表
| 指令 | 解释 |
|---|---|
| man | 命令 / 命令 --help 查看命令的使用方法 |
| ls | 查看当前文件夹下的内容, ls -a为看到所有文件包括隐藏文件, ls 1* 为查找1开 头所有文件,ls 1? 为查找一个以1开头的二字符文件名文件,?为一个字符 |
| pwd | 查看当前所在的文件夹,定位所在位置 |
| touch | 如果文件不存在就新建文件,一般为文本,touch .1.txt 为创建隐藏文件 |
| gedit | 文本编辑器,也可以用于创建文本,gedit 1.txt |
| mkdir | 创建文件夹 |
| rm | 删除文件, 加上 -f为强制删除,-r为递归删除; rm删文件不可恢复,可以sudo apt install trash-cli,再trash 文件 可放入回收站 |
| clear | 清屏 |
| tree | 以树形结构显示文件路径下的文件 |
| cat | 查看文件内容如cat 1.txt , cat -b 1.txt 则能知道文本有多少行 |
| grep | 搜索文件中的文本,-n 匹配行及行号,-i忽略大小写,如grep -n abc 1.txt, 这 个命令可以很好在无图形界面情况下进行搜索 |
| 丨 | 管道,也就是将丨左边命令输出的内容作为右边的输入再执行结果,比如 ls 丨 grep abc 也就是先查看当前路径的文件然后搜索文件名中含abc的项 |
| shutdown | 一分钟后关机, shutdown -r一分钟后重启,reboot为立刻重启, shutdown -c 为取消之前的关机计划,shutdown now 为立刻关机 |
| ifconfig | 查看网卡配置, ping 检测与另一台主机的连接 |
| passwd | 修改用户密码,一般忘记密码时会用,不过还有别的步骤 |
| su | 进入管理员模式,su root |
| date | 查询系统当前时间,cal为查看当前月的日历,cal -y查看一年的日历 |
| df | 显示磁盘剩余空间,df -h则可更可视化查看磁盘空间,比如以G,MB单位,du -h 则查看当前目录下文件的大小 |
| find | 查找文件的路径,find /usr/bin/ -name ".py"为查找某路径下的py文件 |
| ln -s | 源文件(用绝对路径) 链接后文件(用绝对路径) 创建软链接,相当于windows下的快捷方式 |
一、Ubuntu下复制与移动,cp/mv
cp 源文件路径 目标路径,如果要复制到根目录下要赋予管理员权限,使用sudo,一般配置环境的时候需要在根目录中移动文件。文件路径可以灵活修改,比如当前所在位置就已经三目标路径了,那cp到的目标路径可以用 .
cp ~/Desktop/1.txt ~/Pictures/
如果防止覆盖相同文件名的文件,可以加 -i。
复制的同时可以改名,如下
cp ~/Desktop/1.txt ~/Pictures/2.txt
mv和cp一样的使用方法,只不过源路径的文件无了。不过可以用move在同路径下将一个文件重命名,也只是覆盖而以。
二、Ubuntu下echo 与 重定向>,>>
echo 本身只是输出以下输入的东西,一般与重定向使用,配置环境时多与bashrc互动。
touch创建了一个空的文本,echo与重定向则可以创建有内容的文本,>会覆盖原有内容,>>则是在末尾的新行追加内容:
echo hello > 3.txt
>与>>可以单独使用,比如把其他指令得到的内容加到文本中:
tree >> 3.txt
或
ls >> 3.txt


三、Ubuntu下chmod,用户权限
+为赋予权限,-为删除权限,r为可读权限,w为可写权限,x为可执行权限。
chmod +/-rwx 文件名或目录名


三个数字分别给系统拥有者,组,其他用户的权限,4为r,2为w,1为x,若赋予完全的权限则为rwx之和即7,只赋予读写权限则为rw之和为6,其余类似,一般使用当前自己用户就是第一个数字就行。
chmod 755 文件名或目录名
四、Ubuntu下的tar打包,gzip压缩
Linux的压缩包主要为tar.gz,tar指是由tar打包的,gz指由gzip压缩的,tar只为打包文件,tar.gz为压缩文件,大小更小。
tar只负责打包,c为生成档案文件并创建打包文件,x为解开档案文件,v为列出解档案的详细过程并显示进度,f为指定档案名称其后一定为tar文件所以f常放选项最后。
# 打包文件
tar -cvf 打包文件.tar 被打包的文件或路径
# 解包
tar -xvf 打包文件.tar
加个-z即为调用gzip了。
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件或路径
# 解压缩文件,后面的目标路径可不用
tar -zxvf 打包文件.tar.gz -C 目标路径
此外还有对bzip2的压缩包的操作,用j来替代。
# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件或路径
# 解压缩文件,后面的目标路径可不用
tar -jxvf 打包文件.tar.bz2 -C 目标路径
五、Ubuntu(22.04)下系统语言为中文,切换主目录文件名为英文。
因为做项目的需求,主目录下的文件最好换成英文。

通过下面两条命令即可转换,en_US是英语的编号。接着重启就行。
export LANG=en_US
xdg-user-dirs-gtk-update
会弹出下面这个框,更新就好了。zh_CN是中文的代号。

接下来去看看源文件,在 /etc/default/ 下的locale就是语言相关的了

我们也已通过修改locale文件来修改中英文方式,上边那行LANG是修改主目录下的文件夹名字的语言的(可能也有其他地方被修改,暂时我没发现),下面那行LANGUAGE是修改整个系统的语言的,所以只需把LANG中的zh_CN改成en_US保存,就行。接着也要重启。
xdg-user-dirs-gtk-update
reboot

六、Ubuntu下GitHub访问
git clone https://ghproxy.com/(后面跟网址)

七、Ubuntu使用sudo apt install安装时,提示正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 xxxx(unattended–upgr)持有的问题。
这个问题可以归结为操作系统中的死锁问题,死锁定义如下:
死锁(Deadlock):是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。称此时系统处于死锁状态或系统产生了死锁。称这些永远在互相等待的进程为死锁进程。所占用的资源或者需要它们进行某种合作的其它进程就会相继陷入死锁,最终可能导致整个系统处于瘫痪状态。
在ubuntu系统终端下,用apt-get install 安装软件的时候,如果在未完成下载的情况下将终端中断,此时 apt-get进程可能没有结束。如果再次运行apt-get install 命令安装,可能会发生下面的提示:
无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
解决办法:强制解锁,命令:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
| 指令 | 解释 |
|---|---|
| ps | 查看当前系统的进程 |
| top | 实时监控系统中内存占有高的进程,使用q退出动态过程 |
| kill | 杀死进程,kill -9为强制杀死进程,如下图中PID为进程代号,60229为新建的 终端,kill了60229也就是关闭了那个终端,最好别kill掉root的进程 |

八、Ubuntu下执行脚本
脚本程序如shell脚本以.sh为后缀,python脚本以.py为后缀,perl脚本以.pl为后缀,执行脚本可以在终端中方便运行程序。这几种解释器的路径都在/usr/bin/下,所以一般写他们的脚本的时候会在第一行加上#!/usr/bin/python,#!/usr/bin/sh, #!/usr/bin/perl 。
执行脚本时,对.sh文件,用shell的语法。

.sh文件可以用下面四种方法执行。
sh 1.sh
bash 1.sh
source 1.sh
./1.sh # 必须chmod添加可执行权限才能
对python脚本,就 python 1.py 与 ./1.py 执行python脚本。

九、Ubuntu下的环境变量
ubuntu以shell脚本为基础,最基本的使用为先定义一个变量如 VALUE=value , 接着就使用这个变量如 ${VALUE} , 若后面有定界符则可以不用{}。

直接在终端中加入环境变量,生效方法为立即生效,有效期限是临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置,用户局限是仅对当前用户。
export OUTPUT=/usr/local

下面这样为把环境变量加到 PATH中。
export OUTPUT=$PATH:/usr/local
用户环境变量定义在~/.profile中,在其中加入环境变量就可以不局限于一个终端中,一般加在其末尾即可,需要重启才能生效。

用户环境变量还可以定义在~/.bashrc中,输入“source ~/.bashrc”命令,立即生效,有效期限为永久有效,用户局限是仅对当前用户。
sudo gedit ~/.bashrc
export OUTPUT=$PATH:/usr/local
而系统环境变量则是在/etc/profile.d/下建立的shell脚本,一般不直接修改profile,而是在目录下创建sh脚本,定义环境变量然后重启生效,这样无论是哪个用户登陆都可以有这个环境变量了。
相关文章:
Ubuntu指令学习(个人记录、偶尔更新)
Ubuntu指令学习 0、一点常用指令列表一、Ubuntu下复制与移动,cp/mv二、Ubuntu下echo 与 重定向>,>>三、Ubuntu下chmod,用户权限四、Ubuntu下的tar打包,gzip压缩五、Ubuntu(22.04)下系统语言为中文,切换主目录文件名为英文。六、Ubun…...
Visual Studio 进行单元测试【入门】
摘要:在软件开发中,单元测试是一种重要的实践,通过验证代码的正确性,帮助开发者提高代码质量。本文将介绍如何在VisualStudio中进行单元测试,包括创建测试项目、编写测试代码、运行测试以及查看结果。 1. 什么是单元测…...
【经验分享】Linux 系统安装后内核参数优化
在 Linux 系统安装后,进行内核优化有助于提升系统的性能、稳定性和安全性。以下是一些常见的内核优化操作: 修改/etc/sysctl.conf 文件 执行sysctl -p使配置生效。 kernel.shmmax 135185569792 kernel.shmall 4294967296 fs.aio-max-nr 3145728 fs.fi…...
linux统计文件夹下有多少个.rst文件行数小于4行
您可以使用 find 命令结合 wc 命令来统计文件夹下 .rst 文件行数小于 4 行的文件数量。以下是一个具体的命令示例: find /path/to/directory -name "*.rst" -type f -exec wc -l {} | awk $1 < 4 | wc -l解释: find /path/to/directory …...
使用开源项目xxl-cache构建多级缓存
xxl-cache简介 官网地址:https://www.xuxueli.com/xxl-cache/ 概述 XXL-CACHE 是一个 多级缓存框架,高效组合本地缓存和分布式缓存(RedisCaffeine),支持“多级缓存、一致性保障、TTL、Category隔离、防穿透”等能力;拥有“高性…...
LVDS接口总结--(5)IDELAY3仿真
仿真参考资料如下: https://zhuanlan.zhihu.com/p/386057087 timescale 1 ns/1 ps module tb_idelay3_ctrl();parameter REF_CLK 2.5 ; // 400MHzparameter DIN_CLK 3.3 ; // 300MHzreg ref_clk ;reg …...
Vue3(1)
一.create-vue // new Vue() 创建一个应用实例 > createApp() // createRouter() createStore() // 将创建实例进行了封装,保证每个实例的独立封闭性import { createApp } from vue import App from ./App.vue// mount 设置挂载点 #app (id为app的盒子) createA…...
玩转适配器模式
文章目录 解决方案现实的举例适用场景实现方式适配器模式优缺点优点:缺点:适配器模式可比上一篇的工厂模式好理解多了,工厂模式要具有抽象的思维。这个适配器模式,正如字面意思,就是要去适配某一件物品。 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格…...
2.11寒假作业
web:[SWPUCTF 2022 新生赛]js_sign 打开环境是这样的,随便输入进行看看 提示错误,看源码其中的js代码 这个代码很容易理解,要让输入的内容等于对应的字符串,显然直接复制粘贴是错的 这串字符看起来像是base64加密&…...
untiy 冰面与地面,物理材质的影响
效果 WeChat_20250211165601...
视频编解码标准中的 Profile 和 Level
视频编解码标准中的 Profile 和 Level 在视频编码标准(如 H.264/AVC、HEVC/H.265、H.266/VVC、AV1)中,Profile(配置文件) 和 Level(级别) 是两个重要的概念,它们用于定义编码器和解码器支持的特性、功能以及视频质量与编码效率之间的权衡。 Profile(配置文件) Pro…...
通用的将jar制作成docker镜像sh脚本
通用的将jar制作成docker镜像sh脚本 为了在将 JAR 制作成 Docker 镜像的过程中创建日志目录,可以对之前的脚本进行扩展。以下是改进后的脚本,会在镜像构建时在容器内创建日志目录,并将日志文件挂载到该目录下。 在生成的 Dockerfile 中添加…...
AUTOGPT:基于GPT模型开发的实验性开源应用程序; 目标设定与分解 ;;自主思考与决策 ;;信息交互与执行
目录 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序目标设定与分解自主思考与决策信息交互与执行AUTOGPT是一款基于GPT模型开发的实验性开源应用程序 目标设定与分解 自主思考与决策 信息交互与执行 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序,它能让大语言模…...
异步线程中使用RestTemplate注入空指针解决
在某种情况下,调用第三方或者jar文件中封装的httpClient时,上层调用采用异步线程调用,导致底层的RestTemplate注入为空,无法正常调用,需要强制将spring的上下文绑定到异步线程中。 强制传递 Spring 上下文到异步线程 …...
2024BaseCTF_week4_web上
继续!冲冲冲 目录 圣钥之战1.0 nodejs 原型 原型链 原型链污染 回到题目 flag直接读取不就行了? 圣钥之战1.0 from flask import Flask,request import jsonapp Flask(__name__)def merge(src, dst):for k, v in src.items():if hasattr(dst, __geti…...
说一下 jvm 有哪些垃圾回收器?
JVM 垃圾回收器对比表 垃圾回收器类型工作方式回收方式停顿时间适用场景优点缺点常见问题常见配置Serial GC串行单线程,STW年轻代:复制算法 老年代:标记-整理长小内存、单核CPU,如桌面应用或嵌入式设备简单高效,适用于…...
react国际化配置react-i18next详解
react PC端项目构建TS,react18.2.0antdviteaxiosreduxsassts 完整版代码下载: https://download.csdn.net/download/randy521520/88922625 react PC端项目构建,react18.2.0antdviteaxiosreduxsass完整版代码下载: https://downloa…...
Java并发编程——上下文切换、死锁、资源限制
文章目录 1.1上下文切换(1)上下文切换的概念(2)多线程一定比单线程快吗?(3)测量上下文切换如何减少上下文切换 1.2 死锁(1)死锁的定义(2)死锁产生…...
MS08067练武场--WP
免责声明:本文仅用于学习和研究目的,不鼓励或支持任何非法活动。所有技术内容仅供个人技术提升使用,未经授权不得用于攻击、侵犯或破坏他人系统。我们不对因使用本文内容而引起的任何法律责任或损失承担责任。 注:此文章为快速通关…...
ubuntu文件同步
1. 使用 rsync 同步文件 rsync 是一个常用的文件同步工具,可以在本地或远程系统之间同步文件和目录。 基本用法: rsync -avz /源目录/ 目标目录/-a:归档模式,保留文件属性。-v:显示详细输出。-z:压缩传输…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
