Linux学习笔记五

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

你可能感兴趣的:(Linux学习笔记五)