zoukankan      html  css  js  c++  java
  • Linux下常见命令

    =============挂载和登陆命令========================================

    Mount:挂载命令。

    比方挂载光驱mount /dev/cdrom /mnt/cdrom。可在文件夹/mnt/cdrom下查看内容,想退出光盘时,须使用umount命令,否则光驱就会一直处于死锁状态:#umount /mnt/cdrom。相同能够挂载盘符,比方mount -t vfat /dev/uba1 /mnt,就能够切换到/mnt文件夹下查看uba下的内容。直接输入mount。会显示已经挂载的FS。按下面类型显示内容:文件系统名 挂载点 类型。比方:

              rootfs / rootfs ro,relatime 0 0
              tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
              devpts /dev/pts devpts rw,relatime,mode=600 0 0
              proc /proc proc rw,relatime 0 0
              sysfs /sys sysfs rw,relatime 0 0

    umount:卸载命令,比方umount  /dev/cdrom。或者是umount /mnt。


    exit:退出终端命令。

    shutdown:关闭linux系统,后面可加參数,比方shutdown -h now。

    reboot:又一次启动linux。

    chsh:改变登入系统的shell。

    tty:显示终端机连接标准输入设备的文件名。
    =============文件处理命令========================================

    mkdir:创建文件夹。mkdir -p xxx  能够创建多层文件夹,就算文件夹路径不存在也能够,能够方便的用在某些场合。

    ls:显示当前文件夹内容。

    加參数路径能够显示指定文件夹内容。加-l显示文件夹下文件的具体信息诸如权限。最经常使用的ls -la说明例如以下:

    drwxr-xr-x  3 wangpeng wangpeng 4096 2011-09-20 19:58 dummy

    d代表文件夹,rwxrwxrwx代表9个权限设定(前三个拥有者的权限,中间三个表示文件所属组拥有的权限。最后三个表示其它用户拥有的权限);3代表文件个数;wangpeng wangpeng 代表用户 组;4096代表大小。接着是是文件建立时间;最后是文件名称。

            显示当前目录下文件数量,用ls -lR|grep "-"|wc -l。

            递归显示当前目下及子文件夹下下相关文件信息和路径,用ls -R。

    du:显示特定文件大小。有的文件夹是非常大的,能够用du -sk  文件夹名  ,以K为单位显示具体的占空间大小。

    du -sh意义差点儿相同,可是以整数G大单位显示占大小,更直观。也能够du -sb xxx,以字节为单位。

    rm:删除文件夹或者文件。加參数-rf强制递归删除一个非空文件夹。比方说递归删除当前文件下的目标文件。用:find . -name "*.o" | xargs rm -rf     。递归删除当前文件夹下的.svn文件夹,用find ./ -type d -name .svn | xargs rm -rf 。

    删除文件时排除某个文件夹或文件,rm -rf !(kernel.img),括号里是文件名称或者文件夹名,是文件夹名也不须要加/。假设碰到rm命令删除文件时提示input output error,用sudo权限也删不掉。能够进桌面用鼠标删除。假设出现OS变成read only system,提示这个,重新启动后恢复,或者进ubuntu删掉问题文件。

    cd:进入某个文件夹。加參数表示路径。/表示linux根文件夹。cd ~返回home下的用户文件夹;cd ..返回上层文件夹;cd - 表示返回切换文件夹之前的文件夹。

    cp:拷贝命令。

    cp 1.txt usr/local/arm拷贝1.txt文件到目标文件夹。cp -r dir1 dir2用来复制文件夹。把文件夹dir1复制到dir2文件夹下(dir1一起拷贝);假设不想将dir1一起拷贝仅仅拷贝dir1的内容。用cp -r dir1/* dir2。

              -a :相当于 -pdr 的意思;-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身。-p :连同档案的属性一起复制过去。而非使用预设属性;cp -rT >/dev/null $cust_dir/vendor/ vendor/mediatek/product/   2>&1,dev/null 是 一个空设备。什么内容也没有的。一般 用作清空数据;2>&1,0或1 一般 约定是 返回成功,2是失败,就是说无论是错误还是成功 一律流到 null 设备。

    scp:远程拷贝命令,用于两台server之间转移数据。scp -r temp/ sw01@192.168.40.106:/home/sw01/,把temp文件夹复制到还有一台电脑的相应文件夹,复制文件就不用加-r,使用方法跟cp类似。。

    cat:查看一个文件的内容。后面直接接文件名称。还能够cat /proc/version 查看LINUX内核版本号。cat /proc/meminfo 查看内存信息;cat /proc/asound/cards查看声卡信息;cat /proc/kmsg通过adb shell打印内核信息。cat /proc/interrupts查看中断分配信息。还有个功能就是重定向,比方cat >文件名称,就是将cat的输出重定向到>后面的文件里。并会覆盖文件

    more:类似cat 。只是会以一页一页的显示方便使用者逐页阅读,而最主要的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示。

    less:less命令的使用方法与more命令类似,也能够用来浏览超过一页的文件。所不同的是less命令除了能够按空格键向下显示文件外。还能够利用上下键来卷动文件。当要结束浏览时,仅仅要在less命令的提示符“: ”下按Q键就可以。


    Mkdir:创建文件夹命令。如mkdir dirname。当前文件夹下创建由dirname命名的文件夹,或者创建已有文件夹路径下的下一级文件夹。不能一次创建多层文件夹。

    diff:功能为逐行比較两个文本文件。列出其不同之处以如何达到一致。比方:diff  file1 file2,得到n1,n2 c n3,n4。当中n1n2是指第一个文件若干行。n3n4是指第二个文件若干行。中间的字母a指加入,d指删除,c指改动。

    mv:移动或者重命名文件或文件夹。

    mv name1 ppp。重命名name1为ppp;mv name1 /usr/ 将文件移动至目标文件夹下。

    rename:批量重命名。rename 's/tt hh/uu/' tt*,把tt开头的文件tt hh字符改成uu字符。

    strings:打印文件里可打印的字符。

    strings libril-rk29-dataonly.so | grep dataonly,确认so中的版本内容。libril-rk29-dataonly.so

    apt-get:用于自己主动查找安装软件,更新软件。一般须要root权限。

    所以格式是sudo apt-get install(安装)。sudo apt-get remove(卸载),sudo apt-get upgrade(升级)。假设出如今编译使用时缺少XX文件,须要又一次下载linux内核。使用apt-get install linux-source 。

    add-apt-repository:脚本加入 ppa 到当前的库中。再update,就能够安装想要的软件。比方:sudo add-apt-repository ppa:ailurus,sudo apt-get update,sudo apt-get install ailurus

    find:查找文件。格式为:find . -name  "*.java" ,当中.表示当前文件夹。-name表示以名字查找,*即是通配符。

    能够用它完毕递归删除SVN文件夹的操作:find xxxx -name .svn | xargs rm -rf。

    find . -type f | xargs touch,查找当前文件夹全部文件并touch时间戳到最新。

    grep:查找命令,包括库文件或者压缩文件的内容也能够查找。

    比方:find ./out/ -name '*.jar' | xargs grep 'AFDataCallback'。意即查找包括该回调的Jar库。

    grep -rns “xxx” sss/ttt,查找特定文件夹的字串。

    head:查看文件的前几行,比方查看文件的前五行head -5 /etc/passwd。

    tail:查看文件的后几行,比方查看文件的后十行tail -10 /etc/passwd。

    arecord:加-l參数列出当前数字音频设备。加-L列出当前PCM设备。

    arecord -D 设备名 xxx.wav可录音。

    ldd:ldd不是一个可运行程序。而仅仅是一个shell脚本,ldd显示可运行模块的dependency的工作原理。事实上质是通过ld-linux.so(elf动态库的装载器)来实现的。

    比如:$ ldd a.out。则会显示linux-gate.so.1=>(0xb802b000)等模块依赖信息。

    ln:它的功能是为某一个文件在另外一个位置建立一个不同的链接,不必反复的占用磁盘空间。这个命令最经常使用的參数是-s,详细使用方法是:ln -s 源文件 新建目标文件。比如:ln -s /bin/less /usr/local/bin/less。这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说。不论你修改了哪一处,其他的文件都会发生同样的变化。第二,ln的链接又软链接和硬链接两种,软链接就是ln -s ** **。它仅仅会在你选定的位置上生成一个文件的镜像。不会占用磁盘空间,硬链接ln ** **,没有參数-s。它会在你选定的位置上生成一个和源文件大小同样的文件。

    strace:跟踪程式运行时的系统调用和所接收的信号。比方:strace ./a.out

    arm-linux-readelf:显示一个elf文件的相关信息。包含依赖库,编译机器等。格式为:arm-linux-readelf -option xxx。

    touch:更新文件的訪问时间和改动时间到当前系统时间。

    如:touch  /root ,改动root文件夹下的每一个文件的訪问时间和改动时间到当前。

    也能够创建文件所用。比方touch test.cpp,创建一个CPP文本。

    sed:查看某个打文件里的某些行。比方:sed -n '45,50p' kd_imgsensor_define.h ,就是查看某个文件里的45到50行。

    echo:终端打印命令或者输出。比方echo "hello world">readme.txt,创建一个带内容的文本文件。

    echo "git is cool">>readme.txt。在该文件末尾再加入一行内容。也用来显示当前登录是bash还是sh。比方echo  $SHELL。回显/bin/bash。

    md5sum:生成某个文件的MD5校验码。

    比方:md5sum -b update.zip >md5sum,用来比較文件传输前后有无丢失内容。

    zip命令:打包命令。不压缩。zip packages.zip update.zip md5sum,把后两个打包成packages.zip 。zip格式的解压缩用unzip命令。

    wc:统计指定文件里的行数、字数、字节数。比方运行结果是1  4 35 minicom.log。

    -l返回行数,比方cat /proc/cpuinfo | grep processor | wc -l 反馈当前CPU核数。

    ar:建立或改动备存文件。或是从备存文件里抽取文件。带參数-x:从库中提取一个成员。假设不指定要提取的模块。则提取库中全部的模块。比方ar -x sss.a,就可以释放出组成.a的若干个.o文件。

    =============系统管理命令========================================

    Pwd:显示完整的当前工作文件夹。

    Source:通经常使用于又一次执行刚改动的初始化文件,使之马上生效,而不必注销并又一次登录。比方改动玩环境变量配置后,执行source ~/.bashrc。

    ls dev:显示系统设备。

    top:显示资源状况。类似于XP的资源管理器。

    free:显示系统内存使用状况,包含真实内存和交换区swap。加-m表示以M字节为单位。鉴于如今内存较大,swap基本上非常少使用到了,能够不予分配。

    at:在某个约定的时间运行特定操作。

    adduser:在home文件夹下加入一个用户,多用

    userdel:删除某个用户,userdel xxx

    passwd:给用户文件夹加入password。使用方法:passwd zhangcheng 。

    groupadd:建立一个新群组。

    unzip:解压缩zip文件。

    gzip:将文件压缩成.gz文件。

    gunzip:解压缩.gz文件。

    last:列出过去与眼下登入系统的用户相关信息。

    lspci :用lspci -v查看硬件芯片组上,全部的PCI上的控制器信息。

    lsusb:显示系统USB总线上的设备信息。

    Bus 003 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port。

    当中意味着在/dev/bus/usb/003/006上有这个2303的USB转串口设备,同一时候也看到新的/dev/ttyUSB0,使用minicom能够实现WIN上串口调试助手一样的功能。

    lsusb -v能够显示USB的具体信息

    usb-devices:查看当前USB设备挂载的驱动信息。比方PL2303在ubuntu12.04中默认支持,这个驱动是哪里的?会回显诸如:P:  Vendor=067b ProdID=2303 Rev=03.00,

             S:  Manufacturer=Prolific Technology Inc.S:  Product=USB-Serial Controller

    depmod:分析可加载模块的相依性。比方:depmod -a,分析全部可用的模块。

    lsmod:显示系统已经载入的模块信息。

    格式是模块名,模块大小。用户。

    modinfo:显示详细某个模块信息。比方:modinfo 模块名,显示模块路径,GPL,配置等信息。

    modprobe:显示全部模块的详细.ko或者.o文件所在的路径。

    比方:modprobe -l。也可加载模块,比insmod更强大。

    uname:查看系统软硬件信息。用uname -r -m -p -i得到内核版本号和处理器架构等信息。

    insmod:载入模块。Linux有很多功能是通过模块的方式,在须要时才载入kernel。

    rmmod:卸载模块。

    rpm:它的功能类似于Windows里面的“加入/删除程序”。被广泛应用于在Linux下安装、删除软件。如:rpm -q  modutils,查询系统中有没有modutils软件包。

    df:硬盘空间使用状况,及挂载信息。

    比方:

        Filesystem             Size   Used   Free   Blksize
        /dev                   482M    52K   481M   4096
        /mnt/secure            482M     0K   482M   4096
        /system                640M   364M   276M   4096
        /data                 1008M   122M   885M   4096
       /cache                 124M     4M   119M   4096
       /storage/sdcard0         1G   846M   989M   16384
       /mnt/secure/asec         1G   846M   989M   16384
       /storage/sdcard1       120M     4M   116M   2048

    从上图看出,可知道外置SD(120M)和内部划分的SD的挂载点到底是什么。(非常多APK操作T卡默认路径是sdcard0,按上述就会造成误操作,所以要进行SD SWAP)

    mplayer:利用该工具包调试和使用声音。mplayer xxx.wav,会播放音频文件,显示当前音频所用设备。

    当然。也能够指定用OSS或者ALSA来播放,如:mplayer -ao alsa xxx.wav,用alsa音频组件来播放。

    fdisk:显示分区信息,比方fdisk -l。显示挂载点、分区信息、ID号、系统类型。假设是IDE硬盘,设备名依次为:/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd等;假设是SCSI硬盘,则设备名依次为/dev/sda,/dev/sdb。比方例如以下信息(部分):

              Device Boot         Start         End              Blocks        Id  System
             /dev/sda1   *        2048   201099263   100548608   83  Linux
            /dev/sda2       201101310   209713151     4305921    5  Extended
            /dev/sda5       201101312   209713151     4305920   82  Linux swap / Solaris

    fsck:检查文件系统的一致性而且以交互方式修复文件系统。

    parted:fdisk工具对分区是有限制大小的,它仅仅能划分小于2T的磁盘。

    可是如今的磁盘空间非常多都已经是远远大于2T了,能够通过我们今天谈到的Parted工具来实现对GPT磁盘(GPT没有四个主分区的限制)进行分区操作。

    dmesg:打印内核信息,有些打印语句是输出到内核而非终端。

    lsof:显示打开文件的全部进程等。

    比方lsof abc.txt 显示开启文件abc.txt的进程。

    tty:在Linux操作系统中。全部外围设备都有其名称与代号。这些名称代号以特殊文件的类型存放于/dev文件夹下。

    你能够运行tty指令查询眼下使用的终端机的文件名。

    比如:$tty,得/dev/pts/0。

    set:显示系统所有环境变量。

    比方:

          ANDROID_ASSETS=/system/app
          ANDROID_BOOTLOGO=1
          ANDROID_DATA=/data  。

    。。。。

          PATH=/sbin:/system/sbin:/system/bin:/system/xbin

    $PATH:显示系统的PATH值。各个值之间用:分隔开,且不能换行。

    PATH=~/bin:$PATH,把新的路径并入PATH中。

    该方法仅仅能暂时设定环境变量。Logout再login之后就没有效果了。

    file:显示文件的类型,用命令file 能够使你知道某个文件到底是ELF格式的可运行文件。还是shell script文件或是其它的什么格式。比如:file busybox,显示busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, stripped

    tree:是Linux下列出文件夹树的小工具。它会列出指定文件夹下的全部文件,包含子文件夹里的文件。运行:tree /sys/bus/i2c/能够把I2C的适配器及设备相关信息列出。

    pstree:显示当前系统的进程树。比較easy看出子进程和父进程的相应。

    ps:则是当前执行进程的快照信息。

    包含用户号。进程号,时间。命令等。手动杀死某个进程,用 kill -s 9 PID号

    uptime:显示系统执行时间信息。

    显示:17:12:47 up  1:38,  8 users,  load average: 0.94, 0.51, 0.47。

    分别表示分别表示该指令启动时刻、状态、系统已执行总时间、用户数、过去1、5、15分钟的负载平衡。

    sleep:使当前系统延迟操作一段时间。比方sleep 1延时一秒。參数为时间长度,后面可接s、m、h或d,当中s为秒,m为分钟。h 为小时,d 为日数。

    dpkg:软件包管理命令。

    dpkg -l查看系统中全部已安装的软件包信息。假设要查看某个软件的安装信息,用dpkg -l 文件名称,如dpkg -l libc6-dev。

    whereis:whereis指令会在特定文件夹中查找符合条件的文件。

    这些文件的属性应属于原始代码,二进制文件。或是帮助文件。如:whereis file-roller.

    alias:自定指令的别名,如alias[别名]=[指令名称]。

    若仅输入alias,则可列出眼下全部的别名设置。

    alias的效力仅及于该次登入的操作。

    who:显示当前server上的所有登录用户及其信息。

    w:显示当前server上的所有登录用户机操作信息。比who更具体。

    startx:从命令界面进入linux图形界面。

    su:用来在用户之间切换。比方su root。从其它账户切换到root账户。

    date:改动系统时间和日期。设置系统日期为2008年9月9日 date -s 20080909;设置系统时间为14:25:49 date -s 14:25:49。

    locate:文件定位命令,高速定位某个文件在linux系统中的位置。比方:locate module.h 。

     ============网络操作命令========================================

    service network restart:配置好网络服务后,重新启动。

    ip:就是整合了 ifconfig 与 route 这两个指令。

    ping:功能与XP一样。

    假设要其停下来。用ctrl+c。

    netstat:netstat命令的功能是显示网络连接、路由表和网络接口信息。能够让用户得知眼下都有哪些网络连接正在运作。

    执行:netstat -an|grep 20000,查看port号20000的状态,得到tcp        0      0 0.0.0.0:20000           0.0.0.0:*               LISTEN    。

    telnet:开启终端机阶段作业,并登入远端主机。

    rlogin:remote login,开启终端机阶段作业,并登入远端主机。

    ftp:登录ftpserver。

    route:显示当前系统路由表信息。

    finger:显示系统中某个用户的username、主文件夹、停滞时间、登录时间、登录shell等信息。

    mail:邮件信息。

    w3m:终端登入文字版浏览器。

    =============系统安全命令===================================

    passwd:改动password。

    su:作用是变更为其他使用者的身份,超级用户除外,须要键入该使用者的password。

    sudo:是同意系统管理员让普通用户运行一些或者所有的root命令的一个工具。如halt,reboot。su等等。这样不仅降低了root用户的登陆和管理时间,相同也提高了安全性。

    如:sudo echo 8 > /proc/sys/kernel/printk 想改动控制台的日志级别。

    chmod:改变文件权限。

    比方chmod  777 cc,设置cc权限为777。

    第一位是文件全部者权限,第二位是群组权限,第三位是其他人权限。

    每位的权限值是读权限(4)与写权限(2)与运行权限(1)之和。

    假设是递归改动文件夹及其子文件夹的属性,用chmod  -R  777 xxx。

            注意另一个s权限,文件属主和组设置SUID和GUID。一般仅仅有可运行文件才干搭配这个权限。能得到特权。随意存取该文件的所有者能使用的所有系统资源。

    设置s u i d:将对应的权限位之前的那一位设置为4。
    设置g u i d:将对应的权限位之前的那一位设置为2。
    两者都置位:将对应的权限位之前的那一位设置为4+2=6

    比方设置chmod 6755 a.out。那么a的权限就是-rwsr-sr-x(本来是rwxr-xr-x,加上6后响应的x位要变成s)

    chown:改变与文件关联的全部者和组。如chown jim:jim program.c,即program.c的用户訪问权限和组权限都应用到jim;chown -R john:build /tmp/src。将/tmp/src文件夹以下全部文件关联到用户john。组build。

    pkill:有时用w命令看到一些无效的用户登录显示在系统上没有注销,还占用pts资源。

    那么能够以ROOT身份去注销掉这些账户。

    首先用w 查看USER名,和TTY名。然后用                             pkill -kill -t pts/x   (x就是相应你kill用户号)。

    =============VI编辑器命令==================================

    vi编辑器操作:
        退出:按esc。按shift+:。q。当中,q!强制退出。wq保存后退出。
        编辑:按i进入编辑状态,从光标前開始编辑;按a也是进入编辑状态,只是从光标后開始编辑。


        查找:按esc退出编辑模式,运行“/单词”就能够查找要找的字符串,按N查找下一个。
        复制:按esc退出编辑模式,要复制当前行,按yy。要复制n行,跳转光标到起始行,输入yny。


        粘贴:复制后跳转光标到目标位置。按p。也能够直接在secureCRT中粘贴。

        删除字符:先按一下ESC键从编辑模式切转到命令行模式。按x键就可以实现删除光标前一个字符,按X键删除光标后一个字符。

        删除行:先按一下ESC键从编辑模式切转到命令行模式。按dd删除当前行。

        移动光标:按ESC键退出编辑状态,再使用方向键。

        文件起始:按esc退出编辑模式。按gg。或者:1

        文件末尾:按esc退出编辑模式,按shift+g。或者:$

        直接编辑行:假设在使用vi 命令时。在文件后面直接加上行号,光标就能够直接跳转到要编辑的位置。比方$ vi setlocalversion +148,就直接编辑文件的148行。

    =============压缩与解压缩命令==========================

    (1)tar:目录压缩与解压缩命令。

        .tar.gz
            解压:tar zxvf FileName.tar.gz

            压缩:tar zcvf FileName.tar.gz DirName  把DirName的内容压缩成以FileName命名的压缩文档。

        .tar.bz2
            解压:tar jxvf FileName.tar.bz2

            压缩:tar jcvf FileName.tar.bz2 DirName

        .tar  (仅打包不压缩)

            解压:tar xvf FileName.tar

            打包:tar cvf FileName.tar DirName

        .tgz

            解压:tar zxvf FileName.tgz

         .bz2

    解压:在文件系统中解压

    (2)gzip:文件的压缩与解压缩命令。压缩后缀是gz格式

             打包:gzip -9  xxxx

             解压:gzip -d xxxx.gz   (假设解压结果输出到屏幕,加-c)

    (3)假设打包时要剔除某个子文件夹。命令例如以下(注意最后边不要跟/符号)

            tar zcvf sybase-12.5-20111028.tar.gz sybase-12.5/ --exclude=sybase-12.5/data  (最后的/不能跟,不然剔除不起作用)。假设剔除多个文件夹。每一个文件夹都须要--exclude=列出。

    (4)假设出现多个分离的带编号的压缩包,比方:

    ALPS.xxx_INHOUSE.tar(20110410).gz00
    ALPS.xxx_INHOUSE.tar(20110410).gz01
    ALPS.xxx_INHOUSE.tar(20110410).gz02
    ALPS.xxx_INHOUSE.tar(20110410).gz03
    ALPS.xxx_INHOUSE.tar(20110410).gz04

    那么解压命令是:cat ALPS.xxx_INHOUSE.tar(20110410).gz*|tar -zxv

    (5)zip命令

    zip -r mydata.zip mydata #压缩mydata文件夹
    unzip mydata.zip -d mydatabak #解压到mydatabak文件夹
    unzip wwwroot.zip #解压到当前文件夹

    (6)压缩时报tar: Exiting with failure status due to previous errors

    一个原因是没有关闭打开的应用,比方SI。还有一个可能原因是个别文件的权限导致的,压缩时不加v。会提示导致失败的文件夹文件。

    ============================================文件切割与合并命令

    切割:split -b 1024m userall.tar.gz 。

    -b指定单个文件大小

    合并:cat xx* > userall.tar.gz

    对于诸如xxx.tar.bz2.001。xxx.tar.bz2.002的多个文件,还原的方法是copy /b "xxx.tar.bz2.001" + "xxx.tar.bz2.001" "xxx.tar.bz2",文件切割能够採用Ultra_File_Splitter。

  • 相关阅读:
    程序是怎样跑起来的 第三章
    C#4.5-4.7学习总结
    第二周学习总结
    程序是如何跑起来的 第二章
    第一章读后感
    师生关系读后感
    C#学习总结
    我与计算机
    读《程序怎样跑起来》第一章有感
    读师生关系有感
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7400935.html
Copyright © 2011-2022 走看看