Linux 系统 技术分享

目录

一、简介

        1.1 介绍

        1.2 特点

        1.3 linux的版本

        1.4 linux的界面

二、基础

        2.1 linux 提示符

        2.2 linux 目录结构

三、linux基础命令

        3.1 命令基础知识

        3.2 基础命令

四、用户管理

        4.1 用户分类

        4.2 配置文件

        4.3 相关命令

        4.4 用户切换

五、文件权限

        5.1 文件属性

        5.2 权限类别

        5.3 相关命令

六、linux 远程复制文件

七、linux 通配符

        7.1 简介

        7.2 命令输出重定向

        7.3 管道符

八、linux 三剑客 

        8.1 awk 命令

        8.2 sed 命令

        8.3 grep 命令

九、软件管理

        9.1 rpm安装软件

                9.1.1 rpm软件包在哪?

                9.1.2  如何光盘镜像中rpm包

                 什么是外部设备文件?

                 9.1.3 rpm相关命令

        9.2 yum安装软件

                9.2.1 背景

                 9.2.2 作用

                9.2.3 原理

                 9.2.4 相关命令

                9.2.5 yum源相关配置参考

        9.3 编译安装

                9.3.1 简介

                9.3.2 基本步骤

 十、计划任务

        10.1 简介

        10.2 一次性计划任务

        10.3 周期性计划任务

十一、正则表达式

十二、磁盘管理

        12.1 磁盘的原理

        12.2 MBR

        12.3 分区表

         12.4 磁盘的命名

         12.5 磁盘的操作

十三、进程和内存管理

        13.1 查看内存

         13.2 查看cpu

         13.3 进程的管理

十四、文件的归档压缩

        14.1 简介

         14.2 相关命令

 十五、网络管理

        15.1 查看IP地址

        15.2 修改IP地址

        15.3 相关命令


一、简介

        1.1 介绍

        Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

        1.2 特点

        1)操作几乎靠各种命令来完成的;

        2)系统非常稳定;

        3)系统开源【所有用户都可以使用】;

        4)免费;

        1.3 linux的版本

        Ubuntu:ubuntu 10.04、ubuntu 12.04、ubuntu 14.04...

        Centos:centos5、centos6、centos7【主流】、centos8

        kali  linux:这个系统中集成了黑客常用的工具

        redhat:redhat 5、redhat 6、redhat 7、redhat 8

        1.4 linux的界面

        GUI(图形界面):类似于windows,可以用鼠标点击操作。

        CLI(字符界面):类似于Dos系统,所有的操作只能依靠命令实现。

二、基础

        2.1 linux 提示符

        [用户名@主机名 当前所在位置]身份标识

        身份标识:  管理员:#

                            普通用户:$

        2.2 linux 目录结构

        bin、sbin:这两个目录是存储的是在linux中执行的命令【命令就是可执行程序】

        lib、lib64:这两个目录用于存放库文件

        media、mnt:这两个目录用于将外部设备关联到linux

        root:root用户的家目录

        etc:这个目录存储系统中各个程序的配置文件

        dev:存储系统的设备文件

        tmp:系统临时文件目录

        home:新建用户的主目录

  

         linux目录结构的特点:1)linux单根系统;

                                              2)只有一个存储位置  / ;

                                              3)倒树状结构;

三、linux基础命令

        3.1 命令基础知识

                linux中所有的命令是严格区分大小写的。

        一般格式:  命令   选项    参数

        选项:选项是用于控制命令的执行过程

        参数:参数是指命令的作用对象

        3.2 基础命令
pwd                显示当前所在目录
clear              清空屏幕
cd 目标位置        切换目录
touch  文件名      新建文本文件

 新建目录

格式1:mkdir 目录名
格式2:mkdir [选项] 路径/目录名
选项:-p:父目录不存在时,自动创建父目录

复制文件\目录

cp [选项] 源文件 目的路径
选项:-a:保持文件属性不变;
      -r:递归复制;

移动文件\目录

