SHELL 基础 显示字符颜色, 修改历史命令,Linux里的命令 执行顺序

echo 打印命令  : 

     

 显示字符串  :

[root@server ~]# echo this is SHELL language 
this is SHELL language
[root@server ~]# echo 'this is SHELL language'
this is SHELL language
[root@server ~]# echo "this is SHELL language"
this is SHELL language

 显示转义字符 : 

  选项  :   

                             -n   :  不换行输出                 

[root@server ~]# echo -n "Huan Hang"
Huan Hang[root@server ~]# 

                           

                              -e   :     启用反斜线转义解释            

  比如 : 现在我就是想让 echo 输出带引号的字符,那怎么办呢 ?? 

               ===>>>

[root@server ~]# echo " I want to print \" \" "I want to print " " 

    显然,这个时候就需要用到 转义字符 \ ,    \ "  , 之后, 那 " 就会被当做一个普通的字符

   \t   :    一个 tab 键  

[root@server ~]# echo "name\tJames"
name\tJames
[root@server ~]# echo -e "name\tJames"
name	James

    这个时候就需要 在前面 加 -e  生效 转义字符, 而后的 \t  便意味  tab键 


 

 显示颜色  : 

echo  -e "\033[字体控制选项;字背景颜色;文字颜色m字符串\033[0m"

  常见的字体颜色  : 重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,

                                  紫色=35,天蓝色=36, 白色=37

                                       

  常见的背景颜色  :重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,

                                 紫色=45,     天蓝色=46,白色=47

                                      

  字体控制选项   :  1表示高亮,4表示下划线,5表示闪烁等

  ===>>>

  

 显示命令执行结果  : 

  ===>>>

[root@server ~]# echo `whoami`
root
[root@server ~]# echo $(whoami)
root

             


 

history 历史命令 : 

          格式 :  history  [参数]  [历史命令保存文件]

          参数 :  

               *   -c  :  清空历史命令记录 

               *   -w  : 把缓存中的历史命令写入历史命令保存文件。 如果不手工指定历史保存文件,则

                            放入默认历史命令保存文件 ~/.bash_history 中      

         

修改默认记录历史命令条数 :            

[root@server ~]# vim /etc/profile 

   ===>>> 

  HISTSIZE=1000 就是说 我们 History 历史命令 最多可以记录 1000 条命令 ~!!

  这个参数 也是可编辑的, 你也可以修改 1000 , 修改保存后, 重启( reboot ) 

  重启之后,文件生效 ~!!!!  

  拓展 :  面试题 

   显示 history 历史命令出现次数最高的 TOP 10 

===>>>

[root@server ~]# history | tr -s " " | cut -d " " -f3 | sort | uniq -c | sort -nr | head -10 

对上述 代码进行解释 : 

# 浏览历史命令  | 压缩为 1 个空格 | 截取以空格作为间隔符的第三部分 | 排序 | 统计并去重 | 降序排列  |  显示前10 

拓展 :  面试题

增加 history 显示的信息,如 : 历史命令执行的时间 

 我们知道 history 命令,一般执行完就显示 序号 及 命令 

 ===>>>

        并没有 这个命令是啥时候执行的显示 ,所以,也就是说需要我们对 History 这个命令去

        做一些基本的操作; 

        那就需要重新编辑配置文件,就是说需要对 History 这个命令的配置文件需要进行改变。 

        History 命令 的配置文件 

        ===>>>    /root/.bashrc  ( 是个隐藏文件,  是 Bash SHELL 解释器的相关基础配置 )

        

   我们编辑 /root/.bashrc 这个文件  

    ===>>>

[root@server ~]# vim /root/.bashrc

     ===>>>

        

       我们定位到最后一行 : 

       ===>>>

      

       保存,退出

       执行配置脚本,刷新配置 

       ===>>>

[root@server ~]# source ~/.bashrc

        

     我们使用 History 命令 测验下 : 

       

        显然,满足题目要求 ~!!!

历史命令的调用  : 

如果想要使用原先的历史命令,可以采用如下方法

 1.  可以使用 键盘 方向键的  上 下键

 2. 使用 !n  就是  执行第n 条命令   ( 注意 ! 和 n 之间没有空格 ) 

 3.  使用 !!  就是 调用上一条 执行的命令 

  4. 使用 !字符串   就是 执行最后一条 以该字符串开头的命令 

  5. 使用 !$   重复上一条命令的最后一个参数 

       

命令别名

      

查看命令别名  : 

[root@server ~]# alias

  

   上示会把所有的命令别名 列举出来 ~!! 

定义一个 命令别名 : 

===>>>

[root@server ~]# alias ld='ls -ld'

我们再使用 alias 查看下 当前的别名有哪些 ( 看看有没有 刚才新加的别名 )

     

