Linux Ubuntu使用文档
最常用
新建用户并加入sudoers组
新建用户用 adduser(Ubuntu 默认推荐)
sudo adduser jack
这样创建的新用户 不会自动进 sudo 组,只是一个普通用户。
要想有 sudo 权限,还需要手动执行:
sudo usermod -aG sudo jack
进入用户的主目录
cd ~
常用命令
pwd:显示当前目录
ls:显示文件列表
cd ..:进入上一级目录
mkdir temp:新建temp文件夹
touch 11.txt:新建11.txt文件
hostname -I:查看本机IP地址
su和sudo
“su”是switch user的意思,那么它提供的功能就显而易见了,就是切换用户,想要使用su是必须知道root的密码,显然这样既死板又存在安全风险。
“sudo”全称是super user do,即以超级用户的方式执行命令,这里的超级用户指的就是root用户,“sudo”可以在没有root密码的情况下执行系统命令,“sudo”可以使用自己的账户密码来执行系统命令,这样就更加灵活。
sudo su #提升权限
su - root #切换用户(su后面不加分隔-的话,就不会改变路径,环境变量等等)
进入root用户
| 命令 | 作用 | HOME 目录 | PATH 变量 |
|---|---|---|---|
| su | 切换到 root,但保持当前环境 | 仍然是原用户的 | 仍然是原用户的(可能缺少 /sbin 目录) |
| su - | 完全切换到 root,加载 root 环境 | /root | 具有 root 的完整 PATH |
波浪号
在Linux中,波浪号~代表当前用户的工作目录
| 命令 | 目录路径 | 适用场景 |
|---|---|---|
mkdir ~/testdir |
/home/当前用户/testdir |
始终创建在 Home 目录,不受当前目录影响 |
mkdir testdir |
当前目录/testdir |
相对路径,依赖于你当前所在的目录 |
cat
cat(concatenate)命令是 Linux 中用于 查看、合并、创建和重定向文件内容 的工具。它常用于快速查看小型文本文件的内容。
cat filename.txt #查看文件内容
cat > newfile.txt #创建新文件并输入内容,输入完成后按 Ctrl+D 结束。
cat >> existingfile.txt #追加文件到已有文件
cat -n filename.txt #显示带行号的内容
cat example.txt > copy.txt #复制文件
Linux 文件与目录操作
Linux 的文件系统是 层次结构 的,类似于树状结构,根目录 / 是所有文件的起点。
创建文本文件
echo "Hello" > hello.c
cat >> hello.c << EOF # 追加
cat > hello.c << EOF # 覆盖
文本编辑器
- nano
- gedit
创建文件与目录
touch filename:创建空文件mkdir dirname:创建目录mkdir -p dirname/subdir:创建多级目录
修改权限
sudo chown -R # 是递归修改,修改所有的文件/目录的 所有者 和 所属组
sudo chown # 是只针对指定的文件或者目录进行修改
实验相关命令
mkdir 23052500 # 创建以学号命名的目录
mkdir d1 d2 d3 d4 # 在该目录下创建子目录
touch d1/a2 # 创建空文件
echo "This is a1 file" > d1/a1 # 创建文件并写入内容
查看文件与目录
ls:查看当前目录下的文件ls -l:以详细模式查看文件信息(包括权限、大小、修改时间)ls -a:显示隐藏文件(以.开头的文件)ls -la:同时显示隐藏文件和详细信息
实验相关命令
ls -la # 查看当前目录下所有文件(包括隐藏文件)
删除文件与目录
rm filename:删除文件rm -r dirname:递归删除目录rm -rf dirname:强制删除目录(不提示)
⚠ 注意:rm -rf 非常危险,误操作可能导致系统文件丢失!
实验相关命令
rm -rf d15 # 删除 d15 目录及所有子目录
文件复制与移动
cp 源文件 目标路径:复制文件cp -r 源目录 目标路径:复制目录mv 源文件 目标路径:移动/重命名文件mv 源目录 目标路径:移动/重命名目录
实验相关命令
cp -r d1/* d4/ # 复制 d1 目录下的所有文件和子目录到 d4
mv d2/* d3/ # 移动 d2 目录中的所有文件到 d3
Linux 文件权限
Linux 使用 rwx(读、写、执行)来表示文件权限,每个文件或目录的权限由 所有者(Owner)、用户组(Group)、其他人(Others) 三部分组成。
权限表示法:
r(read):可读(4)w(write):可写(2)x(execute):可执行(1)
更改权限的命令
chmod 770 dirname:所有者和组有所有权限,其他人无权限chmod u+x filename:给文件所有者添加执行权限chmod g-w filename:去掉文件所属用户组的写权限
实验相关命令
chmod 770 d14 # 目录所有者可读写执行,组内用户可读写,其他用户无权限
归档与压缩
(1)tar 打包
tar -cvf archive.tar dirname/:打包目录为archive.tartar -xvf archive.tar:解包archive.tar
实验相关命令
tar -cvf mybackup.tar 23052500 # 打包整个目录
tar -xvf mybackup.tar -C d1 # 解压到 d1 目录
(2)tar + gzip 压缩
tar -czvf archive.tar.gz dirname/:打包并压缩tar -xzvf archive.tar.gz:解压 tar.gz 文件
实验相关命令
tar -czvf mybackup.tar.gz 23052500 # 打包并压缩目录
tar -xzvf mybackup.tar.gz -C d1 # 解压到 d1 目录
(3)gzip 压缩
gzip filename:压缩文件,生成filename.gzgzip -r dirname/:递归压缩目录内所有文件gunzip filename.gz:解压 gzip 文件
实验相关命令
bash
gzip -r 23052500 # 递归压缩目录
(4)zip 压缩
zip -r archive.zip dirname/:创建 zip 压缩文件unzip archive.zip:解压 zip 文件zip -d archive.zip filename:删除 zip 文件中的某个文件
实验相关命令
zip -r testdir.zip 23052500 # 压缩目录
zip -d testdir.zip 23052500/test1 # 从 zip 文件中删除 test1
Linux 目录结构
Linux 的文件系统是 层次化的目录结构,一些重要的目录:
/:根目录,所有文件的起点/home/:用户主目录/bin/:二进制可执行文件/etc/:系统配置文件/var/:存放日志、缓存数据/tmp/:临时文件存放目录
其他实用命令
pwd:显示当前所在目录路径find /path -name filename:查找文件df -h:查看磁盘空间du -sh dirname:查看目录大小history:查看命令历史
find 命令
作用:
find 是用来在目录结构中查找文件或目录的强大工具。
基本语法:
find [搜索路径] [匹配条件] [操作]
常用参数:
| 参数 | 说明 |
|---|---|
-name |
根据文件名查找(支持通配符,如*.conf) |
-type |
文件类型:f表示普通文件,d表示目录 |
-size |
按文件大小查找(+表示大于,-表示小于,如:+4k) |
-perm |
按权限查找(如 -perm 775) |
-user |
按用户查找所属文件 |
-mtime |
按修改时间查找(单位:天) |
-exec |
对查找到的文件执行操作(如删除、复制等) |
示例:
find /etc -name "*.conf" # 查找 /etc 下所有 .conf 文件
find . -type d -perm 755 # 查找当前目录权限为 755 的目录
find /home -user f1 # 查找属主为 f1 的文件
grep 命令
作用:
grep 是用来按内容搜索文本文件中的字符串,支持正则表达式,非常适合查日志、文本信息。
基本语法:
grep [选项] "模式" [文件]
常用参数:
| 参数 | 说明 |
|---|---|
-n |
显示匹配的行号 |
-i |
忽略大小写 |
-v |
反向匹配(不包含指定内容的行) |
-r |
递归搜索目录中的文件 |
--color=auto |
高亮显示匹配内容 |
正则表达式示例:
| 表达式 | 说明 |
|---|---|
^abc |
匹配以 abc 开头的行 |
| `abc | 表达式 |
| --------- | ----------------------------------- |
^abc |
匹配以 abc 开头的行 |
| 匹配以 abc 结尾的行 |
| ^a.*z| 表达式 | 说明 | | --------- | ----------------------------------- | | ^abc | 匹配以 abc 开头的行 | | 匹配以 a 开头以 z 结尾的任意行 | |[^a]ail` | 匹配第一个不是 a,后面是 ail 的内容 |
示例:
grep -n "root" /etc/passwd # 显示包含 root 的行和行号
grep -n "^[^a]ail" /etc/passwd # 显示匹配的正则行及行号
用户管理
新建用户
sudo adduser user01
让新建的普通用户拥有 sudo 权限
将用户加入 sudo 组
-
创建用户(若尚未创建):
sudo useradd -m -s /bin/bash newuser # -m 创建家目录,-s 指定默认 Shell sudo passwd newuser # 设置密码 -
将用户加入
sudo组:sudo usermod -aG sudo newuser # -aG 追加到附加组(不覆盖原有组) -
验证:
-
切换到新用户:
su - newuser -
运行
sudo命令测试:sudo whoami # 若返回 "root",则配置成功
-
修改密码
sudo passwd user01 # usero1为用户名
确定用户是否存在
id user02
切换用户
su - 用户名
当使用
su - user01登录后,命令行提示符只显示$而没有用户名和主机名,通常是因为目标用户(user01)的 Shell 配置文件(如~/.bashrc或~/.bash_profile)没有正确设置PS1(即 命令提示符变量)。
退出登录:exit
直接重建用户家目录(会保留用户其他数据):
sudo mkhomedir_helper user02 # 自动修复家目录
su 和 su -的区别
| 行为 | su |
su -l 或 su - |
|---|---|---|
| Shell 类型 | 非登录 Shell | 登录 Shell |
| 环境变量 | 继承原用户 | 加载目标用户的完整配置 |
| 工作目录 | 保持原目录 | 切换到目标用户的家目录 |
| 配置文件加载 | 不加载 ~/.profile |
加载 ~/.profile 等 |
何时使用?
- 推荐
su -:
绝大多数情况下(尤其是切换到root时),使用su -可以避免环境变量问题(例如command not found)。 - 使用
su:
仅需临时执行某个命令,且明确不需要切换环境变量时(较少用)。
Shell编程
常用
gedit xxx.sh # 编辑脚本
bash xxx.sh # 运行脚本
apt
安装依赖
sudo apt install binutils
更新软件包列表
sudo apt update
修复损坏的依赖关系
sudo apt --fix-broken install
环境相关
清空终端的历史记录
快捷键:Ctrl + L或者输入命令:clear
vmware tools安装
sudo apt installopen-vm-tools
https://zhuanlan.zhihu.com/p/650638983
将Windows复制的文字或文件粘贴到VMware
在终端中依次输入:
sudo apt upgrade
sudo apt install open-vm-tools-desktop -y
sudo reboot
vmware 创建不了虚拟机
使用管理员权限打开vmware然后重新创建就可以了。

浙公网安备 33010602011771号