辉语:之前聊了很多关于Linux中的内容,今天我们继续跟大家分享一下Linux中非常重要的知识点:shell脚本的编写。今天,我们就一起来了解一下shell脚本。

编写简单shell脚本

shell是什么呢?

命令行是基于文本的接口,可用于向计算机系统输入指令
Linux命令行由shell提供!
Bash是Linux系统中最成功的shell。

shell脚本是什么呢?

shell脚本最简单的形式是一个可执行文件,其中包含命令列表,还可以具有编程逻辑,以控制整个任务中的决策。

为什么使用shell脚本?

Linux命令被组合到shell脚本中,以轻松解决重复和困难的现实问题;
如果编写得当,则shell脚本本身就是功能强大的命令行工具,并且可以被其他脚本利用。

编写简单的bash脚本

shell中的特殊字符:

#    :是注释符号
$    :是取变量的值
$( ) :是命令替换
‘ ‘   :是命令替换

许多字符在bash中有特殊的意义,如果想忽略这些含义,则使用引号和转义字符即可。\     :取消后面单个字符的特殊含义“ “   :转义shell扩展含义,不转义命令替换和变量的替换‘ ‘   : 可以转义单引号内部的所有字符含义

脚本的第一行以’#!’开头,通常称为sh-bang或shebang,这两个字符分别是sharp和bang,表示是一个解释型脚本。

vim shell1.sh
#! /bin/bashecho laoma

执行脚本之前,必须赋予该文件执行权限:

chmod +x shell1.sh

然后执行该文件

/home/student/shell1.sh

bash变量/别名/算数扩展

普通变量

[declare] 变量名 = 变量值

变量类型:

-i    integer
declare -i age=16
-l    所有字符转化为小写字母
-u   所有字符转化为大写字母

set命令:查看当前shell中的变量和函数!
如何取消一个变量的值呢?

unset  变量名

特殊变量

环境变量 environment
定义一个环境变量:

[declare -x] 环境变量名 = 值

或  export 环境变量名 = 值       (最常用的方式)
或  环境变量名=值;export 环境变量名

注意:普通变量和环境变量有什么区别呢?他们的作用区域不同,普通变量只能作用于当前shell中,而环境变量则适用于多个shell中。
例如:在一个shell中定义一个普通变量和一个环境变量;测试执行“bash”命令,则普通变量值不存在,而环境变量值存在!

env命令:查看当前shell中环境变量

取消定义使用:unset 环境变量名

shell特殊变量

$0          命令名或脚本名
$1          第1个参数名
$2          第2个参数名
$3          第3个参数名
….

$#          参数个数
$*          所有参数单做一个整体
$@          每个参数当做独立的个体
$?          上一个命令的返回值
$!          上一个放在后台执行的命令的PID

shell初始化环境的文件

登录式shell:/etc/profile、~/.bash_profile、~/.bashrc、/etc/bashrc非登录式shell:~/.bashrc、/etc/bashrc

每个文件的含义如下:

/etc/profile:此文件为系统的每个用户设置环境信息,系统中每个用户登录时都要执行这个脚本,如果系统管理员希望某个设置对所有用户都生效,则可以写在这个脚本里。~/.bash_profile:每个用户都可使用该文件设置专用于自己的shell信息,当用户登录时,该文件仅执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。~/.bashrc:该文件包含专用于自己的shell信息,当登录时以及每次新打开shell时,该文件被读取。/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。

bash别名

alias命令单独执行,可以查看当前shell环境中的命令别名。

alias别名:临时生效,在当前shell中执行alias命令
比如:alias hello=’echo hello’
hello     就会执行echo hello语句打印出hello

永久生效:编辑配置文件/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc ;在以上配置文件中添加别名语句即可;.或者source 文件名;让配置文件汇总内容生效。

取消别名:unalias 别名;如果是永久生效,则将文件中命令删除即可!

bash算术扩展

例子:

echo  $[1+!]echo $[2*2]echo $[5%2]expr 5 % 2

