一、Bash Shell概述 1.什么是bash bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互的工具,用户通过...二、Bash Shell的变量概述 1.变量是代表一些值的符号。 2.可以通过变量来设置shell或者其他程序。 3.变量存在于内存中。 ...4.Linux有自定义变量(local)和环境变量(environment)。 5.自定义变量和环境变量的作用范围不同。 ...执行一些没有指定路径的指令时去该路径中找。 PATH=$PATH....shell 3.建立环境变量,设置其他程序 4.使用alias,简化后续操作 5.登录登出的时候执行哪些程序 五、login和non-login shell的详解 1.login shell
在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述符是 0,1,2 。...&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中. >&2即1>&2也就是把结果输出到和标准错误一样 /dev/null是一个文件,这个文件比较特殊,所有传给它的东西它都丢弃掉...通常用于丢弃不需要的数据输出, 或者用于输入流的空文件 > rm -f $(find / -name rumenz) &> /dev/null 原文链接:https://rumenz.com/rumenbiji/linux-shell-redirect.html
Linux中编写Shell脚本 目录 Shell Shell脚本的执行 Shell脚本编写规范 Shell 中的变量 变量的算术运算 双小括号 (()) 数值运算命令的用法 let 运算命令的用法 expr...Shell脚本语言很适合用于处理纯文本型的数据,而Linux系统中几乎所有的配置文件、日志文件,以及绝大对数的启动文件都是纯文本类型的文件。...Shell 脚本的类型 Shell脚本语言是弱类型语言(无须定义变量的类型即可使用),在Unix/Linux中主要有两大类shell: 一类是 Bourne shell ,另一类是 C shell Bourne...1、一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为:#!/bin/bash 或 #!.../bin/bash cd /opt/project/ scrapy crawl xx python3 test.py 相关文章: Linux中sed工具的使用 Linux中grep工具的使用 Linux
. $ 在Linux Shell脚本中,$#用来表示传入的参数数量。例如: shell脚本test0 #!.../test0 a bc The number of parametes is 2. 2. $@ 在Linux Shell脚本中,$#用来表示传入的参数列表。例如: shell脚本test1 #!...遍历$@ for var in $@ do echo "$var" done 3. 0,0,1 在Linux Shell脚本中,$0用来表示要执行的shell脚本名称。...$1,$2用来表示传入到脚本中对应位置的参数,例如: shell脚本test2 #!.../test2 The shell is ./test2. The first parameter is . The first parameter is . $ .
这里说Linux重定向的原因主要还是为了详细了解一下Linux中的反弹shell 目录 0x01 文件描述符 0x02 重定向 0x03 反弹shell 0x04 交互重定向 0x05 命令变形 0x01...文件描述符 Linux的文件描述符有以下三种 标准输入:0 标准输出:1 错误输出:2 对于文件描述符就先知道这些就可以了,具体的使用会在重定向中来说,重定向就是对文件描述符的操作 0x02 重定向...我们也可以把错误的内容重定向到另一个文件中的 下面这个操作,我们就可以把正确的结果放到test.txt,而把错误的结果放到test1.txt文件中 ?...shell,可以在帮助文档中看到 ?...首先我们在本地开启监听,然后在Linux机器上输入下面的命令,即将指定字符发送到192.168.6.1的3333端口 ? ?
01-10 for i in {1…10} for i in $( ls ) for I in $(< file) for i in “$@” –》取所有位置参数,可简写为for i 注意:bash shell...i && echo file $i is ok done $@: 所有位置变量的内容 $#: 位置变量的个数 $0: 文件名 $*: 所有位置变量的内容 编写脚本应该注意的事项: 开头指定使用什么shell...cd变换目录 函数中也要有功能描述,使用依法,版本,日期等 函数的功能要单一,不要太复杂 $()比` `更好 尽量不要使用多层if语句,而应该以case语句替代 如果需要执行确定次数的循环,应该用for...$*:所有位置变量的内容(较少使用) $@:所有位置变量的内容 $0:当前执行的进程/程序名 :当前shell的PID值, echo ; ps $?...就返回0,不成功则返回1 根据IP地址检查网络中存活的主机IP(大范围的扫描) #!
Shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。有两种方法可以将命令输出赋值给变量。 反引号字符(`) 反引号字符位于键盘上ESC键的下面。...赋值给变量的形式如下: test=`date` # demo $ test=`date` $ echo $test 2017年 1月11日 星期三 21时26分04秒 CST 两个反引号字符之间是shell...命令,shell命令的执行结果赋值给test,注意=两边不能有空格。
一、变量 在myshell.sh中输入 执行: 使用set指令可以查看当前shell下的所有变量。 在myshell.sh中输入: 执行: 使用unset可以撤销一个变量。...三、位置参数变量 在myshell.sh中输入: 执行: 四、预定义变量 在myshell2.sh中输入: 执行:
UNIX Shell 里面比较字符写法 -eq 等于; -ne 不等于; -gt 大于; -lt 小于 ; -le 小于等于...SHELL也不例外。...非 语法虽然简单,但是在SHELL里使用的时候,它可以实现强大的功能或执行逻辑。
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c] #查长度为...exec:对匹配的文件执行该参数所给出的shell命令。...-name '[A-Z]*.txt' -print 在/etc及其子目录中,查找host开头的文件 find /etc -name 'host*' -print 在$HOME目录及其子目录中,查找所有文件...find ~ -name '*' -print 在当前目录及子目录中,查找不是out开头的txt文件 find ..../aa -prune -o -name "*.txt" -print" 按权限查找(-perm) 在当前目录及子目录中,查找属主具有读写执行,其他具有读执行权限的文件 find .
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。...; -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法; -n :使用『纯数字』进行排序(默认是以文字型态来排序的); -r :反向排序; -u :就是 uniq ,相同的数据中,...x:13:13:proxy:/bin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh 查看/etc/passwd有多少个shell...65534:sync:/bin:/bin/sync sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin uniq uniq命令可以去除排序过的文件中的重复行...echo $PATH | cut -d ':' -f 1-3,5 /bin:/usr/bin:/sbin:/usr/local/bin 实用例子:只显示/etc/passwd的用户和shell #cat
我有一段shell命令如下:cd /www/wwwroot/learn.gaojiufeng.cngit fetch --all git reset --hard origin/masterchmod
Linux 中shell 脚本if判断多个条件 格式如下,在比较时,数字和字符串用不同的比较符号 1.如果a>b且a<c if (( a > b )) && (( a < c )) 或者...-o = or , -a = and , 但我一向只用 || 或者 && 4.”||”和”&&”在SHELL里可以用吗?也就是第一个写成if [ a>b && a<c ]也可以吗? ...= 比较字符 (string), 但后者拿来 比较数字也可,只是不是标准用法 -lt 是等同 shell 的数值操作符 (( )) 或 者 逻缉操作符 [
本文整理 Linux Shell 中的转义字符。 在 Linux Shell 中,有很多字符是有特殊含义的,如果期望把这个字符当作普通字符来处理,需要经过 \ 的转义。...在双引号中即可变普通字符的特殊字符 ` ` * 空格 ‘\ ` 这是转义空格。如果路径中包含空格,那么使用 \ 转义可以避免路径被分割成 Shell 的两个参数。...我有另一篇描述 Linux Shell 中路径空格转义相关的博客: 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux...在引号中也需要转义。 美元符 \$ 在 Linux Shell 中,这是变量的引用。例如 ${x} 就是引用 x 变量。 1 2 $ echo "上一个程序的返回值为:\$? = $?"...- Stack Overflow 本文会经常更新,请阅读原文: https://blog.walterlv.com/post/linux-shell-escape.html ,以避免陈旧错误知识的误导
/test.sh的输出重定向到log.txt文件中,同时将标准错误也重定向到log.txt文件中。 有何妙用 (如果已经明白是什么作用,可跳过此小节) 上面到底是什么意思呢?...由于系统中不存在whatthis命令,因此执行会报错。 假如我们想保存该脚本的打印结果,只需将test.sh的结果重定向到log.txt中即可: ....#列出目录下的内容 0 -> /dev/pts/7 1 -> /dev/pts/7 2 -> /dev/pts/7 255 -> /home/hyb/workspaces/shell...我们同样通过前面的方法,可以看到test.sh进程的文件描述符情况如下: 0 -> /dev/pts/7 1 -> /home/hyb/workspaces/shell/log.txt 2 ->.../home/hyb/workspaces/shell/log.txt 255 -> /home/hyb/workspaces/shell/test.sh 我们可以很明显地看到,文件描述符1和2都指向了
可能的例子: alias update='yum update' 这样就可以只是用update来完成yum update的命令操作了 在终端中设置别名的问题是,一旦终端会话关闭...要使别名成为永久别名,你可以将它们放入资源文件中。你可以使用你选择的文本编辑器编辑资源文件。
在Linux中类似的命令分别为 ls 和 clear,如果不习惯,我们可以用别名来使用相同的命令: [blackrose@localhost ~]$ alias dir=’ls -l’ [blackrose
fi } delFile addFile Result: (没有readme文件) [work shell]$ sh if_e.sh add readme ......test_performance_ubclient2_nshead_single_nonblock.cpp 2352 =================================================== linux...744 768 792 ------------------------------------------------------------------------------- 参考拓展: Linux...Make(Makefile)由浅入深的学习与示例剖析 shell if语句 示例:文件或目录是否存在或有执行权限 linux实现两个文件内容相加 awk中NR与FNR 百度面试及总结4 shell基础知识...关于RANDOM 的例子 shell函数(传参)的使用 参考推荐: Linux Shell函数返回值 Linux 之 shell 比较运算符(推荐) Linux Shell学习简单小结(推荐)
领取专属 10元无门槛券
手把手带您无忧上云