随笔分类 -  shell语法

shell学习总结
摘要:Shell 支持以下三种定义变量的方式: variable=value variable='value' variable="value" 单引号和双引号的区别 url="http://c.biancheng.net" website1='C语言中文网:${url}' website2="C语言中文 阅读全文
posted @ 2022-01-25 16:35 叶落kiss 阅读(873) 评论(0) 推荐(0) 编辑
摘要:如上: $1和$2分别表示执行命令时的参数, 补充: $0表示谁被执行了 $?判断的是上次执行的命令是否正确, 正确为0, 否则非零 $*表示执行时的所有输入参数 $#表示执行时的所有输入参数的个数 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参 阅读全文
posted @ 2022-01-25 15:43 叶落kiss 阅读(1208) 评论(0) 推荐(0) 编辑
摘要:a:进入根目录:cd ~ssh-keygen -t rsa -C "youname" 例如:ssh-keygen -t rsa -C "xxxx" 输入上面ssh-keygen开头的命令后,需要输入密码的地方按enter b:查看秘钥cat ~/.ssh/id_rsa.pub ssh-copy-id 阅读全文
posted @ 2020-09-06 22:38 叶落kiss 阅读(610) 评论(0) 推荐(0) 编辑
摘要:1. awk 默认使用空格分隔, 可使用-F参数来指定分隔符 awk -F"xx" '{print $1}' file.txt # 指定xx来分隔, xx会被切掉, 不包含在任何一段中 2. awk语法简介 awk [options] 'commands' file.txt options: 参数选 阅读全文
posted @ 2020-01-09 19:26 叶落kiss 阅读(213) 评论(0) 推荐(0) 编辑
摘要:shell中的条件判断: (选项参考man test) 1. 文件判断: 判断目录存在不存在: test -d /home 执行后使用$?查看结果为0, 表示是目录; test命令无论执行结果如何, 都不会报错, 只会返回0或非0 test -d /home 语法等同于 [ -d /home ] t 阅读全文
posted @ 2020-01-08 19:59 叶落kiss 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:1. 首先需要明白, sed处理文件是逐行处理的, 即读取一行处理一行,输出一行; 2. sed把文件读出来存放的空间叫模式空间, 会在该空间中对读到的内容做相应处理; 3. 此外sed还有一个额外的空间即暂存空间, 暂存空间刚开始里边只有个空行, 记住这一点; 4. sed可使用相应的命令从模式空 阅读全文
posted @ 2020-01-02 20:27 叶落kiss 阅读(494) 评论(0) 推荐(0) 编辑
摘要:1. sed中的命令, 即引号中使用的模式或功能 2. sed中的反向选择使用示例: sed -r '3d' file.txt # 删除第3行 sed -r '3!d' file.txt #除了第3行, 其余删除 3. sed中的多重编辑选项: sed -r -e'1,3d' -e's/xx/ss/ 阅读全文
posted @ 2020-01-02 19:57 叶落kiss 阅读(321) 评论(0) 推荐(0) 编辑
摘要:1. sed会逐行从文件中读取数据, 再对数据处理后显示到屏幕, 再进行下一行的处理. sed '4d' file.txt # 删除文件中第4行 sed '2,6d' file.txt # 删除文件中的2-6行 sed '5,$d' file.txt # 从第5行删除到最后一行 sed '/root 阅读全文
posted @ 2019-12-30 20:53 叶落kiss 阅读(4080) 评论(1) 推荐(0) 编辑
摘要:1. echo -e "\e[1;31m 显示的内容 \e[0m" \e[1;31m # 取值30-37为字体色, 40-47为背景色 \e[0m # 用来恢复前面设置的字体颜色, 如无, 则后续所有的字体颜色会被修改 2. shell中单引号和双引号的区别(bash 调用可执行文件, 以下列出的是 阅读全文
posted @ 2019-12-30 19:05 叶落kiss 阅读(935) 评论(0) 推荐(0) 编辑
摘要:1. shift命令可使参数发生位移 如: shift 1 # 表示参数下标向右移动一位, 比如执行文件时输入参数file.sh 1 2 3 ; 在文件中加入shift 1 则$1变量接受到的值会变成2 一个示例如下: 阅读全文
posted @ 2019-12-29 17:59 叶落kiss 阅读(1118) 评论(0) 推荐(0) 编辑
摘要:1. shell中的正则和原生的正则有些许出入, 以下列举了shell中的正则规则: 图中\number 代表前面对应()位置的内容, 类似于python中的命名分组, \对应数字可直接引用括号中内容 注意扩展正则元字符的使用结果可能和预期有差异, 对比扩展和基本两个截图, 会发现, 同样的一个字符 阅读全文
posted @ 2019-12-27 20:56 叶落kiss 阅读(2820) 评论(0) 推荐(0) 编辑
摘要:1. shell中定义的变量都默认是字符类型, 如变量值中不带空格, 可无需使用"" 2. shell中反引号的作用``: 通常把需要执行的命令放到反引号中, 常用于""内. echo "today is `date`" echo "today is date" date如无反引号, 会被当做字符运 阅读全文
posted @ 2019-12-26 21:00 叶落kiss 阅读(1098) 评论(0) 推荐(0) 编辑
摘要:1. 定义变量时, 注意=号两边不要有空格; 如: a=www.xxxxx.oooo 2. 变量引用的两种方法: echo $a 或者 echo ${a} 3. 获取变量的长度: echo ${#a} 4. 变量的删除: echo ${a#ww} # 从变量值开头删除两个w, 此操作不影响原变量的值 阅读全文
posted @ 2019-12-26 20:58 叶落kiss 阅读(1582) 评论(0) 推荐(0) 编辑
摘要:0. shell的文件级和函数中定义的变量默认都是全局变量, 这点和python不同, 如需在函数中定义 局部变量, 需在定义时使用local才可. 1. 函数基本结构: 方法一: function_name () { shell 语法实现的功能 } 方法二: function name { she 阅读全文
posted @ 2019-12-24 20:11 叶落kiss 阅读(8451) 评论(0) 推荐(1) 编辑
摘要:1. shell中使用ssh远程连接服务器做一些事情通常需要交互输入些信息, 可使用expect语句解决: 2. expect中设置变量语法: set name xxx set age xxx # 使用set设置变量, name, age为变量名称, 后面是变量的值. 3. 变量的引用同shell, 阅读全文
posted @ 2019-12-17 20:43 叶落kiss 阅读(896) 评论(0) 推荐(0) 编辑
摘要:1. 指定格式输出当前时间: echo `date +%Y%m%d` # 注意使用反引号, +号后面不要有空格 反引号中的东西会被当做命令来执行, 并输出执行的结果 2. $uid用于判断当前是否是root用户登陆的, 是为0, 否则非零. 3. * 匹配任意多个字符, 注意不要带引号; ? 匹配任 阅读全文
posted @ 2019-11-04 18:59 叶落kiss 阅读(1237) 评论(0) 推荐(0) 编辑
摘要:1. umask用于设定默认的新建文件或目录的权限 查看umask当前值命令: umask -p 计算创建出的file权限方法: 如果umask值的每位数都是偶数,使用666按位减umask的值即可 如果某一位或所有位的数值是奇数, 则要在666按位减umask值的对应位数上+1. 计算创建出的di 阅读全文
posted @ 2019-11-03 15:06 叶落kiss 阅读(1508) 评论(0) 推荐(0) 编辑
摘要:说明: 虚拟机中shell_test目录用来练习shell, 其中有个test.log文件用来存放日志 #!/usr/bin/bash # shell文件开头, 用来指定该文件使用哪个解释器执行 通常#!成为shebang, 如果命令行中不指定解释器时才会生效, 否则以命令行中指定的解释器为准 1. 阅读全文
posted @ 2019-11-01 11:32 叶落kiss 阅读(810) 评论(0) 推荐(0) 编辑
摘要:1. login shell和nologin shell的理解: 字面意思, 需要登陆的shell和不需要登陆的shell. 正确解释为: 加载用户环境配置的shell 和不加载用户环境配置的shell. nologin shell登陆时只加载/etc/bashrc和 ~/.bashrc两个文件; 阅读全文
posted @ 2019-11-01 11:24 叶落kiss 阅读(693) 评论(0) 推荐(0) 编辑