教老婆学Linux运维(二)Linux经常使用命令指南【下】

tips:紧接上一篇,Linux经常使用命令指南【上】html

[TOC]node

2.4 文件解压缩

2.4.1 官宣的linux压缩工具:tar

tar的基本命令格式为mysql

tar [参数选项] [文件或目录]复制代码

咱们前面学的命令凡是参数选项都要加-,tar命令有点特殊,加不加均可以,如 tar -z 能够写成 tar z。linux

tar经常使用命令:ios

tar -zcvf [压缩包名] [待打包文件或目录]
    # [压缩包名] 通常为 tar.gz 后缀
    # z :经过gzip压缩或解压
    # c :建立新的tar包
    # v :显示命令执行过程
    # f :指定压缩文件的名字
    # t : 不解压查看tar包内容复制代码
tar tvf [压缩包]
    # 不解压查看压缩包内容复制代码
tar zxvf [压缩包] -C [解压路径]
    # 将压缩参数的c换成x,即是解压
    # -C:指定解压路径,不加-C解压到当前目录复制代码

经常使用命令示例:nginx

# 先来准备点数据复制代码
cd ~
    # 返回用户根目录复制代码
mkdir -p /var/www/yaojiaxiaoyuan/html
    # 建立多级目录复制代码
touch /var/www/yaojiaxiaoyuan/html/yaomaomao{01..10}.html
    # 在上面的目录中批量建立多个文件复制代码
tar zcvf www.tar.gz /var/www/yaojiaxiaoyuan/html
    # 将目录/var/www/yaojiaxiaoyuan/html打包为www的tar包复制代码

markmark

mkdir /var/www/yaojiaxiaoyuan/html/test复制代码
find /var/www/yaojiaxiaoyuan/html ! -type d| xargs tar zcvf www2.tar.gz
    # 查找/var/www/yaojiaxiaoyuan/html下不是目录的文件,将其打包为www2.tar.gz
    # 根据以前find学到的命令,组合打包
    # tar命令的--exclude参数也有排除打包的功能,自行研究,再也不赘述。复制代码
tar -tvf www2.tar.gz
    # 不解压查看压缩包www2.tar.gz中文件复制代码

mark

mkdir ./yao/ yao2复制代码
tar zxvf www.tar.gz -C ./yao/
    # 解压www.tar.gz 到yao目录下
    # 能够看到连var这个目录打打包进来了复制代码

mark

若是不想打包那么多层级怎么办,直接cd到须要打包的目录进行打包。redis

2.4.2 gzip

gzip只能打包文件,不能打包目录。sql

gzip打包文件后会将源文件删除。shell

gzip参数:数据库

gzip 【参数选项】 【待压缩文件或压缩包】复制代码
# -d :解压
    # -v :显示解压过程
    # -l : 列出压缩文件内容信息
    # -c : 不改变原始文件
    # -r :递归压缩目录下全部文件
    # -t :检查压缩文件完整性
    # -数字<1-9> :指定压缩率,值越大压缩率越高,默认为6复制代码

gzip经常使用命令示例:

cd /var/www/yaojiaxiaoyuan/html 复制代码
gzip *.html
    # 打包全部html文件,能够看到html压缩成gz文件后不见了。复制代码

mark

gzip -l *.gz
    # 不解压展现压缩包内信息复制代码
gzip -dv *.gz
    # 解压gz文件复制代码

mark

能够发现,解压后gz包也不见了。那怎么保留源文件?

echo  '试试' >> yaomaomao01.html 
    # 先在yaomaomao01.html文件中添加点内容,echo在这里的做用与sed相似复制代码
gzip -c yaomaomao01.html > 01.gz
    # 使用-c + 重定向符号,将yaomaomao01.html压缩为01.gz,而且不删除源文件,解压也是同样的操做复制代码

mark

gzip -dc 01.gz > 01.html
    # 将01.gz解压为01.html,能够看到源文件01.gz还存在
