/images/avatar.png

网站维护公告

warning
"网站维护通知"

由于博客进行大版本升级,目前存在以下问题:

  1. 部分文章出现乱码情况
  2. 部分功能可能暂时无法使用
  3. 部分页面样式可能显示异常

维护详情:

  • 开始时间:2024-04-21
  • 预计恢复:待定
  • 影响范围:全站文章

请访问者注意甄别文章内容,给您带来的不便敬请谅解。

后续更新
我们会在这里持续更新维护进展,请关注本文动态。

Linux echo 命令完全指南

命令简介

echo 命令用于在 shell 中打印变量值或直接输出指定的字符串。这是 Linux 系统中一个极为常用的命令,无论是在 shell 编程还是终端操作中都经常使用。

使用提示
echo 命令是最基础但也是最常用的 Linux 命令之一,掌握它的使用对于 Shell 脚本编写尤为重要。

基本语法

1
echo [选项] [参数]

命令选项

-e 选项

激活转义字符。使用 -e 选项时,以下转义字符将被特殊处理:

转义字符功能描述
\a发出警告声
\b删除前一个字符
\c不产生进一步输出(后续字符不会输出)
\f换行但光标停留在原位置
\n换行且光标移至行首
\r光标移至行首,不换行
\t插入制表符
\v等同于 \f
\\插入反斜杠字符
\nnn插入对应八进制ASCII字符

使用实例

文字颜色控制

1
echo -e "\e[1;31mThis is red text\e[0m"

输出红色文字:“This is red text”

代理与网络连接解析

正常网络连接

1
电脑 → 互联网 → 目标服务器

在正常情况下,电脑可以直接访问互联网,与目标服务器进行数据交互。

使用代理的网络连接

1
电脑 → 本地网络 → 代理软件(VPN/抓包软件/特殊网络插件等) → 互联网 → 代理服务器 → 互联网 → 目标服务器

当使用代理软件时,数据不再直接发送到目标服务器,而是先经过代理软件处理,再通过代理服务器转发。

代理工作的简单理解

1
电脑 → 代理服务 → 目标服务器
  • 电脑的数据先发送到 代理软件
  • 代理软件 打包并转发 数据至目标服务器。
  • 目标服务器 返回数据 到代理软件。
  • 代理软件 解析并转发 数据回电脑。

代理软件在数据流动过程中充当 中间层,负责处理和转发数据。

代理的配置

由于代理软件接管了网络流量,因此必须进行代理设置。

  • WiFi 连接:如果使用无线网络,代理设置通常在 WiFi 网络设置 中配置。
  • 有线连接:如果使用有线网络,则代理设置在 有线网络设置 中配置。
  • 代理方式:代理软件决定具体的代理方式,如 全局代理特定应用代理

代理的作用

  1. 访问受限网站:绕过网络封锁,访问受限制的网站或服务。
  2. 提高匿名性:隐藏真实 IP,增强网络隐私保护。
  3. 网络调试:用于抓包分析、数据调试等开发需求。
  4. 加密通信:通过 VPN 或其他代理方式保护数据安全。

代理的类型

  • HTTP 代理:用于浏览器访问网页,支持 GET/POST 请求。
  • HTTPS 代理:加密通信,提供更安全的网络访问。
  • SOCKS 代理:支持多种协议,可用于 P2P、游戏、远程桌面等。
  • VPN 代理:创建加密隧道,适用于全局网络代理。

代理工具示例

抓包分析

  • Fiddler / Charles(需手动配置系统代理)

爬虫开发

  • mitmproxy / Shadowsocks

翻墙工具

  • Clash / V2Ray(支持混合代理协议)

VPN 工具示例

  • 商业 VPN:NordVPN / Cisco AnyConnect
  • 自建 VPN:OpenVPN / WireGuard

注意事项

  • 隐私风险:免费代理可能会记录流量。
  • 性能影响:多跳代理可能会增加网络延迟。
  • 协议兼容性:部分应用(如 UDP 游戏)可能不兼容 HTTP 代理。
  • 法律合规:请遵守所在国家/地区的法律法规,避免非法使用。

代理与 VPN 的差异

特性代理(如 HTTP/SOCKS)VPN
加密通常不加密(可手动配置)强制端到端加密
流量覆盖仅特定应用/端口所有系统流量(全局隧道)
配置位置应用层或系统网络设置专用客户端(自动修改路由表)
典型用途爬虫、区域限制绕过隐私保护、企业远程访问

