RHCE的学习(19)

对于RHCE的学习(15-18)重点总结


详细的操作还是要看之前的笔记(甚至是RHCSA的笔记)

1.什么是shell

一种命令解释器,既是用户交互的界面,也是控制系统的脚本语言

2.shell解释器的类型 (bash--sh)

  • Bourne Shell:标识为sh
  • Bourne-Again Shell:标识为bash
  • Korn Shell:标识为ksh
  • C Shell:标识为csh


3.查看主机默认的shell和支持的shell有哪些?

默认:

[root@server ~]# echo  $SHELL


支持:

[root@server ~]# cat  /etc/shells


4.什么是shell脚本

存储在一个文件里,shell可以读取这个文件并顺序执行其中的命令(shell脚本按行解释)

5.如何创建一个shell脚本

注意点:

  1.  多使用内置命令  type  time
  2. 用最少的命令
  3. 尽量不要使用交互式命令
  4.  重要部分添加注释

    
6.shell脚本执行方式:4种

  • sh或bash命令执行脚本 (不需要执行权限)(推荐)例:bash  test.sh  
  • 切换到脚本所在目录使用./执行脚本(需要执行权限)
  • 绝对路径执行脚本(需要执行权限)
  • 使用点(.)或者source 执行脚本(不需要执行权限)

7.脚本检测

bash -n FILE.sh  #脚本语法检测,不执行脚本文件

bash -x FILE.sh  #跟踪脚本执行


8.shell注释符 

  • #                         单行注释
  • :<<EOF   EOF   多行注释


9.打印

echo  

