C高级(Day22)

一、学习内容

  1. shell指令

    1. 文件相关的指令

      1. 重定向 > >>
        1. echo :打印字符串

        2. cat: 在终端打印文件的内容

    2. 链接文件

      1. 硬链接文件:文件的inode号是一样的。
      2. 查看文件inode号: ls -i
      3. 格式:ln 被链接的文件 创建硬链接文件
      4. 1 硬链接的文件类型是普通文件 -
        2 修原文件时,硬链接文件也被会修改,反之也一样
        3 原文件和硬链接文件的inode号一样
        4 创建硬链接文件时, 硬链接文件的个数会增加
        5 修改硬链接文件的路径时, 链接关系依然生效
        6 不允许对目录创建硬链接文件

    3. 软链接文件

      1. 软链接:类似与快捷方式。可以对目录进行链接
      2. 格式: ln -s 绝对路径下被链接的文件 绝对路径下创建的链接文件
      3. 1 软链接的文件类型是链接文件 l
        2 修原文件时,软链接文件也被会修改,反之也一样
        3 原文件和软链接文件的inode号不一样
        4 创建软链接文件时, 硬链接文件的个数不会增加
        5 在创建软链接文件时需要使用绝对路径,原因,防止修改链接文件路径时失效修改软链接文件的路径时, 链接关系不生效
        6 允许对目录创建软链接文件

    4. 压缩\解压缩\归档\拆包

      1. 压缩\解压缩
        1. 压缩、解压缩:原文件会消失,且只能对文件操作

        2. Linux的压缩格式: xz\gz\bz2压缩:bzip2 要压缩的文件    ----->XXXX.bz2gzip  要压缩的文件    ----->XXXX.gzxz    要压缩的文件    ----->XXXX.xz
          解压缩:bunzip2 解压的文件.bz2gunzip  解压的文件.gzunxz    解压的文件.xz压缩效率: xz > bz2 > gz

      2. 归档\拆包 tar
        1. 归档、拆包: 原文件存在,可以对多个文件或者目录操作

        2. -j     ---bzip2
          -J     ---xz
          -z     ---gzip
          -f     ---file
          -x     ---拆包
          -c     ---归档
          -v     ---显示详细过程归档:tar -cvf  XXX.tar   要归档的文件名\目录
          拆包:tar -xvf  XXX.tar  归档并压缩:tar -jcvf  XXX.bz2   要归档压缩的文件名\目录tar -Jcvf  XXX.xz   要归档压缩的文件名\目录tar -zcvf  XXX.gz   要归档压缩的文件名\目录
          拆包并解压缩:tar -jxvf  XXX.bz2tar -Jxvf  XXX.xztar -zxvf  XXX.gz

        3. 归档、拆包

        4. 归档压缩 、 拆包解压

    5. 磁盘指令

      1. 磁盘连接ubuntu
        1. 方式1

        2. 方式2

      2. 查看是否连接成功
        1. 指令: ls /dev/sd*

      3. 查看磁盘的使用情况 df
        1. 指令:df (保证u盘未出现挂载点,否则后面创建分区等操作失败)

        2. 取消挂载点 指令: sudo umount 挂载点\挂载分区

      4. 磁盘实现 创建、删除 fdisk
        1. 从u盘h中拿取一点空间 ,进行相关操作

          1. 格式

            1. sudo fdisk 指定的磁盘路径 (创建分区)

            2. sudo fdisk /dev/sdc (u盘的主盘、而不是sdb1、2)

            3.   常规d   删除分区F   列出未分区的空闲区l   列出已知分区类型n   添加新分区p   打印分区表t   更改分区类型v   检查分区表i   打印某个分区的相关信息保存并退出w   将分区表写入磁盘并退出q   退出而不保存更改

      5. 格式化磁盘分区 mkfs
        1. 格式: sudo mkfs.ntfs /dev/sdc2

      6. 挂载
        1. 在ubuntu操作系统中,万物皆文件,所以认为u盘也是文件,把u盘挂载到一个目录下 操作目录等价于操作U盘

          1. 挂载: sudo mount 挂载分区 挂载点 取消挂载 sudo umount 挂载分区 挂载点

    6. 用户相关指令

      1. 查看用户名
        1. whoami

      2. 新建用户名
        1. sudo adduser 用户名

      3. 切换用户
        1. su 用户名

      4. 修改密码
        1. sudo passwd 用户名

      5. 删除用户
        1. sudo userdel 用户名

        2. sudo userdel 用户名 -r

    7. 开关机指令

      1. 关机指令:sudo shutdown 10:00    在10:00关机sudo shutdown +10      在10分钟后关机sudo shutdown now      立马关机shutdown -c   取消关机或重启重启指令:sudo shutdown -r 10:00    在10:00重启sudo shutdown -r +10      在10分钟后重启sudo shutdown -r now      立马重启

  2. shell脚本

    • 编程语言的分类

      • 面向过程:C
      • 面向对象:C++ java
      • 编译型语言:
        借助于编译器进行编译,在编译源文件时,只要不修改文件,只需要编译一次,后期可以直接运行,效率高。如果修改,则需要再次编译。
      • 解释型语言:
        shell 需要借助于解释器,每执行一个源文件则需要解释一次,效率低,但是可以和内核交互。
    • 什么是shell

      • shell: 贝壳 保护
      • 作用:保护内核,输入一个shell指令, 需要使用shell解释器解析shell脚本,操作内核。
    • 第一个shell

      • shell脚本是一个.sh文件
      • shell本质就是指令的集合, 但是指令需要满足一定的逻辑
      • 1. #!/bin/bash#!   表示这是一个脚本文件/bin/bash  表示使用的解析器
        2. shell中的注释# 单行注释<<名    ----->多行注释名eg :   <<a注释内容a

    • shell脚本的解析器

      • 查看shell脚本使用的解析器
        • echo $SHELL 或者 cat /etc/shells

      • 常见的解析器
        • bash 用于ubuntu和debian操作系统

        • sh 最早的解析器,和终端交互性差

        • dash 类似于sh

        • csh 类似于c语言,健壮性差

        • ksh 需要许可证

      • 运行.sh文件的方式
        • bash XXX.sh

        • chmod 777 XXX.sh ./XXX.sh

        • source XXX.sh

    • 修改环境变量

      • 可以将 f2.sh 直接类似于 ls 一样直接使用 ,那么需要修改环境变量
      • 查看环境变量
        • 指令: env

        • 环境变量=环境变量的值

        • PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/ubuntu/zsq/c/try/gg:/home/ubuntu/zsq/c/try/gg/【ls 就在这个路径  修改环境变量 --->方便 】

      • 在当前终端有效
        • 1. 在终端输入以下语句export PATH=$PATH:/home/ubuntu/81/zz|        |    PATH变量的值    添加的新路径|       环境变量类似extern,引用环境变量 2. 给文件添加可执行权限chmod 777 XXX.sh
          3. 运行XXX.sh

      • 对当前用户有效(常用)
        • 需要在 ~/.bashrc 文件添加语句

        • 1. 打开~/.bashrc 文件添加语句 export PATH=$PATH:/home/ubuntu/81/zz|        |    PATH变量的值    添加的新路径|       环境变量类似extern,引用环境变量 2. 需要文件生效source ~/.bashrc
          3. 添加权限:chmod 777 XXX.sh
          4. 运行XXX.sh

        • 查看

        • 打开修改

        • 使得文件生效

  3. 脑图

