Linux 02 基本命令

参考源

https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0

版本

本文章基于 CentOS 7.6


工具

清屏

clear

使用 clear 命令后,会清空当前屏幕的所有命令,回到最初始的界面。

[root@sail logs]# 

其实这只是将之前的内容全部滚到最上面隐藏起来,向上滑动滚轮是可以看到之前的内容的。

查看历史命令

history

[root@sail logs]# history
    1  ls
    2  pwd
    3  cd home

退出

exit

使用 exit 命令会退出当前终端。

这只是退出命令输入终端,并不是退出系统,对系统是没有影响的。

文档查看

man

Linux 系统可以使用 man 命令 来查看各个命令的使用文档。

[root@sail ~]# man ls
LS(1)                                                                                           User Commands                                                                                           LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

       --author
              with -l, print the author of each file

       -b, --escape
              print C-style escapes for nongraphic characters

       --block-size=SIZE
              scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of 1,048,576 bytes; see SIZE format below

       -B, --ignore-backups
              do not list implied entries ending with ~

       -c     with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first

       -C     list entries by columns

       --color[=WHEN]
              colorize the output; WHEN can be 'never', 'auto', or 'always' (the default); more info below

       -d, --directory
              list directories themselves, not their contents

       -D, --dired
              generate output designed for Emacs' dired mode

       -f     do not sort, enable -aU, disable -ls --color

       -F, --classify
              append indicator (one of */=>@|) to entries

       --file-type
              likewise, except do not append '*'

使用说明

–help

Linux 系统可以使用 命令 --help 来查看各命令的使用说明。

[root@sail ~]# ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      scale sizes by SIZE before printing them; e.g.,
                               '--block-size=M' prints sizes in units of
                               1,048,576 bytes; see SIZE format below
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information);
                               with -l: show ctime and sort by name;
                               otherwise: sort by ctime, newest first
  -C                         list entries by columns
      --color[=WHEN]         colorize the output; WHEN can be 'never', 'auto',
                               or 'always' (the default); more info below
  -d, --directory            list directories themselves, not their contents
  -D, --dired                generate output designed for Emacs' dired mode
  -f                         do not sort, enable -aU, disable -ls --color
  -F, --classify             append indicator (one of */=>@|) to entries
      --file-type            likewise, except do not append '*'
      --format=WORD          across -x, commas -m, horizontal -x, long -l,
                               single-column -1, verbose -l, vertical -C
      --full-time            like -l --time-style=full-iso
  -g                         like -l, but do not list owner
      --group-directories-first
                             group directories before files;
                               can be augmented with a --sort option, but any
                               use of --sort=none (-U) disables grouping
  -G, --no-group             in a long listing, don't print group names
  -h, --human-readable       with -l, print sizes in human readable format
                               (e.g., 1K 234M 2G)
      --si                   likewise, but use powers of 1000 not 1024
  -H, --dereference-command-line
                             follow symbolic links listed on the command line
      --dereference-command-line-symlink-to-dir
                             follow each command line symbolic link
                               that points to a directory
      --hide=PATTERN         do not list implied entries matching shell PATTERN
                               (overridden by -a or -A)
      --indicator-style=WORD  append indicator with style WORD to entry names:
                               none (default), slash (-p),
                               file-type (--file-type), classify (-F)
  -i, --inode                print the index number of each file
  -I, --ignore=PATTERN       do not list implied entries matching shell PATTERN
  -k, --kibibytes            default to 1024-byte blocks for disk usage
  -l                         use a long listing format
  -L, --dereference          when showing file information for a symbolic
                               link, show information for the file the link
                               references rather than for the link itself
  -m                         fill width with a comma separated list of entries
  -n, --numeric-uid-gid      like -l, but list numeric user and group IDs
  -N, --literal              print raw entry names (don't treat e.g. control
                               characters specially)
  -o                         like -l, but do not list group information
  -p, --indicator-style=slash
                             append / indicator to directories
  -q, --hide-control-chars   print ? instead of nongraphic characters
      --show-control-chars   show nongraphic characters as-is (the default,
                               unless program is 'ls' and output is a terminal)
  -Q, --quote-name           enclose entry names in double quotes
      --quoting-style=WORD   use quoting style WORD for entry names:
                               literal, locale, shell, shell-always, c, escape
  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively
  -s, --size                 print the allocated size of each file, in blocks
  -S                         sort by file size
      --sort=WORD            sort by WORD instead of name: none (-U), size (-S),
                               time (-t), version (-v), extension (-X)
      --time=WORD            with -l, show time as WORD instead of default
                               modification time: atime or access or use (-u)
                               ctime or status (-c); also use specified time
                               as sort key if --sort=time
      --time-style=STYLE     with -l, show times using style STYLE:
                               full-iso, long-iso, iso, locale, or +FORMAT;
                               FORMAT is interpreted like in 'date'; if FORMAT
                               is FORMAT1<newline>FORMAT2, then FORMAT1 applies
                               to non-recent files and FORMAT2 to recent files;
                               if STYLE is prefixed with 'posix-', STYLE
                               takes effect only outside the POSIX locale
  -t                         sort by modification time, newest first
  -T, --tabsize=COLS         assume tab stops at each COLS instead of 8
  -u                         with -lt: sort by, and show, access time;
                               with -l: show access time and sort by name;
                               otherwise: sort by access time
  -U                         do not sort; list entries in directory order
  -v                         natural sort of (version) numbers within text
  -w, --width=COLS           assume screen width instead of current value
  -x                         list entries by lines instead of by columns
  -X                         sort alphabetically by entry extension
  -1                         list one file per line

