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

本文详细介绍了Linux Shell的基础知识,包括Shell的定义及作用、命令历史、命令补全与别名设置、通配符的使用以及输入输出重定向等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.1 shell介绍

 

什么是shell?

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

支持特定语法,比如逻辑判断,循环  if 。。然后。。。   for。。。 然后 。。。  

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

CentOS7默认shell为bash(Bourne Agin Shell)    bourne 是一个用户的名字,为了纪念他 他的shell是sh后来在基础上优化开发形成了一个bash 

还有zsh,ksh等

用户配置文件最后一段,是用户的shell  ,

 

8.2 命令历史

敲过的命令 只有正常退出终端的时候才能保存到配置文件里去

history 命令   敲过命令的历史 

.bash_history     敲过命令的历史存在用户家目录的.bash_history文件里

150336_jW2s_3708811.png

最大1000条历史命令    敲过的命令 最多能存1000条

变量HISTSIZE      最多存1000条 由系统环境变量设置

150352_YtgT_3708811.png

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

/etc/profile  $HISTSIZE 环境变量 在 profile定义  可以修改命令历史数值。

150401_ipfa_3708811.png

150405_2lc8_3708811.png

修改后要重新进终端,或者使用命令  source /etc/profile

150418_npFE_3708811.png

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"  指定HISTTIMEFORMAT变量的格式 ,显示记录对应命令的运行日期时间   只在当前终端显示, Y=年 m=月 d=日   H=小时 M=分 S=秒

150423_Aqnd_3708811.png

150430_6AaH_3708811.png

如果要在每个终端用户都显示 就需要编辑 /etc/profile 配置文件 把定义变量放进配置文件里

150437_R8ff_3708811.png

修改完后 source 一下 或者 重新终端就生效

永久保存 chattr +a ~/.bash_history   让历史命令永久保存 不能删除 增加个隐藏权限 +a  只能追加不能删除

!!    执行的是你上一条命令。

!n    n代表数字。    执行你要运行命令历史里的第几条命令  

!word     word代表命令。 执行倒着的最近一条以该命令开头的命令行

 

 

8.3 命令补全和别名

 

tab 键,敲一下,敲两下  不紧补全命令,也可以补全文件路径,开头名多个文件 敲两下。才会显示相关开头的文件目录

150447_FGGH_3708811.png

参数补全,安装bash-completion   默认不支持参数补全 如果要有这个功能 需要安装

150451_jLwi_3708811.png

安装完后 需要重启下系统才能启用

150454_ZNRP_3708811.png

alias别名,给命令重新起个名字  可以给一整行命令 做个单个命令别名

列子

150500_suxG_3708811.png

直接使用alias 可以列出所有命令别名 包括自定义的

各个用户都有自己配置别名的文件 ~/.bashrc      在用户家目录里的

还有的一些别名在  /etc/profile.d/  目录内

150508_mjei_3708811.png

取消自定义的别名  使用命令 unalias 命令别名  就是取消

自定义的alias放到~/.bashrc  把自定义的别名 写入 .bashrc内 永久保存别名。

 

8.4 通配符

 

ls *.txt   *代表通配 表示任何数字字符多位 不分前后

150514_wCEw_3708811.png

150517_wHCm_3708811.png

ls ?.txt   ?表示一个任意的字符数字。

150543_Qb7r_3708811.png

ls [0-9].txt   方括号里面 可以写的是范围 数字或者字母

150549_gTBH_3708811.png

ls {1,2}.txt  跟方括号比较像,但是里面要加逗号

150555_0GlS_3708811.png

 

8.5 输入输出重定向

 

cat 1.txt >2.txt   大于号  把前面命令的输出直接输出到后面的文件里面去。会删除后面文件的内容 重写

cat 1.txt>> 2.txt   大于号  把前面命令的输出直接输出到后面的文件里面去但是不会删除输入文件,只会在末尾追加

ls aaa.txt 2>err    2> 表示错误的信息 输出指定文件 会删除指定文件的内容重新写入

ls aaa.txt 2>>err  2>>  表示错误的信息追加输出到指定文件 不会删除指定文件的内容,只会在末尾追加

wc -l < 1.txt  把右边的文件内容,把它输入到左边的命令里去

command >1.txt 2>&1     

把正确的输出信息 写入 1.txt  把错误的输出信息写入a.txt   正确与错误分开输入

150611_6ctC_3708811.png

&>  把正确与错误的输出信息定向到同一个文件 也支持追加  &>>

转载于:https://my.oschina.net/u/3708811/blog/1575494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值