Linux---Shell(使用技巧 与 变量)

目录

一、概念

二、Shell的使用技巧

2.1 自动补齐

2.2 命令替换

2.2.1 反引号(``)

2.2.2 金钱符 $()

2.3 I/O 重定向

2.3.1 标准输入

 2.3.2 标准输出

2.3.3 标准错误

2.4 管道

 三、Shell 中的变量

3.1 本地变量

3.2 环境变量

3.2.1 环境变量的定义和清除

3.2.2 几个重要的环境变量

3.2.3 环境变量的配置文件

3.3 位置变量

3.4 特殊变量


一、概念

        shell是一种具备特殊功能的程序,处于用户和内核之间,提供用户与内核进行交互的接口;shell可接收用户输入的命令,将命令送入到内核中执行,内核接收到用户的命令后调度硬件资源完成操作,再将结果返回给用户。

简单来说:程序指令 ---> 内核 ---> 硬件资源

二、Shell的使用技巧

2.1 自动补齐

        利用 tab 键可以根据输入的字符串自动查找匹配的命令、文件、目录等,如果匹配结果唯一,Shell会自动补齐;如果有多个可以匹配的名称,按两次 tab 键后Shell 会列出所有匹配项。

例如:

cat ./     查看 home 路径下的文件

2.2 命令替换

2.2.1 反引号(``)

       作用是将命令字符替换为命令的执行结果

如: echo   `ls` (替换 ls 命令,输出当前目录下的文件和目录)

2.2.2 金钱符 $()

        作用与反引号相同

如:echo $(ls)

2.3 I/O 重定向

2.3.1 标准输入

        标准输入文件的描述符是 0 ,默认设备是键盘,命令在执行时从标准输入文件中读取需要的数据

如:输入重定向 " < " 可以指定其右值为 左值的输入,具体格式为:命令 0 < 文件名

其中 0 是标准输入文件标识符,可以被省略

如:wc -l < ./lisi/1.txt  (将 1.txt 中的内容作为 wc 的输入,统计文件中的行数)

 2.3.2 标准输出

        标准输出文件的描述符是 1 ,默认设备是显示器,命令在执行后其输出结果会被发送到标准输出文件。

如:输出重定向 " > " 可以将 右值作为左值的输出端,具体格式为:命令 1 > 文件名

其中 1 是标准输入文件标识符,可以被省略

如:cat ./lisi/1.txt > 2.txt (将执行结果以覆盖的方式输出到文件 2.txt 中)

可以使用 " >> " 运算符,以追加的形式将结果输出到 file 文件

2.3.3 标准错误

        标准错误文件的描述符是 2,默认设备是显示器,命令在执行时产生的错误信息会被发送到标准错误文件。

如:错误重定向 " > " ,具体命令格式为:命令 2 > 文件名

其中 2 是标准输入文件标识符,不可以被省略, 不能有空格

如:cat 3.txt 2> 4.txt(打开不存在的文件3.txt,将执行的错误信息重定向到文件 4.txt 中)

执行该命令后,屏幕上不会输出错误信息,错误信息在 newfile中,同样的也可使用" >> "追加

2.4 管道

        管道符号 " | ",可以将多个简单的命令连接起来,使一个命令的输出,作为另一个命令的输入,借此来完成复杂的功能,格式为: 命令1 | 命令2 | ... | 命令n

如:ls -l /lisi | grep 1.txt (输出etc 目录下文件信息包含 1.txt 关键字的行)

 

 三、Shell 中的变量

3.1 本地变量

        本地变量相当于 C语言中的局部变量,只在本 Shell 中有效,如果 Shell 退出,本地变量将被销毁,格式为:NAME = value

NAME 是变量名,value 是赋给变量的值,如果 value 没有指定,变量将被赋值为空字符串,使用变量时,要在变量前加 $ 符号 , Shell 也支持多个变量的输出,变量与值之间不能有空格

