文档章节

5-3 8 shell介绍 命令历史 补全 别名 通配符 重定向

阿想
 阿想
发布于 2017/08/30 11:24
字数 972
阅读 15
收藏 0

8.1 shell介绍

什么是shell

  • shell是一个命令解释器,提供用户和机器之间的交互(命令行终端)
    • 脚本shell是一种表现形式
    • passwd中最后一段即是用户的shell
  • shell支持特定语法,比如逻辑判断、循环
  • 每个用户都可以有自己特定的shell
  • CentOS7默认shell为bash(Bourne Again Shell)
  • 还有zsh ksh等。大体一样,细节有差异。
    • 默认没有安装
[root@lixiang01 ~]# yum list |grep zsh
autojump-zsh.noarch                     22.3.0-3.el7                   epel     
zsh.x86_64                              5.0.2-25.el7_3.1               updates  
zsh-html.x86_64                         5.0.2-25.el7_3.1               updates  
zsh-lovers.noarch                       0.9.0-1.el7                    epel     
[root@lixiang01 ~]# yum list |grep ksh
ksh.x86_64                              20120801-26.el7                base     
mksh.x86_64                             46-5.el7                       base       

8.2 命令历史

[root@ax-01 ~]# history
  • history命令,记录历史命令
  • 用户的家目录下的.bash_history,记录上一次正常退出后的命令历史
    • 非正常退出保存不完整

修改命令历史保存数量

[root@ax-01 ~]# echo $HISTSIZE  //默认命令历史最大1000条
1000
[root@ax-01 ~]# vim /etc/profile  //可以在此调整环境变量

[root@ax-01 ~]# source !$
source /etc/profile
[root@ax-01 ~]# echo $HISTSIZE
5000
  • 由环境变量控制$HISTSIZE保存最大保存命令。运行时内存可以保存多于1000条
  • history -c 可以清空内存中的命令历史
  • 退出终端后保存至.bash_history

修改命令历史显示格式