![mark](https://user-gold-cdn.xitu.io/2019/10/8/16da93d246e4a1a5?w=398&h=107&f=png&s=2915)    
复制代码

扩展:可使用zcat、zgrep、zless、zdiff等扩展组件查看压缩文件,与cat、grep、less和diff等命令同样,如图:

zcat 01.gz复制代码

mark

gz不能压缩目录,这个开头说了,报错以下:

gzip test复制代码
# ==>> gzip: test is a directory -- ignored复制代码

mark

2.4.3 zip/unzip

2.4.3.1 zip

zip压缩格式,windows、linux、mac上都是通用的压缩格式,而且跟tar同样,能够压缩目录。

zip yao.zip *
    # 压缩当前目录下全部文件复制代码

mark

可是这样打包并不能压缩子目录下文件,只能压缩子目录自己,如图:

cd test复制代码
touch test01.txt复制代码
cd ../复制代码
zip yao2.zip *复制代码

mark

如同其余命令样,zip也有个-r参数,能够递归压缩

zip -r yao2.zip *
     # ==>>  adding: test/test01.txt (stored 0%)复制代码

mark

当前目录下已经有压缩包,想打包本目录的时候不将上个压缩包打进去,排除掉,怎么打包?使用-x参数:

zip -r  yao3.zip * -x yao2.zip复制代码

mark

小结,zip几种打包方式,并有三个参数:

zip yao2.zip *
    # 普通打包复制代码
zip -r  yao3.zip *
    # 递归打包复制代码
zip -r  yao3.zip * -x yao2.zip
    # 递归打包,排除某文件复制代码
zip -rq  yao4.zip * 
    # 递归打包,不显示压缩信息复制代码
# 无参数,普通压缩
    # -r :递归压缩
    # -x :排除某个文件压缩
    # -q :不显示压缩信息复制代码
2.4.3.2 unzip

unzip能够解压zip命令打包的或其余例如windows上的rar、360压缩等软件打包的zip格式文件。

不解压查看压缩文件:

unzip -l yao.zip复制代码

mark

指定目录解压:

unzip -d yao01 yao.zip
    # 解压到test文件夹下
    # -d : 指定目录,无此目录则建立一个,解压的部分信息===>> creating: yao01/test/
    # 没有-d参数则默认解压到当前文件夹
    # -o : 解压时不提示是否覆盖文件;若是咱们如今解压到当前目录就会提示是否覆盖,由于已经有此文件了,使用-o能够直接覆盖
    # -v :展现解压时的详细信息复制代码

mark

2.4.4 7za

7z也是一种高效率的压缩文件格式,7z经常使用命令以下。

压缩:

7za a -r yao.7z *.html
    # 压缩全部html到yao.7z包中
    # a :添加文件、目录
    # -r :递归复制代码

mark

不解压查看文件内部信息:

7za l yao.7z
    # l :不解压查看复制代码

mark

解压:

7za x yao.7z -r -oyao7z
    # x : 解压,x换成e也能够解压;可是通常用x,x解压全路径,用e会将全部文件解压到一个目录中
    # -r :递归解压子目录
    # -o :指定解压目录,注意的是,-o参数与目录间没有空格,这是比较奇特的一点复制代码

mark

2.5 用户、文件与权限

2.5.1 权限升级:su与sudo

提到用户与权限,则首先得说说一个不能避过的命令:su与sudo。

su与sudo的共同点是,均可以用另外一个用户权限执行命令。

不一样点是:su要切换成另外一个用户,sudo不须要。

切换用户,su的经常使用命令:

whoami
    # 查看本身是哪一个用户,咱们这里能够看到是root登陆的复制代码
su yao
    # root用户切换为普通用户不须要输入密码复制代码
su root
    # 普通用户切换回root用户须要输入密码
    # 小知识: su root == su,su切换root不须要输入root用户名
    # 注意:这种切换虽然能够成功,可是环境变量仍是原用户的,因此要用下面的命令切换复制代码
su - yao
    # su - [用户名],这种切换方式能够切换到相应用户,还能将登录后的环境变量一并切换复制代码

mark

其实su也能够不用切换过去就能执行命令,只须要加一个参数-c就行:

su - yao -c 'pwd'
    # 使用yao执行pwd命令复制代码

mark

能够看到,实际上是执行成功了,正确返回了yao的home路径。

可是这种方式毕竟没有sudo来的方便,接下来看看不用切换用户的sudo:

su - yao
    # 切换为普通用户登陆复制代码
whoami
    # 查看切换成功了没复制代码
ls /root
    # 访问root文件夹复制代码

mark

能够看到,没权限。怎么办?sudo呀。

sudo ls /root
    # 访问root目录,输入yao用户的登陆密码就好了复制代码

mark

全部用户均可以使用sudo吗?固然不是了,咱们能够查看下赋予sudo权限的用户:

sudo -l
    # 查看当前用户被受权的sudo权限复制代码

怎么赋予sudo权限?

在/etc/sudoers文件中添加用户就好了

sudo cat /etc/sudoers复制代码

mark

用vi仍是sed均可以,可是最好使用visudo。

sudo visudo
    # root用户不用sudo复制代码

visudo是专门来编辑/etc/sudoers文件的,它还有语法检查做用,赶快添加你的sudo用户吧。

2.5.2 用户增删改:useradd、usermod、userdel

2.5.2.1 用户新增:useradd、passwd

最经常使用,不带任何参数的添加用户:

useradd wfy
    # 新增用户wfy复制代码
passwd wfy
    # 设置密码,密码通常为大小写加数字和一个特殊字符复制代码

passwd 小技巧,一条命令设置用户密码:

echo "123456" | passwd --stdin wfy
    # --stdin :可从标准输入获取密码
    # 批量修改密码时,此命令比较有用
    # 此外,还有个chpasswd命令也能够批量修改密码复制代码

mark

passwd 密码到期提醒策略:

passwd -n 7 -x 60 -w 10 -i 30 wfy
    # 7天内不能修改密码,60天之后必须修改密码,过时前10天通知用户,过时后30天禁止用户登陆
    # -n : 7 表示不能修改密码天数
    # -x :60 表示必须修改密码天数
    # -w :10 表示过时前10天通知
    # -i : 30 表示过时后30天禁止登陆复制代码

mark

useradd不带任何参数时,系统会先读取/etc/login.defs(用户定义)、/etc/deault/useradd(用户默认配置)文件,而后根据其中所设置的规则添加用户同时向/etc/passwd(密码文件)、/etc/group(用户组)文件添加新用户和新用户组记录。

建好了以后,能够到/home目录下看下,已经建立了属于此用户的家目录。

cd /home/wfy复制代码

mark

chage -l wfy
    # 查看用户的有效期复制代码

mark

查看用户所属信息:

id wfy
    # 这个信息其实就在/etc/passwd中,能够用grep wfy /etc/passwd 查看比对下
    # uid : 用户id
    # gid :用户组id复制代码

mark

后续说道group的时候再来看看gid的做用。

禁止登录用户建立:

useradd -s /sbin/nologin ftp_ymm
    # -s :指定用户登陆的shell,/sbin/nologin表示禁止登录,部署ftp等中间件会常常用到复制代码
useradd -M -s /sbin/nologin nginx_wfy
    # 部署nginx、mysql等中间件会常常用到
    # -M : 不建立家目录复制代码

其余参数:

useradd -u 806 -s /bin/sh -c "这是测试用户" -G root -e "2019/12/21" -f 2 -d /tmp/wfy test_wfy
    # -u :指定uid
    # -c :用户说明
    # -G :设置用户组
    # -e : 设置过时时间
    # -f :2表示过时两天停权
    # -d :用户每次登陆时的家目录复制代码
tail -1 /etc/passwd
    # 查看passwd文件最后一行,能够看到刚才添加的用户信息复制代码
tail -1 /etc/shadow
    # 查看/etc/shadow文件最后一行,能够看到刚才-f添加的参数2复制代码

mark

拓展:使用useradd -D 参数就是修改用户的初始配置文件:/etc/deault/useradd,来看下这个文件有什么。

[root@VM_0_3_centos wfy]# cat /etc/default/useradd复制代码
# useradd defaults file
    GROUP=100 
    # 依赖于/etc/login.defs的USERGROUPS_ENAB参数,若是为no,则此处控制
    HOME=/home
    # 把用户的家目录建在/home中
    INACTIVE=-1
    # 是否启用用户国企停权,-1表示不启用
    EXPIRE=
    # 用户终止日期,不设置表示不启用
    SHELL=/bin/bash
    # 新用户默认所用的shell类型
    SKEL=/etc/skel
    # 家目录默认文件存放路径,新增用户时,从这个配置目录拷贝过去
    CREATE_MAIL_SPOOL=yes
    # 建立mail文件复制代码

用useradd -D来修改下看看,固然,先作好备份:

cp /etc/default/useradd{,.bak} 
    # 作个备份复制代码
cd /etc/default
    # 能够看到建立useradd.bak文件复制代码
useradd -D -s /bin/sh
    # -D :改变/etc/default/useradd文件
    # -s :改变默认shell
    # -b : 定义家目录
    # -e :设置用户过时日期
    # -f :过时后几日停权
    # -g :设置用户组复制代码
diff /etc/default/useradd{,.bak}复制代码

mark

能够看到先后对比的效果复制代码
2.5.2.2 用户修改:usermod

usermod的参数大部分与useradd相同,无非一个新增一个修改而已。不一样的参数以下:

usermod -l  wfy2 wfy
    # 将wfy这个用户的登陆名改成wfy2
    # -l :修改用户名称
    # -L :lock,锁定用户密码
    # -U :unlock,解除密码锁定
    # -a :追加用户组,与-G参数连用复制代码

将useradd替换为usermod,其余参数不变,来修改下用户信息

usermod -u 806 -s /bin/sh -c "修改了测试用户" -G root -e "2019/12/21" -f 2 -d /tmp/wfy test_wfy复制代码
grep test_wfy /etc/passwd复制代码
grep test_wfy /etc/shadow复制代码

mark

2.5.2.3 用户删除:userdel

userdel -r test_wfy
    # -r : 删除用户及家目录
    # -f : 强制删除用户,即便用户登陆了
    # 不加-r参数删除不会删除家目录复制代码

注意:实际工做中,通常不使用userdel,而是去/etc/passwd中将用户信息注释。

2.5.3 用户查看:id、w、who、whoami、last

id,查看用户id信息:

id wfy
    # 显示wfy的uid及gid信息复制代码

mark

w,最经常使用,查看已登陆用户信息:

w
    # 展现全部已登陆用户信息
    # 展现字段含义以下
    # USER : 用户
    # TTY : 用户tty名称
    # FROM : 从哪登陆的
    # LOGIN : 登陆时间
    # IDLE :终端空闲时间
    # JCPU : 终端上全部进程及子进程使用系统的总时间
    # PCPU :活动进程使用的系统时间
    # WHAT :当前用户执行的进程复制代码

mark

who 查看全部已登陆用户信息:

who
    # 显示已登陆用户信息,与w略有不一样复制代码

users 查看全部已登陆用户名:

users
    # 只显示用户复制代码

whoami 查看当前登陆用户信息:

whoami
    # 查看当前登陆的用户名复制代码

last:

last
    # 显示用户登陆列表,读取/var/log/wtmp复制代码
last -10
    # 显示最近10次的登陆信息复制代码
last root -10
    # 显示root用户的最近10次登陆信息复制代码
lastb
    # 展现用户登陆失败信息,读取/var/log/btmp复制代码
lastb -10
    # 展现最近10条用户登陆失败信息复制代码
lastb root -10
    # 展现root用户登陆失败信息,最近10条复制代码
lastlog
    # 展现全部用户最近一次登陆记录,读取/var/log/lastlog
复制代码
2.5.4 文件权限:chown 、chmod

2.5.4.1 改变文件用户组:chown

chown经常使用命令以下:

cd ~
    # 返回root家目录复制代码
chown wfy wfy.txt
    # 更改wfy.txt的所属用户为wfy复制代码

mark

chown wfy:wfy wfy2.txt
    # 将wfy2.txt的所属用户更改成wfy,用户组从root更改成wfy复制代码

mark

chown -R wfy:wfy yao
    # 将yao这个目录及其子目录全都赋权给wfy
    # 能够看到yao下的var目录页赋权给了wfy这个用户及用户组复制代码

mark

2.5.4.2 改变文件权限范围:chmod

chmod能够改变文件及目录的权限范围,它有两种赋权模式:1)使用权限字母 + 操做符;2)使用数字。

