Linux学习心得问题总结(三)

news2025/5/26 6:00:54

day09 文件权限篇

文件权限的属性有哪些?我们应如何理解这些属性?

文件权限的属性包括可读(r)、可写(w)、可执行(x)三种权限,根据文件类型可分为普通文件(.txt,.png,.png,.mp4...)还有一些特殊文件(二进制文件b,socket文件s),其文件属性分析如下:
请添加图片描述

然后针对文件和文件夹的权限做一个分类:

权限分类文件权限文件夹权限
作用首字母权限位为- 是普通文件类型
文件的最大权限位为777,默认的权限位为755
首字母权限位为d,属于文件夹类型
文件夹权限的改变下次所创建的文件都会依靠于文件的权限而定
文件夹的最大权限位为666,默认权限位为644

如何使用link 来添加快捷方式

link表示软链接,它的命令是ln,常常作为软件服务快捷方式,在Linux我们会将它指向PATH环首字母境变量

这里我以Nginx为例,创建了Nginx启动快捷方式

# 创建Nginx快捷启动方式
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx


# 语法
ln -s 快捷方式路径 指向快捷方式的路径

效果如下图所示:

请添加图片描述

nginx快捷方式成功加入到了/usr/bin/环境变量内!!!

请添加图片描述

有关文件权限的数字表示方法和字母表示方法

3.1 关于文件权限的字母表示方法

  • 文件权限的表示方法:读r(read权限位数字表示为4),写w(write权限位数字表示为2),执行x(executive权限位数字表示为1)

  • 在这里我们就要提到一个文件权限修改关键的命令chmod(change modefiy),针对于chmod文件权限修改我们作用的对象有三个文件所属主u(root),文件所属组g(group),其他用户o,当然如果我们需要整体对文件进行修改需要使用a(all)权限从而能更方便修改用户所属权限关系

    chmod u-w a.txt b.txt     #将文所属主权限调制u-w
    chmod u+w,g+x,o+rw a.txt  #所属主加入w,所属组加入x,其他用户加入rw权限
    chmod a+x b.txt 		 #全部权限用户都有x可执行权限
    

    请添加图片描述

请添加图片描述

3.2 关于文件权限的数字表示方法

  • 在文件权限位中读权限会用数字4来表示,写权限会用数字2来表示,可执行权限用数字1来表示。

rwxr-xr-x------------------->755(u=4+2+1 g=4+1+0 o=4+1+0 )

-w---xr--------------------->214(u=0+2+0 g=0+0+1 o=4+0+0 )

chmod 755 a.txt    #一般会将权限的数字表示写在文件名之前

请添加图片描述

如何理解chown、chgrp命令

4.1 chown命令

chown(Change owner)更改所属主的权限,语法格式为chown ownuser filename

  • 修改文件用户权限

    chown abc a.txt 
    

请添加图片描述

  • 修改文件用户组权限

    chown :hhh111 a.txt
    

    请添加图片描述

    • 同时修改用户和用户组的权限
     chown hhh111:hhh111 a.txt
    

    请添加图片描述

    • 实现文件权限递归规则统一
    chown -R root /root/t1    #将t1目录的规则按照root的用户的原则进行修改
    

4.2 chgrp命令

  • chgrp (change group )修改了目录组权限,修改语法: chgrp old_group fileanme
chgrp hhh111  b.txt      

请添加图片描述

  • 实现群组递归效果(文件目录皆可)---->作用效果同chown

    chgrp -R gp1 a.txt
    

    请添加图片描述

day10 文件特殊权限

suid、sgid、sticky这几类权限有什么作用?为什么要学习这些权限?

在Linux 权限位中,有着一些特殊权限也发挥了一些重要的作用:suid (所有用户皆可访问和使用该文件)、sgid(使用的共享目录)、sticky(可粘贴键),关于特殊权限的添加也还是使用的chmod命令

  • suid (用户统一访问目录|文件)

【思考】 为什么无论是针对普通用户还是超级用户都能执行passwd修改密码操作,答案可想而知,我们就要根据passwd这个文件来进一步进行研究了

字母表现形式(s|S)