mv 源文件 目的路径
mv  也可以用来实现修改文件\目录名

删除文件\目录

rm -rf 要删除的文件或者目录
选项:
-r:这个选项是专用于删除目录
-f:这个选项是强制删除【删除过程不会进行询问】

查看指定位置有什么文件

格式1:ls # 查看当前位置下文件
格式2:ls ./ # 查看当前位置下文件
格式3:ls 路径 # 查看指定的路径下有什么文件
选项:-a:查看隐藏文件【隐藏文件开头为.】
      -l:查看文件属性
      -d:专用查看目录
      -h:查看文件大小

 文本编辑器

vi 文件名 | vim 文件名
三种模式:
1)查看模式:功能:
            1. 查看文件的内容
            2. 在文件中,搜索指定的内容
            3. 复制行或者是删除行
        查看模式下的操作
            dd:删除光标所在的行【剪切】
            yy:复制光标所在的行
            p - 小:将剪切/复制的内容,粘贴到当前所在的行的下一行
            P - 大:将剪切/复制的内容,粘贴到当前所在的行的上一行
            /要搜索的内容:在/后面输入要搜索的内容,就可以直接开始搜索了,
                        n:继续向下搜索
                        N:继续向上搜索
2)输入模式:功能:可以输入内容
3)末行模式:功能:  1. 主要是用于执行各种的命令
                    2. 显示行号
                    3. 保存、退出
                    4. 行跳转

模式转换图

 使用vi打开文件异常

警告信息:

产生警告的原因
1. 用vi打开文件后,写入了内容,但是这个文件被意外关闭了【例如 直接关闭终端】
2. 文件被意外关闭,会产生一个 崩溃缓存文件 ,这个文件是一个隐藏文件,而且这个文件的后缀是
.swp
3. 就是由于这个崩溃缓存文件的存在,才导致每次打开文件的是有一个警告信息
解决方法
删除所有的崩溃缓存文件,就不再产生警告了
查看文本文件的内容
cat 文件名
more 文件名 【适合查看大文件】
less 文件名 【适合查看大文件】
head -n 文件名【默认查看前十行】
tail -n 文件名【默认查看后十行】

 查看命令对应文件路径

which 命令
whereis 命令

 用于统计一个文件中,有多少行、多少个单词、多少个字符

wc 选项 文件名
选项:  -l:统计行数
        -w:统计单词数
        -c:统计字符数

四、用户管理

        4.1 用户分类

管理员用户:

1. 只有一个
2. 名字:root
3. 管理员是:0 【linux中,uid是0的用户,就是管理员】
4. 家目录:/root
5. 权限:最高
6. 可以执行的操作:可以执行任意的操作
普通用户:
1. 可以有多个【你自己创建的用户,默认就是普通用户】
2. 普通用户的名字是自定义的
3. 普通用户的uid是都是大于0
4. 家目录:home下和用户名同名的那个目录,就是用户的家目录【在创建用户的时候,会自动的创建用户家目录】
5. 权限:非常低
6. 可以执行的操作:普通用户,只能在自己的家目录中执行操作
        4.2 配置文件

/etc/passwd

这个文件中,存储的是当前系统中,所有的用户
这个文件中,每行是一个用户【文件有多少行,就有多少个用户】
这个文件的每一行,都是由 : 分割成的一段一段的
第一段:用户名
第二段:密码占位符【为了安全,将密码放到了另一个位置】
第三段:用户的uid 【管理员的uid 是0 】
第四段:用户的gid【用户所在的组的编号】
第五段:这个是用户的描述信息,可以随便写,也可以空着
第六段:用户家目录位置
第七段:这个表示用户的shell类型
新建一个用户,就会在这个文件中添加一行
删除一个用户,就会将这个文件中的一行自动删除
/etc/shadow
这个文件中,存储的是用户的密码
        4.3 相关命令

查看用户是否存在

