linux基础

linux基础

TCP/IP

ip: 计算机唯一网络标识 ,由32个二进制组成,分割成四个部分,再将个二进制转换为十进制 例如:127.0.0.1 ,192.168.1.1

  • **A类:**1~127 网+主+主+主
  • **B类:**128~191 网+网+主+主

  • **C类:**192~223 网+网+网+主

组播及科研专用

  • **D类:**224~239 组播
  • **E类:**240~254 科研

    ###########################################

    ip地址组成:网络位+主机位

相同网络通信:

​ 192.168.1.1与192.168.1.1 (192.168.1 网络)

不同网络通信:(不同网络间的通信要用到路由器)

​ 192.168.1.1与192.168.4.1 (192.168.1 网络 与 192.168.4 网络)

子网掩码

标识IP地址的网络位与主机位

利用二进制的1标识网络位

利用二进制的0标识主机位

192.168.1.1 == 11000000.10101000.00000001.00000001

255.255.255.0 == 11111111.11111111.11111111.00000000

简易写法:192.168.1.1/24 (说明子网掩码24个1)

**网关地址:**一个网络到另一个网络的关口(不同网络通信时,一般在路由器上)

**DNS:**域名解析,将域名转换为IP地址


linux目录结构

aa

  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot:
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev :
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc:
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

  • /lib
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
    该目录存放一些服务启动之后需要提取的数据。

  • /sys

    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

  • /usr
    usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin:
    系统用户使用的应用程序。

  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:
    内核源代码默认的放置目录。

  • /var
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是 /bin/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

linux常用命令

命令行提示标识的含义

  • [当前用户@主机名 工作目录]#

  • 若当前用户是root,则做后一个字符为#

    [root@localhost ~]#

  • 否则,最后一个字符为$

    [root@localhost ~]$

linux常用命令

pwd — Print Working Diretory 显示当前路径

cd — Change Diretory 进入路径(文件)(例:cd /root)

​ cd /xxx/xxx 绝对路径 从根开始

​ cd xxx/xxx 相对路径 以当前位置为参照

​ cd … 回到上一级目录

ls — List (蓝色代表目录,黑色代表文本文件)

​ ls [路径] :查看路径下的目录 (例:ls /root)

cat — 查看文本文件的内容

​ cat 文件路径 (例:cat /root/aaa.txt)

​ cat /ect/redhat-release #查看系统版本

列出cpu信息 — lscpu

​ CPU(s) : 几核处理器

检查内存大小、空闲情况 — cat /proc/meminfo

显示主机名 — hostname

​ 更改主机名 hostname xxx (主机名就会变成xxx)

显示网卡信息 — ifconfig

​ 设置临时iip ifconfig eth0 192.168.1.1

mkdir [/路径/]文件名 — 创建目录

touch 文件名 — 创建文件

​ 例:touch aa.txt

less 文件名 — 滚动查看文件