二、总结

学习内容概述

1. Shell编程基础:

介绍了Shell的基本概念、工作原理以及常见的Shell编程命令,如变量定义、条件判断、循环控制等内容。通过实战演练,学习如何编写Shell脚本来自动化任务。

2. Shell脚本实例:

使用Shell脚本解决具体问题,包括文件操作、字符串处理以及系统命令的调用。并通过案例演示了Shell脚本的常用结构和逻辑。

3. Linux文件系统:

学习Linux文件系统的层次结构,理解不同目录的用途,以及如何通过命令进行文件操作,如 `ls`、`cd`、`mkdir`、`rm` 等命令的使用。

4. 进程管理与控制:

学习了Linux系统中的进程控制命令,了解如何使用 `ps`、`top`、`kill` 等命令查看和管理系统中的进程。

5. 文件权限与用户管理:

学习文件权限的表示方式及其更改方法,掌握 `chmod`、`chown` 等命令对文件权限和用户的管理。

6. shell变量与函数:

深入学习Shell中的变量、环境变量以及函数定义与调用。理解局部变量和全局变量的区别,并学会如何在脚本中有效地使用函数。

学习难点

1. Shell脚本的逻辑编写:

编写复杂的Shell脚本时,逻辑控制(如条件判断、循环)的设计是难点,特别是在处理多个条件时需要考虑优先级和效率。

2. 权限管理与进程控制:

在多用户环境中,正确设置文件的权限及管理进程的优先级是难点,理解不同权限对文件操作和进程管理的影响尤为重要。

3. 环境变量与作用域:

Shell脚本中的变量作用域管理是学习难点,特别是全局变量和局部变量的使用与冲突的解决。

4. 进程的调度与优先级控制:

如何通过系统命令对进程进行调度与优先级管理,特别是在复杂任务执行时的进程调优和资源分配。

 主要事项

1. Shell脚本的编写:

掌握基本的Shell语法,包括变量、循环、判断结构。能够通过脚本自动化处理常见的系统操作,提升工作效率。

2. 文件系统操作与权限管理:

理解Linux文件系统的结构,掌握常见文件操作命令,同时正确设置文件的权限和用户组,确保文件的安全性。

3. 进程管理与调优:

通过 `ps`、`top`、`kill` 等命令有效监控系统进程,掌握进程优先级的调节方法,确保系统资源合理分配。

4. Shell函数的使用:

通过Shell函数将复杂的操作分解成小的功能模块,提高脚本的可读性和复用性,掌握函数传参和返回值的处理。

 未来学习的重点

1.高级Shell编程技巧:

继续深入学习Shell脚本的高级技巧,如正则表达式的使用、信号处理、并发编程等,提升脚本的复杂任务处理能力。

2. Linux系统安全管理:

进一步学习Linux的安全机制,特别是文件权限的精细化管理和用户权限的分配,提升对系统安全的掌控能力。

3. Shell脚本调试与优化:

学习如何对Shell脚本进行调试,排查错误,优化脚本的执行效率,特别是在处理大规模数据或复杂系统任务时的性能调优。

4. 多进程与并发控制:

学习在Shell中进行多进程管理的技术,特别是如何处理并发任务,确保系统资源的高效利用与任务执行的稳定性。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 基于Python的医疗预约与诊断系统 Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

通用型pdf合并工具,分享7款简单易学的pdf处理软件,日常电脑必备!

日常学习和工作中&#xff0c;我们难免会遇到需要编辑pdf文件的情况。熟悉pdf格式文档的小伙伴都知道&#xff0c;pdf不易于编辑&#xff0c;需要借助专业的pdf编辑软件才能实现。现在pdf编辑、pdf转word、pdf合并、pdf拆分等功能都可以轻松实现。尽管如此&#xff0c;也有不少…

《动手学深度学习》笔记2.1——神经网络从基础→进阶 (层和块 - 自定义块)

目录 0. 前言 原书正文&#xff08;第五章&#xff09; 第五章 - 第一节 - 层和块 - 自定义块 1. Sequential() PyTorch高级API 2. MLP() 无传入参数 3. MySequential() 传入任意层(块) 4. FixedHiddenMLP() 无传入参数-固定隐藏层 5. NestMLP() 传入嵌套块-多次嵌套 …

Vue之axios请求

Vue之axios请求 axios请求, 是Vue前端框架非常重要的一部分, 今天我们就讲解axios请求, 到底有什么作用, 以及会告诉大家axios的常见用法。 axios请求, 是网页向后端发起请求, 后端吧数据给我们网页, 这是一个前后端交互的过程。当我们学会了axios, 我们可以实现前端和后端练…

【算法篇】二叉树类(2)(笔记)

目录 一、Leetcode 题目 1. 左叶子之和 &#xff08;1&#xff09;迭代法 &#xff08;2&#xff09;递归法 2. 找树左下角的值 &#xff08;1&#xff09;广度优先算法 &#xff08;2&#xff09;递归法 3. 路径总和 &#xff08;1&#xff09;递归法 &#xff08;2…

H. Sakurako‘s Test

H. Sakurakos Test 原题 本题通过前缀和和二分可以解决, 原理并不是很困难, 但是比较难想到 我们只需要对每一个 x, 二分求出中位数, 预处理好即可, 二分的检查通过求k倍的x可以在调和级数的时间内实现 代码 #include <bits/stdc.h> #define int long longusing name…

mysql索引 -- 聚簇索引,非聚簇索引,如何查看linux下的数据库文件,普通/辅助索引(回表查询)

目录 聚簇索引和非聚簇索引 聚簇索引 介绍 示例 查看当前的数据库数据目录 表文件 非聚簇索引 介绍 myisam 示例 普通(辅助)索引 引入(回表查询) mysql索引结构详细介绍 -- mysql索引 -- 索引的硬件理解(磁盘,磁盘与系统),软件理解(mysql,与系统io,buffer pool),索…

基于SpringBoot的新冠检测信息管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 国内外在该方向的研究现状及分析 新型冠状病毒肺炎疫情发生以来&#xff0c;中国政府采取积极的防控策略和措施&#xff0c;经过两个多月的不懈努力&#xff0c;有效控制了新发病例的増长&#xff0c;本地传播已经趋于完全控制…

【Java】六大设计原则和23种设计模式

目录 一、JAVA六大设计原则 二、JAVA23种设计模式 1. 创建型模式 2. 结构型模式 3. 行为型模式 三、设计原则与设计模式 1. 设计原则 2. 设计模式 四、单例模式 1. 饿汉式 2. 懒汉式 四、代理模式 1. 什么是代理模式 2. 为什么要用代理模式 3. 有哪几种代理模式 …