id  用户名
用户管理命令
useradd 用户名    //添加用户
userdel 用户名    //删除用户
passwd 用户名     //更改密码
groupadd 组名     //新建用户组
groupdel 组名     //删除用户组
        4.4 用户切换

切换用户有两种方法  su 和 sudo

su  -  用户
注意1:
    从root切换到其他用户,切换时候不需要输入密码
    如果从是普通用户切换到root用户,或者是从普通用户切换到其他的普通用户,就必须输入密码
注意2:
    切换到其他用户以后,如果想返回到之前的用户,可以执行命令exit

su 切换用户的特点:1)简单
                  2)如果想切换到root,就必须得知道root用户的密码,容易导致root密码泄露
sudo 是指定用户可以用root身份执行哪几个命令
打开sudo的配置文件visudo  可以指定用户执行哪条命令
例:jack ALL=(root) /usr/bin/touch, /usr/bin/mkdir
    jack可以执行touch和mkdir 命令

五、文件权限

        5.1 文件属性
   -       rw-r--r--. 1   alex      gp001      60       3月 17 10:59    abc
文件的类型  9个权限位     属主用户名 属组的名字 文件大小 文件的创建/编辑时间 文件名

文件类型:  -   表示文本文件
           d   表示目录

9个权限位:  前三位:是属主用户具有的权限
            中间三位:是属组用户具有的权限
            最后三位:是其他用户具有的权限
        5.2 权限类别

        读权限(r)、写权限(w)、执行权限(x)、无权限(-)

        权限二进制表示

        r==>4     w==>2    x==>1    -==>0 

        权限对象

        u:属主   g:属组   o:其他用户   a:全部用户

        案例

u-x 给属主用户去除掉执行权限
a+r 给所有用户添加上读权限
o=rw 将其他用户的权限设置为读和写
g+rx 给属组用户设置上读和执行权限
u-wx 给属主用户去除掉写和执行权限
g=rwx 将属组用户的权限设置为可读可写可执行
a= 将所有用户的权限都去去掉
        5.3 相关命令
chmod [选项] 权限 文件名      //修改文件权限
选项:-R:作用是用于设置目录及其目录下的子文件的权限

chown    //修改文件的属主\属组
chown [选项] 属主 文件名 仅仅修改文件的属主
chown [选项] 属主:属组 文件名 修改文件的属主和属组
chown [选项] :属组 文件名 仅仅修改文件的属组
选项:-R:作用是用于设置目录及其目录下的子文件的权限

六、linux 远程复制文件

将本地主机上的文件发送到远程主机
scp 本地文件 root@目标主机IP:/原创主机上的路径


从远程主机上去下载文件
scp root@目标主机IP:/原创主机上的路径/文件 本地路径

七、linux 通配符

        7.1 简介

其实就是一些有特殊含义的符号,这些符号,统称为通配符

 常见通配符:>      >>      |

        7.2 命令输出重定向
将命令的执行结果输出/显示到终端上,这种输出,称之为:标准输出
将本来要显示在终端上的输出结果,保存到一个文件中,这种操作称之为:输出重定向
标准正确输出:
> 将文件中原有内容全部删除,然后进行写入
>> 在文件中原有内容后,追加新的内容
标准错误输出:
2> 将文件中原有内容全部删除,然后进行写入
2>> 在文件中原有内容后,追加新的内容

特殊文件:  /dev/null   该文件可以删除文本文件中的内容
        7.3 管道符
管道符也就是键盘上的那个 |
作用: 是用于链接两个或者多个命令,将前面命令的执行结果,传递给后面的命令,让后面的命令再 处理一次

八、linux 三剑客 

        8.1 awk 命令
awk -F "分隔符" '{print $数字}' 文件名     //对文件内容进行截取
        8.2 sed 命令
sed -i "s/原始内容/替换内容/g" 文件名    //对文件的内容进行替换
        8.3 grep 命令
grep "过滤的目标" 文件名    //从文件中过滤去符合条件的行

九、软件管理

        9.1 rpm安装软件
                9.1.1 rpm软件包在哪?
