shell脚本编程基础

简要概括一点脚本小知识

一、如何编写脚本:

1、脚本文件的第一行,顶格:给出解释器路径,用于指明解释执行当前脚本程序的解释文件

常见的解释器:

#!/bin/bash

注意:脚本中除了第一行声明解释器,其他的#都会被当做注释行。

2、shell脚本编程:过程式编程,解释运行,依赖于外部程序运行.

二、运行脚本:

1、赋予执行权限,并直接运行此文件;相对路径或绝对路径;

chmod +x /PATH/TO/SCRIPT_FILE

2、直接运行解释器。将脚本以命令参数传递给解释器程序

bash  /PATH/TOSCRIPT_FILE

示例:

1、显示/etc目录下所有以大写S或小写s开头的文件或目录本身

#!/bin/bash

ls  -d  /etc/[Ss]*

2、显示/var目录下的所有文件或目录本身,并将显示结果中的小写字母转换成大写字母

#!/bin/bash

ls  -d  /var/*|tr  [a-z] [A-Z]

三、bash的配置文件:

1、profile类:为交互式登录shell进程提供配置

2、bashrc类:为非交互式shell进程提供配置

四、登录类型:

1、交互式登录shell进程:

直接通过某终端输入账号和密码后登录打开的shell进程;

使用su命令:su -USERNAME 或使用su -| USERNAME 执行的用户切换;

2、非交互式登录shell:

su  USERNAME 执行的登录切换

图形界面下打开的终端;

运行脚本

3、profle类:

全局:对所有用户都生效;

/etc/profile

/ec/profile.d/*.sh

用户个人:仅对当前用户有效

~/.bash_profile

功用:

1、定义环境变量;只要用户登录就生效

2、运行命令或脚本,只要用户登录就执行一个shell或者命令

bashrc类:

全局:

/etc/bashrc

用户个人:

~/.bashrc

功用:

1、定义本地变量

2、定义命令别名

五、配置生效的优先级:

1、交互式登录shell进程:

/etc/profile –>  /etc/profile.d/*.sh  –>  /etc/profile.d/*

2、非交互式登录shell进程:

~/.bashrc –>  /etc/bashrc –>  /etc/profile.d/*

3、让通过配置文件定义的特性立即生效:

(1)、通过命令重复定义一次;

(2)、让shell进程重读一次配置文件;

source  /PATH/TO/SOMEFILE

.   /PATHTO/SOMEFILE

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95949

(0)
会飞的蜗牛会飞的蜗牛
上一篇 2018-04-14
下一篇 2018-04-14

相关推荐

  • Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用

    Linux系统上的命令格式为: command -options arguments–long options ifconfig   ~]# cd ~ 切换回自己的家目录 ~]#  cd ~USERNAME    切换指定用户的家目录 ~]#  cd –     在上一次所在目录与当前目录间来回切换     $PWD 当前工…

    Linux笔记 2018-05-11
  • 第四周作业

    第四周作业
    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2018-06-07
  • 带你认识Linux中的通配符

    所谓的通配是指:显示以指定条件的文件,英文名为glob。通配符是一种特殊语句,用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符它使得文件管理更加快速,便捷,大大提升了工作效率。

    2018-04-01
  • 7月2日~7月8日作业

    1、列出当前系统上所有已经登入的用户的用户名,注意:同一个用户登入多次,则只显示一次即可。 ~]# who | cut -d  ‘  ’   -f1  |  sort  -u 2、取出最后登入到当前系统的用户的相关信息。 3、取出当前系统上被用户当作默认shell的最多的那个shell. 4、将/etc/passwd中的第三个字段数值最大的后10个用户信息全…

    2018-07-07
  • 三剑客 sed

    三剑客之一

    Linux笔记 2018-08-07
  • 权限管理(接上篇)

    本文主要介绍:1、文件的属性 2、特殊权限:SUID、SGID、Sticky 3、访问控制列表ACL

    2018-04-15