代理软件的使用需要合理配置,以确保网络稳定性和安全性。

内存配置分析

当我有四根内存条时 (16GB + 16GB + 8GB + 8GB)

配置1:插入一根内存条

运行模式分析

  • 纯单通道模式(仅一根内存条激活)

性能影响

  • 性能最低(单通道带宽,例如DDR4-3200约25.6GB/s)

内存类型

  • 纯单通道

配置2:插入两根内存条

运行模式分析

  1. 如果插入两根16GB(16+16):
    • 对称双通道(全速)
  2. 如果插入16GB+8GB:
    • 非对称双通道(Flex模式)
    • 前8GB运行在双通道,剩余8GB单通道

性能影响

  1. 16+16:最佳性能(全容量双通道)
  2. 16+8:部分性能提升(约75%带宽利用率)

内存类型

  1. 16+16 → 对称双通道
  2. 16+8 → 非对称混合双通道

配置3:插入三根内存条

运行模式分析

  1. 推荐16+16+8配置:
    • 两根16GB组成双通道
    • 8GB运行在单通道
  2. 16+8+8配置:
    • 8+8组成双通道
    • 16GB中的前8GB参与双通道,剩余8GB单通道

性能影响

  1. 16+16+8:32GB双通道 + 8GB单通道(最优)
  2. 16+8+8:16GB双通道 + 16GB单通道(次优)

内存类型

  • 非对称混合双通道

配置4:插入四根内存条

运行模式分析

  1. 16+16+8+8配置:
    • 16+16组成双通道(Channel A+B各16GB)
    • 8+8组成双通道(Channel A+B各8GB)
    • 实际运行取决于主板:
      • 可能分为两组独立双通道
      • 或部分容量降级为单通道

性能影响

  • 理想情况:全部双通道(需主板支持)
  • 实际情况:可能存在带宽损失(建议优先匹配容量)

内存类型

  • 复杂混合双通道

通用建议

  1. 优先匹配容量(如16+16或8+8)
  2. 参考主板手册的双通道插法(通常间隔插槽)
  3. 使用CPU-Z验证运行模式
  4. 最佳性能方案:2×16GB → 对称双通道
  5. 最大容量方案:16+16+8+8 → 需验证实际通道分配

验证工具

  • CPU-Z(查看"Channel"字段)
  • AIDA64(内存带宽测试)

Linux cd 命令完全指南

命令简介

cd(Change Directory)命令用于切换用户当前工作目录。这是 Linux 系统中最常用的命令之一,也是用户日常工作中使用频率最高的命令。

命令语法

1
cd [-L|[-P [-e]]] [dir]

主要用途

基本功能
  • 切换工作目录至指定目录
  • 目录可以使用绝对路径或相对路径
  • 省略参数时默认切换到用户主目录

参数说明

选项参数

选项说明
-L(默认值)如果目标目录为符号链接,则切换到符号链接目录
-P如果目标目录为符号链接,则切换到它指向的实际物理目录
-切换到前一个工作目录($OLDPWD)

特殊目录符号

符号含义
~用户主目录
.当前目录
..上级目录
-前一个工作目录

使用示例

基本用法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 进入用户主目录
cd
cd ~

# 进入根目录
cd /

# 返回上级目录
cd ..

# 返回上两级目录
cd ../..

# 切换到上一个工作目录
cd -

CDPATH 环境变量

CDPATH 使用

CDPATH 是由冒号分隔的目录列表,可以将常用目录添加到此变量中以便快速访问:

Linux ifconfig 命令完全指南

命令简介

ifconfig(Interface Configuration)命令用于配置和显示 Linux 系统网卡的网络参数。它是最常用的网络配置工具之一。

注意事项
使用 ifconfig 命令配置的网卡信息在网卡重启或系统重启后会丢失。如需永久保存配置,请修改网卡配置文件。

命令语法

1
ifconfig [网络设备] [参数]

参数说明

基本配置参数

参数说明
up启动指定的网络设备
down关闭指定的网络设备
netmask <子网掩码>设置网络设备的子网掩码
broadcast <地址>设置广播地址
mtu <字节>设置网络设备的 MTU 值

高级配置参数

参数说明
add <地址>设置网络设备 IPv6 的 IP 地址
del <地址>删除网络设备 IPv6 的 IP 地址
hw <类型> <硬件地址>设置网络设备的类型与硬件地址
-arp/-promisc关闭/启动 ARP 协议或混杂模式