首先我们可以看到的是其权限位上表示的特殊权限位是s.如果在所属主用户上其原本拥有x权限,再加上特殊权限就是s,而如果本身不含有x可执行权限,那么它的特殊权限位就是S.如果我们加入了ssid权限,那么就只针对临时拥有可执行文件二进制文件有效。

  • 小写情况如下

    chmod u+s filename 
    

请添加图片描述

  • 大写情况如下

    chmod u+S filename
    

请添加图片描述

数字表现形式(用户控制位写成4位)

chmod 4655  a.txt  #这里的4节即表示特殊用户权限
  • sgid(共享目录)

方便所在组的所有用户能协同管理该目录,假如公司创建了一个运维组,且运维组只能管理属于自己的业务,而开发组负责自己开发的业务,那么我们针对这个场景应该如何应对呢?

  • 创建共享目录方法

    创建此类文件一定要确定目录文件权限拥有x权限,一般情况下我会给到目录777权限

    • chmod 777 testdir # testdir为测试的目标目录
    • **chmod g+s testdir ** #添加该目录为共享目录(字母表示法)|| chmod 7277 testdir #添加该目录为共享目录((数字表示法)

    请添加图片描述

  • sticky

    它的特点就是用户只能对用户进行写,而不能进行篡改操作,就好比老师发布了一个作用,只有老师自己独有权限修改和删除此类文件,你的身份无法进行此项操作。

    请添加图片描述

umask作用是什么

umask 也叫做默认子网掩码,默认掩码是0022 ,此权限主要是为了修改文件或者文件夹的默认权限位
我们通过查询文件权限可以知道:
文件夹默认权限位表示755----->简单来说:777-022=755
文件默认权限表示位表示644------>简单来说: 666-022=644

day11 系统服务管理篇

Linux默认提供的服务有哪些

1.1 ssh 服务

1.首先了解sshd服务端口情况
[root@hxd111 tmp]# netstat -tnlp | grep sshd 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1158/sshd: /usr/sbi 
tcp6       0      0 :::22                   :::*                    LISTEN      1158/sshd: /usr/sbi 


2.了解针对服务有哪些有哪些常规的操作

systemctl [start/stop/status/restart] service_name 

下面以sshd为例做出简要说明

systemctl status sshd || systemctl start sshd || systemctl stop sshd 


3.sshd启动后即可访问该远程服务

1.2 network服务

针对Linux网路功能如何管理

systemctl status  network|| systemctl start network || systemctl stop network 

systemctl有哪些常见的用法?

  • 在使用Centos6操作系统时,我们使用的是service管理服务的运行状态

    对于service 服务进行管理常见的使用项包括启动(start),停止(stop),重启(restart),重新加载配置(reload),查看状态(status)

    例如:启动mysqld服务时
    service mysqld  指令     指定mysql的使用帮助
    
    service mysqld start       #启动mysql服务
    
    service mysqld stop 	   #停止mysql服务
    
    service mysqld restart		#重启mysql服务
    
    service mysqld reload		#加载mysql配置文件
    
    

    chkconfig 指定服务进行开机自启动

作用:主要拥有以下几个功能: 为系统管理增加新服务,为系统管理移除服务、列出服务启动清单、查询服务的启动状态,默认不加选项只能显示服务使用信息

#查看系统程序列表
chkconfig --list 
#开机启动服务
chkconfig service on
# 关闭开机启动
chkconfig service off

随着后期系统的更新和完善,Centos7系统将Service启停服务的命令和chkconfig命令进行了整合,从而出现了如今的systemctl

systemctl语法

systemctl (英语全拼:system control) 用于控制systemd系统和管理服务
语法
systemctl [OPTIONS...] COMMAND ..

command选项解释如下

unit(表示服务 ----sshd,network,nginx)
以下几个命令即代替了旧版的service服务名
start:启动指定特定的unit
stop:关闭了指定的unit
restart:重启了指定的unit
reload: 重载指定的unit
status :查看unit当前运行状态
is-enabled:查看是否开机自启动

而enable和disable则是替代了传统的自启动chkconfig 服务名 on/off

  • 列出内置服务、名字和状态(运行、挂掉的都显示)
