注:本文章为学习笔记。请学习者前往原文章阅读:原文链接
🐧 Linux 命令学习笔记
1.📁 文件管理
📦 mv 命令 - 移动或重命名文件
mv
命令用于移动或重命名文件。与 cp
命令不同,cp
用于复制文件,增加文件数量;而 mv
则是剪切操作,仅改变文件的位置,不增加文件总数。
语法格式:
mv [参数] 源文件名 目标文件名
常用示例:
-
重命名文件:
[root@linuxcool ~]# mv File1.cfg File2.cfg
-
移动文件到指定目录,保留原名:
[root@linuxcool ~]# mv File2.cfg /etc
-
移动并重命名目录:
[root@linuxcool ~]# mv Dir1 /etc/Dir2
-
强制移动所有文件并覆盖现有文件:
[root@linuxcool ~]# mv -f /home/* .
📂 ls 命令 - 显示目录内容及属性信息
ls
命令用于列出目录中的文件及其属性信息。
语法格式:
ls [参数] [文件名]
常用示例:
-
显示当前目录中的文件(不含隐藏文件):
[root@linuxcool ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos
-
显示当前目录中的所有文件(含隐藏文件):
[root@linuxcool ~]# ls -a . .bashrc Documents Music Videos .. .cache Downloads Pictures .viminfo anaconda-ks.cfg .config .esd_auth .pki .bash_history .cshrc .ICEauthority Public .bash_logout .dbus initial-setup-ks.cfg .tcshrc .bash_profile Desktop .local Templates
-
详细信息模式显示文件及属性:
[root@linuxcool ~]# ls -l total 8 -rw-------. 1 root root 1430 Dec 14 08:05 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Dec 14 08:37 Desktop drwxr-xr-x. 2 root root 6 Dec 14 08:37 Documents drwxr-xr-x. 2 root root 6 Dec 14 08:37 Downloads -rw-r--r--. 1 root root 1585 Dec 14 08:34 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 Dec 14 08:37 Music drwxr-xr-x. 2 root root 6 Dec 14 08:37 Pictures drwxr-xr-x. 2 root root 6 Dec 14 08:37 Public drwxr-xr-x. 2 root root 6 Dec 14 08:37 Templates drwxr-xr-x. 2 root root 6 Dec 14 08:37 Videos
-
显示指定目录中的文件列表:
[root@linuxcool ~]# ls /etc adjtime hosts pulse aliases hosts.allow qemu-ga alsa hosts.deny qemu-kvm alternatives hp radvd.conf anacrontab idmapd.conf ras asound.conf init.d rc0.d at.deny inittab rc1.d ………………省略部分输出信息………………
-
显示当前目录中的文件名及 inode 信息:
[root@linuxcool ~]# ls -i 35290115 anaconda-ks.cfg 35290137 initial-setup-ks.cfg 35290164 Templates 1137391 Desktop 17840039 Music 51609597 Videos 1137392 Documents 35290165 Pictures 17840038 Downloads 51609596 Public
-
使用通配符显示以 sd 开头的文件列表:
[root@linuxcool ~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2
-
按文件大小排序并显示详细信息:
[root@linuxcool ~]# ls -Sl /etc total 1348 -rw-r--r--. 1 root root 692241 Sep 10 2023 services -rw-r--r--. 1 root root 66482 Dec 14 08:34 ld.so.cache -rw-r--r--. 1 root root 60352 May 11 2023 mime.types -rw-r--r--. 1 root dnsmasq 26843 Aug 12 2023 dnsmasq.conf -rw-r--r--. 1 root root 25696 Dec 12 2023 brltty.conf -rw-r--r--. 1 root root 9450 Aug 12 2023 nanorc -rw-r--r--. 1 root root 7265 Dec 14 08:03 kdump.conf -rw-------. 1 tss tss 7046 Aug 13 2023 tcsd.conf ………………省略部分输出信息………………
📋 cp 命令 - 复制文件或目录
cp
命令用于复制文件或目录,常用于备份操作。
语法格式:
cp [参数] 源文件名 目标文件名
常用示例:
-
复制并重命名文件:
[root@linuxcool ~]# cp File1.cfg File2.cfg
-
递归复制目录并重命名:
[root@linuxcool ~]# cp -r Dir1 Dir2
-
复制文件并保留原权限及用户归属:
[root@linuxcool ~]# cp -a File1.cfg File2.cfg
-
强制复制文件到指定目录并覆盖:
[root@linuxcool ~]# cp -f File1.cfg /etc
-
复制多个文件到指定目录,若已存在则询问是否覆盖:
[root@linuxcool ~]# cp File1.cfg File2.cfg /etc cp: overwrite '/etc/File1.cfg'? y
📁 mkdir 命令 - 创建目录
mkdir
命令用于创建新目录。
语法格式:
mkdir [参数] 目录名
常用参数:
-m
:创建目录时设置权限-v
:显示详细执行过程-p
:递归创建多级目录-z
:设置目录安全上下文
常用示例:
-
创建单个目录:
[root@linuxcool ~]# mkdir Dir1
-
创建目录并设置权限为 700:
[root@linuxcool ~]# mkdir -m 700 Dir2
-
一次性创建多个目录:
[root@linuxcool ~]# mkdir Dir3 Dir4 Dir5
-
递归创建嵌套目录:
[root@linuxcool ~]# mkdir -p /Dir1/Dir2/Dir3/Dir4/Dir5
📍 pwd 命令 - 显示当前工作目录路径
pwd
命令用于显示当前工作目录的绝对路径。
语法格式:
pwd [参数]
常用参数:
-L
:显示逻辑路径-P
:显示物理路径
常用示例:
- 显示当前工作目录路径:
[root@linuxcool ~]# pwd /root
📦 tar 命令 - 压缩与解压缩文件
tar
命令用于文件和目录的打包与压缩。
语法格式:
tar [参数] 压缩包名 文件或目录名
常用参数:
-c
:创建新压缩包-x
:解压缩-v
:显示详细过程-f
:指定压缩包文件-z
:使用 gzip 压缩-j
:使用 bzip2 压缩-C
:指定解压缩目录--remove-files
:压缩后删除源文件
常用示例:
-
使用 gzip 压缩格式创建压缩包:
[root@linuxcool ~]# tar czvf File.tar.gz /etc tar: Removing leading `/' from member names /etc/ /etc/mtab /etc/fstab /etc/crypttab /etc/resolv.conf /etc/dnf/ ………………省略部分输出信息………………
-
使用 bzip2 压缩格式创建压缩包:
[root@linuxcool ~]# tar cjvf File.tar.bz2 /etc tar: Removing leading `/' from member names /etc/ /etc/mtab /etc/fstab /etc/crypttab /etc/resolv.conf /etc/dnf/ /etc/dnf/modules.d/ /etc/dnf/modules.d/container-tools.module ………………省略部分输出信息………………
-
打包当前目录所有 .cfg 文件,不压缩:
[root@linuxcool ~]# tar cvf File.tar *.cfg anaconda-ks.cfg initial-setup-ks.cfg
-
打包并删除源文件:
[root@linuxcool ~]# tar cvf File.tar *.cfg --remove-files anaconda-ks.cfg initial-setup-ks.cfg
-
解压缩到当前目录:
[root@linuxcool ~]# tar xvf File.tar anaconda-ks.cfg initial-setup-ks.cfg
-
解压缩到指定目录:
[root@linuxcool ~]# tar xvf File.tar -C /etc anaconda-ks.cfg initial-setup-ks.cfg
-
查看压缩包内容:
[root@linuxcool ~]# tar tvf File.tar -rw------- root/root 1256 2023-05-18 08:42 anaconda-ks.cfg -rw-r--r-- root/root 1585 2023-05-18 08:43 initial-setup-ks.cfg
🔒 chmod 命令 - 改变文件或目录权限
chmod
命令用于更改文件或目录的访问权限。
语法格式:
chmod [参数] 文件名
常用参数:
-c
:改变权限后输出信息-f
:改变权限失败时不显示错误信息-R
:递归处理所有子文件-v
:显示详细执行过程--reference
:使用参考文件的权限
常用示例:
-
设定文件权限为 775:
[root@linuxcool ~]# chmod 775 File.cfg
-
允许所有用户读取文件:
[root@linuxcool ~]# chmod a+r File.cfg
a
:所有用户(所有者、同组用户、其他用户)+
:添加权限r
:读取权限
-
递归设定目录及子文件可读:
[root@linuxcool ~]# chmod -R a+r Dir
-
为二进制命令文件新增 SUID 权限位:
[root@linuxcool ~]# chmod u+s /sbin/reboot
✨ 总结
通过掌握这些基本的 Linux 命令,您可以高效地管理文件和目录,进行系统配置与维护。这些命令在日常使用中非常实用,建议多加练习以熟悉其用法和参数。
#️⃣ 常用命令速查:
- 移动/重命名文件:
mv
- 列出目录内容:
ls
- 复制文件/目录:
cp
- 创建目录:
mkdir
- 显示当前路径:
pwd
- 压缩与解压缩:
tar
- 修改权限:
chmod
2.📝 文档编辑
📄 cat 命令 – 在终端显示文件内容
cat
命令用于在终端设备上显示文件的内容。它适用于查看内容较少的纯文本文件。对于内容较多的文件,使用 cat
命令可能会导致快速滚屏,难以查看具体内容,此时推荐使用 more
、less
等命令。
语法格式:
cat [参数] 文件名
常用参数:
-A
:等价于-vET
参数组合-t
:等价于-vT
参数组合-b
:显示行号(空行不编号)-n
:显示行号(包括空行)-T
:将 TAB 字符显示为^I
符号-e
:等价于-vE
参数组合-v
:使用^
和M-
引用,LFD 和 TAB 除外-E
:每行结束处显示$
符号-s
:压缩多个空行为一行--help
:显示帮助信息--version
:显示版本信息
📚 常用示例
1. 查看指定文件的内容
适用于内容较少的文件。
[root@linuxcool ~]# cat anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
………………省略部分输出信息………………
2. 查看指定文件的内容并显示行号
便于定位和编辑文件内容。
[root@linuxcool ~]# cat -n anaconda-ks.cfg
1 #version=RHEL8
2 ignoredisk --only-use=sda
3 autopart --type=lvm
4 # Partition clearing information
5 clearpart --none --initlabel
6 # Use graphical install
………省略部分输出信息………………
3. 清空指定文件的内容
通过空设备文件和输出重定向操作符实现。
[root@linuxcool ~]# cat /dev/null > anaconda-ks.cfg
[root@linuxcool ~]# cat anaconda-ks.cfg
[root@linuxcool ~]#
4. 持续写入文件内容,直到遇到 EOF 终止符
用于批量写入文本内容。
[root@linuxcool ~]# cat > anaconda-ks.cfg << EOF
> Hello, World
> Linux!~
> EOF
[root@linuxcool ~]# cat anaconda-ks.cfg
Hello, World
Linux!~
5. 将光盘设备制作成镜像文件
通过输出重定向操作符,将设备内容复制到文件中。
[root@linuxcool ~]# cat /dev/cdrom > rhel.iso
[root@linuxcool ~]# ls rhel.iso -lh
-rw-r--r--. 1 root root 6.7G May 2 00:43 rhel.iso
[root@linuxcool ~]# file rhel.iso
rhel.iso: DOS/MBR boot sector; partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 23128, 19888 sectors
🔍 less 命令 – 分页查看文件内容
less
命令允许用户分页查看文件内容,是查看大文件的理想选择。
语法格式:
less [参数] 文件名
常用示例:
[root@linuxcool ~]# less /var/log/syslog
🔄 more 命令 – 分页显示文件内容
more
命令也是用于分页显示文件内容,但功能相比 less
略逊一筹。
语法格式:
more [参数] 文件名
常用示例:
[root@linuxcool ~]# more /var/log/syslog
🔄 head 命令 – 查看文件开头部分内容
head
命令用于显示文件的前若干行内容,默认显示前 10 行。
语法格式:
head [参数] 文件名
常用示例:
[root@linuxcool ~]# head -n 20 anaconda-ks.cfg
🦶 tail 命令 – 查看文件末尾部分内容
tail
命令用于显示文件的最后若干行内容,常用于实时监控日志文件。
语法格式:
tail [参数] 文件名
常用示例:
[root@linuxcool ~]# tail -n 20 anaconda-ks.cfg
[root@linuxcool ~]# tail -f /var/log/syslog
通过结合使用这些命令,您可以更加高效地管理和编辑 Linux 系统中的文档和文件。
3.🛠️ 系统管理
📦 rpm
命令 – RPM 软件包管理器
rpm
命令用于在 Linux 系统下对软件包进行安装、卸载、查询、验证和升级等操作。
语法格式
rpm [参数] 软件包名
常用参数
参数 | 说明 |
---|---|
-a | 显示所有已安装的软件包 |
-p | 显示指定软件包的信息 |
-c | 仅显示软件包的配置文件 |
-q | 查询指定软件包是否已安装 |
-d | 仅显示文本文件 |
-R | 显示软件包的依赖关系 |
-e | 卸载指定的软件包 |
-s | 显示软件包的文件状态信息 |
-f | 显示文件或命令属于哪个软件包 |
-U | 升级或安装软件包 |
-h | 安装软件包时显示进度条 |
-v | 显示执行过程的详细信息 |
-i | 安装软件包 |
-vv | 显示执行过程的详细输出 |
-l | 显示软件包包含的文件列表 |
常用示例
1. 安装软件包
[root@linuxcool ~]# rpm -ivh cockpit-185-2.el8.x86_64.rpm
-i
:安装软件包-v
:详细模式-h
:显示进度条
2. 显示所有已安装的 RPM 软件包
[root@linuxcool ~]# rpm -qa
qemu-kvm-block-gluster-2.12.0-63.module+el8+2833+c7d6d092.x86_64
boost-atomic-1.66.0-6.el8.x86_64
gnome-session-wayland-session-3.28.1-6.el8.x86_64
grub2-tools-2.02-66.el8.x86_64
lohit-gurmukhi-fonts-2.91.2-3.el8.noarch
liberation-fonts-common-2.00.3-4.el8.noarch
policycoreutils-python-utils-2.8-16.1.el8.noarch
…………………省略部分输出信息………………
3. 查询软件包的安装路径
[root@linuxcool ~]# rpm -ql cockpit
/usr/share/cockpit
/usr/share/doc/cockpit/AUTHORS
/usr/share/doc/cockpit/COPYING
/usr/share/doc/cockpit/README.md
/usr/share/man/man1/cockpit.1.gz
/usr/share/metainfo/cockpit.appdata.xml
/usr/share/pixmaps/cockpit.png
4. 卸载软件包
[root@linuxcool ~]# rpm -evh cockpit
Preparing... ################################# [100%]
Cleaning up / removing... 1:cockpit-185-2.el8 ################################ [100%]
5. 升级软件包
[root@linuxcool ~]# rpm -Uvh cockpit-185-2.el8.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing... 1:cockpit-185-2.el8 ################################ [100%]
🖥️ uname
命令 – 显示系统内核信息
uname
命令用于显示系统的内核和其他相关信息。
语法格式
uname [参数]
常用参数
参数 | 说明 |
---|---|
-a | 显示所有相关系统信息 |
-r | 显示内核发行版本号 |
-i | 显示硬件平台 |
-s | 显示内核名称 |
-m | 显示计算机硬件架构 |
-v | 显示内核版本 |
-n | 显示主机名称 |
-o | 显示操作系统名称 |
-p | 显示主机处理器类型 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
常用示例
1. 显示系统内核名称
[root@linuxcool ~]# uname -s
Linux
2. 显示所有相关系统信息
[root@linuxcool ~]# uname -a
Linux linuxcool.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
3. 显示内核版本号
[root@linuxcool ~]# uname -r
4.18.0-80.el8.x86_64
4. 显示系统硬件架构
[root@linuxcool ~]# uname -m
x86_64
👤 useradd
命令 – 创建并设置用户信息
useradd
命令用于创建新用户,并自动完成用户信息、基本组和家目录等的设置。对于已创建的用户,可以使用 chmod
命令修改用户信息,使用 passwd
命令修改密码。
语法格式
useradd [参数] 用户名
常用参数
参数 | 说明 |
---|---|
-c | 添加备注文字 |
-M | 不建立用户家目录 |
-d | 设置新用户的家目录路径 |
-n | 不建立以用户名为名的组 |
-D | 设置新用户的预设值 |
-o | 允许创建重复 UID 的用户 |
-e | 设置用户的终止日期 |
-p | 设置用户的密码 |
-f | 设置用户过期几日后永久停权 |
-r | 建立系统用户 |
-g | 设置用户对应的基本用户组 |
-R | 设置根目录 |
-G | 设置用户对应的扩展用户组 |
-s | 设置新用户的默认 Shell 终端 |
-h | 显示帮助信息 |
-u | 设置用户 ID |
-k | 设置用户的骨架目录 |
-U | 创建与用户同名的组,并将其加入该组 |
-l | 不将用户添加到最近登录和登录失败数据库文件 |
-Z | 设置用户的 SELinux 映射角色 |
-m | 用户目录不存在时则自动创建 |
常用示例
1. 创建新用户
[root@linuxcool ~]# useradd linuxprobe
2. 创建新用户但不创建家目录,且不允许登录
[root@linuxcool ~]# useradd -M -s /sbin/nologin linuxprobe
-M
:不创建家目录-s /sbin/nologin
:设置用户不可登录
3. 创建新用户并自定义 UID
[root@linuxcool ~]# useradd -u 6688 linuxprobe
-u 6688
:设置用户 ID 为6688
4. 创建新用户并追加扩展组
[root@linuxcool ~]# useradd -G root linuxprobe
-G root
:将用户加入root
扩展组
5. 创建新用户并指定过期时间
[root@linuxcool ~]# useradd -e "2024/01/01" linuxprobe
-e "2024/01/01"
:设置用户账号在2024-01-01
过期
4.🖥️ 磁盘管理
📂 lsblk
命令 – 查看系统的磁盘使用情况
lsblk
命令用于显示系统中磁盘设备的使用情况和相关信息。它可以帮助您快速了解磁盘的分区、挂载点和设备属性。
语法格式
lsblk [参数]
常用参数
参数 | 说明 |
---|---|
-a | 显示所有设备信息 |
-m | 显示权限信息 |
-b | 以字节为单位显示设备大小 |
-n | 不显示标题 |
-e | 排除指定设备 |
-o | 自定义输出列信息 |
-f | 显示文件系统信息 |
-P | 使用 key=value 格式显示信息 |
-h | 显示帮助信息 |
-r | 使用原始格式显示信息 |
-i | 仅使用字符 |
-t | 显示拓扑结构信息 |
-l | 使用列表格式显示 |
-V | 显示版本信息 |
常用示例
1. 显示系统中所有磁盘设备的使用情况信息
[root@linuxcool ~]# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 6.6G 0 rom /media/cdrom
2. 显示系统中磁盘设备的归属及权限信息
[root@linuxcool ~]# lsblk -m
NAME SIZE OWNER GROUP MODE
sda 20G root disk brw-rw----
├─sda1 1G root disk brw-rw----
└─sda2 19G root disk brw-rw----
├─rhel-root 17G root disk brw-rw----
└─rhel-swap 2G root disk brw-rw----
sr0 6.6G root cdrom brw-rw----
3. 显示系统中所有 SCSI 类型的磁盘设备信息
[root@linuxcool ~]# lsblk -S
NAME HCTL TYPE VENDOR MODEL REV TRAN
sda 2:0:0:0 disk ATA VMware Virtual S sata
sr0 3:0:0:0 rom NECVMWar VMware SATA CD01 1.00 sata
4. 以列表格式显示磁盘设备信息,并且不显示标题
[root@linuxcool ~]# lsblk -nl
sda 8:0 0 20G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 19G 0 part
sr0 11:0 1 6.6G 0 rom /media/cdrom
rhel-root 253:0 0 17G 0 lvm /
rhel-swap 253:1 0 2G 0 lvm [SWAP]
💾 hdparm
命令 – 显示与设定硬盘参数
hdparm
命令用于显示和设置硬盘设备的相关参数,有助于了解硬盘性能和进行优化配置。
语法格式
hdparm [参数] 设备名
常用参数
参数 | 说明 |
---|---|
-a | 设置读取文件时预先存入块区的分区数 |
-I | 直接读取硬盘提供的硬件规格信息 |
-b | 设置总线状态参数 |
-N | 设置最大可见扇区数 |
-B | 设置高级电源管理功能 |
-r | 设置设备为只读,禁止写入操作 |
-C | 检查当前的 IDE 电源模式状态 |
-R | 注册一个 IDE 接口 |
-D | 启用或禁用硬盘缺陷管理功能 |
-s | 设置待机状态下的开机功能 |
-E | 设置 CD/DVD 驱动器的速率 |
-S | 使硬盘进入低功耗模式 |
-f | 将内存缓冲区的数据写入硬盘,并清空缓冲区 |
-t | 评估硬盘读取效率 |
-F | 冲洗驱动器上的写缓存缓冲区 |
-W | 管理 IDE/SATA 设备的写缓存功能 |
-g | 显示硬盘的磁轨、磁头、磁区等参数 |
-X | 设置硬盘的传输模式 |
-h | 显示帮助信息 |
-z | 强制内核重新读取指定设备的分区表 |
-i | 显示内核驱动的识别信息 |
常用示例
1. 显示指定硬盘的相关信息
[root@linuxcool ~]# hdparm /dev/sdb
/dev/sdb:
multcount = 255 (on)
IO_support = 1 (32-bit)
readonly = 0 (off)
readahead = 8192 (on)
geometry = 2610/255/63, sectors = 41943040, start = 0
2. 仅显示指定硬盘的柱面、磁头和扇区数信息
[root@linuxcool ~]# hdparm -g /dev/sdb
geometry = 2610/255/63
3. 评估指定硬盘的读取效率
[root@linuxcool ~]# hdparm -t /dev/sdb
/dev/sdb:
Timing buffered disk reads: 200 MB in 3.00 seconds = 66.67 MB/sec
4. 读取指定硬盘的传输模式
[root@linuxcool ~]# hdparm -X /dev/sdb
/dev/sdb:
drive state is: Active/Idle
current drive speed: 15000 Mhz
negotiated drive speed: 15000 Mhz
5.📤 文件传输
📁 tftp
命令 – 上传及下载文件
TFTP
(Trivial File Transfer Protocol)基于 UDP/69
,与 FTP
不同,它属于轻量级的传输服务,不具备显示文件列表、断点续传等功能。适用于简单的文件传输需求。
语法格式
tftp [参数] 域名或IP地址
常用参数
参数 | 说明 |
---|---|
-4 | 基于 IPv4 网络协议 |
-6 | 基于 IPv6 网络协议 |
-m | 设置传输模式 |
-R | 设置端口号 |
-c | 执行指定命令行 |
-v | 显示执行过程详细信息 |
-l | 参数全局转义模式 |
-V | 显示版本信息 |
常用 TFTP 命令
命令 | 说明 |
---|---|
connect | 连接远程 TFTP 服务器 |
status | 显示当前状态信息 |
mode | 设置文件传输模式 binary 或 ascii |
put | 上传指定文件 |
get | 下载指定文件 |
rexmt | 设置包传输的最长超时时间 |
quit | 退出 TFTP 服务 |
timeout | 设置重传的最长超时时间 |
verbose | 显示执行过程详细信息 |
help | 显示帮助信息 |
trace | 显示包路径 |
? | 显示帮助信息 |
常用示例
1. 远程连接至指定服务器
[root@linuxcool ~]# tftp 192.168.10.10
2. 下载远程服务器中的文件至本地工作目录
tftp> get File1.txt
3. 上传本地工作目录中的文件至远程服务器
tftp> put File2.txt
4. 退出登录远程服务器
tftp> quit
🌐 curl
命令 – 文件传输工具
curl
是一款综合性的传输工具,支持上传和下载,兼容 HTTP
、HTTPS
、FTP
等 30 余种常见协议。
语法格式
curl [参数] 网址URL -o 文件名
常用参数
参数 | 说明 |
---|---|
-a | 追加写入到指定文件 |
--cacert | 设置 CA 证书文件 |
-A | 设置用户代理标头信息 |
-G | 以 GET 方式传送数据 |
-b | 设置用户 Cookie 信息 |
--capath | 设置 CA 证书目录 |
-B | 使用 ASCII 文本传输 |
--cert-type | 设置客户端证书文件和密码 |
-C | 支持断点续传 |
--ciphers | 设置 SSL 证书密码 |
-d | 以 HTTP POST 方式传送数据 |
--connect-timeout | 设置最大请求时间 |
-D | 将头部信息写入指定文件 |
--create-dirs | 创建本地目录的层次结构 |
-e | 设置来源网址 URL |
--digest | 使用数字身份验证 |
-f | 连接失败时不显示报错 |
--ftp-create-dirs | 自动创建远程目录 |
-o | 设置新的本地文件名 |
--ftp-pasv | 使用 PASV/EPSV 代替端口 |
--ftp-ssl | 使用 SSL/TLS 进行数据传输 |
-O | 保留远程文件的原始名 |
--ftp-ssl-reqd | 使用 SSL/TLS 进行数据传输 |
-H | 自定义头信息 |
--key | 设置私钥文件名 |
-I | 显示网站的响应头信息 |
--key-type | 设置私钥文件类型 |
-K | 读取指定配置文件 |
--limit-rate | 设置传输速度 |
-N | 禁用缓冲输出 |
--max-filesize | 设置最大下载的文件总量 |
-s | 静默执行模式 |
--max-redirs | 设置最大重定向次数 |
-T | 上传指定文件 |
--pass | 设置密钥密码 |
-u | 设置服务器的用户名和密码 |
--progress-bar | 显示进度条 |
-U | 设置代理的用户名和密码 |
--verbose | 显示执行过程详细信息 |
--basic | 使用 HTTP 基本验证 |
--version | 显示版本信息 |
常用示例
1. 获取指定网站的网页源码
[root@linuxcool ~]# curl https://www.linuxcool.com
2. 下载指定网站中的文件
[root@linuxcool ~]# curl -O https://www.linuxprobe.com/docs/LinuxProbe.pdf
输出示例:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 16.8M 0 0 0 0 0 0 0:02:51 0:00:00 0:02:51 0
100 16.8M 100 16.8M 0 0 22.5M 0 --:--:-- --:--:-- --:--:-- 22.5M
3. 打印指定网站的 HTTP 响应头信息
[root@linuxcool ~]# curl -I https://www.linuxcool.com
输出示例:
HTTP/2 200
server: Tengine
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
date: Wed, 04 May 2023 06:44:26 GMT
vary: Accept-Encoding
x-powered-by: PHP/7.4.11
cache-control: max-age=3, must-revalidate
via: cache3.l2cn1802[235,234,200-0,M], cache17.l2cn1802[236,0], kunlun10.cn257 [403,414,200-0,M], kunlun 2.cn257[417,0]
x-cache: MISS
TCP_REFRESH_MISS
dirn:0:416601537
x-swift-savetime: Wed, 04 May 2023 06:44:26 GMT
x-swift-cachetime: 3
timing-allow-origin: *
eagleid: ab08f29616516466664417014e
4. 下载指定文件服务器中的文件(带用户名和密码)
[root@linuxcool ~]# curl -u linuxprobe:redhat ftp://www.linuxcool.com/LinuxProbe.pdf
📤 文件传输
🖧 tftp
命令 – 上传及下载文件
TFTP
(Trivial File Transfer Protocol)基于 UDP/69
,与 FTP
不同,它属于轻量级的传输服务,不具备显示文件列表、断点续传等功能。适用于简单的文件传输需求。
语法格式
tftp [参数] 域名或IP地址
常用参数
参数 | 说明 |
---|---|
-4 | 基于 IPv4 网络协议 |
-6 | 基于 IPv6 网络协议 |
-m | 设置传输模式 |
-R | 设置端口号 |
-c | 执行指定命令行 |
-v | 显示执行过程详细信息 |
-l | 参数全局转义模式 |
-V | 显示版本信息 |
常用 TFTP 命令
命令 | 说明 |
---|---|
connect | 连接远程 TFTP 服务器 |
status | 显示当前状态信息 |
mode | 设置文件传输模式 binary 或 ascii |
put | 上传指定文件 |
get | 下载指定文件 |
rexmt | 设置包传输的最长超时时间 |
quit | 退出 TFTP 服务 |
timeout | 设置重传的最长超时时间 |
verbose | 显示执行过程详细信息 |
help | 显示帮助信息 |
trace | 显示包路径 |
? | 显示帮助信息 |
常用示例
1. 远程连接至指定服务器
[root@linuxcool ~]# tftp 192.168.10.10
2. 下载远程服务器中的文件至本地工作目录
tftp> get File1.txt
3. 上传本地工作目录中的文件至远程服务器
tftp> put File2.txt
4. 退出登录远程服务器
tftp> quit
🌐 curl
命令 – 文件传输工具
curl
是一款综合性的传输工具,支持上传和下载,兼容 HTTP
、HTTPS
、FTP
等 30 余种常见协议。
语法格式
curl [参数] 网址URL -o 文件名
常用参数
参数 | 说明 |
---|---|
-a | 追加写入到指定文件 |
--cacert | 设置 CA 证书文件 |
-A | 设置用户代理标头信息 |
-G | 以 GET 方式传送数据 |
-b | 设置用户 Cookie 信息 |
--capath | 设置 CA 证书目录 |
-B | 使用 ASCII 文本传输 |
--cert-type | 设置客户端证书文件和密码 |
-C | 支持断点续传 |
--ciphers | 设置 SSL 证书密码 |
-d | 以 HTTP POST 方式传送数据 |
--connect-timeout | 设置最大请求时间 |
-D | 将头部信息写入指定文件 |
--create-dirs | 创建本地目录的层次结构 |
-e | 设置来源网址 URL |
--digest | 使用数字身份验证 |
-f | 连接失败时不显示报错 |
--ftp-create-dirs | 自动创建远程目录 |
-o | 设置新的本地文件名 |
--ftp-pasv | 使用 PASV/EPSV 代替端口 |
--ftp-ssl | 使用 SSL/TLS 进行数据传输 |
-O | 保留远程文件的原始名 |
--ftp-ssl-reqd | 使用 SSL/TLS 进行数据传输 |
-H | 自定义头信息 |
--key | 设置私钥文件名 |
-I | 显示网站的响应头信息 |
--key-type | 设置私钥文件类型 |
-K | 读取指定配置文件 |
--limit-rate | 设置传输速度 |
-N | 禁用缓冲输出 |
--max-filesize | 设置最大下载的文件总量 |
-s | 静默执行模式 |
--max-redirs | 设置最大重定向次数 |
-T | 上传指定文件 |
--pass | 设置密钥密码 |
-u | 设置服务器的用户名和密码 |
--progress-bar | 显示进度条 |
-U | 设置代理的用户名和密码 |
--verbose | 显示执行过程详细信息 |
--basic | 使用 HTTP 基本验证 |
--version | 显示版本信息 |
常用示例
1. 获取指定网站的网页源码
[root@linuxcool ~]# curl https://www.linuxcool.com
2. 下载指定网站中的文件
[root@linuxcool ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
输出示例:
--2023-05-11 18:36:42-- https://www.linuxprobe.com/docs/LinuxProbe.pdf
Resolving www.linuxprobe.com (www.linuxprobe.com)... 58.218.215.124
Connecting to www.linuxprobe.com (www.linuxprobe.com)|58.218.215.124|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17676281 (17M) [application/pdf]
Saving to: ‘LinuxProbe.pdf’
LinuxProbe.pdf 100%[=================================>] 16.86M 30.0MB/s in 0.6s
2023-05-11 18:36:42 (30.0 MB/s) - ‘LinuxProbe.pdf’ saved [17676281/17676281]
3. 打印指定网站的 HTTP 响应头信息
[root@linuxcool ~]# curl -I https://www.linuxcool.com
输出示例:
HTTP/2 200
server: Tengine
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
date: Wed, 04 May 2023 06:44:26 GMT
vary: Accept-Encoding
x-powered-by: PHP/7.4.11
cache-control: max-age=3, must-revalidate
ali-swift-global-savetime: 1651646666
via: cache3.l2cn1802[235,234,200-0,M], cache17.l2cn1802[236,0], kunlun10.cn257 [403,414,200-0,M], kunlun 2.cn257[417,0]
x-cache: MISS
TCP_REFRESH_MISS
dirn:0:416601537
x-swift-savetime: Wed, 04 May 2023 06:44:26 GMT
x-swift-cachetime: 3
timing-allow-origin: *
eagleid: ab08f29616516466664417014e
4. 下载指定文件服务器中的文件(带用户名和密码)
[root@linuxcool ~]# curl -u linuxprobe:redhat ftp://www.linuxcool.com/LinuxProbe.pdf
📥 wget
命令 – 下载网络文件
wget
命令用于从指定网址下载网络文件。wget
稳定可靠,即使在网络波动时也会不断尝试重连,直到文件下载完成。支持 HTTP
、HTTPS
、FTP
等常见协议,适用于命令行中直接下载网络文件。
语法格式
wget [参数] 网址URL -o 文件名
常用参数
参数 | 说明 |
---|---|
-4 | 基于 IPv4 网络协议 |
-6 | 基于 IPv6 网络协议 |
-r | 递归处理所有子文件 |
-S | 显示服务器响应信息 |
-a | 将日志追加写入至指定文件 |
-t | 设置最大尝试次数 |
-b | 启动后转入后台执行 |
-T | 设置最长等待时间 |
-c | 支持断点续传 |
-v | 显示执行过程详细信息 |
-d | 使用调试模式 |
-V | 显示版本信息 |
-e | 执行指定的命令 |
-w | 设置等待间隔(秒) |
-F | 将输入文件当作 HTML 处理 |
-x | 强制创建目录 |
-h | 显示帮助信息 |
--ask-password | 提示输入密码 |
-i | 下载指定文件中的链接 |
--limit-rate | 限制下载速度 |
-l | 设置最大递归目录深度 |
--no-dns-cache | 关闭 DNS 查询缓存 |
-nd | 不要创建目录 |
--no-proxy | 禁止使用代理 |
-N | 只获取比本地更新的文件 |
--password | 设置密码值 |
-o | 将日志信息写入指定文件 |
--random-wait | 下载多个文件时,随机等待间隔(秒) |
-O | 设置本地文件名 |
--spider | 仅检查文件是否存在 |
-P | 设置文件前缀 |
--user | 设置用户名 |
-q | 静默执行模式 |
常用示例
1. 下载指定的网络文件
[root@linuxprobe ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
输出示例:
--2023-05-11 18:36:42-- https://www.linuxprobe.com/docs/LinuxProbe.pdf
Resolving www.linuxprobe.com (www.linuxprobe.com)... 58.218.215.124
Connecting to www.linuxprobe.com (www.linuxprobe.com)|58.218.215.124|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17676281 (17M) [application/pdf]
Saving to: ‘LinuxProbe.pdf’
LinuxProbe.pdf 100%[=================================>] 16.86M 30.0MB/s in 0.6s
2023-05-11 18:36:42 (30.0 MB/s) - ‘LinuxProbe.pdf’ saved [17676281/17676281]
2. 下载指定的网络文件,并定义保存在本地的文件名称
[root@linuxcool ~]# wget -O Book.pdf https://www.linuxprobe.com/docs/LinuxProbe.pdf
3. 下载指定的网络文件,限速最高每秒 300kbit/s
[root@linuxcool ~]# wget --limit-rate=300k https://www.linuxprobe.com/docs/LinuxProbe.pdf
4. 启用断点续传技术下载指定的网络文件
[root@linuxcool ~]# wget -c https://www.linuxprobe.com/docs/LinuxProbe.pdf
5. 下载指定的网络文件,将任务放至后台执行
[root@linuxcool ~]# wget -b https://www.linuxprobe.com/docs/LinuxProbe.pdf
输出示例:
Continuing in background, pid 237616. Output will be written to ‘wget-log’.
📜 history
命令 – 显示与管理历史命令记录
history
命令用于显示与管理历史命令记录。Linux 系统默认会记录用户执行过的命令,可以使用 history
命令查阅这些记录,也可以对其进行修改和删除操作。
语法格式
history [参数]
常用参数
参数 | 说明 |
---|---|
-a | 保存命令记录 |
-r | 读取命令记录到缓冲区 |
-c | 清空命令记录 |
-s | 添加命令记录到缓冲区 |
-d | 删除指定序号的命令记录 |
-w | 将缓冲区信息写入历史文件 |
-n | 读取命令记录 |
常用示例
1. 显示执行过的全部命令记录
[root@linuxcool ~]# history
1 vim /etc/sysconfig/network-scripts/ifcfg-ens160
2 reboot
3 vim /etc/sysconfig/network-scripts/ifcfg-ens160
4 vim /etc/yum.repos.d/rhel.repo
5 mkdir /media/cdrom
………………省略部分输出信息………………
2. 显示最近执行过的 5 条命令
[root@linuxcool ~]# history 5
11 exit
12 ifconfig
13 vim /etc/hostname
14 reboot
15 history
3. 将本次缓冲区信息写入历史文件(~/.bash_history
)
[root@linuxcool ~]# history -w
4. 将历史文件中的信息读入当前缓冲区
[root@linuxcool ~]# history -r
5. 将本次缓冲区信息追加写入历史文件(~/.bash_history
)
[root@linuxcool ~]# history -a
6. 清空本次缓冲区及历史文件中的信息
[root@linuxcool ~]# history -c
✨ 总结
通过掌握 tftp
、curl
、wget
和 history
这些文件传输与管理工具,您可以高效地进行文件的上传、下载和历史命令的管理。这些命令在日常使用中非常实用,建议多加练习以熟悉其用法和参数。
#️⃣ 常用命令速查:
- TFTP 文件传输:
tftp
- 综合文件传输:
curl
- 下载网络文件:
wget
- 显示与管理历史命令:
history
- RPM 软件包管理:
rpm
- 显示系统信息:
uname
- 创建用户:
useradd
- 列出磁盘信息:
lsblk
- 设定硬盘参数:
hdparm
- 移动/重命名文件:
mv
- 列出目录内容:
ls
- 复制文件/目录:
cp
- 创建目录:
mkdir
- 显示当前路径:
pwd
- 压缩与解压缩:
tar
- 修改权限:
chmod
加油学习,探索 Linux 的无限可能! 🚀