​ 查找: /** 全文查找**

​ 按 n 进行跳转匹配项

​ 按 q 退出

head、tail 命令

​ head -n 数字 文件名 -n 10 可简写为 -10

​ tail -n 数字 文件名 n为输出几行,未选择时默认输出十行

grep [选项] ‘匹配模式’ 文本文件

grep aa /root/aa 管道符 查找出包含aa的那一行

​ 从 /root/aa里面找出含有aa行那一行

-i:忽略大写

-v:取反(输出不包含的)

​ ^**:匹配以**开头 grep ^root /etc/passwd

​ **KaTeX parse error: Undefined control sequence: \* at position 5: :匹配以\̲*̲*结尾的 grep root /etc/passwd

配置网络

  • 设置系统主机名

    nmtui (不适合批量修改主机名)

    reboot 重启服务器

  • 永久设置IP地址 子网掩码 网关地址 DNS服务器

  • vim文本编辑器 修改文件内容

    三个模式:命令模式 插入模式 末行模式

    ​ 看文件-> (i)-> 修改文件-> (esc) -> 保存退出(:wq)

    命令模式:u(撤销)

  • tab键 — 补全机制

命令行基础

- 命令的执行依赖于解释器(例如:/bin/bash)

​ 用户 --> 解释器 --> 内核 --> 硬件

基本用法

- 命令字 [选项]… [参数1] [参数2]… ([]为可选)

​ cat /etc/passwd

​ tail -n /aaa/aa.txt

查看有什么 [选项]命令字 --help (例: cat --help)

**选项:**调控命令的执行方式

- 短选项: -l、 -A、 -c、 -d

-多个短选项–>复合选项:-lh 、 -lA 、 -ld

长选项:–help

**参数:**命令的操作对象,如目录或文件

快捷键

  • Ctrl + l :清空整个屏幕
  • Ctrl + c:废弃当前编辑的命令行
  • Alt + . :粘贴上一个命令的参数

光驱设备

linux挂载光盘:光盘文件 —>光驱设备—>访问点(目录)

快捷位置:/dev/cdrom

ls -l /dev/cdrom #显示参数的详细属性

在linux中,无法直接访问挂载文件(直接访问回乱码),需要通过目录来挂载

mount命令 挂载

- 格式:mount 设备路径 挂载点目录

​ 例 mount /dev/cdrom /dvd/

​ ls /dvd

​ ls /dvd/Packages/

卸载:# umount /dvd

注意事项:

- 只有具有文件系统的才能被挂载(分区或磁盘)
- 卸载的时候不能在目录里  如果在/dev 里面执行umount /dev就卸载不了
- 一个设备可以有多个挂载点(错误,一个设备在同一时间只能有一个挂载点,mmp达内坑我)
- 不允许一个挂载点有多个设备
- 建议挂载点目录的选择,最好自己创建(挂载之后原目录下的文件将会被隐藏,卸载之后才会重新出现)

目录和文件管理

基础命令详解

~:家目录

~user:用户的的家目录 cd ~zhangsan(张三的家目录)

/root:为管理员的家目录

/home:存放所有普通用户的家目录(实际家目录为home下的普通用户名文件夹,如张三的家目录是/home/zhangsan,而不是/home)

- useradd zhangsan		
- cd ~zhangsan
- pwd
ls:当前路径下的文件信息

蓝色代表目录,黑色代表文本文件

​ ls [选项] [路径] :查看路径下的目录 (例:ls /root)

	-l:以长格式显示,显示详细属性,长和 h 连用
	_A:包括名称以 . 开头的隐藏文档
	-h:以易读方式显示(可以把字节变成KB、MB)
	-d:显示目录本身(而不是内容)的属性,和 l 连用

隐藏文件创建 touch .aa.txt (以 . 开头的文件默认为隐藏文件)

通配符
- * :任意多个任意字符
- ? :单个字符
# ls aaa*  :匹配所有aaa开头的文件或文件夹
# ls *.txt :匹配所有以.txt结尾的文件
# ls aa?   :匹配aa加上一个字符的文件
- [a-z]    :就像sql里面的bewteen
# ls aa[0-2]:匹配aa0、aa1、aa2(数字只能从0到9)
- {aa,dd}    :就像sql里面的in(aa,dd)
# ls aa{aa,dd}:匹配aaaa、aadd
命令别名使用 alias

查看已经设置的别名:alias [别名名称]

定义新的别名:alias 别名名称=‘实际执行的命令行’

取消已设置的别名:unalias 别名名称

#alias hn = ‘hostname’ 设置别名

#alias 查看别名

#unalias hs 删除别名

别名设置不要和系统本身有的命令重名不然会覆盖本身的命令

​ #alias ls= ‘poweoff’ 输入ls直接执行关机命令而不是展示列表

永久配置别名

上面那种情况是临时的,是把别名加到进程里,系统重新启动后就没有了

永久别名的设置:去配置文件里面设置

位置:~/.bashrc

打开文件填写就行了 vi /~/.bashrc

重新执行文件:source ~/.bashrc

poweroff 关机命令
mdkir 创建目录
-d:把父目录也创建出来(创建多重目录)
mdkir -p aaa/bbb/cc  把aaa、bbb也创建出来
-R 递归显示
rm 删除
-r:递归(如果目录下有文件是无法删除的,可以用-r递归删除)
-f:强制
rm -rf 强制递归删除(rm -rf /* 删库跑路符)
mv 移动文件

也可用于修改文件名

mv 源文件 目标位置 例:mv /data/aa /data/bb

cp 原文件 /data/aa/ 移动到/data/aa下面

cp 源文件 /data/aa 移动到data里面改名字为aa

cp 复制

cp [选项] 原文件 目标位置

cp /data/aa /cc

\cp -r /data/aa /cc \作用:在本次操作临时取消别名

-r 目录下有文件的时候,递归拷贝

重定向操作 ( > )

重定向输入:将命令的输入,作为文本文件内容写入一个文件中

ls --help > /opt/ls.txt >覆盖重定向 (>就是重定向输出,将命令输出到指定位置)

>> 追加重定向

echo

输出,写什么就在屏幕上输出什么,长和重定向>>连用

echo 123 输出123 就像Java的print

echo 123455 > >/opt/ls.txt 将123455追加到/opt/ls.txt 里面

find 查找文件

- 根据预设的条件递归查找对用的文件

  • find [目录] [条件1] [-a|-o] [条件2]

  • 常用条件表示:

    • type 类型(f、d、l)
    • name “文档名称”
    • size +|-文件大小(k、M、G)
    • user 用户名
    • mtime 根据文件修改时间
# type 按照文件类型查找
# find /boot/ -type d   # 查找目录
# find /boot/ -type f   # 查找文件
# find /boot/ -type l   # 查找快捷方式

# name  按照名字查找  name “文档名称”  加双引号 支持通配符
# find /etc/ -name "passwd"

# 两个条件查询 -a and(同时满足两个条件)  -o(or) 满足一个天剑 
# find /boot/ -type f -a -name "passwd"-name "passwd"
# -a时候-a可以不用写

# size  +|-文件大小(k、M、G)
# find /boot/ -size +300M  #查找文件大于300M的
# find /boot/ -size -300M  #查找文件小于300M的
# 大小写不能写错,有要求

# 按照文件的所有者查找   user 用户名
# find /boot/ -user cyk

# mtime 根据文件修改时间 (都是过去时间)
# mtime +10  :10天之前修改过的文档
# mtime -10  :最近10天之内修改过的文档
# find /var/ -mtine +90  #查找90天以前的文档

find 的高级使用

将查询的结果进行额外的操作

- find ... -exec  处理命令 {} \;
- “-exec”开始,以{}代替每一个结果,逐个处理,遇见“\;”结束
# 将查询到的结果拷贝到一个地方
# find /boot/ -size +10M -exec cp {} /opt \;
# find /root/ -name "nsd*" -exec cp -r {} /mnt \;

管理用户和组

管道操作(|)

将前面命令的输出,交由后面命令处理,作为后面命令的参数

显示/ect/passwd的8~12行内容?

head -12 /ect/passwd | tail -5

bc计算器

打出bc可以直接唤出计算器,按Ctrl+C退出(或quit)

配合管道符也可 ceho 1+3 | bc

向下取整(垃圾计算器)

用户管理

用户账户:

​ 1.可以登录操作系统

​ 2.不同的用户具备不同的权限

​ 唯一标识:UID(唯一标识用户) GID(唯一标识组)

​ 0开始,0代表第一个,1代表第二个

​ **组账号:**基本组(私有组) 附加组(从属组)

一个用户至少属于一个组

​ 当只创建一个用户,没有加入组的时候,系统会默认创建一个同名组,把新建用户加入同名组里面

​ 系统创建的同名组就是基本组,后来再把用户加入其他组,其他组就是附加组(从属组)

创建用户
  • 使用useradd 命令

    # useradd [选项] ... 用户名

  • 常用命令选项

    -u  用户id(UID)
    -d  家目录路径
    -G  附加组
    -s  登录解释器
    
    #useradd nsd01 --创建nsd01用户
    #id nsd01     --查看nsd01是否创建成功
    #useradd -u 1500 nsd02  --指定UID创建用户
    #useradd -d /mnt/nsd03 nsd03  --指定家目录创建用户
    
    #groupadd tarena	--创建组
    #useradd -G tarena nsd04  --新建用户是添加付家组
    #id nsd04
    #useradd -s /sbin/nologin nsd05  --设置用户登录解释器
    

    用户基本信息存放在/etc/passwd

    以root账户为例子(信息以:分割)七个字段
    root:x:0:0:root:/root:/bin/bash
    用户名:密码占位符:UID:基本组的GID:用户描述信息(可为空):该用户的家目录:解释器
    

    /etc/shells :存放了都有哪些可以作为解释器

    /sbin/nologin:禁止用户登录系统

设置登录密码

用户密码信息存放在/etc/shadow 文件

root:$6$iAXao/qVjgWEG$JAb9QxJTfJAKLvekY7Jv5uyuWlCf7AY4wRoMFfXfv9RU95spkGgc2FNkCSaoQOvmPstgkCa7iTkuFkumJ/uaq/:19437:0:99999:7:::
用户名:密码加密字符串:上一次修改的时间:密码最短使用时间:提前警告时间:null(用户永远有效)::

上一次修改的时间;自1970-1-1到达上一次修改密码的时间经历的天数
密码最短使用时间:0的话就是随时可以改,1就是使用一天,99999就是永久密码
  • 使用passwd 命令 (设置密码)

    # passwd [用户名]

    #su - nsd02 临时切换身份(输入exit退回到root)

  • 非交互式设置密码

    # echo '密码'|passwd --stdin 用户名

    用于脚本时使用

    给用户设置密码(只有root用户才能用)

修改用户属性

# usermod [选项] ... 用户名

-u  用户id(UID)
-d  家目录路径
-G  附加组
-s  登录解释器
# useradd nsd05
# grep nsd05 /etc/passwd
# usermod -u 1600 -d /mnt/nsd05 -s /sbiin/nologin -G tarena nsd05
检查用户ID信息

- id 用户名 #id nsd01

删除用户

使用userdel命令

# userdel [-r] 用户名
		  [-r] :连同家目录一并删除(尽量不要加 )

管理组账号

添加组

组基本信息存放在/ect/group 文件

使用groupadd命令

# groupadd [-g 组ID] 组名
# groupadd tedu   --创建tedu组
# grep tedu /ect/group --查看文件里是否有这个组数据
 tedu:x:1004:
 组名:组密码占位符:组GID:组的成员列表
管理组成员

使用gpasswd 命令

- gpasswd -a 用户名 组名 从组中添加用户
- gpasswd -d 用户名 组名 从组中删除用户
删除组

使用 groupdel命令

#roupdel 组名

tar备份与恢复

1.整合分散数据
2.减少空间占用
常见的压缩格式及命令工具:
	.gz --> gzip压缩格式
	.bz2 --> bzop2压缩格式
	.xz --> xz压缩格式

tar 集成备份工具

- -c : 创建归档
- -x : 释放归档
- -f : 指定归档文件名称
- -z、-j、-J : 调用.gz、.bz2、.xz 格式的工具进行处理
- -t : 显示归档中的文件清单
- -C : 指定释放路径

打包格式:

​ tar 选项 /路径/压缩包的名字 被压缩的数据源

# tar -zcf /opt/file.tar.gz /etc/passwd /home gz压缩最快
# tar -Jcf /opt/file.tar.xz /etc/passwd /home xz压缩的最小
-f一定要在后面,不能在前面

解包格式:

​ tar 选项 /路径/压缩包的名字 选项 释放的路径

# tar -xf /opt/file.tar.gz -C /mnt/   --解压
tar -tf /opt/file.tar.gz  --查看压缩包里面的内容

查看日期时间

直接敲date

# date

更改时间

date -s ‘当前时间’

date -s '年-月-日 时:分:秒'

cron计划和任务

**用途:**按照设置的时间间隔为用户反复执行某一固定的系统任务

日志文件:/var/log/cron

软件包:cronie、crontabs

系统服务:crond

周期性任务
管理计划任务策略

使用 crontab 命令

- 编辑:crontab -e [-u 用户名]
- 查看:crontab -l [-u 用户名]
- 清除:crontab -r [-u 用户名]

如何编写crontab任务记录

分 时 日 月 周		任务命令行(绝对路径)
*   *    *  *   *    *就是匹配所有
30  8    *  *   *	  每月每周每日的8点30分执行
30  23   *  *   5     每周的周五晚上11:30执行
30  23   1  *   5     每周的周五活每月1号晚上11:30执行
当日和周同时出现的时候,满足一个就可以
30  23   *  *   1-5     每周的周一到周五五晚上11:30执行
30  23   *  *   1,,35     每周的周一三五晚上11:30执行
0   */2   *  *   *    	每隔两给小时

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FSoPleV4-1681985383545)(E:\ccstudy\markdown\img\定时任务.png)]

