admin 管理员组

文章数量: 887021

    java工程师linux命令,

    shell简介

    1.1 shell家族

    shell:命令解释器,根据输入的命令执行相应命令。

    察看当前系统下有哪些shell:

    cat /etc/shells
     
     
     
     
    • 1

    察看当前系统正在使用的shell

    echo $SHELL
     
     
     
     
    • 1

    常见shell:

    /bin/sh (已经被 /bin/bash 所取代)
    /bin/bash (就是 Linux 默认的 shell)
    /bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)
    /bin/tcsh (整合 C Shell ,提供更多的功能)
    /bin/csh (已经被 /bin/tcsh 所取代)
    /bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1.2 bash

    bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)
    bash 是 许 多 Linux 平 台 的 内 定 Shell, 事 实 上, 还 有 许 多 传 统 UNIX 上 用 的 Shell, 像 tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其 它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种Shell上使用。

    bash是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格 的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

    1.3 命令和路径补齐

    在bash下敲命令时,Tab键可以补全已经敲了一部分的文件名和目录名。如果是Ubuntu 系统,系统默认启用了bash completion,还可以补全命令的某些参数、Makefile目标等 等。如果是Debian系统,可以用以下命令启用bash completion:

    $ source /etc/bash_completion
     
     
     
     
    • 1

    建议将这一行加入∼/.bashrc启动脚本中。比如使用sudo后面接命令,如果没有bash completion则只有sudo可以补全,后面的命令不能补全。如果启用了bash completion,则 后面的命令,包括命令的某些参数(比如aptitude命令的install)都可以补全了。

    比如在主目录下要列出桌面目录的内容,输入(不回车)

    $ ls De
     
     
     
     
    • 1

    然后敲Tab键,如果以De开头的文件或文件夹只有Desktop一个,就自动补全为

    $ ls Desktop
     
     
     
     
    • 1

    否则,再敲一次Tab键,将会把所有以De开头的文件或文件夹列在下面供你选择(在这里 我们手动创建另外一个以De开头的文件)

    $ touch Death
    $ ls De
    Death   Desktop/
     
     
     
     
    • 1
    • 2
    • 3

    你可以再补敲一个s再Tab,这次Desktop就会补全到命令后面了。有 的 人 是 从 DOS 时 代 过 来 的, 留 下 一 个 很 不 好 的 习 惯 就 是 在 找 一 个 文 件 时 反 复 地cd、ls、cd、ls等找到了要找的文件时再想回到先前的目录,已经不记得先前是 从哪个目录转到这里来的了。

    我们从上面可以看出,Tab补全本身就具备了ls的功能,上面的Tab补全相当于ls -Fd De*命令。所以我们完全不必反复地cd到别的目录然后ls去找文件,多按几次Tab就可以一条 命令完成了,这样的好处是我们的当前目录不用变,不需要找完了文件再cd回来,同时省去 了大量的按键次数。更重要的是,自动补全同时兼具了检查拼写错误的功能,如果前面几个 字母拼写错了,就补全不出东西来,用户就知道拼写错了,如果前面几个字母没有拼写错, 那么由系统补全出来的文件名肯定也不会有拼写错误,避免了用户在敲很长的文件名时易犯 的拼写错误。

    1.4 历史记录
    history
     
     
     
     
    • 1

    历史记录是另外一个非常方便的功能。按上下移动光标键(或者Ctrl-p、Ctrl-n)可以 一条一条浏览以前输过的命令。如果有需要重复输入的命令就不用输第二次了。如果你能记 住以前输过的某条命令中的某个关键字,可以按Ctrl-r,然后输入关键字,随着你每输入一 个字母,bash会做增量式(increasingly)查找,也可以反复按Ctrl-r或Ctrl-s向前向后查 找。如果找到了,按左右移动光标键或Home键(Ctrl-a)或End键(Ctrl-e)将该命令带回提示 符下进一步修改,或者直接按Enter键原封不动地执行该命令。

    1.5 主键盘快捷键

    bash的快捷键和emacs保持一致,用惯其中之一再用另一个程序会很顺手的。请记住一条原则:尽量使用主键盘快捷键而不使用移动光标键和编辑键。因为手不必离开主键盘是效 率最高的,这样在你一生之中所节省的来回移动手的时间绝对可以用星期来计算,是绝对值 得你花十分钟的时间记住这些快捷键的。

    功能快捷键助记
    Ctrl-pprevious
    Ctrl-nnext
    Ctrl-bbackward
    Ctrl-fforward
    DelCtrl-ddelete光标后面的
    HomeCtrl-athe first letter
    EndCtrl-eend
    BackspaceBackspacedelete光标前面的

    目录和文件

    2.1 类Unix系统目录结构

    ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面

    /   根目录
    bin //系统可执行程序,如命令
    boot        //内核和启动程序,所有和启动相关的文件都保存在这里 grub //引导器相关文件
    dev //设备文件
    etc //系统软件的启动和配置文件,系统在启动过程中需要读取的文件都在这个目录。如LILO参数、用 户账户和密码。
    home    //用户的主目录。下面是自己定义的用户名的文件夹
    lib //系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32 目录,几乎所有的应用程序都需要用到这些共享库。
    media //挂载媒体设备,如光驱、U盘等
    mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media 目录。
    opt //可选的应用软件包(很少使用)
    proc    //这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说,这个目录 的内容不在硬盘上而是在内存里。
    sbin    //管理员系统程序 selinux
    srv
    sys //udev用到的设备目录树,/sys反映你机器当前所接的设备 tmp //临时文件夹
    usr //这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。] bin    // 应用程序
    game //游戏程序 include
    lib //应用程序的库文件 lib64
    local   //包含用户程序等 sbin  //管理员应用程序
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    2.2 用户目录

    位于/home/user,称之为用户工作目录或家目录,表示方式:

    /home/user
    ~
     
     
     
     
    • 1
    • 2
    2.2.1 相对路径和绝对路径

    绝对路径

    从/目录开始描述的路径为绝对路径,如:

    cd /home ls /usr
     
     
     
     
    • 1

    相对路径

    从当前位置开始描述的路径为相对路径,如:

    cd ../../ ls abc/def
     
     
     
     
    • 1

    .和..

    每个目录下都有.和..
    . 表示当前目录
    .. 表示上一级目录,即父目录 根目录下的.和..都表示当前目录

    2.3 ls
    ls [OPTION][FILE]
     
     
     
     
    • 1

    ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令,因 为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。 对于每个目录, 该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其 他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当 前目录的信息。

    主要的OPTION有:

    -a 列出隐藏文件,文件中以“.”开头的均为隐藏文件,如:~/.bashrc
    -l 列出文件的详细信息
    -R 连同子目录中的内容一起列出
     
     
     
     
    • 1
    • 2
    • 3

    ls -l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文 件类型,它可以是下述类型之一:

    - 普通文件 d 目录
    l 符号链接
    b 块设备文件
    c 字符设备文件
    s socket文件,网络套接字 p 管道
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5

    后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权 限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示 对文件的读、写和执行权限。各权限如下所示:

    r 读
    w 写
    x 可执行。对于目录,表示进入权限。
    s 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。
    t 设置标志位(sticky bit)。如果是有sticky bit的目录,在该目录下任何用户只要有适当的权限即可创建文 件,但文件只能被超级用户、目录拥有者或文件属主删除。如果是有sticky bit的可执行文件,在该文件执行后, 指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。
    - 没有相应位置的权限。
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    访问权限后面的数字表示与该文件共享inode的文件总数,即硬链接数(参见下面ln命 令)。

    2.4 cd

    change dir 改变当前所在路径

    cd ~
    cd dir1/dir2 cd ..
     
     
     
     
    • 1
    • 2
    2.5 which

    查看指定命令所在路径

    which ls
     
     
     
     
    • 1
    2.6 pwd

    查看当前所在路径

    pwd
     
     
     
     
    • 1
    2.7 mkdir
    mkdir [OPTION] DIRECTORY
     
     
     
     
    • 1

    创建目录DIRECTORY,可以一次创建多个。OPTION如果是-p,表示可以连同父目录一起 创建。

    2.8 rmdir
    rmdir [OPTION]DIRECTORY
     
     
     
     
    • 1

    删除空目录,可以一次删除多个。OPTION如果是-p,表示可以连同空的父目录一起删 除。mkdir和rmdir的用法举例:

    $ mkdir a
    $ mkdir a/b
    $ ls a b
    $ rmdir a/b
    $ ls a
    $ rmdir a
    $ mkdir a/b
    mkdir: cannot create directory `a/b': No such file or directory
    $ mkdir -p a/b
    $ rmdir -p a/b
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    2.9 touch
    touch [OPTION]FILE
     
     
     
     
    • 1
    • 将每个文件的访问及修改时间都更新为目前的时间。
    • 如果文件不存在,则创建一个字节数为0的文件。
    2.10 rm

    删除文件:

    rm file
     
     
     
     
    • 1

    删除目录:

    rm dir -rf
     
     
     
     
    • 1
    2.11 mv

    重命名:

    mv file1 file2
     
     
     
     
    • 1

    移动文件:

    mv file1 ~/
     
     
     
     
    • 1
    2.12 cp

    拷贝文件:

    cp file1 file2 cp file1 dir/ cp file1 ../
     
     
     
     
    • 1

    拷贝目录:

    cp dir1 dir2 -r cp dir1 ~/ -r
     
     
     
     
    • 1
    2.13 cat

    查看文件里内容,输出到终端,如果cat时没跟文件名,则读标准输入,遇到\n后,输 出到标准输出,终端下输入Ctrl-d表示结束

    2.14 more
    more [OPTION] FILE
     
     
     
     
    • 1

    查看文本文件的内容,屏幕显示完一屏就等待用户按下任意键再滚动到下一屏,如果中 途不想继续看下去了,可以按Ctrl+C或q终止显示。

    2.15 less
    less [OPTION] FILE…
     
     
     
     
    • 1

    查看文本文件的内容,屏幕显示完一屏就等待用户按键,用户可以向上或向下查看,如 果中途不想继续看下去了,可以按Ctrl+C或q终止显示。

    2.16 head

    head [OPTION]… FILE… 显示指定文件的前面几行。如果没有指定文件,将从标准输入(键盘)上读取。如果没
    有指定要显示的行数,则默认显示前10行。如果要显示文件的前5行:

    $ head -5 file1
     
     
     
     
    • 1
    2.17 tail

    tail [OPTION]… FILE… 显示文件的最后几行。若没有指定显示的行或字符数,则默认显示末尾10行。如果要显
    示文件末5行:

    $ tail -5 file1
     
     
     
     
    • 1
    2.18 ln

    链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立 指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。如果 给ln命令加上-s选项,则建立符号链接。举例如下,注意ls -l列出文件的硬链接数和字节 数:

    硬链接:

    touch hello
    ln hello word_h
     
     
     
     
    • 1
    • 2

    软链接:

    ln -s hello word_s
     
     
     
     
    • 1
    2.19 tree

    这个命令需要下载安装,ubuntu下

    sudo apt-get install tree
     
     
     
     
    • 1

    按结构树的形状显示目录和文件

    2.20 wc

    利用 wc 指令我们可以计算文件的 Byte 数、字数、或是列数,若不指定文件名称、或 是所给予的文件名为“-”,则 wc 指令会从标准输入设备读取数据。

    wc -l ./*
     
     
     
     
    • 1

    -c 或–bytes 或–chars 只显示 Bytes 数。
    -l 或–lines 只显示列数。
    -w 或–words 只显示字数。

    2.21 od
    od -tcx file1
     
     
     
     
    • 1

    -t 指定数据的显示格式,主要的参数有:
    c ASCII字符或反斜杠序列
    d[SIZE] 有符号十进制数,每个整数SIZE字节。 f[SIZE] 浮点数,每个整数SIZE字节。
    o[SIZE] 八进制(系统默认值为02),每个整数SIZE字节。 u[SIZE] 无符号十进制数,每个整数SIZE字节。
    x[SIZE] 十六进制数,每个整数SIZE字节。

    2.22 du

    查看某个目录的大小: 以M为单位

    du -hm /home/sihai/test
     
     
     
     
    • 1

    以B为单位

    du -hb ./*
     
     
     
     
    • 1

    以K为单位,4k的整数倍

    du -hk ./*
     
     
     
     
    • 1
    2.23 df

    df查看磁盘使用情况

    df --block-size=GB df --block-size=MB
     
     
     
     
    • 1

    文件属性和用户用户组

    3.1 whoami

    查看当前登陆用户

    3.2 chmod
    • 文字设定法

    chmod [who] [+|-|=] [mode] 文件名

    操作对象who可是下述字母中的任一个或者它们的组合:

    u 表示“用户(user)”,即文件或目录的所有者。
    g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。 o 表示“其他(others)用户”。
    a 表示“所有(all)用户”。它是系统默认值。

    操作符号可以是:

    • +添加某个权限。
    • -取消某个权限。
    • = 赋予给定权限并取消其他所有权限(如果有的话)。

    设置mode所表示的权限可用下述字母的任意组合:

    r 可读。 w 可写。
    x 可执行。

    • 数字设定法

    chmod [mode] 文件名 我们必须首先了解用数字表示的属性的含义:

    0表示没有权限,
    1表示可执行权限,
    2表示可写权限,
    4表示可读权限,

    然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是
    (u)(g)(o)

    例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)= 6(读/写)。

    比如设置一个文件允许所有用户可写

    $ chmod a+w file1
     
     
     
     
    • 1

    设置一个文件允许所有用户可读、可写、不可执行

    $ chmod 666 file1
     
     
     
     
    • 1
    3.3 chown

    chown [OPTION]… [OWNER:GROUP] FILE…

    chown [OPTION]… –reference=RFILE FILE… 更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户A, 为了让用户A能够存取这个文件,root用户应该把这个文件的属主设为A, 否则,用户A无法存取这个文件。

    OPTION的主要参数:

    • -R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
    • -v 显示chown命令所做的工作。 比如把一个文件改为sihai用户和nogroup用户组所有
    $ sudo chown sihai:nogroup file1
     
     
     
     
    • 1

    注意:

    • chown需要特权用户才能执行
    • 一个文件的owner和owning group是没有关联的。一个文件属于用户A,也属于用户组 B,并不表示用户A属于用户组B。
    3.4 chgrp

    chgrp [OPTION]… GROUP FILE…

    chgrp [OPTION]… –reference=RFILE FILE… 该命令改变(指定)指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。

    文件名是以空格分开的要改变属组的文件列表,支持通配 符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。

    OPTION的主要参数:

    • -R 递归式地改变指定目录及其下的所有子目录和文件的属组。

    查找与检索

    4.1 find

    根据文件名查找

    find [OPTION] path… [expression] 在目录中搜索文件,path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。Expression 是 find命令接受的表达式,find命令的所有操作都是针对表达式的。

    一条最常用的find命令--在当前目录及子目录下查找所有以file开头的文件名。

    $ find . -name 'file*'
    
    
    $ find / -name 'vimrc'
    
    
    $ find ~ -name '*.c'
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    4.2 grep

    根据内容检索

    grep [options] PATTERN [FILE...]
     
     
     
     
    • 1

    在指定文件中搜索特定的内容,并将含有这些内容的行输出到标准输出。若不指定文件 名,则从标准输入读取。
    [options]部分包含的主要参数:

    • -c:只输出匹配行的计数。

    • -I:不区分大小写(只适用于单字符)。

    • -h:查询多文件时不显示文件名。

    • -l:查询多文件时只输出包含匹配字符的文件名。

    • -n:显示匹配行及行号。

    • -s:不显示不存在或无匹配文本的错误信息。

    • -v:显示不包含匹配文本的所有行。

    • -R: 连同子目录中所有文件一起查找。

    比如到系统头文件目录下查找所有包含printf的文件

    $ grep 'printf' /usr/include -R
     
     
     
     
    • 1

    安装卸载软件

    5.1 apt-get

    更新源服务器列表

    sudo vi /etc/apt/sources.list
     
     
     
     
    • 1

    更新完服务器列表后需要更新下源

    sudo apt-get update 更新源
    sudo apt-get install package 安装包
    sudo apt-get remove package 删除包
    sudo apt-cache search package 搜索软件包
    sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等 sudo apt-get install package –reinstall 重新安装包
    sudo apt-get -f install 修复安装
    sudo apt-get remove package –purge 删除包,包括配置文件等 sudo apt-get build-dep package 安装相关的编译环境
    sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统
    sudo apt-cache depends package 了解使用该包依赖那些包 sudo apt-cache rdepends package 查看该包被哪些包依赖 sudo apt-get source package 下载该包的源代码
    sudo apt-get clean && sudo apt-get autoclean 清理无用的包 sudo apt-get check 检查是否有损坏的依赖

    5.2 deb包安装

    安装deb软件包命令: sudo dpkg -i xxx.deb
    删除软件包命令: sudo dpkg -r xxx.deb
    连同配置文件一起删除命令: sudo dpkg -r –purge xxx.deb
    查看软件包信息命令: sudo dpkg -info xxx.deb
    查看文件拷贝详情命令: sudo dpkg -L xxx.deb
    查看系统中已安装软件包信息命令: sudo dpkg -l
    重新配置软件包命令: sudo dpkg-reconfigure xxx

    5.3 原码安装
    • 解压缩源代码包
    • cd dir
    • ./configure 检测文件是否缺失,创建Makefile,检测编译环境
    • make 编译源码,生成库和可执行程序
    • sudo make install 把库和可执行程序,安装到系统路径下

    磁盘管理

    6.1 mount

    命令格式:

    mount [-t vfstype] -o options device dir

    其中:

    • -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常 用类型有:

    光盘或光盘镜像:iso9660

    DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntfs

    Mount Windows文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs

    • -o options 主要用来描述设备或档案的挂接方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统
      ro:采用只读方式挂接设备
      rw:采用读写方式挂接设备 iocharset:指定访问文件系统所用字符集

    • device 要挂接(mount)的设备。

    • dir设备在系统上的挂接点(mount point)。
    6.1.1 挂接光盘镜像文件

    由 于 近 年 来 磁 盘 技 术 的 巨 大 进 步, 新 的 电 脑 系 统 都 配 备 了 大 容 量 的 磁 盘 系 统, 在 Windows下许多人都习惯把软件和资料做成光盘镜像文件通过虚拟 光驱来使用。这样做有 许多好处:一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘镜像文件不成问 题,随用随调十分方便;三、硬盘的读取速度要远 远高于光盘的读取速度,CPU占用率大大 降低。其实linux系统下制作和使用光盘镜像比Windows系统更方便,不必借用任何第三方软 件包。

    1.从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。

    cp /dev/cdrom /home/sunky/mydisk.iso
     
     
     
     
    • 1

    dd if=/dev/cdrom of=/home/sunky/mydisk.iso
     
     
     
     
    • 1

    注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/ sunky/mydisk.iso

    2.文件和目录制作成光盘镜像文件,执行下面的命令。

    mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
     
     
     
     
    • 1

    注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/ home/sunky/mydisk.iso,光盘卷标为:mydisk

    3.光盘镜像文件的挂接(mount)

    mkdir /mnt/vcdrom
     
     
     
     
    • 1

    注:建立一个目录用来作挂接点(mount point)

    mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
     
     
     
     
    • 1

    注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。

    6.1.2 挂载U盘

    1.检测存储设备名称

    sudo fdisk -l
     
     
     
     
    • 1

    2.挂载存储设备sdb1到挂载点/mnt目录

    sudo mount /dev/sdb1 /mnt
     
     
     
     
    • 1

    3.访问/mnt

    4.卸载/mnt

    sudo umount /mnt
     
     
     
     
    • 1
    6.2 umount

    卸载命令

    sudo umount 挂在点
     
     
     
     
    • 1
    6.3 dd

    dd:拷贝

    例1:拷贝光碟(注意,你的光碟是标准的 iso9660格式才可以这么做)

    dd if=/dev/cdrom of=cdrom.iso
     
     
     
     
    • 1

    例2:将文件sfile拷贝到文件 dfile中。

    $ dd if=sfile of=dfile
     
     
     
     
    • 1

    例3:创建一个100M的空文件

    dd if=/dev/zero of=hello.txt bs=100M count=1
     
     
     
     
    • 1

    /dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!

    /dev/zero,是一个输入设备,你可你用它来初始化文件,从里面读出来的数据都是0。

    压缩包管理

    7.1 tar

    tar [主选项+辅选项] 文件或者目录 tar可以为文件和目录创建档案。

    利用tar命令用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。使用该命令时,主选项是 必须要有的,辅选项是辅助使用的,可以选用。

    主选项包括:

    • c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
    • r 把要存档的文件追加到档案文件的未尾。
    • t 列出档案文件的内容,查看已经备份了哪些文件。
    • u 更新文件。用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最 后。
    • x 从档案文件中释放文件。(常用)

    辅选项包括:

    • f 使用档案文件或设备,这个选项通常是必选的。(常用) k 保存已经存在的文件。
    • m 在还原文件时,把所有文件的修改时间设定为现在。 M 创建多卷的档案文件,以便在几个磁盘中存放。
    • v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。(常用) w 每一步都要求确认。
    • z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压 缩。(常用)

    • j 用bzip2来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压 缩。(常用)

    要将文件备份到一个特定的设备,只需把设备名作为备份文件名。 打包:

    tar cvf dir.tar dir tar xvf dir.tar dir
     
     
     
     
    • 1

    打gz压缩包:

    tar zcvf dir.tar.gz dir tar zxvf dir.tar.gz
     
     
     
     
    • 1

    打bz2压缩包:

    tar jcvf dir.tar.bz2 dir tar jxvf dir.tar.bz2
     
     
     
     
    • 1

    指定目录解压缩:

    tar zxvf dir.tar.gz -C ~/test
     
     
     
     
    • 1
    7.2 rar

    打包:把dir压缩成newdir.rar

    rar a -r newdir dir
     
     
     
     
    • 1

    解包:把newdir.rar解压缩到当前目录

    unrar x newdir.rar
     
     
     
     
    • 1
    7.3zip

    打包:

    zip -r dir.zip dir
     
     
     
     
    • 1

    解包:

    unzip dir.zip
     
     
     
     
    • 1

    进程管理

    8.1 who

    查看当前在线上的用户情况。所有的选项都是可选的,不使用任何选项时,who命令将 显示以下三项内容:

    login name:登录用户名; terminal line:使用终端设备; login time:登录到系统的时间。

    sihai@ubuntu:~/demo$ who -uH
    名称  线路  时间  空闲  进程号 备注 sihai tty2   2014-08-14 13:31        .   6798
    sihai tty7  2014-08-14 01:312423
    sihai pts/1 2014-08-14 01:31 12:00  2843 (:0)
    sihai pts/3 2014-08-14 10:39    .   2843 (:0)
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    8.2 ps

    ps [选项]

    ps命令用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输 出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。选项部分如下:

    • -e 显示所有进程。

    • -f 全格式。

    • -h 不显示标题。

    • -l 长格式。

    • -w 宽输出。

    • a 显示终端上的所有进程,包括其他用户的进程。 r 只显示正在运行的进程。

    • x 显示没有控制终端的进程。

    这个命令参数有很多,但一般的用户只需掌握一些最常用的命令参数就可以了。

    最常用的三个参数是u、a、x, 我们首先以root身份登录系统,查看当前进程状况

    sihai@ubuntu:~$ ps aux
    USER    PID %CPU %MEM   VSZ RSS TTY STAT START  TIME COMMAND
    root    1 0.0 0.0   3672    2008 ?  Ss  08:46   0:01 /sbin/init
    
    sihai@ubuntu:~$ ps ajx
    PPID    PID PGID    SID TTY TPGID STAT  UID TIME COMMAND 4592 6948 6948 4592 pts/3      6948 R+ 1000    0:00 ps ajx
    
    
    sihai@ubuntu:~$ ps -Lf 2423
    UID PID PPID    LWP C NLWP STIME TTY    STAT    TIME CMD
    1000    2423 2282 2423 0    4 08:46 ?   Ssl 0:00 gnome-session --session=ubuntu
    1000    2423 2282 2465 0    4 08:46 ?   Ssl 0:00 gnome-session --session=ubuntu
    1000    2423 2282 2466 0    4 08:46 ?   Ssl 0:00 gnome-session --session=ubuntu
    1000    2423 2282 2468 0    4 08:46 ?   Ssl 0:00 gnome-session --session=ubuntu
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    Head标头:

    USER 用户名
    UID 用户ID(User ID)
    PID 进程ID(Process ID)
    PPID 父进程的进程ID(Parent Process id) SID 会话ID(Session id)
    %CPU 进程的cpu占用率
    %MEM 进程的内存占用率
    VSZ 进程所使用的虚存的大小(Virtual Size)
    RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。 TTY 与进程关联的终端(tty)
    STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
    R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
    S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号。 I 空闲 Idle
    Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调 用后释放。
    D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行, 进程必须等待直到有中 断发生。
    T 停止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。 P 等待交换页
    W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。 X 死掉的进程
    < 高优先级进程 高优先序的进程
    N 低优先 级进程 低优先序的进程
    L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内 s 进程的领导者(在它之下有子进程);
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
    + 位于后台的进程组
    START 进程启动时间和日期 TIME 进程使用的总cpu时间
    COMMAND 正在执行的命令行命令 NI 优先级(Nice)
    PRI 进程优先级编号(Priority)
    WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。 FLAGS 与进程相关的数字标识

    8.4 fg

    fg [job…]

    把指定的后台作业或挂起作业移到前台运行。 参数job是一个或多个进程的PID,或者 是命令名称,或者是作业号(作业号前面要带一个%号)。

    通常在shell中输入命令启动进程后,如果该进程需要与用户交互,那么此后用户的键 盘输入都被该进程读取,直到该进程退出后才出现shell提示符$,这种进程为前台进程。

    如果在命令行的末尾加上&字符,则shell为这个命令创建一个后台进程,它虽然也可以 输出到屏幕,但是不能读取键盘输入,不管执行命令的进程有没有退出都立刻回到shell提 示符接受下一条命令的输入。如果该进程也需要读取键盘输入,则被挂起等待直到用户用fg 命令把它变成前台进程。如果一个命令需要较长的处理时间并且不需要与用户交互,就适合 把它放在后台执行。

    8.5 bg

    bg [job…]

    把被挂起的进程提到后台执行。 其中,job是一个或多个进程的PID、命令名称或者作 业号,在参数前要带%号。

    8.6 kill

    向指定进程发送信号

    kill [ -signal | -s signal ] pid …

    查看信号编号

    kill -l [ signal ]
     
     
     
     
    • 1

    给一个进程发信号,或终止一个进程的运行。

    kill命令如果不带参数而直接跟pid,就是发给该进程SIGTERM信号,大部分进程收到该 信号就会终止。但是被挂起的进程不能处理信号,所以必须发SIGKILL信号,由系统强制终 止进程。

    8.7env

    查看当前进程环境变量

    $env
     
     
     
     
    • 1
    • vim ∼/.bashrc 配置当前用户环境变量
    • vim /etc/profile 配置系统环境变量,配置时需要有root权限

    用户管理

    9.1 创建用户
    sudo useradd -s /bin/bash -g sihai -d /home/sihai -m sihai sudo useradd -s /bin/sh -g group -G adm,root xwp
     
     
     
     
    • 1

    此命令新建了一个用户xwp,该用户的登录Shell是/bin/sh,他属于group用户组,同时 又属于adm和root用户组,其中group用户组是其主组。

    • -s 指定新用户登陆时shell类型

    • -g 指定所属组,该组必须已经存在

    • -G 指定附属组,该组必须已经存在

    • -d 用户家目录

    • -m 用户家目录不存在时,自动创建该目录

    9.2 设置用户组
    sudo groupadd sihai
     
     
     
     
    • 1
    9.3 设置密码
    sudo passwd sihai
     
     
     
     
    • 1
    9.4 切换用户

    su 用户名

    su sihai
     
     
     
     
    • 1
    9.5 root用户

    变成root用户

    sudo su
     
     
     
     
    • 1

    设置root密码

    passwd
     
     
     
     
    • 1
    9.6 删除用户

    userdel 选项 用户名

    常用的选项是-r,他的作用是把用户的主目录一起删除。 例如:

    sudo userdel -r sihai
     
     
     
     
    • 1

    此命令删除用户sihai在系统文件(主要是/etc/passwd,/etc/shadow,/etc/ group等)中的记录,同时删除用户的主目录。

    网络管理

    10.1 ifconfig

    1.查看网卡信息

     ifconfig 
     
     
     
     
    • 1

    2.关闭网卡

    sudo ifconfig eth0 down 
     
     
     
     
    • 1

    3.开启网卡eth0

    sudo ifconfig eth0 up 
     
     
     
     
    • 1

    4.给eth0配置临时IP

    sudo ifconfig eth0 IP
     
     
     
     
    • 1
    10.2ping

    ping [选项] 主机名/IP地址

    查看网络上的主机是否在工作。它向该主机发送ICMP ECHO_REQUEST包。有时我们想从网络上的某台主机上下载文件,可是又不知道那台主机是否开着,就需要使用ping命令查看。

    命令中各选项的含义如下:

    -c 数目 在发送指定数目的包后停止。
    -d 设定SO_DEBUG的选项。
    -f 大量且快速地送网络封包给一台机器,看它的回应。
    -I 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
    -l 次数 在指定次数内,以最快的方式送封包数据到指定机器(只有超级用户可以使用此选项)。
    -q 不显示任何传送封包的信息,只显示最后的结果。
    -r 不经由网关而直接送封包到一台机器,通常是查看本机的网络接口是否有问题。
    -s 字节数 指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

    10.3netstat

    netstat [选项]

    显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运 作。命令中各选项的含义如下:

    -a 显示所有socket,包括正在监听的。
    -c 每隔1秒就重新显示一遍,直到用户中断它。
    -i 显示所有网络接口的信息,格式同“ifconfig -e”。
    -n 以网络IP地址代替名称,显示出网络连接情形。
    -r 显示核心路由表,格式同“route -e”。
    -t 显示TCP协议的连接情况。
    -u 显示UDP协议的连接情况。
    -v 显示正在进行的工作。

    10.4nslookup

    nslookup name

    查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。 如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。

    不带参数使用nslookup命令时,出现提示符“>”,在后面输入要查询的IP地址或域名 并回车即可。如果要退出该命令,输入exit并回车即可。

    sihai@ubuntu:~$ nslookup
    > www.sihai
    Server: 127.0.0.1
    Address:    127.0.0.1#53
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    10.5 finger

    finger [-lmsp] user [user@host …] 查询用户的信息,通常会显示系统中某个用 户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用 户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网 络主机需要运行finger守护进程。

    命令中各选项的含义如下:

    -s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
    -l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以 及用户主目录下的.plan、.project和.forward文件的内容。
    -p 除了不显示.plan文件和.project文件以外,与-l选项相同。

    sihai@ubuntu:~$ finger sihai
    Login: sihai    Name: sihai
    Directory: /home/sihai  Shell: /bin/bash
    On since Mon Sep 8 08:55 (CST) on tty7  14 hours 48 minutes idle On since Mon Sep 8 21:57 (CST) on pts/1 from :0
    11 minutes 18 seconds idle
    On since Mon Sep 8 23:12 (CST) on pts/2 from :0 6 seconds idle
    No mail. No Plan.
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    常用服务器构建

    11.1 ftp
    11.1.1ftp服务器

    1.安装vsftpd服务器

    sudo apt-get install vsftpd
     
     
     
     
    • 1

    2.配置vsftpd.conf文件

    sudo vi /etc/vsftpd.conf
     
     
     
     
    • 1

    添加下面设置

    anonymous_enable=YES 
    anon_root=/home/sihai/ftp 
    no_anon_password=YES 
    write_enable=YES 
    anon_upload_enable=YES 
    anon_mkdir_write_enable=YES 
    anon_umask=0022
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.重启服务器,重新加载/etc/vsftpd.conf配置文件

    ubuntu12.04sudo /etc/init.d/vsftpd restart
    
    
    ubuntu14.04sudo /lib/init/upstart-job vsftpd restart
     
     
     
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.进入你的/home/sihai/ftp目录下创建一个空目录,供用户上传

    cd ~/ftp
    
    mkdir anonymous chmod 777 anonymous
     
     
     
     
    • 1
    • 2
    • 3

    5.测试上传功能,登陆ftp服务器,进入到anonymous目录

    ftp IP
    cd anonymous
     
     
     
     
    • 1
    • 2

    6.上传命令,可以把你当前目录下的文件上传到ftp服务器的anonymous目录

    put somefile 
    get somefile
     
     
     
     
    • 1
    • 2
    11.1.2 ftp客户端

    Ubuntu 默认已经安装ftp客户端

    11.1.3 lftp客户端

    lftp 也 是 一 种 ftp 客 户 程 序。 它 是 以 文 本 方 式 操 作 的, 但 是 比 起 图 形 界 面 更 为 方 便。lftp几乎具有bash的所有方便功能,Tab 补全,bookmark, queue, 后台下载等可以 得到支持。用法与ftp类似,主要的指令如下:

    put 上传文件
    mput 上传多个文件 get 下载文件
    mget 下载多个文件
    mirror 下载整个目录及其子目录 mirror –R 上传整个目录及其子目录
    !command 调用本地shell执行命令command

    注意,有的发行版可能缺省没有安装lftp工具,需要用户自己安装。如果是Debian或 Ubuntu系统,则安装lftp软件包。

    sudo apt-get install lftp
     
     
     
     
    • 1
    11.2 nfs

    1.安装nfs服务器

    sudo apt-get install nfs-kernel-server
     
     
     
     
    • 1

    2.设置/etc/exports配置文件

    sudo vi /etc/exports
     
     
     
     
    • 1

    添加这行配置

    /home/用户名/nfs   *(rw,sync,no_root_squash)
     
     
     
     
    • 1

    3.在用户目录下创建nfs目录

    mkdir /home/用户名/nfs
     
     
     
     
    • 1

    4.重启服务器,重新加载配置文件

    sudo /etc/init.d/nfs-kernel-server restart
     
     
     
     
    • 1

    5.在/home/用户名/nfs目录下创建测试文件hello

    cd /home/用户名/nfs touch hello
     
     
     
     
    • 1

    6.测试服务器,把服务器共享目录nfs挂在到/mnt节点

    sudo mount -t nfs -o nolock -o tcp IP:/home/用户名/nfs /mnt
     
     
     
     
    • 1

    7.进入/mnt目录可以看到hello文件,表示构建成功

    8.卸载网络共享目录

    sudo umount /mnt
     
     
     
     
    • 1
    11.3ssh

    1.安装ssh服务器

    sudo apt-get install openssh-server
     
     
     
     
    • 1

    2.远程登陆

    ssh 用户名@IP
     
     
     
     
    • 1

    其它命令

    12.1 终端翻页
    Shift-pageup 
    Shift-pagedown
     
     
     
     
    • 1
    • 2
    12.2 man

    看手册(叫做manual或man page)。每一个命令和系统函数都有自己的man page。

    man man
     
     
     
     
    • 1
    man read 
     
     
     
     
    • 1

    查看read命令的man page

    man 2 read 
     
     
     
     
    • 1

    查看read系统函数的man page(在第二个section中,表示为read(2)) man -k read 以read为关键字查找相关的man page

    12.3 clear

    清屏。使光标和提示符回到屏幕第一行。

    快捷键:Ctrl-l

    12.4 alias

    alias [-p] name=value … 将 value 字 符 串 起 个 别 名 叫 name, 以 后 在 命 令 行 输 入 name,shell 自 动 将 其 解 释 为value,如果不带参数执行本命令,或以参数-p执行,则显示当前定义的别名列表。

    $ alias
    alias ls='ls --color=auto' alias rm='rm -i'
     
     
     
     
    • 1
    • 2
    12.5 echo

    echo [-n] 字符串

    在显示器上显示一段文字,一般起到一个提示的作用。其中选项n表示输出文字后不换 行;字符串可以加引号,也可以不加引号。用echo命令输出加引号的字符串时,将字符串原 样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各 字符串之间用一个空格分割。

    查看上一个程序退出数值,正常情况程序退出值是0

    echo $?
     
     
     
     
    • 1
    12.6 date

    查看当前时间

    12.7 umask

    umask [-p] -S [mode]

    umask指定用户创建文件时的掩码,其中的mode和chmod的命令中的格式一样。如果不用 mode参数,则显示当前的umask设置。如果用-S参数,则以符号形式显示设置。

    $ umask 0022
    $ umask -S u=rwx,g=rx,o=rx
     
     
     
     
    • 1
    • 2

    比如该用户touch或gedit创建一个文件,则其默认权限为-rw-r-r–,如果该用户创 建一个可执行文件(比如编译生成的程序),则其默认权限为-rwxr-xr-x。也就是说,由于 umask的设定,创建的文件默认是不具有g的w权限和o的w权限的,除非用chmod更改权限。

    12.8 创建终端

    创建终端标签

    Ctrl + Shift + t 
     
     
     
     
    • 1

    切换标签

     Alt+n(n=1)
     
     
     
     
    • 1

    新开终端

    Ctrl + Shift + n
     
     
     
     
    • 1

    关机重启

    关机重启这些操作都需要有root权限

    13.1 poweroff
    13.2 shutdown

    shutdown -t 秒数 [-rkhncfF] 时间 [警告讯息]

    选项:

    -t 秒数 : 设定在切换至不同的runlevel之前, 警告和删除二讯号之间的延迟时间(秒).
    -k : 仅送出警告讯息文字, 但不是真的要 shutdown.
    -r : shutdown 之後重新开机
    -h : shutdown 之後关机.
    -n : 不经过 init , 由 shutdown 指令本身来做关机动作.(不建议你用)
    -f : 重新开机时, 跳过 fsck 指令, 不检查档案系统.
    -F : 重新开机时, 强迫做 fsck 检查.
    -c : 将已经正在 shutdown 的动作取消.

    例子:

    shutdown -r now 立刻重新开机 shutdown -h now 立刻关机
    shutdown -k now 'Hey! Go away! now....' 发出警告讯息, 但没有真的关机 shutdown -t3 -r now 立刻重新开机, 但在警告和删除processes 之间, 延迟3秒钟. shutdown -h 10:42 'Hey! Go away!' 10:42 分关机
    shutdown -r 10 'Hey! Go away!' 10 分钟後关机
    shutdown -c 将刚才下的 shutdown 指令取消,必须切换至其它tty, 登入之後, 才能下此一指令. shutdown now 切换至单人操作模式(不加任何选项时)
     
     
     
     
    • 1
    • 2
    • 3
    • 4

    注意事项:
    时间参数务必要加: 不是用 now, 便是用 hh:mm 或 mm now 其实就是 0 的意思.

    13.3 reboot
    13.4 查看内核版本信息
    uname -a
     
     
     
     
    • 1
    13.5 查看发行版信息
    lsb_release -a
     
     
     
     
    • 1
    13.6 查看空闲内存
    free -m
     
     
     
     
    • 1

    vim

    16.1 vi简介

    vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。 它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需 要对其进行定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等 其他属性进行编排,它只是一个文本编辑程序。 vi没有菜单,只有命令,且命令繁多。

    Vi有三种基本工作模式:

    • 命令模式
    • 文本输入模式
    • 末行模式。
    16.1.1 命令行模式

    任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们 在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式 下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符 都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相 应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合 法命令,Vi会响铃报警。

    16.1.2 文本输入模式

    在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换 命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保 存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。

    16.1.3 末行模式

    末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时 Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示 符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容 写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:

    :sp newfile
     
     
     
     
    • 1

    则分出一个窗口编辑newfile文件。如果要从命令模式转换到编辑模式,可以键入命令a 或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末 行模式,然后输入命令。

    16.2 vim基础操作

    进入插入模式:

    i: 插入光标前一个字符 I: 插入行首
    a: 插入光标后一个字符 A: 插入行未
    o: 向下新开一行,插入行首 O: 向上新开一行,插入行首

    进入命令模式: ESC:从插入模式或末行模式进入命令模式 移动光标:

    h: 左移 j: 下移 k: 上移 l: 右移
    M: 光标移动到中间行
    L: 光标移动到屏幕最后一行行首 G: 移动到指定行,行号 -G
    w: 向后一次移动一个字 b: 向前一次移动一个字
    {: 按段移动,上移
    }: 按段移动,下移 Ctr-d: 向下翻半屏 Ctr-u: 向上翻半屏 Ctr-f: 向下翻一屏 Ctr-b: 向上翻一屏
    gg: 光标移动文件开头 G: 光标移动到文件末尾

    删除命令:

    x: 删除光标后一个字符,相当于 Del
    X: 删除光标前一个字符,相当于 Backspace
    dd: 删除光标所在行,n dd 删除指定的行数 D: 删除光标后本行所有内容,包含光标所在字符 d0: 删除光标前本行所有内容,不包含光标所在字符
    dw: 删除光标开始位置的字,包含光标所在字符

    撤销命令:

    u: 一步一步撤销
    U: 一次性撤销当前行所作的所有操作 Ctr-r: 反撤销

    重复命令:

    .: 重复上一次操作的命令

    文本行移动:

    • >>: 文本行右移
    • <<: 文本行左移

    复制粘贴:

    yy: 复制当前行,n yy 复制 n 行
    p: 在光标所在位置向下新开辟一行,粘贴

    可视模式:

    v: 按字符移动,选中文本
    V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动

    替换操作:

    r: 替换当前字符
    R: 替换当前行光标后的字符

    查找命令:

    /: str查找
    n: 下一个
    N:上一个

    替换命令: 把abc全部替换成123

    :%s/abc/123/g
     
     
     
     
    • 1

    代码排版:

    gg=G: 代码自动缩进排版

    16.3 vim分屏操作

    分屏操作:

    sp: 上下分屏,后可跟文件名
    vsp: 左右分屏,后可跟文件名
    Ctr+w+w: 在多个窗口切换

    启动分屏

    1.使用大写O参数进行垂直分屏

    $ vim -On file1 file2 ...
     
     
     
     
    • 1

    2.使用小写o参数进行水平分屏

    $ vim -on file1 file2 ...
     
     
     
     
    • 1

    注: n是数字,表示分屏的数量,n要大于等于文件个数

    关闭分屏

    1.关闭当前窗口

    ctrl+w c
     
     
     
     
    • 1

    2.关闭当前窗口,如果只剩最后一个,则退出vim

    ctrl+w q
     
     
     
     
    • 1

    编辑中分屏

    1.上下分割当前打开的文件

    ctrl+w s
     
     
     
     
    • 1

    2.上下分割,并打开一个新的文件

    :sp filename
     
     
     
     
    • 1

    3.左右分割当前打开的文件

    ctrl+w v
     
     
     
     
    • 1

    4.左右分割,并打开一个新的文件

    :vsp filename
     
     
     
     
    • 1

    分屏编辑中光标的移动 vi中的光标键是h,j,k,l,要在各个屏之间切换,只需要先按一下ctrl+w

    1.把光标移动到上边的屏

    ctrl+w k
     
     
     
     
    • 1

    2.把光标移动到下边的屏

    ctrl+w j
     
     
     
     
    • 1

    3.把光标移动到右边的屏

    ctrl+w l
     
     
     
     
    • 1

    4.把光标移动到左边的屏

    ctrl+w h
     
     
     
     
    • 1

    5.把光标移动到下一个的屏

    ctrl+w w
     
     
     
     
    • 1

    移动分屏 1.向上移动

    ctrl+w K
     
     
     
     
    • 1

    2.向下移动

    ctrl+w J
     
     
     
     
    • 1

    3.向右移动

    ctrl+w L
     
     
     
     
    • 1

    4.向左移动

    ctrl+w H
     
     
     
     
    • 1

    屏幕尺寸

    1.增加高度

    ctrl+w +
     
     
     
     
    • 1

    2.减少高度

    ctrl+w -
     
     
     
     
    • 1

    3.让所有屏的高度一致

    ctrl+w =
     
     
     
     
    • 1

    4.左加宽度

    ctrl+w >
     
     
     
     
    • 1

    5.右加宽度

    ctrl+w <
     
     
     
     
    • 1

    6.右增加n宽 (如:n=30)

    ctrl+w n <
     
     
     
     
    • 1
                <link href="https://csdnimg/release/phoenix/mdeditor/markdown_views-095d4a0b23.css" rel="stylesheet">
                    </div>
    </article>
    
            <div class="recommend-box"><div class="recommend-item-box type_blog clearfix" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/creazierHIT/article/details/82251548&quot;,&quot;strategy&quot;:&quot;BlogCommendFromQuerySearch&quot;,&quot;index&quot;:&quot;0&quot;}">
    <div class="content" style="width: 712px;">
    	<a href="https://blog.csdn/creazierHIT/article/details/82251548" target="_blank" rel="noopener" title="时间管理,这篇文章就够了!">
    	<h4 class="text-truncate oneline" style="width: 552px;">
    			时间管理,这<em>篇文章</em>就<em>够</em>了!		</h4>
    	<div class="info-box d-flex align-content-center">
    		<p class="date-and-readNum oneline">
    			<span class="date hover-show">08-31</span>
    			<span class="read-num hover-hide">
    				阅读数 
    				260</span>
    			</p>
    		</div>
    	</a>
    	<p class="content" style="width: 712px;">
    		<a href="https://blog.csdn/creazierHIT/article/details/82251548" target="_blank" rel="noopener" title="时间管理,这篇文章就够了!">
    			<span class="desc oneline">hhhh,好像有点标题党的味道。今天分享一下时间管理的技能,时间管理不论是在读书的时候,还是在工作的时候,都特别重要。我一直觉得Life=Time.之前接触过时间管理,走了很多弯路,自己也读过什么《高...</span>
    		</a>
    		<span class="blog_title_box oneline ">
    								<span class="type-show type-show-blog type-show-after">博文</span>
    										<a target="_blank" rel="noopener" href="https://blog.csdn/creazierHIT">来自:	<span class="blog_title"> 码蹄疾</span></a>
    											</span>
    	</p>
    </div>
    </div>
    
    <div class="comment-edit-box d-flex">
    	<a id="commentsedit"></a>
    	<div class="user-img">
    		<a href="//me.csdn/weixin_42447342" target="_blank" rel="noopener">
    			<img class="" src="https://avatar.csdn/6/D/7/3_weixin_42447342.jpg">
    		</a>
    	</div>
    	<form id="commentform">
    		<input type="hidden" id="comment_replyId">
    		<textarea class="comment-content" name="comment_content" id="comment_content" placeholder="想对作者说点什么"></textarea>
    		<div class="opt-box"> <!-- d-flex -->
    			<div id="ubbtools" class="add_code">
    				<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
    			</div>
    			<input type="hidden" id="comment_replyId" name="comment_replyId">
    			<input type="hidden" id="article_id" name="article_id" value="81673199">
    			<input type="hidden" id="comment_userId" name="comment_userId" value="">
    			<input type="hidden" id="commentId" name="commentId" value="">
    			<div style="display: none;" class="csdn-tracking-statistics tracking-click" data-report-click="{&quot;mod&quot;:&quot;popu_384&quot;,&quot;dest&quot;:&quot;&quot;}"><a href="#" target="_blank" class="comment_area_btn" rel="noopener">发表评论</a></div>
    			<div class="dropdown" id="myDrap">
    				<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
    				<div class="txt-selected text-truncate">添加代码片</div>
    				<svg class="icon d-block" aria-hidden="true">
    					<use xlink:href="#csdnc-triangledown"></use>
    				</svg>
    				</a>
    				<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
    					<li><a data-code="html">HTML/XML</a></li>
    					<li><a data-code="objc">objective-c</a></li>
    					<li><a data-code="ruby">Ruby</a></li>
    					<li><a data-code="php">PHP</a></li>
    					<li><a data-code="csharp">C</a></li>
    					<li><a data-code="cpp">C++</a></li>
    					<li><a data-code="javascript">JavaScript</a></li>
    					<li><a data-code="python">Python</a></li>
    					<li><a data-code="java">Java</a></li>
    					<li><a data-code="css">CSS</a></li>
    					<li><a data-code="sql">SQL</a></li>
    					<li><a data-code="plain">其它</a></li>
    				</ul>
    			</div>  
    			<div class="right-box">
    				<span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
    				<input type="button" class="btn btn-sm btn-cancel d-none" value="取消回复">
    				<input type="submit" class="btn btn-sm btn-red btn-comment" value="发表评论">
    			</div>
    		</div>
    	</form>
    </div>
    
    	<div class="comment-list-container">
    	<a id="comments"></a>
    	<div class="comment-list-box">
    	</div>
    	<div id="commentPage" class="pagination-box d-none"></div>
    	<div class="opt-box text-center">
    		<div class="btn btn-sm btn-link-blue" id="btnMoreComment"></div>
    	</div>
    </div>
    
    jQuery这篇文章

    11-09 阅读数 147

    jQuery 博文 来自: LMD802的博客

    【跨域】jsonp看完这篇文章

    04-21 阅读数 86

    jsonp是一种jQuery提供的跨域解决方案,我们今天来好好讲讲jsonp。同源策略所有浏览器都会使用同源策略这个安全策略。所谓同源,是指协议、域名、端口号都相同。没有同源的两个危险场景设想在用户访... 博文 来自: 你关注了我,是个概率极低的事件......

    EditText,这篇就

    04-27 阅读数 3718

    EditText,看这里就够了,哈哈! 博文 来自: ThanksForAndroid的博客

    <div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 712px;"><link rel="stylesheet" href="https://www.csdn/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=cpQtQLLpApEnLJipnLHEtEcDEyHbcSASEQtnmvLEHpvoASJHpinLinLSDtnitXpJJUHQbAWcyEnUUEtcbnybfXSiHpEcLnEALQSQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed5&amp;adBlockFlag=1" target="_blank" title="羡慕AI高薪岗!为什么这类程序员不建议大家转型?"><h4 class="text-truncate oneline" style="width: 662px;">羡慕AI高薪岗!为什么这类程序员不建议大家转型?</h4></a><p class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=cpQtQLLpApEnLJipnLHEtEcDEyHbcSASEQtnmvLEHpvoASJHpinLinLSDtnitXpJJUHQbAWcyEnUUEtcbnybfXSiHpEcLnEALQSQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed5&amp;adBlockFlag=1" target="_blank" title="羡慕AI高薪岗!为什么这类程序员不建议大家转型?"><span class="desc oneline">被众多开发工程师羡慕的AI程序员为啥这么高薪!30w只是白菜价有啥要求?</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn/1.png?d=2&amp;k=&amp;m=cpQtQLLpApEnLJipnLHEtEcDEyHbcSASEQtnmvLEHpvoASJHpinLinLSDtnitXpJJUHQbAWcyEnUUEtcbnybfXSiHpEcLnEALQSQ&amp;adBlockFlag=1" src="https://kunyu.csdn/1.png?d=2&amp;k=&amp;m=cpQtQLLpApEnLJipnLHEtEcDEyHbcSASEQtnmvLEHpvoASJHpinLinLSDtnitXpJJUHQbAWcyEnUUEtcbnybfXSiHpEcLnEALQSQ&amp;adBlockFlag=1"></div></div>
    
    nginx看这篇就

    02-25 阅读数 208

    LK最近在项目中使用到ngnix负载均衡,虽然使用的是阿里云的负载均衡服务,但是LK还是想自学一下nginx,主要有一下知识总结:1.nginx是什么2.nginx优势是什么3.nginx安装和部署4... 博文 来自: yuruizai110的博客

    学习Java JDBC,看这篇就

    03-26 阅读数 2万+

    JDBC(JavaDBConnection)---Java数据库连接JDBC是一种可用于执行SQL语句的JAVAAPI(ApplicationProgrammingInterface应用程序设计接口)... 博文 来自: ljheee的博客

    Java 动态代理,看这篇就

    09-06 阅读数 123

    这篇文章需要用到Java的反射知识,如果对反射还不清楚的小伙伴,可以先移步到这里《Java进阶-反射》。编程思想都是来自于生活的,“代理”在生活中很常见。比如我们买一个东西时,一般都不会是直接从工厂里... 博文 来自: 破风的个人博客

    Java语法基础看这篇就

    05-24 阅读数 1280

    在最近几年的流行开发语言评比中,Java一直稳居榜首。这不仅取决于Java自身拥有很多优点极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程之外,还因为Java的生态环境建设比较好,比... 博文 来自: 卢小喵的学习笔记

    Java之JDBC-(看这篇就了)

    04-10 阅读数 499

    JDBC(JavaDBConnection)---Java数据库连接一、ODBC到JDBC的发展历程(看一眼就可以)自从Java语言于1995年5月正式公布以来,Java风靡全球。出现大量的用java... 博文 来自: 夜空中最亮的星

    java工程师linux命令,这篇文章了 - 程序员欧阳思海 - CSDN博客

    7-7

    java工程师linux命令,这篇文章了 - weixin_3371164..._CSDN博客

    5-18

    <div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 712px;"><link rel="stylesheet" href="https://www.csdn/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=JcEibpJpQtSQLtnnHcpDyEHSnpSEEScQLmEUEHXLSQnHADXcHSiQnWnJAEEcbSEQtDSvcEnJtpnLnEQDJbnJXAtpbiJJiEHtAcQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed3&amp;adBlockFlag=1" target="_blank" title="腾讯AI击败王者荣耀职业队,1天训练达440年,网友:想哭!"><h4 class="text-truncate oneline" style="width: 662px;">腾讯AI击败王者荣耀职业队,1天训练达440年,网友:想哭!</h4></a><p class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=JcEibpJpQtSQLtnnHcpDyEHSnpSEEScQLmEUEHXLSQnHADXcHSiQnWnJAEEcbSEQtDSvcEnJtpnLnEQDJbnJXAtpbiJJiEHtAcQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed3&amp;adBlockFlag=1" target="_blank" title="腾讯AI击败王者荣耀职业队,1天训练达440年,网友:想哭!"><span class="desc oneline">腾讯AI绝悟的能力,已经精进到王者荣耀电竞职业水平,AI应用空间究竟有多大!</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn/1.png?d=2&amp;k=&amp;m=JcEibpJpQtSQLtnnHcpDyEHSnpSEEScQLmEUEHXLSQnHADXcHSiQnWnJAEEcbSEQtDSvcEnJtpnLnEQDJbnJXAtpbiJJiEHtAcQQ&amp;adBlockFlag=1"></div></div>
    
    <div class="recommend-item-box  recommend-download-box clearfix" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://download.csdn/download/wuyiwei999/11114495&quot;,&quot;strategy&quot;:&quot;BlogCommendFromQuerySearch&quot;,&quot;index&quot;:&quot;9&quot;}">
    	<a href="https://download.csdn/download/wuyiwei999/11114495" rel="noopener" target="_blank">
    		<div class="content clearfix">
    			<div class="">
    				<h4 class="text-truncate oneline clearfix">
    					Makefile学这篇就<em>够</em>了					</h4>
    				<span class="data float-right">04-14</span>
    			</div>
    			<div class="desc oneline">
    					Makefile学习,嵌入式开发或Linux环境下开发需要编写Makefile脚本进行编译,该文档内容来源于网络,作者编写成PDF档,方便大家查看。				</div>
    			<span class="type-show type-show-download">下载</span>
    		</div>
    	</a>
    </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/79382649&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;3&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/79382649&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;3&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/79382649&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:2,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/79382649&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:2,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn/sihai12345/article/details/79382649" target="_blank">              		<h4 class="text-truncate oneline">ArrayList详解,看这篇就<em>够</em>了 - 程序员欧阳思海 - CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">7-8</span>                    </p>                  </div>                </a>            	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34124577/article/details/88289456&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;4&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34124577/article/details/88289456&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;4&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34124577/article/details/88289456&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:3,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34124577/article/details/88289456&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:3,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn/weixin_34124577/article/details/88289456" target="_blank">              		<h4 class="text-truncate oneline">rebalance和reassign,读这<em>篇文章</em>就<em>够</em>了 - weixin_34124..._CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">4-12</span>                    </p>                  </div>                </a>            	</div>
    
    Java反射,看这篇就了!

    03-13 阅读数 115

    Java所有框架最核心的技术就是反射支持,本文将分析反射机制之中的所有的组成单元问题,并利用反射进行类的使用。1.反射源头——Class类java.lang.Class类是进行反射操作的源头所在,所有... 博文 来自: (再见CSDN)剑主的博客/cngoblog.ink

    		<div class="recommend-item-box blog-expert-recommend-box" style="display: block;">
    		<div class="d-flex">
    			<div class="blog-expert-recommend">
    				<div class="blog-expert">
    					<div class="blog-expert-flexbox" data-report-view="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/weixin_33716557" target="_blank"><img src="https://avatar.csdn/7/0/7/3_weixin_33716557.jpg" alt="weixin_33716557" title="weixin_33716557"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="weixin_33716557" data-nick="weixin_33716557">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/weixin_33716557" target="_blank"><h5 class="oneline" title="weixin_33716557">weixin_33716557</h5></a></span>  <p></p><p class="article-num" title="4537篇文章"> 4537篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/creazierHIT" target="_blank"><img src="https://avatar.csdn/7/5/B/3_creazierhit.jpg" alt="码蹄疾" title="码蹄疾"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="creazierHIT" data-nick="码蹄疾">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/creazierHIT" target="_blank"><h5 class="oneline" title="码蹄疾">码蹄疾</h5></a></span>  <p></p><p class="article-num" title="114篇文章"> 114篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/LMD802" target="_blank"><img src="https://avatar.csdn/9/4/1/3_lmd802.jpg" alt="LMD802" title="LMD802"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="LMD802" data-nick="LMD802">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/LMD802" target="_blank"><h5 class="oneline" title="LMD802">LMD802</h5></a></span>  <p></p><p class="article-num" title="23篇文章"> 23篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/colinandroid" target="_blank"><img src="https://avatar.csdn/3/B/9/3_colinandroid.jpg" alt="Colin_Mindset" title="Colin_Mindset"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="colinandroid" data-nick="Colin_Mindset">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/81673199&quot;}"><a href="https://blog.csdn/colinandroid" target="_blank"><h5 class="oneline" title="Colin_Mindset">Colin_Mindset</h5></a></span>  <p></p><p class="article-num" title="104篇文章"> 104篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div></div>
    				</div>
    			</div>
    		</div>
    	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/Java_No2/article/details/90813596&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;5&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/Java_No2/article/details/90813596&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;5&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/Java_No2/article/details/90813596&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:4,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/Java_No2/article/details/90813596&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:4,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn/Java_No2/article/details/90813596" target="_blank">              		<h4 class="text-truncate oneline"><em>Java</em><em>工程师</em>搞懂分布式与高并发,看这篇就<em>够</em>了! - <em>Java</em>_N..._CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">6-17</span>                    </p>                  </div>                </a>            	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/91696388&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;6&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/91696388&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;6&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/91696388&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:5,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/sihai12345/article/details/91696388&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:5,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn/sihai12345/article/details/91696388" target="_blank">              		<h4 class="text-truncate oneline">四次面试:<em>Java</em>程序员越来越悲催了!!! - 程序员欧阳思海 - CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">9-6</span>                    </p>                  </div>                </a>            	</div>
    
    Dart语言基础,看完这篇文章了(二)

    04-18 阅读数 224

    文章内容是我学习时的点滴笔记,如有不好的地方,欢迎指出。本文承接Dart语言基础,看完这篇文章就够了(一),进一步了解Dart语法知识。1 流程控制语句ifelsefor,forEach,for-in... 博文 来自: 秃头老王的博客

    JNI入门这篇文章了(含demo)

    12-08 阅读数 402

    本来这篇文章想叫JNI使用详解或者使用全解的,但是想了想,这篇文章的内容应该只算基础教学。所以改成这个名字,既成为了标题党,也算是客观。准备工作这篇文章直接进入正题,所谓的ndk下载工程创建我就不多说... 博文 来自: weixin_34367845的博客

    蓝桥杯-队列操作(java) - 程序员欧阳思海 - CSDN博客

    6-25

    蓝桥杯-01字串(java) - 程序员欧阳思海 - CSDN博客

    5-17

    Android面向切面编程(AOP)

    11-16 阅读数 402

    一、简述1、AOP的概念如果你用java做过后台开发,那么你一定知道AOP这个概念。如果不知道也无妨,套用百度百科的介绍,也能让你明白这玩意是干什么的:AOP为AspectOrientedProgra... 博文 来自: CSDN_LQR的博客

    <div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 712px;"><link rel="stylesheet" href="https://www.csdn/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=nctELiQvJHccpbSSypHctJDLiSJJnALADcLEHnSEAELXpbntcHiJAvyvbHLQSJpWiASLSJSJJSQJpXtQcJLUiniiXAcinDHciQbQ&amp;k=&amp;dest=https%3A%2F%2Fmall.csdn%2Fv2%2F%23%2Fproduct%2F1586&amp;adBlockFlag=1" target="_blank" title="一本可陪伴一辈子的笔记本"><h4 class="text-truncate oneline" style="width: 662px;">一本可陪伴一辈子的笔记本</h4></a><p class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=nctELiQvJHccpbSSypHctJDLiSJJnALADcLEHnSEAELXpbntcHiJAvyvbHLQSJpWiASLSJSJJSQJpXtQcJLUiniiXAcinDHciQbQ&amp;k=&amp;dest=https%3A%2F%2Fmall.csdn%2Fv2%2F%23%2Fproduct%2F1586&amp;adBlockFlag=1" target="_blank" title="一本可陪伴一辈子的笔记本"><span class="desc oneline">可擦可写,可循环利用,支持OCR识别,让你的笔记本变得智能</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn/1.png?d=2&amp;k=&amp;m=nctELiQvJHccpbSSypHctJDLiSJJnALADcLEHnSEAELXpbntcHiJAvyvbHLQSJpWiASLSJSJJSQJpXtQcJLUiniiXAcinDHciQbQ&amp;adBlockFlag=1"></div></div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_33754913/article/details/91073335&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;9&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_33754913/article/details/91073335&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;9&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_33754913/article/details/91073335&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:8,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_33754913/article/details/91073335&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:8,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn/weixin_33754913/article/details/91073335" target="_blank">              		<h4 class="text-truncate oneline">掌握jQuery插件开发,这<em>篇文章</em>就<em>够</em>了 - weixin_33754913..._CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">6-13</span>                    </p>                  </div>                </a>            	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34019929/article/details/88004684&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;10&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34019929/article/details/88004684&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;10&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34019929/article/details/88004684&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:9,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn/weixin_34019929/article/details/88004684&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:9,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn/weixin_34019929/article/details/88004684" target="_blank">              		<h4 class="text-truncate oneline"><em>Java</em>类加载机制,这篇大概、也许、可能就<em>够</em>了 - weixin_..._CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">5-16</span>                    </p>                  </div>                </a>            	</div>
    
    Dart语言基础,看完这篇文章了(一)

    04-14 阅读数 526

    文章内容是我学习时的点滴笔记,如有不好的地方,欢迎指出。1变量1.1变量声明var、dynamic、Object①未初始化变量声明:声明未初始化的变量是可以改变得。voidmain(){vardata... 博文 来自: 秃头老王的博客

    压敏电阻选型指南,收藏这篇就

    12-14 阅读数 260

    所谓压敏电阻(英文简称MOV),就是一种非线性伏安特性的限压型保护器件。目前,市面上应用于低压电器浪涌保护的压敏电阻多为氧化锌为主体材料,掺杂多种金属氧化物,采用典型的电子陶瓷工艺制成的多晶半导体陶瓷... 博文 来自: weixin_44100818的博客

    Android 属性动画看这篇就

    04-08 阅读数 172

    前言动画绘制与View绘制有哪些区别?Android动画框架是什么?适应场景有哪些?动画机制Android内部有一套动画框架,开发者通过调用Api能够快速实现华丽丽的动画效果。动画和View有着密切联... 博文 来自: 海象先生

    Android App性能优化技能,看这篇就

    04-28 阅读数 86

    一.何为App的性能拿小车举例,大家知道什么是一辆小车的性能吗?同学甲说,是否省油、加速是否够快、开起来是否稳定、安全等等。没错,那就是小车的性能。那App的性能又是指什么呢?同学已说,App启动是否... 博文 来自: 天外来客1009

    面试高并发,看这篇就了(下)

    03-16 阅读数 166

    1Thread的start方法和run方法的区别?run方法就是普通的一个方法,代码运行在当前主线程,start会启动一个新的线程,并运行run方法。2如何停止线程运行?可以设置一个标志位,任务定期检... 博文 来自: weixin_43275277的博客

    <div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 712px;"><link rel="stylesheet" href="https://www.csdn/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=ScAQpSnbQLHEpSStLScbiSLbbJDiyEnSSLnHcAQmbiiAXHJXDSHtDAtpXEAfbpJHtJQWELLQcJbtfbEbDpXSDLitnfSAtbAHtcQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed6&amp;adBlockFlag=1" target="_blank" title="AI学习路线,考虑转型/跳槽程序员免费领取,自测专业程度!"><h4 class="text-truncate oneline" style="width: 662px;">AI学习路线,考虑转型/跳槽程序员免费领取,自测专业程度!</h4></a><p class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=ScAQpSnbQLHEpSStLScbiSLbbJDiyEnSSLnHcAQmbiiAXHJXDSHtDAtpXEAfbpJHtJQWELLQcJbtfbEbDpXSDLitnfSAtbAHtcQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed6&amp;adBlockFlag=1" target="_blank" title="AI学习路线,考虑转型/跳槽程序员免费领取,自测专业程度!"><span class="desc oneline">如何能够短时间内抓住技术重点,打造属于自己的“offer收割机”?</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn/1.png?d=2&amp;k=&amp;m=ScAQpSnbQLHEpSStLScbiSLbbJDiyEnSSLnHcAQmbiiAXHJXDSHtDAtpXEAfbpJHtJQWELLQcJbtfbEbDpXSDLitnfSAtbAHtcQQ&amp;adBlockFlag=1"></div></div>
    
    匈牙利算法-看这篇绝对就了!

    05-31 阅读数 4195

    本文讲述的是匈牙利算法,即图论中寻找最大匹配的算法,暂不考虑加权的最大匹配(用KM算法实现),文章整体结构如下:基础概念介绍 算法的实现好的,开始!一.部分基础概念的介绍我会严格介绍其定义,并同时用自... 博文 来自: 夜阑听风

    Android基础:Fragment,看这篇就

    02-12 阅读数 55

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~由天天P图攻城狮发布在云+社区作者简介:damonxia(夏正冬),天天P图Android工程师下文中Demo的源代码地址:https://git... 博文 来自: weixin_34160277的博客

    Zookeeper 入门,看这篇就

    01-16 阅读数 464

    Zookeeper简介与集群配置【Storm的各个组件间是通过这个组件进行通信】简介:Zookeeper是一个开源的分布式协调服务的框架,使各个机器进行之间进行通信1.1核心功能:文件系统通知机制文件... 博文 来自: 留歌__36的博客

    入门 Webpack,看这篇就

    04-03 阅读数 76

    转载原文:https://segmentfault/a/1190000006178770仔细看了一遍,值得推荐,跟文章名称很符合:入门Webpack,看这篇就够了... 博文 来自: 零度的博客专栏

    Android上传图片到七牛云看这篇就

    08-13 阅读数 6894

    在开发中遇到需要将用户的头像上传到七牛云,折腾了好一阵子才搞定,于是,决定写篇博客记录一下,有这方面需求的开发者,可以作为参考。... 博文 来自: fnhfire_7030的博客

    <div class="recommend-item-box recommend-recommend-box"><div class="content" style="width: 712px;"><link rel="stylesheet" href="https://www.csdn/company/css/edu-recommend-1.0.1.css"><div class="edu-ad-list"><div class="recommend-item-box type_blog clearfix"><div class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=ncEAQQHSEcpDAyHcQnAJbmpbJpLfbHXiUbpEHDSppiXDpEAEEHAnQnnbpAWbApJbQXnAADJLXbEpoftpEiUtEbonnAJSHbcbEbQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed4&amp;adBlockFlag=1" target="_blank" title="拿下阿里offer的AI应届生,需要具备什么样的能力?"><h4 class="text-truncate oneline" style="width: 662px;">拿下阿里offer的AI应届生,需要具备什么样的能力?</h4></a><p class="content" style="width: 712px;"><a href="https://kunyu.csdn?d=2&amp;m=ncEAQQHSEcpDAyHcQnAJbmpbJpLfbHXiUbpEHDSppiXDpEAEEHAnQnnbpAWbApJbQXnAADJLXbEpoftpEiUtEbonnAJSHbcbEbQQ&amp;k=&amp;dest=https%3A%2F%2Fedu.csdn%2Ftopic%2Fai30%3Futm_source%3Dblogfeed4&amp;adBlockFlag=1" target="_blank" title="拿下阿里offer的AI应届生,需要具备什么样的能力?"><span class="desc oneline">人工智能的火广大程序员应该都有了解,但是进军AI领域的条件是?</span></a><span class="blog_title_box oneline "><span class="type-show type-show-edu type-show-after">学院</span>讲师:<span class="blog_title">CSDN</span></span></p></div></div></div><img class="pre-img-lasy" data-src="https://kunyu.csdn/1.png?d=2&amp;k=&amp;m=ncEAQQHSEcpDAyHcQnAJbmpbJpLfbHXiUbpEHDSppiXDpEAEEHAnQnnbpAWbApJbQXnAADJLXbEpoftpEiUtEbonnAJSHbcbEbQQ&amp;adBlockFlag=1"></div></div>
    
    从 aar 到 Jcenter 看这篇就

    12-15 阅读数 956

    eclipse时代的项目依赖通常是jar包依赖和Android库项目依赖。AndroidStudio时代提供了一个新的依赖方式aar。aar结合了以上两种方式的优点可以将资源文件和代码打入这个aar文... 博文 来自: AMing_阿明

    安卓学习AIDL这篇就

    05-18 阅读数 464

    这段时间一直在学习安卓IPC,RPC记录下我学习心得和笔记,最全的使用方式和原理分析慢慢更新…基本使用原理分析parcel和parcelableAIDL简单分析binder共享内存参考文献1.基本使用... 博文 来自: 范明毅的个人博客

    Docker入门,看这篇就

    05-24 阅读数 77

    Docker是怎么出现的关于Docker的发展史,本文就不做介绍,有兴趣的小伙伴们可以查看这篇文章,挺有意思的。http://www.oschina/news/5...什么是Docker?  ... 博文 来自: weixin_34194551的博客

    如何规范测试流程,看这篇就了~

    12-03 阅读数 648

    什么是软件测试?利用人工或自动化的手段对软件进行测试,找出bug,从而降低商业风险;正向思维:软件测试是一系列的活动来验证程序是否正常运行,以及是否达到了用户预期的需求;逆向思维:软件测试是为了发现程... 博文 来自: 首席填坑官∙苏南的专栏

    搞懂YOLO v1看这篇就

    03-21 阅读数 3395

    YOLO是一个实时的目标检测系统,本篇文章将带你一步步理解其中的原理,全面细致,小白也能看得懂~... 博文 来自: Antrn的博客

    <div class="recommend-item-box recommend-recommend-box"><div id="kp_box_64" data-pid="64" data-report-view="{&quot;mod&quot;:&quot;kp_popu_64-558&quot;,&quot;keyword&quot;:&quot;&quot;}" data-report-click="{&quot;mod&quot;:&quot;kp_popu_64-558&quot;,&quot;keyword&quot;:&quot;&quot;}"><script async="async" charset="utf-8" src="https://shared.ydstatic/js/yatdk/3.0.1/stream.js" data-id="8935aa488dd58452b9e5ee3b44f1212f" data-udid="24C56021-A1CB-4A07-993A-2D2A7F00FDCD" data-div-style="width:900px;height:76px;" data-img-style="float:left;margin-right:15px;width:90px;height:60px;" data-tit-style="font-size:16px;color:#f13d3d;" data-des-style="font-size:12px;color:#333;" data-is-handling="1">
    
    广告
    Node中的Stream看这篇就

    06-04 阅读数 39

    Node.jsStream(流)Stream是一个抽象接口,Node中有很多对象实现了这个接口。例如,对http服务器发起请求的request对象就是一个Stream,还有stdout(标准输出)。下... 博文 来自: weixin_34245082的博客

    Python 3 入门,看这篇就

    08-22 阅读数 1366

    简介 Python是一种高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python由GuidovanRossum于1989年底在荷兰国家数学和计算机科学研究所发明,第一个公开发行版发行于1... 博文 来自: HelloWorld搬运工

    理解卷积神经网络?看这篇论文就

    12-31 阅读数 55

    南洋理工大学的综述论文《RecentAdvancesinConvolutionalNeuralNetworks》对卷积神经网络的各个组件以及进展情况进行总结和解读,其中涉及到CNN中各种重要层的数学原... 博文 来自: weixin_33860737的博客

    python文件编码问题,看这篇就

    05-22 阅读数 1518

    今天由于用python写脚本时,读取txt文件出现问题,查了半天,由此出这贴注意:windows里的Unicode不是指Unicode字符集,而是指文件编码格式utf-16,关于字符集,请自行百度总结... 博文 来自: 贯穿真Sh的博客

    配置Centos虚拟机看这篇就

    03-01 阅读数 79

    无论是Java分布式web开发还是大数据开发,本地调试中,使用Linux虚拟机是必不可少的,系统介绍下VMware下Centos6.5的安装以及网络配置,使其能够使用ssh工具连接。Centos6.5... 博文 来自: 驿寄梅花、鱼传尺素

    <div class="recommend-item-box recommend-recommend-box"><div id="kp_box_65" data-pid="65" data-report-view="{&quot;mod&quot;:&quot;kp_popu_65-809&quot;,&quot;keyword&quot;:&quot;&quot;}" data-report-click="{&quot;mod&quot;:&quot;kp_popu_65-809&quot;,&quot;keyword&quot;:&quot;&quot;}"><script async="async" charset="utf-8" src="https://shared.ydstatic/js/yatdk/3.0.1/stream.js" data-id="6cb24153a03289ff3597c7aab4b69fe9" data-div-style="width:100%;" data-tit-style="margin-bottom: 6px; font-size: 18px; line-height: 24px; color: #3d3d3d;display: inline-block;font-weight:bold;" data-des-style="font-size: 13px; line-height: 22px; white-space: normal; color: #999;" data-img-style="float:left;margin-right:15px;width:90px;height:60px;" data-is-handling="1">
    

    mybatis 缓存的使用, 看这篇就

    09-30 阅读数 3909

    缓存的重要性是不言而喻的。使用缓存,我们可以避免频繁的与数据库进行交互,尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。mybatis也提供了对缓存的支持,分为一级缓存和二级缓存... 博文 来自: Homejim的博客

    搞定计算机网络面试,看这篇就

    08-19 阅读数 225

    目录一OSI与TCP/IP各层的结构与功能,都有哪些协议1应用层2运输层3网络层4数据链路层5物理层二TCP三次握手和四次挥手(面试常客)为什么要三次握手为什么要传回syn传了SYN,为啥还要传ACK... 博文 来自: Franco的博客

    想熟悉PostgreSQL?这篇就

    07-23 阅读数 192

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~本文由angel_郁发表于云+社区专栏什么是PostgreSQL?PostgreSQL是自由的对象-关系型数据库服务器,在灵活的BSD风格许可... 博文 来自: QcloudCommunity的博客

    Hadoop之集群搭建(看这篇就了)

    03-10 阅读数 189

    CentOS-7-x86_64-DVD-1810.iso+jdk-8u161-linux-x64.tar.gz+hadoop-2.8.3.tar.gzCentOS-7-x86_64-DVD-1810.... 博文 来自: 醉颜凉的博客

    要不要买保险,看这篇就

    03-18 阅读数 214

    https://mp.weixin.qq/s/6-IvJl9ES0b9a_CwP8OIsw深度分析:保险,究竟该怎么选择?原创:我是北风先生北风雪林1月11日自改革开放以来,我国保险业的发展已... 博文 来自: 湾区人工智能

    <div class="recommend-item-box recommend-recommend-box"><div id="kp_box_66" data-pid="66" data-report-view="{&quot;mod&quot;:&quot;kp_popu_66-558&quot;,&quot;keyword&quot;:&quot;&quot;}" data-report-click="{&quot;mod&quot;:&quot;kp_popu_66-558&quot;,&quot;keyword&quot;:&quot;&quot;}"><script async="async" charset="utf-8" src="https://shared.ydstatic/js/yatdk/3.0.1/stream.js" data-id="8935aa488dd58452b9e5ee3b44f1212f" data-udid="24C56021-A1CB-4A07-993A-2D2A7F00FDCD" data-div-style="width:900px;height:76px;" data-img-style="float:left;margin-right:15px;width:90px;height:60px;" data-tit-style="font-size:16px;color:#f13d3d;" data-des-style="font-size:12px;color:#333;" data-is-handling="1">
    
    广告
    关于Android的屏幕适配,看这篇就

    03-06 阅读数 283

    一.为什么要进行屏幕适配先看几个图片Android设备从上面图片可以看出... 博文 来自: hunter_zhanghaifeng的博客

                <div class="recommend-item-box type_hot_word">
                                <div class="content clearfix" style="width: 712px;">
                    <div class="float-left">
                                        <span>
                        <a href="https://www.csdn/gather_11/MtjaQgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c# 去空格去转义符</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_18/MtjaUgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c#用户登录窗体代码</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_14/MtjaYgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c# 流</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_10/MtjacgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c# linux 可视化</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_13/MtjaggtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c# mvc 返回图片</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_16/MtjakgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c# 像素空间</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_13/MtzaAgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c# 日期 最后一天</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_1c/MtzaEgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c#字典序排序</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_16/MtzaIgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c# 截屏取色</a>
                    </span>
                                        <span>
                        <a href="https://www.csdn/gather_11/MtzaMgtsZG93bmxvYWQO0O0O.html" target="_blank">
                        c#中的哪些属于托管机制</a>
                    </span>
                                        </div>
                </div>
                                </div>
                            <div class="recommend-loading-box">
                <img src="https://csdnimg/release/phoenix/images/feedLoading.gif">
            </div>
            <div class="recommend-end-box" style="display: block;">
                <p class="text-center">没有更多推荐了,<a href="https://blog.csdn/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
            </div>
        </div>
    </main>
    
    <aside>
    <div id="asideProfile" class="aside-box">
    <!-- <h3 class="aside-title">个人资料</h3> -->
    <div class="profile-intro d-flex">
        <div class="avatar-box d-flex justify-content-center flex-column">
            <a href="https://blog.csdn/sihai12345">
              <img src="https://avatar.csdn/0/3/0/3_sihai12345.jpg" class="avatar_pic" username="sihai12345">
                              <img src="https://g.csdnimg/static/user-reg-year/1x/4.png" class="user-years">
                          </a>
            
        </div>
        <div class="user-info d-flex flex-column">
            <p class="name csdn-tracking-statistics tracking-click" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" username="sihai12345">
                <a href="https://blog.csdn/sihai12345" class="" id="uid" title="欧阳思海">欧阳思海</a>
            </p>
                                        <p class="personal-home-page" style="right:-96px;"><a target="_blank" href="https://me.csdn/sihai12345">TA的个人主页 &gt;</a></p>
                    </div>
                <div class="profile-personal-letter">
            <a id="profile-personal-alink" href="https://www.csdn/apps/download/?code=app_1564993662&amp;callback=csdnapp%3A%2F%2Fweb%3Furl%3Dhttps%3A%2F%2Fapp.csdn%2Fother%3Fusername%3Dsihai12345" target="_blank" rel="noopener">私信</a>
        </div>
        <div class="opt-box d-flex  flex-column">
            <span class="csdn-tracking-statistics tracking-click" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">
                                    <a class="btn btn-sm btn-red-hollow attention" id="btnAttent" style="line-height:24px;padding:0;">关注</a>
                            </span>
        </div>
            </div>
    <div class="data-info d-flex item-tiling">
                <dl class="text-center" title="432">
                        <dt><a href="https://blog.csdn/sihai12345?t=1">原创</a></dt>
            <dd><a href="https://blog.csdn/sihai12345?t=1"><span class="count">432</span></a></dd>
                    </dl>
        <dl class="text-center" id="fanBox" title="2023">
            <dt>粉丝</dt>
            <dd><span class="count" id="fan">2023</span></dd>
        </dl>
        <dl class="text-center" title="727">
            <dt>喜欢</dt>
            <dd><span class="count">727</span></dd>
        </dl>
        <dl class="text-center" title="351">
            <dt>评论</dt>
            <dd><span class="count">351</span></dd>
        </dl>
    </div>
    <div class="grade-box clearfix">
        <dl>
            <dt>等级:</dt>
            <dd>
                <a href="https://blog.csdn/home/help.html#level" title="7级,点击查看等级说明" target="_blank">
                    <svg class="icon icon-level" aria-hidden="true">
                        <use xlink:href="#csdnc-bloglevel-7"></use>
                    </svg>
                </a>
            </dd>
        </dl>
        <dl>
            <dt>访问:</dt>
            <dd title="1233569">
                123万+            </dd>
        </dl>
        <dl>
            <dt>积分:</dt>
            <dd title="13803">
                1万+            </dd>
        </dl>
        <dl title="1734">
            <dt>排名:</dt>
            <dd>1734</dd>
        </dl>
    </div>
        <div class="badge-box d-flex">
        <span>勋章:</span>
        <div class="badge d-flex">
                                                        <div class="icon-badge" title="专栏达人">
                       <div class="mouse-box">
                          <img src="https://g.csdnimg/static/user-medal/zhuanlan.svg" alt="">
                          <div class="icon-arrow"></div>
                       </div>
                       <div class="grade-detail-box">
                           <div class="pos-box">
                               <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                    <img src="https://g.csdnimg/static/user-medal/zhuanlan.svg" alt="">
                                   <p>专栏达人</p>
                               </div>
                               <div class="right-box">
                                   授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!                               </div>
                           </div>
                       </div>
                   </div>
                                                             <div class="icon-badge" title="持之以恒">
                       <div class="mouse-box">
                          <img src="https://g.csdnimg/static/user-medal/chizhiyiheng.svg" alt="">
                          <div class="icon-arrow"></div>
                       </div>
                       <div class="grade-detail-box">
                           <div class="pos-box">
                               <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                    <img src="https://g.csdnimg/static/user-medal/chizhiyiheng.svg" alt="">
                                   <p>持之以恒</p>
                               </div>
                               <div class="right-box">
                                   授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!                               </div>
                           </div>
                       </div>
                   </div>
                                                             <div class="icon-badge" title="1024勋章">
                       <div class="mouse-box">
                          <img src="https://g.csdnimg/static/user-medal/1024huodong.svg" alt="">
                          <div class="icon-arrow"></div>
                       </div>
                       <div class="grade-detail-box">
                           <div class="pos-box">
                               <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                    <img src="https://g.csdnimg/static/user-medal/1024huodong.svg" alt="">
                                   <p>1024勋章</p>
                               </div>
                               <div class="right-box">
                                   #1024程序员节#活动勋章,当日发布原创博客即可获得                               </div>
                           </div>
                       </div>
                   </div>
                                                             <div class="icon-badge" title="勤写标兵Lv1">
                       <div class="mouse-box">
                          <img src="https://g.csdnimg/static/user-medal/qinxiebiaobing_l1_t4.svg" alt="">
                          <div class="icon-arrow"></div>
                       </div>
                       <div class="grade-detail-box">
                           <div class="pos-box">
                               <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                    <img src="https://g.csdnimg/static/user-medal/qinxiebiaobing_l1_t4.svg" alt="">
                                   <p>勤写标兵Lv1</p>
                               </div>
                               <div class="right-box">
                                   授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。                               </div>
                           </div>
                       </div>
                   </div>
                                             </div>
        <script>
            (function ($) {
                setTimeout(function(){
                    $('div.icon-badge.show-moment').removeClass('show-moment');
                }, 5000);
            })(window.jQuery)
        </script>
    </div>
    </div>
    

    分类专栏

    • 史上最好oracle数据库教程 17篇
    • 蓝桥杯竞赛训练习题 92篇
    • SpringMvc实战教程 11篇
    • 带你进入shiro的世界 4篇
    • ===== java基础 ===== 114篇
    • √ 深入理解多线程与并发 8篇
    • √ 深入理解设计模式 5篇
    • √ jdk源码深入分析
    • √ 深入理解jvm
    • √ tomcat深入学习 6篇
    • √ springboot 11篇
    • √ springcloud
    • √ spring security
    • √ java ee 7篇
    • √ stucts 19篇
    • √ hibernate 11篇
    • √ spring 22篇
    • √ springmvc 13篇
    • √ mybatis 7篇
    • √ activiti 9篇
    • √ dubbo 4篇
    • √ webService 3篇
    • √ shiro 7篇
    • √ lucene 7篇
    • √ freemaker 1篇
    • √ junit 3篇
    • √ 项目功能总结 16篇
    • √ jsoup
    • ===== 游戏前端 ===== 1篇
    • √ vue 1篇
    • √ bootstrap
    • √ angular
    • √ node.js
    • √ react
    • √ html 2篇
    • √ css 4篇
    • √ jquery 2篇
    • √ js 5篇
    • √ ajax
    • √ xml 5篇
    • ===== databases ===== 1篇
    • √ sqlserver 1篇
    • √ mysql 9篇
    • √ oracle 21篇
    • ===== 你好啊,生活 ===== 5篇
    • √ 职业生涯 6篇
    • ===== 戏耍算法 ===== 1篇
    • √ 365算法每日学打卡计划 6篇
    • √ 数据结构与算法 15篇
    • √ 蓝桥杯-算法入门 4篇
    • √ 蓝桥杯-算法训练 28篇
    • √ 蓝桥杯-算法提高 14篇
    • √ 蓝桥杯-真题练习 13篇
    • √ 蓝桥杯-决赛真题练习 17篇
    • √ 蓝桥杯练习系统(c/c++版) 17篇
    • ===== 项目管理 ===== 23篇
    • √ svn 10篇
    • √ git 10篇
    • ===== android ===== 5篇
    • ===== c/c++ ===== 5篇
    • ===== linux ===== 2篇
    • √ 阿里云 8篇
    • √ 面试不败计划 12篇
    • √ 微信开发 6篇
    • ===== AI ===== 1篇
    • √ python基础 18篇
    • √ python数据处理 7篇
    • docker 1篇
    • √ zookeeper
    • √ Java8 2篇
    • √ Exception 1篇
    • √ 分布式

    展开

    热门文章

    • 				<a href="https://blog.csdn/sihai12345/article/details/79121647">
                                                  史上最强视频网站真实地址解析(网站视频获取)                    </a>
      				<p class="read">阅读数 <span>103265</span></p>
      			</li>
      						<li>
      
      				<a href="https://blog.csdn/sihai12345/article/details/73381151">
                                                  java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)                    </a>
      				<p class="read">阅读数 <span>41524</span></p>
      			</li>
      						<li>
      
      				<a href="https://blog.csdn/sihai12345/article/details/79382649">
                                                  ArrayList详解,看这篇就够了                    </a>
      				<p class="read">阅读数 <span>26125</span></p>
      			</li>
      						<li>
      
      				<a href="https://blog.csdn/sihai12345/article/details/65635750">
                                                  有关算法方面的经典书籍推荐                    </a>
      				<p class="read">阅读数 <span>25105</span></p>
      			</li>
      						<li>
      
      				<a href="https://blog.csdn/sihai12345/article/details/81098765">
                                                  如何根据sessionID获取session解决方案                    </a>
      				<p class="read">阅读数 <span>21056</span></p>
      			</li>
      				</ul>
      </div>
      
    	<div class="aside-box">
    		<div id="kp_box_57" data-pid="57" data-report-click="{&quot;mod&quot;:&quot;kp_popu_57-707&quot;,&quot;keyword&quot;:&quot;&quot;}"><script async="" src="//pagead2.googlesyndication/pagead/js/adsbygoogle.js"></script>
    

    			<div class="aside-box">
    		<div class="persion_article">
    		<div class="right_box footer_box csdn-tracking-statistics">        <div class="contact-box" id="footer-contact-box"><div class="img-box"><a href="https://edu.csdn?utm_source=csdn_footer" target="_blank"><img src="https://csdnimg/pubfooter/images/edu-QR.png" alt="CSDN学院" style="padding: 6px;width: 98px;height: 98px;"></a><p class="app-text">CSDN学院</p></div><div class="img-box fr"><img style="padding: 6px;width: 98px;height: 98px;" src="https://csdnimg/pubfooter/images/job-QR.png" alt="CSDN企业招聘"><p class="app-text">CSDN企业招聘</p></div></div>        <div class="contact-info">        <p><svg width="16" height="16" xmlns="http://www.w3/2000/svg"><path d="M2.167 2h11.666C14.478 2 15 2.576 15 3.286v9.428c0 .71-.522 1.286-1.167 1.286H2.167C1.522 14 1 13.424 1 12.714V3.286C1 2.576 1.522 2 2.167 2zm-.164 3v1L8 10l6-4V5L8 9 2.003 5z" fill="#5c5c5c" fill-rule="evenodd"></path></svg><a href="mailto:webmaster@csdn" target="_blank"><span class="txt">kefu@csdn</span></a>        <em class="width126"><svg t="1538013544186" width="17" height="17" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3/2000/svg" p-id="23556" xmlns:xlink="http://www.w3/1999/xlink"><defs><style type="text/css"></style></defs><path d="M902.60033922 650.96445566c-18.0718526-100.84369837-94.08399771-166.87723736-94.08399771-166.87723737 10.87530062-91.53186599-28.94715402-107.78733693-28.94715401-107.78733691C771.20003413 93.08221664 517.34798062 98.02553561 511.98620441 98.16348824 506.65661791 98.02553561 252.75857992 93.08221664 244.43541101 376.29988138c0 0-39.79946279 16.25547094-28.947154 107.78733691 0 0-75.98915247 66.03353901-94.0839977 166.87723737 0 0-9.63372291 170.35365477 86.84146124 20.85850523 0 0 21.70461757 56.79068296 61.50407954 107.78733692 0 0-71.1607951 23.19910867-65.11385185 83.46161052 0 0-2.43717093 67.16015592 151.93232126 62.56172014 0 0 108.5460788-8.0932473 141.10300432-52.14626271H526.33792324c32.57991817 44.05301539 141.10300431 52.1462627 141.10300431 52.14626271 154.3235077 4.59843579 151.95071457-62.56172013 151.95071457-62.56172014 6.00095876-60.26250183-65.11385185-83.46161053-65.11385185-83.46161052 39.77647014-50.99665395 61.4810877-107.78733693 61.4810877-107.78733692 96.45219231 149.49514952 86.84146124-20.85850523 86.84146125-20.85850523" p-id="23557" fill="#5c5c5c"></path></svg><a href="http://wpa.b.qq/cgi/wpa.php?ln=1&amp;key=XzgwMDE4MDEwNl80ODc3MzVfODAwMTgwMTA2XzJf" class="qqcustomer_s" target="_blank"><span class="txt">QQ客服</span></a></em></p>        <p><em class="width126"><svg t="1538012951761" width="17" height="17" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3/2000/svg" p-id="23083" xmlns:xlink="http://www.w3/1999/xlink"><defs><style type="text/css"></style></defs><path d="M466.4934485 880.02006511C264.6019863 859.18313878 107.13744214 688.54706608 107.13744214 481.14947309 107.13744214 259.68965394 286.68049114 80.14660493 508.14031029 80.14660493s401.00286817 179.54304901 401.00286814 401.00286816v1.67343191C908.30646249 737.58941724 715.26799489 943.85339507 477.28978337 943.85339507c-31.71423369 0-62.61874229-3.67075386-92.38963569-10.60739903 30.09478346-11.01226158 56.84270313-29.63593923 81.5933008-53.22593095z m-205.13036267-398.87059202a246.77722444 246.77722444 0 0 0 493.5544489 0 30.85052691 30.85052691 0 0 0-61.70105383 0 185.07617062 185.07617062 0 0 1-370.15234125 0 30.85052691 30.85052691 0 0 0-61.70105382 0z" p-id="23084" fill="#5c5c5c"></path></svg><a href="http://bbs.csdn/forums/Service" target="_blank"><span class="txt">客服论坛</span></a></em>        <svg t="1538013874294" width="17" height="17" style="" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3/2000/svg" p-id="23784" xmlns:xlink="http://www.w3/1999/xlink"><defs><style type="text/css"></style></defs><path d="M1031.29689505 943.85339507h-863.70679012A71.98456279 71.98456279 0 0 1 95.60554212 871.86883228v-150.85178906c0-28.58329658 16.92325492-54.46750945 43.13135785-65.93861527l227.99160176-99.75813425c10.55341735-4.61543317 18.24580594-14.0082445 20.72896295-25.23643277l23.21211998-105.53417343a71.95757195 71.95757195 0 0 1 70.28414006-56.51881307h236.95255971c33.79252817 0 63.02360485 23.5090192 70.28414004 56.51881307l23.21211997 105.53417343c2.48315701 11.25517912 10.17554562 20.62099961 20.72896296 25.23643277l227.99160177 99.75813425a71.98456279 71.98456279 0 0 1 43.13135783 65.93861527v150.85178906A71.98456279 71.98456279 0 0 1 1031.26990421 943.85339507z m-431.85339506-143.94213475c143.94213474 0 143.94213474-48.34058941 143.94213474-107.96334876s-64.45411922-107.96334877-143.94213474-107.96334877c-79.51500637 0-143.94213474 48.34058941-143.94213475 107.96334877s0 107.96334877 143.94213475 107.96334876zM1103.254467 296.07330247v148.9894213a35.97878598 35.97878598 0 0 1-44.15700966 35.03410667l-143.94213473-33.57660146a36.0057768 36.0057768 0 0 1-27.80056231-35.03410668V296.1002933c-35.97878598-47.98970852-131.95820302-71.98456279-287.91126031-71.98456279S347.53801649 248.11058478 311.53223967 296.1002933v115.385829c0 16.73431906-11.52508749 31.25538946-27.80056233 35.03410668l-143.94213473 33.57660146A35.97878598 35.97878598 0 0 1 95.63253297 445.06272377V296.07330247C162.81272673 152.13116772 330.77670658 80.14660493 599.47049084 80.14660493s436.63077325 71.98456279 503.81096699 215.92669754z" p-id="23785" fill="#5c5c5c"></path></svg>400-660-0108 </p>        <p style="text-align:center">工作时间 8:30-22:00</p>        </div>        <div class="bg-gray">            <div class="feed_copyright">            <p><a class="right-dotte" href="//www.csdn/company/index.html#about" target="_blank">关于我们</a><a href="//www.csdn/company/index.html#recruit" target="_blank" class="right-dotte">招聘</a><a href="//www.csdn/company/index.html#contact" target="_blank" class="right-dotte">广告服务</a>            <a href="https://www.csdn/gather/A" target="_blank" class="footer_baidu">            网站地图</a></p>            <p class="fz12_baidu"><a href="https://zn.baidu/cse/home/index" target="_blank"><svg width="13" height="14" xmlns="http://www.w3/2000/svg"><path d="M8.392 7.013c1.014 1.454 2.753 2.8 2.753 2.8s1.303 1.017.47 2.98c-.833 1.962-3.876.942-3.876.942s-1.122-.36-2.424-.072c-1.303.291-2.426.181-2.426.181s-1.523.037-1.957-1.888c-.434-1.927 1.52-2.982 1.666-3.161.145-.183 1.159-.873 1.81-1.963.653-1.09 2.608-1.962 3.984.181zm1.23 5.706V9.346H8.64v2.534h-.937s-.3-.044-.356-.285V9.33l-.925.015v2.518s.042.627.925.855h2.277zm-3.685.013V7.951l-.896-.014v1.295H3.987s-1.054.086-1.422 1.28c-.129.798.114 1.266.156 1.368.043.099.383.682 1.238.852h1.978zm-2.433-1.45c-.087-.286.013-.613.057-.741.042-.128.228-.427.61-.54h.855v1.948h-.797s-.555-.029-.725-.668zm6.877-8.775c-.143.909-.865 2.108-1.99 1.962-1.121-.144-1.375-1.16-1.267-2.179C7.214 1.458 8.21.18 9.007.364c.796.18 1.52 1.235 1.374 2.143zm-4.09-.345c0 1.197-.68 2.164-1.52 2.164S3.25 3.36 3.25 2.162C3.25.967 3.932 0 4.77 0c.842 0 1.52.967 1.52 2.162zm4.854 2.09c1.34 0 1.701 1.309 1.701 1.743 0 .438.182 2.29-1.485 2.326-1.667.037-1.737-1.126-1.737-1.96 0-.874.179-2.11 1.52-2.11zm-7.93.581c.045.398.253 2.217-1.27 2.544C.427 7.704-.14 5.947.028 5.124c0 0 .18-1.78 1.412-1.89.98-.085 1.7.986 1.774 1.6z" fill="#999" fill-rule="evenodd"></path></svg><em>百度提供站内搜索</em></a>&nbsp;<a href="http://www.miibeian.gov/publish/query/indexFirst.action" target="_blank" class="ml14">京ICP备19004658号</a></p>            <p class="fz12_baidu">©1999-2019 北京创新乐知网络技术有限公司 </p>            </div>        </div>        <div class="allow-info-box">        <p><a href="https://csdnimg/cdn/content-toolbar/csdn-ICP.png" target="_blank">经营性网站备案信息</a>        <em class="width126"><a href="http://www.cyberpolice/" target="_blank"><span>网络110报警服务</span></a></em></p>        <p><a href="http://www.bjjubao/" target="_blank"><span>北京互联网违法和不良信息举报中心</span></a></p>        <p><a href="http://www.12377/" target="_blank"><span>中国互联网举报中心</span></a><a href="https://download.csdn/index.php/tutelage/" target="_blank"><span style="margin-left:8px">家长监护</span></a><a href="https://blog.csdn/blogdevteam/article/details/90369522" target="_blank"><span style="margin-left:8px">版权申诉</span></a></p>        </div>        </div></div>
    	</div>
    </div>
    

    本文标签: 命令 工程师 大全 java Linux