使用示例

查看网络接口信息

1
2
3
4
5
6
7
8
# 显示所有激活的网络接口
ifconfig

# 显示所有配置的网络接口(包括未激活的)
ifconfig -a

# 显示特定网卡信息
ifconfig eth0

网卡基本操作

1
2
3
4
5
6
7
8
# 启动/关闭网卡
ifconfig eth0 up
ifconfig eth0 down

# 配置 IP 地址
ifconfig eth0 192.168.2.10
ifconfig eth0 192.168.2.10 netmask 255.255.255.0
ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

高级配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 修改 MAC 地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE

# 配置 IPv6 地址
ifconfig eth0 add 33ffe:3240:800:1005::2/64
ifconfig eth0 del 33ffe:3240:800:1005::2/64

# 设置 MTU
ifconfig eth0 mtu 1500

# ARP 协议控制
ifconfig eth0 arp    # 启用 ARP
ifconfig eth0 -arp   # 禁用 ARP

输出信息解析

网卡信息说明

以下是 ifconfig 输出信息的重要字段解释:

Linux which 命令完全指南

命令简介

which 命令用于查找并显示给定命令的绝对路径。它会在环境变量 PATH 设置的目录里查找符合条件的文件,帮助用户确认命令的具体位置以及实际执行的是哪一个命令。

使用场景
当系统中存在多个同名命令时,which 命令可以帮助你确定实际执行的是哪个版本的命令。

命令语法

1
which [选项] 命令名称

选项参数

选项说明
-n <文件名长度>指定文件名长度,必须大于等于所有文件中最长的文件名
-p <文件名长度>-n,但长度包含文件的路径
-w指定输出时栏位的宽度
-V显示版本信息

使用示例

基本用法

1
2
3
4
5
6
7
# 查找 pwd 命令的位置
$ which pwd
/bin/pwd

# 查找 adduser 命令的位置
$ which adduser
/usr/sbin/adduser

特殊情况

Shell 内建命令

对于 Shell 内建命令,which 会显示特殊提示:

Linux vim 命令完全指南

简介

Vim 是一个功能强大的文本编辑器,以其高度可配置性和效率著称。它是 Vi 编辑器的改进版本,支持语法高亮、命令补全、多窗口编辑等高级功能。

使用建议
建议新手先运行 vimtutor 命令学习基础操作,这是 Vim 自带的交互式教程。

基本模式

Vim 有四种基本模式:

  1. 普通模式(Normal Mode):默认模式,用于导航和操作文本
  2. 插入模式(Insert Mode):用于输入文本
  3. 可视模式(Visual Mode):用于选择文本块
  4. 命令模式(Command Mode):用于执行命令

基本操作

模式切换

按键功能
i进入插入模式
Esc返回普通模式
v进入可视模式
:进入命令模式

光标移动(普通模式)

按键功能
h左移一个字符
j下移一行
k上移一行
l右移一个字符
w移动到下一个单词开头
b移动到上一个单词开头
0移动到行首
$移动到行尾
gg移动到文件开头
G移动到文件末尾

编辑操作

基本编辑命令

Hugo + LoveIt 主题美化

简介

本文介绍 Hugo + LoveIt 主题美化 主要修改文件为:

  • _custom.scss
  • analytics.html
  • config.toml / hugo.toml
  • custom.js
  • donation.html
  • footer.html
  • header.html
  • index.md
  • profile.html
  • reward.html
  • single.html
  • timeline.style.css
  • twikoo.js
  • zh-CN.toml

📦 项目依赖版本

名称当前版本发布地址
Hugov0.123.7查看
LoveItv0.2.15查看

1
2
3
4
$ hugo % hugo version
hugo v0.146.6-1e0b058efe8d6e236bc7c8d6981d9bfb1443178e+extended darwin/amd64 BuildDate=2025-04-20T10:58:40Z VendorInfo=gohugoio

LoveIt: v0.3.0

配置开始

一、配置自定义文件

  1. 配置_custom.scss

    LoveIt主题提可以使用_custom.scss进行自定义css,位于\themes\LoveIt\assets\css\_custom.scss,但是不建议直接修改该文件.

  • 注意 必须 extended 扩展版否则无法使用_custom.scss 进行自定义css.

    • 创建 \assets\css\_custom.scss 文件
  1. 创建 custom.js 文件

    • 创建 \static\js\custom.js 文件
  2. custom.js的调用方式
    \themes\LoveIt\layouts\partials\assets.html 复制到 \layouts\partials\assets.html
    打开 \layouts\partials\assets.html 文件 搜索 {{- partial "plugin/analytics.html" . -}}
    {{- partial "plugin/analytics.html" . -}} 的上一行增加以下内容

