2018.4.20 五周第三次课

shell介绍

shell脚本在日常的Linux系统管理中是必不可少的;
shell是系统跟计算机硬件交互时使用的中间介质。
shell是一个命令解释器,提供用户和机器之间的交互;
支持特定语法,比如逻辑判断、循环;
每个用户都可以由自己特定的shell;
centOS7默认shell为bash(Bourne Agin shell)
还有zhs、ksh等。

shell记录命令历史,默认保存至 .bash_history 文件中

概念:我们执行过的命令Linux都会记录,预设可以记录1000条命令历史,
这些命令保存在用户的家目录 .bash_history文件中。
# 只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至 .bash_history
  • 查看预设命令条数显示

    [[email protected] apache2]# echo $HISTSIZE
    1000 #默认1000条

  • 清空当前命令历史 history -c

    [[email protected] apache2]# history -c
    #不会删除存命令里面的东西

  • 预设值的配置文件,

    [[email protected] apache2]# vi /etc/profile
    46 HISTSIZE=1000 #46行在这里更改。

  • 需要重启后才生效,要么source一下就可以生效。

    [[email protected] apache2]# echo $HISTSIZE
    1000
    [[email protected] apache2]# soure /etc/profile
    -bash: soure: 未找到命令
    [[email protected] apache2]# source /etc/profile
    [[email protected] apache2]# !echo
    echo $HISTSIZE
    5000 #修改成功

  • 怎么样修改命令历史显示时间,修改变量

    [[email protected] /]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    [[email protected] /]# echo $HISTTIMEFORMAT #echo查看环境变量
    %Y/%m/%d %H:%M:%S
    [[email protected] /]# history #查看当前命令历史记录
    1 2018/04/17 21:00:15 vi /etc/profile
    2 2018/04/17 21:01:24 echo $HISTSIZE
    3 2018/04/17 21:01:56 soure /etc/profile
    4 2018/04/17 21:02:11 source /etc/profile
    5 2018/04/17 21:02:17 echo $HISTSIZE
    6 2018/04/17 21:07:20 cd /etc/yum.repos.d
    7 2018/04/17 21:07:22 ls
    8 2018/04/17 21:07:36 vi dvd.repo
    9 2018/04/17 21:09:35 cd ..
    10 2018/04/17 21:10:47 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    11 2018/04/17 21:11:18 echo HISTTIMEFORMAT
    12 2018/04/17 21:11:24 echo $HISTTIMEFORMAT
    13 2018/04/17 21:11:51 history

  • 想要永久生效,编辑配置文件/etc/profile,添加环境变量进去

    找到46行,在46行下添加环境变量
    HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

  • 重启或者source一下。

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

  • 永久生效,chattr +a ~/.bash_history 添加权限只能追加,不能修改删除

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

  • !!:连续两个!表示执行上一条命令,示例如下:

  • !n:这里的n是数字,表示执行命令历史中的第n条命令,例如 !17 表示执行命令历史的第17个命令,示例如下:

  • !字符串:例如!w 表示执行命令历史中最近一次以 w 开头命令,示例如下:

命令补全和别名

按tab键可以帮我们补全一个指令、一个路径或者一个文件名。
连续按两次tab键,系统则会把所有的命令或者文件都列出来。
  • 安装一个yum包,bash-completion,安装完后,需要重启一下才管用 reboot。

    [[email protected] ~]# systemctl res
    rescue reset-failed restart
    [[email protected] ~]# systemctl restart

  • 别名alias,自定义别名

    [[email protected] ~]# alias restartnet=‘systemctl restart network.service‘
    [[email protected] ~]# alias #查看别名是否设置成功,restartnet

  • alias目前系统预设的别名在:.bashrc 下

    - 其他alias自定义别名,存放于 /etc/profile.d/下
    
    - 如何取消自定义别名:unalias restartnet

通配符

        在bash下,可以使用*来匹配零个或多个字符,用?匹配一个字符

.
示例,查找所有以.txt结尾的文件

[[email protected] do]# ls *.txt
1.txt 2.txt 3.txt

  • [] 的通配使用

    [[email protected] do]# ls [23].txt
    2.txt 3.txt

输入输出重定向

