
linux shell
JackLiu16
stay hungry,stay young!
展开
-
sed小技巧
sed指定替换范围sed -i '21,30s/127.0.0.1:8433/192.168.212.43:8433/g' cfg.json去掉最后一个字符tran_nodelist=$(echo $tran_replace|sed 's/.$//')原创 2018-08-17 00:46:32 · 233 阅读 · 0 评论 -
linux shell [] [[]] (()) 符号内是否加空格
使用 (( )) 时,不需要空格分隔各值和运算符,使用 [[ ]] 时需要用空格分隔各值和运算符。$[] $(()) :它们是一样的,都是进行数学运算的。支持+ - * / %:分别为 “加、减、乘、除、取模”。但是注意,bash只能作整数运算,对于浮点数是当作字符串处理的。...原创 2018-05-27 22:47:50 · 1391 阅读 · 0 评论 -
Linux shell 中$() ` `,${},$[] $(()),[ ] (( )) [[ ]]作用与区别
$()和 ` ` :在 bash shell 中,$( ) 与` ` (反引号) 都是用来做命令替换用(commandsubstitution)的。例如 version=$(uname -r)和version=`uname -r`都可以是version得到内核的版本号各自的优缺点:1. ` ` 基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比...转载 2018-05-27 22:36:15 · 819 阅读 · 0 评论 -
grep -o参数
* grep:传统的 grep 程序, 在没有参数的情况下, 只输出符合 RE 字符串之句子. 常见参数如下:-v: 逆反模示, 只输出"不含" RE 字符串之句子.-r: 递归模式, 可同时处理所有层级子目录里的文件.-q: 静默模式, 不输出任何结果(stderr 除外. 常用以获取 return value, 符合为 true, 否则为 false .)-i: 忽略大小写.-w: 整词比对,...转载 2018-04-25 19:35:56 · 34818 阅读 · 0 评论 -
linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令
一、背景系统管理员经常需要SSH 或者telent 远程登录到linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。二、简介GNU Screen是一款由GNU计划开发的用于命令行终端切...转载 2018-04-23 23:51:23 · 30277 阅读 · 0 评论 -
bash前后台切换
ctrl+z fg bg jobsbash挂了,bash下的子进程也会挂掉,哪个bash下的sshd只能在对应的bash下面查到命令后台命令执行是挂在bash下的进程启动之后,按任意键进入输入状态,输入exit正常退出用户,再关闭Xshell(切不可强制关闭窗口来退出用户!!!)可行示例: /bin/sh /epm/Oracle/Middleware/Oracle_ODI1/oracledi/ag...原创 2018-04-23 23:16:13 · 1198 阅读 · 0 评论 -
shell 脚本之 Function 功能的使用
shell 脚本之 Function 功能的使用基本的东西前面介绍完了,下面我们介绍一下function 怎么使用。注意:function 需要先声明,然后才能使用。声明的关键字可以用 function 关键字,也可以忽略先看三个简单的输出颜色的功能:#!/bin/bashfunction rmsg() { echo -e "\033[31;49m...转载 2018-04-12 11:35:11 · 1983 阅读 · 0 评论 -
dirname命令介绍-使用dirname在shell脚本中获取当前脚本文件所在的绝对路径
dirname 命令使用示例NAME dirname - strip last component from file name示例一 来自手册页的例子$ dirname /usr/bin/sort /usr/bin$ dirname stdio.h .示例二$ dirname /usr/bin /usr$ dirname /usr/bin/ /usr脚本中获取 脚本文件所...转载 2018-04-12 10:44:54 · 4218 阅读 · 0 评论 -
shell变量的替换
1.条件变量替换: Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换 条件放在{}中. (1) ${value:-word} 当变量未定义或者值为空时,返回值为word的内容,否则返回变量的值. (2) ${value:=word} 与前者类似,只是若变量未定义或者值为空时,在返回word的值的同时将 word赋值给value (3) ${valu...转载 2018-04-12 10:32:43 · 3829 阅读 · 0 评论 -
BASH中的内置变量
[nat@system1 html]$ pwd/usr/share/nginx/html[nat@system1 html]$ dirname /usr/share/nginx/html/usr/share/nginx[nat@system1 html]$ dirname /usr/share/nginx/html/404.html 50x.html index.htm...转载 2018-04-16 21:18:45 · 489 阅读 · 0 评论 -
redhat/centos6自定义系统服务启动
安装了一个amoeba,这个并不是系统服务,要设置开机启动,于是就去修改/etc/rc.local文件,用了绝对路径,在命令行下测试是可以成功启动的,但是开机不生效,于是想把这个设置成系统的服务,之前没做过,记录下 1.照格式写shellvi /etc/init.d/amoeba#!/bin/bash## auditd This ...转载 2018-04-11 11:47:52 · 2350 阅读 · 0 评论 -
$@和($@)
$@是传入的所有参数(不是数组)($@)是数组$*是传入的所有参数列表(是数组)[nat@system1 ~]$ cat testargs.sh#/bin/bahset -epip_u_install(){ local args=($@) local envPip=pip local tar_pkgs_dirs=$(pwd)/py_pkgs echo $args echo $a...原创 2018-05-27 23:46:36 · 866 阅读 · 0 评论 -
向数组追加元素
向数组追加元素的方法与数组复制非常类似。最简单的追加到数组的方法是将数组复制语句进行扩展。 $ hobbies=( "${activities[@]" diving } $ for hobby in "${hobbies[@]}"> do> echo "Hobby: $hobby"> doneHobby: swimmingHobby: water skiingHobby: c...转载 2018-05-27 23:52:19 · 3459 阅读 · 0 评论 -
shell脚本传入的参数变量是全局变量
#!/bin/bashtesttranfun(){ echo "++++++++++" echo $a echo "++++++++++"}parse_arg(){for i in "$@";do if [[ $i = *"="* ]];then eval "$i" fidone}main(){testtranfunparse_arg "$@"e转载 2018-06-29 00:28:18 · 1889 阅读 · 0 评论 -
Linux中 set、env、declare、export显示shell变量的区别
shell变量包括两种变量1. shell局部变量局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。通过赋值语句定义好的变量,可以通过如下方法定义shell变量A1="1234"delcare A2="2345"2. 用户的环境变量所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚...转载 2018-05-29 14:11:49 · 454 阅读 · 0 评论 -
Linux Shell函数返回值
Shell函数返回值,一般有3种方式:return,argv,echo1) return 语句shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。示例:#!/bin/bash -function mytest(){ echo "arg1 = $1" if [ $1 = "1" ] ;then return 1 else return 0 ...转载 2018-05-29 13:51:43 · 3134 阅读 · 0 评论 -
Linux shell脚本中shift的用法说明
Linux shell脚本中shift的用法说明shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。示例1:依次读取输入的参数并打印参数个数:run.sh:[java] view plain copy#!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,...转载 2018-05-29 13:43:58 · 2740 阅读 · 1 评论 -
linux shell函数参数传入
$0 $1 $2 。。。作用域是全局原创 2018-05-29 11:28:16 · 2910 阅读 · 0 评论 -
linux shell中的eval命令
语法:eval cmdLineeval会对后面的cmdLine进行两遍扫描,如果第一遍扫描后,cmdLine是个普通命令,则执行此命令;如果cmdLine中含有变量的间接引用,则保证间接引用的语义。 举例如下:set 11 22 33 44如果要输出最近一个参数,即44,可以使用如下命令,echo $4但是如果我们不知道有几个参数的时候,要输出最后一个参数,大家可能会想到使用$#来输出最后一个参数...转载 2018-05-29 10:57:14 · 352 阅读 · 0 评论 -
ssh第一次登录时,设置是否要输入“yes”
StrictHostKeyChecking ask修改为no[root@host-192-168-215-46 .ssh]# cat /etc/ssh/ssh_config | grep ask# StrictHostKeyChecking ask[root@host-192-168-215-46 .ssh]# [root@host-192-168-215-42 ~]# ssh host-1...转载 2018-05-29 10:47:27 · 6267 阅读 · 0 评论 -
9.3 关联数组
关联数组是bash 4.0新增的一个特性。关联数组将值与索引连接(关联)到一起,所以我们可以将元数据与实际数据关联起来。使用这种方式可以将音乐家与他的乐器联系起来。关联数组必须以大写的declare -A命令来进行声明。 $ cat musicians.sh#!/bin/bash declare -A beatlesbeatles=( [singer]=John [bassist]=Paul [d...转载 2018-05-28 00:07:31 · 313 阅读 · 0 评论 -
9.4.1 数组的复制
9.4 数组操作数组与其他变量在结构上是有差异的。这意味着对数组进行操作需要一些新的语法。只要可能,对数组的操作在语法上与对字符串做同样的操作都非常相似。但有些情况下的语法不够灵活。9.4.1 数组的复制将数组复制到另一个数组非常简单。对于引用与空格而言,重要的是使用格式${array[@]}(而不是${array[*]}),并且要用双引号将整个结构括起来。下面的例子非常清晰地显示了使用其他形式...转载 2018-05-28 00:03:08 · 422 阅读 · 0 评论 -
($@)和$@ ${!args[@]}
[root@centos5 ~]# ./testtw.sh 1 2 311 2 3[root@centos5 ~]# cat testtw.sh #!/bin/bash O=($@)echo $Oecho $@[root@centos5 ~]# [root@centos5 ~]# vi testtw.sh[root@centos5 ~]# ./testtw.sh 1 2 31 2 31 2 3[r...原创 2018-04-16 21:05:19 · 3412 阅读 · 0 评论 -
shell编程——select语句
select 表达式是一种bash的扩展应用,动作包括: 自动用1,2,3,4列出菜单 (没有echo指令,自动显示菜单) 自动read输入选择 (没有 read指令,自动输入) 赋值给变量 (没有赋值指令,自动输入数字后,赋值字符串给变量) select典型例子[macg@machome ~]$ vi test.shecho "What is your favourite O...转载 2018-04-16 20:26:48 · 689 阅读 · 1 评论 -
metasploit安装脚本
#!/bin/sh print_pgp_key() { cat <<-EOF-----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1 mQINBFDAy/0BEAC8I5bw5gLQqHKx5JCacYcXFL6AZowl3qIOTxo5yfBl8CepNpWYOOERvIUJb17WehhhbWOo9WjpBalDX...转载 2018-03-02 13:21:26 · 1793 阅读 · 0 评论 -
linux awk cut
原文链接 : http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息awk处理过程: 依次对每一行进行处理,然后输出awk命令形式:awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} E...转载 2018-01-08 23:31:56 · 665 阅读 · 0 评论 -
linux 中的 <<EOF
1、EOF Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。 可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位...原创 2018-01-25 11:43:18 · 4067 阅读 · 0 评论 -
安装docker脚本
#!/bin/shset -e# This script is meant for quick & easy install via:# $ curl -fsSL get.docker.com -o get-docker.sh# $ sh get-docker.sh## For test builds (ie. release candidates):# $ c...转载 2018-02-10 18:24:42 · 1776 阅读 · 0 评论 -
linux rpm包,安装路径查看及改变rpm包默认安装路径
查看:easwy:~$ rpm -qpl ext3grep-0.10.0-1.el5.rf.i386.rpm /usr/bin/ext3grep /usr/share/doc/ext3grep-0.10.0 /usr/share/doc/ext3grep-0.10.0/INSTALL /usr/share/doc/ext3grep-0.10.0/LICENSE.GPL2原创 2018-01-29 17:17:16 · 37971 阅读 · 0 评论 -
linux自动化部署mariadb10
###### 二进制自动安装数据库脚本root密码MANAGER将脚本和安装包放在/root目录即可#####################数据库目录/usr/local/mysql##################数据目录/data/mysql##################日志目录/log/mysql##################端口号默认3306其余参数按需自行修改##转载 2018-01-27 20:32:06 · 313 阅读 · 0 评论 -
linux应用服务状态——脚本监控方法
nginx状态监控脚本例子:mysql主从监控脚本中涉及命令:脚本例子:原创 2018-02-25 13:06:51 · 529 阅读 · 0 评论 -
Shell中read的常用方式
原文:Linux Shell Scripting Tutorial V2.0出处:http://blog.youkuaiyun.com/jubincn/article/details/8232513read命令的语法:[java] view plain copy read -p "Prompt" variable1 variable2 variableN -p "Prompt": 显示提示信息(和用户输入同...转载 2018-01-25 13:16:25 · 3888 阅读 · 0 评论 -
shell if [[ ]]和[ ]区别 || &&
[]和test两者是一样的,在命令行里test expr和[ expr ]的效果相同。test的三个基本作用是判断文件、判断字符串、判断整数。支持使用 ”与或非“ 将表达式连接起来。test中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq, -gt这种形式。无论是字符串比较还是整数比较都千万不要使用大于号小于号。当然,如果你实在想用也是可以的,对...转载 2018-04-16 20:15:56 · 6852 阅读 · 0 评论 -
Linux—shell中$(( ))、$( )、``与${ }的区别
命令替换在bash中,$( )与` `(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。exp 1[root@localhost ~]# echo today is $(date "+%Y-%m-%d")today is 2017-11-07[root@localhost ~]# echo today...转载 2018-04-16 19:58:08 · 242 阅读 · 0 评论 -
shell浅谈之十一别名、列表及数组
d[root@centos5 ~]# ./testarry a b c ba b c b40 1 2 3[root@centos5 ~]# cat testarry #!/bin/bashc=(a b c b)echo ${c[@]}echo ${c[*]}echo ${#c[@]}echo ${!c[@]}[root@centos5 ~]# 一、简介 Shell中别名可以对命令进行重...转载 2018-04-16 19:24:37 · 476 阅读 · 0 评论 -
Unix/Linux 脚本中 “set -e” 的作用
[root@centos5 ~]# ./testcmd return 012345over[root@centos5 ~]# vi testcmd [root@centos5 ~]# ./testcmd return 112345[root@centos5 ~]# #!/bin/bashset -efun(){for...转载 2018-04-15 17:22:56 · 300 阅读 · 0 评论 -
linux中shell五种流程控制语句介绍
1. if 条件语句:if…then/if…elif…fi/if… else…fi if [条件判断逻辑1];then command1elif [条件判断逻辑2];then command2else command3fi 上面多个语句写在一行的话需要使用;分隔。 fi是if的字母反过来写,代表结束if代码块。 条件逻辑判断参照: [链接]: ...原创 2018-01-25 12:39:25 · 435 阅读 · 0 评论 -
linux shell 逻辑运算符、逻辑表达式详解
shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果。 一、逻辑运算符逻辑卷标 表示意思 1.关于档案与目录的侦测逻辑卷标!-f常用!侦测『档案』是否存在 eg: if [ -f filename ]-d常用!侦测『目录』是否存在-b侦测是否为一个『 block 档案』-c侦测是否为一个『 character 档案』-S侦测是否为一个『 so...转载 2018-01-25 12:02:43 · 333 阅读 · 0 评论 -
linux shell 常见25问题
Q:1 Shell脚本是什么、它是必需的吗?答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。Q:2 什么是默认登录shell,如何改变指定用户的登录shell答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用...转载 2018-01-25 11:48:46 · 298 阅读 · 0 评论 -
SHELL:echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"
格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 那些ascii code 是对颜色调用的始末. \033[ ; m …… \033[0m 字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 ...转载 2018-01-25 11:15:19 · 429 阅读 · 0 评论