linux export 生效_Linux之提高命令行的工作效率相关推荐

  1. 每个 Linux 用户都应该知道的命令行技巧

    每个 Linux 用户都应该知道的命令行技巧 原创 2015-09-11 伯乐在线 程序员的那些事 [伯乐在线导读]:有网友在问答网站Quora上提问:"有哪些省时小技巧,是每个Linux用 ...

  2. 《Linux指令从入门到精通》——4.3 Linux下全屏幕文本编辑器的命令行方式

    本节书摘来自异步社区<Linux指令从入门到精通>一书中的第4章,第4.3节,作者:宋磊 , 宋馥莉 , 雷文利著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  3. 掌握好这23个Linux命令常用命令,让工作效率翻倍

    掌握好这23个Linux命令常用命令,让工作效率翻倍 文章目录: 我现在也非常勤奋,你知道,勤奋并不是什么了不起,关键是产品质量要高 --<朗读者>黄永玉 95岁 https://mp.w ...

  4. DevOps 解决方案:最大限度地提高开发人员的工作效率,缩短上市时间以及提高客户满意度

    DevOps 解决方案:和平.爱心与工作效率 为见证开发和运营之间前所未有的协作而做好准备.我们的解决方案可消除阻碍,有助于最大限度地提高开发人员的工作效率,缩短上市时间以及提高客户满意度. 为什么选 ...

  5. 使用智能客服系统提高了客服工作效率

    使用智能客服系统提高了客服工作效率,及时的抓取信息,能够为企业提高留下各户的成功率,给企业的快速发展提供强有力的支持.在目前这个受疫情影响的环境中,越来越多的人为了保障安全,会有大量的人选择进行线上咨 ...

  6. Cheat—— 给Linux初学者和管理员一个终极命令行备忘单

    当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助.还有一些其它的选择可能包括像'help','whereis'和'what ...

  7. linux mt命令,Cheat—— 给Linux初学者和管理员一个终极命令行备忘单

    当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助.还有一些其它的选择可能包括像'help','whereis'和'what ...

  8. Linux中10个有用的命令行补齐命令

    本文由 极客范 - 踏雁寻花 翻译自 Balakrishnan Mariyappan.欢迎加入极客翻译小组,同我们一道翻译与分享.转载请参见文章末尾处的要求. 在Linux系统中,输入一个命令,再按两 ...

  9. linux补齐命令,Linux中10个有用的命令行补齐命令

    在Linux系统中,输入一个命令,再按两次TAB键,就会列出所有以输入字符开头的可用命令.这并不新鲜,很可能你已经知道了这个.这个功能被称作命令补全.默认情况下,bash命令行可以自动补全文件或目录名 ...

最新文章

  1. 重磅!计算机主题征稿,【EI/SCI检索】ICCBD 2021诚邀您投稿参会!
  2. Disruptor之概览
  3. LGB + KFold 代码 (1)
  4. PHP内置函数生成随机数的方法汇总
  5. 计算机及相关设备制造业2020,在现实生活中,接近完全垄断市场类型的行业包括()。A.计算机及相关设备制造业B.稀有...
  6. loss低但精确度低_低光照图像增强网络-RetinexNet(model.py解析【2】)
  7. matplotlib 直方图_Matplotlib直方图和散点图
  8. 【SpringBoot】Spring boot 多数据源 no transaction is in progress EntityManager flush
  9. MITRE 发布防御知识库 Shield
  10. Javascript中括号“[]”的多义性
  11. myeclipse编程技巧--中编辑器输入任何字母都出现提示功能
  12. PR快闪模板 高端黑白超级快闪图文展示开场PR视频模板
  13. plsql导出表结构和表数据的使用小结
  14. python123九宫格输入法_python制作朋友圈九宫格图片
  15. 根据身份证判断年龄排序
  16. 神经内科常用评估量表,神经功能缺损评分量表
  17. 神铺垫、神转折、神代入
  18. 一个字节8位,无符号类型,最大值为什么是2的8次方-1,范围0-255
  19. 畅联“5机”,华为云WeLink勇当数字化联接器
  20. html页面虚化,css实现背景虚化效果的示例代码

热门文章

  1. eclipse调试debug时出现source not found
  2. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
  3. 挑战练习6.4 报告编译版本
  4. 解决listview与scroll冲突,自定义listview高度
  5. 《纽约时报》:乔布斯是伟大的暴君
  6. 从数组创建ArrayList
  7. Visual Studio Code 编辑器使用
  8. 在jboss上部署web应用
  9. java.sql.SQLException: 关闭的连接 解决办法
  10. JavaScript 编程精解 中文第三版 翻译完成