** Linux系统管理基本操作**

** 性能监控**

uptime 	#监控CPU使用情况

free		#监控内存及交换分区使用情况
选项:		-b|-k|-m	#指定输出容量的单位,分别为Byte,KB,MB

df 		#监控磁盘使用情况
选项:		-h:人性化方式显示容量信息
		-i:显示磁盘inode使用量信息
		-T:显示文件系统类型

cat /proc/meminfo 	#查看内存,空闲情况配置文件
	MemTotal //内存大小	

cat /etc/redhat-release
	查看当前版本发行信息

uname -r  	#列出内核版本

lscpu	  	#列出CPU处理器信息

** 进程管理**

程序:静态的代码,占用硬盘的空间
进程:动态的代码,占用内存,CPU的空间
	父进程/子进程	
		杀僵尸进程(一般会找到其父进程然后 杀其父进程)
	进程标识:PID
查看进程树
	pstree (Processes Tree)
	 格式:pstree [选项] [PID或用户名]
	 选项:
		 -a :显示完整的命令行
		 -p :列出对应PID编号 

	[root@svr7 ~]# pstree 
	systemd─┬─ModemManager───2*[{ModemManager}]
		├─NetworkManager─┬─3*[dhclient]
		│                └─2*[{NetworkManager}]
		├─2*[abrt-watch-log]
		├─abrtd
		├─2*[agetty]
		├─alsactl
		├─anacron
		├─atd
		├─auditd─┬─audispd─┬─sedispatch
		│        │         └─{audispd}
		│        └─{auditd}
		├─avahi-daemon───avahi-daemon
		├─chronyd
		├─crond
		├─cupsd
		├─dbus-daemon───{dbus-daemon}
		├─dnsmasq───dnsmasq
		├─firewalld───{firewalld}
		├─gssproxy───5*[{gssproxy}]
		├─ksmtuned───sleep
		├─libvirtd───15*[{libvirtd}]
		├─lsmd
		├─lvmetad
		├─master─┬─pickup
		│        └─qmgr
		├─polkitd───5*[{polkitd}]
		├─rhnsd
		├─rhsmcertd
		├─rsyslogd───2*[{rsyslogd}]
		├─smartd
		├─sshd───sshd───bash───pstree
		├─systemd-journal
		├─systemd-logind
		├─systemd-udevd
		├─tuned───4*[{tuned}]
		└─wpa_supplicant
systemd:所有进程的父进程 (systemd 一旦衰亡 相当于操作系统重启)

	终端1 操作
	 [root@svr7 ~]# useradd lisi
	 [root@svr7 ~]# su - lisi 
	 [lisi@svr7 ~]$ vim /home/lisi/test.txt
	终端2 操作
	 [root@svr7 ~]# pstree lisi
		bash───vim
	 [root@svr7 ~]# pstree -p lisi
		bash(16029)───vim(16100)
	 [root@svr7 ~]# pstree -ap lisi
		bash,16029
			└─vim,16100 /home/lisi/test.txt
查看进程快照
	ps - Processes Snapshot
		格式: ps [选项]...
		选项:
	 aux:显示正在运行的所有进程	(查看进程详细信息)
	 -elf : 列出正在运行的所有进程 (一般用于查看并杀死进程)

	[root@svr7 ~]# systemctl start httpd.service 
	[root@svr7 ~]# ps aux | grep httpd
	root     16895  0.2  0.4 221904  4976 ?        Ss   21:42   0:00 /usr/sbin/http -DFOREGROUND
	apache   16896  0.0  0.3 223988  3120 ?        S    21:42   0:00 /usr/sbin/http -DFOREGROUND
	apache   16897  0.0  0.3 223988  3120 ?        S    21:42   0:00 /usr/sbin/http -DFOREGROUND
	apache   16898  0.0  0.3 223988  3120 ?        S    21:42   0:00 /usr/sbin/http -DFOREGROUND
	apache   16899  0.0  0.3 223988  3120 ?        S    21:42   0:00 /usr/sbin/http -DFOREGROUND
	apache   16900  0.0  0.3 223988  3120 ?        S    21:42   0:00 /usr/sbin/http -DFOREGROUND
	root     16958  0.0  0.0 112660   972 pts/0    D+   21:42   0:00 grep --color=auto httpd
	[root@svr7 ~]# ps -elf | grep httpd
	4 S root     16895     1  0  80   0 - 55476 poll_s 21:42 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
	5 S apache   16896 16895  0  80   0 - 55997 inet_c 21:42 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
	5 S apache   16897 16895  0  80   0 - 55997 inet_c 21:42 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
	5 S apache   16898 16895  0  80   0 - 55997 inet_c 21:42 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
	5 S apache   16899 16895  0  80   0 - 55997 inet_c 21:42 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
	5 S apache   16900 16895  0  80   0 - 55997 inet_c 21:42 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
	0 R root     17308 12065  0  80   0 - 28165 -      21:49 pts/0    00:00:00 grep --color=auto httpd
	[root@svr7 ~]# ps aux | wc -l
	 129
	[root@svr7 ~]# ps -elf | wc -l
	 129