-n  取消输出后行末的换行符号
-e  支持反斜线控制的字符转换
\a  输出警告音
\t  制表符,也就是Tab键
\n  换行符
\e[控制符;字体颜色;背景颜色m 内容   \e[0m 代表颜色输出结束  1高亮  4下划线 5颜色闪烁

printf

printf '格式化%s%d-5%f\n'  参数

%s    输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出
%-10s  指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐)
%-4.2f 指格式化为小数,其中 .2 指保留2位小数,4是总长度

10.通配符(匹配文件名)

*   匹配 0 个或任意多个任意字符,也就是可以匹配任何内容 
?  匹配一个任意字符 
~   代表当前用户的主目录
.   代表当前目录
..  代表当前目录的父目录
-   部分用法代表一个范围
[a1b2]    匹配中括号中任意一个字符。 
[a-z]     匹配中括号中任意一个字符, -代表一个范围。 
[^a-z]    逻辑非,表示匹配不是中括号内的一个字符。
{a,b,c}   以逗号分隔的字符串列表,在命令中可以展开为多个参数(会依次实行)
[:alnum:] :匹配任意一个字母或者数字 ,传统UNIX写法: a-zA-Z0-9 
[:alpha:] :匹配任意一个字母,传统UNIX写法: a-zA-Z    [:alpha:]
[:digit:] :匹配任意一个数字,传统UNIX写法: 0-9 
[:lower:] : 匹配任意一个小写字母,传统UNIX写法: a-z 
[:upper:] : 匹配任意一个大写字母,传统UNIX写法:A-Z
[:space:] :空白字符
[:punct:] : 标点符号  

补充:(有关联)

man  用于查看各种命令、函数、文件格式等的手册页(帮助文档)
tr   从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出


 11.命令执行顺序符

  ;    顺序执行
  &&   前面命令执行不成功,后面的命令不执行
  ||   前面命令成功,后面就不执行,如果前面不成功后面就执行
  !    非
  &    后台运行


12.文本文件管理命令

  cat

查看文件内容,适合数据量较少

-n:显示行号  
-b:文件中所有非空行增加行号,编号从1开始


  tac  

倒叙访问文件内容


  more

翻页查看文件内容,适合内容较多的文件查看

 -sp  减少空白行,先清屏后输出


  less  

  • 同more命令
  • 可以使用上下键进行浏览,点击q退出浏览


  tail

默认查看文档前10行内容

 -n  查看文档前n行的内容


  head  

默认查看文档后10行内容

-n  查看文档后n行内容   
-f  动态刷新, 实时显示日志文件并且能动态更新


  vim/nano/gedit(图形化编辑器,终端)  

  grep

文件内容过滤显示

创建: touch (vim >  >>)

 
删除:  rm  -i  ==  rm -f

13.目录文件的管理命令

创建

  mkdir   -p  -v 

查看指定目录

  ll -d  

删除

  rm   -r  删除目录文件
       -f  强制

mv 

用于剪切或重命名文件

mv [选项] 源文件名称 目标文件名称


cp

-r   若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。
     此时目标文件必须为一个目录名

-a==-rp  通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录

tar  

压缩

wget  

下载

curl

-o   指定输出文件名
-O   以原始文件名保存下载文件

14.文本内容处理命令

grep

-o  只把查找的关键字显示出来
-n  显示行号
-i  忽略大小写
-c  仅显示找到的行数
-v  反向选择——仅列出没有“关键词”的行
-w  以单词模式查找,只会将完整且单独作为一个单词存在的字符串视为匹配对象
-q  以安静模式执行查找,找到匹配字符串时仅返回表示找到的退出状态码(找到0,未找到1),
    不输出匹配行内容

cut

-c 字符        cut  -c 1-4  剪切每一行第1-4个字符
-d 分割字符
-f 分割字段    第几个分隔字段,例:4-5个字段,包含分隔符

sort

-n  以数值型排序
-r  反向排序
-b  忽略缩进与空格
-f  忽略大小写
-u  去除重复行
-t  指定间隔符
-k  设置字段范围

uniq

-c  显示重复次数

wc

-l  只显示行数

tr

-c   反选设定字符,符合 “替换内容” 的部份不做处理,不符合的剩余部份才进行转换
-d   删除指令字符
-s   缩减连续重复的字符成指定的单个字符

常用:

df -h | tr -s " " " "   #将多个空格替换成单个空格

df -h | tr -s " " " " | cut -d " " -f 4 | tr -d MKG  #将单位去掉

df -h | tr -s " " " " | cut -d " " -f 4 | tr -d MKG | tail -n +2 
#从第二行开始显示(不显示第一行)

1.什么是变量

变量是在程序中保存用户数据的一段内存存储空间,变量名是内存空间的首地址

2.命名规则

规则:

  •     首字符必须为字母或者下划线:a-z,A-Z
  •     中间不能由空格,可以使用下划线(_)
  •     不能使用标点符号
  •     不能使用bash中关键字,输入help查看bash的保留字

3. SHELL是动 (弱) 态类型脚本语言


4.变量的定义方式

自定义变量

直接定义:
变量名=变量的值  (注意=前后不能有空格)

read 
-p      “提示语句:” 屏幕打印出一行提示语句。

-n    当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量,如:-n1 , 
      只要接受到一个字符就退出。只要按下一个字符进行回答,read命令立即接受输入并将其
      传给变量。无需按回车键

-t    等待时间,计时输入,使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。
      如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。
      -t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态

-s    关闭回显,使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read
      命令将文本颜色设置成与背景相同的颜色)

环境变量

# 法1
export  环境变量=值
 
# 法2
变量名=值
export  变量名
 
# 法3
declare  -x   变量名=值

位置变量

sh  test1.sh  hello  world  123  456

5.查看变量 echo ${PATH}  
 

env       显示当前用户的环境变量
printenv  同上
set       (所有变量:包括自定义变量和环境变量)
readonly   所有只读变量
declare - r  所有只读变量


 
6.变量重新赋值(只读变量不能) 

PATH=$PATH: 
test 


7.取消变量  

unset NAME (只读变量不能) 

    - v   用于明确指定要删除的是一个变量  
    - f   用于删除函数定义 


8.变量类型

  1. 环境变量
  2. 本地变量 (进程)  
  3. 位置变量

9.shell 环境变量存储的文件

