远程登录客户端

  1. putty(小巧方便、免费)
  2. xshell(功能强大、付费)
  3. secureCRT(功能强大、付费)
  4. finalshell(多终端支持,免费, 支持win远程桌面)

xshell

secureCRT

finalShell

目录说明以及管理

文件基本属性与基本的操作

常用的命令

#查看文件列表
lsll#进入目录
cd#显示当前所在的目录的位置
pwd#列出N条历史命令
history [n]#执行上一条命令
!!#执行模糊匹配到的历史命令
!keyword#命令补全、文件补全
tab#中断正在进行
ctrl+c#查看时间
date#查看命令手册
man command#清除屏幕
ctrl+l
或者
clear 

文件操作

#拷贝文件
cp#删除文件
rm#移动文件
mv#创建文件夹
mkdir#创建一个空文件夹或者修改时间
touch#查看文件内容:
cat  more  less  tail  head
例子:less text.log#编辑文件:
vi/vim#修改文件权限相关:
chown chogrp chmod
例子:chown -R test:test /opt
chmod +x xxx.sh#查找文件
locate keyword
find . -name keyword
find . -size +/-500M
find . -type fdbcs[文件,目录,块文件,字符文件,socket文件]#查找文件内容
grep keyword#显示磁盘分区上可以使用的磁盘空间
df [-h]#显示每个文件和目录的磁盘使用空间
du [-h] file

文件编辑

三种模式:

一般模式(进入vi的默认模式,可以复制、删除、粘贴、不能输入)

编辑模式(在一般模式下输入i,I,a,A,o,O,R,r)

命令行模式(输入:或者/或者?任何一种进入)

ESC:回到一般模式

在一般模式下输入 :set  number可以显示行号

移动光标 j k  h  l  下上左右(数字+命令)   ctrl+f(page down)

ctrl+b(page up)   o(行首)

¥(行尾)     gg(文件第一行)    nG(文件第n行)     G (文件最后一行)

查找、替换/向下查找?   向上查找  n

重复前一个查找动作  N  ;   反向进行前一个查找动作  :n1,n2s/word1/woed2g(n1行到n2行内替换):1,$s/word1/word2/g (第一行到最后一行内替换):1,$s/word1/word2/gc(第一行到最后一行内替换+确认机制)

复制、删除、粘贴x/X  向后/前删除一个字符

dd删除光标所在的行

ndd向下删除n行  d1G删除从光标到第一行

dG删除从光标到最后一行

d$删除光标到行尾

d0删除光标到行首

u撤销    ctrl+r重做

将d换成y就是复制

p/P粘贴

压缩与解压

1.压缩/解压tar.gz文件

压缩:tar -zcvf  文件名.tar.gz  要压缩的文件路径或者文件名

解压:tar -zxvf 文件名.tar.gz  -C  目的

查看压缩文件中的文件而不解压:tar -tvf  文件名.tar.gz

解释:z代表gzip格式,也就是后缀名gz所代表的文件

c代表create创建压缩文件

x代表extract提取文件,也就是压缩的意思

v代表verbose显示文件的详情信息

f代表file文件,所以f参数一定要放在最后面

t代表list,显示文件中的文件而不解压

-C指定解压文件到xx目录

网络管理

网卡配置

网卡信息位于/etc/sysconfig/network-scripts,一般名称为icfg-eth0,如果有多张网卡,

一般为ifcfg-eth1,ifcfg-eth2,....

cd /etc/sysconfig/network-scripts/

vim  iifcfg-eth0

关注点为带注释的地方,一般也只需要配置这些地方

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
# 静态ip
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
UUID=f7c70419-fbb0-4005-9ff7-59c5b541a2ea
DEVICE=eth0
# 开机启动
ONBOOT=yes
# ip
IPADDR=172.24.108.223
# 网关
GATEWAY=172.24.108.1
# 子网掩码
NETMASK=255.255.255.0
# dns
DNS1=61.139.2.69

最后重启网络

#重启网络服务
systemctl restart network#查看网卡信息
ip addr

端口放行

最简单快捷的方式,是关闭防火墙

