Linux学习

韩顺平视频

1、基本目录结构

  linux 的文件系统是采用级层式的树状目录结构, 在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。

 

2、Vim

  1.正常模式:

    以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。

  2.插入模式

    按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可.可以写东西了。

  3.命令行模式
    在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开 vim,显示行号等动作

 

 

 

 

 

 

 

3、系统实操

  3.1:系统开关操作:

  

  3.2:Linux系统运行级别:
    0:关机
    1:单用户【可以找回丢失密码】
    2:多用户状态没有网络服务(一般不用,没网络)
    3:多用户状态有网络服务
    4:系统未使用保留给用户
    5:图形界面
    6:系统重启
    常用运行级别是 3 和 5

    切换运行级别命令:init 选0-6

    指定默认运行级别:
    CentOS7之前是在文件/etc/inittab文件中设置,CentOS7之后对设置进行了简化:
    用 multi-user.target 代表3运行级别,用 graphical.target 代表5运行级别,7版本之后主要用3和5运行级别。

    用命令:systemctl get-default 查看当前系统运行级别
    用命令:systemctl set-default multi-user.target /graphical.target 设置默认运行级别

  

5、用户组:类似于角色,系统可以对有共性/有相同的权限的多个用户进行统一的管理

  1.新增组:groupadd 组名 假如A用户和B用户有相同的权限,一个一个赋权限太麻烦了; 可以把A用户和B用户放在一个组里,然后给这个组赋权限,组里的用户有相同的权限。

  2.修改用户的组:usermod -g 用户组 用户名、useradd -g wudang zwj

  用户组相关文件:

  (1)/etc/passwd 文件
  每增加一个用户,就会把用户的信息保存到该文件。
  用户(user)的配置文件,记录用户的各种信息
  每行都是一个用户,每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  主目录:用户所在的家目录

  shell:命令解释程序
  将发布的指令通过shell解析,再传给Linux内核
  Linux是看不懂发布的指令的
  shell有很多种,中国一般用的是bash

  命令:viw /etc/passwd 可以查看该文件(还有其他命令)

  (2)/etc/shadow 文件
  口令的配置文件
  每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  (3)/etc/group 文件
  组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表

 

6、文件目录指令:

基本语法:pwd (print working directory)
功能:显示当前目录的绝对路径
---------------------------------------------------------------------

基本语法:ls [选项] [目录或是文件]
常用选项:
-a:显示当前目录所有的文件和目录,包括隐藏的。
-l:以列表的方式显示信息
---------------------------------------------------------------------

基本语法:cd [参数]
功能:切换到指定目录

cd ~ 或者 cd --->回到当前用户的家目录
cd .. --->回到当前目录的上一级目录

---------------------------------------------------------------------

基本语法:mkdir [选项] 要创建的目录路径
功能:创建目录
常用选项:
-p:创建多级目录

---------------------------------------------------------------------

基本语法:rmdir [选项] 要删除的空目录路径
功能:删除一个空目录

注意:
rmdir 删除的是空目录,如果目录下有内容是无法删除的。
如果需要删除非空目录,需要使用命令:rm -rf 要删除的目录
比如: 删除animal目录
rm -rf /home/animal
---------------------------------------------------------------------

基本语法:touch 文件名称
功能:创建空文件

案例::在/home 目录下,创建一个空文件 hello.txt
touch /home/hello.txt
或者当前目录是home:touch hello.text

---------------------------------------------------------------------

基本语法:cp [选项] 被拷贝的文件 拷贝到哪个地方
功能:拷贝文件到指定目录
常用选项:
-r:递归复制整个文件夹

案例1:将 /home/hello.txt 拷贝到 /home/bbb 目录下
若在根目录下操作:
先创建 bbb目录
mkdir /home/bbb
然后复制
cp /home/hello.txt /home/bbb

案例2:递归复制整个文件夹,比如将 /home/bbb 整个目录,拷贝到 /opt
cp -r /home/bbb /opt

注意:强制覆盖不提示的方法:\cp
\cp -r /home/bbb /opt

---------------------------------------------------------------------

基本语法:rm [选项] 要删除的文件或目录
功能:移除文件或目录
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示

案例1:将 /home/hello.txt 删除
rm /home/hello.txt

案例2:递归删除整个文件夹 /home/bbb ,并不提示
rm -rf /home/bbb

注意:强制删除不提示的方法:带上 -f 参数即可
---------------------------------------------------------------------

基本语法:mv [选项] 移动