systemctl list-units --type service 【--all】  #不输入all将只显示active内容 
  • 举例:搜索sshd服务进行管理
systemctl list-units --type service | grep sshd
systemctl is-enabled sshd.service

day12 scp与ntp服务

scp远程传输服务与Linux之间的关系

  • 由本机电脑传输文件到同局域网的其他设备(scp)

     scp /etc/passwd root@10.2.53.8:/tmp/
    
  • 拉取其他局域网上的设备

    scp root@10.2.53.8:/etc/passwd  /tmp/
    

systemctl命令原理

1.依赖于systemctl脚本存放路径 /usr/lib/systemd/system/

2.通过systemctl status服务调用这个脚本 status

3.找到了其可执行命令/usr/sbin/sshd -D

4.通过link方式创建了systemctl服务并指向了可执行路径

请添加图片描述

systemctl与Ngixn服务

# 1.使用yum源安装nginx
yum -y install nginx

# 2.关闭防火墙,查看nginx
iptables -F

# 关闭nginx服务
ps -ef | grep nginx 
kill -9 pid 


  • 以服务管理模式运行systemctl
systemctl start nginx.service
systemctl status nginx.service
systemctl stop nginx.service

实际运行systenctl文件下的nginx.service 可执行文件

请添加图片描述

Ntp时间服务器的部署

  • 修改linux的日期、时间timedatectl
timedatectl
	-- date (修改软件时间)
	--查看系统中时期文件
	ls /usr/share/zoneinfo
	cp /usr/share/zoneinfo/Asia/Shanghai /usr
	-- hwclock(修改硬件主板时间以及纽扣电池,提供电路)
  • 查看当前时间(timedatectl)
[root@localhost etc]# timedatectl
               Local time: Sun 2025-05-18 22:06:38 CST
           Universal time: Sun 2025-05-18 14:06:38 UTC
                 RTC time: Sat 2025-05-24 21:44:51
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no
[root@localhost etc]# timedatectl status
               Local time: Sun 2025-05-18 22:06:44 CST
           Universal time: Sun 2025-05-18 14:06:44 UTC
                 RTC time: Sat 2025-05-24 21:44:56
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

  • 修改时间,时区

    timedatectl set-time '10:00'
    timedatectl list-timezones | wc -l
    timedatectl list-timezones | grep -i 'shanghai'
    timedatectl set-timezone Asia/Shanghai
    

ntp时间同步

  • ntpdate命令强制更新系统时间,进行时间同步
ntpdate -u ntp.aliyun.com
  • 搭建时间同步服务器
1.安装ntp软件
yum -y install ntp

2.查看ntp软件信息
[root@localhost etc]# ls /usr/lib/systemd/system/ | grep ntp
ntpdate.service
ntpd.service
ntp-wait.service
sntp.service

3.找到ntp软件配置文件
[root@localhost etc]# rpm -ql ntp | grep conf
/etc/ntp.conf
/etc/sysconfig/ntpd
/etc/sysconfig/ntpdate
/etc/sysconfig/sntp


4.修改ntp配置文件
vim /etc/ntp.conf

# 添加ntp的运行日志
logfile /var/log/my_ntp.log
#记录程序的运行进程号,通过脚本,找到程序进程id
profile /var/run/ntpd.pid
server times.aliyun.com iburst prefer
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst

5.重启ntp服务
systemctl restart ntpd.service

6.查看ntp是否和上游服务器同步
ntpstat

7.查看时间同步状态
ntpq -p



date命令和hwclock命令

timedatectl进行了替代硬件+软件

让软件时间和硬件时间同步

hwclock 可以将硬件时间和软件时间做同步
	-s --hctosys	从硬件时钟设置系统时间
	-w --systoch	从当前系统时间设置硬件时钟

置文件
vim /etc/ntp.conf

#添加ntp的运行日志
logfile /var/log/my_ntp.log
#记录程序的运行进程号,通过脚本,找到程序进程id
profile /var/run/ntpd.pid
server times.aliyun.com iburst prefer
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst

5.重启ntp服务
systemctl restart ntpd.service

