当前位置: 首页 > news >正文

【BASH】回顾与知识点梳理(七)

【BASH】回顾与知识点梳理 七

    • 七. 前六章知识点总结及练习
      • 7.1 总结
      • 7.2 练习

该系列目录 --> 【BASH】回顾与知识点梳理(目录)

七. 前六章知识点总结及练习

7.1 总结

  • 由于核心在内存中是受保护的区块,因此我们必须要透过『 Shell 』将我们输入的指令与 Kernel 沟通,好让 Kernel 可以控制硬件来正确无误的工作。用户不能直接操作内核,如果要操作内核只能通过两个途径:
    1. 调用system call接口
    2. glibc为用户封装了库函数,用户通过glibc间接调用system call接口
      在这里插入图片描述
  • 学习 shell 的原因主要有:文字接口的 shell 在各大 distribution 都一样;远程管理时文字接口速度较快;shell 是管理 Linux 系统非常重要的一环,因为 Linux 内很多控制都是以 shell 撰写的。
  • 系统合法的 shell 均写在 /etc/shells 文件中;
    [root@node-135 ~]# cat /etc/shells
    /bin/sh
    /bin/bash
    /usr/bin/sh
    /usr/bin/bash
    
  • 用户默认登入取得的 shell 记录于 /etc/passwd 的最后一个字段;
  • bash 的功能主要有:命令编修能力;命令与文件补全功能;命令别名设定功能;工作控制、前景背景控制;程序化脚本;通配符
  • type 可以用来找到执行指令为何种类型,亦可用于与 which 相同的功能;主要参数:-p -t -a
  • 变量就是以一组文字或符号等,来取代一些设定或者是一串保留的数据
  • 变量主要有环境变量与自定义变量,或称为全局变量与局部变量
  • 使用 env 与 export 可观察环境变量,其中 export 可以将自定义变量转成环境变量;declare/typeset -x和export用法和功能相同
  • set 可以观察目前 bash 环境下的所有变量;unset取消变量
  • $? 亦为变量,是前一个指令执行完毕后的回传值。在 Linux 回传值为 0 代表执行成功
  • locale 可用于观察语系资料;
  • 可用 read 让用户由键盘输入变量的值;主要参数:-p -t
  • ulimit 可用以限制用户使用系统的资源情况;常用参数:-u -f -n
  • bash 的配置文件主要分为 login shell 与 non-login shell。login shell 主要读取 /etc/profile 与 ~/.bash_profile,non-login shell 则仅读取 ~/.bashrc
  • 在使用 vim 时,若不小心按了 [crtl]+s 则画面会被冻结。你可以使用 [ctrl]+q 来解除冻结
  • 通配符主要有: *, ?, [] 等等
  • 数据流重导向透过 >, 2>, < 之类的符号将输出的信息转到其他文件或装置去;
  • 连续命令的下达可透过 ; && || 等符号来处理
  • 管线命令的重点是:『管线命令仅会处理 standard output,对于 standard error output 会予以忽略』 『管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。』
  • 管线命令主要有:cut, grep, sort, wc, uniq, tee, tr, col, join, paste, expand, split, xargs 等,有些命令虽然不是管线命令,但仍可以和管线命令组合使用,例如ls

7.2 练习

  1. 情境模拟题一:由于 ~/.bash_history 仅能记录指令,我想要在每次注销时都记录时间,并将后续的指令 50 笔记录下来, 可以如何处理?
    o 目标:了解 history ,并透过数据流重导向的方式记录历史命令;
    o 前提:需要了解本章的数据流重导向,以及了解 bash 的各个环境配置文件信息。
    答:其实处理的方式非常简单,我们可以了解 date 可以输出时间,而利用 ~/.myhistory 来记录所有历史记录,而目前最新的 50 笔历史记录可以使用 history 50 来显示,故可以修改 ~/.bash_logout 成为底下的模样:
[dmtsai@study ~]$ vim ~/.bash_logout
date >> ~/.myhistory
history 50 >> ~/.myhistory
  1. 在 Linux 上可以找到哪些 shell(举出三个) ?那个文件记录可用的 shell ?而 Linux 预设的 shell 是?
		bashshcsh/etc/shellsbash
  1. 你输入一串指令之后,发现前面写的一长串数据是错的,你想要删除游标所在处到最前面的指令串内容,应该如何处理?
    ctrl + u
    ctrl + k 向后删
    ctrl + a 移动行首
    ctrl + e 移到行尾
  2. 在 shell 环境下,有个提示字符 (prompt),他可以修改吗?要改什么?默认的提示字符内容是?
    可以
    环境变量PS1
    $,『[\u@\h \W]$』==> [“目前使用者的账号名称”@“仅取主机名在第一个小数点之前的名字” “当前工作目录名”]$
  3. 如何显示 HOME 这个环境变量?
[root@node-135 ~]# echo $HOME
/root
  1. 如何得知目前的所有变量与环境变量的设定值?
    环境变量:env,export
    所有变量:decaler,set
[root@node-135 ~]# abcde=1234
[root@node-135 ~]# env|grep abcde
[root@node-135 ~]# export|grep abcde
[root@node-135 ~]# declare|grep abcde
abcde=1234
[root@node-135 ~]# set|grep abcde
abcde=1234
  1. 我是否可以设定一个变量名称为 3myhome ?
    不可以,变量名有数字、字母和下划线组成,第一位不可以是数字
  2. 在这样的练习中『A=B』且『B=C』,若我下达『unset $A』,则取消的变数是 A 还是 B?
    B
    unset $A 相当于 unset B
  3. 如何取消变量与命令别名的内容?
    unset unalias
  4. 如何设定一个变量名称为 name 内容为 It’s my name ?
    name=“It’s my name”
  5. bash 环境配置文件主要分为哪两种类型的读取?分别读取哪些重要文件?
    login-shell/no-login-shell
    login-shell读取/etc/profile和~/.bash_profile
    no-login-shell读取~/.bashrc
  6. CentOS 7.x 的 man page 的路径配置文件案?
    /etc/man_db.conf
  7. 试说明 ', ", 与 这些符号在变量定义中的用途? 双单引号':标记字符串,字符串内容不支持转义 双双引号":标记字符串,字符串内容支持转义 双撇\:用于执行其内的命令,同$()
  8. 跳脱符号 \ 有什么用途?
  • 在echo -e 字符串中能够转义
    [root@node-135 ~]# echo -e "123\t123">123
    [root@node-135 ~]# cat 123
    123     123
    
  • 成为一般字符
    [root@node-135 ~]# echo "\"it is cat"\"
    "it is cat"
    [root@node-135 ~]# echo "it is cat"
    it is cat
    
  • 逃脱符号,命令过长能进行换行
  1. 连续命令中, ;, &&, || 有何不同?
    ;:命令顺序执行,cmd1 ; cmd2,不管前一个命令cmd1 是否成功,cmd2都会执行
    &&:cmd1 && cmd2 ,cmd1执行成功,执行cmd2。cmd1执行失败,不执行cmd2。
    ||:cmd1 || cmd2 ,cmd1执行成功,不执行cmd2。cmd1执行失败,执行cmd2。
  2. 如何将 last 的结果中,独立出账号,并且印出曾经登入过的账号?
last|cut -d' ' -f 1
last|cut -d' ' -f 1|sort |uniq
  1. 请问 foo1 && foo2 | foo3 > foo4 ,这个指令串当中, foo1/foo2/foo3/foo4 是指令还是文件? 整串指令的意义为?
    foo1,2,3指令,foo4文件
    foo1执行失败,则程序结束
    foo1执行成功,foo2执行成功,把stdout输出给foo3作为stdin,执行foo3,foo3执行完成后的结果输出给foo4
    foo1执行成功,foo2执行失败,把空输出给foo3作为stdin,执行foo3,foo3执行完成后的结果输出给foo4,foo4里什么都没有
  2. 如何秀出在 /bin 底下任何以 a 为开头的文件文件名的详细资料?
[root@node-135 ~]# ls /bin/a* -l
  1. 如何秀出 /bin 底下,文件名为四个字符的文件?
ls -ld /bin/????
  1. 如何秀出 /bin 底下,档名开头不是 a-d 的文件?