功能:移动文件与目录或重命名
基本语法:
mv 原文件名 新文件名 (功能描述:重命名)
mv 被移动的文件 移动到哪 (功能描述:移动文件)

---------------------------------------------------------------------
查看:vim
cat也可以查看,cat只能查看不能修改,cat更安全。

基本语法:cat [选项] 要查看的文件
功能:查看文件内容
常用选项:
-n:显示行号

案例1:查看 /etc/profile 文件内容,并显示行号。
cat -n /etc/profile
注意:
cat 只能浏览文件,而不能修改文件;为了浏览方便再加上管道命令 | more
管道命令:把前面的结果再交给下一个指令进行处理。
语法:| 其他指令

cat -n /etc/profile | more
意思:先执行cat -n /etc/profile 然后,按回车键输出一行,按空格翻页等。

---------------------------------------------------------------------

基本语法:more 要查看的文件
功能:
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
more 指令中内置了若干快捷键(交互的指令),详见操作说明:

 --------------------------------------------------------------------

基本语法:less 要查看的文件
功能:
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。
less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

下面操作中:
想要找某个字或词
输入:/要找的字或词 然后按n向下找 按N向上找
操作说明:

 

 

  --------------------------------------------------------------------

基本语法:echo [选项] [输出内容]
功能:输出内容到控制台

案例: 使用 echo 指令输出环境变量
比如输出 $PATH $HOSTNAME
输入:echo $HOSTNAME (环境变量一般加$)
---------------------------------------------------------------------

功能:head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容。
基本语法:
head 文件 (功能描述:查看文件头 10 行内容)
head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)

---------------------------------------------------------------------

功能:tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前 10 行内容。
基本语法:
tail 文件 (功能描述:查看文件尾 10 行内容)
tail -n 5 文件 (功能描述:查看文件尾 5 行内容,5 可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新,只要该文件改动了什么内容就可实时看到)

---------------------------------------------------------------------

>指令和>>指令:
> 输出重定向(覆盖)
>> 追加
基本语法:
ls -l >文件1 (功能描述:将列表的内容写入文件1中(覆盖写))
ls -al >>文件1 (功能描述:将列表的内容追加到文件1的末尾)
cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
echo "内容">> 文件1 (将内容追加到文件1的末尾)

案例 1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中,覆盖写入。
ls -l /home > /home/info.txt [如果 info.txt 没有,则会自动创建]
案例 2: 将当前日历信息 追加到 /home/mycal 文件中
cal >> /home/mycal

---------------------------------------------------------------------

ln功能:给原文件创建一个软链接

软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
基本语法:
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
ln是link

案例1:在/home 目录下创建一个软连接 myroot,连接到 /root 目录
(这样 切换到myroot 其实就是切换到root)
ln -s /root /home/myroot

案例2: 删除软连接 myroot
rm /home/myroot

当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。

---------------------------------------------------------------------

history 功能:查看已经执行过历史命令,也可以执行历史指令
基本语法:
history (功能描述:查看已经执行过历史命令)

 

7、时间指令:

date指令:
1.显示当前日期
基本语法:
date (功能描述:显示当前时间)
date +%Y (功能描述:显示当前年份)
date +%m (功能描述:显示当前月份)
date +%d (功能描述:显示当前是哪一天)
date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

---------------------------------------------------------------------

cal指令:
查看日历指令 cal
基本语法:
cal [选项] (功能描述:不加选项,显示本月日历)

 

8、搜索指令:

find 指令
从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
基本语法:
find [搜索范围] [选项]

 ---------------------------------------------------------------------

locate 指令
可以快速定位文件路径。利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。
Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻
基本语法:
locate 搜索文件

注意:
由于 locate 指令基于数据库进行查询,
所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。

 ---------------------------------------------------------------------

which 指令
可以查看某个指令在哪个目录下
案例:ls 指令在哪个目录
which ls

 ---------------------------------------------------------------------
grep 指令和 管道符号 |
grep:过滤查找
管道符:“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

基本语法:
grep [选项] 查找内容 源文件

常用选项:
-n 显示匹配行及行号
-i 忽略字母大小写

 

9、解压指令:

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指令可以压缩也可以解压。根据选项来 压缩还是解压。

基本语法:
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项说明:

 

 

 

10、组管理和权限管理:

在 linux 中的每个用户必须属于一个组,不能独立于组外。 在 linux 中每个文件都有所有者、所在组、其它组的概念。

1.查看文件/目录的所有者(在/home下才能看到)
指令:ls –ahl
-ahl是三个选项
-h human 让输出的结果方便人看(文件的大小容易看)