配置一个cron任务

为用户 natasha 配置一个定时任务

​ - 每天在本地时间14:23执行

​ - 每天完成的人物操作为/bin/echo hiya

-- 每分钟记录当前的系统时间,写入到/opt/time/txt
# crontab -e -u root 
# * * * * * date >> /opt/time.txt  --每分钟向/opt/time.txt里写入当前时间
-- 查看定时任务
crontab -l -u root
-- 删除定时任务
crontab -e -u root   --进去把对应的任务删除

打开一个新的linux首先要做的事情

查看系统版本

cat /etc/redhat-release

查看网卡地址

**ifconfig | head -2 ** --查看第一张网卡的地址

查看看主机名

hostname

远程管理

1.本机ping远程管理的主机地址 # ping ...

2.本机执行命令

# ssh 用户@对方的IP地址
(第一次连接会问你是否保存信息)
# 输入密码

新开一个终端快捷键:Ctrl + Shift + t
# ssh -X 用户@对方的IP地址   --可以在远程管理时,开启对方的图形程序

权限和归属

权限管理

  • 访问方式(权限)
- 读取:允许查看内容-read  		 --r
- 写入:允许修改内容-write 		 --w
- 可执行:允许运行和切换-execute   --x
对于文本文件:
	r : cat head less
	w : vim  >    >>
	x : Shell脚本