Hugo + LoveIt 主题使用 Twikoo 评论系统

一、主机与网络配置

IP地址与端口

服务IP地址端口
Hugo22.22.22.22/248080
Twikoo33.33.33.33/248080

Nginx 代理规则

域名地址映射到
https://hugo.example.com22.22.22.22:8080(Hugo 博客)
https://hugo.example.com/twikoo33.33.33.33:8080(Twikoo 评论)

⚠️ 如需外网访问,请使用端口转发或部署到云端。


二、Twikoo 部署方式

1. Docker 运行命令

  • 访问主机 8080 端口即可访问到 twikoo
  • ${PWD}/data 为宿主机存储配置文件路径
  • /app/data 对应docker镜像内部配置文件路径
  • imaegoo/twikoo 镜像名
1
2
3
4
5
docker run --name twikoo \
  -e TWIKOO_THROTTLE=1000 \
  -p 8080:8080 \
  -v ${PWD}/data:/app/data \
  -d imaegoo/twikoo

2. Docker Compose 部署

  • 访问主机 8080 端口即可访问到 twikoo
  • ./data 为宿主机存储配置文件路径
  • /app/data 对应docker镜像内部配置文件路径
  • imaegoo/twikoo 镜像名
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
version: '3'
services:
  twikoo:
    image: imaegoo/twikoo
    container_name: twikoo
    restart: unless-stopped
    ports:
      - 8080:8080
    environment:
      TWIKOO_THROTTLE: 1000
    volumes:
      - ./data:/app/data

3. Kubernetes 部署

注意事项:

Linux cat 命令完全指南

cat 命令用来连接多个文件并打印到标准输出。

语法

1
cat [OPTION]... [FILE]...

主要用途

  • 显示文件内容,如果没有文件或文件为 - 则读取标准输入。
  • 将多个文件的内容进行连接并打印到标准输出。
  • 显示文件内容中的不可见字符(控制字符、换行符、制表符等)。

参数

  • FILE(可选):要处理的文件,可以为一或多个。

选项

(长选项与短选项等价)

  • -A, –show-all:等价于 -vET 组合选项。

  • -b, –number-nonblank:只对非空行编号,从1开始编号,覆盖 -n 选项。

  • -e:等价于 -vE 组合选项。

  • -E, –show-ends:在每行的结尾显示 $ 字符。

  • -n, –number:对所有行编号,从1开始编号。

  • -s, –squeeze-blank:压缩连续的空行到一行。

  • -t:等价于 -vT 组合选项。

  • -T, –show-tabs:使用 ^I 表示 TAB(制表符)。

  • -u:POSIX 兼容性选项,无意义。

  • -v, –show-nonprinting:使用 ^M- 符号显示控制字符,除了 LFD(line feed,即换行符 \n)和 TAB(制表符)。

  • –help:显示帮助信息并退出。

  • –version:显示版本信息并退出。

返回值

返回状态为成功除非给出了非法选项或非法参数。

例子

  1. 合并显示多个文件
1
cat ./1.log ./2.log ./3.log

将 ./1.log、./2.log 和 ./3.log 文件的内容合并并显示。

Linux cp 命令完全指南

cp 命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp 命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

语法

1
cp [选项] [参数]

选项

  • -a:此参数的效果和同时指定“-dpR”参数相同;
  • -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
  • -f:强行复制文件或目录,不论目标文件或目录是否已存在;
  • -i:覆盖既有文件之前先询问用户;
  • -l:对源文件建立硬连接,而非复制文件;
  • -p:保留源文件或目录的属性;
  • -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
  • -s:对源文件建立符号连接,而非复制文件;
  • -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
  • -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
  • -b:覆盖已存在的文件目标前将目标文件备份;
  • -v:详细显示命令执行的操作。

参数

  • 源文件:指定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
  • 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

实例

  1. 复制文件并更新已存在文件
1
cp -r -u -v /tmp ~/test/tmp

此命令会递归地复制 /tmp 下的文件到 ~/test/tmp 目录中,且仅在源文件更新时才会进行复制,并详细显示操作。

  1. 使用备份选项复制文件并创建编号备份
1
cp --force --backup=numbered test001.py test001.py

