• Linux 认识 BASH 这个 Shell


    在 Bash 中的每个指令都被记录到 ~/.bash_history 文件中了,包括密码等关键信息

    要注意的是,它里面只包含了上一次登录前所执行过的指令,本次开机后执行的指令暂存在内存中,注销系统后才会记录到 ~/.bash_history 中

    history 这个命令可以用来查询历史下达的指令, history -c;history -w  组合起来可以清除历史指令,防止指令泄露

    !! 就是执行上一个指令

    !number 执行第几笔指令的意思

    !command 由最近的指令向前搜寻“指令串开头为 command" 的那个指令,并执行

    alias  命令别名设定功能

    type  可用于区分命令是内建在 bash 中还是外部指令

    \ 可以让命令换行接着输入

    echo $变量 可以输出变量的值,也可以加上 { } ,echo ${变量}  

    如果需要给变量赋值,直接 变量=值 即可,不需要加 $ 也不需要加 ", = 两边不能有空格

    未赋值的变量,输出的内容是空的

    变量不能是数字开头,变量必须由字母与数字组成

    变量的内容可以用 “” 或 ‘’ 包括起来,但 双引号内的特殊字符,还是会转义,单引号的会原样输出

      比如 "lang is $LANG" 输出内容是 lang is C.UTF-8

    在不加“” 时,\ 后面可以加 回车、$、\、空格、' 等,变成一般字符

      $(指令) 或反单引号 `指令` 可以包含指令 并被执行

    ${变量} 或 "$变量" 可用于自增 PATH="$PATH":/home/bin  、PATH=${PATH}:/home/bin

      若该变量需要在其他子程序执行,则需要以 export 变量 来使变量变成环境变量

    通常大写字符为系统默认变量,自行设定变量建议使用小写字符,便于区分

      取消变量的方法为 unset 变量

    使用 env 可以查看环境变量( environment 环境的简写 )

     each $RANDOM 会随机输出 0 ~ 32767 之间的数值

    set 会输出环境变量、以及其他在 bash 内的变量,信息很多

    echo $PS1 会输出命令提示符的设定

     echo $$  输出 shell 的PID

    echo $?  输出上一指令的错误代码,0 表示无错误

    OSTYPE \ HOSTTYPE \ MACHTYPE 主机硬件与核心的等级

    开启多个 bash 时,最后一个 bash 才会执行,之前的 bash 进入 sleep 状态。

    当运行中的 bash 退出后,前一个 bash 会被唤醒

    子程序仅会继承父程序的环境变量,子程序不会继承父程序的自定义变量

    使用 export 变量  就可以把变量加入 环境变量

    locale -a  命令可以查看当前系统支持多少语系

    上面的命令可以临时将系统语系切换成英文,方便网页显示默认英文

     环境变量 可以理解为 全局变量  自定义变量 可以理解为 局部变量

    read 变量 可以开始一行接收输入

    read -p 提示文字  可以开始一行文字并接收输入

    read -t 30 如果30秒内无动作,该指令就自动略过

    declare / typeset 如果没有参数,和 set 一样,会输出所有变量名称与内容

     

     ulimit 磁盘配额,想要复原 ulimit 的设定最简单的方法就是注销再登录

     变量的修改删除说明:

     

     如果想要了解指令搜寻的顺序,可以透过 type -a ls 来查询:

    alias echo='echo -n'

    type -a echo

    以上命令会输出 echo  的执行顺序

    source 读入环境配置文件的指令, . (小数点) 也有一样的作用

    还有一些组合键命令如下:

     通配符与特殊符号

    数据流重导入,在输出导向时  > 会自动创建文件,如果文件存在则覆盖, >> 则不会覆盖原文件,而是累加到最后面。

     

    将正确输出与错误输出到同一文件中时,可以使用 2>&1  或者 &> list 命令

    /dev/null  垃圾桶黑洞,输出到这个位置的信息会被”吃掉“


     命令执行的判断依据:   ;,&& ,||

    cmd1 ; cmd2  依次执行完 cmd1 然后 cmd2

    $? 指令回传值 与  && 或 ||

     管线命令 | 仅能处理经由前面一个指令传来的正确信息,也就是 standard output 的信息,对于 standard error 并没有直接处理的能力。

    echo ${PATH}

    echo ${PATH} | cut -d ':' -f 5 取第5组路径

    echo ${PATH} | cut -d ':' -f  3,5 取第3、5组路径

    或者截断字符

    export

    export | cut -c 12-  取第12个字符开始的内容

    或者取某一分组

    last

    last | cut -d ' ' -f 1 取第一列信息

    以上是 cut 的用法,grep 是用来分析一行讯息:

    sort 排序

    cat /etc/passwd | sort 将输出按首字母排序

    cat /etc/passwd | sort -t ':' -k 3 按以 :分隔的第三列排序

    cat /etc/passwd |sort -t ':' -k 3 -n 按数字排序

    last | cut -d ' ' -f1 | sort 将输出的数据仅取第一列,并加以排序

    uniq 筛选重复

    last | cut -d ' ' -f1 | sort | uniq 将结果进行去重处理

    last | cut -d ' ' -f1 | sort | uniq -c 将结果去重处理,并显示重复次数

    wc 计算输出信息的 行数、字数、字符数

    cat /etc/man_db.conf | wc

     tee 双向重导向

     last | tee last.list | cut -d ' ' -f1  将内容输出到 last.list 和屏幕

    ls -l /home | tee ~/homefile | more 将内容输出到文件和屏幕

    ls -l /home | tee -a ~/homefile | more 将内容输出到文件和屏幕,文件如果已存在,累加到最后

    字符转换命令: tr col join paste

    last | tr '[a-z]' '[A-Z]'  将输出的信息里 a-z 转换成大写的 A-Z

    cat /etc/passwd | tr -d ':'  加了 -d 参数,表示将输出的信息里 ':' 字符去掉

    cat -A /etc/man_db.conf  加了 -A 参数,显示出所有的特殊按键

    cat /etc/man_db.conf | col -x | cat -A | more 使用 col -x  将结果集中的 【tab】替换成空格键

    join -t ':' /etc/passwd /etc/shadown | head -n 3  按 : 分隔,合并 XX 和 XX 文件的前三行

    需要注意的是,在使用 join 之前,文件最好经过排序 sort 处理,否则比对可能被略过。

    paste 与 join 相比,它是用来将两行贴在一起,中间以 [tab] 隔开,不判断两个文件的数据相关性

    split 分割文件(分区命令)

    split -b 300k /etc/services services  将文件分成 300K 一个(实际的文件名将是 servicesaa servicesab servicesac ...)

    split -l 300 ....  将文件按 300行一个文件来分割

    如果要把它们再合并起来  cat services* >> servicesback 即可

  • 相关阅读:
    ES6对象的扩展
    ES6函数的扩展
    ES6新增变量
    ES6框架的搭建
    自适应布局 左右结构、上下结构
    iframe 子页面改变父页面样式
    检测终端类型
    $.grep()
    点击元素内部不隐藏,点击元素外部元素隐藏
    angular表单验证
  • 原文地址:https://www.cnblogs.com/z5337/p/16492581.html
Copyright © 2020-2023  润新知