经常使用命令示例:

chmod 777 wfy.txt
    # 更改wfy.txt权限为全部人可访问复制代码

修改前:mark

修改后:mark

7表明rwx,777所表明的9位字符权限为rwxrwxrwx。

  1. "r" = 4, 可读权限;目录、子目录及其文件均可被访问。
  2. "w" = 2,可写权限;可修改文件内容、目录名称。
  3. "x" = 1,可执行权限;目录没有x权限没法进入,sh脚本文件没有x没法执行。
  4. "-" = 0,无权限。

赋予目录只读权限:

chmod -R 555 yao
    # 5 = 4 + 0 +1,即r-x,可读与可执行权限,可是不能被修改。执行下看看效果,是否与预期同样。复制代码

mark

能够看到第一位字符是d,d表明目录,后续9位字符为r-x(属主权限位)、r-x(属组权限位)、r-x(其余用户权限位)。

此外还有一种经常使用的赋权模式,为+x,赋予文件可执行权限,通常用来执行shell脚本:

chmod +x [脚本名].sh复制代码

shell脚本通常有四种执行方式,最经常使用的为+x赋权后使用下面命令执行:

./脚本名.sh复制代码

其余三种方式:

. /脚本名.sh
    # .后有空格复制代码
source 脚本名.sh复制代码
sh 脚本名.sh复制代码

