【Linux】Ubuntu下的文件
本文最后更新于78 天前,其中的信息可能已经过时,如有错误请发送邮件到tudougin@163.com

1. Ubuntu下的软件安装

1.1 App store

直接在ubuntu的应用商店中对visual studio code进行下载

clipboard-image-1734539287

1.2 apt安装

apt 是基于 Debian 的 Linux 发行版(如 Ubuntu)中常用的包管理工具,用于安装、更新、升级、删除软件包,以及管理系统的包缓存。


基本语法

apt [选项] 命令 [参数]

其中,

  • 选项:调整命令行为(如 -y 自动确认操作)。
  • 命令:指定执行的任务(如安装、更新)。
  • 参数:指定的目标软件包或其他参数。

clipboard-image-1734540239

1.3 deb软件包安装

dpkg 是 Debian 和基于 Debian 的发行版(如 Ubuntu)中的底层包管理工具,用于安装、删除和管理 .deb 格式的软件包。dpkg 通常是更高级工具(如 apt)的基础,但也可以独立使用。


需要下载.deb文件

clipboard-image-1734541004

命令行安装,基本语法

dpkg [选项] 命令 [参数]

其中,

  • 选项:调整命令行为(如静默模式、强制安装等)。
  • 命令:指定执行的操作(如安装、查询)。
  • 参数:目标 .deb 文件或包名。
clipboard-image-1734541133

1.4 下载源码编译安装

通常为make install即可安装,具体看文件内的Readme

2. Ubuntu下的文件系统结构

