Ubuntu 是最流行的 Linux 发行版之一,广泛应用于开发、服务器运维和日常办公。掌握其常用命令是高效使用 Linux 的关键。本文详细介绍 Ubuntu/Linux 最常用的命令,涵盖文件操作、权限管理、软件安装等,帮助新手快速上手,并为有经验的用户提供参考。
一、sudo passwd root
直接使用root会增加系统风险,若特定场景需要使用root权限,可用如下命令开启:
sudo passwd root
Enter new UNIX password: (在这输入你的密码)
Retype new UNIX password: (确定你输入的密码)
passwd: password updated successfully
以后,如果在想获得root权限,只需进行如下的操作:
su root
Password: (在此输入你上面设置的密码)
二、rm -rf 删除
在 Linux系统中,rm -rf 是一个极其高效的删除命令,但也因其不可逆的特性被称为“最危险的命令”之一。误操作可能导致重要数据瞬间消失,甚至引发生产事故。
基本语法:
rm -rf <目录或文件>
在Android系统中,由于Android底层由Linux实现,我们在Android中删除某个文件,同样使用该命令。
其命令使用举例如下:
// 获得系统权限
adb root
// 重新挂载系统分区,使系统分区重新可写
adb remount
// 进入shell模式
adb shell
// 进入系统中的app应用目录
cd system/app
// 显示当前文件中的APP所有应用的名称
ls
// 删除文件与目录
rm -fr xxx.apk
// 重新启动手机(因为只有重启才能进行应用的删除,注意点!!!!)
reboot
三、解压缩
- 解压缩zip:
unzip xxx.zip
- 解压tar.gz
tar -xzvf ffmpeg-7.1.tar.gz # 解压 .tar.gz
- -x(extract)解压文件;
- -z(gzip)指定使用gzip解压(针对 .tar.gz 或 .tgz 文件);
- -f(file)后面紧跟要操作的归档文件名(如 test.tar.gz);
- -v(verbose):仅在 -xzvf 中存在,解压时显示每个文件的名称。
四、chmod 权限赋予
chmod 777 aFile
是一个用于修改文件或目录权限的 Linux/Unix 命令,是一个全开放的权限设置,虽然方便但极不安全。实际使用时,建议根据最小权限原则分配权限,仅开放必要的访问级别。
权限赋予:
chmod 777 aFile
恢复更安全的权限(例如 755
):
chmod 755 aFile
添加可执行权限:
chmod +x test.sh
五、软件安装
5.1 deb软件安装
deb软件格式来源于Debian创始人夫妇,目前是Linux生态中最稳定、依赖管理最完善的软件包格式之一,至今仍是Debian/Ubuntu系统的核心组成部分。
sudo dpkg -i test.deb
是用于在 Ubuntu 发行版上,安装本地 .deb 软件包。
安装软件:
sudo dpkg -i test.deb
5.2 snap软件安装
Snap是由Ubuntu背后的公司Canonical开发的软件包管理系统,能够将应用程序与其所有依赖项一起打包,创建可以在不同Linux发行版上运行的独立应用程序。这种容器化方法确保了应用程序无论在什么系统环境下都能一致运行,消除了Linux用户经常遇到的"依赖地狱"问题。
# 安装snap工具
sudo apt update
sudo apt install snapd
# 查看snap工具版本
snap version
# 搜索应用程序
snap find 应用程序名称
# 安装snap软件包(未从应用市场下载的snap需要添加--dangerous命令)
sudo snap install --dangerous test.snap
# 列出所有已安装的snap软件包
snap list
# 获取特定 snap 的详细信息
snap info 应用程序名称
# 更新所有snap软件包
sudo snap refresh
# 更新特定 snap
sudo snap refresh 应用程序名称
# 删除 snap 软件包
sudo snap remove 应用程序名称
六、apt install 软件安装
sudo apt install
是用于在 Ubuntu 发行版上,从配置的软件源(如官方仓库、PPA)在线下载并安装软件包。当然,在Ubuntu中,也可手动下载源码编译安装。
在线下载并安装与下载源码编译安装的主要区别有:
6.1 安装方式对比
对比项 | sudo apt install | 手动编译安装 |
---|---|---|
来源 | Ubuntu 官方仓库(稳定版) | 官方源码(最新版或特定版本) |
版本 | 较旧(Ubuntu 仓库的版本可能滞后) | 可自由选择最新或指定版本 |
依赖管理 | 自动解决依赖(apt 自动安装所需库) | 需手动安装依赖(如 g++ 、make 等) |
安装位置 | 系统标准路径(如 /usr/lib 、/usr/include ) | 默认 /usr/local 或自定义路径 |
环境变量 | 自动配置(库和头文件路径被系统识别) | 需手动设置(如 LD_LIBRARY_PATH ) |
卸载/更新 | 通过 apt 管理(apt remove ) | 需手动删除文件或使用 make uninstall |
安全性 | 经过 Ubuntu 团队测试和签名 | 需自行验证源码安全性 |
适用场景 | 追求稳定、快速部署 | 需要最新功能或自定义编译选项 |
6.2 如何选择安装方式?
优先 apt install
:适合大多数场景,尤其是生产环境(稳定性优先)。
例如:
sudo apt install libboost-all-dev # 一键安装所有模块
七、sudo find 文件搜索
sudo
以超级用户权限执行后续命令,确保可以访问所有目录(包括需要 root 权限的系统目录)。
find /
find 是文件搜索工具,/ 表示从根目录开始递归搜索整个文件系统。
-name "xxx"
按文件名匹配,“xxx” 是目标文件名,区分大小写。
例如,查找qt5的安装位置:
sudo find / -name "qt5"
qt5相关依赖,一般位于/usr/lib/qt5
八、sudo ln -sf 软链接
sudo ln -sf
是 Linux 系统中用于创建软链接的命令组合,结合了 sudo
(提权)、ln
(链接)、-s
(符号链接)和 -f
(强制覆盖)选项。
-
sudo
以超级用户权限执行命令,通常用于需要操作系统文件或受保护目录的场景。 -
ln
是link
的缩写,用于创建文件或目录的硬链接或符号链接。 -
-s
创建符号链接(软链接),类似于 Windows 的快捷方式。符号链接会指向源文件的路径,但独立于源文件(删除源文件会导致链接失效)。 -
-f
强制覆盖已存在的目标文件(若目标路径已存在链接或文件,则直接替换)。
8.1 基本语法
sudo ln -sf <源文件路径> <目标链接路径>
8.2 举个例子
在配置cudnn的过程中,我的终端命令行报如下错误:
/sbin/ldconfig.real: /usr/local/cuda-12/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-12/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-12/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-12/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-12/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-12/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-12/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 is not a symbolic link
这个错误表明 ldconfig
在尝试更新动态链接库缓存时,发现 CUDA/cuDNN 的某些库文件是普通文件而非符号链接(symbolic link)。ldconfig
期望这些 .so
文件是指向具体版本(如 .so.8.x.x
)的符号链接。
我的解决办法,使用sudo ln -sf
创建对应的软连接:
# 进入对应目录
cd /usr/local/cuda-12/targets/x86_64-linux/lib
# 创建软链接
sudo ln -sf libcudnn.so.8.9.7 libcudnn.so.8
sudo ln -sf libcudnn_cnn_train.so.8.9.7 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_adv_infer.so.8.9.7 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_ops_infer.so.8.9.7 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_adv_train.so.8.9.7 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_ops_train.so.8.9.7 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.9.7 libcudnn_cnn_infer.so.8
然后运行 ldconfig
更新缓存:
# 创建符号链接后,重新运行ldconfig
sudo ldconfig
九、切换桌面
在Ubuntu 24.04中,可以通过以下快捷键快速切换两个桌面:
Ctrl + Alt + 左箭头
:切换到左侧桌面Ctrl + Alt + 右箭头
:切换到右侧桌面