- 8.1 shell介绍
- 8.2 命令历史
- 8.3 命令补全和别名
- 8.4 通配符
- 8.5 输入输出重定向
什么是shell?
- shell是一个命令解释器,提供用户和及其之间的交互
- 致辞特定语法,比如逻辑判断、循环
- 每个用户都可以有自己特定的shell
- CentOS7默认shell为bash (Bourne Agin Shell)
- 还有zsh 、ksh等
查找zsh、ksh 包
[root@localhost ~]# yum list |grep zsh
autojump-zsh.noarch 22.3.0-3.el7 epel
zsh.x86_64 5.0.2-28.el7 base
zsh-html.x86_64 5.0.2-28.el7 base
zsh-lovers.noarch 0.9.0-1.el7 epel
[root@localhost ~]# yum list |grep ksh
ksh.x86_64 20120801-34.el7 base
mksh.x86_64 46-5.el7 base
python-XStatic-Rickshaw.noarch 1.5.0.0-4.el7 epel
python-moksha-common.noarch 1.2.3-2.el7 epel
python-moksha-hub.noarch 1.5.3-2.el7 epel
python-moksha-wsgi.noarch 1.2.2-2.el7 epel
[root@localhost ~]#
命令历史
命令存放位置:
[root@localhost ~]# ls /root/.bash_history
/root/.bash_history
history 查看之前存放的命令,最大默认存放5000条,可以调整
查看存放命令大小:
[root@localhost ~]# echo $HISTSIZE
1000
清空内存记录
[root@localhost ~]# history -c
[root@localhost ~]# history
1 history
只有当退出终端的时候命令才能保存到文件中去,/root/.bash_history
环境变量 HISTSIZE 大小在哪个地方存呢?z
vi /etc/profile
找到 HISTSIZE, 可以修改存放大小:5000等等
执行生效: source /etc/profile
设置命令类型:
命令时间类型:年月日时分秒
HISTTIMEFORMAT="%Y%m%d %H:%M:%S"
这个环境变量只能在当前窗口存在,再打开一个窗口就会变了
[root@localhost ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
[root@localhost ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[root@localhost ~]# history
1 2018/01/10 00:13:26history
2 2018/01/10 00:14:12clear
3 2018/01/10 00:26:13SETTIMEFARMAT="%Y%m%d %H:%M:%S"
4 2018/01/10 00:26:49$HISTTIMEFARMAT="%Y%m%d %H:%M:%S"
5 2018/01/10 00:27:01$HISTTIMEFARMAT="%Y/%m/%d %H:%M:%S"
6 2018/01/10 00:27:07HISTTIMEFARMAT="%Y/%m/%d %H:%M:%S"
7 2018/01/10 00:27:28echo $HISTTIMEFARMAT
8 2018
/01/10 00:27:34history
9 2018/01/10 00:28:07HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
10 2018/01/10 00:28:38echo $HISTTIMEFORMAT
11 2018/01/10 00:28:43history
永久生效:
vi /etc/profile
/HISTSIZE
HISTSIZE=5000
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
source /etc/profile
永久保存 命令历史
只能增加不能删除
chattr +a ~/.bash_history
当用户没有正常退出 exit/logout 直接把终端关闭 刚刚敲的命令就不会记录到文件中去。
!! 表示 上一条命令
!n 表示执行第n条命令
!echo 从命令历史从后往前找第一个以echo开头的命令。
!mkdir 从命令历史从后往前找第一个以mkdir开头的命令。
命令补全和别名
tab 敲一下,敲两下
一个命令补全,敲一下
多个相同开头的命令,按两下选择
参数补全,安装bash-complete
yum install -y completion
查找是否安装
[root@localhost ~]# rpm -qa bash-completion
bash-completion-2.1-6.el7.noarch
按tab两下 参数补全
例如: systemctl restart network
alias 别名 给命令重新起个名字
[root@localhost ~]# alias restartnet='systemctl restart network.service'
[root@localhost ~]# restartnet
输入alias回车,可以列出所有的别名
alias别名存在哪里?
vim .bashrc 下
有三条alias别名
其它别名在 /etc/profile.d/下定义
vim colors.ls 里面 有alias定义
vim colors.grep 里面也有alias定义
取消自定义的别名:
unalias 别名名称
unalias restartnet
通配符
列出所有txt类型文件,*是通配符
ls *.txt
ls 1*
ls ?.txt ?表示一个任意的字符
ls[0-3].txt 列出0.txt,2.txt,3.txt
ls [0-9a-z].txt 列出0-9.txt , a-z.txt
ls[0-9A-Z].txt
ls {1,2} .txt 相当于[12].txt 当中的一个或者1.txt,2.txt
输入重定向和输出重定向
cat 1.txt > 2.txt 把1.txt内容写入到2.txt 文件中;
把命令错误信息写入文件
lsaaaa 2> a.txt
cat a.txt
追加文件内容:
lslsls 2>>a.txt
&> 表示正确和错误信息 两者的结合
ls [12].txt aaa.txt &> a.txt
把1.txt 2.txt 和 错误的aaa.txt 文件 写入到a.txt
没有aaa.txt文件产生错误信息
ls[12].txt aaa.txt > 1.txt 2>a.txt
将 1.txt 2.txt 写入1.txt
把aaa.txt 产生的错误写入到a.txt
ls aaa.txt “没有那个文件” ,产生的错误信息 写入a.txt
后面的2 指定第二个 aaa.txt
aaa.txt > a.txt
wc -l < 1.txt 输入重定向
把右边的文件/文件内容输入到左边
wc -l 查看文档行数
左边必须是命令!
wc -l > 1.txt 输出重定向
wc -l <1.txt 输入重定向(很少用)
随机推荐
-
Visual Studio2008环境下查找C#中方法的“查看所有引用”
在Visual Studio开发环境下,想必F12我们都很熟悉了,有没有用过“查看所有引用”呢? 尤其是在一个解决方案中,包含了很多项目,彼此相互的调用是很常见的,例如三层架构, BLL调用DAL,D ...
-
[转载]JavaEE学习篇之——JQuery技术详解
原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/32102187 1.简介2.工具3.jQuery对象 1.DOM对象转化成j ...
-
SQLSERVER2012数据库还原
(1)还原已存在数据库 还原时提示失败,因为数据库正在使用,无法获得独占访问权.解决办法,先分离已存在的数据库,再执行还原操作. 确定后居然成功了,因为我是先使用(2)还原数据库后直接尝试(1)方法还 ...
-
(iOS)推送常见问题
1.为什么启动的时候出现 Did Fail To Register For Remote Notifications With Error的错误程序运行的时候出现下面的错误信息: did Fail T ...
-
执行sql时出现错误 extraneous input &#39;;&#39; expecting EOF near &#39;<;EOF>;&#39;
调用jdbc执行hive sql时出现错误 Error while compiling statement: FAILED: ParseException line 5:22 extraneous i ...
-
Mybatis的bind动态SQL
bind标签用于在SQL执行的上下文中绑定一个变量,方便在后续中直接使用:下面的例子中将name参数拼接成模糊查询需要的字符串然后和bindName绑定,在后面的使用中可以直接使用bindName变量 ...
-
VS code常用的几个插件
VScode是一个我最近才开始用的编辑器,在此列几个自己在用的插件,以备换机时的需要. auto close tagbeautify css/sass/scss/lessone dark themes ...
-
单片机成长之路(51基础篇) - 007 CH340CH341最全说明
比较全的CH340,CH341应用说明 CH340 以前用USB转串口时图方便一般也都是直接买现成的USB转串口模块,但是后面设计需要,不等不将CH340这个模块集成到电路板中,经过多次失败,终于得到 ...
-
MySQL两种存储引擎: MyISAM和InnoDB
MySQL两种存储引擎: MyISAM和InnoDB 简单总结 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Me ...
-
Go语言Windows 10开发环境搭建:Eclipse+GoClipse
Intel Core i5-8250U,Windows 10家庭中文版,go version go1.11 windows/amd64, Eclipse IDE for C/C++ Developer ...