drwxr-xr-x. 6 root root 4.0K 2月 23 13:59 .
dr-xr-xr-x. 18 root root 4.0K 2月 20 16:45 ..
-rw-r--r--. 1 root root 24 2月 22 21:59 hello.txt
...

第三列:文件的所有者(谁创建了这个文件,就是这个文件的所有者)

第四列:文件的所在组(某个用户创建了一个文件,该文件所在组=该用户所在组)

  ---------------------------------------------------------------------

2.修改文件/目录所有者指令:chown 新所有者 文件名
案例:使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tom
chown tom apple.txt

--------------------------------------------------------------------
3.chgrp 修改文件/目录所在的组 指令: chgrp 组名 文件名

--------------------------------------------------------------------

4.权限

-rw-r--r--. 1 root root 24 2月 22 21:59 hello.txt

第一列为权限,一共10位

第 0 位确定文件类型(d, - , l , c , b)
d 是目录,相当于 windows 的文件夹
- 代表是普通文件(.txt)
l 是链接,相当于 windows 的快捷方式
c 是字符设备文件,比如鼠标,键盘 ---> /dev/目录下可以看到
b 是块设备,比如硬盘 ---> /dev/目录下可以看到

第 1-3 位确定 该文件的所有者 对该文件的 权限。---User
第 4-6 位确定 该文件所属的组和该组中的用户 对该文件的 权限。---Group
第 7-9 位确定 其他用户(不是所有者,也不是同一组的其他用户) 对该文件的权限 ---Other

权限有三种:
r 代表可读(read),w 代表可写(write),x 代表可执行(execute)

rwx 作用到文件:
r: 可以读取,查看
w: 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是 对该文件所在的目录 有 写权限,才能删除该文件.
x: 可以被执行,前提是可执行文件

rwx 作用到目录:
r: 可以读取,可以用 ls 查看目录内容
w: 可以修改, 可以对目录进行 创建+删除+重命名目录
x: 可以进入该目录

--------------------------------------------------------------------

5.chmod修改权限

第一种方式:通过 + 、-、= 变更权限,+加权限,-减权限,=赋予权限
u:所有者
g:所在组(同一个组的其他用户)
o:其他人(不同一个组的其他用户)
a:所有人(所有用户)(u、g、o 的总和)

chmod u=rwx,g=rx,o=x 文件/目录名 (该文件/目录的u的权限是rwx,g的权限是rx,o的权限是x)
chmod o+w 文件/目录名 (该文件/目录的o的权限加上w)
chmod a-x 文件/目录名 (取消该文件/目录的a的x权限)
第二种方式:权限可以用数字代替:r=4 w=2 x=1

chmod u=rwx,g=rx,o=x 文件/目录名

相当于 chmod 751 文件/目录名

rwx=4+2+1=7

rx=4+1=5

x=1

 

11、任务调度:

1.crond任务调度

任务调度:是指系统在某个时间执行特定的命令或程序。 crond--->周期任务

任务调度分类: (1)系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等 (2)个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。 示意图:

 --------------------------------------------------------------------

 2.crontab [选项] 功能:进行定时任务的设置

service crond restart:重启任务调度

在/etc/下有一个crontab文件,在这个文件中写入所有的定时任务

输入crontab -e 就会进入crontab文件
然后在文件中写入定时任务:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
最后保存退出

 

 

 

 --------------------------------------------------------------------

3.at定时任务基本介绍
(1) at 命令是一次性定时计划任务,at 的守护进程 atd 会以后台模式运行,检查作业队列来运行;
(2) 每个作业队列(任务队列)中都有作业(作业里是指令/脚本);
(3) 默认情况下,atd 守护进程每 60 秒检查作业队列;有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业;运行完这个作业(任务)之后,这个作业就不会再被执行了
(4) at 命令是一次性定时计划任务,执行完一个任务后不再执行此任务了,只执行一次,和crond的循环执行区别开
(5) 在使用 at 命令的时候,一定要保证 atd 进程的启动,可以使用相关指令来查看
ps -ef | grep atd //可以检测 atd 是否在运行
ps -ef ---> 查看所有的进程

总结:at命令就是对某个定时任务只执行一次
 --------------------------------------------------------------------

4.at执行

at [选项] [时间]

然后输入两次:Ctrl + D (结束 at 命令的输入)

 at 命令选项:

 at 指定时间的方法:

(1) 接受在当天的 hh:mm(小时:分钟)式的时间指定。
假如该时间已过去,那么就放在第二天执行。 例如:04:00
(2) 使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午 4 点)等比较模糊的词语来指定时间。
(3) 采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。
(4) 指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。
例如:04:00 2021-03-1 (小的时间写前面,大的时间写后面)
(5) 使用相对计时法。
指定格式为:now + count time-units
now 就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。
count 是时间的数量,几天,几小时。
例如:now + 5 minutes
(6) 直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。

12、Linux磁盘分区、挂载

(1) Linux 无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构
Linux 中每个分区都是用来组成整个文件系统的一部分

(2) Linux 采用了一种叫“载入/挂载”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。
这时要载入的一个分区将使它的存储空间在一个目录下获得。

(3)图解:
硬盘上的一个分区 通过挂载mount机制 与文件系统中的某个目录联系起来
即分区挂载到目录,访问这个目录即访问这个分区

硬盘说明:

(1) Linux 硬盘主要分为:
IDE 硬盘和 SCSI 硬盘
目前基本上是 SCSI 硬盘

(2) 对于 IDE 硬盘,驱动器标识符为“hdx~”
其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘
“x”为盘号
a 为基本盘 第一个硬盘
b 为基本从属盘 第二个硬盘
c 为辅助主盘 第三个硬盘
d 为辅助从属盘 第四个硬盘
“~”代表分区
前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区
(3) 对于 SCSI 硬盘则标识为“sdx~”
SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样

 --------------------------------------------------------------------
查看分区挂载:lsblk 或者 lsblk -f(更详细内容)

 第一列可以看到设备/硬盘分区情况

FSTYPE:文件系统类型

UUID:格式化之后,会给每一个分区分配一个 唯一的 不重复的 40位 的 字符串

MOUNTPOINT:挂载点

 

13、Linux网络配置

1.ifconfig指令查看Linux虚拟机的ip地址

2.手动指定linux的ip地址,使其不变化(非可视化)。

直接修改配置文件来指定 IP,并可以连接到外网(程序员推荐)
关于网络的配置文件在:/etc/sysconfig/network-scripts/ifcfg-ens33

输入指令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改文件内容:
BOOTPROTO="static"
加上:
IPADDR=192.168.200.130 (IP地址,自己设定的)
GATEWAY=192.168.200.2 (网关,自己设定的)
DNS1=192.168.200.2 (域名解析器,自己设定的)

如果用虚拟机:vmnet8和Linux在同一网段上,要能够通信,也要修改相应的vmnet8
vmware--->编辑--->虚拟网络编辑器
打开虚拟编辑器,点击vmnet8,修改下面的子网ip为:192.168.200.0
然后点击NAT设置,将网关改为192.168.200.2

应用确定

输入指令:service network restart 或 reboot 使上述修改生效
 

 

13、Linux进程管理

1.基本介绍:

(1)在 LINUX 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID 号(pid,进程号)。
程序执行之后加载到内存中成为进程。程序是静态的,进程是动态的

(2)每个进程都可能以两种方式存在:前台与后台
前台进程:是用户目前的屏幕上可以进行操作的。
后台进程:是实际在操作的,但屏幕上无法看到,通常使用后台方式执行。

(3)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
 --------------------------------------------------------------------

2.ps指令

基本介绍:ps命令是用来查看目前系统中,有哪些进程正在执行,以及它们执行的状况。可以不加任何参数。

ps [选项] Process Status
选项:
-a 显示当前终端的所有进程信息
-u 以用户的格式显示进程信息
-x 显示后台程序运行的参数

一般三个选项一起用:ps -aux
只想查找某一个进程:指令:ps –aux|grep xxx

ps -ef 是以全格式显示当前所有的进程。-e 显示所有进程。-f 全格式。

ps -ef 指令显示内容如下:
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME 进程启动的时间
TTY 完整的终端名称
TIME CPU 使用时间
CMD 启动进程所用的命令和参数

 --------------------------------------------------------------------

3.kill和killall指令

若是某个进程执行一半需要停止时,或是已经消耗了很大的系统资源时,此时可以考虑停止该进程。
使用 kill 命令来完成此项任务。

kill [选项] 进程号 (功能描述:通过进程号杀死/终止进程)
killall 进程名称 (使用killall,会将该进程的所有子进程也都删除/终止。)

常用选项:
-9 表示强制终止进程  (系统觉得某个程序重要,可能会屏蔽你的kill指令,这时使用选项-9强制终止进程)

 --------------------------------------------------------------------