ll /bin/[^a-d]*
  1. 我想要让终端机接口的登入提示字符修改成我自己喜好的模样,应该要改哪里?(filename)
[root@node-135 ~]# cat /etc/issue
\S (terminal: \l)
Date: \d \t
Kernel \r on an \m
Welcome!
  1. 承上题,如果我是想要让使用者登入后,才显示欢迎讯息,又应该要改哪里?
[root@node-135 ~]# cat /etc/motd
Hello everyone,
Our server will be maintained at 2015/07/10 0:00 ~ 24:00.
Please don't login server at that time. ^_^

该系列目录 --> 【BASH】回顾与知识点梳理(目录)

相关文章:

【BASH】回顾与知识点梳理(七)

【BASH】回顾与知识点梳理 七 七. 前六章知识点总结及练习7.1 总结7.2 练习 该系列目录 --> 【BASH】回顾与知识点梳理&#xff08;目录&#xff09; 七. 前六章知识点总结及练习 7.1 总结 由于核心在内存中是受保护的区块&#xff0c;因此我们必须要透过『 Shell 』将我…...

Python实现对IP网段的快速检测

前言 本文是该专栏的第33篇,后面会持续分享python的各种干货知识,值得关注。 在工作上可能会遇到这样的需求,需要你对某个IP地址的网段进行批量检测。将可用和不可用IP批量筛选出来,尤其是在爬虫项目中,对于IP可用性的检测需求较多。 那么在python中,有没有方法可以快速…...

伪操作、C和汇编、ATPCS协议

一、伪操作.global 全局.local 局部.equ 声明.macro 子函数.if .endif 条件编译.rept 重复操作.weak 弱化.word 申请一个字空间.byte 申请一个字节空间.align 地址对齐.arm ARM指令.thumb Thumb指令.text 代码段.data 数据段.space 申请N个字节空间 二、C和汇编的混合编程三、A…...

OPENCV C++(五)滤波函数+sobel边缘检测+人脸磨皮mask

滤波函数 中值滤波 medianBlur(frame, detectmat, 5); 平均滤波 blur(frame, detectmat, Size(5, 5)); 高斯滤波&#xff08;最后一个是方差 越大越模糊&#xff09; GaussianBlur(frame, detectmat, Size(5, 5),0); sobel的边缘检测函数 Sobel(gray, dx, CV_16S, 1, 0, 3…...

20天突破英语四级高频词汇——第②天

2&#xfeff;0天突破英语四级高频词汇~第2天加油(ง •_•)ง&#x1f4aa; &#x1f433;博主&#xff1a;命运之光 &#x1f308;专栏&#xff1a;英语四级高频词汇速记 &#x1f30c;博主的其他文章&#xff1a;点击进入博主的主页 目录 2&#xfeff;0天突破英语四级高…...

【Python 学习】第一个python案例

Python的ATM机Demo 一、需要安装python环境(略) 二、ATM源码 # 初始化全局余额 money 5000# 定义初始化界面菜单函数def menu(name):"""主页面-主菜单 返回用户选择的菜单:param name: 用户名称:return: 返回菜单类型"""print(f"{name}…...

【C#学习笔记】值类型(2)

文章目录 Struct结构体类型为什么不推荐struct 元组类型可为空的值类型从可为空的值类型转换为基础类型提升的运算符如何确定可为空的值类型为什么建议少用T?装箱和取消装箱 Struct结构体类型 结构类型&#xff08;“structure type”或“struct type”&#xff09;是一种可封…...

【设计模式】-建造者模式

Java建造者模式&#xff1a;创建复杂对象的灵活构建者 在软件开发中&#xff0c;我们经常遇到需要创建一个复杂对象的情况。如果使用传统的构造函数进行对象创建&#xff0c;可能会导致构造函数参数过多&#xff0c;难以管理和维护。建造者模式&#xff08;Builder Pattern&am…...

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据

eeprom 说明 eeprom介绍 AT24C01A&#xff0c;1K串行EEPROM&#xff1a;内部组织16页8字节&#xff0c;1K需要一个7位数据字地址进行随机字寻址。AT24C02,2K串行EEPROM&#xff1a;内部组织32页8字节&#xff0c;2K需要一个8位数据字地址进行随机字寻址。AT24C04,4K串行EEPRO…...