对于目录:
	目录的 r 权限:能够ls浏览此目录的内容
	目录的 w 权限:能够执行rm/mv/cp/mkdir/touch/...等更改目录内容的操作(只能对该目录的子目录操作)
	目录的 x 权限:能够cd切换到此目录
  • 权限适用对象(归属)
- 所有者:拥有此文件/目录的用户-user		   --u
- 所属组:拥有此文件/目录的组-group			--g
- 其他用户:除所有者、所属组以外的用户-other	 --o
  • ls -l

ls -ld 路径 --看目录本身的信息

# ls -ld /etc/passwd
-rw-r--r-- 1 root root 1245 Apr  5 12:40 /etc/passwd
-(文本文件)权限 用户   组    最近修改日期			目录(文件)名

# ls -ld /etc/
drwxr-xr-x. 79 root root 4096 Apr  7 17:06 /etc/
权限解析:rwxr-xr-x.
三个三个为一组,rwx,r-x,r-x
第一组是所属用户权限,第二组是所属组权限,第三组是其他人权限(排列顺序永远是rwx,如果没有权限就用-代替)
以-开头的是文本文件
以d开头的是目录
以l开头的是快捷方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ne8bqeWa-1681985383546)(E:\ccstudy\markdown\img\用户权限.jpg)]

