【Ubuntu】运维的学习笔记

这篇教程涵盖了Linux操作系统的基础知识,包括Bash命令、文件管理、软件安装与卸载、进程管理、环境变量设置、硬件信息查看以及系统维护。通过学习,你可以掌握如何在终端执行bash命令、查看和管理文件、安装软件、调整环境变量,以及进行系统故障排查。此外,还介绍了SSH密钥连接、TTY使用和系统资源监控等进阶操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Keywords: Ubuntu, Linux

1. 学习教程

《Lecture 1: Course Overview + The Shell (2020)》

2. 发行版信息

lsb_release -a
uname -r

3. 常见术语

根目录:/

4. 常见配置目录

4.1 /etc: 存储系统级配置的目录

讯飞星火:etc是“etcetera”的缩写,意为“等等”;

4.1.1 /etc/apt/sources.list: 软件包源配置

4.2 /usr/share/: 共享数据文件(by Claude3.7-Sonnet-Poe)

"/usr/share/"目录主要用于存储与系统架构无关的共享数据文件。这个目录包含了许多应用程序可以共同使用的数据,例如:

  • 图标、主题和壁纸
  • 应用程序的文档和手册页
  • 字体文件
  • 本地化文件(翻译和语言支持)
  • 声音文件
  • 模板文件
  • 应用程序的共享配置数据

这个目录中的文件通常可以被多个程序共享使用,而且它们通常是只读的,不会在程序运行时被修改。"/usr/share/"目录下的内容对于系统的正常运行非常重要,不过,作为普通用户,一般不需要直接修改这里的文件。

5. 常用快捷键

快捷键功能
Ctrl + Alt + T打开终端
Alt + Prtsc + [REISUB]使用系统管理器重启电脑
([REISUB]需要等待1-2秒)

6. 管理员模式

su root

7. 环境变量

Ubuntu中的环境变量是区分大小写的;

8. 基础指令

查看指令的文档man cmd
查看指令对应的程序路径:which cmd
查看当前工作目录(当前目录所在的绝对路径):pwd
登出(关闭终端):logout

