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.tar
  • tar -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.gz
  • gzip -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 组

  1. 创建用户(若尚未创建):

    sudo useradd -m -s /bin/bash newuser  # -m 创建家目录,-s 指定默认 Shell
    sudo passwd newuser                   # 设置密码
    
  2. 将用户加入 sudo 组:

    sudo usermod -aG sudo newuser         # -aG 追加到附加组(不覆盖原有组)
    
  3. 验证

    • 切换到新用户:

      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 -lsu -
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然后重新创建就可以了。

参考教程

https://www.runoob.com/linux/linux-comm-grep.html

posted @ 2025-06-06 23:23  海浪博客  阅读(37)  评论(0)    收藏  举报