SELinux options:

  --lcontext                 Display security context.   Enable -l. Lines
                             will probably be too wide for most displays.
  -Z, --context              Display security context so it fits on most
                             displays.  Displays only mode, user, group,
                             security context and file name.
  --scontext                 Display only security context and file name.
      --help     display this help and exit
      --version  output version information and exit

SIZE is an integer and optional unit (example: 10M is 10*1024*1024).  Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).

Using color to distinguish file types is disabled both by default and
with --color=never.  With --color=auto, ls emits color codes only when
standard output is connected to a terminal.  The LS_COLORS environment
variable can change the settings.  Use the dircolors command to set it.

Exit status:
 0  if OK,
 1  if minor problems (e.g., cannot access subdirectory),
 2  if serious trouble (e.g., cannot access command-line argument).

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'ls invocation'

关机

shutdown

Linux 大多用在服务器上,服务器上跑的服务是需要持续稳定的,除非特殊情况下,不得已才会关机。

立刻关机

shutdown –h now

10分钟后关机

shutdown –h 10

今天20:25关机

shutdown –h 20:25

halt

等同于 shutdown –h now

poweroff

等同于 shutdown –h now

重启

reboot

立刻重启

 reboot

10分钟后重启

shutdown –r +10

立刻重启,等同于 reboot

shutdown –r now

同步数据

sync

将数据由内存同步到硬盘中。

sync

不管关机还是重启,首先要运行 sync 命令,把内存中的数据写到磁盘中。

目录管理

列出目录

ls

在 Linux 系统当中, ls 命令可能是最常被运行的。

语法:

ls [-aAdfFhilnrRSt] 目录名称

参数:

  • -a:全部的文件,连同隐藏文件(开头为 . 的文件) 一起列出来(常用)。
  • -l:长数据串列出,包含文件的属性与权限等等数据(常用)。
  • -i:显示文件的 inode 节点信息。

将目录下的所有文件列出来(含属性与隐藏档)

[root@sail /]# ls -al
total 68
dr-xr-xr-x. 18 root root  4096 Oct 25 21:28 .
dr-xr-xr-x. 18 root root  4096 Oct 25 21:28 ..
lrwxrwxrwx.  1 root root     7 Jul 11  2019 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Jul 11  2019 boot
drwxr-xr-x  19 root root  2980 Oct 31 22:57 dev
drwxr-xr-x. 77 root root  4096 Oct 31 22:54 etc
drwxr-xr-x.  3 root root  4096 Oct 25 21:14 home
lrwxrwxrwx.  1 root root     7 Jul 11  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Jul 11  2019 lib64 -> usr/lib64
drwx------.  2 root root 16384 Jul 11  2019 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x  90 root root     0 Oct 31 22:54 proc
dr-xr-x---.  5 root root  4096 Oct 31 22:54 root
drwxr-xr-x  23 root root   640 Oct 31 22:55 run
lrwxrwxrwx.  1 root root     8 Jul 11  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Nov  1  2021 sys
drwxrwxrwt. 10 root root  4096 Oct 31 22:55 tmp
drwxr-xr-x. 13 root root  4096 Jul 11  2019 usr
drwxr-xr-x. 19 root root  4096 Jul 11  2019 var

