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 中

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

bash 复制代码
[root@server ~]# vim /etc/profile 

===>>>

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

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

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

拓展 : 面试题

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

===>>>

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

对上述 代码进行解释 :

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

拓展 : 面试题

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

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

===>>>

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

做一些基本的操作;

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

History 命令 的配置文件

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

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

===>>>

bash 复制代码
[root@server ~]# vim /root/.bashrc

===>>>

我们定位到最后一行 :

===>>>

保存,退出

执行配置脚本,刷新配置

===>>>

bash 复制代码
[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

相关推荐
热爱嵌入式的小许1 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
韩楚风5 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学5 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO5 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu75 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我5 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、5 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程5 小时前
Linux中环境变量
linux
挥剑决浮云 -6 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
小O_好好学7 小时前
CentOS 7文件系统
linux·运维·centos