8.1 shell介绍
设立是一个命令编辑器,提供用户和机器之间的交互
centos 7默认shell为bash
8.2 命令历史
命令输入历史最多可以存一千条,在.bash_history 内
最大存储数量由环境变量HISTSIZE决定的
# history -c 清空内存命令历史,不能清掉文件内存储的命令历史
当推出终端后才会自动保存到命令历史配置文件内
# vi /rtc/profile 在/etc/profile中可以定义变量HISTSIZE
重启终端或者执行# source /etc/profile4命令才能使修改生效
使history记录命令使用时间,为变量HISTTIMEFORMST赋值(系统默认此变量不存在)
命令历史格式发生改变
也可vi/etc/profile修改文件进行修改
# chattr +a ~/.bash_history 只追加不删除
如不正常退出(exit logout)命令历史就将记录不全
# !! 执行上一条命令
# !761运行第n条命令
# !echo 执行最近一条echo命令
8.3命令补全和别名
相同开头较多命令时补全按两下Tab 会列出所有此开头命令
开头只有一个命令时,按一下tab,就会自动补全此命令
安装bash-completion 并重启系统,可以tab自动补全参数
alias为命令设置别名
# alias restartnet=‘systemctl restart network.service’
就可以使用命令执行他# restartnet
# alias 可以列出所有alias
用户及目录下的bashrc 内配置alias,以及/etc/profile.d下
# unalias restartnet 取消自定义的别名
8.4 通配符
*.txt以.txt结尾的文件
*放前边,列出以1开头的文件
?.txt a.txt bbb.txt不可以
问号可代表任意单个字符
[0-9 ].txt 方括号内可指定范围
{ 1,2}.txt 加逗号,同于[12].txt
8.5 输入输出重定向
# cat 1.txt > 2.txt 将前面命令的输出结果,输入到后面的文件内(不保留原文件)
# cat 1.txt >>2.tx t 相反会保留原文件(追加)
# ls aaa,txt 2>err 将一个文件的错误信息定向到一个文件内
>>为追加
&> 错误和正确的文件可以同时定向到一个文件内
# ls [12].txt aaa.txt > 1.txt 2>a.txt 可以将正确的和错误的分开放到不同的文件内
# wc-l < 1.txt 输入重定向到一个命令
8.6 管道符和作业控制
管道符:将前面的命令的结果执行后面的命令
# cat 1.txt | wc-l 统计1.txt行数
ctrl z 当正在编辑某个文件时,需要查看另一个文件,可以在编辑过程中按ctrl z 暂停
# fg 返回编辑文件
# jops 列出正在暂停的编辑文件任务
# fg 加上id 就可切换回去
# bg 加序号 将程序放到后台继续运行,同时可以做别的,后台运行文件会显示到前台
jops 显示运行中
# slep 100 & 后加&可以将命令直接放到后台继续运行
8.7 8.8 shell变量
# env 查看系统常用变量
大写为变量名字,
# set 不仅仅查看系统自定义变量,还会查看用户自定义的环境变量
自定义变量
将a=1 b=2两个变量合起来
全局变量export b=2
# echo $SSH_TTY查看当前使用终端
# aming=linux 在pts/1 下自定义一个变量
此种为终端下,本地生效
# exportaming=linux 所有子shell下(# bash 打开子shell)都有自动环境变量,(向下传递)
#unset aming
消自定义变量