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 20:09
下一篇 2018-04-14 20:41

相关推荐

  • 手把手系列(三)教你自制简单Linux系统

    CentOS启动相关最重要的几个文件有:内核vmlinuz文件、虚拟文件系统initramfs文件、grub文件以

    及init启动程序,围绕这几个文件,我们来制作一个能够简单启动的自制Linux系统

    2018-05-14
  • 迁移/home目录到新的分区上步骤

    迁移/home目录到新的分区上步骤 1、 安装一个新的硬盘 2、 查看新硬盘的设备名,如下图所示: 3、 在新硬盘上创建一个主分区,如下图所示: 4、 将新创建的分区格式化为ext4文件系统,并加上/home卷标,如下图所示: 5、 创建/home目录临时挂载点,并将分区挂载到临时挂载点上,如下图所示: 6、 切换单用户,将除了root用户之外的用户踢出,如…

    2018-04-27
  • 用户组_配置文件

    /etc/passwd /*name:password:UID:GID:GECOS:directory:shell*/ /etc/shadow login name encrypted password date of last password change minimum password age maximum password age passwor…

    Linux笔记 2018-04-14
  • ansible_playbook

    —– hosts: allremote_user: root vars:ports:-81-82-83 vars:ports:– listen_port: 81– listen_port: 82– listen_port: 83 vars:ports:– web1:port: 81#na…

    Linux笔记 2018-07-30
  • 第二周作业

    第二周作业
    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │ └── grub
    ├── dev
    ├── etc
    │ ├── rc.d
    │ │ └── init.d
    │ └── sysconfig
    │ └── network-scripts
    ├── lib
    │ └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │ └── local
    │ ├── bin
    │ └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    Linux笔记 2018-05-13