固然,也能够用来执行txt文件,示例以下:

. wfy.txt复制代码
source复制代码
sh wfy.txt复制代码

mark

能够看到咱们的wfy.txt文件并非一个shell文件,没有找到响应的命令去执行,后续的shell入门会说下.sh的脚本文件是怎样编写的。

注意:普通用户还需有r权限才能执行,root则不须要。

2.6 资源监控与管理

2.6.1 虚拟文件管理系统:proc

说到资源管理这块,/proc文件夹是linux上不得不说的一个目录。

mark

ls /proc复制代码

mark

能够看到红框/proc目录下红框圈的那一片数字文件夹,这其实就是咱们linux系统中全部进程文件存放的地方。每生成一个进程,就会在这里有个对应的文件夹,也就是咱们之后会常常打交道的pid。

有不少的inux命令都是调用此目录中的文件来显示系统相关信息。例如内存、cpu等信息。

为何proc下面的文件能存放内存、进程、cpu这些跟磁盘文件没任何关系的东西呢?

由于proc实际是一个伪文件系统,或者说虚拟文件系统。咱们在文章开头就说了,linux中的一切都是以文件形式存在的,就是proc作到的。

对于用户、应用程序,它们是从proc中获得系统的一些信息,甚至能够改变内核的某些参数。

