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 查看下 当前的别名有哪些 ( 看看有没有 刚才新加的别名 )
显然,有我们刚才添加的 新别名
注 : 当我们在 命令行 新加了 别名时, 你会发现只能在当前的环境中生效 ,要是换个环境
新增的别名就又不起作用了~!!
因此,为了我们写的别名能够永久生效,我们就得把别名写到配置文件里面
只有写到配置文件里才能永久生效~!!!
一般情况下,我们写命令别名就是针对当前用户来写的,所以,我们写配置文件,也是
针对当前用户的家目录下的隐藏文件
===>>>
~/.cshrc
===>>>
按照前面文件所展示的三行的格式, 编辑你要写入的别名 ~!!1
只是在配置文件里编辑了,并不能生效,要 断开再重新连接即可生效 ~!!
注 : 本文使用的是 红帽9 , 所以,当您看到上面的 ~/.cshrc 的时候,您或许会有一丝疑惑,
不应该是 ~/.bashrc 嘛????
没错,是的, 在红帽9 里 家目录下的隐藏文件是 ~/.cshrc
如果为了 所有用户 都可以使用这个 命令别名,那就得写在
===>>>
/etc/bashrc
就在上示配置文件里,最后一行 加上 别名即可 ~!
命令的执行顺序 :
别名的优先级比命令高,那么 命令执行时具体的顺序是什么呢 ?
===>>>
1. 第一顺位执行 用绝对路径或相对路径执行的命令
2. 第二顺位执行 别名
3. 第三顺位执行 Bash的内置命令
4. 第四顺位执行 按照 $PATH 环境变量定义的目录查找顺序找到的第一个命令
为了让这个别名永久生效,可以把别名写入环境变量配置文件 ~/.bashrc