前言

第一次写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了,是不是很酷?

linux脚本初体验的更多相关文章

  1. 第三次随笔--安装虚拟机及学习linux系统初体验

    第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟 ...

  2. 20155226-虚拟机与Linux之初体验

    虚拟机与Linux之初体验 虚拟机的安装 虚拟机对我来说不是很了解,但今天在安装过程中加深了我的理解.虚拟机是一个在原来系统基础上进行的又一个系统安装,可以在不影响前者的情况下完成一些其不能解决的问题 ...

  3. [转]Windows10内置Linux子系统初体验

    Windows10内置Linux子系统初体验 https://www.jianshu.com/p/bc38ed12da1d

  4. Linux之初体验

    预备作业03--我的Linux初体验 学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 一开始以为这个项目很简单,以往也在自己的笔记本上看教程安装过软件, ...

  5. 虚拟机与Linux的初体验

    很早的时候就知道虚拟机这个神奇东西的存在,但也仅仅是只闻其名,未见其身.后来在信息安全素质教育的这门课程上,为了做木马实验.暴力破解实验以及邮件窃取实验,这才比较直接的接触到了虚拟机.当我看着在另一个 ...

  6. Windows10内置Linux子系统初体验

    http://www.jianshu.com/p/bc38ed12da1dhttp://www.jianshu.com/p/bc38ed12da1d WSL 前言 前段时间,机子上的win10又偷偷摸 ...

  7. NetCore1.1+Linux部署初体验

    1.环境准备 Centaos7+Win10 虚拟机 Win10安装VS2017 https://www.asp.net/downloads注意勾选下.Net Core 3.Centaos安装netco ...

  8. linux学习初体验

    前天买了鸟哥私房菜,昨天一早就到了.阅读了前两章. 一.Linux是什么 二.Linux如何学习 还有前面的计算机概论也值得一看.对于计算机构成,硬件解读,数据存储,比一般的电脑维修类的书深一些. 第 ...

  9. linux系统初体验

    .操作系统的认识和安装 linux 一切皆文件! 对于我们学习以及以后从事运维工作的人儿来说,推荐centos,其他发行版本,万变不离其宗.(试着安装一个系统玩玩) 2.linux 系统基础 2.1. ...

随机推荐

  1. Python 操作Redis

    redis对比monoDB: redis和memcache 是key value非关系型数据库,mysql是关系型数据库,表的结构和保存的内容有严格的要求,关系型数据库无法保存临时数据或不标准的数据, ...

  2. tomcat虚拟主机虚拟目录配置

    今天着实要记上一笔,需要配置tomcat虚拟目录的问题 一 首先看两个名词 appBase -- 顾名思义 就是你app所在的目录,目录下面的子目录将自动被部署为应用:war被解压并部署 docBas ...

  3. C语言--union关键字(转载)

    union维护足够的空间来放置多个数据成员中的“一种”,而不是为每一个数据成员配置空间.在union中,所有的数据成员共用一个空间,同一时间只能存储其中一个数据成员,所有的数据成员具有相同的起始地址.

  4. 彻底理解浮动float CSS浮动详解 清除浮动的方法

    我们把网页的常用的布局格式分为以下三种: 1.标准流. 所谓的标准流就是,行内元素自己单独一行,而块级元素是上下显示的. 以前我们学习的都是标准流.   注意:标准流使我们网页布局中最稳定的一种结构 ...

  5. Android编程心得-设计一个可重用的自定义Dialog

            我们在实际开发过程中,会遇到一个问题,我们的Dialog如果使用一般的方法进行设置调用出来,会有很多的重复代码,如何将Dialog按照自己的思路设计呢,并让其可重用呢,下面我来介绍一下 ...

  6. SecureCRT辅助解决方案

    SecureCRT辅助解决方案 1. 下载SecureCRT 7.3版本并激活: 2. SecureCRT linux配色方案: 3. SecureCRT设置log保存方案: 1. secureCRT ...

  7. BZOJ 1110: [POI2007]砝码Odw( 贪心 )

    ORZjcvb... #include<bits/stdc++.h> using namespace std; ; int N, M, item[maxn], V[maxn]; vecto ...

  8. 算法之旅,直奔<algorithm>之十 count_if

    count_if(vs2010) 引言 这是我学习总结<algorithm>的第十篇,这个重要的地方是设置条件.用的还是蛮多的.(今天下午挺恶心的,一下午就做一个面试题,调代码调傻了... ...

  9. jQuery Mobile 入门基础教程

    jQuery Mobile是jQuery在手机上和平板设备上的版本.jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架. jQue ...

  10. ZOJ3768 夹逼查找【STL__lower_bound()_的应用】

    首先学习一下lower_bound() 函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置.如果所有元素都小于val,则返回last ...