Linux shell基础
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,博文结构认识bash这个shellShell的变量功能一.认识bash这个shell1.计算机的运行状况1.硬件:当然就是需要你的硬件有"声卡芯片"这个配备,否则怎么会有声音;核心管理:操作系统的核心
千家信息网最后更新 2025年02月23日Linux shell基础
博文结构
认识bash这个shell
Shell的变量功能
一.认识bash这个shell
1.计算机的运行状况
1.硬件:当然就是需要你的硬件有"声卡芯片"这个配备,否则怎么会有声音;
- 核心管理:操作系统的核心可以支持这个芯片组,当然还需要提供芯片的驱动程序;
- 应用程序:需要使用者(就是你)输入发生声音的指令!
- Bash主要优点:
1.命令编修能力 (~/.bash_history )2.命令与文件补全功能3.命令别名设置功能4.工作控制、前景背景控制5.程序化脚本6.万用字符
在使用shell的时候,变量是经常会使用到的,变量的定义也很简单,只需要满足以下三个条件即可:
变量名由数字、字母、下划线组成;
必须以字母或者下划线开头;
不能使用 Shell 里的关键字,下图中的的变量命名就是合法的。
- 什么是变量?
简单定义就是:变量就是以一组文字或符号等,来代替一些设置或者是一串保留的数据。
- 变量的设置规则
1)变量与变量内容以一个等号"="来连接,myname=VBird 2)等号两边不能直接接 空格符,如下的定义就是错误的: myname = VBrid myname=VBrid Tsai 3)变量的名称只能是英文与数字,但是开头字符不能是数字,如下的定义是错误的: 2myname=VBird 4)变量内容若有空符可使用双引号或单引号将变量内容结合起来。 双引号内的特殊字符如$等,可以保有原来的特性: "var=lang is $LANG",则lang is en_US 单引号内的特殊符号则为一般字符: 'var=lang is $LANG',则lang is $LANG 5)可用转义字符"\"将特殊符号变为一般字符,例如\$ 6)在一串命令中,还需要通过其他的命令提供的信息,可以使用反单引号或者$: version=$(uname-r) echo $version 7)若该变量为了增加变量内容时,则可用"$变量名称"或${变量}累加内容: PATH="$PATH":/home/bin 8)若该变量需要在其他子进程执行,则需要以export来使变量变成环境变量: export PATH 9)通常大写字符为系统默认的变量,自行设置变量的话使用小写字符。 10)取消变量的方法:unset myname
- 变量的取用echo
[root@localhost ~]# echo $PATH/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
[root@localhost ~]# envLC_PAPER=zh_CN.utf8XDG_VTNR=1SSH_AGENT_PID=2807XDG_SESSION_ID=1HOSTNAME=localhost.localdomainLC_MONETARY=zh_CN.utf8IMSETTINGS_INTEGRATE_DESKTOP=yesGPG_AGENT_INFO=/run/user/0/keyring/gpg:0:1TERM=xterm-256colorSHELL=/bin/bashXDG_MENU_PREFIX=gnome-VTE_VERSION=3804HISTSIZE=1000WINDOWID=27262983LC_NUMERIC=zh_CN.utf8IMSETTINGS_MODULE=IBusUSER=root....................略
HOME:代表使用者的主文件夹。SHELL:告知我们,目前这个环境使用的 SHELL 是哪支程序?Linux 默认使用 /bin/bash 的啦!HISTSIZE:这个与"历史命令"有关,亦即是,我们曾经下达过的指令可以被系统记录下来,而记录的"笔数"则是由这个值来设置的。MAIL:当我们使用 mail 这个指令在收信时,系统会去读取的邮件信箱文件(mailbox)。PATH:就是可执行文件搜寻的路径啦~目录与目录中间以冒号(:)分隔,由于文件的搜寻是依序由 PATH 的变量内的目录来查询,所以,目录的顺序也是重要的喔。LANG:这个重要!就是语系数据啰~很多讯息都会用到他RANDOM:这个玩意儿就是"随机乱数"的变量啦!目前大多数的distributions 都会有乱数产生器,那就是 /dev/random这个文件。
- 用set观察所有的变量(含环境变量与自定义变量)
环境变量和自定义变量的区别:env环境可以被子进程继承/使用,自定义变量不能被子进程继承/使用。
比如:
在父进程编辑一个变量,去子进程看会显示空白
所以就要用export命令来变为环境变量
环境变量=全域变量 自订变量=区域变量
export:自定变量转成环境变量
举例:
[root@localhost ~]# name=$nameyes[root@localhost ~]# name="$name"yes[root@localhost ~]# name=${name}yes[root@localhost ~]# name=asd[root@localhost ~]# bash \\进入子程序[root@localhost ~]# echo $name[root@localhost ~]# exit \\退出子程序exit[root@localhost ~]# export name[root@localhost ~]# bash[root@localhost ~]# echo $nameasd[root@localhost ~]# exitexit
- echo $? 来查看上次命令是否正确(0为正确非0为错误)
[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# echo $?0[root@localhost ~]# asdbash: asd: 未找到命令...[root@localhost ~]# echo $?127
- 变量的有效范围:
被 export 后的变量,我们可以称他为"环境变量"!环境变量可以被子程序所引用,但是其他的自订变量内容就不会存在于子程序中。
二.shell变量的功能
- 变量内容的删除与取代
先让小写的path自定设置的与PATH内容相同
[root@localhost ~]# path=${PATH}[root@localhost ~]# echo ${path}/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
假设我不喜欢local/bin,所以将前1个目录删除掉
[root@localhost ~]# echo ${path#/*local/bin:}/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
将path的变量内容sbin取代大写SBIN
[root@localhost ~]# echo ${path/sbin/SBIN}/usr/local/bin:/usr/local/SBIN:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
#:符合取代文字的"最短的"那一个
##:符合取代文字的"最长的"那一个
- 变量的测试与内容替换
1.测试一下是否存在username这个变量,若不存在给予username内容为root
[root@localhost ~]# echo ${username}[root@localhost ~]# username=${username-root}[root@localhost ~]# echo ${username}root
2.若username未设置或为空字串,则将username内容设置为root
[root@localhost ~]# username=""[root@localhost ~]# username=${username-root}[root@localhost ~]# echo ${username}[root@localhost ~]# username=${username:-root}[root@localhost ~]# echo ${username}root
取消变量
[root@localhost ~]# name=$aaa[root@localhost ~]# unset $aaa
取消变量的方法为使用 unset:"unset 变量名称"例如取消 myname 的设置
变量
内容
环境
命令
就是
字符
文件
引号
目录
程序
进程
功能
系统
特殊
名称
子程序
指令
数字
文字
符号
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大学软件开发技巧
广东农村留守老人数据库
五千ip的网站需要多大服务器
其然软件开发
网络暴力属于网络安全范畴吗
全球软件开发专业大学排名
网络安全隐私调查背景
网络安全认证资质证明
海南盈泰网络技术有限公司内部账号
ppt背景网络安全
条码扫描枪软件开发
XRD 的PDF卡片数据库
苹果中国软件开发工程师
浙江服务器钣金机箱厂虚拟主机
有关网络安全与道德的资料
什么是网吧服务器
信息网络安全 杂志官网
重庆net软件开发哪家便宜
服务器和集中存储设备
服务器测试中st和ft
信息网络安全专项训练
云服务器使用雷电模拟器
如何用手机查看数据库
重庆特色少儿编程软件开发
ppt背景网络安全
哈工大硕士查重数据库
数据库系统三级模式由什么组成
互联网科技智能手机
云服务器安全性说明
橙色软件开发