此命令会强制覆盖 test001.py 并且创建带编号的备份文件,如 test001.py.1 和 test001.py.2

  1. 复制文件到当前目录
1
cp ../usr/local/bin/test .

将 ../usr/local/bin/test 复制到当前目录。

  1. 将文件复制到指定目录并改名
1
cp file /tmp/file-test

将 file 文件复制到 /tmp 目录,并将其改名为 file-test

Linux find 命令完全指南

find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并将查找到的子目录和文件全部显示。

语法

1
find [选项] [参数]

选项

  • -amin <分钟>:查找在指定时间曾被存取过的文件或目录,单位为分钟。
  • -anewer <参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。
  • -atime <24小时数>:查找在指定时间曾被存取过的文件或目录,单位为24小时。
  • -cmin <分钟>:查找在指定时间曾被更改过的文件或目录,单位为分钟。
  • -cnewer <参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
  • -ctime <24小时数>:查找在指定时间曾被更改过的文件或目录,单位为24小时。
  • -daystart:从本日开始计算时间。
  • -depth:从指定目录下最深层的子目录开始查找。
  • -empty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。
  • -exec <执行指令>:假设find指令的回传值为True,就执行该指令。
  • -false:将find指令的回传值皆设为False。
  • -fls <列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件。
  • -follow:排除符号连接。
  • -fprint <列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件。
  • -fstype <文件系统类型>:只寻找该文件系统类型下的文件或目录。
  • -gid <群组识别码>:查找符合指定之群组识别码的文件或目录。
  • -group <群组名称>:查找符合指定之群组名称的文件或目录。
  • -help–help:在线帮助。
  • -iname <范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别。
  • -links <连接数目>:查找符合指定的硬连接数目的文件或目录。
  • -ls:假设find指令的回传值为True,就将文件或目录名称列出到标准输出。
  • -maxdepth <目录层级>:设置最大目录层级。
  • -mindepth <目录层级>:设置最小目录层级。
  • -mmin <分钟>:查找在指定时间曾被更改过的文件或目录,单位为分钟。
  • -name <范本样式>:指定字符串作为寻找文件或目录的范本样式。
  • -newer <参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
  • -perm <权限数值>:查找符合指定的权限数值的文件或目录。
  • -print:假设find指令的回传值为True,就将文件或目录名称列出到标准输出。
  • -printf <输出格式>:假设find指令的回传值为True,就将文件或目录名称列出到标准输出,格式可以自行指定。
  • -size <文件大小>:查找符合指定的文件大小的文件。
  • -type <文件类型>:只寻找符合指定的文件类型的文件。
  • -uid <用户识别码>:查找符合指定的用户识别码的文件或目录。
  • -user <拥有者名称>:查找符合指定的拥有者名称的文件或目录。
  • -xdev:将范围局限在先行的文件系统中。

文件类型

  • f:普通文件
  • l:符号连接
  • d:目录
  • c:字符设备
  • b:块设备
  • s:套接字
  • p:Fifo

简单示例

  1. 列出当前目录及子目录下所有文件和文件夹
1
find .
  1. /home 目录下查找以 .txt 结尾的文件名
1
find /home -name "*.txt"
  1. 忽略大小写查找 .txt 文件
1
find /home -iname "*.txt"
  1. 当前目录及子目录下查找所有以 .txt.pdf 结尾的文件
1
2
3
find . \( -name "*.txt" -o -name "*.pdf" \)
find . -name "*.txt" -o -name "*.pdf"
  1. 基于正则表达式匹配文件路径
1
find . -regex ".*\(\.txt\|\.pdf\)$"
  1. 搜索 /usr/ 目录中路径包含 “local” 的文件
1
find /usr/ -path "*local*"
  1. 找出/home下不是以.txt结尾的文件
1
find /home ! -name "*.txt"
  1. 根据文件类型进行搜索
1
find . -type 类型参数

Linux ls 命令完全指南

用法

1
2
3
4
5
ls [选项] [文件名...]  
   [-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time]  
   [--format={long,verbose,commas,across,vertical,single-col‐umn}]  
   [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}]  
   [--color[={none,auto,always}]] [--help] [--version] [--]  

