Linux bash初识
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接受用户输入的命令并把它送入内核去执行。
实际上shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,shell有自己的编程语言用于对命令的编辑,它允许用户编写shell命令组成的程序。
使用shell实现对Linux系统的大部分管理。如:
文件管理
用户管理
权限管理
磁盘管理
软件管理
网络管理
......
Linux控制台使用
终端设备:terminal
能够接受输入,能显示输出。终端始终扮演人机接口的角色,所谓terminal,即机器的边缘。
虚拟终端和控制台
虚拟终端 屏幕和键盘只是一个终端,可能不够用,又不想增加设备投入,就产生了虚拟终端。像gnome-terminal,urxvt,mlterm,xterm等等是一个程序,职责是模拟终端设备,和虚拟终端的区别表面上在于它以GUI形式的窗口出现,内部则是程序结构和系统控制结构有所不同,但本质差不多。
显示系统消息的终端就叫控制台,Linux默认所有虚拟终端都是控制台,都能显示系统消息。
虚拟终端:6个,tty
Ctrl+Alt+F[1-6]
圆形终端:CentOS 6:
Ctrl+Alt+F7
CentOS 7:
在哪个虚拟终端启动,即位于哪个虚拟终端。
串行终端:ttys
伪终端:pty
命令行及命令提示符
Linux命令行即非图形化界面的模式,我们称之为命令行模式,也称为文本模式,由于在命令行模式下,所有的显示都是以代码显示的,要理解命令行模式,首先要知道命令提示符。
命令提示符是指操作系统中,提示进行命令输入的一种工作提示符。
在我们启动系统后会进入到一个登录界面,如下:
CentOS release 6.8 (Final)
#显示当前linux的名称(CentOS)与版本(6.8)
Kernel 2.6.32-642.el6.x86_64 on an x86_64
#显示Linux核心版本(2.6.32-642.el6.x86_64),并且运行在x86_64系统上
hhh login: root
#hhh是主机名,我们使用root账号来登录,root用户在Linux系统中代表无穷的权利。
Password:
#这一行是root敲回车后才会发现,而且输入的字符不会有任何显示,所以不要以为自己键盘坏了。
Last login: Sun NOV 25 00:52:56 from 192.168.21.1
#在输入正确密码登录后,系统会显示上一次的登录信息。
[root@HWN ~]#
#这一行是正确登录密码之后显示出来的命令行模式,在[]内,最左边的root表示当前登录用户,@之后接的是主机名(HWN),最右侧的~指的是当前所在的目录,#则是命令提示符。
注:刚开始使用的是CentOS 6,建议最后熟悉以后改使用为CentOS 7。
在Linux中命令提示符有两种:
[root@HWN ~]# --------->root用户提示符
[root@HWN ~]$ --------->普通用户提示符
第一个命令
先了解一下命令的语法结构
[root@HWN ~]# command [-option] parameter1 parameter2 ......
命令 选项 参数1 参数2
#上述命令详解:
1、command是命令的名称
2、[-option] 中并不一定存在,当要加入选项时,通常情况下会带-号,有的带--,作用是影响命令的执行结果。
-:短选项
--:长选项
3、parameter1 parameter2 ...是选项后面的参数,或者是命令的作用对象。
4、命令、选项、参数之间以空格来区分,不论几个空格都视为一个,所以空格是很重要的提示符,不能忽略。
5、写完命令之后就是执行了。
COMMAND:发起一个命令:请求内核将某个二进制程序运行为一个进程;我们键入一个命令实际上就是执行了一个程序,在这个过程中从回车之后从程序转换成了进程,从静态转换成了动态运行,所谓动态就是有生命周期,ls执行之后,进程就不存在了,但是静态的命令还是存在的,只要你不去删除它,就一直存在于文件系统的指定路径下面。
程序-->进程 静态-->动态(有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件。
多数系统程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
普通命令:/bin,/usr/bin,/usr/local/bin
管理命令:/sbin,/usr/sbin,/usr/local/sbin
注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件。