`
houkai2009
  • 浏览: 226793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • 浪迹随风: 文章是挺好的,不过太杂了。。。信息量也很大。。。很难消化。。。 ...
    EJB 介绍
  • javaersu: yds3300376yd 写道学习了,只是楼主写的有点杂,现在 ...
    EJB 介绍
  • yds3300376yd: 学习了,只是楼主写的有点杂,现在还看不太懂,刚学习EJB,我觉 ...
    EJB 介绍
  • javaersu: 不错,这里也有一篇类似的EJB文章教程http://www.y ...
    EJB 介绍
  • dingding5060: brother , 你贴代码想说明什么???
    enum

BASH命令详解Linux学习

    博客分类:
  • unix
阅读更多

     bash(Bourne Again Shell) 是 Red Hat 的缺省 shell. 它有40个内建命令和12个命令行参数。

  shell 是一个命令语言解释器(command-language interpreter)。 shell是用户和linux内核之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。

  shell 如何启动 shell在你成功地登录进入系统后启动,并始终作为你与系统内核的交互手段直至你退出系统。你系统上的每位用户都有一个缺省的shell。每个用户的缺省shell在系统里的passwd文件里被指定,该文件的路径是/etc/passwd。

  bash 命令概要

  这是几个最常用的bash内部命令:

  alias: 设置bash别名。

  bg: 使一个被挂起的进程在后台继续执行。

  cd: 改变当前工作目录。

  exit: 终止shell。

  export: 使变量的值对当前shell的所有子进程都可见 。

  fc: 用来编辑历史命令列表里的命令。

  fg: 使一个被挂起的进程在前台继续执行。

  help: 显示bash内部命令的帮助信息。

  kill: 终止某个进程。

  pwd: 显示当前工作目录。

  unalias: 删除已定义的别名。

  bash 还有许多命令,但这些是最常用的,想了解更详细的情况,请参考bash的手册--在提示符下键入 man bash。

  bash 变量

  这里是几个最有用的bash变量,包括变量名和简单描述。

  EDITOR, FCEDIT: bsah fc 命令的缺省编辑器。

  HISTFILE: 用于贮存历史命令的文件。

  HISTSIZE: 历史命令列表的大小。

  HOME: 当前用户的用户目录。

  OLDPWD: 前一个工作目录。

  PATH: bash寻找可执行文件的搜索路径。

  PS1: 命令行的一级提示符。

  PS2: 命令行的二级提示符。

  PWD: 当前工作目录。

  SECONDS: 当前shell开始后所流逝的秒数。

  bash的特性:

  1.命令补齐(Command-Line Completion)

  在 bash 下输入命令时你不必把命令输全 shell 就能判断出你所要输入的命令。只要输入命令的一部分,再按下 Tab 键,当你这样做以后,bash 将帮你补齐命令并显示在屏幕上。但在你按下回车键以前命令并没有被执行,bash 会让你检验补齐的命令是否是你真正需要的。在输入象这样短的命令时你也许看不出它的价值所在,甚至在命令很短时还会简慢输入的速度,但是当你要输入的命令有点长时,你会发现这个特性是多么的美好。

  2. 通配符

  另一个使命令输入变得更简单的方法是在命令中使用通配符。bash 支持三种通配符:

  * 匹配任何字符和任何数目的字符

  ? 匹配任何单字符

  [...] 匹配任何包含在括号里的单字符

  3. 命令历史记录

  bash 支持命令历史记录。这意味着 bash 保留了一定数目的你先前已经在shell 里输入过的命令。这个数目取决于一个叫做HISTSIZE的变量。有关 HISTSIZE 的更多信息,请看本文后面的“bash 变量”一节。

  bash 把你先前输入的命令文本保存在一个历史列表中。当你用你的帐号登录后历史列表将根据一个历史文件被初始化。历史文件的文件名被一个叫 HISTFILE 的 bash变量指定。历史文件的缺省名字是 .bash_history。这个文件通常在你的用户目录中。(注意该文件的文件名以一个句号开头,这意味着它是隐含的,仅当你带 -a 或 -A参数的 ls 命令列目录时才可见)

  使用历史记录列表最简单的方法是用上方向键。按下上方向键后最后键入的命令将出现在命令行上。再按一下则倒数第二条命令会出现,以此类推。如果上翻多了的话也可以用向下的方向键来下翻。显示在命令行上的历史命令可以被编辑。

  另一个使用命令历史文件的方法是用 bash 的内部命令 history 和 fc(fix 命令)命令来显示和编辑历史命令。history 命令能以两种不同的方法来调用。第一种是:

  history [n]

  当 history 命令没有参数时,整个历史命令列表的内容将被显示出来。下面是一个命令历史列表的例子:

  使用 n 参数的作用是仅有最后 n 个历史命令会被列出。例如,history 5 显示最后 5 个命令。

  调用 history 命令的第二种方法用于修改命令历史列表文件的内容。命令的语法如下:

  history [-r|w|a|n] [filename]

  这种形式中,-r 选项告诉 history 命令读命令历史列表文件的内容并且把它们当作当前的命令历史列表。-w 选项将把当前的命令历史记录写入文件中并覆盖文件原来的内容。-a 选项把当前的命令历史记录追加到文件中。-n 选项将读取文件中的内容并加入到当前历史命令列表中。如果 filename 选项没有被指定,history 命令将用变量HISTFILE 的值来代替。

  fc 命令能用两种方法来编辑历史命令。第一种使用下列语法:

  fc [-e editor_name] [-n] [-l] [-r] [first] [last]

  这里所有参数都是可选的。-e editor_name 选项用来指定用于编辑命令的文本编辑器。 first 和 last 选项用于选择列出历史命令的范围,既可以是数字也可以是字符串。-n 选项禁止列出命令的编号。-r 选项反向列出匹配的命令。-l 选项把匹配的命令行列在屏幕上(而不是在编辑器中)。如果-e editor_name参数没有被指定,则以变量FCEDIT的值来代替,如果该变量不存在的话,则用变量EDITOR的值来代替,都不存在的话将使用vi编辑器。

  4.别名

  命令别名通常是其他命令的缩写,用来减少键盘输入。

  alias file='ls -l | grep ^-'

  alias ls='ls --color'

  alias sub='ls -F -l | grep /$'

  这是一些很多用户认为有用的别名,你可以把它们写入你的.profile文件中提高工作效 :

  如果想取消别名,可以使用下面的命令:

  unalias <alias name>

  定义别名时,等号的两头不能有空格,否则 shell 不能决定你需要做什么。

  5.输入重定向

  输入重定向用于改变一个命令的输入源。一些命令需要在命令行里输入足够的信息才能工作。 输入重定向并不经常使用因为大多数命令都以参数的形式在命令行上指定输入文件的文件名。尽管如此,当你使用一个不接受文件名为输入参数的命令,而需要的输入又是在一个已存在的文件里时,你就能用输入重定向解决问题。

  6.输出重定向

  输出重定向比输入重定向更常用。输出重定向使你能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上。

  7.管道

  管道可以把一系列命令连接起来。这意味着第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入 ,以此类推。而管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使用了输出重定向的话,将会放进一个文件里)。

  8.提示符

  bash 有两级用户提示符。第一级是你经常看到的 bash 在等待命令输入时的提示符。缺省的一级提示符是字符$(如果是超级用户,则是#号)。你可以通过改变bash 的PS1变量的值来改变你的缺省提示符。

  把bash shell 的提示符该为指定的字符串。

  当bash 期待输入更多的信息以完成命令时显示第二级提示符。缺省的第二级提示符是 >。 果你要改变第二级提示符,可以通过设置PS2变量的值来实现。

  另外你还可以用特殊的字符来定义你的提示符,下面的列表列出了最常用的特殊字符。

  字符

  含义

  !

  显示该命令的历史记录编号。

  # 显示当前命令的命令编号。

  $ 显示$符作为提示符,如果用户是root的话,则显示#号。

  显示反斜杠。

  d 显示当前日期。

  h 显示主机名。

  打印新行。

  nn 显示nnn的八进制值。

  s 显示当前运行的shell的名字。

   显示当前时间。

  u 显示当前用户的用户名。

  W 显示当前工作目录的名字。

  w 显示当前工作目录的路径。

  9. 作业控制(Job Control)

  作业控制能够控制当前正在运行的进程的行为。特别地,你能把一个正在运行的进程挂起,稍后再恢复它的运行。bash 保持对所有已启动的进程的跟踪,你能在一个正在运行的进程的生命期内的任何时候把它挂起或是使它恢复运行。

  按下 Ctrl-Z 使一个运行的进程挂起。bg 命令使一个被挂起的进程在后台恢复运行,反之 fg 命令使进程在前台恢复运行。这几个命令在当用户想在后台运行而意外的把它放到了前台时,经常被用到。当一个命令在前台被运行时,它会禁止用户与 shell 的交互,直到该命令结束。这通常不会造成麻烦,因为大多数命令很快就执行完了。如果你要运行的命令要花费很长的时间的话,我们通常会把它放到后台,以使我们能在前台继续输入其他命令。

  10. 用户化配置bash

  为了保存这些用户化配置,必须把它们保存到一个bash的初始化文件里。 你能把任何想每次进入bash都执行的命令放到初始化文件里。这个文件里最常见到的命令通常是alias和变量的初始化。bash的初始化文件叫做 profile。每个使用bash的用户都有一个 .profile文件在他的用户目录里。bash在每次启动时都读取这个文件,并执行所有包含的命令。

  下面的代码是缺省的.profile文件的内容。这个文件的位置在 /etc目录。如果你想设置自己的bash 的话把它拷到你的用户目录里(如果还没有的话)并命名为.profile。
分享到:
评论

相关推荐

    linux ps 命令详解

    **Linux `ps` 命令详解** 在Linux操作系统中,`ps`(Process Status)命令是用于查看系统当前进程状态的工具。它能够显示进程的实时信息,帮助用户了解系统的运行情况,进行进程管理。`ps`命令历史悠久,功能强大,...

    详解Bash命令行处理 Linux命令大全(修改版)

    总之,“Bash命令行处理 Linux命令大全”是学习和精通Bash命令行操作的重要资源,它覆盖了从基础到进阶的广泛内容,无论你是新手还是经验丰富的用户,都能从中受益。通过不断实践和学习,你将能够充分利用Bash的潜力...

    linux 命令详解 linux 命令详解

    ### Linux命令详解 #### 1. `cat` 命令 **命令介绍:** - **名称:** cat - **使用权限:** 所有使用者 - **使用方式:** `cat [-AbeEntTuv][--help][--version] fileN ame` - **功能:** 将一个或多个文件的内容串联...

    bashshell命令详解

    ### bash shell命令详解 #### 一、系统登录与退出 **1. 登录系统** Linux是一种多用户操作系统,允许多个用户同时使用同一台计算机。为了确保安全性与资源的合理分配,每个用户都需要拥有自己的账号(包括用户名...

    linux tar命令详解

    ### Linux tar 命令详解 #### tar命令概述 `tar` 命令是 Linux 系统中用于创建、管理归档文件的强大工具。它最初设计用于在磁带(Tape Archive)上创建文件存档,因此得名 `tar`。随着时间的发展,`tar` 命令的...

    Linux命令详解词典.pdf

    通过深入学习《Linux命令详解词典》,读者不仅能理解每个命令的功能,还能学会如何组合使用它们以完成更复杂的任务,提升在Linux环境下的工作效率。无论是初学者还是经验丰富的系统管理员,都能从中受益。

    [Linux命令详解词典]

    通过学习《Linux命令详解词典》,用户不仅可以掌握Linux命令行的基本操作,还能进一步提升系统管理能力,从而更高效地在Linux环境中工作。这本书是Linux初学者和经验丰富的系统管理员不可或缺的参考资料。

    Linux主要shell命令详解.doc

    ### Linux主要Shell命令详解 #### 一、命令置换与特殊字符使用 在Linux环境中,shell命令的灵活性和强大性体现在其能够实现复杂的功能组合。其中一个关键特性是**命令置换**,即通过特定语法来获取一个命令的输出...

    linux主要shell命令详解

    ### Linux主要Shell命令详解 #### 一、Shell概念与作用 **Shell** 是连接用户与Linux操作系统的桥梁,用户通过Shell与系统进行交互。在Linux系统中,Shell扮演着多种角色,包括命令语言、命令解释程序以及程序设计...

    bash shell 详解

    Bash Shell是Linux操作系统中的常用命令行解释器,它提供了一个文本界面供用户输入命令,并在系统上执行相应的操作。本篇将详细介绍Bash Shell的操作方法,助您快速掌握并使用。 首先,我们来看type命令,它用于...

    linux sed命令详解

    ### Linux Sed 命令详解 #### 概述 `sed`,全称为“stream editor”,是一种功能强大的文本处理工具,常用于Linux和类Unix系统中。它主要用于文本的过滤和转换工作,能够以流的形式读取并处理文本数据。在处理过程...

    bash命令使用详解

    在Linux上采用bash作为标准,基本上它描述了对带有“.sh”扩展名的vi编辑器等文本的处理并执行。 与编程一样,它有许多函数,如变量,函数和算术处理,所以如果你是一个小程序,你可以用bash编写它。 此外,由于bash...

    linux dig命令详解

    ### Linux dig 命令详解:深入理解 DNS 查询利器 #### 概述 在 Linux 系统中,`dig`(Domain Information Groper)是一个功能强大的工具,用于查询域名系统(DNS)。它允许用户深入了解 DNS 的工作原理,帮助诊断...

    Linux Shell 命令详解.doc

    ### Linux Shell 命令详解 #### 变量与引用 在Linux Shell中,变量的引用和设置至关重要。使用`${变量名}`来引用变量的值,值得注意的是,在声明或赋值时无需使用`$`作为前缀。例如,你可以设置本地变量通过`变量...

    Linux编程命令详解

    本资料包"Linux编程命令详解"旨在帮助那些希望深入学习Linux编程的朋友们提供详实的指导。 首先,我们关注的是"Linux编程命令详解.pdf",这可能是本书的核心内容,它可能涵盖了从基础到高级的Linux命令使用。这份...

    linux_zip_压缩命令_解压命令

    zip 命令详解 #### 基础用法: `zip`命令主要用于将一个或多个文件压缩成一个.zip文件,其基本语法为: ``` zip [选项] &lt;压缩文件名&gt; [文件...] ``` 其中,`&lt;压缩文件名&gt;`是你想要创建的.zip文件的名字,`[文件......

    linux下fdisk命令详解.pdf

    ### Linux 下 `fdisk` 命令详解 #### 一、引言 在 Linux 系统中,磁盘管理是一项基本且重要的任务。对于系统管理员来说,掌握磁盘分区的相关命令至关重要。其中,`fdisk` 是一个非常实用且功能强大的磁盘分区工具...

    Linux命令详解手册.zip

    "Linux命令详解手册"提供了全面的命令指南,帮助用户理解和运用各种命令来高效地操作Linux系统。下面将详细阐述Linux命令的主要类别及其重要用途。 1. 文件和目录管理: - `ls`:列出目录内容,常用于查看当前目录...

Global site tag (gtag.js) - Google Analytics