文档章节

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

野雪球
 野雪球
发布于 10/12 02:03
字数 1008
阅读 5
收藏 10

什么是shell

  • shell是一个命令解释器,提供用户和机器之间的交互
  • 支持特定语法,比如逻辑判断、循环
  • 每个用户都可以有自己特定的shell
  • CentOS7默认shell为bash(Bourne Agin Shell)
  • 还有zsh、ksh等

命令历史

  • history命令,查看命令的输入历史
  • .bash_history,命令输入历史保存文件,默认1000条
  • 变量HISTSIZE,在/etc/profile中修改;HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S ",历史命令中时间格式化显示
  • /etc/profile文件生效方式: 重新进终端或者source /etc/profile
  • 永久保存命令输入历史 chattr +a ~/.bash_history
  • !! # 执行上一条命令
  • !n # 执行命令历史文件中第n条命令
  • !word 根据时间在命令历史文件中从新到老找到的第一个word命令执行
  • history -c # 清空内存中缓存的命令,不会清空.bash_history文件的内容
  • 退出终端时会把内存中的命令写到.bash_history文件中

命令补全及别名

  • tab键,敲一下会补全能唯一确定的一个命令,敲两下列出可选的命令
  • 命令参数补全,安装bash-completion,安装完成后需要重启系统才能生效(CentOS7支持)
  • alias 别名 # 给命令重新起个名字
  • 各用户都有自己配置别名的文件 ~/.bashrc,另外的别名配置文件在目录/etc/profile.d/下
  • 自定义的alias放到 ~/.bashrc
[root@centos01 ~]# alias cat1='cat 1.txt'
[root@centos01 ~]# cat1
1
[root@centos01 ~]# unalias cat1
[root@centos01 ~]# cat1 # 取消别名
-bash: cat1: command not found

通配符、输入输出重定向

  • ls *.txt # *通配任意个字符
  • ls ?.txt # ?表示一个任意字符
  • ls [0-9].txt # [0-9] 取0到9之间的任意一个
  • ls {1,2}.txt # 列出1.txt和2.txt 等价于 [12].txt
  • cat 1.txt > 2.txt # 把命令cat 1.txt输出的内容直接写到2.txt(重写前会清空2.txt) -cat 1.txt >> 2.txt # 把命令cat 1.txt输出的内容追加写到2.txt(重写前不会清空2.txt)
  • ls aaa.txt 2>err # 命令ls aaa.txt产生的错误信息输入到err文件
  • ls aaa.txt 2>>err # 命令ls aaa.txt产生的错误信息追加输入到err文件
  • wc -l < 1.txt # 输入重定向,左边必须是命令
  • command > 1.txt 2>&1 # command执行的正确和错误结果输出到1.txt,其中&1表示标准正确输出目标,而命令command > 1.txt已经定义了正确输出的文件1.txt,所以&1指代1.txt
[root@centos01 ~]# ls
1.txt  anaconda-ks.cfg  a.txt  d0917  link_test  s_link0.log  test.txt
[root@centos01 ~]# ls *txt
1.txt  a.txt  test.txt
[root@centos01 ~]# ls
1.txt  anaconda-ks.cfg  a.txt  d0917  link_test  s_link0.log  test.txt
[root@centos01 ~]# ls aaaa.txt 2>err.txt
[root@centos01 ~]# cat err.txt
ls: cannot access aaaa.txt: No such file or directory
[root@centos01 ~]#
[root@centos01 ~]# ls aaaa.txt >> err.txt
ls: cannot access aaaa.txt: No such file or directory
[root@centos01 ~]# cat err.txt
ls: cannot access aaaa.txt: No such file or directory
[root@centos01 ~]#
[root@centos01 ~]# ls
1.txt  anaconda-ks.cfg  a.txt  d0917  err.txt  link_test  s_link0.log  test.txt
[root@centos01 ~]# ls {1,2}.txt
ls: cannot access 2.txt: No such file or directory
1.txt
[root@centos01 ~]# ls {1,2}.txt > err.txt
ls: cannot access 2.txt: No such file or directory
[root@centos01 ~]# cat err.txt
1.txt
[root@centos01 ~]# ls {1,2}.txt &> err.txt
[root@centos01 ~]# cat err.txt
ls: cannot access 2.txt: No such file or directory
1.txt
[root@centos01 ~]# ls {1,2}.txt &> err.txt
[root@centos01 ~]# cat err.txt
ls: cannot access 2.txt: No such file or directory
1.txt
[root@centos01 ~]# ls {1,2}.txt &>> err.txt
[root@centos01 ~]# ls {1,2}.txt &>> err.txt
[root@centos01 ~]# cat err.txt
ls: cannot access 2.txt: No such file or directory
1.txt
ls: cannot access 2.txt: No such file or directory
1.txt
ls: cannot access 2.txt: No such file or directory
1.txt
[root@centos01 ~]# ls {1,2}.txt > res.txt 2>err.txt
[root@centos01 ~]# cat res.txt
1.txt
[root@centos01 ~]# cat err.txt
ls: cannot access 2.txt: No such file or directory

[root@centos01 ~]# ls {1,2}.txt > ttt.log 2>&1
[root@centos01 ~]# cat ttt.log
ls: cannot access 2.txt: No such file or directory
1.txt

© 著作权归作者所有

共有 人打赏支持
野雪球
粉丝 6
博文 30
码字总数 29008
作品 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
8.1 shell介绍 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

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

oschina130111
06/29
0
0
shell介绍,命令历史,命令不全和别名,通配符以及输出重定向

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

叶瑾
03/07
0
0
shell介绍、历史命令、命令补全和别名、通配符、输入输出重定向

shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。在计算机硬件之间还有一层东西——系统内核。如果把计算机硬件比作一个人的躯体,那系统内核就是人的大脑。...

网虫变网工
2017/11/15
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

没有更多内容

加载失败,请刷新页面

加载更多

HashTable

Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射 Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口 Hashtable 的函数都是同步的,这意味着它是线...

职业搬砖20年
13分钟前
1
0
Linux系统状态查看命令1

10月23日任务 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令 查看系统负载 w命令 # 第一行:当前系统时间,系统启动时间,登录的用户,系统负载:1分钟...

robertt15
28分钟前
1
0
缓存那些事

前言 一般而言,现在互联网应用(网站或App)的整体流程,可以概括如图1所示,用户请求从界面(浏览器或App界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容...

Skqing
37分钟前
2
0
nginx开启stub_status模块配置方法

nginx开启stub_status模块配置方法 2017年12月13日 15:57:29 ly_dengle 阅读数:3765 标签: stub_statusnginxnginx开启stub_status模块 更多 个人分类: 软件工具php 版权声明:本文为博主原...

linjin200
44分钟前
3
0
挑逗 Java 程序员的那些 Scala 绝技

有个问题一直困扰着 Scala 社区,为什么一些 Java 开发者将 Scala 捧到了天上,认为它是来自上帝之吻的完美语言;而另外一些 Java 开发者却对它望而却步,认为它过于复杂而难以理解。同样是 ...

joymufeng
47分钟前
119
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部