root用户可以无视权限,权限是约束普通用户的

设置基本权限

使用chmod命令

- chmod [-R] 归属关系+-=权限类别 文档...

**-R:**递归设置权限,将赋予目录下的文件同等权限

修改root目录下的nsd01权限  用户减去w(写权限)
[root@CC ~]# mkdir nsd01
[root@CC ~]# ls -ld nsd01
drwxr-xr-x 2 root root 4096 Apr 11 11:38 nsd01
[root@CC ~]# chmod u-w nsd01
[root@CC ~]# ls -ld nsd01
dr-xr-xr-x 2 root root 4096 Apr 11 11:38 nsd01

修改root目录下的nsd01权限  所属组加上w(写权限)
[root@CC ~]# chmod g+w nsd01
[root@CC ~]# ls -ld nsd01
dr-xrwxr-x 2 root root 4096 Apr 11 11:38 nsd01

修改root目录下的nsd01权限  给other重新赋予权限
[root@CC ~]# chmod o=--- nsd01
[root@CC ~]# ls -ld nsd01
dr-xrwx--- 2 root root 4096 Apr 11 11:38 nsd01

修改root目录下的nsd01权限  复合赋予
[root@CC ~]# chmod u=rwx,g=rx,o=rx nsd01
[root@CC ~]# ls -ld nsd01
drwxr-xr-x 2 root root 4096 Apr 11 11:38 nsd01
复合赋予2
[root@CC ~]# chmod ugo=rwx nsd01
[root@CC ~]# ls -ld nsd01
drwxrwxrwx 2 root root 4096 Apr 11 11:38 nsd01
linux判断用户具备的权限

自己看 ls -ld

设置文档归属

使用chown命令

- chown [-R] 所属者  文档...
- chown [-R] :所属组  文档...
- chown [-R] 所属者:所属组  文档...
[root@CC ~]# ls -ld /nsd02
drwxr-xrwx 2 root root 4096 Apr 11 16:35 /nsd02
[root@CC ~]#
[root@CC ~]# ls -ld /nsd02
drwxr-xrwx 2 root root 4096 Apr 11 16:35 /nsd02
[root@CC ~]# chown cyk:tedu /nsd02
[root@CC ~]# ls -ld /nsd02
drwxr-xrwx 2 cyk tedu 4096 Apr 11 16:35 /nsd02
[root@CC ~]# chown harry /nsd02
[root@CC ~]# ls -ld /nsd02
drwxr-xrwx 2 harry tedu 4096 Apr 11 16:35 /nsd02
[root@CC ~]# chown :root /nsd02
[root@CC ~]# ls -ld /nsd02
drwxr-xrwx 2 harry root 4096 Apr 11 16:35 /nsd02
如何让李四(其他用户)有读写权限而其他用户无读写权限
将李四加入组中
gpasswd -a lisi tedu  --lisi就可以了
但是加入之后不会立即生效,需要lisi重新登录一下
组权限不会立即生效,但是用户权限(u)会立即生效
匹配顺序:所有者>所属组>其他用户(匹配及停止)
他的意思是如果用户和组都是李四,用户不拥有写权限,组拥有写权限,他从所有者开始判断,当第一个所有者匹配上之后,不会再去匹配后面的组合其他用户

附加权限

又叫特殊权限

  • Set GID

    附加在属组的x位上(如果有x为

    s,如果没有x则为S)

-属组的权限标识会变为s
-适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组(继承父目录的所属组组身份)
[root@CC ~]# ls -ld /nsd02
drwxr-xrwx 2 harry root 4096 Apr 11 16:35 /nsd02
[root@CC ~]# chmod g+s /nsd02
[root@CC ~]# ls -ld /nsd02
drwxr-srwx 2 harry root 4096 Apr 11 16:35 /nsd02
  • Set UID

    附加在属主的x位上(如果有x为

    s,如果没有x则为S) --基本不用了

-属组的权限标识会变为s
-适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限
  • Sticky Bit

    附加在其他人的x位上

    -其他人的权限标识会变为t
    -适用于开放w权限的目录,可以阻止用户滥用w写入权限(禁止操作别人的文档)
    
    # chmod o+t /nsd02
    # ls -ld /nsd02/
    drwxr-srwt 2 harry root 4096 Apr 11 16:35 /nsd02/
    

ACL权限

acl访问控制列表

acl访问策略

能够对个别用户,个别组独立的设置权限

大多数挂载的EXT3/XFS文件系统默认已支持