并发面试合集

1.创建线程的方式 区分线程和线程体的概念&#xff0c;线程体通俗点说就是任务。创建线程体的方式&#xff1a;像实现Runnable、Callable接口、继承Thread类、创建线程池等等&#xff0c;这些方式并没有真正创建出线程&#xff0c;严格来说&#xff0c;Java就只有一种方式可以…

MySQl查询分析工具 EXPLAIN ANALYZE

文章目录 EXPLAIN ANALYZE是什么Iterator 输出内容解读EXPLAIN ANALYZE和EXPLAIN FORMATTREE的区别单个 Iterator 内容解读 案例分析案例1 文件排序案例2 简单的JOIN查询 参考资料&#xff1a;https://hackmysql.com/book-2/ EXPLAIN ANALYZE是什么 EXPLAIN ANALYZE是MySQL8.…

有问题未解决(9.28)

#include <stdio.h> int main() {int a 1;int b 2;int c 3;int arr[] { a,b,c };arr[0] 10;printf("%d\n", a);//打印结果为1&#xff1b;return 0; } 颠覆认知了&#xff0c;或许也没有颠覆 arr是一个int类型的数组&#xff0c;他存的就是一个数&…

Arch - 架构安全性_保密(Confidentiality)

文章目录 OverView导图保密保密强度与成本客户端加密密码存储与验证 Code总结 OverView 即使只限定在“软件架构设计”这个语境下&#xff0c;系统安全仍然是一个很大的话题。 接下来我们将对系统安全架构的各个方面进行详细分析&#xff0c;包括认证、授权、凭证、保密、传输…

JSP(Java Server Pages)基础使用二

简单练习在jsp页面上输出出乘法口诀表 既然大家都是来看这种代码的人了&#xff0c;那么这种输出乘法口诀表的这种简单算法肯定是难不住大家了&#xff0c;所以这次主要是来说jsp的使用格式问题。 <%--Created by IntelliJ IDEA.User: ***Date: 2024/7/18Time: 11:26To ch…

大厂AI必备数据结构与算法——链表(三)详细文档

冲冲冲&#xff01;开干 神马&#xff01;神马&#xff01;神马&#xff0c;一向让我们学习起来抓耳挠腮的数据结构课程竟然也有教程&#xff1f;还那么详细&#xff1f;&#xff1f;真的假的&#xff1f; 那么好&#xff0c;胡广告诉你是假的&#xff0c;哈哈哈哈哈哈哈哈哈…

走进上海郭培高定会馆:以冠珠华脉、华珍筑就至臻至性的艺术空间

“我热爱高级时装&#xff0c;因为她是一种生命的停驻。我希望我的高级时装成为馆藏级的精品&#xff0c;殿堂级的珍宝&#xff0c;成为传世杰作。” ——郭培 中国唯一一位法国高定公会受邀会员&#xff0c;曾荣登《TIME》时代周刊全球100位最具影响力人物榜单。纽约时报评价…

opencv学习:通过图像透视进行发票识别完整代码流程

概念&#xff1a; 使用OpenCV库实现图像的透视变换处理&#xff0c;以矫正图像中的透视失真。通过本实验&#xff0c;学习者将掌握图像处理的基本操作&#xff0c;包括图像的读取、显示、大小调整、灰度转换、二值化、轮廓检测、轮廓近似以及透视变换。 步骤&#xff1a; 1. …

vue3 通过 axios + jsonp 实现根据公网 ip, 查询天气信息

前提 安装 axios 的 jsonp 适配器。 pnpm install pingtou/axios-jsonp 简单使用说明&#xff1a;当与后端约定的请求 callback 参数名称不为为 callback 时&#xff0c;可修改。一般无需添加。 1. 获取当前电脑 ip 和城市信息 请求地址&#xff1a; https://whois.pconl…

【质优价廉】GAP9 AI算力处理器赋能智能可听耳机,超低功耗畅享未来音频体验!

当今世界&#xff0c;智能可听设备已经成为了流行趋势。随后耳机市场的不断成长起来&#xff0c;消费者又对AI-ANC&#xff0c;AI-ENC&#xff08;环境噪音消除&#xff09;降噪的需求逐年增加&#xff0c;但是&#xff0c;用户对于产品体验的需求也从简单的需求&#xff0c;升…

isilon存储node节点更换你必须知道的知识

最近一直想要写一篇文章是关于EMC Isilon 存储控制器方面的&#xff0c;是什么力量促使我要写这个文章呢&#xff1f;作为一个卖存储备件的资深搬运工&#xff0c;最近遇到了一些关于控制器方面的备件询价、备件更换方面的问题&#xff0c;每次都要花大量的时间给客户解释。解释…