• linux脚本初体验


    前言

    第一次写linux脚本,有点紧张。

    1. 写一个寻找特定用户的脚本文件?

    #! /bin/sh

    who | grep $1

    其中脚本第一行用来告诉kernel去使用/bin/sh来解释这个脚本;

    而$1则是执行脚本命令时带入的命令行参数,例如sh-# find_user me

    用来查看当前的系统中是否有me这个用户登入。

    2. 当脚本写好后,是无法直接运行的,为什么?

    直接运行,就会出现如下的错误信息:

    sh-# ./find_user me
    sh: ./find_user: Permission denied

    从错误信息来看,应该是find_user这个文件不具备可执行的权限。

    使用ls -l进行检查,果不其然这个文件的权限为644,不具有可执行权限。

    sh-# ls -l find_user
    -rw-r--r-- 1 root root 9 Jan  1 00:15 find_user

    3. 那我们要怎样让其可执行呢?

    chmod可以用来改变文件的权限:

    sh-# chmod 755 find_user

    sh-# ls -l find_user

    -rwxr-xr-x 1 root root 9 Jan  1 00:15 find_user

    你可以发现文件权限变成755了,./find_user执行这个脚本果然没问题。

    4. 为什么文件的默认权限是644?

    这跟umask的设定有关,

    sh-# umask
    0022
    umask的值是可更改的。

    关于umask相关的部分,在后续可能会做更深入的学习和分析。

    5. 脚本写好了要怎么管理?

    假设你写了好多脚本工具,那你该如何管理它们呢?

    如果每次执行一个脚本命令都需要靠绝对路径来执行,那会不会很麻烦呢?

    所以建议用户将自己编写的工具都放在同一个地方,比如/usr/bin或者用户喜欢的某个目录下,

    然后再使用 export PATH=$PATH:/usr/bin将/usr/bin加到PATH中。

    试一下你可以在任何路径下都可以执行find_user了,是不是很酷?

  • 相关阅读:
    ActiveMQ
    bzoj 3039 悬线法求最大01子矩阵
    bzoj 1015 并查集
    bzoj 3037 贪心
    bzoj 2599 数分治 点剖分
    bzoj 2743 树状数组离线查询
    bzoj 2141 线段树套平衡树
    bzoj 3171 费用流
    bzoj 2751 快速幂
    bzoj 2956 数学展开,分段处理
  • 原文地址:https://www.cnblogs.com/james1207/p/3306359.html
Copyright © 2020-2023  润新知