命令:
添加:
- setfacl [-R] -m u:用户名:权限类别 文档...
- setfacl [-R] -m g:组名:权限类别 文档...

setfacl -m u:dc(用户:用户名):rx(权限/读执行)  文件位置
setfacl -m g:dc(用户组:用户组名):rx(权限/读执行)  文件位置

查看:
getfacl 文件位置 

删除:
setfacl [-R] -x u:用户名:权限类别 文档...   #删除指定acl策略
setfacl [-R] -x g:组名:权限类别 文档...    #删除指定acl策略
setfacl [-R] -b  文档...     #删除所有acl策略
[root@CC ~]# cd /nsd02
[root@CC nsd02]# touch cs02
[root@CC nsd02]# chmod g=---,o=--- ./cs02

[cyk@CC nsd02]$ cat /nsd02/cs02
cat: cs02: Permission denied

-- 设置acl权限
[root@CC nsd02]# setfacl -m u:cyk:rwx /nsd02/cs02

[cyk@CC nsd02]$ cat cs02
[cyk@CC nsd02]$ ll /nsd02/cs02
-rw-rwx---+ 1 root  root 0 Apr 13 17:12 cs02

--- 查看文件的acl权限
[cyk@CC nsd02]$ getfacl /nsd02/cs02
getfacl: Removing leading '/' from absolute path names
# file: nsd02/cs02
# owner: root
# group: root
user::rw-
user:cyk:rwx
group::---
mask::rwx
other::---

软件包管理

零散软件管理

1.光盘挂载获得

2.从网上下载

  • 使用wget下载工具

    - wget 软件包的url网址  --下载到当前目录下
    - wget 软件包的URL网址 -0(大写O) /目录路径/新文件名  --下载到指定位置
    
    # cd /opt/
    # wget http://.../a.rpm  --下载a.rpm
    
  • 使用rpm 命令管理软件

    RPM Package Manager , RPM包管理器

    - rpm -q 软件名...   #查询软件是否安装
    - rpm -ql 软件名...   #查询软件是否安装,如果安装,都安装了什么东西(查询软件的安装清单)
    - rpm -ivh 软件名-版本信息.rpm...   #安装软件包
    - rpm -e 软件名...					#卸载软件包
    
  • 升级Linux内核

    1.下载内核文件 xx.rpm

    2.查看当前内核版本

    ​ # uname -r

    3.安装软件包

    ​ rpm -ivh 软件名-版本信息.rpm

    4.重启

    ​ reboot

rpm安装经典问题:容易出现依赖错误,所以建议使用yum安装软件

Yum软件包仓库:自动解决依赖关系

服务:可以为客户端自动解决依赖关系,安装软件包

服务端:(光盘)

1.众多软件包

​ 2.仓库数据文件(仓库清单)

​ 使用ftp或者web传递给客户端,共享光盘所有内容

客户端:

​ 书写一个配置文件:指定服务端位置 (必须放在指定位置里(/etc/yum.repos.d/目录下),必须以.repo结尾)

​ PS:错误的配置文件会影响正确的配置文件(一个错误文件会影响其他配合文件)

