记录历史命令,history,命令补全和别名、通配符、输入输出重定向

shell

shell是一个命令解释器,提供用户与机器之间的交互,支持特定的语法(逻辑判断、循环等);
每个用户都可以有自己特定的shell;
centos7默认shell为bash,其他shell还有zsh、ksh等;


命令历史

history命令:

可以查看历史命令;
在用户的家目录下的.bash_history文件中保存着之前敲过的命令,
默认最大存储1000条;
history命令可以查询;

更改存储数:

更改变量HISTSIZE来达到更改存储数;
编辑文件vim /etc/profile

vim /etc/profile

修改HISTSIZE值,将HISTSIZE=1000改为5000


HISTSIZE=5000

更新缓存文件

source /etc/profile

查看变量值

[[email protected] ~]# echo $HISTSIZE
5000
[[email protected] ~]#

给history命令加上时间与日期

临时生效:

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

[[email protected] ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
[[email protected] ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[[email protected] ~]# history | grep 2000
2000  2018/01/10 18:34:46 tar -zxvf httpd-2.2.34.tar.gz
2041  2018/01/10 19:31:53 history | grep 2000
[[email protected] ~]#

永久生效方法:

vim /etc/profile
增加变量定义
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

HISTSIZE=5000
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

更新缓存

[[email protected] ~]# source /etc/profile
[[email protected] ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[[email protected] ~]#

特殊命令

  • !!:表示执行上一条命令;

    [[email protected] ~]# pwd
    /root
    [[email protected] ~]# !!
    pwd
    /root
    [[email protected] ~]#
  • !n:这里的n表示数值,,表示执行命令历史中的第n条指令;
    [[email protected] ~]# history | grep 1002
    1002  2018/01/10 18:34:46 rmdir 123
    2023  2018/01/10 18:45:15 history |grep 1002
    2048  2018/01/10 19:44:16 history | grep 1002
    2050  2018/01/10 19:45:21 history | grep 1002
    [[email protected] ~]# !2050
    history | grep 1002
    1002  2018/01/10 18:34:46 rmdir 123
    2023  2018/01/10 18:45:15 history |grep 1002
    2048  2018/01/10 19:44:16 history | grep 1002
    2050  2018/01/10 19:45:21 history | grep 1002
    [[email protected] ~]#
  • !字符串:表示执行历史命令中最近一次一字符串开头的命令,必须两个以上;
    [[email protected] ~]# !pw
    pwd
    /root
    [[email protected] ~]#

命令补全和别名

命令补全

centos7支持命令参数补全;
centos6只支持命令补全,不支持参数补全;

安装bash-completion包:


yum install -y bash-completion

安装后,重启生效;

别名

当常用的命令与参数过长,我们可以定义一个别名来实现;
格式:
alias [别名] = ‘[源命令]‘
systemctl restart network.service
将这条重启网卡服务的命令定义一个新的命令restartnet

[[email protected] ~]# alias restartnet=‘systemctl restart network.service‘
[[email protected] ~]# alias
alias cp=‘cp -i‘
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 ls=‘ls --color=auto‘
alias mv=‘mv -i‘
alias restartnet=‘systemctl restart network.service‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
[[email protected] ~]#
[[email protected] ~]# rest
restartnet  restorecon

取消别名

格式:
unalias [自定义别名]

[[email protected] ~]# unalias restartnet
[[email protected] ~]# alias
alias cp=‘cp -i‘
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 ls=‘ls --color=auto‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
[[email protected] profile.d]# restartnet
-bash: restartnet: 未找到命令
[[email protected] profile.d]#

别名存放目录:

用户家目录下:~/.bashrc文件;
其他命令目录:/etc/profile.d/目录下的


通配符

  • :在bash下,可以用来匹配零个或多个字符;
  • ?:在bash下,?号表示匹配一个字符;
  • [n-n]:n表示数值,n-n表示范围,例如:[0-3]表示范围0到3;
  • *实验1:使用来查询;**
    [[email protected] abc]# ls *txt
    1.txt  2.txt  3.txt
    [[email protected] abc]# ls *.txt
    1.txt  2.txt  3.txt
    [[email protected] abc]#

实验2:使用?来查询;

[[email protected] abc]# ls ?.txt
1.txt  2.txt  3.txt
[[email protected] abc]# ls 1?txt
1.txt
[[email protected] abc]#

实验3:使用【n-n】方括号范围来查询;

[[email protected] abc]# ls
1.txt  2.txt  3.txt  a
[[email protected] abc]# ls [0-2].txt
1.txt  2.txt
[[email protected] abc]#

实验4:查询范围数字0-9的.txt 小写字母 大写字母.txt;

[[email protected] abc]# ls [0-9a-zA-Z].txt
1.txt  2.txt  3.txt  a.txt  B.txt
[[email protected] abc]#

实验5:“与”语句查询;

[[email protected] abc]# ls [a].txt
a.txt
[[email protected] abc]# ls [a3].txt
3.txt  a.txt
[[email protected] abc]#

实验6:花括号

[[email protected] abc]# ls {1,2,a}.txt
1.txt  2.txt  a.txt
[[email protected] abc]#

输入输出重定向

  • >:输出重定向,将一个字符串输出到一个文本中;输入两次后只计算后面一次;
  • >>:追加重定向,将一个字符串追加输入到一个文本中;
  • <:输入重定向;
  • 2>:错误重定向,将错误信息重定向到某个文本中;
  • 2>>:错误追加重定向,将错误信息追加到某个文本中;

实验1:输出重定向;

[[email protected] abc]# echo "123" > x.txt
[[email protected] abc]# echo "456" > x.txt
[[email protected] abc]# cat x.txt
456
[[email protected] abc]#

实验2:追加重定向;

[[email protected] abc]# cat x.txt
123
[[email protected] abc]# echo "234" >> x.txt
[[email protected] abc]# cat x.txt
123
234
[[email protected] abc]# echo "345" >> x.txt
[[email protected] abc]# cat x.txt
123
234
345
[[email protected] abc]#

实验3:错误重定向;

[[email protected] abc]# ls [12].txt aaa.txt >x.txt 2>y.txt
[[email protected] abc]# cat x.txt
1.txt
2.txt
[[email protected] abc]# cat y.txt
ls: 无法访问aaa.txt: 没有那个文件或目录
[[email protected] abc]#

原文地址:http://blog.51cto.com/shuzonglu/2059609

时间: 2024-11-05 12:18:14

记录历史命令,history,命令补全和别名、通配符、输入输出重定向的相关文章

shell介绍 命令历史 命令补全和别名 通配符 输入输出重定向

8.1 shell介绍 shell 是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell 为bash(Bourne Agin Shell) 还有zsh.ksh等 yum zsh和ksh [[email protected] ~]# yum list |grep zsh zsh.x86_64 5.0.2-25.el7_3.1 updates zsh-html.x86_64 5.0.2-25.el7_3.1

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 # Linux shell 基础 # 8.1 shell 介绍 - 什么是shell 1. shell 是一个命令解释器,提供用户和机器之间的交互 2. 支持特定语法,比如逻辑判断.循环 3. 每个用户都可以有自己特定的shell 4. CentOS7 默认shell 为bash (Bourne Agin Shell) 5. 还有zsh.ksh等 ``` [[email protected]

Linux学习(二十一)Shell基础(一)认识shell、命令历史、命令补全、别名、通配符、管道符与前后台控制

前言 这个系列我们学习shell的基础知识. 一.认识shell 我们经常使用的终端,其实就是一个shell.Bourne开发的shell原本叫shell,后来再版Bourne Again Shell叫做Bash.我们通常使用的shell就是Bash. 二.命令历史 history命令能够记录我们使用过的命令: [[email protected] ~]# history|tail -n3 803 history|tail -n3 804 history 805 history|tail -n3

8.1shell介绍 8.2命令历史 8.3命令补全和别名 8.4通配符 8.5输入输出重定向

8.1 shell介绍.查找一下有没有这2个安装文件8.2 命令历史环璄1000,所以只能存1000条记录'有时候查到比1000多了,那是因为输入的命令还没有写进这个文件,只存在内存中history -c 是删除内存的记录,不会删除存命令的配置文件只有退出终端的时候才会保存到配置文件里vi /etc/profile修改HISTSIZE=5000,保存退出后要source一下值才会更改改更变量的模式,只在当前的终端生效%Y年份%m月%d日 %H时%M分%S秒要使其它终端生效,就要添加到profil

Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向

一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计算机硬件之间还有一层--系统内核.如果吧计算机比作人的躯体,那系统内核就是人的大脑,至于shell,把它比做人的五官更贴切. 其实,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传给系统内核,接着内核再去支配计算机硬件去执行各种操作. CentOS安装的she

五周第三次课 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.

8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 8.1 shell介绍 shell是一个命令解释器,提供用户和机器之间的交互支持特定语法,比如逻辑判断.循环(if for whell)每个用户都可以有自己特定的shellCentOS7默认shell为bash(Bourne Agin Shell)还有zsh.ksh等 yum list |grep zsh 搜索yum 中是否有zsh # yum list |grep ksh 8.2 命令历史 she

8.1 shell 介绍、8.2 命令历史、8.3 命令补全与别名、8.4 通配符、8.5 输入输出重定向

8.1 sehll 介绍 什么是shell shell 是一个命令解释器,提供用户和机器之间交互 支持特定的语法,比如逻辑判断,循环. 每个用户都可以有自己特定的shell. centos7 默认的shell 为bash( Bourne Agin shell ) 还有zsh ,ksh等 8.2 命令历史 /root/.bash_history ;命令历史放置文件 [[email protected] ~]# ls /root/.bash_history/root/.bash_history [[

shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向

shell介绍 shell是一个命令解释器,提供用户和机器之间的交互,支持特定语法,比如逻辑判断.循环,每个用户都可以有自己特定的shell CentOS7默认shell为bash(Bourne Agin Shell) 还有zsh.ksh等 命令历史 查看历史命令 [[email protected] ~]# cat .bash_history 修改历史记录条数: vi /etc/profile HISTSIZE=1000 修改查看历史记录的格式: /etc/profile中新增: HISTTI

8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向

8.1 shell介绍 1. shell是一个命令解释器,提供用户和机器之前的交换 2. 每个用户都可以有自己特定的shell 3. CentOS7默认shell是bash(Bourne Agin Shell); shell还有zsh.ksh等 zsh.ksh这两种shell命令没有安装, 可以用yum list搜索下这两个命令的安装包: [[email protected] ~]# yum list |grep zsh [[email protected] ~]# yum list |grep