而proc中的文件内容并非全然不变的,它们会随着系统进程的变化而变化,当用户读取它们时,proc文件系统就动态地从系统内核中读出所须要的信息并提交。

一些咱们经常使用的命令会用到下面的一些文件,如磁盘、cpu、内存相关的。

--------------- -------------
/proc/cmdline
内核命令行,核心启动参数
/proc/cpuinfo
cpu的相关信息
/proc/devices
挂载设备
/proc/Loadavg
负载均衡
/proc/meminfo
内存信息
/proc/mounts
加载文件系统
/proc/stat
全面统计状态表
/proc/swaps
交换空间表
/proc/version
内核版本
/proc/uptime
系统正常运行时间

关于/proc目录的详解能够参考这篇文章www.cnblogs.com/aofo/p/6151…

关于proc也不用深究,知道这么个东西就好了。

接下来看看关于磁盘、网络、cpu、内存的一些基本命令。

2.6.2 磁盘空间监视器:df

df命令能够说linux上最经常使用的命令之一,由于一旦磁盘空间不够就会出现各类故障,数据库、应用均可能会处于瘫痪状态。

经常使用命令示例:

[root@VM_0_3_centos ~]# df -h
    # 以适合人类阅读的方式展现磁盘空间大小复制代码
文件系统        容量  已用  可用 已用% 挂载点
    /dev/vda1        50G   43G  4.3G   91% /
    devtmpfs        1.9G     0  1.9G    0% /dev
    tmpfs            10G  666M  9.4G    7% /dev/shm
    tmpfs           1.9G  324K  1.9G    1% /run
    tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
    tmpfs           380M     0  380M    0% /run/user/1005
    tmpfs           380M     0  380M    0% /run/user/0复制代码
