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:压缩传输…...

C++23 新特性解析
引言:C的持续进化 在ISO C标准委员会的不懈努力下,C23作为继C20后的又一重要迭代版本,带来了十余项核心语言特性改进和数十项标准库增强。本文将深入解析最具实用价值的五大新特性,介绍std::expected到模块化革命。 编译器支持 …...

算法05-堆排序
堆排序详解 堆排序(Heap Sort)是一种基于二叉堆数据结构的排序算法。它的核心思想是利用堆的性质(最大堆或最小堆)来实现排序。堆排序分为两个主要步骤:建堆和排序。 1. 什么是堆? 堆是一种特殊的完全二叉…...

Arrays工具类详解
目录 1. Arrays.toString() 方法 2. Arrays.deepToString() 方法 3. Arrays.equals(int[ ] arr1, int[ ] arr2) 方法 4. Arrays.equals(Object[] arr1, Object[] arr2) 方法 5. Arrays.deepEquals(Object[] arr1, Object[] arr2) 方法 6. Arrays.sort(int[] arr) 方法 7…...

无人机图像拼接数据的可视化与制图技术:以植被监测为例
无人机技术在生态环境监测中的应用越来越广泛,尤其是在植被监测领域。通过无人机获取的高分辨率影像数据,结合GIS技术,可以实现对植被覆盖、生长状况等的精确监测与分析。本文将通过一个实际案例,详细讲解无人机图像拼接数据的可视…...

在 debian 12 上安装 mysqlclient 报错
报错如下 Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting mysqlclientUsing cached https://pypi.tuna.tsinghua.edu.cn/packages/61/68/810093cb579daae426794bbd9d88aa830fae296e85172d18cb0f0e5dd4bc/mysqlclient-2.2.7.tar.gz (91 kB)Installi…...

python基础入门:7.1迭代器与生成器
Python迭代器与生成器深度解析:高效处理海量数据的利器 # 大文件分块读取生成器模板 def chunked_file_reader(file_path, chunk_size1024*1024):"""分块读取大文件生成器"""with open(file_path, r, encodingutf-8) as f:while Tru…...

Docker 容器 Elasticsearch 启动失败完整排查记录
背景 在服务器上运行 Docker 容器 es3,但 Elasticsearch 无法正常启动,运行 docker ps -a 发现 es3 处于 Exited (1) 状态,即进程异常退出。 本次排查从错误日志、容器挂载、权限问题、SELinux 影响、内核参数等多个方面入手,最…...

达梦数据使用笔记
相关文档: 达梦官网 达梦技术文档 1.安装完成后在开始菜单中搜索DM 目录:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\达梦数据库 下有所有相关信息 2.数据迁移 https://eco.dameng.com/document/dm/zh-cn/start/mysql_dm.html https:…...

操作系统中的任务调度算法
一、引言 在操作系统中,任务调度算法是核心组件之一,它负责合理分配有限的 CPU 资源,以确保系统的高效运行和良好的用户体验。任务调度的目标是实现公平性、最小化等待时间、提高系统吞吐量,并最大化 CPU 的利用率。不同的任务调…...

Linux 虚拟服务器(LVS)技术详解
一、LVS 概述 Linux 虚拟服务器(Linux Virtual Server,简称 LVS)是由章文嵩博士开发的一种开源的服务器集群技术,它工作在 Linux 内核空间,为构建高可用、可扩展的网络服务提供了一种高效的解决方案。LVS 可以将多个真…...