一、系统启动相关
这一部分,不是专业的服务器管理人员最好不要随便操作!!!了解即可!
1. init 内核启动的第一个进程
1.1 介绍
所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
1.2 查看运行级别 7个级别
执行命令查看:cat /etc/inittab
数字 | 功能 |
0 | 停机或者关机(千万不能将initdefault设置为0) |
1 | 单用户模式 (可以改root密码) |
2 | 多用户模式 (不能用网络) |
3 | 完全多用户模式(标准的运行级) |
4 | 没有用到 |
5 | X11 (xwindow) 图形化界面模式 |
6 | 重新启动 (千万不要把initdefault 设置为6 ) |
1.3 查看当前系统的运行级别
命令:runlevel
1.4 命令格式
init 数字
* 注意:万万不能把默认设为0或者6。因为0代表关机,6代表重启。如果设置为这两个中的其中一个,就会反复地关机和重启!
2. shutdown 关机或重启
2.1 介绍
系统安全地关机或重启命令,所有登录用户都可看到关机信息。
2.2 命令格式
shutdown [选项] [时间] [通知消息](通知消息可以为空,但必须有选项和时间)
选项 | 功能 |
-a | Use /etc/shutdown.allow. |
-c | 取消已经在进行的shutdown指令内容 |
-f | 重新启动时不进行磁盘检测(fsck) |
-F | 重新启动时进行磁盘检测(fsck) |
-h | 关闭系统和电源 |
-k | 模拟关机(不是真的关机),只是向登录者发送警告信息出去! |
-n | 不调用init进程进行关机,而是强行关机 |
-r | 重启 |
-t | 延迟关机的时间 |
-w | 仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件 |
1.3 常用实例
shutdown –h now #立即关闭系统和电源 shutdown –h 12:00 #在12:00关闭系统和电源 shutdown –h +5 "This System will be shutdown in 5 minutes" #指定五分钟后关闭系统和电源,并发出警告信息 shutdown -r now #立即重启电脑 shutdown –r +3 "3分钟后关机重启" #指定3分钟后重启,并发出警告信息 shutdown –k "Waring:maybe the system will be shutdown" #给所有登录用户发送提醒 shutdown -h 12:30 & #使用命令&将关机命令至于后台处理。不影响当前其它操作
3. halt 另一个关机命令
3.1 介绍
若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。(普通用户也可以)
3.2 命令格式
halt [-n] [-w] [-d] [-f] [-i] [-p]
3.3 参数说明
参数 | 说明 |
-n | 在关机前不做将记忆体资料写回硬盘的动作 |
-w | 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里 |
-d | 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令 |
-f | 没有调用shutdown而强制关机或重启。 |
-i | 在关机之前先把所有网络相关的装置先停止 |
-p | 当关机的时候,顺便做关闭电源(poweroff)的动作 |
3.4 常用实例
halt #关闭系统 halt -p #关闭系统并关闭电源 halt -d #关闭系统,但不留下纪录
4. reboot 重启计算机
4.1 介绍
用于用来重新启动计算机。若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代.。
4.2 命令格式
reboot [-n] [-w] [-d] [-f] [-i]
4.3 参数说明
参数 | 说明 |
-n | 在重开机前不做将记忆体资料写回硬盘的动作 |
-w | 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里 |
-d | 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) |
-f | 强迫重开机,不呼叫 shutdown 这个指令 |
-i | 在重开机之前先把所有网络相关的装置先停止 |
4.4 常用实例
reboot #重新启动计算机
二、获取系统的基本信息
1. uname 获取操作系统的基本信息
1.1 介绍
用来获取电脑和操作系统的相关信息,uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
1.2 命令格式
uname [-amnrsvpio][--help][--version]
1.3 参数说明
参数 | 说明 |
--a或–all | 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 |
-m或–machine | 显示主机的硬件(CPU)名 |
-n或-nodename | 显示主机在网络节点上的名称或主机名称 |
-r或–release | 显示linux操作系统内核版本号 |
-s或–sysname | 显示linux内核名称 |
-v | 显示显示操作系统是第几个 version 版本 |
-p | 显示处理器类型或unknown |
-i | 显示硬件平台类型或unknown |
-o | 显示操作系统名 |
–help | 获得帮助信息 |
–version | 显示版本信息 |
1.4 常用实例
uname -a Linux i2000 3.0.101-0.47.52-default #1 SMP Thu Mar 26 10:55:49 UTC 2015 (0e3c7c8) x86_64 x86_64 x86_64 GNU/Linux
以上实例的基本信息说明:
- 内核名称:Linux
- 主机名:i2000
- 内核版本号:3.0.101-0.47.52-default
- 内核版本:#1 SMP Thu Mar 26 10:55:49 UTC 2015 (0e3c7c8)
- 硬件名:x86_64
- 处理器类型:x86_64
- 硬件平台类型:x86_64
- 操作系统名称:GNU/Linux
2. hostname 显示主机名称
2.1 介绍
用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。
2.2 命令格式
hostname [option]
2.3 参数说明
参数 | 说明 |
--a | 显示主机的别名 |
-l | 显示主机的所有 IP 地址,不依赖 DNS 解析,速度较快 |
-s | 显示短格式主机名 |
-v | 详细信息模式 |
-d | 显示DNS域名 |
-f | 显示FQDN名称 |
-i | 显示主机的ip地址 |
-y | 显示NIS域名 |
2.4 常用实例
[root@apache ~]# hostname #查看本机的主机名 apache.example.com [root@apache ~]# hostname redhat #临时修改主机名 [root@apache ~]# hostname redhat [root@apache ~]# uname -n #这样也可以显示主机名 redhat
hostname newname 临时设置的新的hostname,运行后立即生效,但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的设置文件。
centos7永久修改hostname:
hostnamectl set-hostname newhostname #使用这个命令会立即生效且重启也生效 vim /etc/hosts # 编辑下hosts文件, 给127.0.0.1添加hostname
3. free 显示内存情况
3.1 介绍
显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
3.2 命令格式
free [-bkmotV][-s <间隔秒数>]
3.3 参数说明
参数 | 说明 |
-b | 以Byte为单位显示内存使用情况。 |
-k | 以KB为单位显示内存使用情况。 |
-m | 以MB为单位显示内存使用情况。 |
-h | 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:B=bytes K=kilos M=megas G=gigas T=teras |
-o | 不显示缓冲区调节列。 |
-s<间隔秒数> | 持续观察内存使用状况。 |
-t | 显示内存总和列 |
-V | 显示版本信息 |
3.4 常用实例
free #显示内存使用信息 total used free shared buffers cached Mem: 254772 184568 70204 0 5692 89892 -/+ buffers/cache: 88984 165788 Swap: 524280 65116 459164 free -t #以总和的形式查询内存的使用信息 total used free shared buffers cached Mem: 254772 184868 69904 0 5936 89908 -/+ buffers/cache: 89024 165748 Swap: 524280 65116 459164 Total: 779052 249984 529068 free -s 10 #每10s 执行一次命令 total used free shared buffers cached Mem: 254772 187628 67144 0 6140 89964 -/+ buffers/cache: 91524 163248 Swap: 524280 65116 459164 total used free shared buffers cached Mem: 254772 187748 67024 0 6164 89940 -/+ buffers/cache: 91644 163128 Swap: 524280 65116 459164
4. df 显示磁盘空间情况
4.1 介绍
用于显示目前在Linux系统上的文件系统的磁盘使用情况统计,磁盘分区上可以使用的磁盘空间。
4.2 命令格式
df [选项]... [FILE]...
4.3 参数说明
参数 | 说明 |
-a, --all | 包含所有的具有 0 Blocks 的文件系统,单位默认KB |
--block-size={SIZE} | 使用 {SIZE} 大小的 Blocks |
-h, --human-readable | 使用人类可读的格式(预设值是不加这个选项的...),以KB、MB、GB的单位来显示,可读性高 |
-H, --si | 很像 -h, 但是用 1000 为单位而不是用 1024 |
-i, --inodes | 列出 inode 资讯,不列出已使用 block |
-k, --kilobytes | 就像是 --block-size=1024 |
-l, --local | 限制列出的文件结构 |
-m, --megabytes | 就像 --block-size=1048576 |
--no-sync | 取得资讯前不 sync (预设值) |
-P, --portability | 使用 POSIX 输出格式 |
--sync | 在取得资讯前 sync |
-t, --type=TYPE | 限制列出文件系统的 TYPE |
-T, --print-type | 显示文件系统的形式 |
-x, --exclude-type=TYPE | 限制列出文件系统不要显示 TYPE |
-v | (忽略) |
--help | 在线帮助 |
--version | 显示版本信息 |
4.4 常用实例
[root@apache ~]# df #显示文件系统的磁盘使用情况统计 [root@apache ~]# df test #磁盘使用的文件系统信息 [root@apache ~]# df --total #显示所有的信息 [root@apache ~]# df -h #-h选项,通过它可以产生可读的格式df命令的输出
5. du 显示目录或文件占用空间大小
5.1 介绍
显示目录或文件的大小。显示指定的目录或文件所占用的磁盘空间。
5.2 命令格式
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
5.3 参数说明
参数 | 说明 |
--a | 显示目录中文件的大小 单位 KB |
-b | 显示目录中文件的大小,以字节byte为单位 |
-c | 显示目录中文件的大小,同时也显示总和;单位KB |
-d | 显示DNS域名 |
-k | 显示目录中文件的大小,-k 单位KB |
-m | 显示目录中文件的大小,-m 单位MB |
-s | 仅显示目录的总值,单位KB |
-h | 以K M G为单位显示,提高可读性 |
-x | 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过 |
-L | 显示选项中所指定符号链接的源文件大小 |
-S | 显示个别目录的大小时,并不含其子目录的大小 |
-X | 在<文件>指定目录或文件 |
--exclude=<目录或文件> | 略过指定的目录或文件 |
--max-depth=<目录层数> | 超过指定层数的目录后,予以忽略 |
-D | 显示指定符号链接的源文件大小 |
-H或--si | 与-h参数相同,但是K,M,G是以1000为换算单位 |
-l | 重复计算硬件链接的文件 |
--help | 在线帮助 |
--version | 显示版本信息 |
5.4 常用实例
[root@apache ~]# du #显示目录或者文件所占空间 [root@apache ~]# du log2012.log #显示指定文件所占空间 [root@apache ~]# du -h test #方便阅读的格式显示test目录所占空间情况
6. who 显示现在有哪些用户正使用系统
6.1 介绍
用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
6.2 命令格式
who - [husfV] [user]
6.3 参数说明
参数 | 说明 |
--H 或 --heading | 显示各栏位的标题信息列 |
-i 或 -u 或 --idle | 显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串 |
-m | 此参数的效果和指定"am i"字符串相同 |
-q 或--count | 只显示登入系统的帐号名称和总人数 |
-s | 此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题 |
-w 或-T或--mesg或--message或--writable | 显示用户的信息状态栏 |
--help | 在线帮助 |
--version | 显示版本信息 |
6.4 常用实例
[root@apache ~]# who ##显示当前登录系统的用户 [root@apache ~]# who -H ##显示当前登录系统的用户及标题栏 [root@apache ~]# who -m -H ##只显示当前用户
7. netstat 显示网络状态
7.1介绍
用于显示网络状态。利用netstat指令可让你得知整个Linux系统的网络情况。
7.2 命令格式
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
7.3 参数说明
参数 | 说明 |
-a或--all | 显示所有连线中的Socket |
-A<网络类型>或--<网络类型> | 列出该网络类型连线中的相关地址 |
-c或--continuous | 持续列出网络状态 |
-C或--cache | 显示路由器配置的快取信息 |
-e或--extend | 显示网络其他相关信息 |
-F或--fib | 显示FIB |
-g或--groups | 显示多重广播功能群组组员名单 |
-h或--help | 在线帮助 |
-i或--interfaces | 显示网络界面信息表单 |
-l或--listening | 显示监控中的服务器的Socket |
-M或--masquerade | 显示伪装的网络连线 |
-n或--numeric | 直接使用IP地址,而不通过域名服务器 |
-N或--netlink或--symbolic | 显示网络硬件外围设备的符号连接名称 |
-o或--timers | 显示计时器 |
-p或--programs | 显示正在使用Socket的程序识别码和程序名称 |
-r或--route | 显示Routing Table |
-s或--statistice | 显示网络工作信息统计表 |
-t或--tcp | 显示TCP传输协议的连线状况 |
-u或--udp | 显示UDP传输协议的连线状况 |
-v或--verbose | 显示指令执行过程 |
-V或--version | 显示版本信息 |
-w或--raw | 显示RAW传输协议的连线状况 |
-x或--unix | 此参数的效果和指定"-A unix"参数相同 |
--ip或--inet | 此参数的效果和指定"-A inet"参数相同 |
7.4 常用实例
[root@apache ~]# netstat -a ##显示详细的网络状况 [root@apache ~]# netstat -apu ##显示UDP端口号的使用情况 [root@apache ~]# netstat -an|grep ssh ##找出程序运行的端口
三、与进程有关命令
1. ps 显示当前进程的状态
1.1 介绍
用于显示当前进程 (process) 的状态。
1.2 命令格式
ps [options] [--help]
1.3 参数说明
命令 | 说明 |
e | 显示所有进程,环境变量 |
f | 全格式 |
h | 不显示标题 |
l | 长格式 |
w | 宽输出 |
a | 显示终端上地所有进程,包括其他用户地进程 |
r | 只显示正在运行地进程 |
x | 显示没有控制终端地进程 |
u | 以用户为主的格式来显示程序状况 |
au | 显示较详细的资讯 |
aux | 显示所有包含其他使用者的行程 |
-C<命令> | 列出指定命令的状况 |
--lines<行数> | 每页显示的行数 |
--width<字符数> | 每页显示的字符数 |
--help | 显示帮助信息 |
--version | 显示版本显示 |
1.4 常用实例
[root@apache ~]# ps -ef ##用标准的格式显示进程的 [root@apache ~]# ps aux ##用BSD的格式来显示 [root@apache ~]# ps -ef|grep jboss ##查看jboss进程
2. kill 删除进程
2.1 介绍
用于删除执行中的程序或工作。
kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
2.2 命令格式
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
2.3 参数说明
参数 | 说明 |
--l <信息编号> | 若不加<信息编号>选项,则-l参数会列出全部的信息名称 |
-s <信息名称或编号> | 指定要送出的信息 |
[程序] | [程序]可以是程序的PID或是PGID,也可以是工作编号 |
2.4 常用实例
[root@apache ~]# kill 12345 ##杀死进程12345 [root@apache ~]# kill -KILL 123456 ##强制杀死进程 [root@apache ~]# kill -9 123456 ##彻底杀死进程 [root@apache ~]# kill -9 $(ps -ef | grep hnlinux) ##杀死指定用户所有进程:方法一 过滤出hnlinux用户进程 [root@apache ~]# kill -u hnlinux ##杀死指定用户所有进程:方法二
3. killall 杀死指定名字的进程
3.1 介绍
用于杀死指定名字的进程(kill processes by name)。
3.2 命令格式
killall [参数] [进程名]
3.3 参数说明
参数 | 说明 |
-Z | 只杀死拥有scontext 的进程 |
-e | 要求匹配进程名称 |
-I | 忽略小写 |
-g | 杀死进程组而不是进程 |
-i | 交互模式,杀死进程前先询问用户 |
-l | 列出所有的已知信号名称 |
-q | 不输出警告信息 |
-s | 发送指定的信号 |
-v | 报告信号是否成功发送 |
-w | 等待进程死亡 |
–help | 显示帮助信息 |
–version | 显示版本显示 |
3.4 常用实例
[root@apache ~]# killall nginx ##杀死所有同名进程 [root@apache ~]# killall -9 bash ##强制杀死所有同名进程
4. top 实时显示进程动态
4.1 介绍
用于实时显示 process 的动态。显示当前正在运行的进程。
4.2 命令格式
top [-] [d delay] [q] [c] [S] ▼显示 [i] [n] [b]
4.3 参数说明
参数 | 说明 |
d | 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s |
q | 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 |
c | 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 |
s | 安全模式,将交谈式指令取消, 避免潜在的危机 |
i | 不显示任何闲置 (idle) 或无用 (zombie) 的行程 |
n | 更新的次数,完成后将会退出 top |
b | 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 |
4.4 常用实例
[root@apache ~]# top ##显示进程信息 [root@apache ~]# top -c ##显示完整命令 [root@apache ~]# top -n 2 ##表示更新两次后终止更新显示 [root@apache ~]# top -p 139 ##显示进程号为139的进程信息,CPU、内存占用率等