6.查看ntp是否和上游服务器同步
ntpstat

7.查看时间同步状态
ntpq -p


###  date命令和hwclock命令

timedatectl进行了替代硬件+软件

让软件时间和硬件时间同步

hwclock 可以将硬件时间和软件时间做同步
-s --hctosys 从硬件时钟设置系统时间
-w --systoch 从当前系统时间设置硬件时钟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Anthropic推出Claude Code SDK,强化AI助理与自动化开发整合

Anthropic发布Claude Code SDK,协助开发团队将人工智慧助理整合进自动化开发流程,支援多轮对话、MCP协定及多元格式。 Anthropic推出Claude Code SDK,提供开发者与企业一套可程序化整合Claude AI助理至开发流程的工具。此SDK以命令列介面为基…

6.4.1最小生成树

知识总览 生成树(一定是连通的): 是连通的无向图的一个子图,子图包含这个无向图的所有顶点有n-1条边(少一条边,生成树就不连通了)即为生成树,一个连通图可能有多个生成树 最小生成树(最小代价树): 只有连通的无向图才…

DARLR用于具有动态奖励的推荐系统的双智能体离线强化学习(论文大白话)

1. 概述 离线强化学习是现在强化学习研究的一个重点。相比与传统的强化学习它不需要大量的实时交互数据,仅仅依赖历史交互日志就可以进行学习。本文就是将离线强化学习用于推荐系统的一篇文章。 这篇文章主要解决的核心问题有以下几个: 1)…

第35节:PyTorch与TensorFlow框架对比分析

引言 在深度学习领域,PyTorch和TensorFlow无疑是当前最受欢迎的两大开源框架。 自2015年TensorFlow由Google Brain团队发布,以及2016年Facebook的AI研究团队推出PyTorch以来,这两个框架一直在推动着深度学习研究和工业应用的发展。 本文将从多个维度对这两个框架进行详细对…

企业级智能体 —— 企业 AI 发展的下一个风口?

在AI技术迅猛发展的当下,企业对AI的应用不断深入。企业级智能体逐渐受到关注,它会是企业AI发展的下一个风口吗?先来看企业典型的AI应用场景,再深入了解企业级智能体。 企业典型AI应用场景 1. 内容生成:2025年&#xf…

【软考向】Chapter 2 程序设计语言基础知识

程序设计语言概述低级语言 —— 机器指令、汇编语言高级语言 ——翻译:汇编、解释和编译语言处理程序基础 —— 翻译给计算机,汇编、编译、解释三类编译程序基本原理 —— 词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成文法和语言的形式描述确定的有限…

JavaWeb:SpringBootAOP切面实现统计方法耗时和源码解析

