Ubuntu指令学习(个人记录、偶尔更新)

news/2025/2/13 1:01:31/

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脚本,定义环境变量然后重启生效,这样无论是哪个用户登陆都可以有这个环境变量了。


http://www.ppmy.cn/news/1571567.html

相关文章

CentOS虚机在线扩容系统盘数据盘

最近在制作Openstack下的镜像,用户需要CentOS6以及CentOS7的虚机镜像,遇到了些关于系统盘以及数据盘在线扩容的问题,故此整理一下。 ​ 传统我们想对磁盘在线热扩容,必然会想到LVM逻辑卷。如果没有LVM逻辑卷的情况下,…

CSS 性能优化全攻略:提升网站加载速度与流畅度

系列文章目录 01-从零开始学CSS选择器:属性选择器与伪类选择器完全指南 02-避免样式冲突:掌握CSS选择器优先级与层叠规则的终极指南 03-如何精确掌控网页布局?深入解析 CSS 样式与盒模型 04-CSS 布局全面解析:从传统浮动到现代 F…

Spring Boot整合DeepSeek实现AI对话(API调用和本地部署)

本篇文章会分基于DeepSeek开放平台上的API,以及本地私有化部署DeepSeek R1模型两种方式来整合使用。 本地化私有部署可以参考这篇博文 全面认识了解DeepSeek利用ollama在本地部署、使用和体验deepseek-r1大模型 Spring版本选择 根据Spring官网的描述 Spring AI是一…

本地部署DeepSeek Nodejs版

目录 1.下载 Ollama 2.下载DeepSeek模型 3.下载 ollama.js 1.下载 Ollama https://ollama.com/ 下载之后点击安装,等待安装成功后,打开cmd窗口,输入以下指令: ollama -v 如果显示了版本号,则代表已经下载成功了。…

Go 中的 7 个常见接口错误

Go 仍然是一门新语言,如果你正在使用它,它很可能不是你的第一门编程语言。 不同的语言,既为你带来了经验,也带来了偏见。你用以前的任何语言做的事情,在 Go 中用相同的方法可能不是一个好主意。 学习 Go 不仅仅是学习一种新的语法。这也是学习一种新的思维方式来思考你的…

redis底层数据结构——链表

文章目录 定义内部实现总结 定义 链表提供了高效的节点重排能力,以及顺序性的节点访间方式,并且可以通过增删节点来灵活地调整链表的长度。 作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有…

Android 系统面试问题

一.android gki和非gki的区别 Android GKI(Generic Kernel Image)和非GKI内核的主要区别在于内核设计和模块化程度,具体如下: 1. 内核设计 GKI:采用通用内核设计,与设备硬件分离,核心功能统一…

c++ haru生成pdf输出饼图

#define PI 3.14159265358979323846 // 绘制饼图的函数 void draw_pie_chart(HPDF_Doc pdf, HPDF_Page page, float *data, int data_count, float x, float y, float radius) { float total 0; int i; // 计算数据总和 for (i 0; i < data_count; i) { tot…