我们在使用计算机的过程中,是没有办法直接操作内核的,这样会破坏计算机的正常工作,因此在Linux当中,我们需要一个壳程序来操作计算机。

有:bash :系统默认的shell。
zsh :一种很强大的shell。
查看系统中可以使用的shell。

............。
查看ls是不是shell内置的命令如下:type ls

可以看到,ls 是被重命名成了 ls --color=auto 了。

比如:y=ax+b 其中的,a,b,x,y,都是变量。
定义一个数值变量。
比如定义一个变量a=10.

定义一个字符串变量 str="start"

就可以输出变量的的值了。

输出字符串变量的值。


取消字符串变量。

\n 表示 enter键。
\" 表示 ”
\' 表示 ’

还有很多的转义字符。

变量说明如下:
HOME 用户的目录。
SHELL 使用的SHELL是什么。
HISTSIZE 记录历史命令的条数。
MAIL 当我们使用命令 mail 在收信时,系统会去读取的邮件文件(mailbox)。
PATH 可执行文件的查找路径,不同路径直接使用" : "来分隔开。
LANG 系统使用的语言。
RANDOM 随机数变量。


使用命令:$ 查看shell 的 PID

可以看到shell的PID 是:1601 。

如果命令执行成功输出 0 ,失败输出错误码。
设置一个变量。
![]()
查看环境变量我们发现没有START这个变量。


这样就把START 变量设置成了环境变量了。
为什么要设置成环境变量,如果想要子程序也能够使用父程序设置的变量,就必须把变量设置成环境变量。(局部变量设置成环境变量)


比如声明成整形 declare -i variblename


这里设置array变量为数组。
比如把ls命令设置成:ls -al --color=auto.


使用命令:history 显示最近的命令。


编辑文件 :/etc/issue中的文件,把你想在欢迎界面输出的字符都写在这里。

重启后发现。

/etc/issue中代码的含义。
\d 本地时间日期
\l 显示这是第几个终端
\m 显示硬件等级
\n 显示主机的网络名称
\O 显示 domain name
\r 显示操作系统版本
\t 本地端的时间
\S 操作系统的名称
\v 操作系统的版本
如果想要保存 alias所设置的别名,或者一些环境变量,就需要配置/etc/bashrc文件或者/etc/profile文件,来永久保存,否则在bash字符终端设置的重启后就不起效了。
什么是:login shell ?
在输入密码前的界面就是。
什么是:non-login shell ?
不是字符型登录界面 比如:(x windows)。

在字符界面登录成功时候会执行这个脚本文件,只能由系统管理员来修改(由login-shell驱动)。
用户个人的profile脚本文件(由/etc/profile 驱动)。
/etc/profile 会去执行这个文件夹中的所有shell文件。
这个文件由/etc/profile.d/lang.sh调用执行,主要决定bash默认使用的语系。
由/etc/profile.d/bash_completion.sh这个文件加载。

只有non-login-shell才会去调用的脚本,只能给管理员修改。
由/etc/bashrc调用这里面的所有的shell脚本。
由/etc/bashrc来调用执行,用户的bashrc脚本。
使用命令:stty -a 查看快捷键设置。

常用快捷键:
CTRL + C : 终止目前命令
CTRL + D : 输入结束符号 EOF
CTRL + M : 回车
CTRL + S : 暂停屏幕
CTRL + Q : 恢复屏幕
CTRL + U : 删除整行命令
CTRL + Z : 暂停目前命令。
命令输出的结果叫做数据流,这个数据流可以给传给一个文件。
如:

比如一行中执行多条命令。

语法: command1 && command2 && command3
如果command1执行成功,就继续执行 command2 如果 command2 执行成功,就执行command3,如果command3 执行成功,整行命令执行成功。结果为1 ,否则为 0。

命令或:||
语法: command1 || command2 || command3
如果command1执行失败,就会继续执行 command2 ,如果 command2 执行失败就会执行command3 ,如果command3 失败,就彻底失败,返回的结果为0 ,否则为1 。

将一个命令的结果传入下一个命令的叫做管道。
比如:command1 | command2 | command3.
command2接收command1的结果,command3接收command2的结果。
比如:find / | more

把find / 的内容作为more命令的输入。