4.pstree进程树

pstree [选项]

功能:可以更加直观的来看进程信息(树的形式)

常用选项: -p :显示进程的 PID (父进程ID) -u :显示进程的所属用户

 --------------------------------------------------------------------

5.服务(service) 本质就是进程,但是是运行在后台的, 通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd防火墙等), 因此我们又称为守护进程

(1) service 服务名 [start | stop | restart | reload | status]
start 开启服务
stop 终止服务
restart 重启服务
reload 重载服务
status 查看服务的状态

(2) 在 CentOS7.0 后很多服务不再使用 service指令管理,而是使用 systemctl (后面专门讲)

(3) 还有一些在 /etc/init.d 下的服务仍使用 service 指令管理

请使用 service 指令,查看,关闭,启动 network
指令:
service network status

(4) 查看服务名 setup

(5) Linux 系统有 7 种运行级别(runlevel):常用的是级别 3 和 5,前面有说过

运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆
运行级别 2:多用户状态(没有 NFS),不支持网络
运行级别 3:完全的多用户状态(有 NFS),无界面,登陆后进入控制台命令行模式
运行级别 4:系统未使用,保留
运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动

开机的流程说明:

(6)   chkconfig:

通过 chkconfig 命令可以给服务在 各个运行级别 设置开启自启动/关闭自启动, chkconfig 指令管理的服务在 /etc/init.d 查看

注意: Centos7.0 后,很多服务使用 systemctl 管理 

chkconfig 基本语法:
查看服务和服务在各个级别是开启/关闭自启动 (有限,只能查看chkconfig管理下的服务)
chkconfig --list [| grep xxx] (若查找某一个服务使用grep过滤)
chkconfig 服务名 --list

chkconfig --level 5 服务名 on/off 给该服务在5运行级别开启/关闭自启动

chkconfig 重新设置服务后自启动或关闭,需要重启机器 reboot 生效.

(7)   systemctl:

基本语法:systemctl [start | stop | restart | status] 服务名

systemctl 指令管理的服务在 /usr/lib/systemd/system 查看

systemctl list-unit-files [ | grep 服务名] (查看服务开机启动状态, grep 可以进行过滤)
systemctl enable 服务名 (设置服务开机自启动)
systemctl disable 服务名 (关闭服务开机自启动)
systemctl is-enabled 服务名 (查询某个服务是否是自启动的)

应用案例:
查看当前防火墙的状况,关闭防火墙和重启防火墙 firewalld.service
查看当前防火墙情况:systemctl status firewalld
关闭防火墙:systemctl stop firewalld
重启防火墙:systemctl start firewalld

注意:关闭或者启用防火墙后,立即生效。
但是 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。

如果希望设置某个服务自启动或关闭永久生效
要使用 systemctl [enable|disable] 服务名

(8)   firewallld:  防火墙

打开端口: firewall-cmd --permanent --add-port=端口号/协议

通过 netstat -anp | more 指令查看端口号的协议 (more 分页显示)
该指令输出的信息中:
Local Address下是 ip地址:端口号
Proto 是协议 (protocol 协议)

关闭端口: firewall-cmd --permanent --remove-port=端口号/协议

注意:无论是打开端口还是关闭端口,要重新载入才能生效
重新载入:firewall-cmd --reload

查询端口是否开放: firewall-cmd --query-port=端口/协议

(8)   top:  动态监控

top 与 ps 命令很相似。 它们都用来显示正在执行的进程。 top 与 ps 最大的不同之处在于: top 在执行一段时间可以更新正在运行的的进程。

top [选项] 选项说明:

 

 

 top后操作

 

 

(9)   netstat:  监控网络

基本语法:netstat [选项]

选项说明:
-an 按一定顺序排列输出
-p 显示哪个进程在调用

输入netstat -an | more (more 分页展示)

 14、rpm与yum

(1) RPM 是 Red-Hat Package Manager(红帽软件包管理器)的缩写

是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。

(2) 查询已安装的 rpm软件包 列表:

rpm -qa (查询所安装的所有 rpm 软件包)

rpm -qa | more (分页显示more)

rpm -qa | grep X (过滤,比如 rpm -qa | grep firefox )

rpm -q 软件包名 (查询某个软件包是否安装)

rpm -qi 软件包名 (查询软件包的详细信息)

rpm -ql 软件包名 (查询软件包中的文件和该软件包在哪个文件下)

rpm -qf 文件全路径名 (查询某个文件所属在哪个软件包)