[root@VM_0_3_centos ~]# df -i
    # -i : 显示inode的使用状况
    # linux文件有个inode的文件数量限制,一旦无可用inode,则没法再产生新的文件,会在磁盘空间未满的状况下报“No space left on device”,解决方案是删除无用(多天前)的小文件或者log文件复制代码
文件系统         Inode 已用(I) 可用(I) 已用(I)% 挂载点
    /dev/vda1      3276800  215486 3061314       7% /
    devtmpfs        482932     308  482624       1% /dev
    tmpfs           485254     258  484996       1% /dev/shm
    tmpfs           485254     354  484900       1% /run
    tmpfs           485254      16  485238       1% /sys/fs/cgroup
    tmpfs           485254       1  485253       1% /run/user/1005
    tmpfs           485254       1  485253       1% /run/user/0复制代码
[root@VM_0_3_centos ~]# df -Th
    # -T:查看文件系统类型
    # 本机展现的挂载盘/dev/vda1文件系统类型为ext3复制代码
文件系统       类型      容量  已用  可用 已用% 挂载点
    /dev/vda1      ext3       50G   43G  4.3G   91% /
    devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
    tmpfs          tmpfs      10G  666M  9.4G    7% /dev/shm
    tmpfs          tmpfs     1.9G  324K  1.9G    1% /run
    tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
    tmpfs          tmpfs     380M     0  380M    0% /run/user/1005
    tmpfs          tmpfs     380M     0  380M    0% /run/user/0复制代码
2.6.2 内存空间监视器:free

一台电脑、服务器,内存、存储(磁盘)、处理器(cpu)、操做系统是最基本的组成。

free就是用来监视linux系统使用内存的命令。

经常使用命令示例:

[root@VM_0_3_centos ~]# free -h
    # 以人类可读方式展现内存使用状况,根据实际大小自动转换为KB、MB、GB复制代码
total        used        free      shared  buff/cache   available
    Mem:           3.7G        275M        144M         48M        3.3G        3.1G
    Swap:          2.0G        658M        1.4G复制代码

Mem为物理内存使用状况,Swap为虚拟内存使用状况(通常是划分一部分磁盘空间做为虚拟内存)。

total :总内存;3.7G通常为4G内存机器。

used :已使用内存。

free :自由内存。

shared : 共享内存。

buff/cache : 缓存,3.3G。

available : 可用内存。

在之前没有available这个展现字段的时候,咱们一般是将 free + buff/cache 的总量做为可用内存。

linux系统的特性就是将不用的物理内存缓存起来,由于千万觉得free的144M内存就是真实的系统剩余内存了。因此当前可用内存为available:3.1G。

经常使用命令之二:定时查询内存

free -hs 5
    # 每5秒显示内存使用状况,ctrl + c 终端
    # -s:根据指定间隔显示内存使用状况,单位为秒复制代码