- /etc/yum.repos.d/*.repo

# 文件里面不支持中文
[epel]    #[仓库标识]  ‘[]’里的是仓库名称
name=Extra Packages for Enterprise Linux 7 - $basearch   # 描述 name=后面是仓库描述信息
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/epel/7/$basearch        	# 指定服务端位置(去下载的路径)
enabled=1  	 # 本文件启用 等于1是为开启,本文件生效,等于0关闭,不生效
gpgcheck=0  #不检测红帽签名信息 
gpgkey=http://mirrors.cloud.aliyuncs.com/epel/RPM-GPG-KEY-EPEL-7    #公钥信息  可以没有

# yum repolist 列出仓库信息

yum 安装

上一步配置好了下载仓库的信息之后,就该使用yum命令下载了

yun install 文件名

yum install tomcat  # 下载tomcat
yum -y install tomcat  # 无需确认直接下载tomcat
rpm -q tomcat   #查看是否安装
yum remove httpd   #卸载

yum repolist   #查看缓存的仓库
yum clean all  #清空缓存  (有时候修改.repo文件缓存没更新,没有立即识别,就需要清一下缓存)

磁盘分区规划及使用

硬盘分区管理

​ 磁道

​ 扇区:512字节

识别硬盘 => 分区规划 => 格式化 => 挂载使用

  • 识别硬盘

# lsblk -- 列出硬盘

  • 分区规划

    **分区模式:**MBR(传统分区模式) GPT (新分区模式) (两种方式二选一)

    MBR:主启动记录模式

    最大空间支持:2T

    类型:主分区 扩展分区 逻辑分区

    最多有四个主分区(主分区1、主分区2、主分区3、扩展分区)

    扩展分区相当于主分区4,为了打破只有四个分区限制而设置的,扩展分区里面可以再分区(逻辑分区1,逻辑分区2,逻辑分区…)

    扩展分区不能格式化

    如何分区?

​ 使用fdisk分区工具

    查看分区表
    # fdisk -l /dev/vda   --我的是云服务器,所以硬盘是		vd(虚拟硬盘,真机可能是hd,sd)
    #fidisk  /dev/vda   --分区需谨慎,w保存更改

    # Command (m for help): n    --创建分区
    # Partition type:				-- 系统提示,询问想要	创建的是哪种分区(p 主分区,e 扩展分区,默认p)
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    # Select (default p): 回车就行
    # Using default response p  --系统返回信息
    # Partition number (2-4, default 2): 		--默认	为2分区,回车
    # 起始扇区:(默认回车,直接回车)
    # 系统回复信息
    # 结束扇区:+2G   --给分区2 2G的空间,如果不加G则是分配2扇	区,一定要加单位,若果默认则会将硬件所有的空间都给2
    # d   --删除分区
    # w   --保存并退出

    /dev/vda5 表示的含义:虚拟设备的硬盘(vd),第一块(a)的第	五个分区(5)    (也可以表示为第一个逻辑分区(5))
  • 格式化分区

​ 格式化:赋予空间文件系统的过程

​ 文件系统:空间存储数据的规则

​ Windowd: FAT NTFS --文件系统

​ Linux : ext4(RHEL6) xfs(RHEL7) --文件系统

如何格式化?

mkfs命令

# mkfs.+tab键      --使用代码补全查看支持什么格式化文件系统
# mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    	*mkfs.ext4*    mkfs.minix   *mkfs.xfs*   --**主要记住	这两个
--  格式化是会清空数据的,尽量保证你的分区里没内容
mkfs.ext4 分区路径    (# mkfs.ext4 /dev/vdb2)

-- 如何查看分区格式化完了
# blkid  分区路径   (# blkid  /dev/vdb2)
# 系统回复信息  /dev/vdb2:  UUID='..'  TYPE="ext4"
-- 如果没有回复信息,就说明该分区没有文件系统
  • 挂载使用

    # mkdir /part1
    # mount /dev/vda2 /part1   #挂载
    # df -h			--查看正在挂载的所有项目
    # umount /part1  --卸载
    
  • 开机自动挂载

    上面那种挂载开机重启就没了,一般挂载都要求一直挂载,这个时候,就又该去修改配置文件了

    配置文件 /etc/fstab 的记录格式	
    - 设备路径    	挂载点   类型   	参数 			 备份标记   	检测顺序
      /dev/vda2	 /part1  ext4  	defaults		0(不用备份)		0或1  (0是不检测,1是检测,只有根分区用检测,自己设置的分区不用检测,检测会大大拖慢开机速度)
      
      参数可以设置:rw,acl,suid,sgid,...  (defaults:默认,一大堆参数的集合,该有的功能全有)
      设备路径可以用UUID代替
      
    # mount -a  # 检测配置文件是否正确,如果啥都不回复就是正确的   (其实source /etv/fstab也行)
    
    

逻辑卷管理

逻辑卷

​ 1.整合分散空间

​ 2.空间可以扩大

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P2ZjLvFL-1681985383547)(E:\ccstudy\markdown\img\逻辑卷.jpg)]

将零散的空间整合成虚拟整体,然后把虚拟整体当成虚拟磁盘划分区,就是逻辑卷

PV(物理卷)->VG(卷组) ->LV(逻辑卷)

一、制作逻辑卷

pvs #扫描物理卷

上一步做不做都行
# 1. 创建卷组
# vgcreate 卷组名 物理卷	(例:vgcreate systemvg /dev/vdb[1-2])
# vgs   # 查看卷组
# 2.创建逻辑卷
# lv -n 逻辑卷名字 -L 大小    --创建逻辑卷
# lv -n mylv -L 16G    逻辑卷在设备里的命名格式未/dev/dm-0,1,2,..
# ls -l /dev/systenvg/mylv
# 3.创建好逻辑卷之后就该格式化了,给与文件系统
# mkfs.xfs  /dev/systenvg/mylv
# 查看文件系统类型
# blkid /dev/systenvg/mylv
# 4. 实现开机自动挂载
# vi /etc/fstab
# /dev/systenvg/mylv	 /part2  xfs  	defaults		0	0
:wq保存并退出
# source /etc/fstab   #重新执行文件
# df -h
二、逻辑卷的线上扩展

无须卸载,直接扩展

扩展逻辑就是逻辑卷找卷组要空间,卷组没有空间找物理卷要空间,如果卷组有空间就分配给逻辑卷

-- 1.卷组有足够的剩余空间
-- 1.1 扩展逻辑卷空间
# lvextend -L +2G /dev/systenvg/mylv    --直接扩展
# lvs
-- 1.2 扩展文件系统大小(刷新文件系统)
	resize2fs:扩展ext4文件系统
	xfs_frowfs:扩展xfs文件系统
# xfs_frowfs /dev/systenvg/mylv 
# df -h

-- 2.卷组没有足够的剩余空间
-- 2.1 扩展卷组
# vgextend 卷组名 物理卷位置
# vgextend systemvg /dev/vdb3
# vgs
-- 2.2 走1.的流程扩展逻辑卷
-- 逻辑卷的缩小(不建议)
    ext4文件系统支持缩减
    xfs文件系统不支持缩减
# vgdisplay systemvg  #查看卷组详细信息 显示PE
修改PE
vgchange -s 大小 卷组名
vgchange -s 1M  systemvg

lv -n mylv -l 800 -l为分配800个PE给mylv  -L为直接分配存储大小
逻辑卷的删除

顺序:先删除逻辑卷,再删除卷组,最后删除物理卷(物理卷可以不删)

1.删除逻辑卷
1.1 卸载挂载点
# umont /part1
# lvremove /dev/systenvg/mylv
2.删除卷组 卷组删不删也行,没有文件系统,保留也可以
# vgremove systenvg

NTP时间同步

当同时有好几台服务器的时候哦,为了保证时间的一致性,会采用一台服务器当主服务器,其他服务器在配置里指向主服务器,使得所有服务器的时间与主服务器的时间保持一致

LDAP认证

实现网络用户认证,达到用户的集中管理

​ 网络用户:用户信息会放在网络中的LDAP服务器

​ 本地用户:用户信息会放在/etc/passwd

跟NTP逻辑类似,当有几十台服务器的时候,为了使一个用户在几十台服务器上都有权限,每一台都创建一个这样的用户是不可取的的,太繁琐。使用一台服务器当主服务器A,A创建的用户可以直接访问其他服务器(相当于在其他服务器上也有这个用户),其他服务器会去A服务器上查看有没有这个用户。也就是说,我们只需要操作A服务器就行,方便省事

NTP和LDAP的服务器搭建先不讲

1.安装sssd软件   连接A服务器
# yum -y install sssd
# yum -y install authconfig-gtk   #安装图形化界面
# authconfig-gtk       	#运行图形化软件

行文件

df -h




#### 二、逻辑卷的线上扩展

无须卸载,直接扩展

扩展逻辑就是逻辑卷找卷组要空间,卷组没有空间找物理卷要空间,如果卷组有空间就分配给逻辑卷

```shell
-- 1.卷组有足够的剩余空间
-- 1.1 扩展逻辑卷空间
# lvextend -L +2G /dev/systenvg/mylv    --直接扩展
# lvs
-- 1.2 扩展文件系统大小(刷新文件系统)
	resize2fs:扩展ext4文件系统
	xfs_frowfs:扩展xfs文件系统
# xfs_frowfs /dev/systenvg/mylv 
# df -h

-- 2.卷组没有足够的剩余空间
-- 2.1 扩展卷组
# vgextend 卷组名 物理卷位置
# vgextend systemvg /dev/vdb3
# vgs
-- 2.2 走1.的流程扩展逻辑卷
-- 逻辑卷的缩小(不建议)
    ext4文件系统支持缩减
    xfs文件系统不支持缩减
# vgdisplay systemvg  #查看卷组详细信息 显示PE
修改PE
vgchange -s 大小 卷组名
vgchange -s 1M  systemvg

lv -n mylv -l 800 -l为分配800个PE给mylv  -L为直接分配存储大小
逻辑卷的删除

顺序:先删除逻辑卷,再删除卷组,最后删除物理卷(物理卷可以不删)

1.删除逻辑卷
1.1 卸载挂载点
# umont /part1
# lvremove /dev/systenvg/mylv
2.删除卷组 卷组删不删也行,没有文件系统,保留也可以
# vgremove systenvg

NTP时间同步

当同时有好几台服务器的时候哦,为了保证时间的一致性,会采用一台服务器当主服务器,其他服务器在配置里指向主服务器,使得所有服务器的时间与主服务器的时间保持一致

LDAP认证

实现网络用户认证,达到用户的集中管理

​ 网络用户:用户信息会放在网络中的LDAP服务器

​ 本地用户:用户信息会放在/etc/passwd

跟NTP逻辑类似,当有几十台服务器的时候,为了使一个用户在几十台服务器上都有权限,每一台都创建一个这样的用户是不可取的的,太繁琐。使用一台服务器当主服务器A,A创建的用户可以直接访问其他服务器(相当于在其他服务器上也有这个用户),其他服务器会去A服务器上查看有没有这个用户。也就是说,我们只需要操作A服务器就行,方便省事

NTP和LDAP的服务器搭建先不讲

1.安装sssd软件   连接A服务器
# yum -y install sssd
# yum -y install authconfig-gtk   #安装图形化界面
# authconfig-gtk       	#运行图形化软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值