shell脚本

4

巧了我就是萌 提交于 2019-12-15 20:28:37
Linux 系统用户与用户组管理 /etc/passwd和/etc/shadow /etc/passwd 记录了这个用户的一些基本属性 分割成七个字段 所包含的意思: 1)"用户名"是代表用户账号的字符串。 通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。 为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。 2)“口令”一些系统中,存放着加密后的用户口令字。 虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。 3)“用户标识号”是一个整数,系统内部用它来标识用户。 一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。 通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中

Shell编程—结构化命令(2)

北慕城南 提交于 2019-12-15 20:28:02
1 for 命令 for命令的基本格式: for var in list do commands done 在list参数中,你需要提供迭代中要用到的一系列值。 1.1 读取列表中的值 例子: $ vim test1 #!/bin/bash # testing the for variable after the looping for test in Alabama Alaska Arizona Arkansas California Colorado do echo "The next state is $test" done echo "The last state we visited was $test" test=Connecticut echo "Wait, now we're visiting $test" 执行结果: $ ./test1 The next state is Alabama The next state is Alaska The next state is Arizona The next state is Arkansas The next state is California The next state is Colorado The last state we visited was Colorado Wait, now we're

xshell命令 部分总结

江枫思渺然 提交于 2019-12-14 18:32:13
Xshell命令 一 概述: shell 一种解释型的语言,同解释器翻译成计算机机器语言,与javascript ,python同属于解释型语言。 如此相对的 有java .C# 属于编译型的语言,java语言通过编译器编译成class 文件,在通过java虚拟机 (JVM)的处理编程机器识别的语言。 二 Shell解析器 liunx解析器存放的目录如下: /bin/sh bash的一个快捷方式 /bin/bash bash 是liunx下面大多数模式使用的shell /bin/nologin 表示非交付,不能登录 /bin/dash 小巧高效,相对功能少一些 /bin/tcsh 具有C语言风格的一种shell ,特性多,缺陷不少 /bin/csh 是csh的增强版 bash 和 shell的关系 bash 是 sh的一个软连接 3) CentOS 默认的解析器 是 bash 三shell的脚本入门 脚本的格式 以 #!/bin/bash 注明解析器 自己编写案例 :<<! 多行注释 DESC 创建人生中的一个shell脚本 ANTHOR 张洋 ! :<<EOF CREATETIME: 2019-12-14 16:00:00 UPTETIME: EOF #!/bin/bash rm -rf /root/class21/test.txt mkdir /root/class21

用shell和python语言实现1到100相加的和

我的梦境 提交于 2019-12-14 09:08:21
大家是不是以为。这篇文章是《如何将Shell脚本应用到实际中》系列的啊。猜错了。出乎意料之外。哈哈。因为我的工作经验有限。我就不嘚瑟了。写点基本的吧。一方面加强自己的基础,二方面嘚瑟一下自己刚学会的Python基础语言以免忘记。(虽然是菜鸟)。 这个,是很简单的。题干的中心意思就是1+2+3+4+5+6+7+.....+100=?,我们要实现的就是这个“?”的值。 首先是用Python的while循环实现的: Python中的for循环也可以实现,看下图: 这个for循环呢。有个遍历是非常厉害的。那么用for来实现1+2+3+...+100的和是非常简单的了。 首先定义一个变量i,记录每次遍历的值。 定义一个变量sum1记录两数相加的和。 然后,最重要的来了,在这划重点哦,敲黑板。别走神哦。 for i in range(101): 这句的重要在 range ,为什么是 range ( 101 )? 答:range是范围函数,默认从0开始,故range(0,101)可以写成range(101)。 有人有疑问了。不是到 100 吗。怎么是 101 ? 答:range函数的规则是,左闭右开,等于数学上的左闭右开区间数。所以,是range(101)。 Are you ok ? 注意哦! for和while循环的最后,别忘了还有冒号 : ,英文字符下的哦! 最后呢,我用shell脚本写一下

Shell--输入/输出重定向

北慕城南 提交于 2019-12-14 09:05:21
Shell 输入/输出重定向 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file。 command < file 将输入重定向到 file。 command >> file 将输出以追加的方式重定向到 file。 n > file 将文件描述符为 n 的文件重定向到 file。 n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。 n >& m 将输出文件 m 和 n 合并。 n <& m 将输入文件 m 和 n 合并。 << tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。 需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。 输出重定向 重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示: command1 > file1 上面这个命令执行command1然后将输出的内容存入file1。 注意任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用

Shell--文件包含

