Shell---常用命令、常用环境变量、PS1、语系变量、位置变量、预定义变量、数值运算

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/78357935

常用命令

set 查询所有正在运行的变量
- -u 当查看不存在的变量时会提示报错

unset 删除变量(不是删除值,不需要加$)

unset name

env 只查看环境变量
export 声明环境变量

export 变量名=变量值
export 变量名

常用环境变量

  • HOSTNAME: 主机名
  • SHELL:当前shell
  • TERM: 终端环境
  • HISTSIZE: 历史命令条数
  • SSH_CLIENT:记录客户端ip
  • SSH_TTY:ssh连接的终端
  • USER:当前登录的用户

PS1 变量

  • \d:日期”星期 月 日”
  • \H:显示完整的主机名
  • \t:显示24小时制时间 “HH:MM:SS”
  • \A:显示24小时制时间 “HH:MM”
  • \u:显示当前用户名
  • \w:显示当前所在目录的完整名称
  • \W:显示当前所在目录的最后一个目录
  • $:提示符

语系变量

  • locale 查询正在使用系统语系
  • locale -a 查看支持的所有语系
  • /etc/sysconfig/i18n 默认语系环境(下次开机后的环境)

  • LANG:定义系统主语系的变量

  • LC_ALL:定义整个语系的变量

位置变量

位置参数变量 作用
n|n 0代表命令本身, 1  9 代表第一到第九个参数。十以上的参数需要用大括号包含,如${10}
| 0),把所有参数当成一个整体
@| 0),把所有参数区分对待
$# 代表命令行中所有参数的个数

预定义变量

预定义变量 作用
$? 最后一次执行的命令的返回状态。如果这个 变量的值是0,证明上一个命令正确执行;如果这个变量的值为非零(由命令自己决定),则证明上一个命令执行不正确
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)

read 用户输入

read [选项] [变量名]
- -p “提示信息”:在等待read输入时,输出提示信息
- -t 秒数 :等待用户输入,制定等待时间
- -n 字符数:直接受指定的字符数,就会执行
- -s :隐藏输入的数据


运算符

declare 声明变量类型

declare [+/-] [选项] 变量名

  • -:给变量设定类型属性
  • +:取消变量的类型属性
  • -a:数组型
  • -i:整数型
  • -x:环境变量
  • -r:只读变量
  • -p:显示指定变量的被声明类型

使用下标访问数组
- array[0] : 访问第一个
- array : 访问第一个
- array[*] :访问所有的元素

# 整形
 a=1
 b=2
 declare -i c=$a+$b
 echo $c
---
3
array[0]=a
array[1]=b

declare -a array[3]=${array[0]}${array[1]}

echo "array[0]":${array[0]}
echo "array":${array}
echo "array[*]":${array[*]}
echo "array[2]":${array[2]}

declare -p 查看变量的所有类型。如果不加变量名就表示显示所有变量的所有类型

[root@localhost test]# declare -p c
declare -i c="3"

数值运算

expr 或 let 数值运算工具

  • result= (expr num1+num2)** 或 **result=`exprnum1+$num2`
  • let “result= num1+ num2”
[root@localhost test]# a=1
[root@localhost test]# b=2
[root@localhost test]# c=$(expr $a+$b)
[root@localhost test]# echo $c
3
[root@localhost test]# let "d=$a+$b"

(()) [运算式]

[root@localhost test]# c=$(($a+$b))
[root@localhost test]# d=$[$a+$b]

变量测试

较复杂。。。


相关文章
|
2月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
302 2
|
7月前
|
存储 Unix Shell
Shell 输出命令完全指南:echo 与 printf 的深度剖析
本文深入解析了 Shell 编程中 `echo` 和 `printf` 两个核心输出命令的用法与区别。`echo` 简单易用,适合基础输出;`printf` 功能强大,支持复杂格式化。文章从语法、转义序列、高级技巧到实际应用场景(如日志记录、进度显示)逐一讲解,并对比两者的性能与适用场景,帮助开发者根据需求灵活选择。最后通过进阶技巧和常见问题解答,进一步提升对两者的掌握程度。
391 1
|
8月前
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
10月前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
318 20
|
10月前
|
安全 Shell 数据处理
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
361 12
|
2月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
414 9
|
5月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
264 60
|
2月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
8月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。