位置1: 安装linux用的那个iso文件中,就有软件包
系统镜像文件中Packages目录中
特点:
1:本地系统镜像文件中的软件包,即使没有网络,也可以正常使用
2:软件包版本相对较老
位置2: 网站中有
centos的官网: https://centos.org 网站 在国外,访问速度很慢,不建议
特点:
1:操作系统必须通过网络才能下载和使用网络软件包
2:软件版本相对比较新
有很多的国内的镜像网站
阿里云: https://developer.aliyun.com/mirror/
华为: https://mirrors.huaweicloud.com/home
清华: https://mirrors.tuna.tsinghua.edu.cn/
                9.1.2  如何光盘镜像中rpm包

1. iso系统镜像文件,也就是我们平时说的那个光盘
2. 光盘对于linux来说,就是属于外部设备
3. linux使用外部设备,需要将外部设备挂在到linux的某个空目录中,一般用的mnt或者是media

linux用mount命令实现挂在外部设备

mount 外部设备文件 挂载点
                 什么是外部设备文件?
就是外部设备,对应的linux中的一个特殊文件
每个外部设备对应的特殊文件,都不相同
iso对应的设备文件 /dev/cdrom
挂载点:
就是将外部设备,关联到linux的哪个目录,一般是mnt或者是media,但是可以自己创建一个
空目录
                 9.1.3 rpm相关命令
rpm -ivh 软件包名     //安装软件的格式
rpm -q 软件名            //查看软件是否已经安装的格式
rpm -e 软件名            //卸载软件的命令格式
rpm -ql 软件名            //查看软件安装完成后生成的文件都有哪些
rpm -qf 文件名            //查看一个文件是由哪个软件包安装过程中产生的
rpm -ivh 软件包名 --replacepkgs  //某个软件已经安装了,但是向再安装一次【覆盖掉前面的安装】
        9.2 yum安装软件
                9.2.1 背景
用rpm安装软件的时候,很多软件存在依赖关系
例如:安装A软件,需要提前安装好B软件,安装B软件前,需要提前安装好C软件,那么此时的安装顺序就是C -> B -> A
                 9.2.2 作用
yum是也用于安装rpm包,所以如果是安装本地光盘中的rpm包,那么也必须要先挂载光盘
yum的特点是,可以自动的来找到软件包的依赖关系,并排好顺序依次安装
用yum安装的软件,是可以用rpm -q 查看,是可以用rpm -e 卸载
                9.2.3 原理
yum源
        yum源,其实就是一个文件夹,在文件夹中,保存了,我们可能会用到的所有的rpm包
yum的配置文件
        yum的配置文件,就是指向了yum源所在的文件夹的路径
        路径: /etc/yum.repos.d
                 9.2.4 相关命令
yum install 软件名    //安装软件
yum remove 软件名  //卸载软件
yum clean all     //清空缓存
yum repolist      //检查yum源是否正常
                9.2.5 yum源相关配置参考
[local]
name=my repo
enabled=1
gpgcheck=0
baseurl=file:///mnt
[guanfang]
name=guan fang
enabled=1
gpgcheck=0
baseurl=https://repo.huaweicloud.com/centos/7.9.2009/os/x86_64/
[epel]
name=epel
enabled=1
gpgcheck=0
baseurl=https://repo.huaweicloud.com/epel/7Server/x86_64/
        9.3 编译安装
                9.3.1 简介
用rpm或者用yum安装软件的时候,会有个问题,就是软件的安装位置无法控制
但是,通过编译安装的方式,可以来控制软件的安装具体细节,包括安装位置
                9.3.2 基本步骤
第一步:解压源码包
第二步:进入到解压以后得到的目录
第三步:执行命令,检查系统环境是否可以进行安装,而且指定软件的安装位置
./configure --prefix=安装位置
第四步:将源码编译成机器码【  执行命令make  】
第五步:将编译好的程序进行安装【执行命令  make  install  】

 十、计划任务

        10.1 简介