Python OpenCV读取并显示USB UVC摄像头

1. 安装Python&#xff0c; 略。 2. 安装 OpenCV: pip install opencv-python 3. 预览摄像头画面脚本&#xff1a; import cv2cap cv2.VideoCapture(0, cv2.CAP_DSHOW)if not (cap.isOpened()):print("Could not open video device")cap.set(cv2.CAP_PR…...

针对高可靠性和高性能优化的1200V碳化硅沟道MOSFET

目录 标题&#xff1a;1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance摘要信息解释研究了什么文章创新点文章的研究方法文章的结论 标题&#xff1a;1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance 摘要 本文详…...

在服务器上搭建gitlab

最终效果展示&#xff1a; 官方文档&#xff1a; 安装部署GitLab服务 1.在服务器上下载gitlab wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm rpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm 2.编辑站点位置 vim …...

Amazon Aurora Serverless v2 正式发布:针对要求苛刻的工作负载的即时扩展

我们非常兴奋地宣布&#xff0c;Amazon Aurora Serverless v2 现已面向 Aurora PostgreSQL 和 MySQL 正式发布。Aurora Serverless 是一种面向 Amazon Aurora 的按需自动扩展配置&#xff0c;可让您的数据库根据应用程序的需求扩展或缩减容量。 亚马逊云科技开发者社区为开发者…...

nginx的优化和防盗链 重要!!!

实验一、隐藏版本号 要把nginx的版本号隐藏起来&#xff0c;防止恶意攻击 方法一&#xff1a;修改配置文件 在http模块中加入一个命令 server_token off&#xff1b; 过程&#xff1a; 备份&#xff0c;改配置文件一定要备份 修改配置文件 在http模块中添加 server_tokens …...

十五.redis缓存穿透,击穿,雪崩

redis哨兵模式 一.缓存穿透1.概念2.解决方案1&#xff09;接口校验2&#xff09;缓存空值3&#xff09;布隆过滤器4&#xff09;实时监控 二.缓存击穿1.概念2.解决方案1&#xff09;设置热点数据永不过期2&#xff09;加互斥锁3&#xff09;”提前“使用互斥锁 / 逻辑过期4&…...

Spring源码——初识Spring容器

Spring源码之工厂&#xff08;容器&#xff09; 为什么把Spring的工厂又叫做容器呢&#xff1f; 工厂的责任是创建对象&#xff0c;但是创建完对象后还要进行存储&#xff08;针对于单例的对象来讲&#xff09;&#xff0c;以供其他地方使用&#xff0c;这就是容器。为了能存…...

arcgis--数据库构建网络数据集

1、打开arcmap软件&#xff0c;导入数据&#xff0c;如下&#xff1a; 该数据已经过处理&#xff0c;各交点处均被打断&#xff0c;并进行了拓扑检查。 2、在文件夹下新建文件数据库&#xff0c;名称为路网&#xff0c;在数据库下新建要素类&#xff0c;并导入道路shp文件&…...

华为OD机试真题【西天取经】

1、题目描述 【西天取经】 唐僧师徒四人去西天取经&#xff0c;一路翻山越岭。一日&#xff0c;师徒四人途径一个 mxn 长方形区域&#xff0c;已知 1.将取经队伍作为一个整体&#xff0c;4 人行走相同路线。 2.取经队伍的起点为该长方形区域的左上角&#xff0c;目的地为该长方…...

心电信号时域特征分析与Python实现

目录 1 引言 2 心电信号时域特征的含义 3 Python实现心电信号时域特征提取 4 结论 1 引言 心电信号是由心脏电活动引起的电信号...

认识MyBatis 之 MyBatis的动态SQL

前言 本篇介绍MyBatis里如何使用动态SQL&#xff0c;了解如何去简单使用动态标签&#xff1b;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言MyBatis - 动态 SQLif标签trim标签where标签update set 标签delet…...

如何安全备份微信聊天记录:PyWxDump工具使用全指南