介绍 快速入门 1.导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>2.切面类java Slf4j Aspect Component public class RecordTimeApsect {/*** 统计耗…

RabbitMQ的其中工作模式介绍以及Java的实现

文章目录 前文一、模式介绍1. 简单模式2. 工作队列模式3. 广播模式4. 路由模式5. 通配符模式6. RPC模式7. 发布确认模式 二、代码实现1、简单模式2、工作队列模式生产者消费者消费者 1消费者 2 3、广播模式 (Fanout Mode)生产者消费者 4、路由模式 (Direct Mode)生产者消费者 5…

vue2项目搭建

作者碎碎念&#xff1a;开历史倒车了&#xff0c;没想到不兼容&#xff0c;只能从vue3->vue2了。 1 vue3和vue2 这部分参考了官网的《vue3迁移指南》&#xff1a;Vue 3 的支持库进行了重大更新。以下是新的默认建议的摘要: 新版本的 Router, Devtools & test utils 来…

Spring AI 源码解析:Tool Calling链路调用流程及示例

Tool工具允许模型与一组API或工具进行交互&#xff0c;增强模型功能&#xff0c;主要用于&#xff1a; 信息检索&#xff1a;从外部数据源检索信息&#xff0c;如数据库、Web服务、文件系统或Web搜索引擎等 采取行动&#xff1a;可用于在软件系统中执行特定操作&#xff0c;如…

2025年- H48-Lc156 --236. 二叉树的最近公共祖先(递归、深搜)--Java版

1.题目描述 递归终止条件&#xff1a; 如果当前节点 root 为 null&#xff0c;表示到达了叶子节点的空子树&#xff1b; 如果当前节点是 p 或 q&#xff0c;就返回它&#xff08;因为从这里可以回溯寻找公共祖先&#xff09;。 2.思路 &#xff08;1&#xff09; 如果当前节…

Hertz+Kitex快速上手开发

本篇文章以用户注册接口为例&#xff0c;快速上手HertzKitex 以用户注册接口来演示hertz结合kitex实现网关微服务架构的最简易版本 项目结构 api- gateway&#xff1a;网关实现&#xff0c;这里采用hertz框架 idl&#xff1a;接口定义用来生成kitex代码 kitex_gen&#xff…

机器学习课程设计报告 —— 基于二分类的岩石与金属识别模型

机器学习课程设计报告 题 目&#xff1a; 基于二分类的岩石与金属识别模型 专 业&#xff1a; 机器人工程 学生姓名&#xff1a; XXX 指导教师&#xff1a; XXX 完成日期&#xff1a…

分词算法BPE详解和CLIP的应用

一、TL&#xff1b;DR BPE通过替换相邻最频繁的字符和持续迭代来实现压缩CLIP对text进行标准化和预分词后&#xff0c;对每一个单词进行BPE编码和查表&#xff0c;完成token_id的转换 二、BPE算法 2.1 核心思想和原理 paper&#xff1a;Neural Machine Translation of Rare…

STM32F103_Bootloader程序开发02 - Bootloader程序架构与STM32F103ZET6的Flash内存规划

导言 在工业设备和机器人项目中&#xff0c;固件远程升级能力已成为提升设备维护性与生命周期的关键手段。本文将围绕STM32平台&#xff0c;系统性介绍一个简洁、可靠的Bootloader程序设计思路。 我们将Bootloader核心流程划分为五大功能模块&#xff1a; 启动入口与升级模式判…

通过Auto平台与VScode搭建远程开发环境(以Stable Diffusion Web UI为例)

文章目录 Stable Diffusion Web UI一、&#x1f3af;主要功能概述二、&#x1f9e0;支持的主要模型体系三、&#x1f4e6;安装方式简述✅ 一、前提准备✅ 二、安装步骤混乱版本&#xff08;仅用于记录测试过程&#xff09;第一步&#xff1a;克隆仓库&#xff08;使用清华大学镜…

Unity 打包程序全屏置顶无边框

该模块功能: 1. 打包无边框 2. 置顶 3. 不允许切屏 4.多显示器状态下,程序只在主显示上运行 5.全屏 Unity 打包设置: 如果更改打包设置,最好将Version版本增加一下,否则可能不会覆盖前配置文件 代码: 挂在场景中即可 using UnityEngine; using System; // 确保这行存…

GAMES104 Piccolo引擎搭建配置

操作系统&#xff1a;windows11 家庭版 inter 17 12 th 显卡&#xff1a;amd 运行内存&#xff1a;>12 1、如何构建&#xff1f; 在github下载&#xff1a;网址如下 https://github.com/BoomingTech/Piccolo 下载后安装 git、vs2022 Git Visual Studio 2022 IDE - …

用service 和 SCAN实现sqlplus/jdbc连接Oracle 11g RAC时负载均衡

说明 11.2推出的SCAN &#xff0c;简化了客户端连接&#xff08;当增加或者减少RAC实例时&#xff0c;不需要修改客户端配置&#xff0c;并且scan listener有各个实例的负载情况&#xff0c;可以实现连接时负载均衡。 不过客户端需要使用专门建立的service,而不能用RAC数据库…

防火墙流量管理

带宽管理介绍 针对企业用户流量&#xff0c;防火墙提供了带宽管理功能&#xff0c;基于出/入接口、源/目的安全区域、源/目的地址、时间段、报文DSCP优先级等信息&#xff0c;对通过自身的流量进行管理和控制。 带宽管理提供带宽限制、带宽保证和连接数限制功能&#xff0c;可…