shell 介绍
命令解释器 ,用于用户和机器交互。
用户配置文件最后一段就是shell.
每个用户都可有自己的shell
youbashell zsh ksh 等
历史命令
history命令:查看命令历史
在用户家目录下.bashhistory
$HISTZIZE系统环境变量
history -c清空当前内存里的命令历史 但不能清空文件中的
内存中的历史命令只有退出终端才会保存到历史文件中
histsize在/etc/profile中修改
修改完后用source /etc/profile 让其生效
命令历史永久保存 增加隐藏权限
charrt +a ~/.bash_history 只能被追加,不能被删除
!$ 上一条命令的路径
命令补全及别名
两下tab键补全
参数补全 安装yum bash-completion 如systemctl restart network 默认不会补全 安装后就能tab补全 安装完需要重启系统才能生效
alias给命令重新取名字
每个用户都有自己别名的文件。~/.bashrc下存放用户自己定义的别名。在/etc/profile.d下也会存放别名。
unalias取消自定义别名
alias netrestart="systemctl restart network’定义别名
通配符 输入输出重定向
*任意字符
?单个字符
[0-9]括号内的数字范围内的
{1,2}1,2中任选
输出重定向 cat 1.txt > 2.txt 原来的内容覆盖
追加重定向 cat 1.txt >> 2.txt
输入重定向 wc -l <1.txt
ls aaa.txt 2>err 命令产生的错误信息定位到文件中去
ls aaa.txt 2>>err 追加到文件中去
&> 把正确和错误的信息全部都输入到文件中去。
&>> 追加
ls 1.txt lsss 1.txt > a.txt 2>b.txt
把正确的结果和错误的结果分别追加到两个文件中去,可以区分开两种结果。
输入重定向时,<左边必须是一个命令,不能是一个文件。如不能1.txt<2.txt,不能把2.txt的结果输出到1.txt中。
管道符和作业控制
管道符:把文件的输出的内容传递给后面的命令。
如cat /etc/passwd |wc -l
作业控制 :
ctrl z:暂停任务
ctrl c :停止任务
fg 把后台任务调到前台
jobs 把停止的任务列出
bg 把任务调到后台
把一条命令调到后台去执行也可以用命令 &
如 sleep 200 & 把sleep 调到后台去执行
ctrl u:删除命令
ctrl d :
ctrl e:光标移动到最后
ctrl a:光标移动到开头
shell 变量
set命令可用于查看变量,不止看系统变量,也查看用户自定义变量。
env命令 查看系统H环境变量
自定义变量a=1 用echo $a 查看
变量命名规则,首位不能为数字
变量值有特殊符号时需要用单引号括起来
变量的累加 多个变量叠加时,可用双引号引起来。
全局变量export b=2 打开两个终端时(w查看当前有几个用户登录,echo $SSH_TTY 可查看自己在哪个终端上登录),只在本终端上有效。
unset变量
环境变量配置文件
系统层面
/etc/profile
/etc/bashrc
用户层面
~/.bashrc
~/.bash_profile
profile为用户环境变量 bashrc用户不同登录,执行shell 就生效。
系统的一般不编辑,编辑的是用户自己的bashrc
编辑完后要source一下 source .也可以。用于加载配置文件中的配置。也可以. .bashrc
bash proflie 会自动调用bashrc,bashrc会自动调用/etc/bashrc