[root@localhost ca_ga]# free -hs 5
                  total        used        free      shared  buff/cache   available
    Mem:            62G         27G        359M         65M         34G         34G
    Swap:           31G        6.7G         25G复制代码
total        used        free      shared  buff/cache   available
    Mem:            62G         27G        348M         65M         34G         34G
    Swap:           31G        6.7G         25G复制代码
total        used        free      shared  buff/cache   available
    Mem:            62G         27G        354M         65M         34G         34G
    Swap:           31G        6.7G         25G复制代码
^C
复制代码
2.6.3 网络探测器:ping

ping命令与windows下用cmd打出的ping命令类似,都是用来探测主机之间网络是否通畅。

经常使用命令示例:

ping www.baidu.com
    # ping域名或ip,会一直显示ping结果,ctrl + c 中断
    # 不一样于windows的是,windos上ping -t才会一直显示ping结果复制代码
[root@VM_0_3_centos ~]# ping www.baidu.com
    PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=54 time=3.97 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=54 time=4.01 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=3 ttl=54 time=3.97 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=4 ttl=54 time=4.03 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=5 ttl=54 time=3.97 ms
    ^C
    --- www.a.shifen.com ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4004ms
    rtt min/avg/max/mdev = 3.971/3.993/4.031/0.024 ms复制代码

从结果行第一行能够看到,baidu的域名被转换成了www.a.shifen.com,发送了56字节的数据。

而从第二行开始,是目标返回信息。目标受到的字节是64,icmp_seq就是受到包的序列号,ttl是数据包的生存周期,time是延时,3.97毫秒。

最后三行是统计结果信息,发送了5个包,接收了5个包,一个包没有丢失,总共用时4004毫秒。min/avg/max/mdev 为最小/平均/最大/平均误差(Mean Deviation) 延时。

ttl为time to life,即icmp包在网络上的存活时间。

经常使用ping命令示例:

ping -c 3 -i 3 -s 1024 -t 255 www.csdn.com
    # -c :固定ping次数,本次为3次
    # -i :发送间隔,本次为3秒
    # -s :数据包大小,单位字节,本次1024为1KB
    # -t :255,ttl值复制代码
[root@VM_0_3_centos ~]# ping -c 3 -i 3 -s 1024 -t 255 www.csdn.com
    PING www.csdn.com (47.95.164.112) 1024(1052) bytes of data.
    1032 bytes from 47.95.164.112 (47.95.164.112): icmp_seq=1 ttl=250 time=38.4 ms
    1032 bytes from 47.95.164.112 (47.95.164.112): icmp_seq=2 ttl=250 time=38.3 ms
    1032 bytes from 47.95.164.112 (47.95.164.112): icmp_seq=3 ttl=250 time=38.4 ms复制代码
--- www.csdn.com ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 6006ms
    rtt min/avg/max/mdev = 38.334/38.402/38.447/0.167 ms复制代码

ping失败案例:

ping -c 3 -i 3 -s 1024 -t 255 www.yaojiaxiaoyuan.com
    PING www.yaojiaxiaoyuan.com.qiniudns.com (1.1.1.1) 1024(1052) bytes of data.复制代码
--- www.yaojiaxiaoyuan.com.qiniudns.com ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 5999ms复制代码

能够看到,由于个人网站www.yaojiaxiaoyuan.com备案过时了,因此探测的时候发送3个包都丢失了,丢失率100%。

ping只能探测ip及域名,可是无法探测端口,下期的进阶命令会说道telnet,能够远程探测端口。

2.6.4 cpu、进程及内存监视器:top

top命令能够用于实时监控cpu的状态,显示系统中各个进程的资源占用状况。

经常使用命令示例:

top
    # 对,无参数的top命令是最长用的资源监控命令。
    # 再往下会说些经常使用的交互命令。复制代码
