【!编号】可以执行历史记录中的相应编号的命令
命令历史记录先保存在内存中,shell退出时才会写进用户目录下的隐藏文件.bash_history.
将历史命令记录强制写入文件需要使用【-a】
alias命令别名
【-p】查看当前可用的别名
创建别名【alias newname=’commandschakan’】
命令别名属于内部命令,一个别名只在它所被定义的shell进程中有效
取消别名unalias name
本章小结:能够创建子进程的命令:外部命令
能够创建子shell的方法:执行相关shell程序,如bash,tcsh,...;使用进程列表,使用协程
第六章:使用Linux环境变量
环境变量分为两类:局部环境变量和全局环境变量;全局环境变量对于shell会话和所有生成的子shell都是可见的,局部环境变量只对创建他们的shell可见。
【全局环境变量对那些所创建的子shell获取父shell信息的程序来说非常有用】
1):全局环境变量
查看:【printenv】或者【env】查看特定的环境变量使用前者,如printenv JAVA_HOME
使用【echo $varName】也可以显示变量值
【set】显示为某个特定进程设置的所有环境变量,包括局部变量,全局变量,和用户自定义变量。没有特殊的命令可以显示局部环境变量
创建自定义全局环境变量【export】
【修改子shell中全局环境变量并不会影响父shell中该变量的值,即使使用export也不行】
删除环境变量【unset varName】
【一般;关于$的使用:如果要用到变量,需要使用;操作变量,不需要使用】
同样linux命令大全,子shell中删除一个环境变量父shell中依然不受影响
父shell中的局部变量子shell中也无法使用
2):path环境变量
可以临时修改path变量;PATH=....
3):定位系统环境变量
启动bash shell的三种方式
登录时作为默认登录shell
作为非登录shell的交互式shell
作为运行脚本的非交互shell
作为默认登录shell启动时,登录shell会从五个不同的启动文件中读取;分别是
/etc/profile
$HOME/.bash_profile
$HOME/.bashrc
$HOME/.bash_login
$HOME/.profile
交互式shell进程启动时,比如在命令行下执行bash,就会启动一个交互式shell,只会检查$HOME/.bashrc文件
非交互式shell时,例如运行shell脚本,这个时候会检查BASH_ENV这个环境变量。
4):关于环境变量持久化
【直接在/etc/profile中修改变量不是一个好主意,因为会随着发行版的升级而更新从而导致自己修改的变量设置失效】
好的方法是在/etc/profile.d下创建一个.sh结尾的文件,将所有的新的或者修改过的全局变量设置放在这个文件中.
5):数组变量
varName=(varValue0 varValue1 varValue2),将变量值放在小括号中,中间使用空格隔开
数组下标从0开始,如echo ${varName[1]}将输出varValue1,显示整个数组,索引使用[*]
第七章:Linux的安全性
1):用户控制,主要通过两个文件
/etc/passwd文件,各个字段的信息如下
登录用户名;用户密码;用户账户UID,用户账户GID,用户账户文本描述,用户HOME目录位置,用户默认shell
/etc/shadow
登录名,加密后的密码,自上次修改密码之后过去的天数密码,多少天后才能更改密码,多少天后必须更改密码,密码过期前提前多少天提醒用户更改密码,密码过期多少天后禁用账户,账户被禁用日期,预留字段.