linux配置历史环境命令,Linux的历史命令重用及环境的配置文件

一、命令行历史操作

在Linux中有一个history命令,通过它我们可以很方便的查找并执行原来的操作,但是在方便的同时,这个命令也会给系统带来安全隐患,所以配置恰当的history命令是一个Linux运维人员的基本技能之一。

当登录系统时,Linux会自动加载~/.bash_history中的内容到缓存中

登陆后执行的命令操作会记录在缓存中,当用户退出时,系统会自动将缓存中的内容写入命令文件中

history最大的用处是方便我们查找调用以前的命令,其中重复执行前一个命令有4种方法:

使用上下方向键查找

执行!!并回车

执行!-1回车执行

按ctrl+p回车执行

# !!

ls

adjtime                  e2fsck.conf  krb5.conf                 pki             sestatus.conf

......

[root@centos7 etc]# !-1

ls

adjtime                  e2fsck.conf  krb5.conf                 pki             sestatus.conf

......

!字符串:执行前一个以字符串开头的命令

!数字n:执行history中数字n的命令

!?字符串:执行前一个包含字符串的命令

!-n:执行第前n个命令

也可以用ctrl+r来通过关键字搜索以前执行的命令

如果要重新使用上一个命令的参数,有下面几种方法:

!$表示上一个命令的最后一个参数

esc+.:通常在ssh客户端,先按esc松手后在按.,同样表示上一个命令的最后一个参数

调用历史参数:

!^:上一个命令的第一个参数

!$:上一个命令的最后一个参数

!*:上一个命令的所有参数

!:n :上一个命令的第n个参数

!n:^:调用第n个命令的第一个参数

!n:$:调用第n个命令的最后一个参数

!m:n:调用第m个命令的第n个参数

!m:*:调用第m个参数的所有命令

!str:^:调用以str开头命令的第一个参数

!str:$:调用str开头命令的最后一个命令

!str:*:调用str开头命令的所有命令

!str:n:调用str开头的第n个命令

history的命令选项:

-c:清空history列表

-d:删除指定的命令,后面接num

n:显示最近的n条历史

-a:追加本次会话新加的命令到历史文件

-n:读历史文件中没有读的到历史列表

-r:读历史文件附加到列表,会叠加原来的命令

-w:保存历史列表到指定的文件

-p:展开历史参数成多行,但不存在列表中

-s:展开历史参数成一行,保存在列表后

history的相关环境变量:

HISTSIZE:命令历史记录的条数

HISTFILE:指定历史文件,默认为~/.bash_history

HISTFILESIZE:历史文件记录历史的条数

HISTTIMEFORMAT="%F %T "记录历史执行时间,注意空格

HISTIGNORE="str1:str2"忽略str1和str2,注:只忽视str命令,如果str命令带参数则不忽视

重点:HISTCONTROL:后面接可选参数(多选一),且只对设置以后的命令生效,但是如果后面执行了相同的命令,以前的相同命令也会被删除

ignoredups:忽略重复的命令,相同连续为重复

ignorespace:忽略空格开头的命令

ignoreboth:ignoredups+ignorespace

erasedups:删除重复命令,不论是否连续

bash的配置文件:

profile类:为交互式登录的shell提供配置

全局:/etc/profile,/etc/profile.d/*.sh

个人:~/.bash_profile

作用:1、定义环境变量         2、运行命令或脚本

bashrc类:为非交互式登录的shell提供配置

全局:/etc/bashrc

个人:~/.bashrc

作用:1、定义命令别名        2、定义本地变量

其中:cd -和~-有一些区别

[root@localhost ~]# cd -

/testdir

[root@localhost testdir]# cd -

/root

[root@localhost ~]# cd ~-

[root@localhost testdir]# cd ~-

[root@localhost ~]#

可以看出,-和~-在cd中使用没有区别,但是-只有cd使用有效,而~-则适用于其他的命令

[root@localhost ~]# cd /testdir/

[root@localhost testdir]# ls -

ls: cannot access -: No such file or directory

[root@localhost testdir]# ls ~-

anaconda-ks.cfg  Documents  install.log

Music     Public     VideosDesktop

Downloads  install.log.syslog  Pictures  Templates

[root@localhost testdir]# ls /root/

anaconda-ks.cfg  Documents  install.log

Music     Public     VideosDesktop

Downloads  install.log.syslog  Pictures  Templates

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值