[root@ax-01 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
[root@ax-01 ~]# history
    2  2017/08/30 09:51:25echo $HISTSIZE
    3  2017/08/30 09:51:44vim /etc/profile
    4  2017/08/30 09:53:37echo $HISTSIZE
[root@ax-01 ~]# !vim
vim /etc/profile 

[root@ax-01 ~]# source /etc/profile
[root@ax-01 ~]# !echo
echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
  • HISTTIMEFORMAT="%Y/%m/%d % H:%M:%S" //需要注意大小写 修改profile永久生效

命令历史永久保存

[root@ax-01 ~]# chattr +a .bash_history 
[root@ax-01 ~]# lsattr .bash_history 
-----a-------e-- .bash_history
  • 不受环境变量 HISTSIZE影响

叹号常见用法

[root@ax-01 etc]# cd /etc/yum.repos.d/
[root@ax-01 yum.repos.d]# cd ..
[root@ax-01 etc]# !!  再次执行上一条命令
cd ..
[root@ax-01 /]#
[root@ax-01 /]# cd
[root@ax-01 ~]# history | tail -n4
 1051  cd /etc/yum.repos.d/
 1052  cd ..
 1053  cd
 1054  history | tail -n4
[root@ax-01 ~]# !1051  //照history编号运行
cd /etc/yum.repos.d/

  • !! // 最后一条命令
  • !n // n是数字 按照history编号运行
  • !xx //执行最近一次以xx字符开头的命令

8.3 命令补全和别名

  • tab键命令补全,
    • 敲一下如果后续字符唯一则自动补全
    • 如果不唯一,敲两下看可选后续字符

参数补全

[root@ax-01 ~]# yum install -y bash-completion  //安装参数补全包,需要重启
[root@ax-01 ~]# reboot
[root@ax-01 ~]# systemctl restart network
network-online.target  network.service
  • CentOS7新加入的支持参数补全。很实用

alias别名

[root@ax-01 ~]# alias renet='systemctl restart network'
[root@ax-01 ~]# echo "alias renet='systemctl restart network'" >> .bashrc
[root@ax-01 ~]# unalias renet 取消
[root@ax-01 ~]# vim .bashrc 删除定义别名
  • 部分系统别名在/etc/profile.d/目录下的文件里
  • 每个用户都有自己的别名配置文件

8.4 通配符

  • ls *.txt //表示任意
  • ls ?.txt //表示任意1个
  • ls [0-9].txt //表示范围中任意1个
  • ls {1,3}.txt //同上

实验

[root@lixiang01 ~]# ls *txt*
1_heard.txt.bak  1.txt  22.txt  2.txt.bak  test.txt  word1.txt  记录.txt
[root@lixiang01 ~]# ls 1*
123.tar.bz2  1_heard.txt.bak  1.txt

111:
22.txt
[root@lixiang01 ~]# ls ?.txt
1.txt
[root@lixiang01 ~]# touch 2.txt
[root@lixiang01 ~]# touch 3.txt
[root@lixiang01 ~]# ls ?.txt
1.txt  2.txt  3.txt
[root@lixiang01 ~]# ls [0-3].txt
1.txt  2.txt  3.txt
[root@lixiang01 ~]# ls [123].txt
1.txt  2.txt  3.txt
[root@lixiang01 ~]#  ls [0-9].txt
1.txt  2.txt  3.txt
[root@lixiang01 ~]#  ls [0-9a-zA-Z].txt
1.txt  2.txt  3.txt
[root@lixiang01 ~]# touch d.txt
[root@lixiang01 ~]#  ls [0-9a-zA-Z].txt
1.txt  2.txt  3.txt  d.txt
[root@lixiang01 ~]# ls {1,3,d}.txt
1.txt  3.txt  d.txt

8.5 输入输出重定向

> 输出重定向
>> 追加
2> 错误重定向,支持追加2>>
&> 全部重定向,支持追加&>>

区分输出正确与错误信息

[root@ax-01 ~]# cat /etc/passwd nosuchthing.txt > right.log 2> err.log
[root@ax-01 ~]# cat err.log 
cat: nosuchthing.txt: No such file or directory

© 著作权归作者所有

共有 人打赏支持
阿想
粉丝 0
博文 72
码字总数 69742
作品 0
私信 提问
Shell基础知识(上)

shell介绍 1.其他的shell:zsh,ksh 命令历史 1.存放地址: 2.最多储存1000条,由标量控制: 3.history -c命令: 4.退出终端时,内存中保存的历史命令才会写到配置文件中去 5.修改变量HISTS...

xinghun1227
2018/01/10
0
0
8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 8.1 shell介绍 shell是一个命令解释器,提供用户和机器之间的交互 shell 脚本,仅仅是shell 的一种表现 用户...

JasonYan86
2018/06/29
0
0
linux的shell基础介绍(1)

8.1 shell介绍:器之间的交互 1、shell是一个命令解释器,提供用户和机器之间的交互 2、 支持特定语法,比如逻辑判断、循环 3、每个用户都可以有自己特定的shell 4、 CentOS7默认shell为bash(...

Gary_加油涛
2017/11/15
0
0
shell介绍,命令历史,命令不全和别名,通配符以及输出重定向

shell介绍: zsh和ksh同样是两个shell。 命令历史: history 查看1000条历史命令 查看环境变量,1000表示history存的历史命令1000条 清除当前内存中存在的历史命令,但是不会删除配置文件。 ...

叶瑾
2018/03/07
0
0
day01:shell基础(shell基础、alias及重定向)

1、shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都有自己特定的shell:Centos7的shell是bash(bourne agin shell): shel...

芬野de博客
2018/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java B2B2C o2o多用户商城 springcloud架构-docker-feign-hystrix(六)

简介 上一节我们讨论feign的配置,这节我们讨论一下,feign+hystrix调用生产者时,进行容错处理 一、创建模块(microservice-consumer-movie-feign-with-hystrix) 二、pom.xml文件 <?xml ve...

sccspuercode
10分钟前
1
0
简单聊聊Linux学习经历

简单聊聊Linux学习经历 学习,是我们一生中都规避不了的一个话题,人的一生中都是在不断的学习,无论是功成名就的人士,还是一无是处的小混混,始终都处在一个不断学习的环境中,只是学习的内...

linuxCool
29分钟前
2
0
C++ This 详解

分类: C++ this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。 所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前...

天王盖地虎626
57分钟前
3
0
如何自制一个Spring Boot Starter并推送到远端公服

概 述 传统的 Maven项目一般将需要被复用的组件做成 Module来进行管理,以便二次调用;而在 Spring Boot项目中我们则可以使用更加优雅的 Spring Boot Starter来完成这一切。 基于Spring Boot...

CodeSheep
今天
1
0
大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部