Skip to main content

13 posts tagged with "ubuntu"

View All Tags

shell终端使用代理

· One min read

需求场景

有时候下载部分软件,需要使用代理,比如homebrew,所以需要终端网络走代理。

解决方案

 alias setproxy="export ALL_PROXY=socks5://127.0.0.1:1080" 
alias unsetproxy="unset ALL_PROXY"

Windows 终端

set HTTPS_PROXY=http://127.0.0.1:10808
set HTTP_PROXY=http://127.0.0.1:10809

set HTTPS_PROXY=
set HTTP_PROXY=

Windows WSL2解决方案

 cat /etc/resolv.conf|grep nameserver|awk '{print $2}'
alias setproxy="export ALL_PROXY=socks5://172.21.160.1:10808"
alias unsetproxy="unset ALL_PROXY"

ubuntu修改ssh登录提示信息

· One min read

需求场景

ssh 登录时,往往需要了解一些基本信息,如果每次登录都手动运行命令就太麻烦了。比如在 ssh 登录树莓派时,想要查看 cpu 温度和电压。

解决方案

/etc/profile.d/新增 temp-volt.sh 脚本文件,具体代码如下

#换行
echo ''
#运行命令查看cpu温度
#echo `vcgencmd measure_temp`
#执行脚本文件
source ~/raspberry-power-supply-check.sh

Linux下Tab补全忽略大小写

· One min read

需求场景

在mac中使用tab补全时会自动忽略大小写,而在ubuntu系统默认不会忽略大小写的。

解决方案

/etc/inputrc文件中增加配置

# auto complete ignoring case 
set show-all-if-ambiguous on
set completion-ignore-case on

Ubuntu删除仓库及其 GPG 密钥

· One min read

删除仓库

通过公钥安装的非官方仓库会被保存在/etc/apt/sources.list.d目录下,找到相关文件删除即可

删除GPG密钥

sudo apt-key list
sudo apt-key del 73C62A1B #只需要输入密钥后8位即可

ubuntu安装samba文件共享系统

· One min read

安装软件包

sudo apt install samba

修改配置文件

sudo vim /etc/samba/smb.conf
新增以下配置

[shared]
comment = shared directory
path = /data/shared
public = yes
writable = yes
available = yes
browsable = yes
create mask = 0777
directory mask = 0777

修改目录权限

chmod 777 -R /data/shared家庭局域网环境下给777即可

测试参数是否正确

testparm

重启samba

sudo systemctl restart smbd

ubuntu开机自动挂载硬盘

· 2 min read

步骤一:查看所有硬盘信息

sudo fdisk -l

步骤二:格式化需挂载的硬盘(根据需要确定文件系统)

sudo mkfs.ext4 /dev/sda

步骤三:创建/data 目录

sudo mkdir /data

步骤四:挂载分区

sudo mount /dev/sda /data

步骤五:查看磁盘分区的 UUID

sudo blkid

步骤六:配置开机自动挂载

sudo vim /etc/fstab
在配置文件中加入UUID=11263962-9715-473f-9421-0b604e895aaa /data ext4 defaults 0 1
参数说明<fs spec> <fs file> <fs vfstype> <fs mntops> <fs freq> <fs passno>

<fs spec>:分区定位,可以给UUID或LABEL,例如:UUID=6E9ADAC29ADA85CD或LABEL=software
<fs file>:具体挂载点的位置,例如:/data
<fs vfstype>:挂载磁盘类型,linux 分区一般为 ext4,windows 分区一般为 ntfs
<fs mntops>:挂载参数,一般为defaults
<fs freq>:磁盘检查,默认为0
<fs passno>:磁盘检查,默认为0,不需要检查

fs_freq:用来决定哪一个文件系统需要执行dump操作,0就是不需要;
fs_passno:是系统重启时fsck程序检测磁盘的顺序号 1 是root文件系统,2 是别的文件系统。fsck按序号检测磁盘,0表示该文件系统不被检测 dump 执行ext2的文件系统的备份操作 fsck 检测和修复文件系统

步骤七:重启系统验证

sudo reboot

ubuntu替换arm国内源

· One min read

需求场景

树莓派装了ubuntu mate桌面系统,替换为国内ubuntu源报错。

报错原因

清华,阿里等镜像源中ubuntu不包含arm源,arm源在ubuntu-ports中。

解决方案

ubuntu替换为ubuntu-ports即可

# 清华源ubuntu20.04
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse

vim 常用命令

· 2 min read

需求场景

当ssh远程登录linux服务器时,修改文件是最常见的需求了。一开始学了点vim的基础操作,简单的修改文件中的几个值不是问题。后来慢慢的需要修改的东西变多了(大概是折腾的更深入了吧),这时简单的修改已经不太好使了。后来了解到vscode的远程编辑文件,这是真的香啊。以为再也不需要学vim这么复杂的东西了。直到后来,vscode远程编辑经常断线重连,吃服务器内存很高,cpu负载爆高,而且时不时总有终端访问服务器的需求。才发现,vscode远程编辑不是银弹啊,还是老老实实学点vim的基本操作吧,孰能生巧嘛。

显示

set nu显示行号

查找

/ 向下查找(配合n使用)
? 向上查找(配合n使用)

移动

:n 移动到n行
g^ 移动到行首
g$ 移动到行尾
gg 移动到文件开头
G 移动到文件结尾

编辑

y   v进入可视模式,光标选择复制
yy 复制一行
y^ 复制当前到行头的内容;
y$ 复制当前到行尾的内容;
ygg 复制文件开头
yG 复制到文件结尾
d 删除(命令同复制)
p 粘贴
u 撤销

linux目录结构详解(思维导图)

· One min read

前沿

说来惭愧,用了这么久的 linux 服务器,对 linux 各个目录的作用并不清楚,有时候需要新增配置文件,日志,或者程序时往往不知道放哪里比较合适。查找配置文件,日志时也不知道到会被储存在哪些可能的地方。总的来说,对文件的管理没有做的很好。所以,找了下面这张 linux 目录的思维导图,方便自己查阅。

systemctl设置开机启动,管理service

· 2 min read

需求场景

有时候需要将go项目或其他项目加入service,并且实现开机自启动。

配置文件

systemd有两处可以配置,一处为系统配置文件位于/etc/systemd/system/,一处为用户配置文件/user/lib/systemd/system/,一般新增的开机启动service建议放在系统配置文件下。

步骤一:新增service文件

在/etc/systemd/system/目录下新增一个配置文件,如prometheus.service

[Unit]
Description=Prometheus
After=network-online.target

[Service]
ExecStart=/home/go-projects/prometheus-2.19.2.linux-amd64/prometheus.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

步骤二:执行systemctl命令

#刷新配置
sudo systemctl daemon-reload
#设置开机启动
sudo systemctl enable prometheus
#启动服务
sudo systemctl start prometheus

service文件参数说明

service文件分为[Unit],[Service],[Install]三部分

  • [Unit]

Description:描述
Documentation:文档
Before:定义启动顺序
After:定义启动顺序

  • [Service]

Type=服务类型
User=用户名
Group=用户组
ExecStart: 执行启动脚本
Restart:当服务进程 正常退出、异常退出、被杀死、超时的时候, 是否重新启动该服务
RestartSec:设置在重启服务(Restart=)前暂停多长时间

  • [Install]

Alias:服务别名
WangtedBy: 多用户模式下需要的

详细文档

service中文文档
service英文文档