#关闭防火墙服务
systemctl stop fireword#禁用防火墙服务
systemctl disable fireword

但此方法过于简单粗暴, 有安全风险,不建议使用.

安全的做法是根据需要自定义开放,关闭端口

使用firewall  -cmd命令

#开放5672端口,--permanent  代表永久有效
firewall-cmd  --zone=public --add-port=5672/tcp --permanent#关闭5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent#配置立即生效
firewall-cmd --reload#查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

软件包管理

yum

Usage: yum [options] COMMANDList of Commands:check          检查 RPM 数据库问题
check-update   检查是否有可用的软件包更新
clean          删除缓存数据
deplist        列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade      降级软件包
erase          从系统中移除一个或多个软件包
fs             Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot     Creates filesystem snapshots, or lists/deletes current snapshots.
groups         显示或使用、组信息
help           显示用法提示
history        显示或使用事务历史
info           显示关于软件包或组的详细信息
install        向系统中安装一个或多个软件包
langavailable  Check available languages
langinfo       List languages information
langinstall    Install appropriate language packs for a language
langlist       List installed languages
langremove     Remove installed language packs for a language
list           列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache      创建元数据缓存
provides       查找提供指定内容的软件包
reinstall      覆盖安装软件包
repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串
shell          运行交互式的 yum shell
swap           Simple way to swap packages, instead of using shell
update         更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo     Acts on repository update information
upgrade        更新软件包同时考虑软件包取代关系
version        显示机器和/或可用的源版本。Options:-h, --help            显示此帮助消息并退出-t, --tolerant        忽略错误-C, --cacheonly       完全从系统缓存运行,不升级缓存-c [config file], --config=[config file]配置文件路径-R [minutes], --randomwait=[minutes]命令最长等待时间-d [debug level], --debuglevel=[debug level]调试输出级别--showduplicates      在 list/search 命令下,显示源里重复的条目-e [error level], --errorlevel=[error level]错误输出级别--rpmverbosity=[debug level name]RPM 调试输出级别-q, --quiet           静默执行-v, --verbose         详尽的操作过程-y, --assumeyes       回答全部问题为是--assumeno            回答全部问题为否--version             显示 Yum 版本然后退出--installroot=[path]  设置安装根目录--enablerepo=[repo]   启用一个或多个软件源(支持通配符)--disablerepo=[repo]  禁用一个或多个软件源(支持通配符)-x [package], --exclude=[package]采用全名或通配符排除软件包--disableexcludes=[repo]禁止从主配置,从源或者从任何位置排除--disableincludes=[repo]disable includepkgs for a repo or for everything--obsoletes           更新时处理软件包取代关系--noplugins           禁用 Yum 插件--nogpgcheck          禁用 GPG 签名检查--disableplugin=[plugin]禁用指定名称的插件--enableplugin=[plugin]启用指定名称的插件--skip-broken         忽略存在依赖关系问题的软件包--color=COLOR         配置是否使用颜色--releasever=RELEASEVER在 yum 配置和 repo 文件里设置 $releasever 的值--downloadonly        仅下载而不更新--downloaddir=DLDIR   指定一个其他文件夹用于保存软件包--setopt=SETOPTS      设置任意配置和源选项--bugfix              Include bugfix relevant packages, in updates--security            Include security relevant packages, in updates--advisory=ADVS, --advisories=ADVSInclude packages needed to fix the given advisory, inupdates--bzs=BZS             Include packages needed to fix the given BZ, inupdates--cves=CVES           Include packages needed to fix the given CVE, inupdates--sec-severity=SEVS, --secseverity=SEVSInclude security relevant packages matching theseverity, in updates

常用命令:

#列出所有可更新的软件清单命令:
yum check-update#更新所有软件的命令:
yum update#仅安装指定的软件命令:
yum install <package_name>#仅更新指定的软件命令
yum update <package_name>#列出所有可安装的软件清单命令:
yum list#删除软件包的命令
yum remove <package_name>#查找软件包的命令
yum search <keyword>

rpm语法