9. Bash中的通配符(*?[]

通配符含义
*0或多个字符
?单个字符
[]指定字符集,如:[0-9]匹配数字

10. 终端使用

修改终端启动设置:

gedit ~/.bashrc

9.1 常见操作

(1)“在终端中执行bash命令”

Note
在Linux系统中,在已登录的会话中执行bash命令会启动一个新的 bash shell,这个新启动的shell是非登录shell,它会读取并执行~/.bashrc文件来进行初始化设置。

我们咨询了ChatGPT:

ChatGPT4:
在开发环境中,在终端执行 bash 命令可能有几个原因:

  1. 启动新的 Bash 实例:执行 bash 命令会启动一个新的 Bash shell 实例。这可能是为了确保使用的是标准的 Bash 环境,特别是在不确定当前终端使用的是哪个 shell(比如 zsh, fish, 或其他)的情况下。
  2. 初始化环境变量和设置:新的 Bash 实例会读取并执行 ~/.bashrc 文件(针对非登录shell)。如果在开发工作中有特定的环境变量或别名设置在 ~/.bashrc 中,这会确保这些设置被正确加载和应用。
  3. 清晰的会话开始:在一些情况下,开发人员可能想要一个干净的、未受之前命令影响的shell环境。执行 bash 命令可以提供一个新的、干净的工作环境。

总的来说,这样做是为了确保在一个预期的、配置正确的 Bash 环境中工作,特别是在多shell环境或复杂的开发设置中。

9.2 使用代理

在雷锋V中开启系统代理,然后重启终端;

9.3 重启终端

(gnome-terminal &) && exit

Ubuntu 22.04 LTS 默认使用的是GNOME桌面环境

11. 查看硬件信息

5.1 查看显卡信息

lspci | grep -i vga

12. 文件管理

12.1 常见文件格式

12.1.1 tar.gz:压缩文件格式

tar.gz为后缀的文件是一种压缩文件,在Linux和macOS下常见,Linux可以直接解压使用这种压缩文件。

12.2 查看文件:cat

12.3 文件解压缩

10.3.1 解压文件

解压.zip文件
unzip file.zip

这将会将压缩文件解压到当前目录下;

解压文件到特定目录下
unzip file_zip -d _home_user_target_directory

10.3.2 压缩文件

Bash命令压缩打包文件夹

使用tar命令打包文件夹

tar zcvf FileName.tar.gz DirName 

参数说明:

  • z:使用gzip指令处理备份文件;

12.4 创建软链接(ln

请参考博文【《Ubuntu学习笔记》——如何建立软链接】

12.5 更改文件夹所有者:chown

13. 软件安装

snap可以提供更新的、隔离的或跨平台的软件包;一般来说,会比apt提供的软件包版本更高;
Apt: Advanced Packaging Tool,用来管理Linux上的软件包;是高于dpkg的high-level接口工具。

13.1 从仓库中安装软件

Apt安装

sudo apt-get package-name

13.2 Snap命令无法安装deb文件

13.3 .deb文件安装:apt > dpkg

sudo apt install <path>/<package_name>.deb

13.4 .run文件安装

修改安装文件权限

chmod +x Install.run

+x:给文件添加可执行权限

运行安装文件

sudo ./Install.run

11.5 Bash安装

./Software.sh

Note
如果提示:“bash: ./xxx.sh: 权限不够”,需要为安装脚本添加运行权限,

chmod u+x Anaconda3-2022.10-Linux-x86_64.sh

11.6 Tar.gz安装

11.6.1 解压文件

右键单击文件,选择提取到此处

13. 软件卸载:apt > dpkg

关于Ubuntu中用于卸载软件包相关命令的讲解,请参考博文《Ubuntu apt-get彻底卸载软件包》

13.1 查询应用包名:apt search keywords

13.2 卸载软件及其配置文件:apt purge

sudo apt purge package_name

14. 运行文件

7.1 文件类型介绍

.sh: Shell文件,一般Bash脚本文件。

7.2 文件执行

# 执行.sh脚本
./script.sh
# 需要加上./才能执行

如果出现“权限不够”的提示:

bash: …/…/script.sh: 权限不够

这可能是因为此sh脚本的文件权限不够,可以使用chmod 777 ./script.sh给改变文件的权限:

15. 流的使用

14.1 “管道符|,跟重定向符>的区别是什么?”

管道和重定向符号是不同的概念,有着不同的用途。管道用于将命令的输出传递给另一个命令,而重定向符号>用于将输出写入另一个文件中。

16. 权限管理

11.1 赋予.sh文件“sudo NOPASSWD”权限

请参考资料《python - How do I sudo a command in a script without being asked for a password? - Ask Ubuntu》
这个设置最主要的作用是:执行sudo */script.sh不需要输入密码
要实现这个设置效果,需要使用visudo修改sudoers文件,sudoers文件对用户使用sudo的权限进行管理,
这里我们准备修改sudoers文件,使script.sh程序在sudo执行时不需要输入用户密码
在修改时,我们发现sudoers文件提示:

# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.

这里是说Ubuntu希望关于sudoers的设置请考虑放在本地设置/etc/sudoers.d/(目录)中,
相关的具体操作请参考《Ubuntu Manpage: sudoers — default sudo security policy plugin》
首先我们需要创建本地内容文件(local content)

sudo visudo -f /etc/sudoers.d/$usr_local
# usr_local: 自定义的本地内容文件,这里我用“usr_local”的格式命名
# 注意:这里一定要使用绝对路径“/etc/sudoers.d/...”

这里我们添加下面的设置:

$usr_name$ ALL=(ALL) NOPASSWD: /home/usr_name/.../script.sh
# 这里usr_name为当前用户的用户名
# command部分需要填写指令的绝对路径

这里设置的格式请参考《Ubuntu Manpage: sudoers — default sudo security policy plugin》,搜索关键字NOPASSWD
如果是其它命令的话,设置语句的格式相同,不过注意:这里要使用命令程序的绝对路径,可以使用which指令来获得指令程序的绝对路径;

17. 输入法

11.1 英文输入法:ibus-typing-booster

添加输入法时,搜索boost其他

18. 文本编辑

在Ubuntu系统中,编辑文件可以使用Gedit和Vim这两个程序进行编辑,使用时这样来选择:

  • 图形界面:gedit
  • 终端界面:vim (如果无法使用图形界面就只能用vim了)

12.1 vim

12.1.1 vim的工作模式

命令模式:刚刚启动vim进入的模式

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符,比如我们此时按下i,则会进入输入模式;
于是,常用的几个命令有:

  • i:切换到输入模式,以输入字符。
  • x:删除当前光标所在处的字符。
  • ::切换到底线命令模式,以在底线行输入命令。
可视模式:“选中模式”

以底色加灰的方式高亮选中的字符区域;

模式切换
模式切换按键
命令模式 ⇒ 插入模式i
插入模式 ⇒ 命令模式Esc

7.1.2 vim中的常用命令

退出vim:q
退出vim(不保存)::q!
撤销:u

19. 文件管理

mkdir:创建文件夹

迭代删除文件夹

rm -r folder

重命名文件

mv oldname newname

查看软链接指向的具体路径

使用 long listing format 查看软链接:

ls -l /<path>/soft_link

20. 进程管理

19.1 查找进程:pgrep

pgrep是一个在Linux系统中广泛使用的工具,它允许用户根据进程名或其他属性来查找正在运行的进程ID(PID)。例如,如果想要查找名为“firefox”的进程,可以在Ubuntu终端中输入以下命令:

pgrep firefox

这将返回与“firefox”进程名称匹配的所有进程的PID。

21.TTY使用

在开机引导界面进入控制台:Ctrl + Alt + F1~F6(可以分别进入6个tty界面)

22.内存查看(gnome-system-monitor

图形化资源查看器:gnome-system-monitor
终端查看进程信息:top

11.2 Top查看内存信息

按内存排序进程信息:

top -o %MEM

参数说明:
%MEM:进程占用的物理内存与总内存的百分比

23. 硬盘管理

12.1 在Ubuntu系统中查看有几块物理硬盘——lsblk

step 1:打开终端,输入lsblk;
step 2:看到输出的结果如下:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb      8:16   0 223.6G  0 disk
├─sdb5   8:21   0  30.5G  0 part [SWAP]
├─sdb3   8:19   0 135.9G  0 part
├─sdb1   8:17   0     1K  0 part
└─sdb6   8:22   0  57.2G  0 part /
sdc      8:32   1 119.3G  0 disk
└─sdc4   8:36   1 119.3G  0 part /media/yucheng/Ubuntu 16.0
sda      8:0    0   1.8T  0 disk
├─sda5   8:5    0   1.8T  0 part
└─sda1   8:1    0     1K  0 part

这里“sd+a”:“sd”是硬盘标识,“a”是硬盘序号;
可以看到上面的提示信息有3块硬盘:分别是sda、sdb和sdc。

12.2 查看磁盘剩余空间

df -hl

查看根目录空间占用

在文件浏览器中打开根目录,在右键菜单中查看文件夹属性

12.3 磁盘空间清理

12.3.1 根目录磁盘清理

查看根目录可用空间
df -h /
常用清理命令

可以使用下面的命令进行清理:

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
查看/目录中占用空间最大的文件夹

关于如何查看最大占用的一级目录,可以参考博文《Ubuntu / 根目录 100%(清理 / 根目录)》

12.3.2 Home分区清理

  1. 删除不用的conda环境;

12.4 如何查看硬盘的读写速度

12.4.1 Ubuntu测试硬盘的读取速度

示例代码如下,

sudo hdparm -Tt /dev/sda

其中,
sudo:此命令需要管理员权限;
/dev/sda:表示硬盘的编号。

24. 环境变量

15.1 配置PATH环境变量

在配置编程环境时,我们有时候需要设置PATH环境变量,
请参考博文《Ubuntu 更改环境变量 PATH》
修改Ubuntu系统中的环境变量一共有4种方式

15.1.1 直接修改PATH值:

生效方法:立即生效。
有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置。
作用范围:仅对当前用户。

echo $PATH //查看当前PATH的配置路径
 
export PATH=$PATH:/xxx/xxx //将需配置路径加入$PATH  等号两边一定不能有空格
 
//配置完后可以通过第一句命令查看配置结果

15.1.2 修改.bashrc文件:

gedit .bashrc   //编辑.bashrc文件
//在最后一行添上: 
export PATH=$PATH:/xxx/xxx   //等号两边没空格

生效方法:(有以下两种)

1. 重新启动终端
2. 输入“source .bashrc”命令,立即生效

有效期限:永久有效
用户局限:仅对当前用户

25. update-alternatives:切换基础运行库版本

update-alternatives可以通过设置alternatives来指定可执行指令(例如:gcc)对应的程序路径;

设置指令软链接

格式:--install link name path priority [--slave link name path]
参数说明:
priority:在auto模式中用于选定最佳的链接选项。
slave:从属选项,在主选项生效时,会同时激活从属选项,例如:

update-alternatives --install /usr/bin/java java /usr/local/jre1.6.0_20/bin/javac 100
update-alternatives --install /usr/bin/java java /usr/local/jre1.6.0_20/bin/javac 100 --slave /usr/bin/javac javac /usr/local/jre1.6.0_20/bin/javac

移除name指向path的可选项

例如:sudo update-alternatives --remove java $JAVA_HOME/bin/java

移除name的所有选项:--remove-all name

关于如何移除name对应的所有选项,请参考官方文档《Ubuntu Manpage: update-alternatives - maintain symbolic links determining default commands》

26. 系统界面设置

14.1 使用GNOME插件设置系统标题栏(顶部通知栏)

之前我是用的GNOME-Chrome插件设置的,现在我们还是使用这个插件进行设置,
打开Chrome浏览器,点击右上角插件按钮,选择插件GNOME Shell integration
在这里插入图片描述
然后进入插件管理器中进行设置;

27. 网络连接

27.1 判断是否可以连接公网

curl https://www.baidu.com

如果可以正常连接,则会出现如下信息:
在这里插入图片描述

27.2 判断是否可以连接外网

curl https://api.ipify.org

27.3 打开VPN后需要重启终端才会生效

28. 远程连接

27.1 URL格式

URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。
也可认为由4部分组成:协议、主机、端口、路径
URL的一般语法格式为(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment

12.2 SSH密钥连接

使用SSH协议进行密钥连接的基本步骤如图所示
在这里插入图片描述

12.3 退出连接

logout

29. 故障处理

29.1 显示器黑屏,键盘按键和移动鼠标都无法唤醒

因为 ToDesk Linux客户端存在问题,会“不断产生左上角的托盘图标”,我们猜测长期使用会导致内存泄露,于是导致系统崩溃;

29.2 提示“/dev/sda1: clean…”,无法开机

请参考博文《Linux开机卡在/dev/sda1:clean,***files,***blocks解决方案》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值