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

news2024/12/23 20:46:04

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

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

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

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 是?
		bash
		sh
		csh
		/etc/shells
		bash
  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. ^_^

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

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

相关文章

【Spring】深究SpringBoot自动装配原理

文章目录 前言1、main入口2、SpringBootApplication3、EnableAutoConfiguration4、AutoConfigurationImportSelector4.1、selectImports()4.2、getAutoConfigurationEntry()4.3、getCandidateConfigurations()4.4、loadFactoryNames() 5、META-INF/spring.factories6、总结 前言…

以beam search为例,详解transformers中generate方法(下)

以beam search为例&#xff0c;详解transformers中generate方法&#xff08;下&#xff09; 1. beam search原理回顾2. 代码流程概览3. BeamSearchScorer4. BeamHypotheses5. beam_search过程5.1 beam score初始化5.2 准备输入5.3 前向forward5.4 计算下一个step每个token的得分…

网络安全知识点整理(作业2)

目录 一、js函数声明->function 第一种 第二种 第三种 二、this关键字 this使用场合 1.全局环境 2.构造函数 3.对象的方法 避免多层this 三、js的同步与异步 定时器 setTimeout和setInterval 同步与异步的例子 四、宏任务与微任务 分辨宏任务与微任务 一、js…

深度学习——划分自定义数据集

深度学习——划分自定义数据集 以人脸表情数据集raf_db为例&#xff0c;初始目录如下&#xff1a; 需要经过处理后返回 train_images, train_label, val_images, val_label 定义 read_split_data(root: str, val_rate: float 0.2) 方法来解决&#xff0c;代码如下&#xff1a…

【C++】开源:matplotlib-cpp静态图表库配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍matplotlib-cpp图表库配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&…

RK3588开发板 (armsom-w3) 之 USB摄像头图像预览

硬件准备 RK3588开发板&#xff08;armsom-w3&#xff09;、USB摄像头&#xff08;罗技高清网络摄像机 C93&#xff09;、1000M光纤 、 串口调试工具 v4l2采集画面 v4l2-ctl是一个用于Linux系统的命令行实用程序&#xff0c;用于控制视频4 Linux 2&#xff08;V4L2&#xff0…

晚读“散文”一篇之随感

近来天气太热&#xff0c;上网写作的激情锐减&#xff0c;午后“昏睡百年”至近5点半才睡眼惺忪地起床。因深陷上网日日写作长达14年之久&#xff0c;也便如同“吸粉成瘾”的“瘾君子”戒不了毒瘾一样管束不了自己的“鼠标手”&#xff0c;就打开了电脑。 恍惚间步入了网络上的…

Dockerfile构建apache镜像(源码)

Dockerfile构建apache镜像&#xff08;源码&#xff09; 1、建立工作目录 [rootdocker ~]# mkdir apache [rootdocker ~]# cd apache/ 2、编写Dockerfile文件 [rootdocker apache]# vim Dockerfile #基于的基础镜像 FROM centos:7#镜像作者信息 MAINTAINER Huyang <133…

Java通过freemark创建word文档

创建freemarker模板 创建Freemarker模板&#xff1a;在您的Java项目中&#xff0c;创建一个Freemarker模板文件&#xff08;例如template.ftl&#xff09;&#xff0c;其中包含您想要生成的Word文档的内容。您可以在模板中使用Freemarker的标记来插入动态内容。 <!DOCTYPE…

Spring如何通过三级缓存解决循环依赖问题?

目录 一、什么是Spring 二、循环依赖问题 三、三级缓存机制 四、如何通过三级缓存解决循环依赖问题 一、什么是Spring Spring框架是一个开源的Java应用程序开发框架&#xff0c;提供了一种全面的、一致的编程模型&#xff0c;用于构建企业级应用程序和服务。它由Rod Johnso…

如何压缩高清PDF文件大小?将PDF文件压缩到最小的三个方法

PDF格式是一种非常常用的文档格式&#xff0c;但是有时候我们需要将PDF文件压缩为更小的大小以便于传输和存储。在本文中&#xff0c;我们将介绍三种PDF压缩的方法&#xff0c;包括在线PDF压缩、利用软件PDF压缩以及使用WPS缩小pdf。 首先&#xff0c;在线PDF压缩是最常用的方…

人体大脑神经元运行模拟器!让你直观体验大脑的运行方式

首先&#xff0c;宣布沾花把玖正式回归&#xff01;&#xff01;&#xff01; 最近沾花在网上看到一个神奇的网站&#xff1a;A Neural Network Playground 经过沾花的亲手测试&#xff0c;发现这玩意儿能模拟人体大脑神经元的运行&#xff01; 下面是网址&#xff1a; A N…

干货!机器视觉基础知识汇总

现如今,中国已经成为世界机器视觉发展最为活跃地区,应用范围涵盖了工业、农业、医药、军事、航天、气象等国民经济各个行业。虽然机器视觉的成长速度非常快,但是还是有很多人对机器视觉并不了解,今天我们来了解下机器视觉。 机器视觉就是用机器代替人眼来做测量和判断。机器…

一条自由游动的鲸鱼

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>鲸鱼</title><style>#canvas-container {width: 100%;height: 100vh;overflow: hidden;}&l…

Linux(二)---------网络命令学习(ifconfig命令)

1.ifconfig命令 用于配置网卡ip地址信息&#xff0c;等网络参数信息&#xff0c;或者查看显示网络接口信息&#xff0c;类似于windows的ipconfig命令&#xff0c;还能够临时性的配置ip地址&#xff0c;子网掩码&#xff0c;广播地址&#xff0c;网关信息等。 注意ifconfig命令…

配置GIt账号、配置公钥

1.设置账号和邮箱 打开终端输入以下命令&#xff1a; git config --global --unset-all user.name git config --global --unset-all user.email然后输入以下命令来设置新的账号和邮箱&#xff1a; git config --global user.name "your_username" git config --glo…

整理了250个shell脚本,拿来即用!

无论是系统运维&#xff0c;还是应用运维&#xff0c;均可分为“纯手工”→ “脚本化”→ “自动化”→“智能化”几个阶段&#xff0c;其中自动化阶段&#xff0c;主要是将一些重复性人工操作和运维经验封装为程序或脚本&#xff0c;一方面避免重复性操作及风险&#xff0c;另…

【音视频SDK测评】线上K歌软件开发技术选型

摘要 在线K歌软件的开发有许多技术难点&#xff0c;需考虑到音频录制和处理、实时音频传输和同步、音频压缩和解压缩、设备兼容性问题等技术难点外&#xff0c;此外&#xff0c;开发者还应关注音乐版权问题&#xff0c;确保开发的应用合规合法。 前言 前面写了几期关于直播 …

qt系列-qt6在线安装慢的问题

.\qt-unified-windows-x64-online.exe --mirror https://mirrors.aliyun.com/qt/下载速度飞快

剑指offer19.正则表达式

这道题我一看就有印象&#xff0c;我室友算法课设抽到这题&#xff0c;他当时有个bug让我帮他看一下&#xff0c;然后我就大概看了一下他的算法&#xff0c;他是用动态规划写的&#xff0c;用了一个二维数组&#xff0c;然后我就试着按照这个思路去写&#xff0c;想了一会还是没…