好啦,步入正题,我使用的linux链接工具为xshell,mRemoteNG,对两款工具不作介绍啦,你能够百度一下,实在不会入左上方群。css
进入以后,即是上面的界面黑乎乎一片,对于初学者也多是一片懵逼,犹如狗拿刺猬,那么不要急,咱们先来看下人生中的第一个linux命令:ls 与 cd 。html
首先你先使用下面的cd命令:node
[root@localhost ~]# 这个是当前用户的用户文件夹主目录
[root@localhost /]# 这个是整个系统的根目录linux
紧接着输入ls命令展现出一下结果。nginx
那么这些文件都装载啦什么东东,为何要放在根目录下,接下来咱们对此作个详解。c++
ls,cd命令的语法与参数使用方法:http://man.linuxde.net ,不能偷懒哦,要敲敲, 你才能学好,多敲才能记住的。web
在linux中,任何设备都是文件,就连数据通讯接口也有专门的文件负责。因此咱们要搞清楚linux下的文件有哪些?哪些做用?redis
首先咱们这样输入命令,以下:算法
乱七八糟的都是什么呢?我拿dev这个文件夹作为示例分解下:shell
一、文件类型
普通文件:就是咱们通常的文件,他在linux中按照文件内容大体分文3种。
块(block)设备文件:为一些存储数据,以体统随机访问的接口设备,如硬盘,软盘等,能够随机的在硬盘的不一样块读写,能够看看/dev/sda
字符(character)设备文件:一些串行端口的接口设备,如键盘、鼠标等。这些设备的特征就是“一次性读取”的,不可以截断输出。例如:鼠标只能滑动到一个地方而不能跳到另一个地方。
套字节(sockets):这种文件类型用于在网络上的数据链接。
管道(FIFO,pipe):fifo,first-in-first-out,主要解决多个程序同事访问一个文件所形成的错误问题。
目录(directory):就是目录。
链接文件(link):相似windows系统中的快捷键。
二、文件权限r-xr-xr-x
三、链接数:表示有多少文件名链接到此节点。
四、文件名
文件长度限制,通常不要超过255个字符就好。
当你打开linux系统以后,输入命令:cd \ 进入根目录以后,再ls会显示出以下目录结构
那么这些目录都有存放些什么文件,咱们的文件又该以何种规范来存放呢?
Linux目录结构标准:FHS(Filesystem Hierarchy Standard)标准
为何要使用一个标准呢?很简单,就是让用户和厂商有个共同的认识与约束,不至于各自为政,把linux系统的目录搞的乱七八糟,东西随便放,那咱们的学习成本就很大啦。
关于FHS网上有不少介绍,FHS根据多去的经验也一直在持续改版(http://www.pathname.com/fhs/),FHS根据文件系统使用的频繁状况,是否容许用户随意改动,将目录定义成4种交互做用的形态,以下:
根目录与根目录下的文件夹存放说明
根目录是整个系统最重要的一个目录,由于全部的目录都是由它衍生出来,并且根目录也与开机,还原,系统修复等操做有关。
因为系统开机须要特定的开机软件、内核文件、开机所须要的程序、函数库等文件数据,若系统出现异常时,根目录也要有可以修复文件系统的程序。因而可知根目录的重要性,因此FHS建议,根目录不要放在很是大的分区内,由于越大防止的文件越多,出错的概率也越大,性能也越很差,因此,根目录应该越小越好,且应用程序所安装的软件最好不要与根目录放在一个分区内。
由此咱们来讲说下面的文件都是什么,又怎么放置才好。
其实,FHS标准对根目录的定义仅有以下的目录数据。
其中有5个目录不可与根目录分开放在不一样的分区。这5个目录分别为:etc,bin,dev,lib,sbin。
那么除啦以上的文件夹以外,还有一些linux系统中也很是重要的目录以下:
/dev目录:
/etc目录
/proc目录
/usr目录
依据FHS的基本定义/usr里面放置的数据属于可分享不可变更的。usr是UNIX Software Resource的缩写,也就是“UNIX操做系统软件资源”所放置的目录,而不是用户数据,不要跟user扯上关系。它至关于windows系统中的c:\windows与c:program files这两个目录的综合体。刚装完系统时,这个目录占用的硬盘容量最多。由于几乎全部的应用程序都安装在这里,本地安装的程序和其余东西放在/usr/local下。
/var目录
usr是安装时占用大量的硬盘容量,而var则是在系统运行后才会慢慢占用硬盘的容量。由于var目录主要针对常态性变更的文件,好比,缓存,登陆文件,以及某些软件运行所产生的文件,包括程序文件(lock file,run file)。
LIUNX系统的目录树,以下:
压缩:是一种经过特定的算法来减少计算机文件大小的机制(百度百科下)。
打包:将多个文件放入一个文件中,最终以一个文件的形式存在。
Linux系统中常见的压缩命令有三种:compress , gzip , bzip2 。
gzip的经常使用用法:
语法:gzip 参数 文件名
参数:
-c:将压缩的数据输出到屏幕上,可经过数据重定向来处理。
-d:解压的参数
-t:能够用来检验一个压缩文件的一致性,看看文件是否有错误。
-v:能够显示出源文件/压缩文件的压缩比信息。
-#:压缩等级,1-9。
经常使用的语句:压缩:gzip -v filename ,解压:gzip -d filename 。 查看文本压缩文件:zcat 文件名。
bzip2的经常使用用法:
语法:bzip2 参数 文件名
参数:
-c:将压缩过程当中产生的数据输出到屏幕上
-d:解压缩
-k:保留源文件,而不会删除原始文件
-z:压缩
-v:显示出源文件/压缩文件的压缩比等信息。
-#:与gzip相同,1-9压缩比的参数,1最快,9最佳。
经常使用的语句:压缩:bzip2 -z filename ,解压:bzip2 -d filename 。查看压缩文本:bzcat filename.bz2
tar打包命令
以上三种压缩解压只能针对单文件执行,那么若是将多个文件合并到一个大文件中,怎么作到呢?那就要用tar这个命令。tar不止这么多,它还支持gzip/bzip2在打包的同时对文件进行压缩。因为这tar使用过于普遍,就连windows中的WinRAR也支持.tar.gz文件名的解压缩。
语法:打包与压缩:tar [-j|-z] [cv] [-f 新建的文件名] filename 解压缩: tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录]
参数:
-c:新建打包文件,可搭配-v来查看过程当中被打包的文件名
-t:查看打包文件的内容含有那些文件名,重点在查看文件
-x:解压缩或解打包的功能,可搭配-C在特定目录解开。特别留意的是,-c,-t,-x不可同时出如今一串命令中。
-j:经过bzip2的支持进行压缩或解压。
-z:经过gzip的支持进行压缩或解压。
-v:在压缩或解压的过程当中,将正在处理的文件名称显示出来。
-f filename:-f后面要接被处理的文件名。建议-f单独写一个参数。
-C 目录:这个参数在解压时,若要在特定目录解压缩,可使用这个参数。
.tar.bz2 格式经常使用的语法
解压: tar jxvf filename.tar.bz2 , 压缩: tar jcvf filename.tar.bz2 要压缩的文件
.tar.gz 格式经常使用的语法
解压:tar zxvf filename.tar.gz ,压缩: tar zcvf filename.tar.gz 要压缩的文件
上一篇咱们了解啦Linux系统中,根目录下的各个文件夹是作什么用的啦,也学会文件如何压缩打包。那么接下来咱们就该用到这个系统啦。用这个系统,就是用这个系统的软件,那么咱们对咱们须要的软件如何安装,对不须要的软件如何卸载,本篇就此作个详解。
咱们针对的系统为Centos,那么Centos的主要软件管理有3种,源码与tarball,rpm与srpm,yum。
我会在讲解每一种安装方式的同时,写一个咱们开发经常使用到的软件实例的安装,源码安装redis,rpm安装rabbitmq,yum安装nginx。
在安装以前咱们先说几个名词,对于开发人员来讲应该是一目了然的。
开放源码:就是用编程语言写的程序代码,人懂机器不懂,没法在系统中执行。
编译程序:将程序代码转译成为机器看得懂的语言。
gcc:Liunx系统中最多见的语言为c语言,而c语言在linux上面最标准的编译程序就是gcc。它是由GNU计划所维护。对GNU有兴趣的话你们能够网上搜下资料。
利用gcc编译器进行程序的编译流程示意图:
可执行文件:通过编译程序变成二进制程序后机器可以看得懂因此称为可执行的文件。
函数库:相似子程序的角色,能够被调用来执行的一段功能函数。又分为动态函数库与静态函数库,动态函数库以so结尾,一般被命名为libxxx.so,编译时程序中只保存起指向地址,不合并到主程序中,因此主程序不能独立运行,需包含动态库,且动态库不可随意修改路径。静态函数库以.a结尾,一般被命名为libxxx.a,编译时会将其功能合并至主程序中,运行是不须要静态库的支持。
程序执行时引用外部动态函数库的示意图以下:
Tarball:这个更容易理解啦,就是为啦方面在网络上下载,软件开发者把源码打包压缩后,放到网上发布的软件文件。通常包含,源代码文件,检测程序文件(多是configure或config等文件名),本软件的简易说明与安装说明(install或readme)。
Tarball方式安装Redis实例演练
基本步骤:
一、下载源文件至/usr/local/src目录下解压缩。
二、取得步骤流程:进入新建的目录下面,去查阅install与readme等相关文件内容。
三、相关属性软件安装:根据install与readme的内容查看并安装好一些相关的软件
四、创建makefile:以自动检测程序(configure或config)检测操做环境,并创建makefile这个文件
五、编译:以make这个程序并使用该目录下的makefile做为他的参数配置文件,进行make(编译)操做
安装:以make这个程序,并以makefile这个参数配置文件,依据install这个目标的指定来安装到正确的路径。
经常使用命令:
./configure:这个步骤就是在建立 Makefile 这个文件啰!一般程序开发者会写一支 scripts 来检查你的 Linux 系统、相关的软件属性等等,这个步骤至关的重要, 由于将来你的安装信息都是这一步骤内完成的!另外,这个步骤的相关信息应该要参考一下该目录下的 README 或 INSTALL 相关的文件!
make clean:make 会读取 Makefile 中关于 clean 的工做。这个步骤不必定会有,可是但愿执行一下,由于他能够去除目标文件!由于谁也不肯定源代码里面到底有没有包含上次编译过的目标文件 (*.o) 存在,因此固然仍是清除一下比较稳当的。 至少等一下新编译出来的可执行文件咱们能够肯定是使用本身的机器所编译完成的嘛!
make:make 会依据 Makefile 当中的默认工做进行编译的行为!编译的工做主要是进行 gcc 来将源代码编译成为能够被执行的 object files ,可是这些 object files 一般还须要一些函数库之类的 link 后,才能产生一个完整的可执行文件!使用 make 就是要将源代码编译成为能够被执行的可可执行文件,而这个可可执行文件会放置在目前所在的目录之下, 还没有被安装到预约安装的目录中;
make install:一般这就是最后的安装步骤了,make 会依据 Makefile 这个文件里面关于 install 的项目,将上一个步骤所编译完成的数据给他安装到预约的目录中,就完成安装啦!
经过configure与make进行编译的示意图以下:
Redis实例安装:
下载:
解压:
编译:
设置配置参数:
启动:
验证使用redis:
总结下:其实在安装某些软件时,可能没有那么繁琐,就好比redis官方也有安装示例,你们看看就会啦,安装的方式有不少种,没必要过于居于模式,可是必定要看官方的文档,不能胡乱一块儿瞎搞。
RPM全名是“RedHat Package Manager”,是RedHat公司发展出来的以一种数据库记录的方式来将你所须要的软件安装到linux系统的一套管理机制。
那么什么叫一种数据库记录的方式呢?就是开发发布者将软件编译过以后,打包成rpm基础的包文件,包中的软件都有头文件,头文件中记录这个软件须要依赖的软件,所需的服务器配置,及自身版本的一些信息,当咱们安装这个软件时,rpm会根据这个头文件与liunx主机中的安装软件的记录信息作匹配,而后反馈环境是否知足,是否已存在,等等信息。
那么编译事后的软件,直接安装有什么优缺点呢?优势不用编译可快速安装,缺点:咱们安装的主机环境必需要跟开发发布者编译时的环境一致。
那么什么叫作依赖的软件呢?很简单就想你安装MSSQL须要.NetFramwork同样,安装rabbitmq须要安装erlang环境同样。他们安装时都有依赖的软件或平台。
那么rpm与srpm的区别是什么呢?一张图搞定,以下:
rpm的包是什么样子呢?
首先先挂载cdrom到media下
查看rpm什么样子
看看有多少自带的Rpm包
哇自带3725个,基本够你用的啦。若是处理一些依赖软件或者自带的不能知足你的话,除啦软件官网下载以外,哥哥推荐三个网站:
http://www.rpmseek.com/index.html
Rpm命名规则
操做硬件平台:
Rpm安装语法:
[root@localhost ~]# rpm -ivh package_name
选项与参数:
-i :install 的意思
-v :察看更细部的安装信息画面
-h :以安装信息列显示安装进度
通常状况下这一句命令,配上系统自带的rpm包与上面三个网站中的包就足够啦,若是不能解决你的问题的话,那要查看软件官方提供的安装文档。
若是你对软件足够的熟悉那么也能够采用下面的参数进行安装。
Rpm的升级与更新
Rpm的查询
Rpm验证与数码签章
上面查询是否被改动过中有......T. 这是什么意思呢?
若是一个文件都被改动过,那么以下显示:SM5DLUGTP c filename
至于那个 c 表明的是“ Config file ”的意思,也就是文件的类型,文件类型有下面这几类:
Rpm反安装与重建数据库
rpm --rebuilddb ==重建数据库
首先打开rabbitmq.com官网,他的安装页有rpm包。安装文档指示咱们安装rabbitmq须要2大步骤。
一、先安装erlang环境,二、安装rabbitmq。
由此可知rabbitmq是依赖erlang环境的,下面咱们先安装下erlang。
[root@localhost src]# wget https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_19.2~centos~7_amd64.rpm --2017-02-07 14:10:27-- https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_19.2~centos~7_amd64.rpm 正在解析主机 packages.erlang-solutions.com (packages.erlang-solutions.com)... 31.172.186.53 正在链接 packages.erlang-solutions.com (packages.erlang-solutions.com)|31.172.186.53|:443... 已链接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:43611864 (42M) [application/x-redhat-package-manager] 正在保存至: “esl-erlang_19.2~centos~7_amd64.rpm” 100%[==================================================================================================================================>] 43,611,864 446KB/s 用时 80s 2017-02-07 14:12:04 (530 KB/s) - 已保存 “esl-erlang_19.2~centos~7_amd64.rpm” [43611864/43611864]) [root@localhost src]# rpm -ivh esl-erlang_19.2~centos~7_amd64.rpm 错误:依赖检测失败: libodbc.so.2()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_baseu-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_baseu-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_baseu_xml-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_adv-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_adv-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_aui-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_aui-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_aui-2.8.so.0(WXU_2.8.5)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_core-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_core-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_core-2.8.so.0(WXU_2.8.10)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_gl-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_gl-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_html-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_html-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_stc-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_stc-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_xrc-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 须要 libwx_gtk2u_xrc-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 须要
因而可知安装erlang环境也是须要环境支持的。那么咱们安装erlang须要的安装环境,那么咱们首先须要安装非默认的第三方yum库。
[root@localhost bin]# yum install epel-release
而后安装erlang须要的安装环境
[root@localhost bin]# yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirror.premi.st * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 软件包 unixODBC-2.3.1-11.el7.x86_64 已安装而且是最新版本 软件包 unixODBC-devel-2.3.1-11.el7.x86_64 已安装而且是最新版本 软件包 wxBase-2.8.12-20.el7.x86_64 已安装而且是最新版本 软件包 wxGTK-2.8.12-20.el7.x86_64 已安装而且是最新版本 软件包 SDL-1.2.15-14.el7.x86_64 已安装而且是最新版本 软件包 wxGTK-gl-2.8.12-20.el7.x86_64 已安装而且是最新版本
而后就能够顺利的把erlang安装上啦
[root@localhost src]# rpm -ivh esl-erlang_19.2~centos~7_amd64.rpm
最后安装rabbitmq那也是顺溜的很啦。
[root@localhost src]# rpm -ivh rabbitmq-server-3.6.6-1.el7.noarch.rpm
启动/关闭rabbitmq服务
启动端口
找到/etc/sysconfig/iptables ,若是不存在,随便一个iptalbles命令便可出现,如iptables -F 清除iptables已有的全部规则。配置以下端口对外开放。
[root@localhost src]# vim /etc/sysconfig/iptables
#RabbitMQ -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT #RabbitMQ
启动插件
./rabbitmq-plugins enable rabbitmq_management(执行一次之后不用再次执行)
客户端打开管理页面
输入:服务器地址:15672 默认gust,不可用。只能在服务端可用。
关于rabbitmq的详细内容之后我还会补充,之前也有一篇我本身的博文,有兴趣的能够点开看下:.Net使用Rabbitmq详解
关于yum的使用是很是简单的,你们能够看下 http://man.linuxde.net/yum 多敲敲练练就会啦。
而文章一开始说yum方式安装nginx,那么命令看仔细啦啊。
[root@localhost src]# yum install nginx
对,你没有看错,在线安装,自动解决软件相互依赖问题,安装成功啦,就是这么简单。
这里值得一说的是yum的包源配置是在下面的文件中:
[root@localhost etc]# ll /etc|grep yum drwxr-xr-x. 6 root root 95 2月 7 20:09 yum -rw-r--r--. 1 root root 970 11月 15 23:30 yum.conf drwxr-xr-x. 2 root root 4096 2月 7 20:10 yum.repos.d
在yum.repos.d这个文件夹下,你如何看懂文件中的内容,以及如何配置,那么你须要自行百度,我不想写啦
主要内容:网络,系统,cpu,内存,硬盘,进程等等经常使用的基础信息查看与基础功能设置。
查看系统当前时间
[root@zlhpc ~]# date 2017年 02月 09日 星期四 03:20:45 CST
修改时间
[root@zlhpc sysconfig]# date -s "2016-02-09 15:15:00" 2016年 02月 09日 星期二 15:15:00 CST [root@zlhpc sysconfig]# date 2016年 02月 09日 星期二 15:15:05 CST
同步网路时间
[root@zlhpc sysconfig]# ntpdate -u ntp.api.bz 9 Feb 15:56:21 ntpdate[4132]: step time server 17.253.68.253 offset 31624839.558211 sec [root@zlhpc sysconfig]# date 2017年 02月 09日 星期四 15:56:27 CST
note1:ntp是网络时间协议,主要用做同步计算机时间与服务器时间一致的。常见的ntp服务器有:210.72.145.44(国家授时中心服务器地址),ntp.api.bz(上海),time.nist.gov(美国),ntp.fudan.edu.cn(复旦),s1b.time.edu.cn(清华大学),等等。
note2:date命令设置时间只有超级用户才有,通常用户只能查看,且修改玩以后要记得执行clock -w 命令,把系统时间写入CMOS中。
显示系统主机名
[root@zlhpc sysconfig]# hostname zlhpc
修改主机名,须要同时修改/etc/hosts和/etc/sysconfig/network,且修改完以后需重启机器生效且永久保存,使用hostname命令只能临时修改不能永久有效。
[root@zlhpc sysconfig]# vim /etc/hostname
-v:详细信息模式; -a:显示主机别名; -d:显示DNS域名; -f:显示FQDN名称; -i:显示主机的ip地址; -s:显示短主机名称,在第一个点处截断; -y:显示NIS域名。
uname查看操做系统相关信息
[root@zlhpc /]# uname -a Linux zlhpc 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
数据依次为:内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操做系统名称
参数以下
其余几种出去啊看Linux版本信息的方法
[root@zlhpc /]# cat /proc/version Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 [root@zlhpc /]# cat /etc/issue \S Kernel \r on an \m [root@zlhpc /]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.2.1511 (Core) Release: 7.2.1511 Codename: Core
Linux系统查看cpu信息
[root@zlhpc /]# grep "model name" /proc/cpuinfo #查看cpu信息 model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz [root@zlhpc /]# more /proc/cpuinfo #查看cpu信息 processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz stepping : 3 microcode : 0x1e cpu MHz : 3591.678 cache size : 8192 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 [root@zlhpc /]# getconf LONG_BIT #查看cpu位数 64
用户与组分类,根据账号或组的位置均可以分为:本地账号|组,远程(域)账号|组 ,LDAP,NIS
根据账号|组的功能分类能够分为:超级用户(root) uid:0 ,普通用户。普通用户又分为:系统账号(uid范围:1-499,1-99:由distributions自行建立的系统账号,100-499:若用户有系统账号的需求时,可使用的账号uid)和可登陆账号(uid范围:500+)
关于系统用户和组的相关配置文件放在系统的一下文件中:
用户的账号信息:/etc/passwd 用户的密码信息:/etc/shadow
用户组信息:/etc/group 组的密码信息:/etc/gshadow
那么下面咱们一一打开这些文件来看看他们到底存放啦那些内容,格式是什么样的,咱们又该怎么解读。
[root@zlhpc home]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:997:995:User for polkitd:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin libstoragemgmt:x:996:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin chrony:x:995:993::/var/lib/chrony:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin rabbitmq:x:994:992:RabbitMQ messaging server:/var/lib/rabbitmq:/bin/bash nginx:x:993:991:Nginx web server:/var/lib/nginx:/sbin/nologin
每一行都表明一个用户,每一行中的冒号(:)表明分割符,那咱们拿第一行作一个解读,以下:
root:x:0:0:root:/root:/bin/bash
查看系统中支持那些shell:
[root@zlhpc home]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
接下来咱们看下用户关于密码的配置文件:
[root@zlhpc home]# cat /etc/shadow root:$6$zVDR2oO1Yg7alTbs$.70PPMYxg70k9BvLtjHdm94CDA1YWDRDI5NFzSfcmZF5WMESgIbLUdnqRjuVycg481Ny9rl//YzAFnXhurQi//::0:99999:7::: bin:*:16659:0:99999:7::: daemon:*:16659:0:99999:7::: adm:*:16659:0:99999:7::: lp:*:16659:0:99999:7::: sync:*:16659:0:99999:7::: shutdown:*:16659:0:99999:7::: halt:*:16659:0:99999:7::: mail:*:16659:0:99999:7::: operator:*:16659:0:99999:7::: games:*:16659:0:99999:7::: ftp:*:16659:0:99999:7::: nobody:*:16659:0:99999:7::: avahi-autoipd:!!:17203:::::: systemd-bus-proxy:!!:17203:::::: systemd-network:!!:17203:::::: dbus:!!:17203:::::: polkitd:!!:17203:::::: tss:!!:17203:::::: postfix:!!:17203:::::: sshd:!!:17203:::::: rpc:!!:17204:0:99999:7::: abrt:!!:17204:::::: libstoragemgmt:!!:17204:::::: chrony:!!:17204:::::: ntp:!!:17204:::::: tcpdump:!!:17204:::::: rabbitmq:!!:17204:::::: nginx:!!:17204::::::
依然拿出第一行作一下解读:
root:$6$zVDR2oO1Yg7alTbs$.70PPMYxg70k9BvLtjHdm94CDA1YWDRDI5NFzSfcmZF5WMESgIbLUdnqRjuVycg481Ny9rl//YzAFnXhurQi//::0:99999:7:::
查看关于组的配置文件,以下:
[root@zlhpc home]# head -n 4 /etc/group root:x:0: bin:x:1: daemon:x:2: sys:x:3:
root:x:0:
接下来咱们来看下账号管理,关于账号的增删改查操做
一、添加用户
[root@zlhpc home]# useradd zhanglonghao [root@zlhpc home]# useradd zhanglonghao1
useradd (选项)(参数)
修改用户信息,参数选项和添加一致。
[root@zlhpc home]# usermod zhanglonghao -u 1005 [root@zlhpc home]# id zhanglonghao uid=1005(zhanglonghao) gid=1000(zhanglonghao) 组=1000(zhanglonghao)
删除用户
[root@zlhpc home]# userdel zhanglonghao2 -rf
userdel,参数以下:若是不加下面的参数进行直接删除,则用户删除,用户的目录与文件依旧保留。
把某个用户添加到哪一个组中:示例把用户zhanglonghao添加到zhanglonghao1的组中,且也在原有的组中不被删除,这是必须加 -a意思是附加的意思,以下:
[root@zlhpc home]# usermod zhanglonghao -a -G zhanglonghao1 [root@zlhpc home]# groups zhanglonghao zhanglonghao : zhanglonghao zhanglonghao1
id查看用户的id信息
[root@zlhpc home]# id zhanglonghao uid=1005(zhanglonghao) gid=1000(zhanglonghao) 组=1000(zhanglonghao),1001(zhanglonghao1)
查看当前登陆系统的用户信息
[root@zlhpc home]# who root pts/0 2017-02-12 15:01 (172.18.8.196) [root@zlhpc home]# users root [root@zlhpc home]# id -un root [root@zlhpc home]# whoami root [root@zlhpc home]# who root pts/0 2017-02-12 15:01 (172.18.8.196) [root@zlhpc home]# w 16:51:15 up 1:50, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 172.18.8.196 15:01 3.00s 0.44s 0.01s w
咱们针对w这个命令作个解释
参数为 -h :忽略头文件信息, -u:显示结果的加载时间 , -s :不显示JCPU,PCPU,登录时间。
打开网页:curl
[root@zlhpc ~]# curl www.baidu.com <!DOCTYPE html> <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class="head_wrapper"> <div class="s_form"> <div class="s_form_wrapper"> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class="fm"> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class="s_ipt" value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class="mnav">新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class="mnav">hao123</a> <a href=http://map.baidu.com name=tj_trmap class="mnav">地图</a> <a href=http://v.baidu.com name=tj_trvideo class="mnav">视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class="mnav">贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class="lb">登陆</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登陆</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class="bri" style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>©2017 Baidu <a href=http://www.baidu.com/duty/>使用百度前必读</a> <a href=http://jianyi.baidu.com/ class="cp-feedback">意见反馈</a> 京ICP证030173号 <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
下载文件:wget
[root@zlhpc ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
linux下的文本浏览器:w3m与links
[root@zlhpc ~]# w3m www.baidu.com [root@zlhpc ~]# links www.baidu.com
检查你的网络与另一台机器是否互通:ping
[root@zlhpc ~]# ping www.baidu.com
作路由图提供咱们分析哪里出现故障或者是否存在网络拥塞状况:mtr
[root@zlhpc ~]# mtr [root@zlhpc ~]# mtr -r -c 30 www.baidu.com #每秒发送数据包的数量是30 ,mtr -r -c 30 -s 1024 www.baidu.com #ping包的大小为1024个字节 Start: Sun Feb 12 18:01:09 2017 HOST: zlhpc Loss% Snt Last Avg Best Wrst StDev 1.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0 2.|-- 116.236.169.77 0.0% 30 4179. 9116. 4179. 11973 2051.2 3.|-- 124.74.124.165 0.0% 30 1.9 3.6 1.7 5.4 1.0 4.|-- 124.74.210.101 0.0% 30 4.1 4.5 2.4 6.1 1.0 5.|-- 59.43.77.141 0.0% 30 20.1 18.1 7.4 54.5 8.2 6.|-- 59.43.80.94 0.0% 30 4.3 6.0 2.7 24.3 3.6 7.|-- 202.97.26.2 86.7% 30 5.1 5.2 5.0 5.4 0.0 8.|-- 220.191.200.30 0.0% 30 5.9 5.5 5.1 7.0 0.3 9.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0 10.|-- 115.239.209.2 0.0% 30 6.8 7.1 6.6 8.0 0.0 11.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0 12.|-- 115.239.210.27 0.0% 30 6.1 6.5 5.6 11.7 1.4
mtr参数以下:
DNS查询,若是是参数是域名输出关联ip,若是参数是ip输出关联的域名:host
[root@zlhpc ~]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 115.239.211.112 www.a.shifen.com has address 115.239.210.27
出网络接口配置、调优和debug的各类选项:ifconfig
[root@zlhpc ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.18.8.190 netmask 255.255.255.0 broadcast 172.18.8.255 inet6 fe80::20c:29ff:feb5:d2d8 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:b5:d2:d8 txqueuelen 1000 (Ethernet) RX packets 10916 bytes 7044121 (6.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7267 bytes 774719 (756.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 318 bytes 32844 (32.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 318 bytes 32844 (32.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
关于ip的命令
[root@zlhpc ~]# ip link show #查看全部网络接口属性信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff [root@zlhpc ~]# ip -s link show #查看全部统计信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped overrun mcast 32844 318 0 0 0 0 TX: bytes packets errors dropped carrier collsns 32844 318 0 0 0 0 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 7050452 10988 0 0 0 0 TX: bytes packets errors dropped carrier collsns 780097 7309 0 0 0 0 [root@zlhpc ~]# ip addr show #查看网络信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff inet 172.18.8.190/24 brd 172.18.8.255 scope global dynamic eno16777736 valid_lft 83120sec preferred_lft 83120sec inet6 fe80::20c:29ff:feb5:d2d8/64 scope link valid_lft forever preferred_lft forever
这里简单介绍下,之后会有深刻介绍。
ifdown与ifup分别是禁用与启用摸个网络接口
[root@zlhpc ~]# ifdown eno16777736 [root@zlhpc ~]# ifup eno16777736
netstat命令是一个监控TCP/IP网络的很是有用的工具,它能够显示路由表、实际的网络链接以及每个网络接口设备的,netstat命令的功能是显示网络链接、路由表和网络接口信息,可让用户得知目前都有哪些网络链接正在运做。
netstat [选项]
列出全部链接
[root@zlhpc ~]# netstat -a --列出全部链接 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
只列出tcp或者udp协议的链接
[root@zlhpc ~]# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
[root@zlhpc ~]# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:18604 0.0.0.0:* udp 0 0 localhost:323 0.0.0.0:* udp 0 0 0.0.0.0:bootpc 0.0.0.0:* udp6 0 0 localhost:323 [::]:* udp6 0 0 [::]:53744 [::]:*
禁用反向域名解析,加快查询速度
[root@zlhpc ~]# netstat -ant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 172.18.8.190:22 172.18.8.196:51171 ESTABLISHED tcp 0 0 172.18.8.190:22 172.18.8.196:49639 ESTABLISHED
只列出监听中的链接
[root@zlhpc ~]# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::111 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
获取进程名,进程号以及用户id
[root@zlhpc ~]# netstat -nlpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1538/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2094/master tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1538/sshd tcp6 0 0 ::1:25 :::* LISTEN 2094/master
[root@zlhpc ~]# netstat -ltpe Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN root 16299 1/systemd tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN root 21179 1538/sshd tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN root 22083 2094/master tcp6 0 0 [::]:sunrpc [::]:* LISTEN root 16298 1/systemd tcp6 0 0 [::]:ssh [::]:* LISTEN root 21189 1538/sshd tcp6 0 0 localhost:smtp [::]:* LISTEN root 22084 2094/master
网络报统计状况
[root@zlhpc ~]# netstat -s Ip: 7872 total packets received 0 forwarded 0 incoming packets discarded 6932 incoming packets delivered 7284 requests sent out 60 dropped because of missing route Icmp: 260 ICMP messages received 1 input ICMP message failed. ICMP input histogram: destination unreachable: 1 timeout in transit: 214 echo requests: 1 echo replies: 44 409 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 33 echo request: 12 echo replies:
... OUTPUT TRUNCATED ...
持续输出 -c持续输出tcp协议信息
[root@zlhpc ~]# netstat -ct Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 52 zlhpc:ssh localhost:51171 ESTABLISHED tcp 0 0 zlhpc:ssh localhost:49639 ESTABLISHED
最后上一个简单的实时流量监控工具:iftop ,它能够用来监控实时流量,反向解析ip,显示端口等。使用需先安装iftop,官网地址:http://www.ex-parrot.com/~pdw/iftop/
不过还有不少相似的软件,咱们放在之后讨论。
[root@zlhpc ~]# iftop interface: eno16777736 IP address is: 172.18.8.190 MAC address is: 00:0c:29:b5:d2:d8
经常使用参数命令:
-i设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机之外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
图解:
界面命令:
整个系统的存储状况
[root@zlhpc ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 18G 2.1G 16G 12% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 483M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 497M 124M 374M 25% /boot tmpfs 98M 0 98M 0% /run/user/0
某个文件或文件夹大小
[root@zlhpc usr]# du --max-depth=1 -h 108M ./bin 46M ./sbin 390M ./lib 417M ./lib64 517M ./share 0 ./etc 0 ./games 35M ./include 78M ./libexec 51M ./local 55M ./src 1.7G .
du的相关参数以下:
使用tree工具,查看树形目录结构,首先先安装tree工具
[root@zlhpc usr]# tree -L 3 src #列出src层数为3之内的全部文件 src ├── debug └── kernels └── 3.10.0-514.6.1.el7.x86_64 ├── arch ├── block ├── crypto ├── drivers ├── firmware
tree经常使用参数:
-d:仅显示目录
-a:显示全部
-f:显示完整路径
-L n :n为数字,表示要现实几层。
top默认3秒刷新一次,按空格当即刷新,q:退出,M:按内存排序,P:按cpu排序,<>:翻页 。
top - 21:32:45 up 6:31, 2 users, load average: 0.01, 0.02, 0.05 Tasks: 348 total, 2 running, 346 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1001332 total, 321616 free, 166176 used, 513540 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 596688 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3865 root 20 0 146296 2272 1452 R 0.7 0.2 0:00.62 top 1 root 20 0 126416 7184 2608 S 0.0 0.7 0:02.43 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.06 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.37 ksoftirqd/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.98 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/1 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/2 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/3 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/4
统计讲解:
第一行的统计信息与命令uptime命令执行结果一致,依次为:
第2、三行为进程和cpu的信息,当有多个cpu时,这些内容可能会超过2行,内容以下:
第4、五行为内存信息
第六列头标题详细
top命令参数
经常使用命令
top //每隔5秒显式全部进程的资源占用状况 top -d 2 //每隔2秒显式全部进程的资源占用状况 top -c //每隔5秒显式进程的资源占用状况,并显示进程的命令行参数(默认只有进程名) top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用状况 top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用状况,并显式该进程启动的命令行参数
[root@zlhpc ~]# free -h total used free shared buff/cache available Mem: 977M 138M 693M 6.6M 145M 690M Swap: 2.0G 0B 2.0G
去掉为硬件和操做系统保留的内存后剩余的内存总量。许多人奇怪本身的电脑安装了一共8G的内存,可是显示总共只有七点几G的,如今应该没什么疑惑了把,无论Linux仍是Windows都会有部份内存是保留给硬件和操做系统的!
可使用的内存总量
Linux系统查看内存信息
[root@zlhpc /]# more /proc/meminfo #查看内存信息 MemTotal: 1001332 kB MemFree: 322740 kB MemAvailable: 597536 kB Buffers: 1004 kB Cached: 261816 kB SwapCached: 0 kB Active: 169740 kB Inactive: 167476 kB Active(anon): 74780 kB Inactive(anon): 6452 kB Active(file): 94960 kB Inactive(file): 161024 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Dirty: 0 kB Writeback: 0 kB [root@zlhpc /]# grep MemTotal /proc/meminfo #查看内存信息 MemTotal: 1001332 kB
pstree:树形结构显示系统进程信息
-p显示进程号
[root@zlhpc ~]# pstree -p systemd(1)─┬─NetworkManager(978)─┬─dhclient(1320) │ ├─{NetworkManager}(1051) │ └─{NetworkManager}(1054) ├─abrt-watch-log(886) ├─abrtd(885) ├─agetty(906) ├─atd(900) ├─auditd(852)───{auditd}(871)
ps:用于展现当前系统的进程状态。能够搭配kill指令随时中断、删除没必要要的程序。ps命令是最基本同时也是很是强大的进程查看命令,使用该命令能够肯定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是能够经过执行该命令获得的。
[root@zlhpc ~]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.7 126420 7172 ? Ss 09:12 0:01 /usr/lib/systemd/system root 2 0.0 0.0 0 0 ? S 09:12 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 09:12 0:00 [ksoftirqd/0] root 6 0.0 0.0 0 0 ? S 09:12 0:00 [kworker/u256:0] root 7 0.0 0.0 0 0 ? S 09:12 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 09:12 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 09:12 0:00 [rcuob/0]
恐怖的参数多的以下:
[root@zlhpc ~]# ps -ef --标准格式显示进程 [root@zlhpc ~]# ps -aux --BSD格式显示进程