一、Shell概述
Shell:是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。
shell: 一个可以解释shell规定的语法命令的解释器!解释器负责将应用程序发送的指令,进行检查,合法后交给内核解释执行!返回结果!
shell命令: shell解释器要求的指定语法编写的命令!
shell脚本: 多条shell命令,可以编写在一个文件中,文件中的指令,可以按照顺序执行!将这个文件称为shell脚本!
Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时为应用程序分配硬件, 并根据需要执行程序中的代码。
内核主要负责以下四种功能:
- 系统内存管理
- 软件程序管理
- 硬件设备管理
- 文件系统管理
简单来说Shell是一种特殊的交互式工具,核心是命令提示符,允许输入文本命令,解释命令,并在内核中执行命令。为了防止程序发送一些恶意指令导致损坏内核,在内核和应用程序接口之间,设置一个中间层,称为shell。
1. linux中一切皆文件
“service network restart”命令的含义:运行service文件,参数为:network、restart。
[root@localhost ~]$ which service
/usr/sbin/service
2. linux中常用目录
目录 | 作用 | 备注 |
---|---|---|
/bin | 是Binary的缩写, 这个目录存放着最经常使用的命令 :cd、echo、pwd等 | 存放的是普通用户用的命令 |
/boot | 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。 | |
/dev | 类似于windows的设备管理器,把所有的硬件用文件的形式存储。 | |
/etc | 所有的系统管理所需要的配置文件和子目录。 | |
/home | 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 | |
/lib | 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 | |
/media | linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 | |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。 | |
/opt | 这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。 | |
/proc | 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 | |
/root | 该目录为系统管理员,也称作超级权限者的用户主目录。 | |
/sbin | s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序(root用户(管理员)使用的常用命令), 对整个机器的管理命令!比如:service network start | [root@localhost ~]$ which service /usr/sbin/service |
/srv | service缩写,该目录存放一些服务启动之后需要提取的数据。 | |
/sys | 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。 | |
/tmp | 这个目录是用来存放一些临时文件的。 | |
/usr | 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 | |
/var | 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 | |
/lost+found | 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 | |
/selinux | SELinux是一种安全子系统,它能控制程序只能访问特定文件。 |
3. linux的环境变量
[root@localhost ~]$ hahawhx
bash: hahawhx: command not found...
表明当前命令“hahawhx”不在当前用户的环境变量!
查看环境变量: echo $PATH
[root@localhost ~]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Linux中多个环境变量之间用冒号间隔(Windows中是用分号)。
由于bin目录的路径以及sbin目录的路径都在Linux的环境变量里,所以在使用bin目录或sbin目录下的命令(命令即文件)时,就不用在命令的前面加上bin目录或sbin目录的绝对路径了
4. 添加jdk的环境变量
在/etc/profile文件中添加:
JAVA_HOME=/opt/softwhx/jdk1.8.0_121
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
添加环境变量后,执行一次脚本文件 /etc/profile才生效
[root@localhost jdk1.8.0_121]# jps
-bash: jps: command not found
You have mail in /var/spool/mail/root
[root@localhost jdk1.8.0_121]# . /etc/profile
[root@localhost jdk1.8.0_121]# jps
28746 Jps
[root@localhost jdk1.8.0_121]# which jps
/opt/softwhx/jdk1.8.0_121/bin/jps
[root@localhost jdk1.8.0_121]#