码迷,mamicode.com
首页 > 系统相关 > 详细

Day9-1 shell基础

时间:2018-01-30 19:58:58      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:分隔符   补全   tr 替换   job   删除   profile   proc   ebe   存在   

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

  1. 命令历史
    按向上的方向键一个个出现之前命令历史
    history 查看之前的命令
    技术分享图片
    命令历史存在文件.bash_history
    技术分享图片
    文件最大行数由变量HISTSIZE决定,默认1000
    技术分享图片
    变量HISTSIZE可在/etc/profile中修改
    HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    设置时间显示,非永久有效,若要一直有效,需要在/etc/profile中增加
    技术分享图片
    chattr +a ~/.bash_history 永久保存命令(chattr +a只能增加不能删除)
    !! 上一条命令
    ![char] 最近char开头的命令
    !n 前第n条命令

  2. 命令补全
    当命令开头打出一部分,如‘mk‘,tab键补全命令和文件目录名,若结果不唯一,需要连续按两下,会列出所有以mk开头的命令

  3. 通配符

    • 任意数量任意字符
      ? 1个任意字符
      [0-9] 任意一个数字 [2345] 2345任一
      [a-z] a-z任意一个
      [A-Z] A-Z任意一个
      [0-9a-zA-Z]任一数字或字母
      {1,3,t,y,H} 枚举式选一个,中间用逗号隔开
  4. 输入输出重定向
    [contents or cmd] > [file] 将左边内容(正确)重定向到右边文件,覆盖文件原有内容
    [contents or cmd] >> [file] 将左边内容(正确)重定向到右边文件,不覆盖文件原有内容,追加
    [contents or cmd] 2> [file] 将左边内容(错误)重定向到右边文件,覆盖文件原有内容
    [contents or cmd] 2>> [file] 将左边内容(错误)重定向到右边文件,不覆盖文件原有内容,追加
    [contents or cmd] &> [file] 将左边所有内容重定向到右边文件,覆盖文件原有内容
    [contents or cmd] &>> [file] 将左边所有内容重定向到右边文件,不覆盖文件原有内容,追加
    [contents or cmd] > [file1] 2>[file2] 正确和错误内容分别输出到不同文件

[cmd] < [file] 将文件内容输入到命令里(左边不能是文件)

  1. 管道符
    管道符: [cmd] | [cmd] 将左边命令结果输出到右边
    cut 截取字符
    -d ‘[xx]‘ 以xx为分隔符
    -f n,m 截取第n和m位
    -c 指定第几个字符
    技术分享图片
    sort 排序
    -n 以数字排序(其他符号识别为0)
    -r 逆序
    技术分享图片
    wc 统计字符
    -l 行数
    -m 字符数
    -w 词数(根据空格来分隔,不是真的认单词)
    技术分享图片
    uniq 去重(要先排序使相同行相邻才能去重)
    -c 统计重复次数
    技术分享图片
    tee 相当于>,但是要加上|管道符,以及会显示出来
    -a 追加
    技术分享图片
    tr 替换字符
    技术分享图片
    split 切割
    -b 大小(默认单位字节)
    -l 行数

  2. 作业控制
    ctrl + z 暂停任务
    fg n 回到(第n个)暂停命令
    jobs 查看停止或后台运行的任务
    bg 把任务放到后台运行(暂停后可以用)
    命令后加‘ &‘ 直接把命令放到后台运行

  3. 变量
    env 查看系统变量
    技术分享图片
    自定义变量,c未定义,因此无内容
    技术分享图片
    unset [变量名] 撤销变量定义
    变量命名:由数字、字母、下划线组成,首位不能是数字
    变量值中有特殊符号时,要用单引号括起来
    技术分享图片
    单引号、双引号和反引号的区别,在另一块看到的http://blog.csdn.net/iamlaosong/article/details/54728393

bash 进入子shell
技术分享图片
进入子shell后 exit退出此shell
一般定义变量不跨shell
export [变量名]=[变量值] 此定义可以用在当前shell的子shell

环境变量配置文件
/etc/profile 登录后加载
/etc/bashrc执行shell加载
用户目录下的是:
~/.bashrc
~/.bash_profile
~/.bash_history
~/.bash_logout 定义用户退出时要进行的操作
变量PS1,在/etc/profile中定义,表示命令前字符串格式
技术分享图片
W的大小写对应当前路径显示完整与否
技术分享图片

  1. 特殊符号
    $ 变量前缀
    ; 多条命令写在一行用分号分隔
    ~ 用户家目录
    & 放在命令后面,表示把命令放到后台
    [] 指定字符中的一个
    || 两条命令间,第一条命令执行失败,才执行后面命令
    && 两条命令间,第一条命令执行成功,才执行后面命令

Day9-1 shell基础

标签:分隔符   补全   tr 替换   job   删除   profile   proc   ebe   存在   

原文地址:http://blog.51cto.com/13582610/2066925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!