rpm [-acdhilqRsv][-b<完成阶段><套间档>+][-e<套件挡>][-f<文件>+][-i<套件档>][-p<套件档>+][-U<套件档>][-vv][--addsign<套件档>+][--allfiles][--allmatches][--badreloc][--buildroot<根目录>][--changelog][--checksig<套件档>+][--clean][--dbpath<数据库目录>][--dump][--excludedocs][--excludepath<排除目录>][--force][--ftpproxy<主机名称或IP地址>][--ftpport<通信端口>][--help][--httpproxy<主机名称或IP地址>][--httpport<通信端口>][--ignorearch][--ignoreos][--ignoresize][--includedocs][--initdb][justdb][--nobulid][--nodeps][--nofiles][--nogpg][--nomd5][--nopgp][--noorder][--noscripts][--notriggers][--oldpackage][--percent][--pipe<执行指令>][--prefix<目的目录>][--provides][--queryformat<档头格式>][--querytags][--rcfile<配置档>][--rebulid<套件档>][--rebuliddb][--recompile<套件档>][--relocate<原目录>=<新目录>][--replacefiles][--replacepkgs][--requires][--resign<套件档>+][--rmsource][--rmsource<文件>][--root<根目录>][--scripts][--setperms][--setugids][--short-circuit][--sign][--target=<安装平台>+][--test][--timecheck<检查秒数>][--triggeredby<套件档>][--triggers][--verify][--version][--whatprovides<功能特性>][--whatrequires<功能特性>]

rpm -qa | frep package

#安装列表
rpm -qa | grep package#安装
rpm -ivh package#忽略报错,强制安装
rpm --force -ivh package#忽略报错,强制安装,不检查依赖
rpm --force -ivh package --nodeps#卸载,不检查依赖
rpm -e --nodeps package

第六节:环境变量

1.临时变量

仅针对当前终端有效

PATH=$PATH:URL=www.sina.com

1.用户变量

# 编辑bash_profile
vim ~/.bash_profile

在最后添加

export URL2=www.qq.com
export PATH=URL2:PATH

# 使其生效
source ~/.bash_profile

验证

3.全局变量

vim /etc/profiles

添加过程和用户变量设置一致

注意:当PATH修改有误的时候,可能造成很多命令不可用,紧急修复,在终端中输入

export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

然后将PATH中修改地方还原

进程与资源管理

远程复制

scp语法

usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file][-l limit] [-o ssh_option] [-P port] [-S program][[user@]host1:]file1 ... [[user@]host2:]file2

示例:

#拷贝本机/home/adminstrator/test  整个目录至远程主机192..168.1.100:/root/
scp -r /home/adminstrator/test/ root@192.168.1.100:/root/#拷贝单个文件至远程主机
scp /home/adminstrator/Desktop/old/driver/test/test.txt root@192.168.1.100:/root/#远程文件/文件夹的下载
scp -r root@192.168.62.10:/root/ /home/adminstrator/Desktop/new/

查看端口

语法:netstat -anp | grep port

usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}netstat [-vWnNcaeol] [<Socket> ...]netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]-r, --route              display routing table-I, --interfaces=<Iface> display interface table for <Iface>-i, --interfaces         display interface table-g, --groups             display multicast group memberships-s, --statistics         display networking statistics (like SNMP)-M, --masquerade         display masqueraded connections-v, --verbose            be verbose-W, --wide               don't truncate IP addresses-n, --numeric            don't resolve names--numeric-hosts          don't resolve host names--numeric-ports          don't resolve port names--numeric-users          don't resolve user names-N, --symbolic           resolve hardware names-e, --extend             display other/more information-p, --programs           display PID/Program name for sockets-o, --timers             display timers-c, --continuous         continuous listing-l, --listening          display listening server sockets-a, --all                display all sockets (default: connected)-F, --fib                display Forwarding Information Base (default)-C, --cache              display routing cache instead of FIB-Z, --context            display SELinux security context for sockets

示例:

#查看8080端口是否被占用
netstat -anp | grep 8080

查看进程

ps -ef ps aux

字段含义如下: UID PID PPID C STIME TTY TIME CMD zzw 14124 13991 0 00:38 pts/0 00:00:00 grep

UID :程序被该 UID 所拥有