常用选项

  • -C 多列输出,纵向排序。
  • -F 每个目录名加 “/” 后缀,每个 FIFO 名加 “|” 后缀,每个可运行名加“ * ”后缀。
  • -R 递归列出遇到的子目录。
  • -a 列出所有文件,包括以 “.” 开头的隐含文件。
  • -c 使用“状态改变时间”代替“文件修改时间”为依据来排序(使用“-t”选项时)或列出(使用“-l”选项时)。
  • -d 将目录名像其它文件一样列出,而不是列出它们的内容。
  • -i 输出文件前先输出文件系列号(即 i 节点号)。
  • -q 将文件名中的非打印字符输出为问号。
  • -r 逆序排列。
  • -t 按时间信息排序。
  • -u 使用最近访问时间代替最近修改时间为依据来排序(使用“-t”选项时)或列出(使用“-l”选项时)。
  • -1 单列输出。
  • -l 列出详细信息(文件模式、链接数、所有者、组名、文件大小、时间信息、文件名)。
  • -m 水平列出文件,用逗号和空格分隔。
  • -n 列出数字化的 UID 和 GID,而不是用户名和组名。
  • -p 在每个文件名后附上一个字符以说明文件类型。
  • -s 输出文件大小,以 1024 字节的块为单位。
  • -w 假定屏幕宽度是 cols 列。
  • -x 多列输出,横向排序。
  • -A 显示除 “.” 和 “..” 外的所有文件。
  • -B 不输出以“ ~ ”结尾的备份文件,除非已在命令行中给出。
  • -F 在每个文件名后附上一个字符以说明文件的类型。
  • –color[=when] 指定是否使用颜色区别文件类别。可选参数 noneautoalways
  • –full-time 列出完整的时间信息。

选项详细说明

  • -c / –time=ctime: 按文件状态改变时间(ctime)排序。
  • -d / –directory: 将目录名像其它文件一样列出,而不是列出它们的内容。
  • -f: 不排序目录内容,按它们在磁盘上存储的顺序列出。
  • -l: 显示长格式信息,包括权限、硬链接数、所有者、组名、文件大小、时间等。
  • -i / –inode: 输出每个文件的 inode 号。
  • -m / –format=commas: 水平列出文件,用逗号分隔。
  • -n / –numeric-uid-gid: 显示数字化的 UID 和 GID。
  • -s / –size: 输出文件大小。
  • -T / –tabsize: 假定每个制表符的宽度为 cols(默认值为 8)。
  • -u / –time=atime: 使用文件的最近访问时间(atime)排序。
  • -X / –sort=extension: 按文件扩展名的字典顺序排序。

简单示例

  1. 列出当前目录下的文件:
1
ls
  1. 列出当前目录下的文件,并显示详细信息:
1
ls -l
  1. 列出当前目录下所有文件(包括隐藏文件):
1
ls -al
  1. 按文件大小排序列出当前目录下的文件:
1
ls --human-readable --size -1 -S --classify
  1. 按文件大小排序,并使用 du 命令:
1
du -sh * | sort -h
  1. 显示包括隐藏文件在内的所有文件列表:
1
ls -a

Linux mv 命令完全指南

mv 命令用于对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。

语法

1
mv [选项] [参数]

主要用途

  • 将源文件或目录移动到目标文件或目录。
  • 重新命名文件或目录。

参数

  • 源文件:指定源文件或目录,可以是一个或多个文件。
  • 目标文件:目标文件或目录。
    • 如果目标是文件名,则会将源文件重命名为目标文件。
    • 如果目标是目录名,则源文件会被移动到目标目录下。

选项

  • –backup=<备份模式>:若需覆盖文件,则覆盖前先行备份。
  • -b:当文件存在时,覆盖前,为其创建一个备份。
  • -f:如果目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录。
  • -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入“y”表示将覆盖目标文件;输入“n”表示取消对源文件的移动。
  • –strip-trailing-slashes:删除源文件中的斜杠“/”。
  • -S<后缀>:为备份文件指定后缀,而不使用默认的后缀。
  • –target-directory=<目录>:指定源文件要移动到目标目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

实例

1. 将目录中的所有文件移到当前目录

1
mv /usr/men/* .

将 /usr/men/ 目录中的所有文件移动到当前目录(用 . 表示)。

  1. 移动文件
1
mv file_1.txt /home/office/

将 file_1.txt 文件移动到 /home/office/ 目录。

  1. 移动多个文件
1
mv file_2.txt file_3.txt file_4.txt /home/office/

将 file_2.txt、file_3.txt 和 file_4.txt 移动到 /home/office/ 目录。

  1. 移动文件匹配模式的文件
1
mv *.txt /home/office/

将当前目录下所有 .txt 文件移动到 /home/office/ 目录。