文档章节

Linux学习-命令别名与历史命令

u
 uetucci
发布于 2017/08/31 16:11
字数 1085
阅读 15
收藏 0

命令别名设置: alias, unalias

alias 的定义规则与变量定义规则几乎相同”, 所以你只要在 alias 后面加上你的 {“别名”='指令 选项...' }

另外,命令别名的设置还可以取代既有的指令。例如

[dmtsai@study ~]$ alias rm='rm -i'

如何知道目前有哪些的命令别名呢?就使用 alias。

[dmtsai@study ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias lm='ls -al | more'
alias ls='ls --color=auto'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

至于如果要取消命令别名的话,那么就使用 unalias 吧!例如:

[dmtsai@study ~]$ unalias lm

历史命令:history

[dmtsai@study ~]$ history [n]
[dmtsai@study ~]$ history [-c]
[dmtsai@study ~]$ history [-raw] histfiles
选项与参数:
n :数字,意思是“要列出最近的 n 笔命令列表”的意思!
-c :将目前的 shell 中的所有 history 内容全部消除
-a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles ,则默认写入 ~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w :将目前的 history 记忆内容写入 histfiles 中!

范例一:列出目前内存内的所有 history 记忆
 [dmtsai@study ~]$ history
 # 前面省略
 1017 man bash
 1018 ll
 1019 history
 1020 history
 # 列出的信息当中,共分两栏,第一栏为该指令在这个 shell 当中的代码,
 # 另一个则是指令本身的内容喔!至于会秀出几笔指令记录,则与 HISTSIZE 有关!

范例二:列出目前最近的 3 笔数据
[dmtsai@study ~]$ history 3
 1019 history
 1020 history
 1021  history 3

范例三:立刻将目前的数据写入 histfile 当中
[dmtsai@study ~]$ history -w
# 在默认的情况下,会将历史纪录写入 ~/.bash_history 当中!
[dmtsai@study ~]$ echo ${HISTSIZE}
1000

在正常的情况下,历史命令的读取与记录是这样的:

  • 当我们以 bash 登陆 Linux 主机之后,系统会主动的由主文件夹的 ~/.bash_history 读取 以前曾经下过的指令,那么 ~/.bash_history 会记录几笔数据呢?这就与你 bash 的 HISTFILESIZE 这个变量设置值有关了!

  • 假设我这次登陆主机后,共下达过 100 次指令,“等我登出时, 系统就会将 101~1100 这 总共 1000 笔历史命令更新到 ~/.bash_history 当中。” 也就是说,历史命令在我登出时, 会将最近的 HISTFILESIZE 笔记录到我的纪录档当中啦!

  • 当然,也可以用 history -w 强制立刻写入的!那为何用“更新”两个字呢? 因为 ~/.bash_history 记录的笔数永远都是 HISTFILESIZE 那么多,旧的讯息会被主动的拿掉! 仅保留最新的!

那么 history 这个历史命令只可以让我查询命令而已吗?呵呵!当然不止啊! 我们可以利用相 关的功能来帮我们执行命令呢!举例来说 :

[dmtsai@study ~]$ !number
[dmtsai@study ~]$ !command
[dmtsai@study ~]$ !!
选项与参数:
 number :执行第几笔指令的意思;
 command :由最近的指令向前搜寻“指令串开头为 command”的那个指令,并执行;
 !! :就是执行上一个指令(相当于按↑按键后,按 Enter)

[dmtsai@study ~]$ history
 66 man rm
 67 alias
 68  man history
 69 history
 [dmtsai@study ~]$ !66 <==执行第 66 笔指令
 [dmtsai@study ~]$ !! <==执行上一个指令,本例中亦即 !66
 [dmtsai@study ~]$ !al <==执行最近以 al 为开头的指令(上头列出的第 67 个)
  • 同一帐号同时多次登陆的 history 写入问题

所有的 bash 都有自己的 1000 笔记录在内存中。因为等到登出时才会更新记录文件,所 以 , 最后登出的那个 bash 才会是最后写入的数据。唔!如此一来其他 bash 的指令操作就 不会被记录下来了 (其实有被记录,只是被后来的最后一个 bash 所覆盖更新了)

  • 无法记录时间

历史命令还有一个问题,那就是无法记录指令下达的时间。由于这 1000 笔历史命令是依序记 录的, 但是并没有记录时间,所以在查询方面会有一些不方便。如果读者们有兴趣,其实可 以通过 ~/.bash_logout 来进行 history 的记录,并加上 date 来增加时间参数,也是一个可以 应用的方向。

© 著作权归作者所有

共有 人打赏支持
u
粉丝 0
博文 65
码字总数 103136
作品 0
深圳
程序员
私信 提问
让你提高效率的 Linux 技巧

想要在 Linux 命令行工作中提高效率,你需要使用一些技巧。 巧妙的 Linux 命令行技巧能让你节省时间、避免出错,还能让你记住和复用各种复杂的命令,专注在需要做的事情本身,而不是你要怎么...

04%
09/29
0
0
小蚂蚁学习Linux(9)——shell基础了解和bash基本功能

shell简单了解 查看当前的shell echo $SHELL 尝试第一个小脚本: vim test.sh 1 #!/bin/bash 2 echo 'i will be back'; 注意: #!/bin/bash 这一句是一定要加的,切记。 执行脚本方式: 1. 赋...

嗜学如命的小蚂蚁
2015/11/04
0
0
Linux 基础学习bash特性 (二)

Bash 特性 用户工作环境: root # 普通用户$ shell 子shell 可以开启多个bash 使用exit退出 命令历史 ,history HISTSIZE 命令历史大小,默认1000条 -c 清空命令历史 -d 指定删除的行号 命令保...

yw天天向上
07/02
0
0
8.1 shell介绍 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,他只是系统的一个工具。在shell和计算机硬件之间还有一层东西——系统内核。用户直接面对的不是计算机硬件而是shell,用户把指...

oschina130111
06/29
0
0
shell介绍、命令历史、补全、别名、通配符、输入/输出重定向

shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。 用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去...

黄昏残影
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

全屋WiFi彻底无死角 这才是终极解决方案

无线网络现在不仅在家庭中不可或缺,在酒店、医院、学校等场景中的需求也越来越多。尤其是这些场景中,房间多但也需要每个房间都能够完美覆盖WiFi,传统的吸顶式AP就无法很好的解决问题。 H3...

linux-tao
23分钟前
0
0
Python日期字符串比较

需要用python的脚本来快速检测一个文件内的二个时间日期字符串的大小,其实实现很简单,首先一些基础的日期格式化知识如下 复制代码 %a星期的简写。如 星期三为Web %A星期的全写。如 星期三为...

dragon_tech
24分钟前
0
0
ORA 各种oraclesql错误

ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某...

青峰Jun19er
27分钟前
2
0
没错,老板让我写个 BUG!

前言 标题没有看错,真的是让我写个 bug! 刚接到这个需求时我内心没有丝毫波澜,甚至还有点激动。这可是我特长啊;终于可以光明正大的写 bug 了🙄。 先来看看具体是要干啥吧,其实主要就是...

crossoverJie
41分钟前
54
0
开源软件会被云杀死吗 ?

本文转载云头条,原作者:Michael Stiefel是Reliable Software公司的负责人,是一名软件架构和开发顾问。 文章要点 虽然开源开发不会消失,但商业开源厂商的未来不是很有希望。随着全面管理的...

linuxCool
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部