计划任务就是实现让linux自动、定时的完成某些操作。

计划任务分为两种:
一次性计划任务
这个任务仅仅会执行 一次
周期性计划任务
这个任务会被重复的执行
        10.2 一次性计划任务
at 时间
> 输入要执行的命令

查看计划任务:
at -l 可以显示所有的一次性计划任务列表【这里所列举的是那些尚未执行的计划任务,一旦计
划任务被执行了那么就看不到了】
at -c 编号 可以显示指定编号的计划任务中,要执行的操作有什么

删除计划任务:
方法1:at -d 编号
方法2:atrm 编号
        10.3 周期性计划任务

使用周期性计划任务时需要开启crond服务

检查是否开启
systemctl  status  crontab
开启
systemctl  start  crontab

 crontab的使用格式

创建\删除计划任务的命令
crontab -e
查看计划任务的命令
crontab -l

分 时 日 月 周 命令
案例:每分钟去删除一次tmp下的文件a.txt
* * * * * rm -rf /tmp/a.txt

十一、正则表达式

符号
.  表示任意一个字符
*  表示前面字符出现任意次数【0…n】
[0-9]、[0123456789]、[[:digit:]]  表示任意一个数字
[abcd…..z]、[a-z]、[[:lower:]]  表示任意一个小写字母
[ABC..Z]、[A-Z]、[[:upper:]]  表示任意一个大写字母
[[:punct:]]  表示任意一个符号
[[:space:]]  表示一个空格
[a-zA-Z]   表示任意一个字母
[0-9a-zA-Z]  表示任意一个数字或字母
^  表示行首  $ 表示行尾
\<   \>   锚定单词首尾
{m,n}  前面字符最少m次,最多n次
()   定义分组  \1 \2 \3 调用分组


扩展正则
		grep -E “正则” 文件名
		egrep “正则” 文件名

十二、磁盘管理

        12.1 磁盘的原理
track:磁道,其实就是磁盘上的同心圆,从外向里,依次是1号磁道、2号....
sector:扇区,将磁盘分成的一个一个扇形区域,每个扇区大小 都是512字节,从外向里,依次是1号扇区、2号....
cylinder:柱面,不同盘面上的同位置上的扇区构成了柱面,从外向里,依次是1号柱面、2号....
分区时候,都是从1号开始分区的,所以,越靠前的分区,读写性能越好
        12.2 MBR
Main Boor Record 主引导记录,系统启动,必须依靠MBR才能启动
MBR是磁盘的第一个扇区,大小是512字节,这512字节分为三个部分
        最前面的64字节:分区表
        中间的446字节:bootloader,这个是一个程序,用于引导系统开启启动
        最后2字节:magic number,这个是用于指定bootloader是否有效
        12.3 分区表
大小是64字节
在分区表中,记录了分区从哪个柱面开始,到哪个柱面结束
但是,在进行记录的时候,用8字节记录开始,用8字节记录,也就是说,16字节可以记录一个 分区,因此64字节最多可以分4个,这里的分区称之为主分区
为了分更多的分区,就需要在磁盘上额外找个空间,存储更多的分表,这个存储更多 的分区表 的空间,称之为扩展分区
通过扩展分区所分的更多的分区,称之为 逻辑分区

         图解

 注:

主分区的数量:0-4
        1. 主分区可以没有,也就是将所有的分区都做成扩展分区来使用
扩展分区数量:0-1
主分区+扩展分区的数量:1-4
逻辑分区数量:0~+
        1. 必须得先有扩展分区,才能有逻辑分区
编号问题:
        主分区编号是 1-4
        扩展分区编号 1-4
        逻辑分区编号 5+
         12.4 磁盘的命名
linux中,一切皆为文件
/dev/sd字母
/dev/sda 表示第一个磁盘
/dev/sdb 表示第二个磁盘
....
         12.5 磁盘的操作
