Linux shell基础知识

来源:互联网 发布:臣妾做不到网络歌曲 编辑:程序博客网 时间:2024/05/01 08:29

8.1 shell介绍
1.shell其实并不是shell脚本,shell脚本仅仅是shell的一种表现。shell是一个命令解释器,提供用户和机器之间的交互。

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

3.每个用户都可以有自己特定的shell。普通用户默认的shell是/bin/bash

4.centos7默认shell为bash

5.还有zsh、ksh等。用起来与bash挺像的,有一些细节上的差异
这里写图片描述


8.2 命令历史

  1. history命令
    敲过的命令可以使用方向键的上下键来查看。Z这是因为有一个保存的文件 在用户的家目录下.bash_history 例如root用户
    这里写图片描述

2.history命令可以查看之前敲过的命令
这里写图片描述

3.这里可以看到累计敲过218条,最大值为1000 系统内置的环境变量
这里写图片描述

4.当有时敲命令出现1000以上时,因为还未写入到这个文件里去,运行的命令暂时存在云内存中

5.history -c 清空当前内存的历史命令 ,但不能删除配置文件。
这里写图片描述

6.敲过的命令只有退出终端后才会被写入到 .bash_history里面

7.变量HISTSIZE是在/etc/progile中去修改
这里写图片描述
这里是1000 可以自己设置 但是改完后history命令历史最大值生效 需要重新进入终端 或是执行source /etc/profile

这里写图片描述

8.history命令里面只能看到ID号和对应的命令是什么。要想看到某命令是什么时候被执行的,需要变量重新赋值
HISTTIMEFORMAT(指定该变量的格式)=”%Y/%m/%d %H:%M:%S ”
这里写图片描述
该环境变量只会在当前终端下生效 在另一终端上就没有,系统默认是不存在的 需要自定义
这里写图片描述

永久生效需要编辑vim /etc/profile
将HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S”
放在里面
这里写图片描述

执行source /etc/profilesource就能生效
%Y年
/%m月
/%d日
%H小时
:%M分钟
:%S秒

9.命令历史永久保存,只能追加,不能删除,增加隐藏权限
chattr +a ~/.bash_history

10.敲过的命令只有在合法退出后才会完整的写入到.bash_history中,否则保存的命令不完全。

  • . !!命令会执行命令历史中最后一条命令
  • .!n(n表示数字)
    可以指定执行命令历史中哪一个命令
    这里写图片描述

  • !echo它会在命令历史中从最后往前查找以echo开头的命令 并执行 。


8.3 命令补全和别名

  • tab键,可以补全命令或者文件路径。
    当命令或者文件路径开头一样 并存在多个命令或者文件路径时,敲2次就可以查看到以这个开头或者文件路径全部的。当命令或者文件路径是唯一时,敲一下就补全。在centos6中不支持命令的参数补全,在centos7中就支持命令的参数补全。但是需要安装包yum install -y bash-completion
    重启才会生效。再敲命令的时候就可以补全参数了。
  • 当经常使用的名字比较长,虽然有tab键补全,但是效率还是不太理想 那就可以考虑将这个命令做别名
    例:这里写图片描述

    alias直接执行可以把系统中所有的alias列出来。包括自定义的。

alias
存在于用户家目录.bashrc下配置了3条alias这里写图片描述

其他的存在于/etc/profile.d/下

-取消别名unalias restartnet (自定义名字)
这里写图片描述


8.4 通配符

  1. *号表示通配 可以放在文件的前面或者2边 例 这里写图片描述

2.?号表示匹配一个任意字符
这里写图片描述

3.[ ]里面的字符表示指定的范围
这里写图片描述

4.{ }也是指定范围用,号隔开


8.5 输入输出重定向
1. cat 1.txt > 2.txt 这里的>就是把前面内容的输出直接输入到后面的文件里去 ,后面的文件内容删除掉重新将前面的内容写到后面文件去
2. cat 2.txt >> 2.txt 这里的>> 表示追加 不会删除后面文件里的内容
3. ls aaa.txt 2>err 这里2>会把这个命令产生的错误信息指定输入到某文件里去
这里写图片描述
4. >表示正确的输出 2>表示错误的输出
5. &>表示正确错误的输出信息定向到一个文件中去这里写图片描述
也支持追加
6.将正确和错误的输出区分开来
这里写图片描述
7.wc -l <1.txt (查看1.txt文本文档的行数)
不能文件到文件 左边必须是命令

原创粉丝点击