Linux命令——与系统相关的命令

一、系统启动相关

这一部分,不是专业的服务器管理人员最好不要随便操作!!!了解即可!

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、内存占用率等