fdisk   磁盘名称    //对磁盘进行分区
    选项:d  删除分区
		n  创建新分区
		p  打印分区信息
		q  不保存直接退出
		w  保存分区并退出

fdisk   -l   磁盘名称    //查看磁盘信息

磁盘分区后需要对磁盘进行格式化:
mke2fs   磁盘名称

十三、进程和内存管理

        13.1 查看内存
方法1:/proc/meminfo
方法2:free
free  -m   以mb为单位查看内存

 /proc/meminfo

这个文件是一个伪文件
这个文件中,记录了内存的相关信息
注意: 这个文件是伪文件,所以不能用vi打开,而应该用cat打开
         13.2 查看cpu
方法1:/proc/cpuinfo
方法2:top
        相关概念
        平均负载:单位时间内,系统中处于可运行状态和不可中断状态的平均进程数。
方法3:htop【默认没有安装,需要手动安装】
         13.3 进程的管理
ps   aux    显示所有进程
kill  -9   pid    立刻杀死进程
kill  -15  pid    等待没有用户在访问这个进程的时候,才会杀死进程

十四、文件的归档压缩

        14.1 简介
压缩:linux中的压缩,默认只能压缩一个文件,不能压缩目录
归档:linux中将多个文件或者目录,打成一个包
为了能够将多个文件压缩成一个文件,可以先对多个文件进行归档,然后进行压缩,就可以了
         14.2 相关命令
压缩命令:
xz   gzip   bzip2   zip

归档命令:
tar
tar 选项 归档文件名 要归档的文件列表
选项:-cvf 创建归档
        -xvf 解开归档

 十五、网络管理

        15.1 查看IP地址
ifconfig 【这个命令在centos7中,默认可能会没有安装,需要手动安装】
ifconfig -a 查看当前主机上所有的网卡的ip地址,包括未激活的网卡
ip addr
ip link show
        15.2 修改IP地址

        ifconfig修改IP地址

ifconfig 网卡名 ip地址 netmask 子网掩码 up

        配置文件修改IP地址【centos7为例】

配置文件的路径

/etc/sysconfig/network-scripts
配置文件的名字
ifcfg-网卡名
例如:ens33的网卡配置文件名:ifcfg-ens33
配置文件的内容
TYPE=Ethernet 表示网卡的类型,Ethernet表示类型是以太网
BOOTPROTO=dhcp 表示网卡的ip地址类型
dhcp表示是动态ip
static表示是静态ip,如果是静态的,就必须手动写入ip地址
IPADDR=192.168.1.200 指定网卡的ip地址,但是如果是指定成了动态ip。这此行无效
NETMASK=255.255.255.0 指定网卡的子网掩码
GATEWAY=192.168.1.1 指定网卡的网关地址
DNS1=8.8.8.8 指定网卡的主DNS
DNS2=114.114.114.114 指定网卡的辅助DNS
UUID=4da71d23-76b4-464f-a918-c9cc6483f975 每个网卡有自己唯一的网卡编号,为了防止冲突,可以删除这行
NAME=ens33 指定网卡名
DEVICE=ens33 指定网卡名
ONBOOT=yes 指定网卡是否自动激活,yes表示开机自动激活,no表示开机自动禁用
让配置文件生效的命令
systemctl restart network
        15.3 相关命令
ping 选项 目标ip                测试网络是否通畅、对域名进行解析
    选项:
        -c 数字:指定ping几次
        -w 数字:指定ping的等待超时事件

netstat 选项            查看当前本地主机和其他主机的链接情况,也可以查看当前主机开启的接口
    选项
        -a:显示所有的链接和端口信息
        -n:以数字的方式显示【如果不用数字方式显的话,那么显示速度会非常慢】
        -p:显示这个端口或者是链接所使用的进程编号【杀死端口占用的进程id,那么这个端口就可以
        被关闭】

lsof -i :端口号        专门查看端口占用的进程的id

ss  这个命令的作用和用法于netstat命令完全一样
    常用的选项组合
            -tunl
            -tunlp

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值