10.Linux开关机及系统进程命令;Linux系统服务管理与启停
01.Linux系统启动流程
02.关于Linux开机与关机?
03.Linux如何关闭与重启?
04.Linux系统关机常用命令?
05.Linux系统重启常用命令?
06.系统信息与进程类命令
07.涉及到的命令操作演示
笔记:
01.Linux系统启动流程
1)开机BIOS自检,加载硬盘。
2)读取MBR,进行MBR引导。
3)grub引导菜单(Boot Loader)。
4)加载内核kernel。
5)启动init进程,依据inittab文件设定运行级别
6)init进程,执行rc.sysinit文件。
7)启动内核模块,执行不同级别的脚本程序。
8)执行/etc/rc.d/rc.local
9)启动mingetty,进入系统登陆界面。
总结:开机BIOS自检 -> 读取MBR -> 引导加载程序grub -> 加载内核kernel -> 初始化进程init process -> 用户登录login
02.关于Linux开机与关机?
关于开机与关机? 定义系统的状态,在不同的状态下提供不同的应用(参考/etc/inittab)。
RUNLEVEL 级别 ACTION 说明
0 系统关机
1 单用户模式
2 本地多用户模式(无法使用远程网络)
3 网络多用户模式
4 系统保留未定义
5 带图形界面的网络多用户模式
6 系统重启
init 0???????立刻关机
init 6???????立刻重启
03.Linux如何关闭与重启?
Linux是一个多用户多任务的系统,关机时,需要注意以下事项:
观察系统的使用状态,如谁在线,在线的用户在干什么(w)
通知在线使用者关机的相关信息(可选)(wall,write)
使用{BANNED}最佳安全的关机方式(执行关机命令前执行sync将内存数据写入硬盘)
Linux系统安全关机过程:
执行sync命令将内存数据写入硬盘
关机命令下发,通知用户关机
停止系统的所有进程
卸载系统挂载的设备
04.Linux系统关机常用命令?
halt 立刻关机
poweroff 立刻关机
shutdown -h now 立刻关机(root用户)
shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消关机、也可以取消重启。
05.Linux系统重启常用命令?
reboot 立刻重启
shutdown -r now 立刻重启(root用户使用)
shutdown -r 10 过10分钟自动重启(root用户使用)
shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
06.系统信息与进程类命令(查看命令的实例:Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 (linuxcool.com)
man命令 – 查看帮助信息
1、查看指定命令的帮助信息: [root@linuxcool ~]# man ls
2、查看指定配置文件的帮助信息:[root@linuxcool ~]# man 5 passwd
(如果即有passwd命令,又有/etc/passwd文件,则需要手动指定帮助信息的编号。编号规则:普通命令为1,函数为2,库文件为3,设备为4,配置文件为5,游戏为6,宏文件为7,系统命令为8,内核程序为9,TK指令为10。)
3、找到某个命令的帮助信息的存储位置:[root@linuxcool ~]# man -w ls
/usr/share/man/man1/ls.1.gz
4、找到某个配置文件的帮助信息的存储位置:[root@linuxcool ~]# man -w 5 passwd
/usr/share/man/man5/passwd.5.gz
su 命令 – 切换用户身份。
eg: 变更至指定用户身份:????????[root@linuxcool ~]# su linuxcool
完全变更至指定用户身份: [root@linuxcool ~]# su - linuxcool
who命令 – 查看当前登录用户信息。
eg:查看当前全部的登录全部用户信息: [root@linuxcool ~]# who -H -a
w命令 – 显示已登录用户。
eg: 1、 显示目前登入系统的用户信息:[root@linuxcool ~]# w
2、不打印头信息: [root@linuxcool ~]# w -h
3、显示用户从哪登录: [root@linuxcool ~]# w -f
4、使用短输出格式: [root@linuxcool ~]# w -s
last命令 – 显示用户或终端的登录情况。
eg: 1、显示近期用户或终端的登录情况:[root@linuxcool ~]# last
2、简略显示,并指定显示的个数: [root@linuxcool ~]# last -n 5 -R
3、显示{BANNED}最佳后一列显示主机IP地址: [root@linuxcool ~]# last -n 5 -a -i
date命令 – 显示或设置系统日期与时间。
eg: 1、以默认格式输出系统当前的日期与时间信息:[root@linuxcool ~]# date
Thu May 11 09:14:35 CST 2022
2、按照“年-月-日”的指定格式输出系统当前的日期信息:[root@linuxcool ~]# date "+%Y-%m-%d"
2022-05-11
3、按照“小时:分钟:秒”的指定格式输出系统当前的时间信息:[root@linuxcool ~]# date "%H:%M:%S" //语法好像不对 date "+%H:%M:%S"
09:14:35
4、设置当前系统为指定的日期和时间:[root@linuxcool ~]# date -s "20221101 8:30:00"
Sun Nov 1 08:30:00 CST 2022
uname命令 – 显示系统内核信息。
eg: 1、显示系统内核名称:[root@linuxcool ~]# uname
Linux
2、显示系统所有相关信息(含内核名称、主机名、版本号及硬件架构):[root@linuxcool ~]# uname -a
Linux linuxcool.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
3、显示系统内核版本号:[root@linuxcool ~]# uname -r
4.18.0-80.el8.x86_64
4、显示系统硬件架构:[root@linuxcool ~]# uname -i
x86_64
reboot 重启计算机,如 reboot;shutdown -r now 停止服务后重启。
poweroff 关闭计算机。
shutdown -h 0 关闭计算机,如 shutdown -h now 表示停止服务后再关闭。
free命令 – 显示系统内存使用量情况。
eg: 1、以默认的容量单位显示内存使用量信息:[root@linuxcool ~]# free
total used free shared buff/cache available
Mem: 2013304 1372796 87432 17620 553076 444040
Swap: 2097148 1804 2095344
2、以MB位单位显示内存使用量信息:[root@linuxcool ~]# free -m
total used free shared buff/cache available
Mem: 1966 1342 123 14 499 434
Swap: 2047 9 2038
3、以易读的单位显示内存使用量信息:[root@linuxcool ~]# free -h
total used free shared buff/cache available
Mem: 1.9Gi 1.3Gi 120Mi 14Mi 500Mi 431Mi
Swap: 2.0Gi 9.0Mi 2.0Gi
4、以易读的单位显示内存使用量信息,每个10秒刷新一次:[root@linuxcool ~]# free -hs 10
total used free shared buff/cache available
Mem: 1.9Gi 1.3Gi 119Mi 14Mi 500Mi 430Mi
Swap: 2.0Gi 9.0Mi 2.0Gi
total used free shared buff/cache available
Mem: 1.9Gi 1.3Gi 119Mi 14Mi 500Mi 430Mi
Swap: 2.0Gi 9.0Mi 2.0Gi
ps命令 – 显示进程状态。
eg: 1、显示系统中全部的进程信息,含详细信息:[root@linuxcool ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 20:05 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 20:05 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 20:05 0:00 [rcu_par_gp]
………………省略部分输出信息………………
2、 结合输出重定向,将当前进程信息保留备份至指定文件:[root@linuxcool ~]# ps aux > backup.txt
3、 结合管道操作符,将当前系统运行状态中指定进程信息过滤出来:[root@linuxcool ~]# ps -ef | grep ssh
………………省略输出信息………………
4、 结合管道操作符,将当前系统运行状态中指定用户的进程信息过滤出来:[root@linuxcool ~]# ps -u root
PID TTY TIME CMD
1 ? 00:00:01 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
………………省略部分输出信息………………
5、 结合管道操作符与sort命令,依据处理器使用量(第三列)情况降序排序:[root@linuxcool ~]# ps aux | sort -rnk 3
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2341 0.4 8.1 4504040 164896 tty2 Sl+ 20:05 0:24 /usr/bin/gnome-shell
root 4534 0.3 0.4 220064 8520 ? Ssl 21:37 0:00 /usr/libexec/nm-dispatcher
gdm 1541 0.1 7.3 4211428 147400 tty1 Sl+ 20:05 0:06 /usr/bin/gnome-shell
………………省略部分输出信息………………
6、 结合管道操作符与sort命令,依据内存使用量(第四列)情况降序排序:[root@linuxcool ~]# ps aux | sort -rnk 4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2341 0.4 8.1 4503976 164828 tty2 Sl+ 20:05 0:27 /usr/bin/gnome-shell
gdm 1541 0.1 7.3 4211428 147556 tty1 Sl+ 20:05 0:08 /usr/bin/gnome-shell
root 2661 0.0 3.1 1271636 63004 tty2 Sl+ 20:05 0:01 /usr/bin/gnome-software --gapplication-service
………………省略部分输出信息………………
uptime命令 – 查看系统负载。
eg: 1、显示当前系统运行负载情况:[root@linuxcool ~]# uptime
15:23:22 up 2 days, 5:13, 3 users, load average: 0.12, 0.04, 0.05
2、使用-p参数显示机器正常运行的时间:[root@linuxcool ~]# uptime -p
up 2 days, 5 hours, 15 minutes
3、使用-s参数显示机器启动时间:[root@linuxcool ~]# uptime -s
2019-05-09 10:09:43
top命令 – 实时显示系统运行状态。
eg: 1、 以默认格式显示系统运行信息:[root@linuxcool ~]# top
top - 02:48:56 up 20 min, 1 user, load average: 0.00, 0.00, 0.04
2848 root 20 0 177712 28820 7700 S 6.2 1.4 0:01.31 sssd_kcm
1 root 20 0 244748 14180 9052 S 0.0 0.7 0:01.10 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
………………省略部分输出信息………………
2、以默认格式显示系统运行信息,但提供完整的进程路径及名称:[root@linuxcool ~]# top -c
3、以批处理模式显示程序信息:[root@linuxcool ~]# top -b
4、设定每隔5秒刷新一次信息:[root@linuxcool ~]# top -d 5
5、设定总显示次数为3回,随后自动退出命令:[root@linuxcool ~]# top -n 5
kill命令 – 杀死进程。
eg: 1、列出系统支持的全部信号列表:[root@linuxcool ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
………………省略部分输出信息………………
2、结束某个指定的进程(数字为对应的PID值):[root@linuxcool ~]# kill 1518
3、强制结束某个指定的进程(数字为对应的PID值):[root@linuxcool ~]# kill -9 1518
vmstat命令 – 显示虚拟内存状态。
eg: 1、显示活动内页:[root@linuxcool ~]# vmstat -a
2、显示启动后创建的进程总数:[root@linuxcool ~]# vmstat -f
3、显示slab信息:[root@linuxcool ~]# vmstat -m
4、头信息仅显示一次:[root@linuxcool ~]# vmstat -n
5、以表格方式显示事件计数器和内存状态:[root@linuxcool ~]# vmstat -s
6、显示指定的硬盘分区状态:[root@linuxcool ~]# vmstat -p /dev/sda1
7、指定状态信息刷新的时间间隔为1秒:[root@linuxcool ~]# vmstat 1
nohup命令 – 后端运行程序。
eg: 1、以后端模式运行指定脚本程序: [root@linuxcool ~]# nohup linux.sh &
2、以后端模式执行指定命令,并将输出结果写入到文件: [root@linuxcool ~]# nohup uptime &> system.txt
jods 查看被挂起和后台运行的进程。 eg:
Ctrl+Z 进程挂起
Ctrl+C 进程终止
fg 进程恢复到前台继续执行
bg 进程恢复到后台继续执行
info 与man没有太大的区别。
whatis 获取相关文件简短的信息。
locate命令 – 快速查找文件或目录。
eg: 1、搜索带有指定关键词的文件: [root@linuxcool ~]# locate network
/dev/network_latency
/dev/network_throughput
/etc/networks
………………省略部分输出信息………………
2、在指定的目录下,搜索带有指定关键词的文件: [root@linuxcool ~]# locate /etc/network
/etc/networks
which命令 – 查找命令文件。
eg: 1、查找某个指定命令文件所在位置:[root@linuxcool ~]# which reboot
/usr/sbin/reboot
2、查找多个指定命令文件所在位置:[root@linuxcool ~]# which shutdown poweroff
/usr/sbin/shutdown
/usr/sbin/poweroff
find命令 – 根据路径和条件搜索指定文件。
eg: 1、全盘搜索系统中所有以.conf结尾的文件: [root@linuxcool ~]# find / -name *.conf
/run/tmpfiles.d/kmod.conf
/etc/resolv.conf
/etc/dnf/dnf.conf
/etc/dnf/plugins/copr.conf
/etc/dnf/plugins/debuginfo-install.conf
………………省略部分输出信息………………
2、在/etc目录中搜索所有大约1M大小的文件:[root@linuxcool ~]# find /etc -size +1M
/etc/selinux/targeted/policy/policy.31
/etc/udev/hwdb.bin
3、在/home目录中搜索所有属于指定用户的文件:[root@linuxcool ~]# find /home -user linuxprobe
/home/linuxprobe
/home/linuxprobe/.mozilla
/home/linuxprobe/.mozilla/extensions
………………省略部分输出信息………………
4、列出当前工作目录中的所有文件、目录以及子文件信息:[root@linuxcool ~]# find .
.
./.bash_logout
./.bash_profile
………………省略部分输出信息………………
5、在/var/log目录下搜索所有指定后缀的文件,后缀不需要大小写。[root@linuxcool ~]# find /var/log -iname "*.log"
/var/log/audit/audit.log
/var/log/rhsm/rhsmcertd.log
/var/log/rhsm/rhsm.log
………………省略部分输出信息………………
6、在/var/log目录下搜索所有后缀不是.log的文件:[root@linuxcool ~]# find /var/log ! -name "*.log"
/var/log
/var/log/lastlog
/var/log/README
7、搜索当前工作目录中的所有近7天被修改过的文件:[root@linuxcool ~]# find . -mtime +7
./.bash_logout
./.bash_profile
………………省略部分输出信息………………
8、全盘搜索系统中所有类型为目录,且权限为1777的目录文件:[root@linuxcool ~]# find / -type d -perm 1777
/dev/mqueue
/dev/shm
………………省略部分输出信息………………
9、全盘搜索系统中所有类型为普通文件,且可以执行的文件信息:[root@linuxcool ~]# find / -type f -perm /a=x
/boot/vmlinuz-4.18.0-80.el8.x86_64
/boot/vmlinuz-0-rescue-c8b04558503242459d908c6c22a2d481
/etc/X11/xinit/xinitrc.d/50-systemd-user.sh
………………省略部分输出信息………………
10、全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件:[root@linuxcool ~]# find / -name "*.mp4" -exec rm -rf {} ;
grep命令 – 强大的文本搜索工具。
eg: 1、搜索某个文件中,包含某个关键词的内容:[root@linuxcool ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
2、搜索某个文件中,以某个关键词开头的内容:[root@linuxcool ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
3、搜索多个文件中,包含某个关键词的内容:[root@linuxcool ~]# grep linuxprobe /etc/passwd /etc/shadow
/etc/passwd:linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
/etc/shadow:linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7:::
4、搜索多个文件中,包含某个关键词的内容,不显示文件名称:[root@linuxcool ~]# grep -h linuxprobe /etc/passwd /etc/shadow
linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7:::
5、输出在某个文件中,包含某个关键词行的数量:[root@linuxcool ~]# grep -c root /etc/passwd /etc/shadow
/etc/passwd:2
/etc/shadow:1
6、搜索某个文件中,包含某个关键词位置的行号及内容:[root@linuxcool ~]# grep -n network anaconda-ks.cfg
17:network --bootproto=static --device=ens160 --ip=192.168.10.10 --netmask=255.255.255.0 --onboot=off --ipv6=auto --activate
18:network --hostname=linuxcool.com
7、搜索某个文件中,不包含某个关键词的内容:[root@linuxcool ~]# grep -v nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
8、搜索当前工作目录中,包含某个关键词内容的文件,未找到则提示:[root@linuxcool ~]# grep -l root *
anaconda-ks.cfg
grep: Desktop: Is a directory
grep: Documents: Is a directory
grep: Downloads: Is a directory
initial-setup-ks.cfg
9、搜索当前工作目录中,包含某个关键词内容的文件,未找到不提示:[root@linuxcool ~]# grep -sl root *
anaconda-ks.cfg
initial-setup-ks.cfg
10、递归搜索,不仅搜索指定目录,还搜索其内子目录内是否有关键词文件:[root@linuxcool ~]# grep -srl root /etc
/etc/fstab
/etc/X11/xinit/Xclients
/etc/X11/xinit/xinitrc
/etc/libreport/events.d/collect_dnf.conf
………………省略部分输出信息………………
11、搜索某个文件中,精准匹配到某个关键词的内容(搜索词应与整行内容完全一样才会显示,有别于一般搜索):
[root@linuxcool ~]# grep -x cd anaconda-ks.cfg
[root@linuxcool ~]# grep -x cdrom anaconda-ks.cfg
cdrom
12、判断某个文件中,是否包含某个关键词,通过返回状态值输出结果(0为包含,1为不包含),方便在Shell脚本中判断和调用:
[root@linuxcool ~]# grep -q linuxprobe anaconda-ks.cfg
[root@linuxcool ~]# echo $?
0
[root@linuxcool ~]# grep -q linuxcool anaconda-ks.cfg
[root@linuxcool ~]# echo $?
1
13、搜索某个文件中,空行的数量:[root@linuxcool ~]# grep -c ^$ anaconda-ks.cfg
6
help命令 – 显示帮助信息。
eg: 1、以默认格式显示指定命令的帮助信息:[root@linuxcool ~]# help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of the
HOME shell variable.
………………省略部分输出信息………………
2、以短格式显示指定命令的帮助信息:[root@linuxcool ~]# help -s cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
3、以简短格式显示指定命令的帮助信息:[root@linuxcool ~]# help -d cd
cd - Change the shell working directory.
07.涉及到的命令操作演示
1)Linux开关机
关机命令:
halt
poweroff
shutdown -h 0
shutdown -h 10
shutdown -h now
重启命令:
reboot
shutdown -r now
shutdown -r 10
shutdown -r 20:00
2)进程管理命令
w 显示用户信息
w oracle 查看oracle用户的操作记录
useradd oracle 添加一个oracle用户
passwd oracle 给oracle用户设置密码为oracle
ps -aus 列出所有内存中的程序
ps -aus --sort time 列出所有内存中的程序,按时间排序(--sort time)
内存中程序的状态:
S 睡眠
R 运行
I
Z 僵死进程
D
T
P
ps -A 显示所有的进程
ps -u root |more 查看某个用户的进程
ps -ef |grep ssh 查找ssh的进程(常用命令)
ps -aus --sort=-pcpu,+pmem 根据CPU和内存进行排序(-p降序,+p升序)
ps -aux --sort=-pmem |head -5 列出所有内存中的进程,按内存排序显示头5行
kill 杀进程
ps -ef|grep top 查看内存中top进程id,id: 1890
kill -9 1890 杀进程 top的父进程
cat 1.log 查看1.log的内容 (more 1.log)
tail -100f 1.log 实时显示1.log的前100行
ctrl+Z 挂起进程,后台运行,jobs 查看挂起的进程;如果需要前台显示,fg 1;多个进程的话使用fg+编号,如果要在后台显示的,bg 1
ctrl+C 终止进程
top 性能分析
08.Linux系统服务管理与启停
RHEL/OEL 7.x之前,service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。
chkconfig用于查看、设置服务的运行级别。
ntsysv用于直观方便的设置各个服务是否自动启动。
service命令本身是一个shell脚本,它在/etc/init.d目录查找指定的服务脚本,然后调用该服务脚本老完成任务
RHEL/OEL 7.x之后
systemctl是新的系统服务管理命令,该命令是用来替代service和chkconfig两个命令的。
systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
说明:
启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/sysytem里面对应服务配置文件的软链接;禁用服务就是删除此软链接。
Linux系统服务管理与启停
任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service(服务详细信息)
systemctl is-active httpd.service(仅显示是否Active)
加入自定义服务 chkconfig --add test systemctl load test.service
删除服务 chkconfig --del test 停掉应用,删除相应的配置文件
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service
阅读(510) | 评论(0) | 转发(0) |