精华内容
下载资源
问答
  • 我们直接输入 history 会显示我们输入所有的历史命令,每个用户都可以查看到自己输入的历史命令,都有保存自己历史命令的文件,这样就不会冲突,我们直接输入 history 查看的历史命令和查看.bash_history ...

    1.历史命令

    我们直接输入 history 会显示我们输入所有的历史命令,每个用户都可以查看到自己输入的历史命令,都有保存自己历史命令的文件,这样就不会冲突,我们直接输入 history  查看的历史命令和查看.bash_history 文件下命令是不一样的,这是因为.bash_history 文件保存的是我们上次正确退出后的所有命令,而用history 命令查看到的是上次退出后加上这次登陆后输入的命令,我们这次正确退出后输入的命令就会存入.bash_history 文件。

    我们执行  history -w 手动把这次登陆后输入的命令存入文件,文件和 history 命令就是一样的了。 history  -c清空 history  的历史命令,history -w 实时更新文件后,文件历史命令也全部清空了。





    n 是指 history 命令查看的历史命令,每条命令都有一个编号,就是指这个编号




    展开全文
  • 一般情况下,bash对命令是区分大小写的,当按“上键”时,能够显示前一个历史命令。但是,这还 不太方便,下面的这个配置,可以让bash忽略大小写,而且,能根据输入的命令头按“上“键显示该命令的历史,比如:输入 ...

    一般情况下,bash对命令是区分大小写的,当按“上键”时,能够显示前一个历史命令。但是,这还 不太方便,下面的这个配置,可以让bash忽略大小写,而且,能根据输入的命令头按“上“键显示该命令的历史,比如:输入 vim ,然后按”上“键,此时,可以显示上一次运行vim时的那条命令,非常的方便!

    下面是该配置的内容,放在用户的home目录下面:

    shibo@iZ94wlxkhx8Z:~$ cat .inputrc 
    set completion-ignore-case on
    
    #For single press Tab results for when a partial or no completion is possible
    set show-all-if-ambiguous on
    
    #For results when no completion is possible
    set show-all-if-unmodified on
    
    #History completion bound to arrow keys (down, up)
    "\e[A": history-search-backward
    "\e[B": history-search-forward
    
    #Bash allows to quickly move between words with Ctrl+Left and Ctrl+Right
    "\e[1;5C": forward-word
    "\e[1;5D": backward-word
    "\e[5C": forward-word
    "\e[5D": backward-word
    "\e\e[C": forward-word
    "\e\e[D": backward-word"




    展开全文
  • Linuxbash介绍

    万次阅读 多人点赞 2017-01-21 18:22:36
    Shell的介绍shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。...- Bourne Again SHell(bash) - C SHell(csh) - KornSHell(ksh) - zsh各个shell的功能都差不太多,在某些语法的下达下面有些区别,Li

    Shell的介绍

    shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。用来区别与核,相当于是一个命令解析器,Shell有很多中,这里列出其中几种
    - Bourne SHell(sh)
    - Bourne Again SHell(bash)
    - C SHell(csh)
    - KornSHell(ksh)
    - zsh

    各个shell的功能都差不太多,在某些语法的下达下面有些区别,Linux预设就是bash。这里主要介绍bash

    bash

    bash命令是sh命令的超集大多数sh脚本都可以在bash下运行,bash主要有如下这些功能

    bash功能

    • 记录历史命令:bash可以记录曾经的命令,保持在~/.bash_history文件中,只保存上次注销登录之后的命令
    • tab键自动补全:使用tab见可以自动不全命令或者目录i
    • alias命令别名:可以使用alias ll='ls -al'来设置命令的别名
    • 工作控制:可以将某些任务放在后台去运行,这里不多种介绍
    • 程序脚本:可以执行shell脚本文件
    • 通配符:在查找相关文件或者执行相关命令时,可以使用通配符*
    • 内建命令type:可以使用type 命令来查看某个命令是否为内建在bash当中的命令「

    bash变量

    bash中变量有两种,分别是环境变量和自定义变量,可以理解为全局变量和局部变量,在理解他们的区别前,需要知道副程序和子程序,举个例子,当前的bash我们称之为父程序,而在这个bash下执行的任何程序,都称之为子程序。那全局变量和局部变量的区别就是,全局变量在子程序中仍然有效,局部变量只在当前程序中生效。(注意,一旦退出父程序这个bash的话,无论是全局变量还是局部变量都失效了,再次打开bash时,该变量是不存在的)

    变量范围

    变量的设定

    变量的设定有几个规则,这里列举如下:
    - 设定变量通过=来链接,例如name=sujinzhou,两边不能有空格,如果有空格的话,需要用引号
    - 变量名只能是英文名和数字,只能是英文开头
    - 如果变量内容被引号扩起来的话,双引号和单引号是有区别的
    - 双引号里面的特殊字符,会保持原有的特性。
    - 单引号里面的特殊字符,只会是字符
    - 使用\将特殊字符转换为一般字符
    - 使用“这个符号扩起来的命令会先计算这个命令里面的内容,这个指令等价于$()
    - 给原有的变量添加值时,使用,"变量”再加具体的内容

    变量类型

    bash中变量类型有两种,一种是普通的字符串,一种是整数;设置变量的类型使用的是declare命令,delcare的命令格式如下

    declare -[axir] variable

    参数的意思:
    - -a:将variable定义为数组
    - -i:将后面的变量设置为整数类型
    - -x:与export一样,将后面的变量设置为环境变量
    - -r:将后面的变量设置为只读变量
    如果declare命令没有接任何变量的话,则表示显示所哟的

    定义数组

    var[index]=content

    变量的删除

    删除变量使用如下命令
    - unset 变量名

    变量的查看

    查看单个命令的内容,可以使用echo命令,使用echo $变量名就可以查看变量内容,另外如果要查看所有变量有3个命令,分别是如下几个命令,每个命令又有区别。
    - echo $变量名:用于显示制定变量
    - env:用来查询环境变量,
    - set:显示shell变量,包括私有变量与用户变量,不同的shell有不同的私有变量,在shell中设置变量之后,可以通过set查到
    - export:显示当前导出成用户变量的shell变量,也是用来查询环境变量的,shell的私有变量不会出现

    Bash shell的操作环境

    在shell中设置的变量,无论是环境变量还是自定义变量,在bash中注销登录之后,就失效了。下次登录时,是没有这些变量的,如果想要这些变量永久生效,是需要下如配置文件的,bash在启动时,会读取这个配置文件,来设置当前shell的各种变量。shell分为两种,分别是login shell和nonlogin shell,这里先说login shell;login shell是需要输入用户名和密码的,一般情况下,login shell在登录之后,会去读取两个文件,来设置当前shell的环境变量,分别是
    1. /etc/profile:这个配置文件是默认配置文件,是系统整体的设置
    2. ~/.bash_profile或者~/.bash_login或者~/.profile:这个是用户的自定义设置文件

    shell在读取/etc/profile中的文件之后,会去读取用户自定义的设置文件,按照顺序读取上文中所说的自定义设置文件,只要找到其中任何一个,就不再继续。在用户自定义的配置文件中,都会调用~/.bashrc这个文件,来配置当前的这个shell

    /etc/profile或者~/.bash_profile都是在登录的时候才去读取,如果将自己的一些设置到这些文件之后,一般都需要重新登录一次shell才会生效,也可以使用source这个命令,来读取配置文件的内容到当前的这个shell

    数据流重导向

    数据重导向,表示将数据从一个地方导向到另外一个地方,在linux的bash中,有两种输出,分别是

    • 标准输出:输出在屏幕当中的正常的提示信息,或者正常的返回值
    • 错误输出:命令执行出错时,显示在屏幕当中的出错信息

    有时候,我们需要将标准输出或者错误输出保留到某个文件中,方便以后你查询,这种情况下,就需要数据流重导向,也就是将输出到屏幕的信息导向到一个文件中。而导向又分为标准输出导向和错误输出导向

    • 标准输出重导向:代码为1,使用>或者>>
    • 错误输出重导向:代码为2,使用2>或者2>>

    在linux中一个特殊的装置,是/dev/null,所有将导向到这个装置的数据都会被丢弃,相当与删除数据。

    有时候,我们需要将标准输出和错误输出导出到文件中,则可以使用符号 2>&1,这个符号是连在一起的,表示将错误和标准输出一起输出。

    除了输出之外,还有输入,
    - 标准输入重导向:代码为0,使用<
    某些由键盘输入的数据,可以使用标准输入重导向,从文件中输入数据。

    管线命令

    常用的关系命令有如下几个,具体的用法可以查询man文件
    - 选择命令
    - cut
    - grep
    - 排序命令
    - sort
    - wc
    - uniq
    - 双向重导向
    - tee
    - 字符转换命令
    - tr
    - col
    - join
    - paste
    - expand
    - 分割命令
    - split

    其他

    命令别名

    alias             //显示所有的命令别名
    alias rm='rm -i'  //设置命令别名
    unalias rm        //删除命令别名

    历史命令

    使用history命令,可以显示当前shell的内存中保存的历史记录命令,这里每个shell的历史记录命令是独立的,bash在退出的时候会自动将内存中的历史命令写入到histfiles中,也可以手动将当前shell内存中的历史命令同步回histfiles中,如果想从当前shell A读取另一个shell B中的历史命令了,需要在B这个Shell中先使用命令history -w将内存中的命令写入到histfiles中,然后在A这个shell中使用history -r来将histfiles中的命令读取到内存中

    history n     //显示最近的n笔命令的意思
    history -c    //将shell中所有的history命令全部删除
    history -a    //将目前新增的指令加入到histfiles中,如果不存在,则加入到~/.bash_history中
    history -w    //将内存中的history指令保持到histfile中
    history -r    //将histfile中的指令读取到这个shell中

    历史命令的读取与记录如下:

    • 当使用bash登录后,去~/.bash_history中读取历史命令
    • 注销当前bash时,会将最近的HISTFILESIZE笔命令更新到~/.bash_history中,也可以使用history -w命令来强制更新

    可以使用!来执行历史命令,如下:

    !2          //执行历史命令中的第二个命令
    !command    //从最见的命令往前搜,查找以command开头的命令
    !!          //执行上一个指令
    展开全文
  • Linux——Bash

    千次阅读 2018-06-12 10:23:29
    一、查询指令是否为 Bash shell 的内建命令: type二、变量的取用与设定:echo, 变量设定规则, unset可以利用 echo 这个指令来取用变量, 但是,变量在被取用时,前面必须要加上钱字号『 $ 』才行。 『设定』或者是...

    一、查询指令是否为 Bash shell 的内建命令: type




    二、变量的取用与设定:echo, 变量设定规则, unset

    可以利用 echo 这个指令来取用变量, 但是,变量在被取用时,前面必须要加上钱字号『 $ 』才行。


          

    『设定』或者是『修改』 某个变量的内容 : 用『等号(=)』连接变量与他的内容

           

    注:myname=VBird不能有空格。在 bash 当中,当一个变量名称尚未被设定时,预设的内容是『空』的。

    变量的设定规则
    1. 变量与变量内容以一个等号『=』来连结,如下所示:『myname=VBird』
    2. 等号两边不能直接接空格符,如下所示为错误:『myname = VBird』或『myname=VBird Tsai』
    3. 变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:『2myname=VBird』
    4. 变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但
        o 双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:
            『var="lang is $LANG"』则『echo $var』可得『lang is zh_TW.UTF-8』
        o 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:
            『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』
    5. 可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符,如:
    『myname=VBird\ Tsai』
    6. 在一串指令的执行中,还需要藉由其他额外的指令所提供的信息时,可以使用反单引号『`指令`』或 『$(指
    令)』。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本
    的设定: 『version=$(uname -r)』再『echo $version』可得『3.10.0-229.el7.x86_64』
    7. 若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:
    『PATH="$PATH":/home/bin』或『PATH=${PATH}:/home/bin』
    8. 若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:『export PATH』
    9. 通常大写字符为系统默认变量,自行设定变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;
    10. 取消变量的方法为使用 unset :

    『unset 变量名称』例如取消 myname 的设定:『unset myname』

    注:『子程序』——在我目前这个 shell 的情况下,去启用另一个新的 shell ,新的那个shell 就是子程序啦!在一般的状态下,父程序的自定义变量是无法在子程序内使用的。但是透过export 将变量变成环境变量后,就能够在子程序底下应用了!


    三、环境变量的功能

            环境变量可以帮我们达到很多功能,包括家目录的变换、提示字符的显示、执行文件搜寻的路径等等。

    可以利用env 与 export 查询目前shell环境中有多少默认的环境变量。

    1、用 env 观察环境变量与常见环境变量说明


    2、用 set 观察所有变量 (含环境变量与自定义变量)

            一般来说,不论是否为环境变量,只要跟我们目前这个 shell 的操作接口有关的变量, 通常都会被
    设定为大写字符,也就是说,『基本上,在 Linux 预设的情况中,使用{大写的字母}来设定的变量

    一般为系统内定需要的变量』。

    3、export: 自定义变量转成环境变量

    子程序仅会继承父程序的环境变量, 子程序不会继承父程序的自定义变量!所以在原本 bash 的自定义变量在进入了子程序后就会消失不见,一直到你离开子程序并回到原本的父程序后,这个变量才会又出现!


    4、影响显示结果的语系变量 (locale)

    5、变量键盘读取、数组与宣告: read, array, declare

    (1)要读取来自键盘输入的变量,就是用 read 这个指令


    read 之后不加任何参数,直接加上变量名称,那么底下就会主动出现一个空白行等待你的输入(如范例一)。 如果加上 -t 后面接秒数,例如上面的范例二,那么 30 秒之内没有任何动作时, 该指令就会自动略过了~如果是加上 -p ,嘿嘿!在输入的光标前就会有比较多可以用的提示字符给我们参考!


    (2)declare / typeset

    declare 或 typeset 是一样的功能,就是在『宣告变量的类型』。如果使用 declare 后面并没有接任何参数,那么 bash 就会主动的将所有的变量名称与内容通通显示出来。



    由于在默认的情况底下, bash 对于变量有几个基本的定义:
         变量类型默认为『字符串』,所以若不指定变量类型,则 1+2 为一个『字符串』而不是『计算式』。 所以
    上述第一个执行的结果才会出现那个情况的;

         bash 环境中的数值运算,预设最多仅能到达整数形态,所以 1/3 结果是 0;


    (3)数组 (array) 变量类型

    在 bash 里头,数组的设定方式是: var[index]=content


    一般来说,建议直接以 ${数组} 的方式来读取。

    6、与文件系统及程序的限制关系: ulimit

    7、变量内容的删除、取代与替换 (Optional)

    (1)变量内容的删除与取代




     # :符合取代文字的『最短的』那一个;

     ##:符合取代文字的『最长的』那一个

    上面谈到的是『从前面开始删除变量内容』,那么如果想要『从后面向前删除变量内容』呢? 

    这个时候就得使用百分比 (%) 符号了!


    总结一下:


    (2)变量的测试与内容替换

    在某些时刻我们常常需要『判断』某个变量是否存在,若变量存在则使用既有的设定,若变量不存在则给予一个常用的设定。






    8、命令别名设定: alias, unalias

    eg. alias lm='ls -al | more'

    命令别名是『新创一个新的指令, 你可以直接下达该指令』的,至于变量则需要使用类似『 echo 』指令才能够呼叫出变量的内容!

    9、历史命令:history


    历史命令还有一个问题,那就是无法记录指令下达的时间。


    10、通配符与特殊符号


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

    (1)cmd ; cmd (不考虑指令相关性的连续指令下达)

    希望可以一次执行多个指令,例如在关机的时候我希望可以先执行两次 sync 同步化写入磁盘后才 shutdown 计算机.

    sync; sync; shutdown -h now

    (2)$? (指令回传值) 与 && 或 ||

    若前一个指令执行的结果为正确,在 Linux 底下会回传一个 $? = 0 的值

    两个 & 之间是没有空格的!那个 | 则是 [Shift]+[\] 的按键结果。


    例:(1)先判断一个目录是否存在; (2)若存在才在该目录底下建立一个文件。





    12、管线命令 (pipe) |

    管线命令使用的是『 | 』这个界定符号。

    管线命令主要有两个比较需要注意的地方:
     管线命令仅会处理 standard output,对于 standard error output 会予以忽略

     管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。

    (1)撷取命令: cut, grep

    撷取讯息通常是针对『一行一行』来分析的, 并不是整篇讯息分析的。


    cut 是将一行讯息当中,取出某部分我们想要的,而 grep 则是分析一行讯息

        例: last命令用于显示系统开机以来获是从每月初登入者的讯息。


    13、排序命令: sort, wc, uniq


    排序完成了,想要将重复的资料仅列出一个显示——uniq


    wc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。



    14、字符转换命令: tr, col, join, paste, expand

    (1)tr 可以用来删除一段讯息当中的文字,或者是进行文字讯息的替换

    (2)col

    (3)join——处理两个文件之间的数据,两个文件当中,有 "相同数据" 的那一行,才将他加在一起

    在使用 join 之前,你所需要处理的文件应该要事先经过排序 (sort) 处理

    (4)paste

    相对于 join 必须要比对两个文件的数据相关性, paste 就直接『将两行贴在一起,且中间以 [tab] 键隔开』

    (5)expand——将 [tab] 按键转成空格键


    15、分区命令: split




    16、参数代换: xargs——产生某个指令的参数

    使用 xargs 的原因是, 很多指令其实并不支持管线命令,因此我们可以透过 xargs 来提供该指令引用 standard input 之用!


    本文算是《鸟哥的Linux私房菜》的一个学习笔记和记录吧。


    展开全文
  • 今天小编要跟大家分享的文章是关于Linux系统中的Bash功能的介绍。一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无法与硬件...
  • Linuxbash基础特性

    2018-12-30 22:38:59
    目录1. bash初识 1. bash初识
  • Linux的基础特性: (1)历史命令 history 环境变量: HISTSIZE:命令历史记录的条数; HISTFILE:~./bash_history; HISTFILESIZE:命令历史文件记录... history #:显示历史最近的#条命令 -a:手动追加当...
  • Linux终端bash美化教程

    千次阅读 2013-09-20 23:40:53
    Linux终端bash美化教程   对于终端的美化,可以通过对PS1变量进行赋值来进行,DIY了如下的效果: 分享下奶牛的修改方法: vim .bashrc 添加下行 export PS1="Time:\[\033[1;35m\]\T \[\033[0m\]...
  • linux : bash命令

    千次阅读 2012-09-17 10:32:02
    shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的  每个命令都由shell先解释然后传给Linux内核。  shell 是一个命令语言解释器(command-languageinterpreter...
  • linuxbash环境变量

    千次阅读 2017-09-09 14:54:32
     Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都  是相同的,这个默认环境实际上就是一组环境变量的定义。  环境变量是全局的,设置好的环境变量可以...
  • Linux Bash Shell编程(二):Bash基本功能(历史、补全、别名、快捷键)   上一节简单介绍了Linux Shell并用echo命令编写了第一个Bash脚本Hello World。本节我们来认识一下熟悉的Bash命令解释器的基本功能:命令...
  • Linux-bash-快捷键

    2015-07-12 14:36:04
    linux中经常会使用到的快捷键,比如ctrl + l = clear; 或者ctrl + p = ↑; 或者ctrl + n = ↓; 或者ctrl + u 剪切光标之前的内容......
  • 使用GNU/Linux系统使用bash是家常便饭,知道一些bash常用的快捷键就显得非常有必要,bash快捷键大全 Ctrl-A 相当于HOME键,用于将光标定位到本行最前面,回到命令行开始,UNIX上只能用这个组合键 Ctrl-E 相当于End...
  • 11.Linux - Bash shell

    2014-02-07 22:14:29
    Linux - Bash 1 bash Bourne Again SHell 是一个shell 2 shell: 命令行界面shell 远程管理:命令行shell界面比较快 Linux的任督二脉:shell 检查一下/etc/shells这个文件,我们发现有很多可以用的shell /bin/sh...
  • The bash shell is the standard terminal environment included with most Linux distributions, included with macOS, and available for installation on Windows 10. It remembers the commands you type and ...
  • Linux环境下,bash是非常重要的概念,通常使用命令行执行命令的方式,就是通过bash的环境来处理的。bash的内容包括变量的设置和使用、bash操作环境的构建、数据流重定向功能和管道命令。
  • Linux环境下,bash是非常重要的概念,通常使用命令行执行命令的方式,就是通过bash的环境来处理的。bash的内容包括变量的设置和使用、bash操作环境的构建、数据流重定向功能和管道命令。
  • linux bash shell讲解

    2020-10-27 17:12:26
    文章目录前言linux bash shell讲解一、概述二、bash shell的变量概述三、bash shell 相关指令四、数据流重定向五、扩展以上就是我本次的分享,谢谢观看!!! 前言   如果您觉得有用的话,记得给博主点个赞,评论,...
  • Linux基本bash命令(持续更新)

    万次阅读 多人点赞 2017-06-24 15:47:26
    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 以下是几种shell版本,bash是默认的: sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且...
  • Linux bash中可以用的快捷键,推荐大家使用,也为自己备查。 <br />“红色粗体”表示“我推荐的”! {注意:快捷键中的字母不区分大小写} Ctrl-A 相当于HOME键,用于将光标定位到本行最前面...
  • 点击两下tab键可以显示出提示 如果是唯一的,就会直接补全 输入usera,再点击tab键 快捷键 终止前台运行的程序 ctrl + C 效果 正在运行的内容终止 输入了一半的命令废弃 效果1 效果2 退出 ...
  • Linux Bash 快捷键大全

    千次阅读 2015-06-21 11:52:58
    原文:http://blog.useasp.net/archive/2014/06/03/use-bash-more-efficient-with-shortcuts-for-terminal-or-xtream-window-on-linux.aspx...在Linux下,Bash的地位无可忽视,日常中涉及到Linux下的管理与操
  • linuxbash特性及脚本编程基础

    千次阅读 多人点赞 2020-03-27 10:29:20
    bash特性及bash脚本编程初步 終端,附着在終端的按口程序: GUI: KDE, GNome, xfce CLI: /etc/shells bash的特性: ... 命令历史: history 文件名通配: glob 快捷键: Ctrl+a, e, u, k, 1 命令...
  • linux bash基础命令

    千次阅读 2017-03-30 08:31:22
    基础bash命令
  • Linux bash基础特性

    千次阅读 多人点赞 2020-02-24 21:46:29
    补全机制、快捷键、命令历史、命令别名、变量、特殊符号、I/O重定向、通配符
  • Linux bash命令

    万次阅读 2018-05-20 16:03:02
    首先了解下shellShell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。以下是几种shell版本,bash是默认的:sh(全称 Bourne Shell): 是UNIX最初使用的 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,000
精华内容 14,800
关键字:

linux显示bash历史

linux 订阅