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,如需转载请自行联系原作者
相关文章
|
17天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
1月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
35 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
43 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
44 2
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
32 1
|
5天前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
【4月更文挑战第11天】ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
25 7
|
12天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
26 5
|
30天前
|
存储 Shell 数据安全/隐私保护
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
24 0
|
1月前
|
网络协议 Shell Linux
【Shell 命令集合 系统管理 】Linux 查询域名的注册信息 whois命令 使用指南
【Shell 命令集合 系统管理 】Linux 查询域名的注册信息 whois命令 使用指南
48 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示当前登录用户的用户 whoami命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前登录用户的用户 whoami命令 使用指南
49 1