切换目录

cd

Change Directory 的缩写,这是用来变换工作目录的命令。

语法:

cd [相对路径或绝对路径]

切换到用户目录下

[root@sail /]# cd home
[root@sail home]# 

回到上一级

[root@sail home]# cd ..
[root@sail /]# 

回到根目录

[root@sail /]# cd /
[root@sail /]# 

回到 root 目录

[root@sail /]# cd root
[root@sail ~]# 

显示目前的目录

pwd

Print Working Directory 的缩写,也就是显示目前所在目录的命令。

语法:

pwd [-P]

参数:

  • -P :显示出确实的路径,而非使用连接(link)路径。

单纯显示出目前的工作目录

[root@sail ~]# pwd
/root

如果是链接,要显示真实地址,可以使用 -P 参数

[root@sail ~]# cd /bin
[root@sail bin]# pwd
/bin
[root@sail bin]# pwd -P
/usr/bin

创建目录

mkdir

Make Directory的缩写,创建新目录。

语法:

mkdir [-mp] 目录名称

参数:

  • -m :配置文件的权限。直接配置,不需要考虑默认权限(umask)。
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来。

创建目录

[root@sail home]# mkdir sail
[root@sail home]# ls
admin  sail

创建多级目录

[root@sail home]# mkdir test1/test2/test3/test4
mkdir: cannot create directory ‘test1/test2/test3/test4’: No such file or directory

可以看出,是不能直接创建多级目录的。


如果需要创建多级目录,需要加上 -p 参数。

[root@sail home]# mkdir -p test1/test2/test3/test4
[root@sail home]# ls
admin  test1

创建权限为 rwx–x–x 的目录

[root@sail home]# mkdir -m 711 test2
[root@sail home]# ls -l
total 12
drwx------ 3 admin admin 4096 Oct 29 09:56 admin
drwxr-xr-x 3 root  root  4096 Oct 31 23:19 test1
drwx--x--x 2 root  root  4096 Oct 31 23:21 test2

删除目录

rmdir

删除空的目录

语法:

rmdir [-p] 目录名称

参数:

  • -p: 连同下一级(空的)目录也一起删除

删除空目录

[root@sail home]# rmdir test2
[root@sail home]# ls
admin  test1

删除非空目录

[root@sail home]# rm test1
rm: cannot remove ‘test1’: Is a directory

因为目录不是空的,无法删除。


加上参数 -p ,可以将 test1/test2/test3/test4 依次删除。

[root@sail home]# rmdir -p test1/test2/test3/test4
[root@sail home]# ls
admin

rmdir 仅能删除空的目录,可以使用 rm 命令来删除非空目录。

文件管理

复制文件

cp

复制文件或目录

语法:

cp [-adfilprsu] 来源(source) 目标(destination)

参数:

  • -a:相当于 -pdr 命令(常用)。
  • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)。
  • -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身。
  • -r:递归持续复制,用於目录的复制行为(常用)。
  • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次。
  • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)。
  • -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。
  • -s:复制成为符号连结档(symbolic link),亦即捷径文件。
  • -u:若 destination 比 source 旧才升级 destination。

找一个有文件的目录,我这里找到 root 目录。

[root@sail home]# cd /root
[root@sail ~]# ls
install.sh
[root@sail ~]# cd /home

复制 /root 目录下的 install.sh/home 目录下

[root@sail home]# cp /root/install.sh /home
[root@sail home]# ls
install.sh

再次复制,加上 -i 参数,增加覆盖询问(n 不覆盖,y 为覆盖)。

[root@sail home]# cp -i /root/install.sh /home
cp: overwrite ‘/home/install.sh’?

删除文件

rm

删除文件或目录

语法:

rm [-fir] 文件或目录

参数:

  • -f :force 的缩写,忽略不存在的文件,不会出现警告信息。
  • -i :互动模式,在删除前会询问使用者是否动作。
  • -r :递归删除。常用于目录的删除(影响很大,需要谨慎操作)。

删除 /homeinstall.sh

[root@sail home]# rm -i install.sh
rm: remove regular file ‘install.sh’? y