PID :就是这个程序的 ID 29826

PPID :则是其上级父程序的ID

C :CPU使用的资源百分比

STIME :应用启动时间

TTY :登入者的终端机位置

TIME :使用掉的CPU时间

CMD :所下达的是什么指令

关闭进程

kill -signal PID 例子:

kill -9 PID号

常用signal1启动被终止的进程,类似重新启动9强制中断一个进程的运行15以正常的结束进程来终止该进程

内存资源

free -b/k/m/g bkmg指的是查看单位

total系统总的可用物理内存大小

used已经被使用的物理内存的大小

free还有多少物理内存可用

shared 被共享使用的物理内存的大小

cache 使用的物理内存的大小

available 还可以被应用程序使用的内存大小

其中有两个概念需要注意:

free与available的区别:

free是真正尚未被使用的物理内存数量

available是应用程序认为可用内存数量

CPU的资源

top

free

关注点:系统负载(<1)  任务运行状态(僵尸状态) 总体CPU占用率(%wa指I/Owait)

总体内存占用率  单个线程CPU,

内存占用率

排序 默认按CPU占用率 按内存占用排序:M 恢复CPU排序:P

管道

|   每个管道后面必须接命令,且该命令必须要能接收到standard input才行  例如:less

more   head   tail  grep   cut  sort   wc   uniq等的   反例:ls    cp   mv就不能接在管道的后面,

例如:ps -ef | less -N

系统管理

开机启动项

chkconfig

用法:chkconfig [--list] [--type <type>] [name]chkconfig --add <name>chkconfig --del <name>chkconfig --override <name>chkconfig [--level <levels>] [--type <type>] <name> <on|off|reset|resetpriorities>

案例:

vim /etc/init.d/test
#!/bin/bash
# chkconfig: 3 88 88
echo $(date) >> /opt/test.txt
#添加执行权限
chmod +x /etc/init.d/test#添加到chkconfig
chkconfig --add test#开启开机自启动
chkconfig test on#查看
chkconfig --list test#关闭开机启动
chkconfig test off#删除
chkconfig --del test

定时任务

crontab语法:

Usage:crontab [options] filecrontab [options]crontab -n [hostname]Options:-u <user>  define user-e         edit user's crontab-l         list user's crontab-r         delete user's crontab-i         prompt before deleting-n <host>  set host in cluster to run users' crontabs-c         get host in cluster to run users' crontabs-s         selinux context-x <mask>  enable debugging

格式

minute   hour  day  month  week  command

#编辑
crontab -e#列出全部定时任务
crontab -l#重新加载,使其生效
crond reload

案例:

#每分钟将时间输出到test.log中
* * * * * echo $(date) >> /opt/test.log

时间校准

Linux中有个ntp包可以自动校准时间

#安装
yum install ntp#校准命令
ntpdate cn.pool.ntp.org

shell编程

案例

./start.sh p1 p2

一般第一个参数是脚本本身, 参数从第二个开始,从编程的角度来说,也就是下标为1, 即$1

判断

if ,结束反写if ,即就是fi

示例:

#判断参数1是否传入
if [ -z "$1" ]; thenecho "please input params"
fi#判断pid是否为空
if [ "$pid" = "" ];thenecho 进程不存在
fi

获取命令执行的结果

语法$(command)

示例:

# 查询tomcat进程的pid,将结果赋值给pid
pid=$(ps -ef|grep tomcat|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')

数组定义

语法(e1 e2 ...),用() 括起来,元素之间用空格分开

示例:

BUSINESS_SERVICES=(ascii-mp-action-record ascii-mp-application ascii-mp-auth ascii-mp-constant ascii-mp-statistics ascii-mp-workstation ascii-cs-configcenter)

for循环

语法 for vailable in array; do...done

示例:

for service_name in ${BUSSINESS_SERVICES[@]};dostart $service_namesleep 30
done

函数的定义与调用

function name(){...}

#定义
function test(){echo "test function"
}#调用
test

参考

#!/bin/bashJAVA_BASE_DIR=$JAVA_HOMEBASE_DIR=/opt/appPROFILE=productionBASE_SERVICES=(ascii-eureka sae-config-center-data sae-config-center-admin sae-config-center-web ascii-server-admin ascii-oauth2 ascii-zuul ascii-user-center ascii-client-management)BUSINESS_SERVICES=(ascii-mp-action-record ascii-mp-application ascii-mp-auth ascii-mp-constant ascii-mp-statistics ascii-mp-workstation ascii-cs-configcenter)if [ -z "$1" ]; thenPROFILE=$1
fifunction start(){if [ ! -d "$BASE_DIR/$1" ]; thenecho $BASE_DIR/$1不存在fiif [ -d "$BASE_DIR/$1" ]; thenecho 启动$1cd $BASE_DIR/$1sh start.sh $JAVA_BASE_DIR $PROFILEfi
}function stop(){if [ ! -d "$BASE_DIR/$1" ]; thenecho $BASE_DIR/$1不存在fiif [ -d "$BASE_DIR/$1" ]; thenecho 停止$1cd $BASE_DIR/$1sh stop.shfi}function startAll(){echo 启动基础服务...echo 启动rediscd $BASE_DIR/redis/linuxsh start.shsleep 10cd $BASE_DIRfor service_name in ${BASE_SERVICES[@]}; dostart $service_namesleep 30doneecho 基础服务启动完成...echo 启动业务服务...for service_name in ${BUSINESS_SERVICES[@]}; dostart $service_namesleep 30doneps -ef | grep javaecho 业务服务启动完成...}function stopAll(){echo 停止业务服务...for service_name in ${BUSINESS_SERVICES[@]}; dostop $service_namedone    echo 业务服务停止完成...echo 停止基础服务...for service_name in ${BASE_SERVICES[@]}; dostop $service_namedonecd $BASE_DIR/redis/linuxsh stop.shecho 基础服务停止完成...}function restartAll(){stopAllstartAll
}function restart(){stop $1start $1
}if [ -z "$1" ]; thenecho 'please excute ./ascii.sh start appname profile|start all profile|stop appname|stop all|restart appname profile|restart all profile'
elseif [ -n "$3" ]; thenPROFILE=$3fiif [ "$1" = start ]; thenif [ "$2" = all ]; thenstartAllelif [ "$2" = redis ]; thencd $BASE_DIR/redis/linuxsh start.shcd $BASE_DIRelif [ -z "$2" ]; thenecho 'please excute ./ascii.sh start appname profile|all profile'else start $2ps -ef | grep javafielif [ "$1" = stop ]; thenif [ "$2" = all ]; thenstopAllelif [ "$2" = redis ]; thencd $BASE_DIR/redis/linuxsh stop.shcd $BASE_DIRelif [ -z "$2" ]; thenecho 'please excute ./ascii.sh stop appname|all'else stop $2fielif [ "$1" = restart ]; thenif [ "$2" = all ]; thenrestartAllelif [ "$2" = redis ]; thencd $BASE_DIR/redis/linuxsh stop.shsh start.shcd $BASE_DIRelif [ -z "$2" ]; thenecho 'please excute ./ascii.sh restart appname profile|all profile'else restart $2fielse echo 'please excute ./ascii.sh start appname|start all|stop appname|stop all|restart appname|restart all'fi
fi

资料推荐

书: linux 101 鸟哥的linux私房菜

网站: 菜鸟:Linux 教程 | 菜鸟教程

尚硅谷 尚硅谷Linux运维视频,粉丝众多,人手一套尚硅谷教程

Linux基础内容介绍相关推荐

  1. 生动的SDN基础内容介绍(六)--SDN应用平面和网络测量

    生动的SDN基础内容介绍(六)--SDN应用平面和网络测量 背景 网络测量 网络测量的定义 网络测量的对象 网络状态参数 网络性能参数 网络流量参数 Heavy Hitter和Hierarchical ...

  2. folium基础内容介绍

    folium基础内容介绍 1. 简介 ​ folium是js上著名的地理信息可视化库leafet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leafle ...

  3. 生动的SDN基础内容介绍(三)--Ryu控制器

    生动的SDN基础内容介绍(三)--Ryu控制器 控制器 Ryu的目录 Ryu的学习 simple_switch_13.py simple_switch_rest_13.py 交换机信息及流表项的查询 ...

  4. 生动的SDN基础内容介绍(五)--SDN北向协议/接口和意图驱动

    生动的SDN基础内容介绍(五)--SDN北向协议/接口和意图驱动 背景 北向协议 REST API REST API在Ryu中的实现 意图驱动 总结 背景 经过前几章的讲解,现在回过头来再看看SDN的 ...

  5. 生动的SDN基础内容介绍(二)--OpenFlow协议

    生动的SDN基础内容介绍(二)--OpenFlow协议 背景 OpenFlow OpenFlow的基础概念 流表项 流表 漏表 流表项的下发 流表项的删除 计量表 组表 控制器与交换机的通信 总结 背 ...

  6. linux查找目录下含有xx的文件,linux基础命令介绍三:文件搜索及其它

    1.linux中包含大量的文件,对于文件查找,linux提供了find命令. find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录: find [path...] [e ...

  7. linux vim编辑文本是 m,linux基础命令介绍四:文本编辑 vim

    本文介绍vim(版本7.4)的一般用法 vim是功能强大的文本编辑器,是vi的增强版. vim [options] [file ..] 使用vim编辑一个文件的最常用命令就是: vim file 其中 ...

  8. Linux基础命令介绍四:文本编辑vim

    本文介绍vim(版本7.4)的一般用法. vim是功能强大的文本编辑器,是vi的增强版. vim [options] [file ..] 使用vim编辑一个文件的最常用命令就是: vim file 其 ...

  9. linux基础内容,掌握这些基本可以流畅的使用linux系统

    linux初识 cd /opt 进入opt目录 tar -zxvf xx.tar.gz 解压 ./xx-install.pl 安装 pwd 显示当前用户在哪个目录 linux中,隐藏文件是以.开头的 ...

  10. Linux(基础内容学习)

    Linux(基础篇内容) vmtools:windows和centos共享文件夹 在Linux世界里,一切皆为文件 查看linux地址: ifconfig (inet) reboot 重启 vi文本编 ...

最新文章

  1. Oracle-分区表解读
  2. 升级造成eclipse插件失效
  3. win7 安装好redis 如何安装扩展
  4. 【算法设计与分析】08 序列求和的方法
  5. 洛谷P2480 [SDOI2010]古代猪文(卢卡斯定理+中国剩余定理)
  6. (pytorch-深度学习系列)pytorch实现多层感知机(自动定义模型)对Fashion-MNIST数据集进行分类-学习笔记
  7. linux运行powershell,linux – 是否可以编写一个在bash / shell和PowerShell中运行的脚本?...
  8. Iphone4信号,苹果象个被惯坏的孩子
  9. LeetCode 504. Base 7 (C++)
  10. SCOM 2012知识分享-17:创建并管理组
  11. Q91:真实地模拟透明材质(Realistic Transparency)(4)——Fish Bowl
  12. 使用adb命令安装apk
  13. 简单!Python+OpenCV三步去除水印
  14. 语音领域视频课程及书籍(不定期更新)
  15. 用qpython3写一个发送短信的程序
  16. 屌丝网,上线了 哈哈,
  17. 2021-2027全球与中国雌二醇(CAS 50-28-2)市场现状及未来发展趋势
  18. 字节跳动一道Python面试题
  19. ES启动异常:the default discovery settings are unsuitable for production use; at least...
  20. 【SWT】创建自己的SWT组件

热门文章

  1. Jzoj4699 Password
  2. Supermicro 1024US-TRT 服务器评测:1U 机箱中的 128 个内核
  3. 线上jvm 内存飙高排查
  4. 计算机程序设计c++ 10-2:析构函数
  5. SpringCloud基础学习
  6. 从亏损19亿到盈利6亿,恺英网络做对了什么?
  7. 笔记本电脑触摸板的使用
  8. 魔兽世界美服部落人数最多服务器,美服魔兽世界人口普查
  9. 如何在电脑上装一个虚拟机
  10. 林利军2018年致投资人的信:这是一个极致者胜的时代