[root@VM_0_3_centos ~]# top
    top - 23:03:23 up 127 days, 13:56,  2 users,  load average: 0.00, 0.01, 0.05
    Tasks:  79 total,   1 running,  78 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.2 us,  0.0 sy,  0.0 ni, 99.7 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3882032 total,   145996 free,   283752 used,  3452284 buff/cache
    KiB Swap:  2097148 total,  1422392 free,   674756 used.  3218052 avail Mem 复制代码
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                    
    964 redis     20   0  142960   7244    988 S   0.3  0.2 168:01.87 redis-server                                                                                                               
    15515 root      20   0  260068 123108   3988 S   0.3  3.2  20:12.97 YDService                                                                                                                  
    30378 root      20   0  155536   2132   1540 R   0.3  0.1   0:00.06 top     复制代码
…………
    # 后面还有不少,省略了复制代码

由于域名已经被注销了,目前无法截图,因此只能复制文字出来了。

结果第一行,为uptime命令的执行结果。后面进阶命令会说道,你们感兴趣能够自行执行下。

23:03:23  # 当前系统时间    
    up 127 days, 13:56 # 系统已运行127天13小时56分
   2 users # 两个用户在登陆
   load average: 0.00, 0.01, 0.05 # 最近1分钟、5分钟、15分钟的负载状况复制代码

第二行,进程信息。共79个进程,1个运行,78个睡眠,中止的0个,僵死的0个。

第三行,cpu状态信息。

0.2 us # 用户空间占比
    0.0 sy # 内核空间占比
    0.0 ni # 改变过优先级的进程占用比
    99.7 id # 空闲CPU百分比
    0.2 wa # I/O等待占用cpu百分比
    0.0 hi # 硬中断占用cpu百分比
    0.0 si # 软中断占用cpu百分比
    0.0 st # 虚拟机占用比复制代码

第四行、第五行,分别是物理内存状态及虚拟内存状态。

total # 内存总量
    free  # 空闲内存
    used  # 已用内存
    buff/cache # 缓存复制代码

第六行为空行,第七行之后就是系统中各进程的监控状态。

PID  # 进程id
    USER # 用户,进程全部者
    PR   # 优先级
    NI   # nice值,负值高优先
    VIRT # 进程使用的虚拟内存总量,KB
    RES  # 所用物理内存大小,KB
    SHR  # 共享内存大小
    S    # 进程状态。S=睡眠sleep,R=运行running,D=不可终端的休眠状态,T=stopped,Z=zombie僵尸进程
    %CPU # 占用CPU百分比
    %MEM # 占用物理内存百分比
    TIME+ # 进程使用CPU时间统计
    COMMAND # 进程名复制代码

其余经常使用命令示例:

top -c
    # 第七行后进程信息显示进程全路径复制代码
top -n 2
    # -n : 指定更新次数两次再也不刷新,无参数会一直刷新复制代码

top的交互模式:

按1能够显示多核CPU的信息。

按b能够高亮选中某列,再使用符号"<"或“>”来向左或向右降序排序。

关于资源监控还有许多很实用的工具:如iostat、mpstat、iftop、vmstat、iotop、sar等工具,有兴趣能够自行研究,或者等下一篇linux进阶命令出来再看一看。

3、结束语

这篇文断断续续写了一个多月,终于在今天完结了,下一篇是linux核心命令进阶及shell入门。

原本在大纲里已经把shell入门放进这篇来了,可是想一想,仍是放到下篇吧。就这样吧,linux的命令实在太多了,可是经常使用的其实本篇大部分都囊括了。

可能还有些一些涉及文件上传、下载、安装的经常使用命令如curl、wget、yum、rpm、ssh、scp等等,还有系统管理、网络管理等等命令都放在下篇了。

最后,感谢老婆给了我这么大动力。感谢。

撒花,结束,退场。

公众号注册的比较晚,没有评论功能,因此通常用来发长文。知识星球至关于技术朋友圈,有问题你们能够提问,讨论。

欢迎关注个人公众号:姚毛毛的博客公众号

欢迎加入个人知识星球,目前免费哦。知识星球:姚毛毛的私密花园知识星球

相关文章
相关标签/搜索