(3) 删除卸载

基本语法:rpm -e 包的名称 //-e erase擦去

注意:
如果其它软件包依赖于您要删除的软件包,删除时则会产生错误信息。
removing these packages would break dependencies:foo is needed by bar-1.0-1
foo软件包被 bar-1.0-1需要,删除foo对barr-1.0-1有影响

如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps  (nodeps 不检查依赖关系 no dependencies),就可以强制删除

(4) 安装

基本语法:rpm -ivh 包全路径名称

选项:
i=install 安装
v=verbose 提示
h=hash 进度条

(5) yum

Yum(全称为 Yellow dog Updater, Modified)是一个 Shell 前端软件包管理器
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包

查询 yum 服务器是否有 需要安装的软件:yum list|grep 软件名

安装指定的软件:yum install 软件名
(6) rpm和yum

rpm 是从本地安装包下载
yum 是从yum服务器下载安装软件

 (7) 安装并更改环境变量流程

如安装jdk:1、解压jdk到指定目录下;2、配置环境变量

配置环境变量:

vim /etc/profile

export XX = /usr/...     指定解压目录,别名

export PATH = $XX/bin:$PATH    重定义PATH,后续:$PATH是为了保证原来的指令不被覆盖

source /etc/profile   重载环境变量,使其生效

 

 15、Shell

Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。是用户使用 Linux 的桥梁.

用户写了一个指令,该指令不能直接发给Linux内核去执行,而是由shell帮我们去执行,执行完之后再通过shell返回给我们结果。

在Linux中不止一种shell,我们常用的是bash。

1.脚本格式要求:
脚本以 #!/bin/bash 开头 --->确定shell的类型
脚本需要有可执行权限。shell脚本文件以.sh结尾,也可以不以.sh结尾

#!/bin/bash
echo "hello,world!"   输出hello world

3.shell脚本的常用执行方式
方式 1:
首先要给shell脚本加x执行权限:chomod u+x hello.sh,再输入该脚本的相对路径或绝对路径来执行该脚本

方式 2:
不用赋予脚本+x 权限,直接执行即可。(使用以下指令,即使没有执行权限也可以执行)
使用指令: sh shell脚本/shell脚本的绝对路径
比如 sh hello.sh

 

 16、Linux日志管理

 

日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。

系统日志文件的保存位置:/var/log/ 目录下

系统常用日志:

 

 

 日志管理服务

CentOS7.6 日志服务是 rsyslogd (rocket-fast system for log)
CentOS6.x 日志服务是 syslogd
rsyslogd 功能更强大,rsyslogd 的使用、日志文件的格式,和 syslogd 服务是兼容的

rsyslogd是一个后台程序(服务),来管理/记录/操作相关日志。
/etc/rsyslog.conf配置文件中记录了要管理哪些日志和将这些日志记录到哪个文件中。

关于日志:*.*
其中第一个*代表日志类型,第二个*代表日志级别

日志类型分为:
auth ##pam 产生的日志
authpriv ##ssh、ftp 等登录信息的验证信息
corn ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark(syslog)-rsyslog ##服务内部的信息,时间标识
news ##新闻组
user ##用户程序产生的相关信息
uucp ##unix to nuix copy主机之间相关的通信
local 1-7 ##自定义的日志设备

日志级别分为:
debug ##有调试信息的,日志通信最多
info ##一般信息日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,阻止某个功能或者模块不能正常工作的信息
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##内核崩溃等重要信息
none ##什么都不记录
注意:从上到下,级别从低到高,记录信息越来越少

由日志服务 rsyslogd 记录的日志文件,日志文件的内容:每一行都代表一个事件,每一行有以下四个内容:
1) 事件产生的时间
2) 产生事件的服务器的主机名
3) 产生事件的服务名或程序名
4) 事件的具体信息

日志轮替(logrotate)就是当超过容量后,把旧的日志文件移动并改名,同时建立新的空日志文件。可以设置默认保存个数

日志轮替之所以可以在指定的时间备份日志,是依赖系统定时任务
在 /etc/cron.daily/目录,就会发现这个目录中是有 logrotate 文件(可执行),logrotate 通过这个文件依赖定时任务执行的。

crond定时后台程序会定时执行cron.daily内的文件

内存日志:有一些日志是写到内存里的,还没有写到文件里,因为这些日志是实时变化的。重启之后内存日志会被清空

 

一些运维工具:webmin,宝塔等。本地管理linux用户,查看内存等操作

posted @   Jacky02  阅读(116)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示