概念:输入重定向用于改变命令的输入,输出重定向用于改变命令的输入。
输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。
输入重定向的命令是 <
输出重定向的命令是 >
还有错误重定向命令2>以及之u家重定向命令 >>
  • 输出重定向> ,把前面的命令追加到后面的文件里去,原内容删除,格式如下:

    [[email protected] do]# cat 1.txt
    [[email protected] do]# echo "123123" >1.txt
    [[email protected] do]# cat 1.txt
    123123
    [[email protected] do]# echo "123" >1.txt
    [[email protected] do]# cat 1.txt
    123

  • 追加文字 >>,把前面的命令 追加到后面的文件去。

    [[email protected] do]# echo "123" >>1.txt
    [[email protected] do]# cat 1.txt
    123
    123

  • 假如说运行一个错误的命令,如果报错的话 指向到一个文件里。 2>

    [[email protected] do]# lsaaaa 2> a.txt #在这里,如果没有报错的话,不会保存进去。
    [[email protected] do]# cat a.txt
    -bash: lsaaaa: 未找到命令
    [[email protected] do]# ls 2> a.txt
    1.txt 2.txt 3.txt a.txt

  • 2>追加重定向到某个文件里。

    [[email protected] do]# lsaaaa 2>> a.txt
    [[email protected] do]# cat a.txt
    -bash: lssad: 未找到命令
    -bash: lsaaaa: 未找到命令

  • 输入,左边必须是命令 ,不可以文件到文件 <
    [[email protected] do]# wc -l < 1.txt #正确用法
    2
    [[email protected] do]# 2.txt < 1.txt #错误用法
    -bash: 2.txt: 未找到命令

原文地址:http://blog.51cto.com/13646023/2104616

时间: 2024-08-28 10:34:59

2018.4.20 五周第三次课的相关文章

五周第三次课(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条历史命

linux五周第三次课(3月7日)笔记

五周第三次课(3月7日)8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 搜索看一下有没有这两个shell,不安装. 8.2 命令历史 用过的命令,在/root/.bash_history存着 用cat命令查看一下/root/.bash_history 可以用命令history查看一下之前使用过的命令 history -c 修改了/etc/profile 配置文件,运行source命令,使其生效. 指定什么时候运行. 变量变了. 历史命令. 想要生

Linux20180422五周第三次课(4月20日

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_histroy这个文件里 默认的存放

五周第三次课(3月7日)

8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 8.1 shell介绍 Linux Shell基础 介绍shell的特性,用法. shell是一个命令解释器,提供用户和机器之间的交互. 支持特定语法,比如逻辑判断.循环. 每个用户都可以有自己特定的shell CentOS7默认shell为bash(Bourne Agin Shell) Bourne是一个用户,他开发的shell是sh. 后来CentOS7默认使用的shell是bash,基于sh优

五周第三次课(1月10日)

8.1 shell介绍 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核. 8.2 命令历史 用户的命令历史配置文件 最大保存1000条,由系统内置环境变量配置,在/etc/profile中定义 修改之后要执行source /etc/profile history 查看命令历史 history -c 清空当前内存中保存的命令历史,并不清除配置文件 只有退出终端时

Linux学习笔记第五周第三次课(3月7日)

8.1 shell介绍 每个用户都有自己的shell: Bourne人名,为了纪念他: 搜索zsh命令,#yum list | grep zsh 搜索ksh命令,#yum list | grep ksh 逻辑判断if,for等等: 8.2 命令历史 输入过的命令,会记录下来,上下键进行查看: 历史命令存在.bash_history里面,最大1000条: 查看变量HISTSIZE条数,#echo $HISTSIZE 查看目前的历史命令内容,#history: 设置记录历史命令和所运行时间,#HIS

五周第三次课

命令历史 我们可以按向上的查看我们瞧过的历史命令 在 ls /root/.bash_hisrory里面存着 默认可以存1000条 如果觉得不够 可以 vi/etc/profile中修改(想要指令生效可以退出终端或者)rource /etc/profile(!!就是上一条命令!加数字可以指定号数的名字再执行一次 .!echo可以找离echo最近的echo命令)永久保存 chattr +a~/.bash_history命令补全和别名 tab 命令补全敲一下 他就显示这个命令几个有几个这个命令开头的

2018.4.21 五周第四次课(shell特殊符号,cut截取等命令)

shell特殊符号_cut命令 概念:cut命令用来截取某一个字段 格式:cut -d '分割字符' [-cf] n,这里的n是数字,该命令选项有如下几个: - d 后面跟分割字符,分割字符要用单引号括起来 - c 后面接的是第几个字符 - f 后面接的是第几个区块 cut命令用法如下 [[email protected] do]# cat /etc/passwd |head -2root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/no

五周第三次课 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