删除所有文件

rm -rf /

此命令会强制递归删除 / 下的所有文件。

由于 / 是根目录,所以会删除所有文件。

由于 Linux 一切皆文件,删除所有文件后系统将无法使用。

这是非常危险的命令,除非真的有此需要,否则千万不要使用。

移动文件

mv

移动文件与目录,或修改名称。

语法:

mv [-fiu] source destination

参数:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
  • -i :若目标文件(destination)已经存在时,就会询问是否覆盖。
  • -u :若目标文件已经存在,且 source 比较新,才会升级(update)。

复制一个文件到当前目录

[root@sail home]# cp /root/install.sh /home

创建一个文件夹 test

[root@sail home]# mkdir test

将复制过来的文件移动到我们创建的目录,并查看

[root@sail home]# mv install.sh test
[root@sail home]# ls
test
[root@sail home]# cd test
[root@sail test]# ls
install.sh

将文件夹重命名,然后再次查看

[root@sail test]# cd ..
[root@sail home]# mv test mvtest
[root@sail home]# ls
mvtest

创建文件

touch

在当前目录创建一个文件。

语法:

touch 文件名
[root@sail home]# touch f1
[root@sail home]# ls
admin  f1

编辑文本

echo

输入内容给指定文件。

语法:

echo "内容" >>文件名
[root@sail home]# echo "I am f1 file" >>f1
[root@sail home]# cat f1
I am f1 file

这种方式很不方便,一般推荐使用 vim 命令来编辑文本。具体操作见:Linux 09 vim使用

内容查看

显示文件内容

cat

由第一行开始显示文件内容。

语法:

cat [-AbEnTv]

参数:

  • -A:相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已。
  • -b:列出行号,仅针对非空白行做行号显示,空白行不标行号。
  • -E:将结尾的断行字节 $ 显示出来。
  • -n:列印出行号,连同空白行也会有行号,与 -b 的选项不同。
  • -T:将 [tab] 按键以 ^I 显示出来。
  • -v:列出一些看不出来的特殊字符。
