2018-1-10 5周3次课 命令补全别名通配符重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-1-10 5周3次课 命令补全别名通配符重定向相关的知识,希望对你有一定的参考价值。

8.1 shell介绍


·什么是shell?

- shell是一个命令解释器,提供用户和机器之间的交互

- 支持特定语法,比如逻辑判断、循环

- 每个用户都可以有自己特定的shell

- CentOS7默认shell为bash(Bourne Agin Shell)

- 还有zsh、ksh等





8.2 命令历史


方向键↑可以查看历史命令,命令存放在家目录 ~/.bash_history

history命令查看之前的命令, 最大可以存1000条

技术分享图片技术分享图片

可以存多少条命令是由一个环境变量HISTSIZE决定的

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


·清空当前内存命令历史 history -c,但是无法清空配置文件bash_history


·执行的命令,并不是实时写入到bash_history中,而是暂时存放在内存中,当退出终端时,才存入


·定义环境变量HISTSIZE      /etc/profile中修改

技术分享图片技术分享图片

(更改可以保存的最大历史命令数量,可改这里)


想要HISTSIZE生效,需要重新进一下终端,或者执行source /etc/profile

[[email protected] ~]# echo $HISTSIZE
1000
[[email protected] ~]# source /etc/profile
[[email protected] ~]# echo $HISTSIZE
5000


·改变命令历史格式:改变环境变量 HISTTIMEFORMAT

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

想要永久生效,可以写入到 /etc/profie 中去

技术分享图片技术分享图片

保存退出 source /etc/profile

技术分享图片技术分享图片

技术分享图片技术分享图片

永久保存 chattr +a ~/.bash_history,只能追加,不能删除


最后一条命令                                          !!

第n条命令                                              !n

从最后倒着去找以word开头的命令          !word





8.3 命令补全和别名


tab键,敲一下,敲两下


如果有一个相同开头,按一下就会出现;如果有多个相同开头,需要敲两下

CentOS6中只支持命令补全,参数无法补全;CentOS7中支持参数补全

默认不支持参数补全,需要安装bash-completion

[[email protected] ~]# yum install -y bash-completion

安装完成后重启系统


·别名 alias别名给命令重新起个名字:alias 别名=‘命令’

[[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'



·各用户都有自己配置别名的文件 ~/.bashrc

技术分享图片技术分享图片


·其余的别名存放在/etc/profile.d/中

[[email protected] ~]# ls /etc/profile.d/
256term.csh  bash_completion.sh  colorgrep.sh  colorls.sh  lang.sh   less.sh  vim.sh      which2.sh
256term.sh   colorgrep.csh       colorls.csh   lang.csh    less.csh  vim.csh  which2.csh


·自定义的alias放到~/.bashrc


·取消别名 unalias 命令别名

[[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] ~]# 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'





8.4 通配符


*                              任意一个或多个字符

?                              任意一个字符

[0-9]                        范围

[a-z]

[A-Z]

[1-9a-bA-Z]

{1,2....}                      具体数字 (或)





8.5 输入输出重定向


输出重定向:

>                                     前面正确的信息重定向到文本文件中

>>                                   前面正确的信息追加重定向到文本文件中

2>                                   错误重定向到文本文件中

2>>                                 错误追加重定向到文本文件中

&>                                   正确错误都重定向到文本文件中  1>+2>

&>>                                 正确错误都追加重定向到文本文件中

> a.txt 2>b.txt                  正确的输出到a.txt,错误的输出到b.txt


输入重定向:

< 将后面文本文件中的信息输入重定向到前面的命令

wc -l < 1.txt 统计1.txt有多少行

[[email protected] ~]# cat test3
ls: cannot access test: No such file or directory
test2
[[email protected] ~]# cat > newfile < test3
[[email protected] ~]# cat newfile
ls: cannot access test: No such file or directory
test2

这里的先将文件中的数据提取到了命令 cat 中 ,然后由 cat 写入到 newfile 中


参考:https://www.cnblogs.com/divent/p/5773861.html 


以上是关于2018-1-10 5周3次课 命令补全别名通配符重定向的主要内容,如果未能解决你的问题,请参考以下文章

2018-1-10 5周3次课

5周第3次课 shell介绍 命令历史 命令补全和别名 通配符 输入输出重定向

2017.12.22 2周5次课

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

五周第三次课(1月10日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

2018.1.3 4周2次课