执行顺序:/etc/profile-->/etc/profile.d/*.sh--> ~/.bash_profile -->/etc/bashrc-->~./.bashrc

系统级别:

  • /etc/ bashrc 
  • /etc/ profile. d/*
  • ~/. bashrc

10.位置变量

set - - 1 2 3 4 5 $1 ${11}

11.预定义变量 

$0 : 脚本名
$1-$9 : 1-9个参数
${10} :10以上的参数需要大花括号括起
$* : 所有参数
$@ : 所有参数
$# : 参数个数
$$ : 当前进程的PID
$! : 上一个后台进程的PID
$? : 上一个命令的返回值状态码,0为成功
$_ 匹配上一个命令的最后一参数


12.局部变量 全局变量

全局变量:

全局变量定义在脚本中,也可以定义在函数中,作用范围:从定义的开始处到shell脚本结束或者被显示的去除
局部变量:

范围更小,仅限于某个程序段中,如:函数、shell等,通过local关键字定义,注意:函数的参数也是局部变量



 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务即时通讯系统的实现(客户端)----(2)

目录 1. 将protobuf引入项目当中2. 前后端交互接口定义2.1 核心PB类2.2 HTTP接口定义2.3 websocket接口定义 3. 核心数据结构和PB之间的转换4. 设计数据中心DataCenter类5. 网络通信5.1 定义NetClient类5.2 引入HTTP5.3 引入websocket 6. 小结7. 搭建测试服务器7.1 创建项目7.2…

【功耗现象】com.gorgeous.lite后台Camera 使用2小时平均电流200mA耗电量400mAh现象

现象 轻颜相机(com.gorgeous.lite)后台Camera 使用2小时平均电流200mA(BugReport提供的电流参考数据),耗电量400mAh 即耗电占比(200mA*2h)/(12.83h*52.68mA )400mAh/623mAh62% CameraOct 10 202321:03:08 - 23:03:372h16m15s859ms to 4h16m44s984msactive duration: 2h 0m 29…

蓝桥杯每日真题 - 第15天

题目&#xff1a;&#xff08;钟表&#xff09; 题目描述&#xff08;13届 C&C B组B题&#xff09; 解题思路&#xff1a; 理解钟表指针的运动&#xff1a; 秒针每分钟转一圈&#xff0c;即每秒转6度。 分针每小时转一圈&#xff0c;即每分钟转6度。 时针每12小时转一圈…

ctfshow-web入门-SSRF(web351-web360)

目录 1、web351 2、web352 3、web353 4、web354 5、web355 6、web356 7、web357 8、web358 9、web359 10、web360 1、web351 看到 curl_exec 函数&#xff0c;很典型的 SSRF 尝试使用 file 协议读文件&#xff1a; urlfile:///etc/passwd 成功读取到 /etc/passwd 同…

快速搭建Android开发环境:Docker部署docker-android并实现远程连接

目录 前言 1. 虚拟化环境检查 2. Android 模拟器部署 3. Ubuntu安装Cpolar 4. 配置公网地址 5. 远程访问 小结 6. 固定Cpolar公网地址 7. 固定地址访问 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊快速搭建Android开发环境&#x…

2024-11-16-机器学习方法:无监督学习(1) 聚类(上)

文章目录 机器学习方法&#xff1a;无监督学习&#xff08;1&#xff09; 聚类&#xff08;上&#xff09;1. 聚类的基本概念1.1 聚类的概念1.2 聚类的功能1.3 聚类的算法 2. 相似度或距离2.1 闵可夫斯基距离2.2 相关系数2.3 夹角余弦 3 类或簇3.1 类的特征 4 类与类之间的距离…

Vue-组件三大组成组件通信

一、学习目标 1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法 父传子 子传父 非父子通信&#xff08;扩展&#xff09; 3.综合案例&#xff1a;小黑记事本&#xff08;组件版&#xff09; 拆…

Scratch 014生日贺卡(上)

知识回顾&#xff1a; 1、“面向鼠标指针”积木块 2、“重复执行直到”积木块 本次分享制作生日贺卡引入广播模块 案列效果&#xff1a; 生日贺卡上案例效果-CSDN直播 步骤拆解&#xff1a; 1、添加背景和角色 2、编辑贺卡造型添加名字 3、流程图的组成和画法 4、…

MySQL中将一个字符串字段按层级树状展开

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 需求1.分析2.实现3.思路刨析表结构和数据 需求 数据库中有个字段如下 如何将其转换为如下形式&#xff1a; 1.分析 1.他的层级个数是不确定的&#xff0c;也就是说有的有2层有的有5…

hive搭建

1.准备环境 三台节点主机已安装hadoopmysql数据库 2.环境 2.1修改三台节点上hadoop的core-site.xml <!-- 配置 HDFS 允许代理任何主机和组 --> <property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value> </property&…

创建vue+electron项目流程

一个vue3和electron最基本的环境搭建步骤如下&#xff1a;// 安装 vite vue3 vite-plugin-vue-setup-extend less normalize.css mitt pinia vue-router npm create vuelatest npm i vite-plugin-vue-setup-extend -D npm i less -D npm i normalize.css -S &#xff0…

Pyhon基础数据结构(列表)【蓝桥杯】

a [1,2,3,4,5] a.reverse() print("a ",a) a.reverse() print("a ",a)# 列表 列表&#xff08;list&#xff09;有由一系列按照特定顺序排序的元素组成 列表是有顺序的&#xff0c;访问任何元素需要通过“下标访问” 所谓“下标”就是指元素在列表从左…

帽子矩阵--记录

帽子矩阵&#xff08;Hat Matrix&#xff09;并不是由某一位具体的科学家单独发明的&#xff0c;而是逐渐在统计学和线性代数的发展过程中形成的。帽子矩阵的概念最早出现在20世纪初的统计学文献中&#xff0c;尤其是在回归分析的研究中得到了广泛应用。然而&#xff0c;具体是…

一.安装版本为19c的Oracle数据库管理系统(Oracle系列)

1.数据库版本信息&#xff1a; 版本信息&#xff1a; 或者直接由命令查出来&#xff1a; 2.操作系统的版本信息 3.安装包下载与上传 可以去oracle官网下载也可以从其他人的百度网盘链接中下载&#xff1a; 使用xftp工具或者其他的工具&#xff08;mobaxterm&#xff09;上传到l…

计算机视觉 ---图像模糊

1、图像模糊的作用&#xff1a; 减少噪声&#xff1a; 在图像获取过程中&#xff0c;例如通过相机拍摄或者传感器采集&#xff0c;可能会受到各种因素的干扰&#xff0c;从而引入噪声。这些噪声在图像上表现为一些孤立的、不符合图像主体内容的像素变化&#xff0c;如椒盐噪声&…

关于强化学习的一份介绍

在这篇文章中&#xff0c;我将介绍与强化学习有关的一些东西&#xff0c;具体包括相关概念、k-摇臂机、强化学习的种类等。 一、基本概念 所谓强化学习就是去学习&#xff1a;做什么才能使得数值化的收益信号最大化。学习者不会被告知应该采取什么动作&#xff0c;而是必须通…

嵌入式硬件杂谈(二)-芯片输入接入0.1uf电容的本质(退耦电容)

引言&#xff1a;对于嵌入式硬件这个庞大的知识体系而言&#xff0c;太多离散的知识点很容易疏漏&#xff0c;因此对于这些容易忘记甚至不明白的知识点做成一个梳理&#xff0c;供大家参考以及学习&#xff0c;本文主要针对芯片输入接入0.1uf电容的本质的知识点的进行学习。 目…

近几年新笔记本重装系统方法及一些注意事项

新笔记本怎么重装系统&#xff1f; 近几年的新笔记本默认开启了raid on模式或vmd选项&#xff0c;安装过程中会遇到问题&#xff0c;新笔记本电脑重装自带的系统建议采用u盘方式安装&#xff0c;默认新笔记本有bitlocker加密机制&#xff0c;如果采用一键重装系统或硬盘方式安装…

GPIO相关的寄存器(重要)

目录 一、GPIO相关寄存器概述 二、整体介绍 三、详细介绍 1、端口配置低寄存器&#xff08;GPIOx_CRL&#xff09;&#xff08;xA...E&#xff09; 2、端口配置高寄存器&#xff08;GPIOx_CRH&#xff09;&#xff08;xA...E&#xff09; 3、端口输入数据寄存器&#xff…

华为Mate 70临近上市:代理IP与抢购攻略

随着科技的飞速发展&#xff0c;智能手机已经成为我们日常生活中不可或缺的一部分。而在众多智能手机品牌中&#xff0c;华为一直以其卓越的技术和创新力引领着行业的发展。近日&#xff0c;华为Mate 70系列手机的发布会正式定档在11月26日&#xff0c;这一消息引发了众多科技爱…