2.1 根目录(/

根目录是整个文件系统的起点,所有其他目录和文件都挂载在此下。根目录本身通常只包含一些关键的子目录。


2.2 根目录下的重要子目录

目录作用与内容
/bin基本命令二进制文件:存放系统启动和单用户模式下使用的基本命令(如 lscpmvbash 等)。
/boot启动相关文件:包含启动加载器(如 GRUB)和 Linux 内核(如 vmlinuzinitrd.img)。
/dev设备文件:包含系统的设备文件,如硬盘、终端和外部设备(如 /dev/sda/dev/null)。
/etc配置文件:存放系统和应用程序的配置文件(如网络配置文件、用户权限文件)。
/home用户主目录:存放每个用户的个人文件和配置(如 /home/user1)。
/lib共享库文件:存放系统基本功能所需的共享库(类似 Windows 的 DLL 文件)。
/media可移动设备挂载点:系统自动挂载的外部存储设备(如 U 盘、光盘)。
/mnt临时挂载点:手动挂载文件系统的目录,供管理员使用。
/opt可选应用程序:存放第三方或手动安装的附加应用程序。
/proc内核虚拟文件系统:存放与系统和内核运行时相关的信息(如 /proc/cpuinfo)。
/root超级用户主目录root 用户的个人目录,普通用户无访问权限。
/run运行时数据:存放系统启动后产生的运行时文件(如 PID 文件)。
/sbin系统管理命令:存放系统管理员使用的命令(如 rebootifconfig)。
/srv服务数据:存放由系统服务提供的数据(如 HTTP 或 FTP 服务的文件)。
/sys系统设备信息:存放系统的硬件和设备信息。
/tmp临时文件:存放临时文件,系统重启后会清空。
/usr用户二进制文件和库:包含用户空间的程序和文件。
/var可变数据:存放经常变化的数据,如日志文件、缓存文件和队列数据。

2.3 关键目录详解

  1. /bin
    • 存放普通用户和管理员都可用的基本命令,如:
      • ls:列出目录内容。
      • cp:复制文件。
      • mv:移动文件。
  2. /boot
    • 包含启动时所需的文件:
      • 内核映像文件:vmlinuz
      • GRUB 配置文件:grub.cfg
      • RAM 磁盘文件:initrd.img
  3. /dev
    • 包含所有设备的接口文件,例如:
      • 硬盘设备:/dev/sda
      • 光驱设备:/dev/cdrom
      • 虚拟设备:/dev/null
  4. /etc
    • 配置文件目录,例如:
      • 网络配置:/etc/network/interfaces
      • 用户账户:/etc/passwd
      • 启动服务:/etc/init.d/
  5. /home
    • 每个用户的主目录,例如:
      • /home/alice:用户 Alice 的主目录。
      • 用户的文档、桌面、下载文件夹存储在此目录中。
  6. /lib
    • 系统运行所需的共享库,例如:
      • 动态链接器库:ld.so
      • C 标准库:libc.so
  7. /proc
    • 虚拟文件系统,用于内核和进程信息:
      • CPU 信息:/proc/cpuinfo
      • 内存信息:/proc/meminfo
      • 当前运行的进程:/proc/<PID>
  8. /usr
    • 用户空间的应用程序和文件:
      • /usr/bin:用户安装的二进制文件。
      • /usr/lib:用户安装的库文件。
      • /usr/share:共享资源,如文档和手册。
  9. /var
    • 包含经常变化的数据:
      • 日志文件:/var/log/syslog
      • 邮件数据:/var/mail
      • 缓存:/var/cache

2.4 文件系统的特殊目录

  • /tmp
    • 临时文件目录,系统定期清理。
    • 例如:浏览器的临时文件、系统升级时的缓存文件。
  • /run
    • 存储运行时数据,通常是进程启动后产生的临时文件。
  • /mnt/media
    • 手动挂载设备的目录 /mnt
    • 自动挂载的可移动设备(如 USB)的目录 /media

3. 绝对路径和相对路径

  1. 绝对路径 绝对路径是从根目录 / 开始,指向文件或目录的完整路径。
  2. 相对路径 相对路径是相对于当前工作目录的位置,指向文件或目录的路径。
  3. 简单对比
类型写法访问范围示例
绝对路径/ 开始写完整路径全局适用/var/log/syslog
相对路径从当前目录开始写路径依赖当前目录../docs/readme.txt
  1. 小技巧
    • pwd 查看当前目录,确认路径写法是否正确。
    • 绝对路径更精确,适合脚本;相对路径更灵活,适合临时操作。

4. 磁盘管理

4.1 跨平台文件系统格式

文件系统格式简介优势使用场景
FAT32微软开发的旧格式跨平台兼容性好小型存储设备(如 U 盘)
exFATFAT32 的改进版支持大于 4GB 的文件,兼容性广移动存储设备(如 SD 卡)
NTFS微软开发的现代文件系统支持大文件,权限管理支持好Windows 系统的共享分区

4.2 设备文件

Linux下,一切皆文件。相应的,磁盘设备也是文件。以下是对 Linux 常见设备文件命名规则的整理:

设备类型设备文件路径格式说明
SATA/USB 硬盘/dev/sdX表示磁盘设备,X 为磁盘编号(a 表示第一块,b 表示第二块,以此类推)。
分区/dev/sdXNN 表示分区编号,例如 /dev/sda1 表示第一块磁盘的第一个分区。
NVMe 硬盘/dev/nvmeXnYX 表示 NVMe 磁盘编号,nY 表示逻辑设备编号(通常为 n1)。
NVMe 分区/dev/nvmeXpYpY 表示分区编号,例如 /dev/nvme0n1p1 表示第一个 NVMe 磁盘的第一个分区。
循环设备/dev/loopX表示虚拟磁盘设备,X 为编号,常用于挂载 ISO 文件。
RAID 设备/dev/mdX通过软件 RAID 创建的设备,X 为 RAID 设备编号。
LVM 设备/dev/mapper/卷组-逻辑卷使用 LVM 创建的逻辑卷,路径包括卷组名和逻辑卷名。
LVM 简化路径/dev/卷组名/逻辑卷名LVM 的简化路径,例如 /dev/vg0/lv0
光驱设备/dev/srX表示光驱设备,X 为编号(sr0 通常为第一光驱)。
U 盘设备/dev/sdX按硬盘的方式识别,路径与 SATA/USB 磁盘一致。

示例说明:

  • SATA 磁盘:第一块 SATA 磁盘的第二个分区路径为 /dev/sda2
  • NVMe 磁盘:第一个 NVMe 磁盘的第三个分区路径为 /dev/nvme0n1p3
  • ISO 文件:挂载 ISO 文件通常通过循环设备 /dev/loop0

4.3 dfdu

用于查看磁盘空间使用情况。

基本语法df 查看文件系统的磁盘使用情况:

df [选项]

du 查看文件或目录的磁盘使用情况:

du [选项] [文件或目录]

常用选项

选项作用
-h以用户可读的格式显示(MB/GB)
-T显示文件系统类型(df
-s显示总计大小(du

常用用法

命令作用
df -h查看磁盘使用情况(人类可读格式)
du -sh /home查看 /home 目录的总大小

4.4 磁盘的挂载、卸载与格式化

以下是 Linux 系统中磁盘挂载、卸载与格式化的详细说明,包括基本命令、常用选项和小技巧。


4.4.1 磁盘挂载

  1. 挂载磁盘的基本语法
sudo mount [选项] 设备文件 挂载点

常用选项

选项作用
-t指定文件系统类型(如 ext4vfat)。
-o指定挂载参数(如 ro 只读,rw 读写)。

常用用法

操作命令示例
挂载磁盘 /dev/sda1/mntsudo mount /dev/sda1 /mnt
指定文件系统类型挂载 NTFS 磁盘sudo mount -t ntfs /dev/sda1 /mnt
挂载 ISO 文件到 /mntsudo mount -o loop 文件名.iso /mnt
以只读模式挂载sudo mount -o ro /dev/sda1 /mnt

  1. 自动挂载磁盘

编辑 /etc/fstab 文件,使磁盘在启动时自动挂载。

步骤

  1. 查找磁盘 UUID:
blkid
  1. 编辑/etc/fstab ,添加如下条目:
UUID=磁盘UUID 挂载点 文件系统类型 默认参数 0 2

示例:

UUID=1234-5678 /mnt ext4 defaults 0 2

4.4.2 磁盘卸载

  1. 卸载磁盘的基本语法
sudo umount [选项] 挂载点或设备文件

常用用法

操作命令示例
卸载挂载点 /mntsudo umount /mnt
卸载设备 /dev/sda1sudo umount /dev/sda1

注意

  • 磁盘正在被使用时无法卸载,需先停止相关进程: lsof +D 挂载点 kill PID # 停止占用的进程

4.4.3 磁盘格式化

  1. 查看磁盘信息

在格式化前,需确定磁盘设备路径:

lsblk
fdisk -l
  1. 格式化磁盘的基本语法
sudo mkfs.文件系统类型 设备文件
  1. 分区格式化示例

格式化为 ext4 文件系统:

sudo mkfs.ext4 /dev/sda1

格式化为 exFAT 文件系统:

sudo mkfs.exfat /dev/sda1

格式化为 FAT32 文件系统:

sudo mkfs.vfat -F 32 /dev/sda1

4.4.4 小技巧

  1. 修复文件系统

如果文件系统有问题,可用 fsck 修复:

sudo fsck /dev/sdX
  1. 清空分区表

使用 wipefs 清除设备上的文件系统签名:

sudo wipefs -a /dev/sdX
  1. 快速挂载最近插入的设备

使用 dmesg 查看设备插入日志:

dmesg | tail

5. 压缩和解压缩

在 Linux 系统中,压缩和解压缩文件是常见的操作,主要使用不同的压缩工具和命令完成。以下是详细内容,包括常见工具的基本用法和技巧:


5.1 压缩和解压缩工具概览

工具/格式功能文件后缀特点
gzip/gunzip压缩和解压缩单个文件.gz速度快,占用内存少,常用于日志压缩。
bzip2/bunzip2压缩和解压缩单个文件.bz2压缩率高,但速度较慢。
xz/unxz高效压缩和解压缩.xz高压缩率,适合处理大文件。
tar归档和解归档工具.tar用于打包多个文件,结合其他工具使用。
zip/unzip压缩和解压缩.zip常见跨平台压缩格式,支持多文件。
7z/p7zip高压缩率工具.7z强大的压缩工具,支持多种格式。

5.2 常用压缩和解压缩命令

5.2.1 gzip/gunzip

基本语法

  • 压缩:gzip [选项] 文件
  • 解压缩:gunzip [选项] 文件.gz

常用选项

选项说明
-k保留原文件
-v显示压缩/解压缩详情

示例

# 压缩文件
gzip example.txt          # 生成 example.txt.gz
gzip -k example.txt       # 保留原文件,生成 example.txt.gz

# 解压缩文件
gunzip example.txt.gz     # 解压 example.txt.gz
gunzip -k example.txt.gz  # 解压并保留压缩文件

5.2.2 bzip2/bunzip2

基本语法

  • 压缩:bzip2 [选项] 文件
  • 解压缩:bunzip2 [选项] 文件.bz2

示例

# 压缩文件
bzip2 example.txt         # 生成 example.txt.bz2

# 解压缩文件
bunzip2 example.txt.bz2   # 解压 example.txt.bz2

5.2.3 xz/unxz

基本语法

  • 压缩:xz [选项] 文件
  • 解压缩:unxz [选项] 文件.xz

示例

# 压缩文件
xz example.txt            # 生成 example.txt.xz

# 解压缩文件
unxz example.txt.xz       # 解压 example.txt.xz

5.2.4 tar(归档工具)

基本语法

  • 创建归档:tar -cvf 归档文件名 文件/目录
  • 解归档:tar -xvf 归档文件名
  • 与压缩结合:tar -czvf 归档文件名.tar.gz 文件/目录

常用选项

选项说明
-c创建归档
-x解归档
-z使用 gzip 压缩
-j使用 bzip2 压缩
-v显示归档/解归档详细信息
-f指定归档文件名

示例

# 创建 tar.gz 压缩包
tar -czvf archive.tar.gz example/

# 解压 tar.gz 压缩包
tar -xzvf archive.tar.gz

# 创建 tar.bz2 压缩包
tar -cjvf archive.tar.bz2 example/

# 解压 tar.bz2 压缩包
tar -xjvf archive.tar.bz2

5.2.5 zip/unzip

基本语法

  • 压缩:zip [选项] 压缩文件名 文件/目录
  • 解压缩:unzip [选项] 压缩文件名.zip

常用选项

选项说明
-r递归压缩目录
-x指定排除文件
-d指定解压目录

示例

# 压缩文件或目录
zip archive.zip example.txt
zip -r archive.zip example/  # 压缩目录

# 解压缩文件
unzip archive.zip
unzip -d /tmp archive.zip    # 解压到指定目录

5.2.6 7z

基本语法

  • 压缩:7z a 压缩文件名 文件/目录
  • 解压缩:7z x 压缩文件名

示例

# 压缩文件或目录
7z a archive.7z example/

# 解压缩文件
7z x archive.7z

6. 文件权限管理

Linux 文件权限分为 三类用户三种权限

  1. 三类用户
    • u:文件拥有者(user)。
    • g:同组用户(group)。
    • o:其他用户(others)。
  2. 三种权限
    • r:读(read),值为 4。
    • w:写(write),值为 2。
    • x:执行(execute),值为 1。

权限的表示形式:

  • 使用字母表示:rwxr-xr--
  • 使用数字表示:754 (文件拥有者有 rwx 权限,组用户有 r-x 权限,其他用户有 r-- 权限)。

6.1 查看文件权限

基本语法

ls -l [文件名/目录名]

示例

ls -l example.txt

输出示例:

-rw-r--r-- 1 user group 1234 Dec 19 12:00 example.txt
  • 第一列:-rw-r--r-- 表示权限。
  • 第一字符:文件类型(- 表示文件,d 表示目录)。
  • 后续字符:文件的权限。

6.2 修改文件权限(chmod)

基本语法

chmod [选项] 权限 文件/目录

修改权限的方法

方法描述
数字法直接使用三位数字设置权限,如 chmod 754
符号法使用 ugo 配合 +-= 调整权限。

常用选项

选项说明
-R递归修改目录及其所有子文件权限

示例

# 数字法修改权限
chmod 754 example.txt  # 设置为 rwxr-xr--

# 符号法修改权限
chmod u+x example.txt  # 给文件拥有者添加执行权限
chmod g-w example.txt  # 移除组用户的写权限
chmod o=r example.txt  # 设置其他用户为只读

# 递归修改目录权限
chmod -R 755 /example_dir

6.3 修改文件所属用户/组(chown)

基本语法

chown [选项] 用户:组 文件/目录

常用选项

选项说明
-R递归修改目录及其所有子文件用户

示例

# 修改文件拥有者
chown user example.txt

# 修改文件的用户和组
chown user:group example.txt

# 递归修改目录所有权
chown -R user:group /example_dir

6.4 修改文件组(chgrp)

基本语法

chgrp [选项] 组 文件/目录

示例

chgrp group example.txt  # 修改文件组为 group

6.5 设置特殊权限

基本语法

chmod [选项] 权限 文件/目录

特殊权限说明

权限含义设置方法
SUID可执行文件以文件拥有者权限运行(适用于程序文件)。chmod u+s
SGID可执行文件以文件所属组权限运行;目录中新建文件继承组权限。chmod g+s
Sticky防止用户删除其他用户在同一目录下的文件(常用于 /tmp)。chmod o+t

示例

chmod u+s program.sh   # 设置 SUID
chmod g+s /shared_dir  # 设置 SGID
chmod o+t /shared_dir  # 设置 Sticky 位

7. 链接文件

连接文件主要通过两种方式实现:硬链接(Hard Link)和软链接(Symbolic Link,符号链接)。以下是详细介绍及命令用法:


7.1 硬链接与软链接的区别

特性硬链接软链接
指向目标指向文件数据本身指向文件的路径
是否独立是,原文件删除后硬链接依然可用否,原文件删除后软链接失效
支持的对象仅限于同一文件系统内的文件文件和目录均可
命令显示ls -l 中硬链接计数增加ls -l 中以箭头指示链接目标

7.2 硬链接

基本语法

ln [选项] 源文件 硬链接文件

常用选项

选项说明
-v显示详细信息
-f强制覆盖已存在的链接文件

示例

# 创建硬链接
ln example.txt example_hard

# 查看链接数
ls -l example.txt example_hard
# 输出类似:
# -rw-r--r-- 2 user group 1234 Dec 19 12:00 example.txt
# -rw-r--r-- 2 user group 1234 Dec 19 12:00 example_hard

注意

  • 删除原文件 example.txt 后,example_hard 文件依然可用。
  • 硬链接无法跨文件系统或对目录操作。

7.3 软链接(符号链接)

基本语法

ln -s [选项] 源文件/目录 软链接文件

常用选项

选项说明
-v显示详细信息
-f强制覆盖已存在的链接文件
-n如果目标是符号链接,则不跟随

示例

# 创建文件的软链接
ln -s example.txt example_symlink

# 创建目录的软链接
ln -s /path/to/directory symlink_dir

# 查看软链接
ls -l
# 输出类似:
# lrwxrwxrwx 1 user group   11 Dec 19 12:00 example_symlink -> example.txt

注意

  • 删除原文件 example.txt 后,example_symlink 无法使用。
  • 软链接可以跨文件系统使用。

8. Vim编辑器

VIM 是 Vi 编辑器的增强版,是一个强大的文本编辑器,支持语法高亮、代码折叠、多文件编辑等功能。(话是这么说,但是学习成本有点高了)

启动方式

vim [选项] 文件名

8.1 VIM 的模式

VIM 有以下主要工作模式,通过Esc键可退出当前的模式

模式描述进入方式
普通模式默认模式,用于浏览、复制、删除等操作启动后进入
插入模式编辑文本内容ia 进入
命令模式执行保存、退出等命令: 进入
可视模式高亮选择文本v 进入

8.2 基本操作

8.2.1 启动与退出

操作命令描述
启动 VIMvim filename编辑或新建文件
退出:q退出(文件无修改)
强制退出:q!不保存退出
保存并退出:wqZZ保存文件并退出
仅保存:w保存文件

8.2.2 插入与删除

进入插入模式

按键描述
i在光标当前位置前插入
a在光标当前位置后插入
o在当前行下方新建一行并插入
I在当前行首插入
A在当前行尾插入

删除文本

按键描述
x删除光标处的字符
dd删除当前行
dG删除从光标到文件末尾的所有内容
d$删除光标到当前行末尾的内容
d^删除光标到当前行开头的内容

8.2.3 复制与粘贴

按键描述
yy复制当前行
yG复制光标到文件末尾的所有内容
y$复制光标到当前行末尾的内容
p在光标后粘贴内容
P在光标前粘贴内容

8.2.4 查找与替换

查找

命令描述
/keyword从光标处向下搜索 keyword
?keyword从光标处向上搜索 keyword
n跳转到下一个匹配项
N跳转到上一个匹配项

替换

命令描述
:s/old/new/替换当前行第一个 oldnew
:s/old/new/g替换当前行所有 oldnew
:%s/old/new/g替换整个文件所有 oldnew
:%s/old/new/gc替换前提示用户确认
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