如:NAME= tom,AGE=18 

        echo my name is $NAME and $AGE

还可用 read 命令从标准输入中读取变量值,read 的 -p 项可以设置输入提示信息

如: read -p "please you input an int number:" a

删除所定义的变量,可以使用 unset 命令

如: unset NAME 

  

3.2 环境变量

        环境变量用于初始化 Shell 的启动环境

3.2.1 环境变量的定义和清除

        一般用来存储路径列表,这些路径用于搜索可执行文件、库文件等,格式:export ENVIRPON-VARIABLE= value

环境变量必须要使用 export 导出,export关键字的作用是声明此变量为环境变量

如:export APPSPATH=/usr/local (定义APPSPATH变量并赋值为 /usr/local)

命令行中使用export定义的环境变量只会在当前Shell 与 子Shell 中有效,Shell 重启后这些环境变量将丢失。

        使用 env 命令可以查看所有的环境变量,包括用户自定义的环境变量

        删除环境变量 和 删除本地变量方法相同,调用 unset 命令

如: unset APPSPATH 

3.2.2 几个重要的环境变量

(1) PATH

用于帮助Shell找到用户所输入的命令, PATH记录了用户所输入的可执行程序这一系列目录

如: $PATH

 PATH 的值可以被修改,但在修改时不可以直接赋予新值,否则 PATH 现有的值会被覆盖,如果要在PATH 中添加新目录,则可以用:

PATH=$PATH:/new directory

$PATH 表示原来的 PATH 变量,new directory 表示要添加的新路径

(2) PWD 和 OLDPWD

$pwd 记录当前的目录路径,当利用cd 切换到其他目录时,系统自动更新$pwd的值,OLDPWD保存旧的工作目录

(3) HOME

记录当前用户的 家目录

(4) SHELL

SHELL 的变量是/bin/bash, 表示当前的Shell 是bash,如果有必要使用其他Shell ,则需要重置SHELL变量的值

(5) USER 和 UID

用于保存用户信息的环境变量,USER 保存已登录的用户的名字,UID 则保存已登录用户的 ID

(6) PS1 和 PS2

PS1 和 PS2 称为提示符变量,用于设置提示符格式;

PS1 用于设置一级Shell 提示符,也称主提示符

\u:表示当前用户名

\h:表示主机名

\w:表示当前目录名

\$是目录提示符,普通用户是$符号,root是 # 符号

PS2 用于设置二级Shell 提示符

PS2 的值为  > ,当输入命令不完整时,会出现二级提示符

3.2.3 环境变量的配置文件

Linux 中环境变量包括 系统级 和 用户级 ,系统级的环境变量对每个用户都有效,用户级的环境变量只对当前用户有效;

环境变量的配置文件也分为 系统级 和 用户级 ,系统级的文件有 /etc/profile 、/etc/profile.c、/etc/bashrc、/etc/environment 等,这些文件对所有用户都永久有效;

用户级的环境变量配置文件主要是 .bash_profile 和 .bashrc 两个文件,位于家目录下

.bash_profile文件主要定义当前Shell 的环境变量,.bashrc文件主要用于定义 子Shell环境变量

上述文件均可定义永久有效的环境变量,但要区分开环境变量作用的区间

3.3 位置变量

        主要用于介绍传入 Shell 脚本的参数,又称为 位置参数,名称由 "$" 与整数构成:$n

如变量 $1 接收传入脚本的第一个参数,当前变量名中的整数大于 9时,需要使用{}将其括起来,如${11},位置变量是Shell中唯一全部使用数字命名的变量,需要注意的是 n 是从1开始的,$0代表脚本本身

3.4 特殊变量

Shell中常用的特殊变量:

$#:传递到脚本的参数

$* 和 $@ :传递到脚本的所有参数

$?:命令退出状态,0表示正常退出,非0表示异常退出

$$:表示进程的 PID

猜你喜欢

转载自blog.csdn.net/weixin_64428129/article/details/127343717
今日推荐