关于我 壹文 项目 三五好友
🐧 Linux 命令学习笔记 2024-09-25
文章摘要

:本文章为学习笔记。请学习者前往原文章阅读:原文链接

🐧 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 命令可能会导致快速滚屏,难以查看具体内容,此时推荐使用 moreless 等命令。

语法格式:

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设置文件传输模式 binaryascii
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 是一款综合性的传输工具,支持上传和下载,兼容 HTTPHTTPSFTP 等 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设置文件传输模式 binaryascii
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 是一款综合性的传输工具,支持上传和下载,兼容 HTTPHTTPSFTP 等 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 稳定可靠,即使在网络波动时也会不断尝试重连,直到文件下载完成。支持 HTTPHTTPSFTP 等常见协议,适用于命令行中直接下载网络文件。

语法格式

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

总结

通过掌握 tftpcurlwgethistory 这些文件传输与管理工具,您可以高效地进行文件的上传、下载和历史命令的管理。这些命令在日常使用中非常实用,建议多加练习以熟悉其用法和参数。

#️⃣ 常用命令速查:

  • TFTP 文件传输: tftp
  • 综合文件传输: curl
  • 下载网络文件: wget
  • 显示与管理历史命令: history
  • RPM 软件包管理: rpm
  • 显示系统信息: uname
  • 创建用户: useradd
  • 列出磁盘信息: lsblk
  • 设定硬盘参数: hdparm
  • 移动/重命名文件: mv
  • 列出目录内容: ls
  • 复制文件/目录: cp
  • 创建目录: mkdir
  • 显示当前路径: pwd
  • 压缩与解压缩: tar
  • 修改权限: chmod

加油学习,探索 Linux 的无限可能! 🚀

Not-By-AI