回眸只為那壹抹淺笑 提交于 2019-12-14 08:00:20
Shell 文件包含 和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。 Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空格 或 source filename 实例 创建两个 shell 脚本文件。 test1.sh 代码如下: #!/bin/bash url = "http://www.runoob.com" test2.sh 代码如下: #!/bin/bash #使用 . 号来引用test1.sh 文件 . ./test1.sh # 或者使用以下包含文件代码 # source ./test1.sh echo "菜鸟教程官网地址: $url " 接下来,我们为 test2.sh 添加可执行权限并执行: $ chmod +x test2.sh $ ./test2.sh 菜鸟教程官网地址:http://www.runoob.com 注:被包含的文件 test1.sh 不需要可执行权限。 来源: CSDN 作者: 吴声子夜歌 链接: https://blog.csdn.net/cold___play/article/details/103497154

Shell脚本入门_8

最后都变了- 提交于 2019-12-13 18:32:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 入门6中我们学习了 Shell 的 echo 命令,入门7 学习 Shell 的另一个输出命令 printf。 printf 命令模仿 C 程序库(library)里的 printf() 程序。 printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。 备注:POSIX 表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ); printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。 默认 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n 。 printf 命令的语法: printf format-string [arguments...] 参数说明: format-string: 为 格式控制字符串。 arguments: 为参数列表。 实例如下: $ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell\n" Hello, Shell $ 接下来,我来用一个脚本来体现printf的强大功能: #!/bin/bash # author

shell编程之正则表达式(三)awk工具

安稳与你 提交于 2019-12-13 16:07:58
awk 工具 在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。 awk 常见用法 通常情况下 awk 所使用的命令格式如下所示,其中,单引号加上大括号“{}”用于设置对数据进行的处理动作。awk 可以直接处理目标文件,也可以通过“-f”读取脚本对目标文件进行处理。 awk 选项 '模式或条件 {编辑指令}' 文件 1 文件 2 „ //过滤并输出文件符条件的内容awk -f 脚本文件 文件 1 文件 2 „ //从脚本中调用编辑指令,过滤并输出内容。前面提到 sed 命令常用于一整行的处理,而 awk 比较倾向于将一行分成多个“字段”然后再进行处理,且默认情况下字段的分隔符为空格或者 tab 键。awk 执行结果可以通过 print 的功能将字段数据打印显示。在使用 awk 命令的过程中,可以使用逻辑操作符“&&”,表示“与”, “||”表示“或”,“!”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别 表示加、减、乘、除、取余和乘方。 在 Linux 系统中/etc/passwd 是一个非常典型的格式化文件,各字段间使用“:”作为分隔符隔开,Linux

linux bash shell 第一章

爷,独闯天下 提交于 2019-12-13 08:28:28
启动shell脚本方法: 1.bash xxx.sh 2.chmod +x xxx.sh (增加可执行权限) 3.source test.sh 变量的定义: 1.普通变量的定义: aaa=num 2.临时环境变量的定义: export aaa=num 利用export来声明一个环境变量 3.变量的引用$aaa 4.当用户退出终端之后所有的变量 都会被清除 5.在当前shell下设置的变量如果要在子shell下运行需要用export来声明,否则在子shell中引用时会输出为空(即没有定义) 位置变量: 1.指的命令之后的参数 $1 为命令之后的第一个参数 第10个参数之后需要带花括号进行调用 ${10},${11} 2.利用shift可以用于位置参数的变更(前移),如 命令后 有a b c三个参数,执行完$1之后 shift会把$2前移至$1,再次调用$1的值便是原先$2的值 特殊变量:(多用于判断命令行的参数) 1.$0:脚本本身的名字 2.$?:判断上一命令执行的结果:0代表成功,非0代表错误 3.$#:位置参数的总数 : 命令 a b c 那么$#就是三 4.$@: 将每个位置参数都看作独立的字符串 默认分隔符时空格 5.$*:把所有的位置参数看作为一条字符串 6.$$:查看当前shell下的子shell (PID) 7.$!:上一条运行后台进程的PID(目前不懂) 变量的引用

Linux Shell 文本处理工具集锦

杀马特。学长 韩版系。学妹 提交于 2019-12-13 07:42:24
来自:me115, www.cnblogs.com/me115/p/3427319.html 本文将介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是最常用和最为实用的; 我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧; find 文件查找 查找txt和pdf文件 find . \ ( -name "*.txt" -o -name "*.pdf" \ ) -print 正则方式查找.txt和pdf find . -regex ".*\(\.txt|\.pdf\)$" -iregex:忽略大小写的正则 否定参数 查找所有非txt文本 find . ! -name "*.txt" -print 指定搜索深度 打印出当前目录的文件(深度为1) find . -maxdepth 1 -type f 定制搜索 按类型搜索: find . -type d -print //只列出所有目录 -type f 文件 / l 符号链接 按时间搜索: -atime 访问时间 (单位是天,分钟单位则是-amin,以下类似) -mtime 修改时间 (内容被修改) -ctime 变化时间 (元数据或权限变化)