Ubuntu 使用介绍
开发公司
Canonical Ltd. 是 Ubuntu Linux 操作系统背后的公司,一家由南非企业家马克·沙特尔沃思(Mark Shuttleworth)创立的私营公司,其主要使命是推广和促进开源软件项目的发展。它通过向企业提供专业的开源软件支持和服务,确保开源技术能够在商业环境中可靠、安全地应用。
- 核心产品与业务:
- Ubuntu: Canonical 是最著名的 Linux 发行版 Ubuntu 的发行商和主要维护者。Ubuntu 被广泛应用于个人电脑桌面、服务器、云计算环境(它是大多数公有云环境中最流行的操作系统)、物联网(IoT)、自动驾驶以及机器人等领域。
- 企业服务: 公司的主要商业模式是通过提供企业级支持、安全服务和咨询来盈利。他们为使用 Ubuntu 等开源软件的企业客户提供保障,包括安全更新、长期维护支持(LTS)和技术咨询服务。
- 开源理念: Canonical 致力于提供可以自由获取、部署、维护和升级的开源软件。他们不区分商业版和社区版,而是将高质量的发行版免费提供给所有人,并通过服务来获得收入。
- 全球布局:
- Canonical 的总部设在英国伦敦。
- 它在全球各地设有办事处,包括波士顿、圣保罗、蒙特利尔、上海和台北。
- 在中国大陆,Canonical 设有子公司科能(上海)软件科技有限公司。
- 其他重要项目/平台:
- Launchpad: 这是一个用于协作开发、缺陷跟踪和软件本地化的平台。
- 云计算/容器技术: Canonical 积极参与和支持 OpenStack、Kubernetes(提供 MicroK8s 等轻量级解决方案)、LXD 等云和容器技术,为企业提供部署和管理云环境的工具和服务。
基础知识
- 版本
- 从 2004 年 10 月,每 6 个月发一个新版,命名格式为:
Y.MM 即 年.月
- 普通版本 18 个月支持
- 长期支持板
LTS(Long Term Support) 5 年支持,双年的 04 月发布的为长期支持版,如 22.04
22.04 升级到 24.04 命令:sudo do-release-upgrade -d
- iso 下载地址
- cloud-images
- ubuntu 默认的
sh 是 dash,切换为 bash 命令:sudo dpkg-reconfigure dash 输入 no
- 默认 dash 解析 bash if 语法报错:
[: XXXX: unexpected operator,需要使用 dash 语法,如 bash 的 == 使用 = 替代
/etc/localtime 时区文件,源文件在 /usr/share/zoneinfo 目录下
版本
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
$ cat /etc/issue
Ubuntu 20.04.5 LTS \n \l
machine-id
参考
/var/lib/dbus/machine-id
/etc/machine-id
$ ls -lhart /etc/machine-id
-r--r--r-- 1 root root 33 Jan 13 2022 /etc/machine-id
$ ls -lhart /var/lib/dbus/machine-id
lrwxrwxrwx 1 root root 15 Jan 13 2022 /var/lib/dbus/machine-id -> /etc/machine-id
$ cat /etc/machine-id
62a45cd2213b47fe9d63b63df55297dd
rm -f /etc/machine-id /var/lib/dbus/machine-id
dbus-uuidgen --ensure=/etc/machine-id
dbus-uuidgen --ensure
Home 目录下中文目录为英文
# 环境变量
export LANG=en_US
# 执行
xdg-user-dirs-gtk-update
# 弹出页面,点击update
# 环境变量
export LANG=zh_CN.UTF-8
# 执行
xdg-user-dirs-gtk-update
# 弹出页面,点击保留旧的名称
命令行和图形桌面模式切换
- 按
Ctrl + Alt + (F1~F6中的任意一个) 进入命令行模式
- 按
Ctrl + Alt + F7 进入图形桌面模式
google pinyin
- Fcitx 是一个轻量级输入方法框架,旨在为 Linux 提供独立的环境语言支持
- 推荐使用 Fcitx5,不要使用
apt remove ibus
- chrome 输入不了中文,可以回退版本,历史版本下载
- 如何打出顿号
- 解决输入法无法输入中文中括号
【 和 】,修改文件,并重启输入法
$ sudo vim /usr/share/fcitx/data/punc.mb.zh_CN
[ 【
] 】
chrome 135 版本后无法输入中文
注销 ubuntu 登录输密码的时候右下角选择右下角选择 Ubuntu on Xorg 即可
初始化脚本
# dns
sed 's/#DNS=/DNS=223.5.5.5 223.6.6.6/g' -i /etc/systemd/resolved.conf
systemctl restart systemd-resolved.service
# apt
sed 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' -i /etc/apt/sources.list.d/ubuntu.sources
sed 's/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' -i /etc/apt/sources.list.d/ubuntu.sources
apt update
apt install vim curl wget psmisc tree tcpdump lrzsz fping unzip screen htop btop iotop iftop git rsync gcc bash-completion make ca-certificates curl jq vim wget net-tools python-is-python3 -y
# time
apt install systemd-timesyncd -y
sed 's/#NTP=/NTP=ntp.aliyun.com/g' -i /etc/systemd/timesyncd.conf
systemctl restart systemd-timesyncd.service
# pip
apt install python3-full python3-pip python-is-python3 -y
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
mv /root/.config/pip/pip.conf /etc/
# ssh
sed 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' -i /etc/ssh/sshd_config
sed 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' -i /etc/ssh/sshd_config
systemctl restart ssh.service
# disable upgrade
sudo systemctl stop apt-daily.service
sudo systemctl disable apt-daily.service
sudo systemctl stop apt-daily-upgrade.timer
sudo systemctl disable apt-daily-upgrade.timer
# ansible
# apt install python3-pip -y
pip3 install ansible --break-system-packages
# container
apt install docker.io docker-compose -y
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ghihfm4j.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
# clean
apt clean all
history -c
Gnome
- GVFS 是 GNOME 桌面系统的虚拟文件系统,支持通过 SFTP、FTP、WebDAV、SMB 等访问远程数据,GVFS 包含两个部分:
- GIO 作为 GLib 的一部分的新共享库,提供了 针对 GVFS 的 API
- GVFS 本身是一个包含多种文件系统和协议(如 SFTP、FTP、DAV、SMB 和 ObexFTP)支持的后台软件包
- GVFS 默认挂载点
/run/user/1000/gvfs
时显示 CPU、内存、网速
sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor -y
sudo apt-get update
sudo apt-get install indicator-sysmonitor
无人值守升级
apt install unattended-upgrades
unattended-upgrades --dry-run --debug
systemctl start unattended-upgrades
# 配置文件
$ cat /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
};
Unattended-Upgrade::Package-Blacklist {
"package-name-xx";
"package-name-xxx";
};
密钥环解锁密码
去掉默认密钥环的密码方法,步骤如下:
- 打开应用程序 -> 附件 ->
密码和加密密钥(或在终端中输入 seahorse)
- 切换到密码选项卡
- 找到一个密码密钥环
- 右键更改密码
- 然后什么都不要填
- 直接提交
关闭自动更新命令
# 关闭 Update-Package-Lists
sudo sed -i.bak 's/1/0/' /etc/apt/apt.conf.d/10periodic
# 关闭 unattended-upgrades
sudo sed -i.bak 's/1/0/' /etc/apt/apt.conf.d/20auto-upgrades
## 也可以通过以下命令选择 No
sudo dpkg-reconfigure unattended-upgrades
# 禁用 unattended-upgrades 服务
sudo systemctl stop unattended-upgrades
sudo systemctl disable unattended-upgrades
# 可选:移除 unattended-upgrades (sysin)
#sudo apt remove unattended-upgrades
禁用内核更新
sudo apt-mark hold linux-generic linux-image-generic linux-headers-generic
# 恢复内核更新
sudo apt-mark unhold linux-generic linux-image-generic linux-headers-generic
或在下面文件找到 Package-Blacklist 字段,加入如下内容
$ sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Package-Blacklist {
"linux-generic";
"linux-image-generic";
"linux-headers-generic";
};
安装
- USB 启动盘制作
- rufus
- etcher Flash OS images to SD cards & USB drives, safely and easily
F&Q
Ubuntu 无法打开 terminal 之修复
Ubuntu 一般可以安装 XTerm、Konsole、Gnome-Terminal(即默认的 Terminal)等,通过 Ubuntu Software 安装 XTerm 即可进入 bash
重启 Gnome
Authentication is required to run gvfsd-admin daemon
alt + F2 在弹出框中输入 r 回车确定重启(该方法重启 Gnome 时当前窗口将消失,但正在运行的应用程序会继续运行)
docker 镜像
Ubuntu docker 镜像默认最小化安装(不包含 doc 等),使用如下命令解除该限制:
yes | unminimize
Syntax error: Bad for loop variable
Ubuntu 中使用 C 语言的for((i=1;i<10;i++)); do出现如下错误
$ ls -lh /bin/sh
lrwxrwxrwx 1 root root 4 Jan 13 2022 /bin/sh -> dash
dpkg-reconfigure dash
for i in `seq $num`; do
echo $i
done
ubuntu 下 sudo 命令执行慢的解决办法
将 hostname 添加到 /etc/hosts 中