shell介绍/命令历史/命令补全/通配符/输出输入重定向

shell介绍

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

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

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

* Centos7默认shell为bash。

* 还有zsh、ksh

命令历史

我们在终端上敲过的命令,都有它的历史记录,比如此时按下向上键就会看到你之前最后输入的一条命令,再按就再往前翻,这里就开始学习认识命令历史

使用history命令查看历史命令;

[[email protected] ~]# history

这里可以看到我已经输入过429条命令。

历史命令是有个文件保存的,在root用户的家目录下,名为.bash_history,它是一个隐藏文件所以别忘记小点;

[[email protected] ~]# ls /root/.bash_history
/root/.bash_history
[[email protected] ~]# cat /root/.bash_history

该命令历史环境变量系统设定最大保存1000条命令,可以通过以下命令查看;

[[email protected] ~]# echo $HISTSIZE
1000

在目前中输入的命令还只是存在内存中,并为已经写入到命令历史文件中,通过以下命令,可以将当前输入过(内存记忆)的命令记录删除;

[[email protected] ~]# history -c

这个时候再按向上的方向键,你就发现看不到你前面输入过的命令了,而这个操作是不会删除掉你命令历史中的内容。
如果你觉得最大保存一千条命令不够,可以在以下路径中的配置文件里进行修改;

[[email protected] ~]# vi /etc/profile

找到以下图中这行将数量修改,这里我将数值改为:5000

想要这个数值生效还需要重新进入终端,或者执行以下命令;

[[email protected] ~]# source /etc/profile
[[email protected] ~]# echo $HISTSIZE
5000

可以看到数值已经变为5000
目前当我们输入history命令的时候,显示的仅仅是行号和命令,如果想要知道它操作的详细时间,我们可以更改以下环境变量即可;

