shell基础知识

shell基础知识

1.shell简介

  • shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。在shell和计算机硬件还有一层东西那就是–系统内核,系统内核在系统中就像大脑至于人类一样的作用,shell则更像是人类的五官。
  • 用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作
  • centOS默认安装的shell版本是bash
  • 记录命令历史:
    • 我们执行过的命令Linux都会记录,预设是1000条历史命令,这些命令保存在用户家目录的.bash_history文件中
    • !符号是与命令历史有关的一个特殊字符。
    • !!:连续两个!表示执行上一条指令
    • !n:这里的n是数字,表示执行命令历史中的第n条指令
    • ![字符串]:表示执行以字符串内容开头的命令
  • 别名:
    • alias是bash所特有的功能之一。
      可以通过alias将一个常用并且很长的指令去另外一个比较简单的指令
      若不想用了,可以通过unalias命令解除别名功能
    • 命令格式:alias [命令别名] = [‘具体的命令’](注意有引号)
  • 通配符

    • 在bash下,可以使用*来匹配零个或多个字符,用?匹配一个字符
  • 输入/输出重定向

    • 输入重定向用于改变命令的输入,输出重定向用于改变命令的输出
    • 输入重定向的命令是 < ,输出重定向的命令是 > ,追加重定向的命令是 >>
    • 例子:echo“123” > 1.txt
  • 管道符

    • 管道符 | ,它用于将前一个指令的输出作为后一个指令的输入。
    • 例:cat /etc/passwd|wc -l
  • 作业控制

    • 当运行进程时,你可以使它暂停(ctrl+z),然后使用fg命令恢复,或是利用bg命令使它到后台运行,或者是按(ctrl+c)来使它终止
    • 在进行作业控制时,可以通过命令jobs来查看被暂停的或者是在后台运行的任务
  • 变量

    • 环境变量PATH是shell预设的一个值。通常shell预设的变量都是大写的
      PATH代替了所有常用命令的绝对路径的设定。
    • 定义:变量就是使用 一个较简单的字符串来代替某些具有特殊意义的设定以及数据。
  • 命令env

    • 使用命令env可列出系统预设的全部系统变量
    • 常见的环境变量:
      • HOSTNAME:表示主机的名称
      • SHELL:表示当前用户的shell类型
      • HISTSIZE:表示历史记录数
      • MAIL:表示当前用户的邮件存放目录
      • PATH:该变量决定了shell将到哪些目录中寻找命令或程序
      • PWD:表示当前目录
      • LANG:这是与语言相关的环境变量,多语言环境可以修改此环境变量
      • HOME:表示当前用户的家目录
      • LOGNAME:表示当前用户的登录名。
  • 命令set

    • set命令与env命令类似,也可以输出环境变量,同时也能显示用户自定义的变量
      在这里插入图片描述
    • 自定义变量只能在当前的shell中生效,使用bash在打开一个shell后,之前预设的变量会不存在。如果想让设置的环境变量一直生效?
      • 一是允许系统内所有用户登录后都能使用该变量。具体的操作方法是在/etc/profile文件的最后一行加入export [预设自定义变量],然后允许source /etc/profile就可以生效了
      • 二是仅允许当前用户使用该变量。具体的操作方法是在主用户目录下的.bashrc文件的最后一行加入export [预设自定义变量],然后允许source 。bashrc就可以生效了
    • 若想取消某个变量只要输入 unset 变量名 即可

系统环境变量与个人环境变量的配置文件

  • /etc/profile:这个文件预设了几个重要的变量,例如PATH,USER,LOGNAME,MAIL等
  • /etc/bashrc:这个文件主要预设umask以及PS1。这个PS1是我们在输入命令时前面的那串字符。例:[root@localhost ~] #。
    在这里插入图片描述
    \u是用户,\h是主机名,\w是指当前目录,$是指字符#
  • 隐藏文件:
    • .bash_profile:该文件定义了用户的个人化路径与环境变量的文件名称
    • .bashrc:该文件包含专属自己的shell和bash信息
    • .bash_history:该文件用于记录命令历史
    • .bash_logout:当退出shell时,会执行该文件。可以在该文件中存放一些清理的工作

Linux shell中的特殊符号

  • *:代表零个或多个任意字符
  • ?:代表一个任意的字符
  • #:注释符号
  • \:脱义字符,这个字符会将后面的特殊字符还原为普通字符
  • |:管道符:将前面命令的输出作为后面命令的输入
  • 命令cut:

    • 作用:用来截取某一个字段
    • 命令格式:cut -d ‘分割字符’ [-cf] n(数字)
    • 参数选项:
      • -d:后面跟分隔字符,要用单引号括起来
      • -c:后面接的是第几个字符
      • -f:后面接的是第几个区域(列)
        在这里插入图片描述
  • 命令sort:

    • 作用:用作排序。
    • 命令格式:sort [-t 分隔符] [-kn1,n2] [-nru]
    • 参数选项:
      • -t:后面跟分隔字符。
      • -n:表示使用纯数字排序
      • -r:表示反向排序
      • -u:表示去重复
      • -kn1,n2:表示由n1区间排序到n2区间
  • 命令wc:

    • 作用:wc命令用于统计文档的行数,字符数或词数
    • 参数选项:
      • -l:统计行数
      • -m:统计字符数
      • -w:统计词数
  • 命令uniq:

    • 作用:用来删除重复的行。
    • 参数选项:
      • -c:用来统计重复的行数,并把行数写在前面
    • 在使用uniq前,必须先给文件排序,否则不管用
  • 命令tee:

    • tee命令后面跟文件名,作用类似于重定向 >
  • 命令tr:

    • 作用:用于替换字符,常用来处理文档中的特殊符号。
    • 命令格式:tr [被替换字符] [替换字符]
    • 参数选项:
      • -d:表示删除某个字符,后面跟要删除的字符
      • -s:表示删除重复的字符
  • 命令split:

    • 作用:用来切割文档
    • 参数选项:
      • -b:表示依据大小来分割文档,单位为byte。
        split -b 切割大小 切割文件 (目标文件名)
      • -l:表示依据行数来分割文档
        split -l 行数 切割文件 (目标文件名)
  • 特殊符号

    • 符号$可作为变量前面的标识符
    • 符号;作为命令与命令之间的分隔符,可以在一行运行多个命令
      command1 ;command2,不管command1是否成功都执行command2
    • 符号~表示用户的家目录
    • 符号&:若想把一条命令放到后台执行,则需要加上符号&
    • 符号[]:中括号内为字符组合,代表字符组合中的任意一个
    • 符号&&:command1 && command2,不管command1成功后执行command2,否则不执行
    • 符号||:command1 && command2,不管command1成功后不执行command2,否则执行command2

以上资料均处于《跟阿铭学linux》,若需转载请附上出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值