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 //修改当前语言环境(英文)
本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2057060,如需转载请自行联系原作者