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了,是不是很酷?
linux脚本初体验的更多相关文章
- 第三次随笔--安装虚拟机及学习linux系统初体验
第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟 ...
- 20155226-虚拟机与Linux之初体验
虚拟机与Linux之初体验 虚拟机的安装 虚拟机对我来说不是很了解,但今天在安装过程中加深了我的理解.虚拟机是一个在原来系统基础上进行的又一个系统安装,可以在不影响前者的情况下完成一些其不能解决的问题 ...
- [转]Windows10内置Linux子系统初体验
Windows10内置Linux子系统初体验 https://www.jianshu.com/p/bc38ed12da1d
- Linux之初体验
预备作业03--我的Linux初体验 学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 一开始以为这个项目很简单,以往也在自己的笔记本上看教程安装过软件, ...
- 虚拟机与Linux的初体验
很早的时候就知道虚拟机这个神奇东西的存在,但也仅仅是只闻其名,未见其身.后来在信息安全素质教育的这门课程上,为了做木马实验.暴力破解实验以及邮件窃取实验,这才比较直接的接触到了虚拟机.当我看着在另一个 ...
- Windows10内置Linux子系统初体验
http://www.jianshu.com/p/bc38ed12da1dhttp://www.jianshu.com/p/bc38ed12da1d WSL 前言 前段时间,机子上的win10又偷偷摸 ...
- NetCore1.1+Linux部署初体验
1.环境准备 Centaos7+Win10 虚拟机 Win10安装VS2017 https://www.asp.net/downloads注意勾选下.Net Core 3.Centaos安装netco ...
- linux学习初体验
前天买了鸟哥私房菜,昨天一早就到了.阅读了前两章. 一.Linux是什么 二.Linux如何学习 还有前面的计算机概论也值得一看.对于计算机构成,硬件解读,数据存储,比一般的电脑维修类的书深一些. 第 ...
- linux系统初体验
.操作系统的认识和安装 linux 一切皆文件! 对于我们学习以及以后从事运维工作的人儿来说,推荐centos,其他发行版本,万变不离其宗.(试着安装一个系统玩玩) 2.linux 系统基础 2.1. ...
随机推荐
- php5.3升级到5.5
在网站中发布中: / 开启调试模式 建议开发阶段开启 部署阶段注释或者设为falsedefine('APP_DEBUG',true); true没问题,改为:false就报错 报错如下: PHP Fa ...
- Week7(10月24日)
Part I:提问 =========================== 1.数据验证属性的练习. 按要求写出教室和课程的模型类. (1)教室类主键不自动增值,手工输入. (2)教室名字不超过10 ...
- C# 课堂总结1-二进制转换
一.目的:便于计算机表示,稳定性好,符合逻辑运算,真为1,假为0. 二.各进制表示方法: 2进制:0,1 8进制:0-7 16进制:0-9,A,B,C,D,E,F 二.转换方法: 1.各进制转换为10 ...
- 排行榜妙用——CSS计数器
碰到的坑 小伙伴你们是否有碰到以下的情况,排行榜前3名的样式不一样,你们是怎么处理的么?
- 架构漫谈:UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
这是一堂关于UML基础知识的补习课:现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了:本篇主要就以前自己一直感觉很迷糊的几种class之间的 ...
- 基于visual Studio2013解决算法导论之003雇佣问题
题目 雇用问题 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #in ...
- 手游接入Facebook的那些坑
之前工作须要在手游中接入了facebook,并以此写了<手游接入Facebook功能>的博文.当时facebook sdk的版本号还是3.x.代码集成度比較低.集成起来也比較麻烦.文中仅仅 ...
- 给你的Cordova HybridApp加入Splash启动页面
如今最新的Cordova 3以上的版本号支持启动画面了,是通过cordova插件实现的. 眼下Splash插件支持android,ios,blackberry等多个平台. 加入插件等步骤例如以下: 加 ...
- android Context的理解
很多初入Android开发的网友向我们问到Context有什么作用,很多地方都用到它,这里Android123给这些新入门的网友做个简单的解释: Context字面意思上下文,位于framework ...
- kali 国内镜像源,以及PD_tools,Vm_tools的安装
kali 系统apt-get 更新镜像源,往上分享的有,这里整理下 中科大kali源 deb http://mirrors.ustc.edu.cn/kali sana main non-free co ...