显然,有我们刚才添加的 新别名 

      :  当我们在  命令行 新加了 别名时, 你会发现只能在当前的环境中生效 ,要是换个环境

                 新增的别名就又不起作用了~!!

                  

                 因此,为了我们写的别名能够永久生效,我们就得把别名写到配置文件里面

                 只有写到配置文件里才能永久生效~!!! 

                 一般情况下,我们写命令别名就是针对当前用户来写的,所以,我们写配置文件,也是

                 针对当前用户的家目录下的隐藏文件 

                 ===>>>

                  ~/.bashrc   

                 ===>>>

                

                按照前面文件所展示的三行的格式, 编辑你要写入的别名 ~!!1

                 

                只是在配置文件里编辑了,并不能生效,要 断开再重新连接即可生效 ~!!

                ===>>>

               

               显然,我们刚才在配置文件里编辑的内容也并没有生效; 

               因此,我们得断开链接,重新连接后,配置文件才会生效 

               ===>>>

              

              显然,重新加载配置文件,我们新添的命令别名也就生效了~!!

   :  

                 如果为了   所有用户  都可以使用这个 命令别名,那就得写在 

                 ===>>>

                 /etc/bashrc 

                 就在上示配置文件里,最后一行 加上 别名即可 ~! 

命令的执行顺序  :

                 

      别名的优先级比命令高,那么 命令执行时具体的顺序是什么呢 ?   

      ===>>>

1.  第一顺位执行  用绝对路径或相对路径执行的命令 

2.  第二顺位执行  别名 

3.  第三顺位执行  Bash的内置命令 

4.  第四顺位执行  按照 $PATH 环境变量定义的目录查找顺序找到的第一个命令

                             为了让这个别名永久生效,可以把别名写入环境变量配置文件 ~/.bashrc  

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

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

相关文章

飞机打方块(二)游戏界面制作

一、背景 1.新建bg节点 二、飞机节点功能实现 1.移动 1.新建plane节点 2.新建脚本GameController.ts,并绑定Canvas GameControll.ts const { ccclass, property } cc._decorator;ccclass export default class NewClass extends cc.Component {property(cc.Node)canvas:…

badgerdb里面的事务

事务的ACID A 原子性(Atomicity) 多步骤操作,只能是两种状态,要么所有的步骤都成功执行,要么所有的步骤都不执行,举例说明就是小明向小红转账30元的场景,拆分成两个步骤,步骤1&#…

Redis原理剖析

一、Redis简介 Redis是一个开源的,基于网络的,高性能的key-value数据库,弥补了memcached这类key-value存储的不足,在部分场合可以对关系数据库起到很好的补充作用,满足实时的高并发需求。 Redis跟memcached类似&#…

科技项目验收检测报告获取有哪些注意事项,作用都有哪些?

验收测试报告 软件从研发到结束是一个很长的周期,对于软件想要完成上市或者是交付到用户手中之前我们还需要进行一次全面检测,也就是科技项目验收测试,此测试有着严格的要求,需要第三方软件测评机构来完成,并出具科技…

【Apollo】阿波罗自动驾驶技术:引领汽车行业革新

前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…

huttoll

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 Hutool是项目中“util”包友好的替代,它节省了开发…

【ES6】—使用 const 声明

一、不属于顶层对象window 使用const关键字 声明的变量,不会挂载到window属性上 const a 5 console.log(a) console.log(window.a) // 5 // undefined二、不允许重复声明 使用const关键字不允许重复声明相同的变量 cosnt a 5 cosnt a 6 // Uncaught SyntaxEr…

仓库管理的重点在哪?仓库管理能有哪些软件?

对于做实体生意的中小商户来说,仓库管理工作是重中之重的,仓库管理的好坏,直接影响着门店销售和财务状况。 但对于很多中小商户来说,没有足够的人力和精力去高效地做好仓库管理工作,而借助仓库管理软件或进销存软件来…

C++笔记之std::move和右值引用的关系、以及移动语义

C笔记之std::move和右值引用的关系、以及移动语义 code review! 文章目录 C笔记之std::move和右值引用的关系、以及移动语义1.一个使用std::move的最简单C例子2.std::move 和 T&& reference_name expression;对比3.右值引用和常规引用的经典对比——移动语义和拷贝语…

LC-路径总和

LC-路径总和 链接:https://leetcode.cn/problems/path-sum/description/ 描述:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。…

Python爬虫——scrapy_日志信息以及日志级别

日志级别(由高到低) CRITICAL: 严重错误 ERROR: 一般错误 WARNING: 警告 INFO: 一般警告 DEBUG: 调试信息 默认的日志等级是DEBUG 只要出现了DEBUG或者DEBUG以上等级的日志,那么这些…

linux驱动学习3-外部中断

在做中断试验时,发现中断驱动总是insmod失败,之后定位到 gpio_request 失败,之后是想到使用的野火做好的系统,在uEnv.txt中会加载大量设备树插件,将key相关的设备树插件屏蔽即可。 linux中断API函数 中断号 每个中断…