Linux基本命令
解压命令:tar -zxcf [压缩包名] 共享文件夹目录:/mnt/hgfs/myshare linux的目录结构: /etc:所有的系统管理所需要的配置文件和子目录s /usr:非常重要的目录,用户安装的软件存放再此目录 /usr/local:软件真正的安装目录 /dev:设备管理目录 /media:Linux会自动识别一些设备,例如U盘,光碟等 /mnt:Linux挂在别的系统的文件 /opt:将待安装的软件(安装包)存放再此目录 /lib :系统的最基本的动态连接共享库 /lost+found:此目录一般为空的,当系统非法关机后,这里就存放了一些文件 /var:这个目录存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件 /selinux:[security-enhanced linux]是一种安全子系统,它能控制程序只能访问特定文件。 /boot:存放启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件 /proc:是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。 /srv:service缩写,存放一些服务启动之后需要提取的数据 /sys:该目录安装了2.6内核中新出现的一个文件系统。 为了可以使用xshell等来连接,Linux需要开启一个sshd服务,监听22端口; 命令:setup,可以打开管理器 查看网络地址命令: win:ipconfig linux:ifconfig 关机,重启命令: shutdown: shutdown -h now 表示立即关机 shutdown -h 1:表示1分钟后关机 shutdown -r now 立即重启 halt:直接使用,效果等效关机 reboot:现在重新启动计算机 sync:把内存的数据同步到磁盘上 用户登录和注销; 用户登录后,可以使用su -用户名命令来切换成系统管理员身份;再提示符下输入logout即可注销用户。 linux的用户至少属于一个组 添加用户: 基本语法:useradd [option] [用户名] 如果没有指定用户所属于的用户组,则会创建一个与用户名同名的用户组,并将该用户分配再此组内。 useradd -d /home/.yourDir./ [用户名] 指定该用户的家目录 指定或修改用户密码:passwd [用户名] 增加用户时直接加上组: useradd -g [用户组] [用户名] 删除用户: 基本语法:userdel [用户名] 应用案例: 1. 删除用户xiaoming,但要保存家目录 userdel [用户名] 2. 删除用户以及用户主目录 userdel -r [用户名] 查询用户信息: 语法: id [用户名] 切换用户: 1. 本机登录用户为root用户,暂时切换为用户xiaoming: 命令:su - xiaoming 高权限用户切换到低权限用户不需要输入密码,反之则需要; 回退原先的用户的命令:exit 查看当前用户: 命令:who am i 用户组: 增加一个组: groupadd [组名] 删除组: groupdel [组名] 修改用户的组: usermod -g [用户组] [用户名] 改变该用户登录的初始目录: usermod -d [目录名] [用户名] 配置文件: 用户配置文件(用户信息):/etc/passwd 组配置文件(组信息):/etc/group 口令配置文件(密码和登录信息,是加密文件):/etc/shadow 用户级别: 0:关机 1:单用户 2:多用户无网络 3:多用户有网络 4:保留 5:图形界面 6:重启 系统的运行级别配置文件:/etc/inittab 设置用户级别基本语法: init [n] :数字n可以是0,1,2,3,5,6 使用案例:找回root密码 思路:进入到单用户模式,然后修改root密码,因为进入单用户模式,root不需要密码就可以登录 步骤:开机立即按enter键,按e键,选择内核那一行,再按e键,回车,按b键启动客户机,执行i需改 密码命令passwd root;reboot重启,正常开机即可。 以点打头的文件默认都是隐藏文件:例如.hello 帮助指令: 1. man [option] 例如:man id 2. help [option] :获取shell内置脚本命令 例如:help cd 文件目录指令: 创建目录:mkdir 常用语法:mkdir [option] [要创建的目录] 常用选项: -p : 创建多级目录 删除目录:rmdir 常用语法:rmdir [option] [要删除的空目录] 删除一个非空目录:rm -rf [要删除的目录] touch指令:创建空文件 基本语法: touch [文件名称] 拷贝指令:cp 基本语法: cp [选项] [source] [destination] 常用选项: -r:递归复制整个文件夹 rm指令:rm 基本语法: rm [option] [要删除的文件或目录] 常用选项: -r:递归删除整个文件夹 -f:强制删除不提示 mv指令:mv移动文件与目录或重命名 基本语法: mv oldNameFile newNameFile (功能描述:重命名) mv /tmp/movefile /targetFolder (功能描述:移动文件) cat指令: 基本语法: cat [option] [要查看的文件] 常用选项: -n:显示行号 使用细节: cat只能浏览,不能修改 通常会配合管道符|使用:cat -n h.txt | more,键入空格浏览下一页 more指令: more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了许多快捷键。 基本语法: more [要查看的文件] 快捷键: 空白键:下一页 enter:向下翻一行 q:代表立即离开more,不再显示该文件内容 ctrl+f:向下滚动一屏 ctrl+b:返回上一屏 =:输出当前的行号 :f :输出文件名和当前的行号 less指令: less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。 基本语法: less [要查看的文件] 快捷键: 空白键 : 向下翻动下一页 [pageDown] : 同上 [pageup] : 向上 /str : 向下搜寻匹配字符的功能,n:向下查找,N:向上查找 ?str : 向上搜寻匹配字符的功能,n:向上查找,N:向下查找 q : 离开less这个程序 >指令和>>指令; >输出重定向;>>追加 基本语法: ls -l > a.txt (功能描述:将列表内容写入到文件a.txt中<覆盖写>) ls -l >> a.txt (功能描述:将列表的内容追加到文件a.txt的末尾<在结尾处添加>) cat a.txt > b.txt (功能描述:将a.txt中内容写入到b.txt中<覆盖>) cat a.txt >> b.txt (功能描述:将a.txt中内容写入到b.txt中<结尾处添加>) echo指令:输出内容至控制台 基本语法: echo [选项] [输出内容] 举例:输出环境变量 [root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin head指令: 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容 基本语法: head [文件名] (功能描述:查看文件头10行内容) head -n 5 [文件名] (功能描述:查看文件头5行内容) tail指令: 用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容 基本语法: 同head的用法相同; tail -f [文件] (功能描述:实时追踪该文档的所有更新,工作中经常使用) ln指令: 软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径。 基本语法: ln -s [原文件目录] [软链接名] (功能描述:给原文件创建一个软链接) 应用示例: 1. 在/home目录下创建一个软链接linkToRoot,连接到/root目录 ln -s /root linkToRoot 2. 删除软链接linkToRoot # rm -rf linkToRoot 细节:创建linkToRoot软链接后,使用cd linkToRoot,即切换到/root目录下,使用ls -l可以检索/root下所有的文件,但使用pwd命令查看目录,显示的仍然是当初的目录,即/home history指令:查看已经执行过历史命令,也可以执行历史指令 基本语法: history (功能描述:查看已经执行过的历史命令) history n (功能描述:显示最近使用过的10个指令) ! [n] (功能描述:执行历史命令中的第n行命令) 时间日期类: date指令:显示当前日期 基本语法: 1. date (功能描述:显示当前时间) 2. date+%Y (功能描述:显示当前年份) 3. date+%m (功能描述:显示当前月份) 4. date+%d (功能描述:显示当前是哪一天) 5. date+"+%Y-%m-%d%H:%M:%S"(功能描述:显示年月日时分秒) 6. date -s "2020-04-25 15:23:45" (功能描述:设置指定时间) cal: 显示2020年日历:cal 2020 搜索查找类: find指令:将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端 基本语法: find [搜索范围] [option] 选项: -name [fileName] : 按照文件名称查找 示例:[root@localhost ~]# find /home -name a.txt -user [username] : 按照文件拥有者查找 示例:find /home -user gedachao -size [n] :按文件大小查找,+n:文件大于n;-n:文件小于n;n:文件等于n 示例:find /home -size +20M :查找/home下大于20M的文件 locate指令 locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。为了保证查询结果的准确度,管理员必须定期更新locate时刻。 基本语法: locate [搜索文件] 说明: 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。 示例:定位文件a.txt的目录 [root@localhost ~]# updatedb [root@localhost ~]# locate a.txt grep指令和管道符号| grep过滤查找,管道符,"|",表示将前一个命令的处理结果输出传递给后面的命令处理。 基本语法: grep [option] 查找内容 源文件 选项: -n 显示匹配行及行号 -i 忽略字母大小写 应用实例: 在hello.txt文件中,查找"yes"所在行,并且显示行号。 [root@localhost aaa]# cat a.txt | grep -n aegaga 压缩和解压类: gzip/gunzip指令: gzip用于压缩文件,gunzip用于解压文件 基本语法: gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) 特别说明: 当使用这两个命令对文件进行压缩和解压后,原文件将不存在 zip/unzip指令 zip用于压缩文件,unzip用于解压,实际项目很实用 基本语法: zip [option] [xxx.zip] [将要压缩的内容] (功能描述:压缩文件和目录命令) zip常用选项: -r:递归压缩,即压缩目录 unzip常用选项: -d [目录]:指定解压后文件的存放目录 举个例子: 将目录aaa及其子目录和文件压缩为a.zip: [root@localhost gedachao]# zip -r a.zip ./aaa 将a.zip解压到bbb目录下: [root@localhost gedachao]# unzip -d ./ccc/ a.zip tar指令: tar指令,是打包指令,最后打包后的文件是.tar.gz文件 基本语法: tar [option] [xxx.tar.gz] [打包的内容] (功能描述:打包目录,压缩后的文件格式.tar.gz) 选项说明: -c 产生.tar打包文件 -v 显示详尽信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解压.tar文件 举例说明: 将目录aaa及其子目录和文件压缩为a.tar.gz [root@localhost gedachao]# tar -zcvf a.tar.gz ./aaa 将文件a.tar.gz解压到/home/gedachao/ccc下 [root@localhost gedachao]# tar -zxvf a.tar.gz -C /home/gedachao/ccc/ 前提:/home/gedachao/ccc目录需存在 组管理和权限管理: 修改文件所有者 指令:chown [用户名] [文件名] 修改文件所属的组: 指令:chgrp [组名] [文件名] 修改文件的所有者和所有组: 指令:chown newowner:newgroup file -R 如果是目录,则使其下所有子文件或目录递归生效 其他组: 除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组 -rw-r--r--. 1 gedachao gedachao 2 Apr 26 13:46 ok.txt 开头的符号"-"代表文件的类型: - 普通文件 d 目录 l 软链接 c 字符设备(键盘,鼠标等) b 块文件,硬盘 后面总共9个字符,每三个字符一组; 第一组: rw- :表示文件所有者的权限,r读;w写;-空 第二组: r-- : 表示文件所在组的权限,这个示例中组只有r读的权限 第三组: r-- : 表示文件其它组的用户的权限,这个示例中其它组只有r读的权限 数字1: 如果是文件,表示硬链接的数;如果是目录则表示该目录的子目录个数 数字2: 如果是普通文件,则表示大小;如果是目录,则是统一的数字4096 时间: 表示文件最后的修改时间 rwx权限详解: rwx作用到文件: 1. r代表可读,可以读取查看; 2. w代表可写,可以修改,但是不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限 3. x代表可执行(execute):可以被执行 rwx作用到目录: 1. r代表可读(read),可以读取,ls查看目录内容 2. w代表可写,可以修改,目录内创建+删除+重命名 3. x代表可执行,可以进入该目录 修改权限-chmod 通过chmod指令,可以修改文件或者目录的权限. 第一种方式:+,-,=变更权限 u:所有者,g:所在组,o:其他人,a:所有人(u,g,o的总和) 1. chmod u=rwx,g=rx,o=x [文件目录名] 2. chmod o+w [文件目录名] (功能描述:给其他组添加写权限) 3. chmod a-x [文件目录名] (功能描述:给所有人去除执行权限) 第二种方式:通过数字变更权限 规则:r=4,w=2,x=1 rwx=7 chmod u=wrx,g=rx,o=x [文件目录命]相当于chmod 751 文件夹只有拥有rx的权限才能进入文件夹。 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< crond任务调度 crontab进行定时任务的设置 概述: 任务调度:是指系统在某个时间执行的特定的命令或程序 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> linux网络环境配置: 指定固定的ip: 说明:直接修改配置文件来指定ip,并可以连接到外网,编辑/etc/sysconfig/network-script/ifcfg-etho 要求:将ip地址配置为静态的,ip地址为... 修改或添加以下: BOOTPROTO=static //以静态的方式获取ip ONBOOT=yes IPADDR=192.168.184.130 GATEWAY=192.168.184.2 DNS1=192.168.184.2 //域名解析器 设置完成后重启网络服务使其生效: service network restart 进程管理: 查看进程数pstree 基本语法: pstree [option] (功能描述:可以更加直观的来看进程信息) 常用选项: -p : 显示进程的pid -u : 显示进程的所属用户 du: 列出文件占用空间大小 -B 大小的单位,如 du -BG; du -BKB -d 文件夹的深度,默认所在目录为0;使用如:du -d 0; du -d 1; -h 易读的形式展示 -c 显示所有已列出文件总的大小 --time 列出最后展示时间 常用方法:M计量单位,按大小倒序排序: du -BM -s * | sort -nr ls: -i 查看文件编号,可以通过对比文件编号判断两个文件是否是同一个文件 -R 显示目录及其子目录 文件链接: 文件链接分为符号链接和硬链接;例如当前文件夹下有文件 hello.txt; - 创建符号链接: ln -s hello.txt sl_hello - 创建硬链接:ln hello.txt sl_hello 复制文件: -R: 递归复制;cp -R d1/ d2/;将d1文件夹下所有文件复制到d2下,d2文件夹事先可以不存在; 创建目录:mkdir -p: 递归创建目录 文件夹树形展示:tree命令,可能需要安装:yum install tree; - 使用:tree /devinstall -L: 列出文件的深度,例如 tree -L 2 /devinstall 查看文件:cat -n 添加行号 查看文件:tail & head -n: 查看前几行或后几行,如 head -n 5 hello.txt 进程查看:ps -e:输出所有进程 -f: 格式化输出 ps -ef 输出信息展示: UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:29 ? 00:00:01 init [5] root 2 0 0 11:29 ? 00:00:00 [kthreadd] - UID: 启动这些进程的用户 - PID: 进程的进程id - PPID: 父进程的进程号(如果该进程是由另一个进程启动的) - C: 进程生命周期中的CPU利用率 - STIME: 进程启动时的系统时间 - TTY: 进程启动时的终端设备 - TIME: 运行进程需要的累计CPU时间 - CMD: 启动的程序名称 若想获取更多的信息,可采用-l参数,它会产生一个长格式的输出 ps -l: F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 500 3081 3080 0 80 0 - 1173 wait pts/0 00:00:00 bash 0 R 500 4463 3081 1 80 0 - 1116 - pts/0 00:00:00 ps - F: 内核分配给进程的系统标记。 - S: 进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,进程已结束但父进程已不存在;T代表停止)。 - PRI: 进程的优先级(越大的数字代表越低的优先级)。 - NI: 谦让度值用来参与决定优先级。 - ADDR: 进程的内存地址。 - SZ: 假如进程被换出,所需交换空间的大致大小。 - WCHAN: 进程休眠的内核函数的地址。 文件占用情况:df -h: 易读的形式显示,通常用M来替代兆字节 [root@VM-0-9-centos ~]# df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 1012336 0 1012336 0% /dev tmpfs 1023340 40 1023300 1% /dev/shm tmpfs 1023340 712 1022628 1% /run tmpfs 1023340 0 1023340 0% /sys/fs/cgroup /dev/vda1 51473868 18505244 30771380 38% / overlay 51473868 18505244 30771380 38% /var/lib/docker/overlay2/fa6939dde2d2b/merged shm 65536 0 65536 0% /var/lib/docker/containers/733eb938/shm tmpfs 204672 0 204672 0% /run/user/0 - Filesystem: 设备的设备文件位置 - 1K-blocks: 能容纳多少个1024字节大小的块 - Used: 已用了多少个1024字节大小的块; - Available: 还有多少个1024字节大小的块可用; - Use%: 已用空间所占的比例; - Mounted on: 设备挂载到了哪个挂载点上。 排序 sort: -n: 按字符串数值来排序(并不转换为浮点数) -g: 按通用数值来排序(跟-n不同,把值当浮点数来排序,支持科学计数法表示的值) -r: 反序排序(升序变成降序) -t: 指定一个用来区分键位置的字符 -k pos1,pos2: 排序从pos1位置开始;如果指定了pos2的话,到pos2位置结束 例如:根据/etc/passwd文件中用户id进行数值排序:sort -t ':' -k 3 -n /etc/passwd 文本搜索:grep grep [option] pattern file -v: 反向搜索, 如 grep -v t file1 -n: 显示匹配的行所在的行号 -c: 有多少行含有匹配的模式 -e: 多个匹配模式:如:grep -e t -e f file1 服务管理(service) 介绍:服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql,sshd防火墙等),因此又称为守护进程 service 管理指令: service [服务名] start | stop | restart | reload | status systemctl : centos7.0之后的版本,不再使用service指令,而是使用systemctl作为替代 使用案例: 1. 查看当前防火墙的状况,关闭防火墙和重启防火墙 service iptables status (功能描述:查看防火墙状态) service iptables stop (关闭防火墙) service iptables start (开启防火墙) 细节讨论: 1. 关闭或者启用防火墙后,立即生效。(windows端使用命令【telnet [ipaddress] [port]】测试某个端口即可) 2. 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置 3. 若希望设置某个服务自启动或者关闭永久生效,要使用chkconfig指令 查看服务名: 方式一:使用setup->系统服务 就可以看到 方式二:进入目录/etc/init.d/,使用ls -l查看该目录下即为服务 服务的运行级别(runlevel): 查看或者修改默认级别:vi /etc/inittab linux系统共有7种运行级别(runlevel),常用的是级别3和5: 0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动 1:单用户工作状态,root权限,用于系统维护,禁止远程登录 2:多用户无网络(无NFS),不支持网络 3:多用户有网络 4:系统未使用,保留 5:Xll控制台,登录后进入图形GUI模式 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动 开机的流程说明: 开机->BIOS->/boot->init进程1->运行级别->运行级别对应的服务 chkconfig指令: 介绍:通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭 基本语法: 1. 查看服务 chkconfig --list | grep xxx 2. chkconfig [服务名] --list 3. chkconfig --level 5 服务名 on/off *******相当重要******** 示例1:在级别5下关闭防火墙自启动 chkconfig --level 5 iptables off 示例2:在所有级别下开启防火墙自启动 chkconfig iptables on (说明:不写--level即可代表所有级别) 使用细节: chkconfig 重新设置服务后自启动或自关闭,需要重启机器才能生效。 监控网络状态: 查看系统网络情况netstat 基本语法: netstat [选项] 选项说明: -an 按一定顺序排列输出 -p 显示哪个进程在调用 应用案例: 请查看服务名为sshd的服务的信息 动态监控进程: 介绍: top与ps命令很相似,它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。 基本语法: top [option] 选项说明: -d [秒数] (功能说明:指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令) -i (功能说明:使top不显示任何闲置或者僵死进程) -p (通过指定监控进程ID来仅仅监控某个进程的状态) 应用实例: 1. 监视特定用户: top :输入此命令,按enter,输入u,<enter>,输入用户名,<enter> 2. 终止指定的进程: k:输入此命令回车,在输入进程号 rpm包的管理 介绍:是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有rpm扩展名的文件。 简单查询指令: 查询已安装的rpm列表 rpm -qa|grep xxx 举例: [root@bogon ~]# rpm -qa |grep firefox firefox-10.0.5-1.el6.centos.i686 10.0.5-1:火狐浏览器软件版本 el6表示系统版本6.xxx i686:表示系统操作位数,如果是i686或者i386表示32位系统;noarch表示通用 rpm -q [软件包名] (功能描述:查询软件包是否安装) 举例: rpm -q firefox (说明:这种方式的查询结果只显示软件包的版本) rpm -qi [软件包名] (功能描述:查询软件包信息;说明:这种方式查询的结果较为全面) rpm -ql [软件包名] (功能描述:查询软件包的安装路径) rpm -qf [文件全路径名] (功能描述:查询文件所属的软件包) 卸载rpm包: 基本语法: rpm -e [rpm包名称] rpm -e --nodeps [rpm包名称] (功能:强制删除此包,不论它是否被其它包依赖) 细节讨论: 如果其他软件包依赖于您想要卸载的软件包,卸载时则会产生错误信息。 安装rpm包: 基本语法: rpm -ivh [rpm包全路径名称] 参数说明: i=install 安装 v=verbose 提示 h=hash 进度条 应用示例:安装firefox 步骤:先找到firefox的安装rpm包,你需要挂载安装centos的iso 文件,然后到/media/下面找rpm yum 介绍:yum是一个shell前端软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并且进行安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。 yum的基本指令: 查询yum服务器是否有需要安装的软件 yum list | grep [软件列表] 安装指定的yum包 yum install xxx 默认会安装最新版本 案例:使用yum方式安装firefox jdk的安装: 1. 将jdk的.tar.gz文件放在/opt/文件夹下; 2. 使用命令[tar -zcvf jdk_1.8.tar.gz]解压到当前目录下 3. 配置环境变量:打开/etc/profile文件,在文件末尾添加: JAVA_HOME=/opt/jdk_1.8 PATH=/opt/jdk_1.8/bin:$PATH (说明:冒号加上$PATH表示将此段附加在原先的PATH的那行上) export JAVA_HOME PATH 4. 需要注销用户,环境变量才能生效;也可以通过source命令强制刷新生效:[source /etc/profile] tomcat安装: 1. 解压tomcat.tar.gz到/opt/目录下 2. 进入tomcat的bin目录,启动tomcat,即运行startup.sh 3. 开放端口8080,这样外网才能访问;使用vim编辑[vim /etc/sysconfig/iptables]在当中添加 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 即可 4. 重启防火墙,使8080端口开放生效 [service iptables restart]
标签:基本,文件,语法,命令,指令,linux,txt,root,目录 From: https://www.cnblogs.com/kongieg/p/16987137.html