【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】回顾与知识点梳理(目录)

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

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

相关文章

大数据课程H1——TELECOM的电信流量项目架构

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解TELECOM项目的架构和环境配置&#xff1b; ⚪ 了解TELECOM项目的数据字典&#xff1b; 一、简介 1. 概述 1. 当用户通过网络设备(手机、平板电脑、笔记本电脑等)进…

JavaScript闭包和this

目录 JavaScript闭包和this 1 闭包 1.1 变量作用域 1&#xff09;函数内部可以读取全局变量 2&#xff09;函数外部无法读取函数内部的局部变量 1.2 读取函数内部的局部变量 1&#xff09;在函数内部再定义一个函数 2&#xff09;为外部程序提供访问函数局部变量的入口 1.3…

【CSS】ios上fixed固定定位的input输入框兼容问题

需求 &#xff1a; 实现一个简单的需求&#xff0c;上方是搜索框并且固定顶部&#xff0c;下方是滚动的内容list 问题 : 若如图上方使用固定定位, 下方用scroll-view, 在安卓上是没有问题的, 但是发现ios上会出现兼容问题 : 问题1: 当content list滚动到中间时再去搜索, 展…

c语言每日一练(1)

前言&#xff1a; 每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…

你值得拥有——流星雨下的告白(Python实现)

目录 1 前言 2 霍金说移民外太空 3 浪漫的流星雨展示 4 Python代码 1 前言 我们先给个小故事&#xff0c;提一下大家兴趣&#xff1b;然后我给出论据&#xff0c;得出结论。最后再浪漫的流星雨表白代码奉上&#xff0c;还有我自创的一首诗。开始啦&#xff1a; 2 霍金说…

Oracle锁的学习

Oracle数据库中的锁机制 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时&#xff0c;在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据&#xff0c;破坏数据库的一致性。 在数据库中有两种基本的锁类…

spark history网络流量占用高问题记录

生产环境遇到一台机器网络流量占用高告警 由于监控只有机器总的网络流量&#xff0c;没有具体进程的 于是只能登陆服务器&#xff0c;安装nethogs&#xff1a;yum install nethogs 然后执行nethogs命令查看进程流量 观察到主要是spark history server这个进程占用流量高(最高…

puppeteer监听response并封装为express服务调用

const express require(express); const puppeteer require(puppeteer); const app express(); let browser; // 声明一个全局变量来存储浏览器实例app.get(/getInfo, async (req, res) > {try {const page_param req.query.page; // 获取名为"page"的查询参数…

openCV图像读取和显示

文章目录 一、imread二、namedWindow三、imshow #include <opencv2/opencv.hpp> #include <iostream>using namespace std; using namespace cv;int main(int argc,char** argv) {cv::Mat img imread("./sun.png"); //3通道 24位if (img.empty()) {std:…

Alchemy Catalyst 2023 crack

Alchemy Catalyst 2023 crack Alchemy CATALYST是一个可视化本地化环境&#xff0c;支持本地化工作流程的各个方面。它帮助组织加快本地化进程&#xff0c;比竞争对手更快地进入新市场&#xff0c;并为他们创造新的收入机会。 创建全球影响力 高质量的产品和服务翻译对跨国组织…

windows创建占用特定端口程序

默认情况下&#xff0c;远程桌面使用的是3389端口。如果您想将远程桌面端口更改为8005&#xff0c;以达到模拟程序占用端口8005的情况&#xff0c;可以执行以下操作&#xff1a; 如执行以下命令&#xff0c;则1&#xff0c;2&#xff0c;3步相同操作可以跳过&#xff0c;直接往…

二进制安装K8S(单Master集群架构)

目录 一&#xff1a;操作系统初始化配置 1、项目拓扑图 2、服务器 3、初始化操作 二&#xff1a; 部署 etcd 集群 1、etcd 介绍 2、准备签发证书环境 3、master01 节点上操作 &#xff08;1&#xff09;生成Etcd证书 &#xff08;2&#xff09;创建用于存放 etcd 配置文…

链表OJ题讲解2

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大家三连关注&#xff0c;一起学习&#xff0c;一起进步&#…

策略模式(C++)

定义 定义一系列算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可互相替换((变化)。该模式使得算法可独立手使用它的客户程序稳定)而变化(扩展&#xff0c;子类化)。 ——《设计模式》GoF 使用场景 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多…

深入理解Streamlit中的按钮行为(四):示例与最佳实践

文章目录 1 前言&#x1f680;2 Streamlit中if st.button()的使用时机 &#x1f3af;&#x1f4a1;3 按钮的逻辑3.1 通过按钮显示临时消息的常用逻辑 &#x1f4e2;&#x1f4a1;3.2 状态保留按钮 &#x1fa84;&#x1f518;3.3 切换按钮 &#x1f504;&#x1f518;3.4 控制流…

Tensorrt 原生Activate 算子讲解

Tensorrt operators docs&#xff1a; Activation Apply an activation function on an input tensor A and produce an output tensor B with the same dimensions. import numpy as np from cuda import cudart import tensorrt as trt # 输入张量 NCHW nIn, cIn, hIn, wI…

Scrum敏捷开发流程图怎么画?

1. 什么是Scrum敏捷开发流程图&#xff1f; Scrum敏捷开发流程图是一种可视化工具&#xff0c;用于形象地描述Scrum敏捷开发方法中的工作流程和活动。Scrum敏捷开发流程图展示了项目从需求收集到产品交付的整个开发过程&#xff0c;帮助团队理解和跟踪项目进展&#xff0c;促…

02.Redis实现添加缓存功能

学习目标&#xff1a; 提示&#xff1a;学习如何利用Redis实现添加缓存功能 学习产出&#xff1a; 流程图 1. 准备pom环境 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId&g…

EXCEL,多条件查询数字/文本内容的4种方法

目录 1 问题&#xff1a;如何根据多条件查询到想要的内容 2 方法总结 2.1 方法1&#xff1a; sumif() 和sumifs() 适合查找符合条件的多个数值之和 2.2 方法2&#xff1a;使用lookup(1,0/((区域1条件1)*(区域2条件2)*....),结果查询区域) 2.3 方法3&#xff1a;使用 ind…

广西茶叶元宇宙 武隆以茶为媒 推动茶文旅产业融合发展

8月4日&#xff0c;重庆市武隆区启动为期3天的“武隆首届玩茶荟”。本次活动以“中国最美玩茶地——武隆”为主题&#xff0c;吸引众多国内知名专家、茶企和茶馆相关负责人&#xff0c;共同探索武隆茶文旅融合发展新路径和新业态。 广西茶叶元宇宙&#xff1a;广西茶叶元宇宙 …