linux的各种常用命令
关机&重启命令
基本命令:
shutdown -h now 立刻进行关机
shutdown 立刻进行关机,和上面一样
shutdown -h 1 1分钟后关机
shutdown -r now 立刻重启计算机
halt 关机,作用和上面一样
reboot 重新启动计算机
sync 把内存的数据同步到磁盘
注意:无论是重启系统还是关闭系统,都要先运行sync命令,把内存中的数据写到磁盘中。虽然目前的shutdown/reboot/halt等命令均已经在关机前自动运行了sync命令。
用户登录和注销
-
登录时尽量少用root账号登录,因为它是系统管理员,拥有最大的权限,为了避免操作失误,可以利用普通用户登录,登录后再用 "su - 用户名",(注意空格)命令来切换成系统管理员身份。
-
当切换用户后,想要回到原来的用户的话,只需要在提示符下输入logout即可回到上一个用户,当当前用户是最开始的登录用户的话使用logout命令会关闭虚拟机。
注意:logout注销指令在图形运行级别无效,在Xshell中运行才会生效。
用户管理
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
添加用户:[useradd 用户名],添加的用户的家目录在root/home下,且创建用户成功后,会自动创建和用户同名的家目录。
在指定目录添加新用户:useradd -d 指定目录 用户名
给指定用户设置或者修改密码:passwd 用户名 ,注意:如果没有指定用户名,则默认给当前用户修改密码。
删除指定用户,但要保留家目录:userdel 用户名
删除指定用户以及用户家目录:userdel -r 用户名 删除时候要注意,因为删除家目录后,该用户里面的数据也会被删除。一般情况下建议保留家目录。
查询用户信息:id 用户名
切换用户:su - 要切换的用户名(switch user)
在操作Linux中,如果当前用户的权限不够,可以通过此指定切换到高权限的用户,比如root,
从权限高的用户切换到权限低的用户,不需要输入密码,反之则需要。
需要返回到原来的用户时,使用exit/logout指令。
查看当前用户/登录用户:whoami/who am i 显示第一次登录的用户的信息,即使用su命令之后还是显示之前的用户信息
用户组
用户组类似于角色,系统可以对有共性/权限的多个用户进行统一的管理。
新增组:groupadd 组名
删除组:groupdel 组名
添加用户时直接加上组:useradd -g 用户组 用户名,如果添加用户的时候没有指定组,则系统会自动创建一个与用户名一样的用户组,将用户放入。
修改/切换用户的组:usermod -g 目标用户组 用户名
用户和组相关文件
-
/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
-
/etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
-
/etc/group 文件
查看组信息 : cat /etc/group
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
实用指令
指定运行级别
-
0:关机
-
1:单用户[经常被用来找回丢失密码]
-
2:多用户状态没有网络服务
-
3:多用户状态有网络服务(即没有图形的界面)
-
4:系统未使用保留给用户
-
5:图形界面
-
6:系统重启
常用运行级别是3和5,也可以指定默认运行级别
指定运行级别命令:init n (n代表0,1,2,3,4,5,6之一)
查看当前运行级别:systemctl get-default
设置默认级别为3:systemctl set-default multi-user.target,与init 3 不同的是,这个指令重启也不会失效
设置默认级别为5:systemctl set-default graphical.target ,与init 5 不同的是,这个指令重启也不会失效
文件目录类指令
显示当前工作目录的绝对路径:pwd
帮助指令:man 获取帮助信息
语法:man [命令或配置文件]
例:查看ls命令的帮助信息: man ls
help指令:语法:help 命令 功能:获得shell内置命令的帮助信息
ls指令:ls 选项[目录或者文件]
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
-lh:将信息以列表的方式显示出来,并且更易读懂
两者可以组合 ls -la或者 ls -al
cd指令:cd [参数] 切换到指定目录,包括绝对路径和相对路径。
cd ~ 或者cd:回到自己的家目录
cd .. 回到当前目录的上一级目录
mkdir指令:mkdir 指令用于创建目录
语法:mkdir [选项] 即要创建的目录,
例:mkdir /home/dog 在home目录下创建dog目录
-p :创建多级目录
例:mkdir -p /home/animal/tiger 在home目录下创建animal目录,并且在animal目录下创建tiger目录
rmdir 指令:用来删除空目录。
语法:rmdir [选项] 要删除的空目录
rmdir只能删除空目录,如果目录下有内容要使用rm -rf 删除目录。
touch指令:用来创建空文件
语法:touch 文件名称
cp指令:用来拷贝文件到指定目录
语法:cp [选项] 要拷贝的文件 拷贝到的地方
选项-r:递归复制整个文件夹
强制覆盖不提示的方法:\cp -r 要拷贝的文件 拷贝到的目的地
rm指令:用来移除文件或目录
语法:rm [选项] 要删除的文件或目录
常用选项:
-r:递归删除整个文件
-f:强制删除不提示
mv指令:用来移动文件或者目录或者给文件重命名
语法:mv oldNameFile newNameFile (功能:重命名)
mv 要移动的文件地址 移动后的目标地址 (功能:移动文件)
cat指令:用来查看文件内容(只能查看,不能修改,因此为了浏览方便,一般会带上管道命令 | more 来进行交互)
语法:cat [选项] 要查看的文件
常用选项:-n 作用:显示行号
more指令:more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置了若干快捷键(交互指令)。
语法:more 要查看的文件
快捷键:
空格键(space):代表向下翻一页
Enter:代表向下翻一行
q:代表立刻离开more,不再显示该文件的内容
Ctrl+F:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行的行号
:f :输出文件名和当前行的行号
less指令:less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端,less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
语法:less 要查看的文件
快捷键:
空格(space):向下翻动一页
PageDown:向下翻动一页
PageUp:向上翻动一页
/字串:向下搜寻【字串】的功能;n:向下查找;N:向上查找
?字串:向上搜寻【字串】的功能;n:向上查找;N:向下查找
q:离开less这个程序
echo指令:输出内容到控制台
语法: echo [选项] [输出内容]
head指令:用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
语法:
head 文件名 (功能:查看文件头10行内容)
head -n 5 文件名 (功能:查看文件头5行内容)
tail指令:tail用于输出文件中尾部的内容,和head相对,默认情况下tail指令显示文件的尾10行内容
语法:
1)tail 文件名 (功能:查看文件尾10行内容)
2)tail -n 5 文件名 (功能:查看文件尾5行内容)
3)tail -f 文件名 (功能:实时追踪该文档的所有更新)
>指令和>>指令:> 输出重定向 和 >> 追加
语法:1)ls -l > 文件名 (功能:列表的内容写入到文件中(覆盖写),如果文件不存在系统会自动创建)
2)ls -al >> 文件名 (功能:列表的内容追加到文件的末尾)
3)cat 文件1 > 文件2 (功能:将文件1的内容覆盖到文件2)
4)echo “内容” >> 文件
ln指令:软连接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
语法:ln -s [原文件或目录] [软链接名] (功能:给原文件创建一个软链接)
当用pwd指令查看目录时,仍然看到的是软链接所在的目录
history指令:查看已经执行过的历史命令,也可以执行历史命令
语法:1)history (功能:查看已经执行过的历史命令)
2)history n (功能:查看最近使用过的n个指令)
时间日期类
date指令-显示当前时间:
1)date (功能:显示当前时间)
2)date +%Y (功能:显示当前年份)
3)date +%m (功能:显示当前月份)
4)date +%d (功能:像是当前是哪一天)
5)date “+%Y-%m-%d %H:%M:%S" (功能:显示年月日时分秒)
date指令-设置日期:
基本语法:date -s 字符串时间
例:设置系统当前时间:2020-11-11 20:02:10 (语句:date -s “2020-11-11 20:02:10”)
cal指令:查看日历指令
语法:cal [选项] (功能:如果不加选项,则显示本月日历)
cal 年份 (功能:显示某一年的日历)
搜索查找类
find指令:find指令将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。
语法:find [搜索范围] [选项]
选项:-name<查询方式> 功能:按照指定的文件名查找模式查找文件
-user<用户名> 功能:查找属于指定用户名所有文件
-size<文件大小> 功能:按照指定的文件大小查找文件
例:查找整个lunux系统下大于200M的文件(+n 大于 -n 小于 n 等于,单位有k ,M,G)
find / -size +200
locate指令:locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,locate指令无需遍历整个文件系统,查找速度较快,为了保证查询结果的准确度,管理员必须定期更新locate。
语法:locate 要搜索的文件
注意:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
which指令:可以查看某个指令在哪个目录下,比如ls指令在哪个目录 which ls
grep指令和 管道符号 | grep过滤查找,管道符。“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
语法:grep [选项] 查找内容 源文件
选项:-n 功能:显示匹配行及行号
-i 功能:忽略字母大小写
例:在home文件夹下的hello.txt文件中,查找“yes”所在行,并且显示行号
写法1:cat -n /home/hello.txt | grep "yes"
写法2:cat /home/hello.txt | grep -n "yes"
写法3:grep -n "yes" /home/hello.txt
压缩和解压类
gzip/gunzip指令:gzip用于压缩文件,gunzip用于解压文件
语法:gzip 文件 (功能:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能:解压文件)
zip/unzip指令:zip用于压缩文件,unzip用于解压,此指令在项目打包发布中很有用。
语法:zip [选项] XXX.zip 将要压缩的内容 (功能:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能:解压缩文件)
zip常用选项: -r 递归压缩,即压缩目录
unzip常用选项: -d<目录> 指定解压后文件的存放目录
tar指令:tar指令是打包指令,最后打包后的文件是.tar.gz的文件。
语法:tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项:1)-c 功能:产生.tar打包文件
2)-v 功能:显示详细信息
3)-f 功能:指定压缩后的文件名
4)-z 功能:打包同时压缩
5)-x 解包.tar文件
应用:1)压缩多个文件,将/home/dog.txt和/home/cat.txt压缩成pc.tar.gz
tar -zcvf pc.tar.gz /home/dog.txt /home/cat.txt (注意空格)
2)将/home的文件夹压缩成myhome.gar.gz
tar -zcvf myhome.gar.gz /home/
3)将pc.tar.gz解压到当前目录
tar -zxvf pc.tar.gz
4)将myhome.tar.gz 解压到/opt/tem目录下
tar -zxvf /home/myhome.tar.gz -C /opt/tmp
组管理和权限管理
在linux中的每个用户必须属于一个组,不能独立与组外,在linux中每个文件有所有者,所在组,其他组的概念。
文件 /目录所有者:
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
-
查看文件的所有者
指令: ls -ahl
实例:drwx------. 16 hao hao 4096 12月 27 13:28 hao (第一个hao即为文件所有者,第二个hao为文件所在组)
-
修改文件所有者
指令:chown 用户名 文件名 (change owner)
例:在root下创建一个文件hello.txt,将其所有者改为tom
chown tom hello.txt
-
修改文件所在的组
指令:chgrp 组名 文件名
其他组:
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
改变用户所在组:
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
-
改变用户所在组
1)usermod -g 组名 用户名
2)usermod -d 目录名 用户名 改变该用户登录的初始目录。
权限
执行 ls -l 命令后会有以下结果:
-rw-r--r--. 1 root root 104 12月 26 16:59 hello.java
各个部分分别代表:
-rw-r--r--. 文件权限
1 文件:硬连接数或 目录:子目录数
root 用户
root 文件所在组
104 文件大小(字节),如果是文件夹,显示4096字节
12月 26 16:59 最后修改日期
hello.java 文件名
对-rw-r--r--.的详细说明:
0-9位说明:
-
第0位确定文件类型(d,-,l,c,b)
-
d是目录,相当于windows的文件夹
-
-代表的是该文件是一个普通文件
-
l是链接,相当于windows的快捷方式
-
c是字符设备文件,鼠标,键盘
-
b是块设备,比如硬盘
-
-
第1-3位确定所有者(该文件的所有者)对该文件拥有的权限。---User
-
第4-6位确定所属组(同用户组的)对该文件拥有的权限。----Group
-
第7-9位确定其他用户拥有该文件的权限。---Other
rwx权限详解:
-
rwx作用到文件
-
[r]代表可读(read):可以读取,查看
-
[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
-
[x]代表可执行(execute):可以被执行
-
-
rwx作用到目录/文件夹
-
[r]代表可读(read):可以读取,ls查看目录内容
-
[w]代表可写(write):可以修改,对目录里面可以创建+删除+重命名 目录/文件
-
[x]代表可执行(execute):可以进入该目录
-
chmod 修改权限
通过chmod指令,可以修改文件或者目录的权限
-
第一种方式:+、-、=变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
1)chmod u=rwx,g=rx,o=x 文件/目录名
2)chmod o+w 文件/目录名 作用:给所有组的对指定文件的权限增加w(写)权限
3)chmod a-x 文件/目录名 作用:给所有组的对指定文件的权限出去x(执行)权限
-
第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件名目录
相当于 chmod 751 文件目录名
修改文件所有者-chown:
语法:chown newowner 文件/目录 作用:改变所有者
chown newowner:newgroup 文件/目录 作用:改变所有者和所在组
-R 如果是目录,则使用其下所有子文件或者目录递归生效
例:将/home/abc.txt 文件的所有者修改成tom
chown tom /home/abc.txt
修改文件/目录所在的组-chgrp:
语法:chgrp newgroup 文件/目录 作用:改变所在组
-R 如果是目录,则使用其下所有子文件或者目录递归生效
例:将/home/abc.txt 文件的所在组修改成shaolin
chgrp shaolin /home/abc.txt
定时任务调度
crond任务调度
crontab 进行定时任务的设置
概述:
-
任务调度:是指系统在某个时间执行的特定的命令或程序。
-
任务调度分类:
-
系统工作:有些重要的工作必须周而复始的执行,如病毒扫描等
-
个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
-
基本语法:
crontab 选项
选项: -e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
快速入门:例
设置任务调度文件:/etc/crontab
设置个人任务调度,执行crontab -e 命令
然后输入任务调度文件:
如:*/1 * * * * ls -l /etc/ > /tem/to.txt
代表每小时的每分钟执行ls -l /etc/ > /tem/to.txt命令
参数说明:五个占位符的说明
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一小时当中的第几分钟 | 0-59 |
第二个* | 一天当中的第几个小时 | 0-23 |
第三个* | 一个月当中的第几天 | 1-31 |
第四个* | 一年当中的第几月 | 1-12 |
第五个* | 一周当中的星期几 | 0-7(0和7都代表星期日) |
特殊符号的说明:
特殊符号 | 含义 |
---|---|
* | 代表任何时间,比如第一个*就代表一小时中每分钟都执行一次的意思 |
, | 代表不连续的时间,比如“0 8,12,16 * * * 命令“,代表在每天的8点0分,12点0分,16,点0分都执行一次命令 |
- | 代表连续的时间范围,比如“0 5 * * 1-6 命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次,比如“*/10 * * * * 命令“,代表每隔10分钟就执行一遍命令 |
例:每隔一分钟,将当前日期和日历都追加到/home/mycal.txt文件中
步骤:1)vim /home/my.sh
写入内容 date >>/home/mycal.txt
cal >> /home/mycal.txt
2)给my.sh增加执行权限,chmod u+x /home/my.sh
3)crontab -e 增加
*/1 * * * * /home/my.sh
at定时任务
基本介绍:
-
at命令是一次性定时计划计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
-
默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行次作业
-
at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
-
在使用at命令,一定要保证atd进程的启动,可以使用相关指令来查看。
at命令格式: at [选项] [时间]
ctrl+D 结束at命令的输入,按两次
atq命令:用来查看系统中执行的工作任务 语法:atq
atrm命令:用来删除已经设置好的任务,语法: atrm 编号
at命令选项:
选项 | 含义 |
---|---|
-m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
-I | atq的别名(用来显示任务列表) |
-d | atrm的别名(用来删除任务) |
-v | 显示任务将被执行的时间 |
-c | 打印任务的内容到标准输出 |
-V | 显示版本信息 |
-q<队列> | 使用指定的队列 |
-f<文件> | 从制定文件读入任务而不是从标准输入读入 |
-t<时间参数> | 以时间参数的形式提交要运行的任务 |
at时间定义:
at指定时间的方法:
-
接受在当天的hh:mm (小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00
-
使用midnight (深夜) , noon (中午) , teatime (饮茶时间,一般是下午4点)等比较模糊的词语来指 定时间。
-
采用12小时计时制,即在时间后面加上AM (上午)或PM (下午)来说明是上午还是下午。例如: 12pm
-
指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy (月/日/年)或dd.mm.yy (日.月年), 指定的日期必须跟在指定时间的后面。例如: 04:00 2021-03-1
-
使用相对计时法。指定格式为: now + count time-units , now就是当前时间, time-units是时间单位, 这里能够是minutes (分钟)、hours (小时)、days (天)、weeks(星期)。count是时间的数量 几天,几小时。例如:now+5 minutes
-
直接使用today (今天)、tomorrow (明天)来指定完成命令的时间。
案例
1)两天后的下午5点执行/bin/ls /home
指令:at 5pm + 2 days
/bin/ls /home
ctrl+D ctrl+D
2)明天17点钟,输出时间到指定文件内 比如/home/hello.txt
指令:at 5pm tomorrow
date > /home/hello.txt
ctrl+D ctrl+D
Linux磁盘分区、挂载
原理介绍:
1)Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
2)Linux采用了一种叫“载入”的处理方法,他的整个文件系统中包含了一整套的文件和目录,切将一个分区和一个目录联系起来,这时要载入的一个分区将使他的存储空间在一个目录下获得
硬盘说明:
-
Linux硬盘分IDE硬盘和SCSI硬盘 ,目前基本上是SCSI硬盘
-
对于IDE硬盘, 驱动器标识符为"hdx~",其中"hd"表明分区所在设备的类型,这里是指IDE硬盘了。"x"为盘号( a为基本盘, b为基本从属盘,c为辅助主盘, d为辅助从属盘) ,“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例, hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
-
对于SCSI硬盘 则标识为"sdx~" , SCSI硬盘是用"sd" 来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
查看所有设备挂载情况:
命令:lsblk 或者 lsblk -f
查询系统整体磁盘使用情况:
命令:df -h
查询指定目录的磁盘占用情况:
语法:du -h /目录 作用:查询指定目录的磁盘占用情况,默认为当前目录
选项: -s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
网络配置
查看windows环境中VMnet8网络配置:ipconfig
查看linux的网络配置:ifconfig
ping测试主机之间网络连通性:
语法:ping 目的主机 功能:测试当前服务器是否可以连接目的主机
设置主机名:
方法:vim /etc/hostname 修改主机名,保存修改内容,reboot
设置主机名和hosts映射:
-
windows下
在C:\Windows\System32\drivers\drivers\etc\hosts 文件下指定即可
案列:192.168.200.130 hao100
-
linux下
在/etc/hosts 文件中指定
案例:192.168.200.130 hao100
进程管理
进程简介
-
在linux中,每个执行的程序都称为一个进程,每一个进程都分配一个id号(pid,进程号)
-
每个进程都可能以两种方式存在的,前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的,后台进程则是实际在操作,但由于屏幕上无法看到进程,通常使用后台方式执行
-
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,知道关机才结束
显示系统执行的进程:
介绍:ps命令是用来查看目前系统中,有哪些正在执行,以及他们执行的情况,可以不加任何参数
命令:ps -a 显示当前终端的所有进程信息
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
ps -aux | grep xxx 查看某个特定的进程
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTY | 终端机号 |
TIME | 此进程所消CPU时间 |
CMD | 正在执行的命令或进程名 |
指令说明:
-
System V 展示风格
-
USER 用户名称
-
PID 进程号
-
%CPU 进程占用CPU百分比
-
%MEN 进程占用物理内存的百分比
-
VSZ 进程占用的虚拟内存大小(单位:KB)
-
RSS 进程占用的物理内存大小(单位:KB)
-
TTY 终端名称,缩写
-
STAT 进程状态:S-表示睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-表示正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
-
STARTED 进程的启动时间
-
TIME CPU时间,即进程使用CPU的总时间
-
COMMAND 启动进程所用的命令和参数,如果过长会被截断显示
终止进程kill和killall
介绍:若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
语法:kill [选项] 进程号 功能:通过进程号杀死/终止进程
killall 进程名称 功能:通过进程名称杀死进程,也支持通配符,这在系统因负载过大变得很慢时很有用
选项:-9 表示强迫进程立即停止
查看进程树pstree
语法:pstree [选项],可以更加直观的来看进程信息
选项:-p 显示进程PID
-u 显示进程的所属用户
服务(service)管理:
介绍:服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd 防火墙等),因此我们又成为守护进程。
service管理指令:1.service 服务名 [start | stop | restart | reload | status]
2.在Centos7.0之后,很多服务不再使用service,而是systemctl
3.service指令管理的服务可以在/etc/init.d中查看
chkconfig指令:
介绍:1.通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭
2.chkconfig指令管理的服务在/etc/init.d查看
基本语法:
1.查看服务 chkconfig --list [ | grep xxx ]
2.chkconfig 服务名 --list
3.chkconfig --level 5 服务名 on/off
注意:chkconfig重新设置服务后自启动或关闭,需要重启机器reboot后生效
服务管理:
语法: systemctl [start | stop | restart | status] 服务名
systemctl指令管理的服务在/user/lib/systemd/system查看
systemctl设置服务的自启动状态:
1.systemctl list-unit-files [| grep 服务名] (查看服务开机启动状态,grep可以进行过滤)
2.systemclt enable 服务名 (设置服务开机启动)
3.systemctl disable 服务名 (关闭服务开机启动)
4.systemctl is-enabled 服务名 (查询某个服务是否是自启动的)
注意:1.关闭或者启用防火墙后,立即生效,不需要重启
2.自己的设置防火墙开启和关闭等只会临时生效,当重启系统后,还是会回归到以前对服务的设置
3.如果希望设置某个服务自启动或者关闭永久生效,要使用 systemctl [enable|disable] 服务名来设置
打开或关闭指定端口:
在真正的生产环境,往往需要将防火墙打开,但是如果把防火墙打开,外部请求数据包就不能跟服务器监听端口通信,这时候就需要打开指定的端口。
指令:
打开端口:firewall-cmd --permanent --add-port=端口号/协议
关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
重新载入,设值才会生效:firewall-cmd --reload
查询端口是否开放:firewall-cmd --query-port=端口/协议号
例:开放111端口:firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --reload
动态监控进程:
介绍:top与ps命令相似,她们都是用来显示正在执行的进程,top与ps最大的不同之处,在于在top在执行一段时间可以更新正在运行的进程。
语法:top [选项]
选项:-d 秒数 功能:指定top命令每隔几秒更新,默认是3秒
-i 功能:使top不显示任何闲置或者僵死进程
-p 功能:通过指定监控进程ID来仅仅监控某个进程
交互操作说明:
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
应用实例:
1.监视特定用户,比如tom用户
top:输入此命令,按回车键,查看执行的进程
u:然后输入“u”回车,再输入用户名,即可
2.终止指定的进程
top:输入此命令,按回车键,查看执行的进程
k:然后输入“k”回车,再输入要结束的进程ID号
监控网络状态:
语法:netstat [选项]
选项:-an 按一定顺序排列输出
-p 显示哪个进程在调用
RPM与YUM
rpm包的管理
rpm用于互联网下载包的打包及安装工具,它包含在某些linux分发版中,它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然搭上了RedHat的标志,但理念是通用的
Linux的分发版本都有采用(suse,redhat,centos等等),可以算是公认的行业标准了。
rpm包的简单查询指令:
查询已安装的rpm列表 rpm -qa | grep xx
例:查看当前系统是否安装了firefox
rpm -qa | grep firefox
返回:firefox-60.2.2-1.el7.centos.x86_64
其中各个部分代表含义为:
名称:firefox
版本号:60.2.2-1
适用操作系统:el7.centos.x86_64
表示centos7.x的64位系统
如果是i686、i386表示32位系统,noarch表示通用
其他指令:rpm -qa 查询所安装的所有rpm软件包
rpm -q 软件包名 查询软件包是否安装
rpm -qi 软件包名 查询软件包信息
rpm -ql 软件包名 查询软件包中的文件
rpm -qf 文件全路径名 查询文件所属软件包
卸载rpm包:
语法:rpm -e RPM包的名称 //erase
应用案例:删除firefox软件包:rpm -e firefox
细节:如果其他软件包依赖于要卸载的软件包,卸载时会产生错误信息
如:rpm -e foo 会报错
如果要强制删除,应该加参数 --nodeps (不推荐),强制删除可能导致依赖该软件包的程序无法运行
rpm -e --nodeps foo
安装rpm包:
语法:rpm -ivh RPM包全路径名称
参数说明:i=install 安装
v=verbose 提示
h=hash 进度条
yum包的管理
介绍:Yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
基本指令:yum list | grep xx 软件列表 查询yum服务器是否有需要安装的软件
yum install xxx 下载安装 安装指定的yum包