如何安全备份微信聊天记录&#xff1a;PyWxDump工具使用全指南 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 你是否曾因误删重要微信对话而懊悔不已&#xff1f;是否想永久保存珍贵聊天记录却不知从何下手&#xff1f;Py…...

Altium Designer实战:用xSignals搞定DDR4内存的等长布线,告别时序烦恼

Altium Designer实战&#xff1a;用xSignals实现DDR4内存精准等长布线 在高速PCB设计中&#xff0c;DDR4内存接口的布线一直是硬件工程师面临的技术高地。当信号速率突破2400MHz时&#xff0c;地址、命令与数据线之间哪怕几个ps的时序偏差都可能导致系统不稳定。传统手工计算网…...

从零到一:基于HappyBase的HBase Python应用实战指南

1. 环境准备与基础配置 第一次接触HBase和HappyBase时&#xff0c;环境配置往往是最让人头疼的部分。记得我刚开始搭建环境时&#xff0c;花了整整两天时间才把所有服务调通。为了让各位少走弯路&#xff0c;我把这些年积累的经验都整理在这里。 首先需要明确的是&#xff0c…...

SyntaxUI:基于原子设计与Web组件的现代UI库开发实践

1. 项目概述&#xff1a;一个为开发者而生的现代UI组件库 如果你是一名前端开发者&#xff0c;或者正在构建一个需要用户界面的应用&#xff0c;那么你肯定经历过这样的场景&#xff1a;为了一个按钮的样式、一个表格的交互&#xff0c;或者一个模态框的动画&#xff0c;反复在…...

仅限菲律宾本地团队使用的ElevenLabs隐藏功能:Tagalog重音标记语法(`[ˈba.ka]`)、连读规则注入与敬语语调开关(内测白名单已开放)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs菲律宾文语音能力的本地化演进背景 菲律宾语&#xff08;Filipino&#xff09;作为以他加禄语&#xff08;Tagalog&#xff09;为基础的国家官方语言&#xff0c;拥有约1.05亿母语及第二语言…...

飞书自动化脚本开发指南:从API集成到智能审批机器人实战

1. 项目概述&#xff1a;飞书自动化&#xff0c;从“手动”到“自动”的效能革命 如果你每天的工作&#xff0c;有超过30%的时间是在飞书里重复点击、复制粘贴、手动发送消息和整理表格&#xff0c;那么“cicbyte/feishu-atuo”这个项目&#xff0c;很可能就是你一直在寻找的“…...

大语言模型与多模态生成融合:架构、工具与实践指南

1. 项目概述&#xff1a;当大语言模型遇见多模态生成最近两年&#xff0c;AI领域最激动人心的进展&#xff0c;莫过于大语言模型&#xff08;LLMs&#xff09;和多模态生成模型的“双向奔赴”。前者以ChatGPT、GPT-4为代表&#xff0c;展现了惊人的语言理解、推理和生成能力&am…...

基于Electron的ChatGPT桌面客户端开发:架构、功能与进阶实践

1. 项目概述&#xff1a;一个开源桌面客户端的诞生与价值如果你和我一样&#xff0c;在日常开发、写作或者处理一些需要深度思考的任务时&#xff0c;经常需要和ChatGPT这样的AI助手对话&#xff0c;那你一定对在浏览器里反复切换标签页、刷新页面、管理冗长的对话历史感到厌烦…...

基于Arduino与加速度传感器的可穿戴智能徽章制作全解析

1. 项目概述&#xff1a;一个会“走路”的智能徽章几年前&#xff0c;当《Pokemon Go》风靡全球时&#xff0c;我注意到一个有趣的现象&#xff1a;深夜的公园里&#xff0c;总有一群玩家低头盯着手机屏幕&#xff0c;在昏暗的光线下穿梭。这固然是游戏的乐趣&#xff0c;但也带…...

6000万美元拿下世界杯:FIFA终于清醒了?

5月15号下午&#xff0c;央视和国际足联官宣了新周期的版权合作。朋友圈里炸开了锅&#xff0c;大家都在讨论那个数字&#xff1a;6000万美元。这是2026年美加墨世界杯的中国区转播权价格。说实话&#xff0c;看到这个价格我有点意外。上一届卡塔尔世界杯&#xff0c;传闻中的版…...