shell介绍、命令历史、补全和别名、通配符、重定向

简介:

shell介绍

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

 

 支持特定语法,比如逻辑判断、循环

 

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

 

 CentOS7默认shellbashBourne Agin Shell

 

 还有zshksh

 

命令历史

history命令

-d 行号  删除该行

[root@localhost ~]# vi /root/.bash_history  //history命令存放文件

.bash_history

 

[root@localhost ~]# echo $HISTSIZE  //变量HISTSIZE最大1000

1000

 

[root@localhost ~]# history -c  //清空内存命令历史

 

[root@localhost ~]# history -w  //保存文件到文件里去

 

[root@localhost ~]# vi /etc/profile  // /etc/profile中修改HISTSIZE

[root@localhost ~]# 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

   62  2017/10/26 21:34:47 history

   63  2017/10/26 21:34:57 vi /etc/profile

   64  2017/10/26 21:36:31 echo $HISTSIZE

 

[root@localhost ~]# chattr +a /root/.bash_history

 永久保存 chattr +a ~/.bash_history

 

 !!   执行历史命令最后一个命令

 !n   执行历史命令的某个命令(n数字)

 !word历史命令从下往上找以word开头的第一个命令

 

命令补全和别名

tab

敲一下:命令补全

敲两下:列出以某些字符开头的命令

 

 参数补全,安装bash-completion

[root@localhost ~]# yum install -y bash-completion

[root@localhost ~]# reboot  //重启

[root@localhost ~]# rpm -q bash-completion

bash-completion-2.1-6.el7.noarch

 

 alias别名给命令重新起个名字

[root@localhost ~]# alias resrenet='systemctl restart network'

 

 各用户都有自己配置别名的文件 ~/.bashrc

[root@localhost ~]# vi .bashrc

 

其他的别名所在

 ls /etc/profile.d/

[root@localhost ~]# ls /etc/profile.d/

 自定义的alias放到~/.bashrc

 

通配符

ls *.txt

[root@localhost profile.d]# ls *.sh  //*通配.sh结尾的脚本文件

256term.sh          colorgrep.sh  lang.sh  vim.sh

bash_completion.sh  colorls.sh    less.sh  which2.sh

 

[root@localhost profile.d]# ls *.cs*  //不分字符、不分几个

256term.csh    colorls.csh  less.csh  which2.csh

 

 ls ?.txt

[root@localhost profile.d]# ls *.?sh  //一个任意的字符

256term.csh    colorls.csh  less.csh  which2.csh

 

 ls [0-9].txt

[root@localhost ~]# ls [0-2].txt  //0-2任意一个都满足

1.txt  2.txt

 

 ls {1,2}.txt

[root@localhost ~]# ls {0,1,2}.txt  //大括号里的必须要有,没有会报错。类似[0-2]但是要,隔开

ls: 无法访问0.txt: 没有那个文件或目录

1. txt  2.txt

 

输入输出重定向

cat 1.txt >2.txt

[root@localhost ~]# echo "22">2.txt

[root@localhost ~]# echo "11">1.txt

[root@localhost ~]# cat 1.txt > 2.txt  重定向覆盖

[root@localhost ~]# cat 2.txt

11

 

cat 1.txt >> 2.txt

[root@localhost ~]# cat 2.txt

11

[root@localhost ~]# echo "22">1.txt

[root@localhost ~]# cat 1.txt >> 2.txt //追加重定向

[root@localhost ~]# cat 2.txt

11

22

 

 ls aaa.txt 2>err

[root@localhost ~]# ls aaa.txt 2>1.txt  //2错误重定向

[root@localhost ~]# cat 1.txt

 

 ls aaa.txt 2>>err

[root@localhost ~]# cat 1.txt

ls: 无法访问aaa.txt: 没有那个文件或目录

[root@localhost ~]# ls aaa.txt 2>>1.txt //错误追加重定向

[root@localhost ~]# cat 1.txt

ls: 无法访问aaa.txt: 没有那个文件或目录

ls: 无法访问aaa.txt: 没有那个文件或目录

 

[root@localhost ~]# > >> 2> 2>> >+2>=== &>

[root@localhost ~]# ls {1,3,2,0}.txt &> >lsx.txt //正确输出和错误输出都到lsx.txt里去

[root@localhost ~]# cat lsx.txt

ls: 无法访问3.txt: 没有那个文件或目录

ls: 无法访问0.txt: 没有那个文件或目录

1.txt

2.txt

 

 wc -l < 1.txt

[root@localhost ~]# cat 1.txt

ls: 无法访问aaa.txt: 没有那个文件或目录

ls: 无法访问aaa.txt: 没有那个文件或目录

[root@localhost ~]# wc -l < 1.txt //输入重定向

2

 

 command >1.txt 2>&1

[root@localhost ~]# ls {1,3,2,0}.txt >> lsx.txt 2>>lshx.txt //正确的输入到lsx.txt 错误的输入到lshx.txt

[root@localhost ~]# cat lshx.txt

ls: 无法访问3.txt: 没有那个文件或目录

ls: 无法访问0.txt: 没有那个文件或目录




本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/1980878,如需转载请自行联系原作者
相关文章
|
22天前
|
Shell Linux 程序员
【Linux】Shell 命令以及运行原理
【Linux】Shell 命令以及运行原理
|
29天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
29天前
|
网络协议 Unix Shell
第十一章 Shell常用命令与工具(二)
第十一章 Shell常用命令与工具(二)
|
29天前
|
移动开发 Shell Linux
第十一章 Shell常用命令与工具(一)
第十一章 Shell常用命令与工具(一)
|
29天前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
【4月更文挑战第11天】ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
34 7
|
29天前
|
Shell
ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
【4月更文挑战第10天】ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
29 0
|
29天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
52 5
|
29天前
|
Shell Linux
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
39 1
|
29天前
|
Shell
shell学习(三)【shell变量、数组,文件命令、特殊变量】
shell学习(三)【shell变量、数组,文件命令、特殊变量】
16 0
|
29天前
|
Shell
shell 命令(一)概述【别名、 bash重定向 、定义变量】
shell 命令(一)概述【别名、 bash重定向 、定义变量】
24 0