一 shell 介绍
shell 是一个命令解释器, 提供用户和机器之间的交互
支持特定语法, 比如逻辑判断循环
每个用户都可以有自己特定的 shell
CentOS7 默认 shell 为 bash(Bourne Agin Shell)
还有 zshksh 等
二 history
history 命令
是最近输入过的命令历史, 当前输入的命令会放在内存当中, 只有每次正常退出终端, 命令历史才会写入 history 文件中
.bash_history
命令历史存放的文件 echo $HISTSIZE
命令历史最大存放 1000 条
这个设置可以在
/etc/profile 中修改
vim etc/profile
如果想让历史表中显示历史命令的时间可以用以下命令
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
单独执行时只在当前命令窗口生效
想要永久生效的话就将命令加入 / etc/profile 环境变量
- vim /etc/profile
- source !$ // 使环境变量生效
如果希望 history 文件永久保存
chattr +a ~/.bash_history
这时候文件只能追加不能删除, 无视 1000 条限制
!!
执行上一条命令
!n
执行历史命令中第 n 条命令
!word
执行命令历史中最后一条 Word 命令, 这里 Word 可以更换为任意命令
三命令补全和别名
tab 键, 敲一下, 敲两下
敲一下会自动补全命令如果有多个开头相同的命令, 则需要敲两下从列表中选择
参数补全, 安装 bash-completion
yum install -y bash-completion
安装后需要重启生效
alias 别名给命令重新起个名字
alias restartnet=systemctl restart network.service
各用户都有自己配置别名的文件 ~/.bashrc
这个文件有很少的几个默认 alias
/etc/profile.d/ 目录下存放一些其他的别名
ls /etc/profile.d/
自定义的 alias 放到~/.bashrc
取消别名用 unalias
四通配符
- ls *.txt // 列出所有的 txt 文件
- ls ?.txt // 列出文件名是一个字符的 txt 文件
- ls [0-9].txt // 列出文件名是 1-9 的 txt 文件
- ls [13].txt // 列出文件名是 1 或者 3 的 txt 文件
- ls {1,2}.txt // 列出文件名为 1 的 txt 文件和文件名为 2.txt 文件, 如果有其中一个不存在, 会提示
五输入输出重定向
- cat 1.txt >2.txt // 将前面命令的输出输入到后面的文件中 (覆盖 2.txt 内容)
- cat 1.txt >> 2.txt // 将前面命令的输出追加输入到后面的文件中 (在 2.txt 中追加)
- ls aaa.txt 2>err // 将前面命令的错误信息输入到后面的文件 (覆盖)
- ls aaa.txt 2>>err // 将前面命令的错误信息追加输入到后面的文件 (不覆盖)
- ls {1,6}.txt &>999.txt // 将正确和错误信息都输入到后面文件中
- ls {1,6}.txt >999.txt 2>66.txt // 将正确信息输入 999.txt, 错误信息输入 66.txt
- wc -l < 1.txt // 输出右边文件的文件行数 (左边需要是命令, 不可以是文件)
来源: http://www.bubuko.com/infodetail-2519610.html