【linux】学习笔记Chap_13_Shell_variable

子进程或子shell

在登陆后的shell可以作为父shell

如果输入vi 命令 进入 另一个进程 则称为子进程

如果输入 bash 也可以创建一个新的shell 也是子sell

global and local 变量

像IGNOREEOF就是全局变量,他们可以用于任何进程 而且变量唯一

环境变量全部用大写表示 一般以小写命令局部变量(shell)变量

全部变量既是shell 也是 environment 变量不存在单纯的环境变量

想比较单纯shell变量全部变量可以使用env

若只在set中,不在env中就是纯shell变量 (set中变量也比env多)

两者都在的就是全部变量

默认创建的变量都是shell变量

创建环境变量-----export

export 来创建一个shell + environment 变量

1
2
lthero=smart
export lthero

即可生效

1
lthero=smart;export lthero

又或

1
export lthero=smart HOME="/etc/home"....

查看环境变量-----env

env 可以查看全部的默认变量(环境变量)

用set 可以查看全部的shell 变量

删除变量

unset 删除一个变量

unset lthero HOME 只能用unset or un-export 删除shell&环境变量

echo 引号用法

echo '……'单引号内容的会失效,将只输出会失效,将只输出

"……"双引号内$() 可以起作用 $()表达执行某个命令

用\连接长内容

echo test stetz stet \

test test … \

可以换行 但内容是相连的,输出不会有换行

用引号连接长内容

echo **’**test stets stet

etste**’**

或者用"" 内容会保留输入格式 即有换行

命令分类

internal(builtin)内部原生命令

shell会查找命令的程序位置再执行

external外部命令

shell 会在 PATH这个环境变量中,优先查找外部命令程序位置

echo $PATH 可以查看全部外部命令存入位置 可以自己再添加 /bin:/usr/bin: … 用冒号分隔

type检测命令类型

可以用type 检测所用命令是否为原生命令

type date time set 一次查三个

date is /bin/date

time is a shell keyword //time 是keyword 也是原生在shell内部的命令

set is a shell builtin //原生命令

命令help

help 可以列出全部的builtin命令 其中 help也是builtin命令

对于内置命令,可以查看基本用法

” help 命令“ 和“命令 --help”一样

help -s pwd 将只显示其选项 参数

对于外置命令,用

“命令 --help”

export----添加自定义路径

对于已经设置好的PATH 可以用export 添加自己的路径

1
exprot PATH="$PATH:/usr/bin/myfile"

其中 myfile 里面可以放入自定义的shell

1
exprot PATH="/usr/bin/myfile:$PATH"

此用法将自定义路径添加到前面

添加到前面后,如果自己有同名的内置sh文件,shell 会优先执行自定义的,再执行内置的

设置PATH

1
exprot PATH="/bin:/usr/bin:/usr/local/bin"....

设置终端命令符号

/root/.bashrc 中添加

1
export PS1="\[\e[33;1m\]\u@\h:\w# \[\e[0m\]"

32是绿色 33淡黄色

可以设置命令提示符 成为绿色 \u 命令 user \h hostname \w 是当前全路径 \W 只显示当前路径

修改后立即生效source /etc/profile

详细

另外:

  • vim /etc/motd 可以修改连接上linux对话

如:Hello,Welcome to Linux!

  • /etc/profile.d 目录下添加自定义sh脚本将连接到linux时执行

上面PS1中的用法是一种特殊写法

\u代表 $USER(环境变量) 当前用户

\w代表$PWD 当前路径

\h代表$(hostaname) 主机名

\d代表date 时间

@代表time 运行时间

!代表历史命令

查看历史记录

history

history 将展示全部的历史记录 如果想要运行某条 num是命令编号

可以!num 将执行那条命令, !! 将自动执行上一条命令

fc

fc 将自动调用vim 编辑器修改命令 修改完成并自动r执行

fc -l 显示历史近20条命令

fc -s num! num 一样 执行指定命令

fc num 将编辑此命令