Linux shell基础知识

8.1 shell介绍

  • shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具(命令解释器)
  • 支持特定的语法,比如逻辑判断、循环
  • 每个用户都是自己的shell,在centos7中默认的shell为bash
    Linux shell基础知识_第1张图片

  • 系统中还有zsh与ksh,使用起来类似,但是 有些细节上的差异。


8.2 命令历史

  • 敲过的命令会保存在用户的家目录下.bash_history中,这样就能通过上下方向键来查看之前敲的命令。/root/bash_history //root用户
  • 使用history命令可以查看之前敲过的命令,系统默认最大记录数为1000条。执行echo $HISTSIZE来查看最大记录数。
    Linux shell基础知识_第2张图片有时候命令数超过1000时,现在的命令历史暂时存在云内存中,只有用户正常退出shell时,在当前shell中运行的命令才会保存到.bash_history文件中。

  • history -c 可以清空当前内存里面的命令历史清空,但不会清空.bash_history文件中的命令历史。

  • 变量HISTSIZE在/etc/profile中去修改。修改完成后重新进终端或是执行source /etc/profile 才会生效。
    Linux shell基础知识_第3张图片
  • 默认执行的命令是不能看到执行时间的,要想记录某条命令执行的时间可以将变量重新赋值即可
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

需要注意赋值的结果只在当前终端下生效。要想在下次登录时也生效,可以把上面这条命令写入到.bash_history中。
Linux shell基础知识_第4张图片

Linux shell基础知识_第5张图片

Linux shell基础知识_第6张图片

  • 命令历史永久保存,不想被人修改它。可以加上特殊权限,让它只能追加,不能删除。
chattr +a /root/.bash_history 
  • 与命令历史有关的特殊字符!
    (1)!!:连续2个!表示执行上一条命令
    Linux shell基础知识_第7张图片
    (2)!n :这里的n是数字,表示执行命令历史中的第n条命令。
    (3)!字符串(字符串≥1):例:!ls 表示执行命令历史中最近一次以ls开头的命令
    Linux shell基础知识_第8张图片

8.3 命令补全和别名

  • 按Tab键可以帮我们补全一个参数、一个路径或者一个文件名。连续按2次,则系统会把所有的命令或文件名都列出来。

  • 想在centos7中补全参数,需要安装bash-completion包,然后重启生效。
    Linux shell基础知识_第9张图片

  • alias是系统特有的功能之一,可以通过alias把一个经常使用且很长得命令取一个简单易记的新名字。
    Linux shell基础知识_第10张图片

  • 直接执行alias可以列出所有的alias,包括自定义的。这些alias存在于用户家目录下的.bashrc和/etc/profile.d/下
    Linux shell基础知识_第11张图片

  • 取消alias,可以使用unalias+定义的名字
    Linux shell基础知识_第12张图片


8.4 通配符

  • 在bash下
    (1)使用*来匹配零个或多个字符。
    (2)使用?来匹配一个字符。
    (3)[0-9] 表示指定范围,方括号里面的字符任选其一。
    Linux shell基础知识_第13张图片
    (4){ }花括号的作用与[ ]方括号类似。其中的字符用“,”分开

Linux shell基础知识_第14张图片


8.5 输入输出重定向

  • 输入重定向用于改变命令的输入,输出重定向用于改变命令的输出,后者更常用
  • 输出重定向>
cat 1.txt > 2.txt //查看到的1.txt文件内容重定向到2.txt

Linux shell基础知识_第15张图片

  • 追加重定向>>
cat 2.txt >> 3.txt //表示将2.txt的文件内容追加到3.txt 但不会删除3.txt原来的文件内容。

Linux shell基础知识_第16张图片

-错误重定向2>

ls x.txt 2>a.txt   //表示将ls命令的错误信息指定到a.txt中,而不会在屏幕上显示

Linux shell基础知识_第17张图片

  • 错误追加重定向2>>

  • 正确、错误重定向全部重定向一个文件中,并支持追加.。 >+2> 等于&>
    Linux shell基础知识_第18张图片

ls {1,2}.txt aaa.txt > 3.txt 2>a.txt //表示正确与错误的输出分别重定向
  • 输入重定向<
wc -l < 2.txt //输入的对象只能是命令,不能是文件。

你可能感兴趣的:(Linux shell基础知识)