[[email protected] ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
[[email protected] ~]# history
1 2018/01/10 18:07:50 vi /etc/profile
2 2018/01/10 18:12:13 cat /etc/profile
3 2018/01/10 18:13:55 source /etc/profile
4 2018/01/10 18:14:49 echo $HISTSIZE
5 2018/01/10 18:21:19 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
6 2018/01/10 18:21:28 history****

但是这样的操作仅限于当前,只要退出重进后又恢复原来的样子,想让它永久生效,进入到profile配置文件中,在HISTSIZE数量值下面添加上刚才那段参数即可。修改完别忘执行source命令。

[[email protected] ~]# vim /etc/profile
[[email protected] ~]# source /etc/profile

如果想要永久保存命令历史记录,那么你可以给文件加上隐藏权限,好比加上a权限,这样就只能增加不能删除,这时就算不设置最大数值它也不会被删除;

[[email protected] ~]# chattr +a ~/.bash_history

如果没有正常的关闭终端,或者重启终端,那之前登录时使用过的命令将不被记录到命令历史文件里。

!!:两个叹号为快速执行最后一条命令。
!n:n=(数字),该命令用于执行命令历史中的第几个命令,比如!400就是执行命令历史中第400条的命令
!echo:叹号后更一个命令你个,会在命令历史中重复执行一次距离历史最近的一次(也是该命令最后执行的一次)这里我们拿echo命令打比方。

命令补全和别名

tab键:敲以下补全命令,敲两下显示包含当前输入的字符的多个命令,比如ls敲两下显示出含有ls的多个命令,当我输入lsb按一下tab键会补全lsblk这个命令;

[[email protected] ~]# ls
ls lscgroup lsipc lsmcli lsns lsscsi lsusb.py
lsattr lscpu lslocks lsmd lsof lssubsys
lsblk lsinitrd lslogins lsmod lspci lsusb
[[email protected] ~]# lsblk

tab补全用法不仅可以补全命令,还可以补全文件路径,在centos6的时候系统是不支持补全命令参数的,需要安装了bash_completion包后,而Centos7是系统支持不全参数;

[[email protected] ~]# yum install -y bash_completion //安装完后需要重启以下系统后才会生效。

当你输入一条命令时你觉得命令很长使用起来降低了效率,那么你可以使用自定义该命令使用alias命令;

[[email protected] ~]# alias restartnet=‘systemctl restart network.service‘ //比我们将systemctl restart network.service这条命令重命名为restartnet

alias的自定义配置文件在etc下的profile.d里,还有一个地方在root用户的家目录下;

[[email protected] ~]# cd /etc/profile.d/
[[email protected] profile.d]# ls
256term.csh colorgrep.csh flatpak.sh less.sh vte.sh
256term.sh colorgrep.sh lang.csh PackageKit.sh which2.csh
abrt-console-notification.sh colorls.csh lang.sh vim.csh which2.sh
bash_completion.sh colorls.sh less.csh vim.sh
[[email protected] profile.d]# ls /root/.bashrc
/root/.bashrc

unalias:需要自定义的别名

[[email protected] ~]# unalias restartnet

通配符

[*****:]当你使用星号的时候来查看的时候,你会得到含有星号前或后的有关文件,比如;

[[email protected] 文档]# ls ****.txt
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 测试.txt
或者是
[[email protected] 文档]# ls 测试

测试1.txt 测试2.txt 测试3.txt 测试4.txt 测试.txt

[?:]使用问号查看任意以一个字符为名称的文件

[[email protected] 文档]# ls ?.txt
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt

[0-9]:使用方括号,可以列出一个范围内的文件,比如1-3;

[[email protected] 文档]# ls [1-3].txt
1.txt 2.txt 3.txt

{1,2}:使用花括号和方括号的用法相似,只是操作略有不同他是使用“,”来区分开的;

[[email protected] 文档]# ls {1,2}.txt
1.txt 2.txt

输入输出重定
[>:]大于号,表示输出将前者显示的内容输出写入到后面的文件中去(注意写入到后者的文件中原文件内容将被替换);

[[email protected] 文档]# cat 1.txt
hello world
[[email protected] 文档]# cat 1.txt >2.txt
[[email protected] 文档]# cat 2.txt
hello world

[>>:]两个大于号,表示追加,即将前者显示的内容追加到后者文件中去且不会替换掉原文件的内容;

[[email protected] 文档]# cat 1.txt >>2.txt
[[email protected] 文档]# cat 2.txt
hello world
hello world

[2>:]大于号前面加个2表示错误输出,即将前者执行的错误结果输出到后者文件中去;

[[email protected] 文档]# car 1.txt
bash: car: 未找到命令...
相似命令是: ‘sar‘
[[email protected] 文档]# car 1.txt 2>3.txt
[[email protected] 文档]# cat 3.txt
bash: car: 未找到命令...
相似命令是: ‘sar‘

[2>>:]表示追加输出,即将前者执行的错误结果追加输出到后者文件中去;

[[email protected] 文档]# car 4.txt 2>>3.txt
[[email protected] 文档]# cat 3.txt
bash: car: 未找到命令...
相似命令是: ‘sar‘
bash: car: 未找到命令...
相似命令是: ‘sar‘

[&>:]结合了正确和错误输出的结果,写入到后者文件中

[[email protected] 文档]# cat 1.txt 8.txt &>5.txt
[[email protected] 文档]# cat 5.txt
hello world
cat: 8.txt: 没有那个文件或目录

[>+2>:]可以同时将一条命令的执行结果正确和错误输出写入不同的文件当中;

[[email protected] 文档]# cat 1.txt 8.txt >2.txt 2>3.txt
[[email protected] 文档]# cat 2.txt
hello world
[[email protected] 文档]# cat 3.txt
cat: 8.txt: 没有那个文件或目录

[<:]将后边的文件输出到前面的命令中;

[[email protected] 文档]# wc -l <5.txt
2

原文地址:http://blog.51cto.com/13529231/2059640

时间: 2024-11-05 12:32:08

shell介绍/命令历史/命令补全/通配符/输出输入重定向的相关文章

26期20180628 shell 命令操作 通配符 输出输入重定向

6月28日任务 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 shell介绍 Shell脚本只是一个表现,所谓的shell是一个命令解释器,用户和机器的一个交互 Shell我们主要使用的是bash shell 另外还有zsh ksh等 yum list |grep zsh yum list |grep ksh history查看历史命令 -c 是清空内存的命令历史 其实所有的历史命令都存在一个文件里 /root/.bash_histro

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

shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具.实际上,在shell和计算机硬件之间还有一层东西--系统内核. 用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作. Redhat.Centos 默认安装的shell版本是bash,它是sh的增强版. 历史命令 我们执行过的命令Linux都会记录,预设可以记录1000条历史命令.这些命令保存在用户家目录的.bash_h

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 # Linux shell 基础 # 8.1 shell 介绍 - 什么是shell 1. shell 是一个命令解释器,提供用户和机器之间的交互 2. 支持特定语法,比如逻辑判断.循环 3. 每个用户都可以有自己特定的shell 4. CentOS7 默认shell 为bash (Bourne Agin Shell) 5. 还有zsh.ksh等 ``` [[email protected]

8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向

8.1 shell介绍 1. shell是一个命令解释器,提供用户和机器之前的交换 2. 每个用户都可以有自己特定的shell 3. CentOS7默认shell是bash(Bourne Agin Shell); shell还有zsh.ksh等 zsh.ksh这两种shell命令没有安装, 可以用yum list搜索下这两个命令的安装包: [[email protected] ~]# yum list |grep zsh [[email protected] ~]# yum list |grep

五周第三次课(1月10日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

五周第三次课(1月10日)8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 history命令: 用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件. 该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令.例如,要执行第2个历史命令,则输入!2. 历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取.在内存中,历史命令仅能够存储1000条历史命

五周第三次课 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.

8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 8.1 shell介绍 shell是一个命令解释器,提供用户和机器之间的交互支持特定语法,比如逻辑判断.循环(if for whell)每个用户都可以有自己特定的shellCentOS7默认shell为bash(Bourne Agin Shell)还有zsh.ksh等 yum list |grep zsh 搜索yum 中是否有zsh # yum list |grep ksh 8.2 命令历史 she

Centos命令参数自动补全

最小化安装centos后发现git docker等命令不能自动补全参数,而在Desktop安装环境下是可以自动补全的. 要解决这个问题需要安装一个小软件:bash-completion sudo yum install bash-completion

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

8.1 shell介绍 shell 是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell 为bash(Bourne Agin Shell) 还有zsh.ksh等 yum zsh和ksh [[email protected] ~]# yum list |grep zsh zsh.x86_64 5.0.2-25.el7_3.1 updates zsh-html.x86_64 5.0.2-25.el7_3.1

shell介绍 命令历史 命令补全和别名 输入输出重定向

shell介绍 shell是一个命令解释器,提供用户与机器之间的交互例如我们远程登录的工具,它其实就是一个shell centos默认的shell是bash(Bourne Agin Shell)· 命令历史 history命令命令历史存在用户家目录下的.bash_history,如root用户就是/root/.bash_history·history可以查看命令历史,.bash_history文件了里最多可以存1000条,它是由环境变量HISTSIZE决定的,不过history有时候也会查看到超