type检测是否为外部命令
命令别名设置功能:alias
可以将命令复杂的命令设的成自己想要的命令格式
alias 别名='你的命令'
取消别名的设置可以用unalias 别名
————————————————————————————————————————————————————
变量设置规则:
变量与变量的内容以一个等号来连接
变量名开头不能是数字
变量的内容若有空格可以用 " 或 ' 将变量内容结合起来,但双引号内的 $ 等特殊字符,可以保有原本的特性。
单引号内的特殊字符则仅为一般字符
可用转义符 \ 将特殊符号变成一般字符
在一串命令的执行中,还需要借由其他额外的命令所提供的信息时,可以使用反单引号 ` 或 $ 例如获取内核版本的设置:version=$(uname -r)再echo $version (意思就是,将uname里的内容赋给version)
若该变量为扩增变量内容时,则可用"$变量名称"或${变量}累加的内容,例如:PATH="$PATH":/home/bim或PATH=${PATH}:/home/bin
若该变量需要在其他子程序执行,则需要以export来使变量变成环境变量:export PATH
通常大写字符为系统默认变量,自行设置变量可用使用小写字符,方便判断。
取消变量的方法使用unset:unset 变量名称 例如取消myname的设置 unset myname
————————————————————————————————————————————————————
env查看环境变量
set查看所有变量(环境变量和自定义变量)
子进程仅会继承父进程的环境变量,子进程不会继承父进程的自定义变量
命令ulimit限制用户的某些系统资源,包括可以开启的文件数量,可以使用的CPU时间,可以使用的内存总量等...
变量内容的删除与替换(在用echo查询变量时,echo ${var}):
删除
#从前面删除
${variable#/*local/bin:}符合替换文字的最短的那一个
${variable##/*local/bin:}符合替换文字的最长的那一个
%从后面删除
%与%%跟#和##都是一个意思
替换
/替换两个斜杠中间的字符,后面的是新字符
${variable/sbin/SBIN}把sbin替换为SBIN,但只替换一个
${variable//sbin/SBIN}把sbin替换为SBIN,但全部替换
-若变量没有值,就将-号后面的变量值赋给它
:若变量没有值或者是空字符串,都能够用后面的内容来替换与设置
————————————————————————————————————————————————————
使用history来查看过去使用的命令
history
-n查看过去n条命令
-c将目前shell中的所有history内容全部清除
-w将目前的history记录内容所有history记录
当我们以bash登录Linux主机后,系统会主动地由家目录的 ~/.bash_history读取以前曾经执行过的命令,记录是数据容量与HISTFILESIZE这个变量设置有关。
每次执行过的命令会在,系统注销时,系统就会把在这之前执行的命令更新到~/.bash_history中。也就是说,历史命令在我注销时,会将最近的HISTFILESIZE条记录到我的记录文件当中。-w可以直接写入,记录的条数永远是由HISTFILESIZE那么多,旧的被删除被新的顶替
!number 执行第几号命令
!!执行上一条命令
!command 由最近的命令向前查找(命令串开头为command)的那个命令,并执行。
————————————————————————————————————————————————————
命令查找顺序
1.以相对/绝对路径执行命令
2.由alias找到该命令来执行
3.由bash内置的命令来执行
4.通过$PATH这个变量的顺序查找到的第一个命令来执行
————————————————————————————————————————————————————
/etc/issue你登录bash时显示的语言
/etc/issue.net提供给telnet这个远程登录程序用的,当我们使用telnet连接到主机时,主机的登录画面就会显示/etc/issue.net而不是/etc/issue
/etc/motd让取得用户的信息并且加入到这个文件里
————————————————————————————————————————————————————
login shell:取得时需要完整的登录流程,就称为login shell。例如:你要由tty1~tty6登录,需要输入用户的账号与密码,此时取得的bash就称为login shell
non-login shell:取得bash的方法不需要重复登录的操作。例如:以X Window登录Linux后,再以X的图形化接口启动终端,此时终端没有让你再次登录,该bash环境就被称为non-login shell,第二个bash也是non-login shell
一般来说login shell其实只会读取这两个配置文件:
1./etc/profile:这是系统整体的设置
2/~/.bash_profile 或 ~/.bash_login 或~/.profile:属于用户个人设置,你要添加自己的数据,就写入这里
系统整体设置:
/etc/profile
如果想修改所有用户的整体环境,可以修改这里
该文件设置的变量主要有:
PATH:会根据UID决定PATH变量要不要含有sbin的系统命令目录
MAIL:根据账号设置好用户的mailbox到/var/spool/mail账号名
USER:根据用户的账号设置此变量内容
HOSTNAME:根据主机的hostname命令决定此变量内容
HISTSIZE:历史命令记录条数,CentOs 8.x设置为1000
umask:包括root默认为022而一般用户为002等
外部的配置文件:
/etc/profile.d/*.sh
只要在/etc/profile.d/这个目录下且后缀为.sh的文件都具有r的权限,那么该文件就会被/etc/profile调用。这个目录下面的文件规范了bash操作界面的颜色、语系、ll与ls命令的命令别名、vi的命令别名、which的命令别名等。若需要帮所有用户设置一些共享的命令别名时,可以在这个目录下面自行建立扩展名为.sh文件,并将所需要的的数据写入即可
/etc/locale.conf
这个文件是由/etc/profile.d/lang.sh调用的,决定bash默认使用何种语系的配置文件
/usr/share/bash-completion/completions/*
由/etc/profile.d/bash_completion.sh这个文件加载的
其实login shell情况下所读取的整体环境配置文件只有/etc/profile,但/etc/profile还会调用其他配置文件
个人用户设置
~/.bash_profile
bash在读完整体环境设置的/etc/profile并借此调用其他配置文件后,便开始读取用户的个人配置文件。所读取的个人偏好文件其实主要有三个,依序分别是:
~/.bash_profile
~/.bash_login
~/.profile