进程动态排名
	top 交互式工具
		格式:top [-d 刷新秒数] [-U 用户名]

	[root@svr7 ~]# top -d 5
	top - 21:54:55 up  1:43(开启时间),  3 users(现在登陆的用户),  load average: 0.01, 0.09, 0.12(负载均衡)
	Tasks: 129 total(进程信息),   2 running(两个正在运行), 127 sleeping(127个休眠进程),   0 stopped(0个停止进程),   0 zombie(0个僵尸进程)
	%Cpu(s):  0.5 us,  0.4 sy,  0.0 ni, 98.7 id,  0.4 wa,  0.0 hi,  0.0 si,  0.0 st
	KiB Mem :  1016916 total,   388440 free,   157532 used,   470944 buff/cache
	KiB Swap:  2097148 total,  2097148 free,        0 used.   671964 avail Mem 
		输入 大写的P  按CPU排序
		输入 大写的M	按内存排序
		输入 q 	退出

检索进程
pgrep - Process Grep
	用途: pgrep [选项].. 查询条件 
	常用选项
	-l:输出进程名,而不仅仅PID (包含就算)
	-U:检索指定用户	(一般用pstree -ap 用户名)
	-t:检索指定终端的进程
	-x:精准匹配完整的进程名

	[root@svr7 ~]# pgrep crond
	 1510
	[root@svr7 ~]# pgrep -l crond
	 1510 crond
	[root@svr7 ~]# pgrep -l log
	 652 abrt-watch-log
	 653 systemd-logind
	 661 rsyslogd		#日志服务
	 670 abrt-watch-log
	[root@svr7 ~]# pstree -ap lisi
	 bash,16029
		 └─vim,19151 /home/lisi/test.txt
	[root@svr7 ~]# pgrep -lU lisi
	 16029 bash
	 19151 vim
	[root@svr7 ~]# who 	#查看登陆终端信息
	 root     pts/0        2017-11-12 20:14 (192.168.4.254)
	 root     pts/1        2017-11-12 21:29 (192.168.4.254)
	 root     pts/2        2017-11-12 21:54 (192.168.4.254)
	[root@svr7 ~]# pgrep -lU lisi -t pts/0
	[root@svr7 ~]# pgrep -lU lisi -t pts/1
	 16029 bash
	 19151 vim
	[root@svr7 ~]# pgrep -lU lisi -t pts/2

进程的前后台调度
	前台启动
	输入正常命令行,运行期间占用当前终端
	后台启动
	在命令行末尾添加"&"符号,不占用当前终端
	Ctrl + z 组合键  挂起当前进程(暂停并转入后台)
	jobs		查看后台任务列表
	fg		将后台任务恢复到前台运行
	bg 		激活后台被挂起的任务

	[root@svr7 ~]# sleep 800 & 		#正在运行放入后台	
	 [1] 19835
	[root@svr7 ~]# jobs
	 [1]+  运行中               sleep 800 &
	[root@svr7 ~]# jobs -l
	 [1]+ 19835 运行中               sleep 800 &
	[root@svr7 ~]# sleep 700
	 ^Z						#键盘上按Ctrl + Z
	 [2]+  已停止               sleep 700
	[root@svr7 ~]# jobs -l
	 [1]- 19835 运行中               sleep 800 &
	 [2]+ 19928 停止                  sleep 700
	[root@svr7 ~]# bg 2
	 [2]+ sleep 700 &
	[root@svr7 ~]# jobs -l
	 [1]- 19835 运行中               sleep 800 &
	 [2]+ 19928 运行中               sleep 700 &
	[root@svr7 ~]# fg 2			#将后台的进程,恢复到前台
	 sleep 700
