文档章节

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

阿想
 阿想
发布于 2017/08/30 11:24
字数 972
阅读 13
收藏 0
点赞 0
评论 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
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
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条 清除当前内存中存在的历史命令,但是不会删除配置文件。 ...

叶瑾
03/07
0
0
五周第三次课(4月20日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

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

Champin
04/23
0
0
shell介绍及基本用法

8.1:shell介绍: shell是一个命令解释器,提供用户和机器之间的交互,支持特定语法,支持逻辑判断、循环,并且每个用户都可以有自己的shell: Centos默认的shell是bash(Bourne Agin Shell):...

芬野
2017/11/16
0
0
8.1 shell介绍 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,他只是系统的一个工具。在shell和计算机硬件之间还有一层东西——系统内核。用户直接面对的不是计算机硬件而是shell,用户把指...

oschina130111
06/29
0
0
记录历史命令,history,命令补全和别名、通配符、输入输出重定向

shell shell是一个命令解释器,提供用户与机器之间的交互,支持特定的语法(逻辑判断、循环等); 每个用户都可以有自己特定的shell; centos7默认shell为bash,其他shell还有zsh、ksh等; ...

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

8.1 shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。 用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核...

martin20162018
01/10
0
0
20.Shell介绍,history,Tab键,通配符,重定向

五周第三次课(1月10日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 shell介绍 shell是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻...

Xavi2017
01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
6
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部