[root@sail ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

反显文件内容

tac

taccat 命令的反写,意思也很明显:由最后一行开始显示文件内容。

[root@sail ~]# tac /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=dhcp
DEVICE=eth0

查看文件并显示行号

nl

语法:

nl [-bnw] 文件

参数:

  • -b:指定行号指定的方式,主要有两种:
    • -b a:不论是否为空行,也同样列出行号(类似 cat -n)。
    • -b t:如果有空行,空的那一行不要列出行号(默认值)。
  • -n:列出行号表示的方法,主要有三种:
    • -n ln:行号在荧幕的最左方显示。
    • -n rn:行号在自己栏位的最右方显示,且不加 0。
    • -n rz:行号在自己栏位的最右方显示,且加 0。
  • -w:行号栏位的占用的位数。
[root@sail ~]# nl /etc/sysconfig/network-scripts/ifcfg-eth0
     1	DEVICE=eth0
     2	BOOTPROTO=dhcp
     3	ONBOOT=yes

查看文件并翻页

more

一页一页翻动(只能向下翻动)。

按键:

在 more 这个程序的运行过程中,你有几个按键可以按的:

  • 空白键:代表向下翻一页。
  • 回车键:代表向下翻一行。
  • /:代表在这个显示的内容当中,向下搜寻这个关键字。
  • f:立刻显示出档名以及目前显示的行数;
  • q:代表立刻离开 more ,不再显示该文件内容。
  • bctrl b :代表往回翻页,不过这动作只对文件有用,对管线无用。

less

一页一页翻动(可以上下翻页)。

按键:

  • 空格键:向下翻动一页。
  • 上键:向下翻动一页。
  • 下键:向上翻动一页。
  • / :向下搜寻『字串』的功能。
  • ?:向上搜寻『字串』的功能。
  • n:重复前一个搜寻 (与 / 或 ? 有关!)。
  • N:反向的重复前一个搜寻 (与 / 或 ? 有关!)。
  • q:离开 less 这个程序。

查看文件前面几行

head

语法:

head [-n number] 文件

参数:

  • -n:后面接数字,代表显示几行的意思。默认显示前面 10 行。
[root@sail ~]# head -n 15 /etc/csh.login
# /etc/csh.login

# System wide environment and startup programs, for login setup

#add sbin directories to the path
foreach p ( /usr/local/sbin /usr/sbin )
	switch (":${PATH}:")
	case "*:${p}:*":
		breaksw
	default:
		if ( $uid == 0 ) then
                        set path = ( ${p} ${path:q} )
		else
                        set path = ( ${path:q} ${p} )
		endif

查看文件后面几行

tail

语法:

tail [-n number] 文件

参数:

  • -n:后面接数字,代表显示几行的意思。默认显示最后 10 行。
[root@sail ~]# tail -n 15  /etc/csh.login
set history=1000

if ( -d /etc/profile.d ) then
        set nonomatch
        foreach i ( /etc/profile.d/*.csh /etc/profile.d/csh.local )
                if ( -r "$i" ) then
	                        if ($?prompt) then
	                              source "$i"
	                        else
	                              source "$i" >& /dev/null
	                        endif
                endif
        end
        unset i nonomatch
endif

链接

Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接或者符号链接(Symbolic Link)。

硬链接

ln

一般情况下,ln 命令产生硬链接。

语法:

ln 文件

硬链接通过索引节点来进行链接。

在 Linux 中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。

在 Linux 中,多个文件名指向同一索引节点是存在的。比如:

AB 的硬链接(AB 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同。

一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件。

A 和 B 对文件系统来说是完全平等的,删除其中任何一个都不会影响另外一个的访问。

硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止误删的功能。

其原因如上所述,因为对应该目录的索引节点有一个以上的连接,只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。

文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软链接

ln -s

语法:

ln -s 文件

另外一种连接称之为软链接(Symbolic Link),也叫符号链接

==软链接类似于 Windows 的快捷方式。==它实际上是一个特殊的文件。

在符号链接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:

AB 的软链接(AB 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,AB 指向的是两个不同的 inode,继而指向两块不同的数据块。

A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。

AB 之间是主从关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。


创建一个测试文件 f1

[root@sail home]# touch f1
[root@sail home]# ls
admin  f1

创建 f1 的一个硬链接文件 f2

[root@sail home]# ln f1 f2

创建 f1 的一个软链接文件 f3

[root@sail home]# ln -s f1 f3

显示文件的 inode 节点信息

[root@sail home]# ls -li
total 4
1048909 drwx------ 3 admin admin 4096 Oct 29 09:56 admin
 664707 -rw-r--r-- 2 root  root     0 Nov  6 22:09 f1
 664707 -rw-r--r-- 2 root  root     0 Nov  6 22:09 f2
 664708 lrwxrwxrwx 1 root  root     2 Nov  6 22:09 f3 -> f1

硬链接文件 f2 与原文件 f1 的 inode 节点相同,均为 664707,然而软链接文件的 inode 节点不同。


输入字符到 f1

[root@sail home]# echo "I am f1 file" >>f1

查看文件

[root@sail home]# cat f1
I am f1 file
[root@sail home]# cat f2
I am f1 file
[root@sail home]# cat f3
I am f1 file
[root@sail home]# rm -f f1
[root@sail home]# cat f2
I am f1 file
[root@sail home]# cat f3
cat: f3: No such file or directory

可以看出,当删除原始文件 f1 后,硬链接 f2 不受影响,但是软链接 f3 无效。


由此可以得到如下结论:

  • 删除符号连接 f3,对 f1f2 无影响。
  • 删除硬连接 f2,对 f1f3 也无影响。
  • 删除原文件 f1,对硬链接 f2 没有影响,导致软链接 f3 失效。
  • 同时删除原文件 f1、硬连接 f2,整个文件会真正的被删除。

服务

查看服务状态

systemctl status

systemctl status 服务名.service

重新注册服务

systemctl daemon-reload

systemctl daemon-reload

设置开机自启动

systemctl enable

systemctl enable 服务名.service

启动服务

systemctl start

systemctl start 服务名.service

停止服务

systemctl stop

systemctl stop 服务名.service

重启服务

systemctl restart

systemctl restart 服务名.service

查看主机名

hostname

[root@sail ~]# hostname
sail

修改主机名

命令方式

hostnamectl set-hostname

hostnamectl set-hostname 主机名

修改文件

修改 /etc/hostname 内容即可。

修改后需要重启服务器

reboot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天航星

感谢你的鼓励和认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值