杀死进程
 干掉进程的不同方法
	 Ctrl+c 组合键,中断当前命令程序
	kill [-9] PID
	killall [-9] 进程名
	pkill 查找条件		#杀掉所有带有查询条件的进程 比较危险 一般不用
		-9 是强制删除 一般如果杀进程杀不死用 -9 要是还杀不死 就杀其父进程

	[root@svr7 ~]# kill  29363
	[root@svr7 ~]# jobs -l
	[1]  29360 运行中               sleep 800 &
	[2]  29361 运行中               sleep 800 &
	[3]- 29362 运行中               sleep 800 &
	[4]+ 29363 已杀死               sleep 800
	[root@svr7 ~]# killall sleep
	[1]   已终止               sleep 800
	[2]-  已终止               sleep 800
	[3]+  已终止               sleep 800
	[lisi@svr7 ~]$ vim /home/lisi/1.txt
	[root@svr7 ~]# killall -9 -u lisi	#强制踢出用户 时用户由登陆状态变为非登陆状态
	已杀死

网络配置

ifconfig 	#网卡接口参数
例:
#设置 eth0 网卡接口IP地址为192.168.2.1/24 
ifconfig eth1 192.168.2.1 netmask 255.255.255.0	
#查看eth1网卡接口信息
ifconfig eth1
#关闭eth0网卡接口
ifconfig eth1 down
#开启eth0网卡接口
ifconfig eth1 up

nmcli 	#网络管理命令行工具
#列出网卡设备
nmcli device status
#查看连接
nmcli connection show
#添加/删除新连接
nmcli connection add con-name 连接名 ifname 网卡名 type ethernet
例如:
nmcli connection add con-name eth4 ifname ens13 type ethernet
nmcli connection del con-name 连接名
#配置连接参数
nmcli connection modify "连接名" ipv4.method manual(手动) ipv4.addresses "IPv4地址/掩码 默认网关" ipv4.dns DNS服务器地址 (或ipv4.dns-search 默认搜索域)connection.autoconnect yes
对RHEL 7.2及以上的系统 默认网关
#激活/禁用 连接
nmcli connection up "连接名"
nmcli connection down "连接名"

hostname	#主机名参数
#查看主机名称
hostname
#设置主机名称
hostname XXX(设置的名称)
hostnamectl set-hostname 新主机名
#主机名配置文件
/etc/hostname 	

网络接口参数
/etc/sysconfig/network-scripts/ifcfg-<网卡接口名>

	参数:
	DEVICE	#设备名称
	TYPE		#设备类型
	BOOTPROTO	#启动协议
	HWADDR	#硬件地址
	ONBOOT	#开机是否启动该网卡
	IPADDR	#IP地址
	PREFIX	#网络为掩码个数
	NETMASK	#子网掩码
	GATEWAY	#默认网关
	DNS		#DNS服务器

ping		#测试网络连通性

traceroute	#使用UDP封装追踪包	
#如果希望使用ICMP封装可以使用-I 选项

nslookup	#帮助检查本地设置的DNS服务器工作是否正常


netstat	#打印网络连接,路由表,网络接口统计等信息
选项: 	-s:显示各种协议数据统计信息
		-n:使用数字形式的IP,端口号,用户ID替代主机,协议,用户等名称信息
		-p:显示进程名称及对应进程ID号
		-l:仅显示在监听的shocket接口信息
		-u:查看udp连接信息
		-t:查看tcp连接信息	

管理系统服务

system v : 顺序加载 RHEL5系列采用
upstart :事件触发 RHEL6系列采用
systemd
		一个更高效的系统&服务管理器
	开机服务i并行启动,各系统服务间的精确依赖
	配置目录: /etc/systemd/system/
	服务目录: /lib/systemd/system/
	主要管理工具:systemctl
	 列出活动的系统服务
	systemctl -t service
	 列出所有系统服务
	systemctl -t service --all
	 控制服务状态
	systemctl  start|stop|restart 服务名  	#启动/停止/重启  
	 查看服务的运行状态
	systemctl status|is-active 服务名	#看状态

管理运行级别(运行模式)
	字符模式 : multi-user.target
	图形模式 : graphical.target
	#查看默认模式
	[root@svr7 ~]# systemctl get-default 
	 multi-user.target
	#设置默认模式
	[root@svr7 ~]# systemctl set-default graphical.target 
	 Removed symlink /etc/systemd/system/default.target.
	 Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
	[root@svr7 ~]# systemctl get-default 
	 graphical.target
当前立即进入相应模式
[root@svr7 ~]# systemctl isolate multi-user.target 	#切换字符
[root@svr7 ~]# systemctl isolate graphical.target 	#切换到图形模式


LANG=zh_CN.UTF-8		//修改当前语言环境(中文)
LANG=en			//修改当前语言环境(英文)