个人桌面领域的应用
服务器领域:
linux在服务器领域的应用是最强的。linux免费、稳定、高效等特点在这里得到了很好的体现,尤其在一些高端领域尤为广泛(c/c++/php/java/python/go)。
嵌入式领域:
linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。
linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目都会部署到Linux/Unix系统上。
Linux之父:Linus Torvalds Git创作者、世界著名黑客
Linux主要的发行版:Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain(蝶变)、Fedora、SuSE、OpenSUSE。
Unix来源
Linux来源
Linux与Unix的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEfacJlj-1649765106522)(https://www.yumoyumo.top/wp-content/uploads/2022/04/image-20220406104859580.png)]
安装VMware
下载 VMware Workstation Pro
许可证密钥:
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
前面的如果已经失效,用下面的
FA1M0-89YE3-081TQ-AFNX9-NKUC0
CentOS7.6下载Index of /7.6.1810/isos/x86_64 (centos.org)
用来构建多个虚拟机以实现集群
注意:克隆时需要先关闭Linux系统。
如果你在使用虚拟机系统的时候(Linux),你想回到原先的某一个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理。
虚拟系统安装好了,它的本质就是文件(放在文件夹的),因此虚拟系统的迁移很方便,你可以把安装好的虚拟系统这个文件夹整体拷贝或者剪切到另外位置使用。删除也很简单,用vmware进行移除,再点击菜单->从磁盘删除即可,或者直接手动删除虚拟系统对应的文件夹即可。
介绍:
安装步骤:
进入cenos
点击vm菜单的->install vmware tools
centos会出现一个vm的安装包,xx.tar.gz
拷贝到/opt
使用解压命令tar,得到一个安装文件,cd/opt(进入到opt目录)
tar -zxvf xx.tar.gz
进入该vm解压的目录,/opt目录下 cd vmware…
安装 ./vmware-instal.pl
全部使用默认设置即可,就可以安装成功
注意:安装vmtools需要有gcc,使用gcc -v查看
具体步骤:
菜单->vm->setting,设置选项为always enable,这样就可以读写了
共享文件夹在centos的 /mnt/hgfs/ 下
注意:在实际开发中,文件的上传下载是需要使用远程方式完成的。
/bin [常用] (/user/bin、/user/local/bin)
是Binary的缩写,这个目录存放着最经常使用的命令
/sbin(/user/sbin、/user/local/sbin)
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/home[常用]
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一半该用户名是以用户的账号命名
/root[常用]
该目录为系统管理员,也称作超级权限者的用户主目录
/lib
系统开机所需要的最基本的动态连接共享库,其作用类似与Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
/etc[常用]
所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 my.conf
/usr[常用]
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录
/boot[常用]
存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件
/proc[不能动]
这个目录是一个虚拟的目录,它时系统内存的映射,访问这个目录来获取系统信息
/srv[不能动]
service缩写,该目录一些服务启动之后需要提取的数据
/sys[不能动]
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs
/tmp
这个目录是用来存放一些临时文件的
/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储
/mnt[常用]
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂在在/mnt/上,然后进入该目录就可以查看里面的内容了。
/opt
这是给主机额外安装软件所存放的目录。如安装Oracle数据库就可放在该目录下。默认为空
/user/local[常用]
这是给另一个主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
/var[常用]
这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
/selinux[security-enhanced linux]
SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。
为什么需要远程登录Linux
远程登录客户端有Xshell,Xftp,我们学习使用Xshell和Xftp
下载:家庭/学校免费 - NetSarang Website (xshell.com)
远程登录Linux-Xshell
Xshell是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。
Xshell是一个强大的安全终端莫你软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNET协议。
Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的
查看Linux公网IP
指令: ifconfig
找到ens33(网卡)对应的inet
测试远程机器和linux主机玩过是否通畅
windows下cmd指令:ping Linux主机公网IP
远程上传文件下载-Xftp
是一个基于windows平台的功能强大的SFTP、FTP文件传输协议。使用了Xftp以后,windows用户能安全地在UNIX/Linux和Windows PC之间传输文件
若连接后出现中文乱码,设置连接属性中的编码为UTF-8
Linux系统会内置 vi 文本编辑器
Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用[上下左右]按键来移动光标,你可以使用[删除字符]或[删除整行]来处理档案内容,也可以使用[赋值、粘贴]来处理你的文件数据。
插入模式
按下i、I、o、O、a、A、r、R等任何一个字母后才会进入编辑模式,一般来说按i即可
命令行模式
输入esc,再输入 : 。在这个模式1当中,可以提供你相关指令,完成读取、粗闹闹、替换、离开vim、显示行号等的动作则是在此模式中达成的。
各种模式的切换
Vim常用快捷键:
注意
基本介绍
注意:logout注销指令在图形运行级别无效,在运行级别3下有效。
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账户,然后以这个账户的身份进入系统。
当用户创建成功后,会自动的创建和用户同名的家目录(默认)。
一般情况下建议保留家目录。
当用户不存在时,返回 无此用户。
介绍
在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root。
查看当前用户/登录用户
介绍
类似于角色,系统可以对有共性的多个用户进行同一的管理。
运行级别说明:
0:关机
1:单用户(找回丢失密码)
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
在CentOS7以前,/etc/inittab文件中
之后进行了简化,如下:
multi-user.target:analogous to runlevel 3
graphical.target:analogous to level 5
#To view current default target,run
#To set a default target,run
man 获得帮助信息
例如:查看ls命令的帮助信息 man ls
在linux下,隐藏文件是以 . 开头,选项可以组合使用,比如 ls -al,ls -al /root
help指令
例如:查看cd命令的帮助信息: help cd
直接百度
ls [选项] [目录或是文件] (list)
常用选项
rmdir [选项] 要删除的空目录 (remove directory)删除空目录
cp [选项] source dest
-r :递归复制整个文件夹
例子:1、将/home/hello.txt拷贝到/home/bbb目录下:
cp hello.txt /home/bbb
2、递归复制整个文件夹,将/home/bbb整个目录,拷贝到/opt
cp -r /home/bbb /opt
强制覆盖不提示的方法:\cp -r /home/bbb /opt
rm [选项] 要删除的文件或目录 (remove)移除文件或目录
-r :递归删除整个文件夹
-f :强制删除不提示
例子:1、将/home/hello.txt删除
rm /home/hello.txt
2、递归删除整个文件夹.home/bbb
rm -rf /home/bbb(删除整个文件夹,不提示)
mv [old] [new] 移动文件与目录或重命名
mv oldFileName newFileName (要求在同一文件夹下)重命名
mv /temp/movefile /targetFolder 移动文件
mv /temp/movefile /targetFolder/newFileName 移动文件并重命名
例子:1、将/home/cat.txt文件重命名为pig.txt mv cat.txt pig.txt
2、将/home/pig.txt文件移动到/root目录下 mv /home/pig.txt /root
3、移动整个目录,比如将/opt/bbb移动到/home下 mv /opt/bbb /home/
cat [选项] 要查看的文件 查看文件内容(只读)
-n 显示行号
例: cat -n /etc/profile
cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more
cat -n /etc/profile | more [进行交互]
echo [选项] [输出内容] 输出内容到控制台
例子:1、使用echo指令输出环境变量: echo $HOSTNAME
2、使用echo指令输出hello world echo “hello world”
head [选项] 文件 显示文件的开头部分,默认情况下显示文件的前10行
head 文件 查看文件头10行内容
head -n 5 文件 查看文件的前5行内容,5可以是任意行数
例子:查看/etc/profile的前5行代码: head -n 5 /etc/profile
tail [选项] 文件 输出文件中尾部的内容,默认情况下tail指令显示文件尾10内容
tail 文件 查看文件为10行内容
tail -n 5 文件 查看文件尾5行内容,5可以是任意行数
tail -f 文件 实时追踪该文档的所有更新
例子:1、查看/etc/profile的尾5行代码: tail -n 5 /etc/profile
2、实时监控 mydate.txt: tail -f /home/mydate.txt
ln -s [原文件或目录] [软链接名] 给原文件创建一个软链接
例子:1、在/home目录下创建一个软连接myroot,连接到/root目录: ln -s /root /home/myroot
2、删除软连接myroot: rm /home/myroot
history 查看已经指向过的历史命令,也可以执行历史指令
例子:1、显示所有的历史命令: history
2、显示最近使用过的10个指令: history 10
3、执行历史编号为5的指令: !5
date指令 显示当前日期
date 显示当前时间
date +%Y 显示当前年份
date +%m 显示当前月份
date +%d 显示当前是哪一天
date “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒
例子:1、显示当前时间信息: date
2、显示当前时间年月日: date “+%Y-%m-%d”
3、显示当前时间年月日时分秒:date “+%Y-%m-%d %H:%M:%S”
date指令 设置日期
date -s 字符串时间
例子:设置系统当前时间为2020-11-03 20:00:00:date =s “2020-11-03 20:00:00”
cal指令 查看日期
cal [选项] [[[日] 月] 年] 不加选项,显示本月日历
例子:1、显示当前日历:cal
2、显示2022年日历:cal 2022
find [搜索范围] [选项] 从指定的目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
-name [查询方式]:按照指定的文件名查找模式查找文件
-user [用户名]:查找属于指定用户名所有文件
-size [文件大小]:按照指定的文件大小查找文件
+n 大于
-n 小于
n 等于
单位:k M G
例子:1、按文件名查找/home目录下的hello.txt文件:find /home -name hello.txt
2、按拥有者查找/opt目录下,用户名为root的文件:find /opt -user root
3、查找整个linux系统下大于200M的文件:find / -size +200M
locate [搜索文件] 定位文件路径
locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度比较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
例子:使用locate指令快速定位hello.txt文件所在目录
grep指令和管道符号 |
grep过滤查找;管道符 “|” 表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 原文件
例子:在hello.txt文件中查找"yes"所在行,并显示行号
1、cat /home/hello.txt | grep -n “yes”
2、grep -n “yes” /home/hello.txt
gunzip 文件.gz 解压缩文件
例子:1、将/home下的hello.txt文件进行压缩: gzip /home/hello.txt
2、将/home下的hello.txt.gz文件进行解压缩: gunzip /home/hello/txt/gz
unzip [选项] XXX.zip 解压缩文件
例子:1、将/home下的所有文件/文件夹进行压缩成myhome.zip:zip -r myhome.zip /home/
2、将myhome.zip解压到/opt/tmp目录下:unzip -d /opt/tmp /home/myhome.zip
tar [选项] XXX.tar.gz 打包的内容 打包目录,压缩后的文件格式为.tar.gz
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解包.tar文件
例子:1、压缩多个文件,将/home/pig.txt和/home/cat.txt压缩成pc.tar.gz:
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
2、将/home的文件夹压缩成myhome.tar.gz:
tar -zcvf myhome.tar.gz /home/
3、将pc.tar.gz解压到当前目录:
tar -zxvf pc.tar.gz
4、将myhome.tar.gz解压到/opt/tmp2目录下:
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
基本介绍
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组的概念。
ls -ahl
查看文件的所有者和所在组
chown 用户名 文件/目录名
(change owner)修改文件/目录所有者
chown 用户名:组名 文件/目录
修改文件/目录的所有者和所在组
chown -R 用户名 目录
修改该目录下所有文件和目录的所有者
当某个用户创建了一个文件后,这个文件的所在组默认就是该用户所在的组。
useradd -g 组名 用户名
添加一个用户并将其所在组设置为给定的组chgrp 组名 文件/目录名
(change group)修改文件/目录所在组chgrp -R 组名 目录名
修改目录下所有文件和组的所在组除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
usermod -g 新组名 用户名
usermod -d 目录名 用户名
改变该用户登录的初始目录。(用户需要有进入到新目录的权限)0-9位说明:
0
确定文件类型
l
链接,相当于windows的快捷方式d
目录,相当于windows的文件夹c
字符设备文件,鼠标,键盘b
块设备,如硬盘-
普通文件1-3
确定所有者(该文件的所有者)拥有该文件的权限 —User4-6
确定所属组(同用户组的用户)拥有该文件的权限 —Group7-9
确定其他用户拥有该文件的权限 —Otherrwx权限
案例:
drwxr-xr-x. 18 root root 4.0K 4月 9 23:53 .config
数字表示权限:r=4,w=2,x=1,即rwx=7
通过chmod指令,可以修改文件或者目录的权限
+、-、=变更权限
u
:所有者、g
:所在组、o
:其他人、a
:所有人(ugo)
+
:增加权限、-
除去权限、=
设置权限
chmod u=rwx,g=rx,o=x
文件/目录名chmod o+w
文件目录名chmod a-x
文件目录名通过数字变更权限
r=4、w=2、x=1 rwx=7
chmod u=rwx,g=rx,o=x
文件/目录名 相当于
chmod 751
文件/目录名
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:
crontab [选项]
常用选项
例子:设置任务调度文件 /etc/crontab
设置个人任务调度。执行crontab -e命令。接着输入任务到调度文件
如:* /1 * * * * ls -l /etc/ > /tmp/to.txt
意思是每小时的每分钟执行 ls -l /etc/ > /tmp/to.txt 命令
*
第一个* 一小时当中的第几分钟 0-59
第二个* 一天当中的第几小时 0-24
第三个* 一个月当中的第几天 1-31
第四个* 一年当中的第几个月 1-12
第五个* 一周当中的星期几 0-7(0和7都表示星期日)
,
-
*/n
应用实例:
每隔一分钟,就将当前的日期信息追加到/tmp/mydate中
crontab -e
*\1 * * * * date >> /tmp/mydate
每隔一分钟,将当前日期和日历都追加到/home/mycal文件中
vim /home/my.sh写书内容date >> /home/mycal 和cal >> /home/mycal
给my.sh增加执行权限:chmod u+x /home/my.sh
contab -e增加*\1 * * * * /home/my.sh
3.每天凌晨2:00将mysql数据库testdb备份到文件中。
crontab -e
0 2 * * * mysqldump -u root -p password testdb > /home/db.bak
crontab -r
终止任务调度crontab -l
列出当前有哪些任务调度service crond restart
重启任务调度at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
at命令是一次性定时计划任务,执行完一个任务后不在执行此任务了。
在使用at命令时,一定要保证atd进程的启动,可以使用相关指令来查看:
ps -ef | grep atd
检测atd是否运行
at [选项] [时间]
Ctrl+D结束at命令的输入
-m
(mail)当指定的任务被完成后,将给用户发送邮件,即使没有标准输出。-I
atq的别名-d
atrm的别名-v
显示任务将被执行的时间-c
打印任务的内容到标准输出-V
显示版本信息-q <队列>
使用指定的队列-f <文件>
从指定文件读入任务而不是从标准输入读入-t <时间参数>
以时间参数的形式提交要运行的任务atq
查看系统中没有执行的工作任务
atrm 编号
删除以及设置对的任务
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。
hdx~
,其中hd
表明分区所在设备的类型,这里是指IDE硬盘。x
为盘号(a为基本盘、b为基本从属盘、c为辅助主盘、d为辅助从属盘),~
代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例如:hda3表示第一个IDE硬盘上的第三个主分区或扩展分区。sdx~
,SCSI硬盘是用sd来表示分区所在设备的类型,其余则和IDE硬盘的表示方法一样。lsblk
lsblk -f
在虚拟机菜单选择设置,添加硬盘,中间只在选择磁盘大小的地方需要修改,完成后重启系统。
分区命令:fdisk /dev/sdb
m
显示命令列表
p
显示磁盘分区,同fdisk -l
n
新增分区
d
删除分区
w
写入并退出
q
退出
开始分区后输入n新增分区,然后p,分区类型为主分区两次回车默认剩余全部空间。
格式化磁盘:mkfs -t ext4 /dev/sdb1
ext4是文件类型
挂载:mount 设备名称 挂载目录
将一个分区与一个目录联系起来
卸载:umount 设备名称/挂载目录
注意:用命令行挂载重启后会失效
永久挂载:通过修改/etc/fstab实现挂载。添加完成后,执行mount -a
即刻生效
df -h
du -h 目录名
查询指定目录的磁盘占用情况,默认为当前目录
选项
-s
指定目录占用大小汇总-h
带计量单位-a
含文件--max-depth=1
子目录深度-c
列出明细的同时,增加汇总值统计文件夹下文件的个数
ls -l 目录名 | grep "^-" | wc -l
统计文件夹下目录的个数
ls -l 目录名 | grep "^d" | wc -l
统计文件夹下文件的个数,包括子文件夹
ls -lR 目录名 | grep "^-" | wc -l
统计文件夹下目录的个数,包括子文件夹
ls -lR 目录名 | grep "^d" | wc -l
以树状形式显示目录结构tree(若没有tree,则使用yum install tree
安装)
tree 目录名
ipconfig
或者
ifconfig
ens33为设备名
ping 目的主机
测试当前服务器是否可以连接目的主机
如 ping www.baidu.com
登陆后,通过界面的来设置自动获取IP
特点:linux启动后会自动获取IP
缺点:每次自动获取的ip地址可能不一样
直接修改配置文件来指定IP,并可以连接到外网。
编辑 vim /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将IP地址配置为静态的,比如:ip地址为192.168.135.135
文件内容如下:
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“dhcp” #dhcp代表自动分配
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“132f1f71-be6d-4720-a298-3a345244d67a”
DEVICE=“ens33”
ONBOOT=“yes” #yes代表自动分配
ZONE=
修改处:
BOOTPROTO=“dhcp” =>BOOTPROTO=“static” #改成静态分配
新增:
IPADDR=192.168.135.135 #IP地址
GATEWAY=192.168.135 #网关
DNS1=192.168.135.2 #域名解析器
在虚拟网络编辑器中修改子网IP和网关的网段,使其与Linux服务器的IP地址处于同一个网段
重启网络服务service network restart
或重启系统reboot
生效
为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
hostname
查看主机名
修改文件在 /etc/hostname指定
修改后,重启生效
在windows中:
在C:\Windows\System32\drivers\etc\hosts 文件指定即可
格式: 目标ip地址 目标主机名
例如 192.168.135.135 yumoyumo
在linux中:
在/etc/hosts文件指定
格式: 目标ip地址 目标主机名
例如 192.168.135.1 LAPTOP-NFK7B01H
之前的ping ip地址
便可以替换成ping 主机名
一个文本文件,用来记录IP和Hostname(主机名)的映射关系
DNS,即 Domain Name System的缩写,翻译过来就是域名系统
是互联网上作为域名和IP地址相互映射的一个分布式数据库,有一组服务器。
DNS的作用是把网络地址(域名,以一个字符串的形式)对应到真实的计算机能够识别的网络地址(IP地址),以便计算机能够进一步通信,传递网址和内容等。
应用实例:用户在浏览器输入了www.baidu.com
ipconfig /displydns
DNS域名解析缓存ipconfig /flushdns
手动清理dns缓存DNS(域名系统)劫持又叫域名劫持,指攻击者利用其他攻击手段(如修改hosts映射关系),篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP,导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址,从而实现非法窃取用户信息或者破坏正常网络服务的目的。。
由于域名劫持往往只能在特定的被劫持的网络范围内进行,所以在此范围外的域名服务器(DNS)能够返回正常的IP地址,高级用户可以在网络设置把DNS指向这些正常的域名服务器以实现对网址的正常访问。所以域名劫持通常相伴的措施——封锁正常DNS的IP。如果知道该域名的真实IP地址,则可以直接用此IP代替域名后进行访问。比如访问百度域名,可以把访问改为202.108.22.5,从而绕开域名劫持 。
在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。
每个进程都可能以两种方式存在的,即前台和后台。前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但在屏幕上无法看到的进程,通常使用后台方式执行。
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
ps命令是用来查看目前系统中有哪些进程正在执行,以及它们的执行状况。
ps [选项]
-a
显示当前终端的所有进程信息
-u
以用户的格式显示进程信息
-x
显示后台进程运行的参数
ps -aux
详解:
ps [选项]
-e
显示所有进程
-f
全格式
ps -ef
注意:ps -ef和ps- aux为两种不同的显示风格
介绍:
若是某个进程执行一般需要停止时,或是已经消耗了很大的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务。
kill [选项] 进程号/名
通过进程号杀死/终止进程
-9
强迫进程立即停止killall 进程名
通过进程名杀死/终止进程,支持通配符,可同时杀死该进程下的所有子进程。例子:
踢掉某个非法用户
ps -ef | grep sshd
查看远程连接的用户进程id
kill 该用户pid
终止远程登录服务sshd
kill sshd对应的进程号
重启sshd服务
/bin/systemctl start sshd.service
终止多个gedit
killall gedit
强制杀死一个终端
kill -9 bash对应的进程号
pstree [选项]
查看进程树
-p
显示进程的PID-u
显示进程的所属用户服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求。比如(musqld、sshd、防火墙等),因此我们有称服务为守护进程。
service 服务名 [start|stop|restart|reload|status]
启动/中止/重启/重载/查看服务注意:在CentOS7.0后很多服务不再使用service,而是systemctl
查看服务名:
setup
ls -l /etc/init.d
例子:使用service指令 查看/关闭/启动 network服务
service network status/stop/start
Linux系统有七种运行级别,常用的是级别3和5
0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。
1:单用户工作状态,root权限,用于系统维护,禁止远程登陆。
2:多用户状态(没有NFS),不支持网络
3:完全的多用户状态(有NFS),五姐妹,登陆后进入控制台命令行模式。
4:系统未使用,保留。
5:X11控制台,登陆后进入图形GUI模式。
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。
在CentOS7以前是在/etc/inittab文件中
之后进行了简化,如下:
multi-user.target:analogous to runlevel 3
graphical.target:analogous to level 5
#To view current default target,run
#To set a default target,run
介绍
通过chkconfig命令可以给服务的各个运行级别设置自 启动/关闭
chkconfig指令可管理的服务在 /etc/init.d 查看
注意:在CentOS7.0后,很多服务使用systemctl管理。
chkconfig --list [| grep xxx]
查看所有服务chkconfig 服务名 --list [| grep xxx]
查看某一个服务chkconfig --level 5 服务名 on/off
设置某一运行级别下的某一服务的自启动/关闭chkconfig重新设置服务后自启动或关闭,需要重启生效。
system [start|stop|restart|status] 服务名
开启/关闭/重启/查看 服务systemctl指令管理的服务在 /usr/lib/systemd/system 查看,d
代表damon
守护进程
systemctl list-unit-files [| grep 服务名]
查看服务开机启动状态systemctl enable 服务名
设置服务开机启动systemctl disable 服务名
关闭服务开机启动systemctl is-enable 服务名
查询某个服务是否是自启动的例子:查看当前防火墙的状况,关闭防火墙和重启防火墙:
systemctl status firewalld
systemctl stop firewalld
systemctl restart firewalld
查看目前有哪些端口处于监听状态:netstat -anp | more
注意:
system [start|stop|restart|status] 服务名
只是临时生效,重启后回归原配置systemctl [enable|disable] 服务名
设置某个服务自启动或关闭永久生效在真正的生产环境,往往需要将防火墙打开,但如果打开防火墙,外部请求数据包就不能跟服务器监听端口通讯。这时需要打开指定端口。
firewall-cmd --permanent --add-port=端口号/协议
打开端口firewall-cmd --permanent --remove-port=端口号/协议
关闭端口firewall-cmd --reload
重新载入firewall-cmd --query-port=端口号/协议
查询端口是否开放**netstat -anp | more
**查看端口协议
top与ps命令很相似,它们都用来显示正在执行的进程。top与ps的最大不同之处在于top在执行一段时间内可以更新正在运行的进程(动态更新)。
top [选项]
选项
-d 秒数
指定top命令每隔几秒更新,默认3秒。-i
使top不显示任何闲置或僵死进程-p
通过指定监控进程ID来仅仅监控某个进程的状态交互操作
解读:
netstat [选项]
-an
按一定顺序排列输出-p
显示哪个进程在调用ping ip地址
检测远程主机是否正常,或是两部主机间的网线或网卡故障rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM时RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名字虽然打上了RedHat的标志,但理念时通用的。
rpm [选项] [RPM包名]
选项
-a
查询所有安装的包-f
查询拥有文件< file >的包-i
展示包信息,包括名字、版本以及描述-R
列出该包所依赖的别的包-l
列出该包的文件-q
查询软件包rpm -e RPM包名
卸载指定的包
rpm -e --nodeps RPM包名
无视包依赖关系强制删除如果其他软件包依赖于要卸载的包,卸载时会产生错误信息。
rpm -ivh RPM包全路径名称
i
instal 安装v
verbose 提示h
hash 进度条yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
yum list | grep xxx
查询yum服务器是否有需要安装的软件yum install xxx
下载安装例子:使用yum安装firefox