什么是shell?
- 用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。
- Centos默认安装的是(Bourne Again Shell),它是sh(Bourne Shell)的增强版。
shell的特性:
- 1)记录命令历史
- 2)命令和文件名补全
- 3)别名
- 4)通配符
- 5)输入输出重定向
- 6)管道符
- 7)作业控制
变量:
- shell预设的变量都是大写的,有了PATH这个变量,我们运行某个命令时,就不在需要输入全局路径,直接输入命令即可。
- # echo $PATH
- /usr/local/sbin:/usr/local/bin:usr/sbin:root/bin
- # echo $HOME
- /root
- # echo $PWD
- /root
- #echo $PS1
- [u@h W]
命令env、set:
- 列出系统预设的全部系统变量、set还可以显示用户自定义的变量。
系统环境变量与个人环境变量的配置文件
- /etc/profile 这个文件预设了几个重要的变量,例如PATH,USER,LOGNAME,MAIL,INPUTRC,HOSTNAME,HISTSIZE,umsk
- /etc/bashrc 这个文件预设umask以及PS1
- .bash_profile 该文件定义了用户的个人化路径与环境与变量的文件名称。每个用户都可使用该文件输入属于专属于自己的shell信息。当用户登录时,该文件仅仅执行一次。
- .bashrc 该文件包含专属于自己的shell的bash信息,当登录或每次打开新的shell时,该文件会被读取。例如:你可以将用户自定义的别名或者定义变量写到这个文件中。
- .bash_history 该文件用于记录命令历史
- .bash_logout 当退出shell时,会执行该文件。你可以将一些清理的工作放到这个文件中。
Linux Shell中的特殊符号
- *代表零个或多个任意字符
- ?只代表一个任意的字符
- #注释符号
- 脱义字符 将后面的特殊字符还原为普通字符
- |管道字符 将前面命令的输出作为后面命令的输入
- $特殊符号 用作变量前面的标识符
- ;特殊符号 一行中运行两个或两个以上的命令,需要在命令之间加符号;
- ~特殊符号 表示用户的家目录
- &特殊符号 把一条命令放到后台执行,需要加上符号&
- > >>重定向符号
- []中括号 中括号内字符组合,代表字符组合中的任意一个
- && ||特殊符号
- command1 ; command2 不管command1是否执行成功,都会执行command2
- command1 && command2 只有command1执行成功后,才会执行command2
- command || command2 command1执行成功后则command2不执行,否则执行command2