学习 Linux,101: Linux 命令行

学习 Linux,101: Linux 命令行

Shell是一个可以接受并执行命令的程序。允许创建脚本保存为文件,从而构成新的命令。

Stdin 标准输入流,为命令提供输入(键盘)

Stdout 标准输出流,为命令显示输出(显示器)

Stderr 标准错误流,显示命令中的错误输出(显示器)

$提示普通用户

#提示root用户

Shell的主要功能是对命令进行解释,与Linux系统进行交互

命令的组成:命令名称,选项,参数。"#"用来注释

Bash使用空白(如同c的scanf)将输入行分离到标记中,随后传递给命令,使用双引号或者单引号将完整的字符串作为单一的标记。

bash 中使用反斜杠存在一个小问题。当未使用引号引用反斜杠字符(时)(即是说反斜杠没有被包围在引号中),将作为一个转义来表示 bash 本身,用于保留以下字符的字面含义。这对于特殊的 shell 元字符是非常必要的,我们将在稍后讨论。这条规则有一个例外:反斜杠后跟一个换行符将致使 bash 合并这两个字符并将字符序列作为一个续行请求处理。这样做可以方便地将比较长的行断开,特别是在 shell 脚本中。

要使用 echo 命令或众多其他使用类似转义控制字符的命令来正确地处理上述字符序列,必须使用引号将转义序列括起,或作为引用字符串的一部分,除非您使用了另一个反斜杠(两个反斜杠紧连),以使 shell 为命令保留一个反斜杠。

Bash元字符控制操作符(control operator)

这些元字符未使用引号括起时,可以用来将输入分成多个单词,当括起以及被\转义时就作为文本的一部分:

| & ; ( ) < > 和 空格

换行和某些元字符或元字符对也可以用作控制操作符:

| || & && ; ;; ( )

命令序列例子:用;分隔的命令,所有命令将按顺序执行;&&分隔的命令只有在第一个成功时才执行第二个,||分隔的命令只有在第一个失败时才会执行第二个

退出(exit)命令终止一个shell,可以提供一个数字作为exit的参数,是exit的返回值。

圆括号括起的命令或命令列表(序列)将在一个sub shell中执行,若exit包含于该圆括号中,退出的是sub shell,而不是所在的shell

Bash环境变量

通过$环境变量名,可以得到环境变量,常见的bash环境变量为:

USER UID HOME PWD SHELL $ PPID ?

可以自己定义环境变量:任意一个名称,紧接着输入等号(=)和(赋予的值)就创建了新的shell变量了,使用export可以导出变量,导出的同时可以定义变量,但是导出的变量只能用于从这个shell启动的进程(以及后续所有启动的进程)而不能用于父shell

单引号和双引号的重要区别shell 将扩展使用双引号 ($quot;) 括起的 shell 变量,而在使用单引号 (') 时不会扩展。

变量名由字母数字和下划线字符组成,如果遇到非法字符就能断句得到一个变量,如果无法断句就要人工断句:使用{}将变量括起来

env在不包含任何选项或参数的情况下将显示当前的环境变量。-i(或 -)选项将在运行命令之前清空当前环境

使用 unset 命令来取消一个变量并从 shell 变量列表中移除它

使用 set 命令来对 bash(或其他 shell)的行为进行许多控制(效果是持久的),-u 选项将使 bash 报告一个有关未定义变量的错误,可以使用 - 对 set 启用各种选项,并使用 + 来关闭选项。

使用 exec 命令来运行将替换当前 shell 的另一个程序(进程ID相同,就是借个壳壳运行另一个程序)

命令历史:使用 set +o history 命令关闭该功能,并使用set -o history 重新启用,名为 HISTSIZE 的环境变量将指定 bash 需要保持多少行历史。

history history N history –d N !! !N !-N !# !string !?string?

感叹号都是执行命令了

Shell查找命令:在PATH环境变量中指示的目录里面查找,使用whichtype可以得知运行的是哪个命令

绝对和相对路径

你可能感兴趣的:(linux 命令)