㈠ Bash 脚本进阶,经典用法及其案例
前言:在linux中,Bash脚本是很基础的知识,大家可能一听脚本感觉很高大上,像我当初刚开始学一样,感觉会写脚本的都是大神。虽然复杂的脚本是很烧脑,但是,当我们熟练的掌握了其中的用法与技巧,再多加练习,总有一天也会成为得心应手的脚本大神。脚本在生产中的作用,想必我我不说,大家也都知道,脚本写的6,可以省下很多复杂的操作,减轻自己的工作压力。好了,废话不多说,接下来,就是Bash脚本的用法展示。
(1)用法格式
if 判断条件 1 ; then
条件为真的分支代码
elif 判断条件 2 ; then
条件为真的分支代码
elif 判断条件 3 ; then
条件为真的分支代码
else
以上条件都为假的分支代码
fi
逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if。
(2)经典案例:
① 判断年纪
分析:请输入年纪,先判断输入的是否含有除数字以外的字符,有,就报错;没有,继续判断是否小于150,是否大于18。
② 判断分数
分析:请输入成绩,先判断输入的是否含有除数字以外的字符,有,就报错;没有,继续判断是否大于100,是否大于85,是否大于60。
(1)用法格式
case $name in;
PART1)
cmd
;;
PART2)
cmd
;;
*)
cmd
;;
esac
注意:case 支持glob 风格的通配符:
*: 任意长度任意字符
?: 任意单个字符
[] :指定范围内的任意单个字符
a|b: a 或b
(2)案例:
判断yes or no
分析:请输入yes or no,回答Y/y、yes各种大小写组合为yes;回答N/n、No各种大小写组合为no。
(1)用法格式
① for name in 列表 ;do
循环体
done
② for (( exp1; exp2; exp3 )) ;do
cmd
done
exp1只执行一次,相当于在for里嵌了while
③ 执行机制:依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束
列表的表示方法,可以glob 通配符,如{1..10} 、*.sh ;也可以变量引用,如: `seq 1 $name`
(2)案例
① 求出(1+2+...+n)的总和
分析:sum初始值为0,请输入一个数,先判断输入的是否含有除数字以外的字符,有,就报错;没有判断是否为0,不为0进入for循环,i的范围为1~输入的数,每次的循环为sum=sum+i,循环结束,最后输出sum的值。
② 求出(1+2+...+100)的总和
分析:i=1,num=0;当i<=100,进入循环,若i 2取余=1,则sum=sum+i,i=i+1。
(1)用法格式
while 循环控制条件 ;do
循环
done
循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true” ,则执行一次循环;直到条件测试状态为“false” 终止循环
(2)特殊用法(遍历文件的每一行):while read line; do控制变量初始化循环体done < /PATH/FROM/SOMEFILE或 cat /PATH/FROM/SOMEFILE | while read line; do循环体done依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将行赋值给变量line
(3)案例:
① 100以内所有正奇数之和
分析:sum初始值为0,i的初始值为1;请输入一个数,先判断输入的是否含有除数字以外的字符,有,就报错;没有当i<100时,进入循环,判断 i 2取余 是否不为0,不为0时为奇数,sum=sum+i,i+1,为0,i+1;循环结束,最后输出sum的值。
(1)用法
unitl 循环条件 ;do
循环
done
进入条件:循环条件为true ;退出条件:循环条件为false;刚好 和while相反 ,所以不常用,用while就行。
(2)案例
监控xiaoming用户,登录就杀死
分析:每隔0.5秒扫描,直到发现xiaoming用户登录,杀死这个进程,退出脚本,用于监控用户登录。
(1)用法
select variable in list
do
循环体命令
done
① select 循环主要用于创建菜单,按数字顺序排列的示菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入
② 用户输入菜单列表中的某个数字,执行相应的命令
③ 用户输入被保存在内置变量 REPLY 中
④ select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 按 命令终止脚本。也可以按 ctrl+c退出循环
⑤ select 和 经常和 case 联合使用
⑥ 与for循环类似,可以省略 in list, 此时使用位置参量
(2)案例:
生成菜单,并显示选中的价钱
分析:PS3是select的提示符,自动生成菜单,选择5break退出循环。
(1)语法
continue [N]:提前结束 第N层的本轮 循环,而直接进入下一轮判断;最内层为第1层
break [N]:提前结束 第N层 循环,最内侧为第1层
例:while CONDTITON1; doCMD1if CONDITION2; thencontinue / breakfiCMD2done (2)案例:
① 求(1+3+...+49+53+...+100)的和
分析:做1+2+...+100的循环,当i=51时,跳过这次循环,但是继续整个循环,结果为:sum=2449
② 求(1+3+...+49)的和
分析:做1+2+...+100的循环,当i=51时,跳出整个循环,结果为:sum=625
(1)作用
用于将参数列表list左移指定次数,最左端的那个参数就从列表中删除,其后边的参数继续进入循环
(2)案例:
① 创建指定的多个用户
分析:如果没有输入参数(参数的总数为0),提示错误并退出;反之,进入循环;若第一个参数不为空字符,则创建以第一个参数为名的用户,并移除第一个参数,将紧跟的参数左移作为第一个参数,直到没有第一个参数,退出。
② 打印直角三角形的字符
true 永远返回成功结果
: null command ,什么也不干,返回成功结果
false 永远返回错误结果
创建无限循环
while true ;do
循环体
done
(1)用法
for name in 列表 ;do
{
循环体
}&
done
wait
(2)实例:
搜寻自己指定ip(子网掩码为24的)的网段中,UP的ip地址
分析:请输入一个IP地址例192.168.37.234,如果格式不是0.0.0.0 则报错退出;正确则进入循环,IP变量的值为192.168.37. i的范围为1-254,并行ping 192.168.37.1-154,ping通就输出此IP为UP。直到循环结束。
trap ' 触发指令' 信号,自定义进程收到系统发出的指定信号后,将执行触发指令,而不会执行原操作
trap '' 信号,忽略信号的操作
trap '-' 信号,恢复原信号的操作
trap -p ,列出自定义信号操作
信号可以3种表达方法:信号的数字2、全名SIGINT、缩写INT
1) SIGHUP: 无须关闭进程而让其重读配置文件
2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT: 相当于ctrl+
9) SIGKILL: 强制杀死正在运行的进程
15) SIGTERM :终止正在运行的进程(默认为15)
18) SIGCONT :继续运行
19) SIGSTOP :后台休眠
9 信号,强制杀死,捕获不住
① 打印0-9,ctrl+c不能终止
分析:i=0,当i<10,每休眠1秒,i+1,捕获2信号,并执行echo press ctrl+c
② 打印0-3,ctrl+c不能终止,3之后恢复,能终止
分析:i=0,当i3时,解除捕获2信号。
1、生成随机字符 cat /dev/urandom
生成8个随机大小写字母或数字 cat /dev/urandom |tr -dc [:alnum:] |head -c 8
2、生成随机数 echo $RANDOM
确定范围 echo $[RANDOM%7] 随机7个数(0-6)
echo $[$[RANDOM%7]+31] 随机7个数(31-37)
3、echo打印颜色字
echo -e "33[31malong33[0m" 显示红色along
echo -e "33[1;31malong33[0m" 高亮显示红色along
echo -e "33[41malong33[0m" 显示背景色为红色的along
echo -e "33[31;5malong33[0m" 显示闪烁的红色along
color=$[$[RANDOM%7]+31]
echo -ne "33[1;${color};5m*33[0m" 显示闪烁的随机色along
㈡ Linux中使用shell脚本访问sftp服务器,密钥不会用
密钥用于建立SSH互信环境,本地公钥需要分发到远端服务器目录,可实现本地主机到远端SFTP服务器的无访问.
1. 生成密钥对,取得本地公钥,如:id_dsa.pub
2. 登录到远端SFTP服务器用户HOME目录的.ssh文件夹
3. 将id_dsa.pub的内容追加到远端服务器.ssh/autorized_keys文件尾部并保存
4. 尝试与本地主机用户SFTP到远程服务器: sftp user@server_addr
㈢ 关于Linux Shell脚本的问题、
你非得把密钥生成到默认文件里面,而且用默认自动生成的密码吗?
如果是这样的话,以下代码就行,两个test之间的回车是必须的,而且记得换成linux格式的,
或者你用vi编辑,不要再windows上编写。
#!/bin/bash
ssh-keygen -t rsa << test
test
ps:
不过我感觉这样写很恶心,如果不是非要默认生成:
ssh-keygen -t rsa -f /home/test -N test001
-f 指定密钥文件名,生成密钥到哪个文件里
-N 密码
㈣ linux 邮件怎么取消默认密钥环
Linux取消默认密钥环方法如下,以Ubuntu解除"输入密码以解锁密钥环”为例:
1.打开终端,输入:sudo apt-get install libpam-keyring
2.新建一个 Bash 脚本,内容如下:
#!/bin/sh
exec echo -n "MyKeyringPassword" | /usr/lib/libpam-keyring/pam-keyring-tool -u -s
#其中 MyKeyringPassword 是密钥环解锁的密码,默认是系统登录密码。
3.给刚才的 Bash 脚本文件加上可执行权限。
4.打开系统->首选项->启动应用程序,添加刚才的脚本为开机自启动。
㈤ Linux里面求互相免密钥脚本
生成密钥 ssh-keygen -t rsa (一直回车就行)2:将公钥复制进入一个名字为"authorized_keys"中。 这个名字是默认的,不能改变,因为系统就是根据这个文件来判断.
㈥ linux下怎么运行bash脚本
linux下运行bash脚本的方法如下:
首先在桌面右键点击,选择在终端中打开,打开命令行;
在命令行中输入 cd 脚本路径,进入脚本所在目录;
使用chmod +x 脚本名命令给文件添加可执行权限;
使用sh 脚本名或者 ./脚本名的方法来运行bash脚本。
㈦ shell脚本中解决SCP命令需要输入密码的问题
答案:使用密钥文件。
这里假设主机A(192.168.1.3)用来获到主机B(192.168.1.4)的文件。
在主机A上执行如下命令来生成配对密钥:
ssh-keygen -t rsa
遇到提示回车默认即可,公钥被存到用户目录下.ssh目录,比如root存放在:
/root/.ssh/id_rsa.pub
将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys,
到主机A中执行命令和主机B建立信任,
例(假设主机B的IP为:192.168.100.4):scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys
下面就可以用scp、ssh命令不需要密码来获取主机B的文件了
ssh 192.168.100.4 回车就不需要密码了。
注:其实id_rsa.pub内容添加到对方机器的authorized_keys中就行了
拷贝其他服务器附件归集到主服务器bash shell
[ [email protected] ~]$ cat .bash
scp -r [email protected] :/home/test1/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app02. finish"
scp -r [email protected] :/home/test2/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app03. finish"
增加定时任务
crontab -e
类似编辑vi 在里面粘贴
---shift+zz保存,重启crond服务
root]# service crond restart
引用自 https://www.cnblogs.com/java2sap/p/11424587.html
㈧ shell脚本上
| 对于初学者而言,因为没有实战经验,写不出来 Shell 脚本 很正常,如果工作了几年的运维老年还是写不出来,那就是没主动找需求,缺乏练习,缺乏经验。针对以上问题,总结了30个生产环境中经典的 Shell 脚本 ,通过这些需求案例,希望能帮助大家提升Shell编写思路,掌握编写技巧。 |
先了解下编写Shell过程中注意事项:
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">开头加解释器:#!/bin/bash
语法缩进,使用四个空格;多加注释说明。
命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。
默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。
有两个 命令 能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。
写脚本一定先测试再到生产上。
</pre>
1、获取随机字符串或数字
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">获取随机8位字符串:
方法1:
471b94f2
方法2:
vg3BEg==
方法3:
ed9e032c
获取随机8位数字:
方法1:
23648321
方法2:
38571131
方法3:
69024815
cksum:打印CRC效验和统计字节
</pre>
2、定义一个颜色输出字符串函数
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">方法1:
function echo_color() {
if [ 2 33[0m"
elif [ 2 33[0m"
fi
}
方法2:
function echo_color() {
case 2[0m"
;;
red)
echo -e "[31;40m$2[0m"
;;
*)
echo "Example: echo_color red string"
esac
}
使用方法:echo_color green "test"
function关键字定义一个函数,可加或不加。
</pre>
3、批量创建用户
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
DATE= 1 == "green" ]; then
echo -e "[32;40m 1 == "red" ]; then
echo -e "[31;40m$2[0m"
fi
}
if [ -s USER_FILE {DATE}.bak
echo_color green " {USER_FILE}- USER_FILE
echo "----------------" >> USER &>/dev/null; then
PASS= RANDOM |md5sum |cut -c 1-8)
useradd PASS |passwd --stdin USER USER_FILE
echo " USER User already exists!"
fi
done
</pre>
4、检查软件包是否安装
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
if rpm -q sysstat &>/dev/null; then
echo "sysstat is already installed."
else
echo "sysstat is not installed!"
fi
</pre>
5、检查服务状态
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
PORT_C= (ps -ef |grep ntpd |grep -vc grep)
if [ PS_C -eq 0 ]; then
echo "内容" | mail -s "主题" [email protected]
fi
</pre>
6、检查主机存活状态
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">方法1:将错误IP放到数组里面判断是否ping失败三次
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in NUM -le 3 ]; do
if ping -c 1 IP Ping is successful."
break
else
# echo " NUM"
FAIL_COUNT[ IP
let NUM++
fi
done
if [ {FAIL_COUNT[1]} Ping is failure!"
unset FAIL_COUNT[*]
fi
done
方法2:将错误次数放到FAIL_COUNT变量里面判断是否ping失败三次
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in IP >/dev/null; then
echo " IP Ping is failure FAIL_COUNT -eq 3 ]; then
echo "$IP Ping is failure!"
fi
done
方法3:利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败
ping_success_status() {
if ping -c 1 IP Ping is successful."
continue
fi
}
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in IP Ping is failure!"
done
</pre>
7、监控CPU、内存和硬盘利用率
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">1)CPU
借助vmstat工具来分析CPU统计信息。
DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (( SY))
if [ DATE
Host: USE
" | mail -s "CPU Monitor" $MAIL
fi
2)内存
DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (free -m |awk /Mem/{print (free -m |awk /Mem/{print 6- (( USE))
if [ DATE
Host: TOTAL,Use= FREE
" | mail -s "Memory Monitor" $MAIL
fi
3)硬盘
DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (fdisk -l |awk -F [: ]+ BEGIN{OFS="="}/^Disk /dev/{printf "%s=%sG,", 3} )
PART_USE= 1,int( 6} )
for i in (echo (echo (echo USE -gt 80 ]; then
echo "
Date: IP
Total: PART= MOUNT)
" | mail -s "Disk Monitor" $MAIL
fi
done
</pre>
8、批量主机磁盘利用率监控
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">前提监控端和被监控端SSH免交互登录或者密钥登录。
写一个配置文件保存被监控主机SSH连接信息,文件内容格式:IP User Port
HOST_INFO=host.info
for IP in 1} (awk -v ip= 1{print HOST_INFO)
PORT= IP ip== 3} PORT IP df -h > (awk BEGIN{OFS="="}/^/dev/{print 5)} USE_RATE_LIST; do
PART_NAME= {USE_RATE#*=}
if [ PART_NAME Partition usage $USE_RATE%!"
fi
done
done
</pre>
9、检查网站可用性
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">1)检查URL可用性
方法1:
check_url() {
HTTP_CODE= 1)
if [ 1 Access failure!"
fi
}
方法2:
check_url() {
if ! wget -T 10 --tries=1 --spider $1 >/dev/null 2>&1; then
}
使用方法:check_url www..com
2)判断三次URL可用性
思路与上面检查主机存活状态一样。
方法1:利用循环技巧,如果成功就跳出当前循环,否则执行到最后一行
check_url() {
HTTP_CODE= 1)
if [ URL_LIST; do
check_url URL
check_url URL Access failure!"
done
方法2:错误次数保存到变量
URL_LIST=" www..com www.agasgf.com "
for URL in (curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" HTTP_CODE -ne 200 ]; then
let FAIL_COUNT++
else
break
fi
done
if [ URL Access failure!"
fi
done
方法3:错误次数保存到数组
URL_LIST=" www..com www.agasgf.com "
for URL in NUM -le 3 ]; do
HTTP_CODE= URL)
if [ NUM]= NUM下标, {#FAIL_COUNT[ ]} -eq 3 ]; then
echo "Warning: $URL Access failure!"
unset FAIL_COUNT[ ] #清空数组
fi
done
</pre>
10、检查Mysql主从同步状态
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
USER=bak
PASSWD=123456
IO_SQL_STATUS= USER -p 0} ) #gsub去除冒号后面的空格
for i in {i%:*}
THREAD_STATUS= THREAD_STATUS" != "Yes" ]; then
echo "Error: MySQL Master-Slave THREAD_STATUS!"
fi
done
</pre>
动手练一练,让你的Shell功底上升一个段位!
㈨ windows怎么提取bash脚本
热门频道
首页
博客
研修院
VIP
APP
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
打开APP
windows执行bash脚本 原创
2022-03-22 19:11:19
代码小轩
码龄5年
关注
Windows执行shell脚本
1、 安装Git
在这里插入图片描述
2、 查看Git环境变量
右击电脑-属性-高级-高级系统设置
在这里插入图片描述
已设置环境变量
在这里插入图片描述
在这里插入图片描述
3、 打开Git bash
定位到sh文件所在目录,直接使用bash 或sh 来执行bash shell脚本:
在这里插入图片描述
打开CSDN APP,看更多技术内容
如何在Windows中运行bash_看,月亮在跳舞的博客
为了运行bash,首先要进行几步操作。首先,需要获得Windows10的build 14316。 安装内测版本之后,用户需要切换到开发者模式,从设置>更新(Settings > Updates),安全>开发者(Security > For Developers)打开新的设置页面,选择“Windows Subsystem...
继续访问
windows 使用bash_Neil_001的博客_windowns bash
Windows执行shell脚本 1、 安装Git 2、 查看Git环境变量 右击电脑-属性-高级-高级系统设置 已设置环境变量 3、 打开Gitbash定位到sh文件所在目录,直接使用bash或sh 来执行bashshell脚本: windowns server 2012 部署mysql5.7,并修改初始密...
继续访问
最新发布 在Linux中执行shell(bash)脚本的方法 2208笔记
用source命令执行脚本文件时,是在当前Shell进程中执行,而不是像./与sh方式一样在新的Shell进程中执行,因此早先设置的变量在脚本里是可以读取到的。source是Shell(准确地说是Bash)的内置命令,在Bourne Shell中的等价命令是一个点.,即点命令。后, 就能在任意文件夹, 像执行命令一样, 直接输入脚本名就能执行 , 会在子Shell中执行。按路径直接执行,需要脚本文件有可执行权限, 一般自己创建的文件有读写权限,但没有可执行权限。命令直接在当前shell执行脚本。
继续访问
CmdBash:CMDBASH命令行工具
CmdBash CMD/BASH命令行工具 作者 zlb 运行环境 适用于jdk1.8
如何在Windows中运行bash
当微软宣布,将在Windows10上面支持bash时,所有的Unix命令行用户都为之雀跃了。上周三,微软发布了一个测试版本,开始支持了这项功能。为了运行bash,首先要进行几步操作。首先,需要获得Windows10的build 14316。安装内测版本之后,用户需要切换到开发者模式,从设置>更新(Settings > Updates),安全>开发者(Security > F...
继续访问
在windows中利用gitbash并行执行命令
rush并行sh语句
继续访问
windows10bash_Windows 10上的Bash
windows10bash 因为我使用基于Linux和Windows的计算机进行开发,所以我经常希望自己在Windows环境中可以使用一些方便的命令行Linux工具。 Cygwin , PowerShell和用于模拟Linux工具的 自定义Groovy脚本起到了帮助作用,但是最近得知Windows 10上的Ubuntu上的Bash可用我感到非常惊讶。 在本文中,我简要总结了使bash在Wind...
继续访问
VsCode | 在 Windows 上调试Bash脚本
如何使用VsCode调试Bash脚本
继续访问
热门推荐 windows使用bash指令
方法只适用于64位版本的Windows 10 1. 打开设置应用程序和头部更新和安全>对于开发。在这里启动“开发者模式”开关,使开发者模式 2. 接下来,打开控制面板,单击“程序”,然后单击“打开Windows功能打开或关闭”在程序和功能。在这里启用“Windows子系统为Linux(测试版)”列表中的选项,并单击“确定”。 执行此操作后,系统会提示您重新启动计算机。点击“立即...
继续访问
Windows 10上的Bash
因为我使用基于Linux和Windows的机器进行开发,所以我经常希望自己在Windows环境中拥有一些方便的命令行Linux工具。 Cygwin , PowerShell和编写用于模拟Linux工具的 自定义Groovy脚本起到了帮助作用,但是最近得知Windows 10上的Ubuntu上的Bash可用,令我感到惊喜。 在本文中,我简要总结了使bash在Windows上可用的一些步骤。 在...
继续访问
Windows环境运行shell脚本
Windows环境运行shell脚本
继续访问
解决方案:Win10如何使用bash批处理命令
问题描述:无法将“bash”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 'bash' 不是内部或外部命令,也不是可运行的程序或批处理文件。......
继续访问
windows python执行bash命令
windows的cmd命令是很难用的,比如想通过管道来对输出作下切割,就比较繁琐;然而在bash shell里,cut命令就能轻松搞定,但在windows下,如何执行bash命令呢?首先要安装bash,不过,作为开发者,一般都会安装git,它自带了bash命令。............
继续访问
win python 运行bash脚本_在window中模拟执行linux 脚本
现在后端环境常常是linux系统,但很多情况下,我们的开发环境是Window系统,为了能在window下模拟linux的脚本,而且也能够ssh到linux server,我们可以在window系统中安装这样一个模拟环境 cmder,以下举例说明如何使用cmder脚本bash 脚本:test.sh#!/bin/bash./test.py -s http://localhost:8008/foo -i...
继续访问
windows bash
1 echo 和 @ 回显命令 @ #关闭单行回显 echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显。一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是 echo ...
继续访问
win python 运行bash脚本_在Windows上从Python执行bash脚本
我正在尝试编写一个python脚本,它将在我的Windows机器上执行bash脚本。到目前为止,我一直在使用Cygwin终端,因此执行bash脚本RunModels.scr就像./RunModels.scr一样简单。现在我希望能够利用Python的subprocess,但是由于Windows没有处理bash的内置功能,我不知道该怎么做。我试图模拟./RunModels.scr < valid...
继续访问
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
每次安装虚拟机,打开虚拟机,一顿繁琐的界面操作,等待时长,让我很烦躁,对于熟悉开发工程师,在Linux上面敲击感和运行等等都要比Windows上面好很多倍,那么怎么在Windows上面直接运行Bash shell呢?下面对详细过程尽心了描述,请耐心观看。 1. 首先打开我们的开发者模式 1.1 直接在搜索框输入开发者,然后Enter就可以直接进入啦 1.2 或者按住win(键盘Ctrl和Alt中间哪个Windows图标)+x,然后选择“设置”,然后选择“更新和安全”,选择开发者选项就行啦 1.3 打开
继续访问
windows下如何运行shell脚本
windows下如何执行shell脚本
继续访问
Win10系统开启Linux Bash命令行
微软在推送的Win10一周年更新预览版14316中,该版本中包含了大部分已宣布内容,其中包括了一项重要的原生支持Linux Bash命令行支持。2、搜索“程序和功能”,选择“开启或关闭Windows功能”,开启Windows Subsystem for Linux (Beta),并重启系统。或Mac电脑就可以在Win10上使用Bash,那么如何在Win10系统上开启Linux Bash命令行呢?大家可以尝试下面的方法来解决这个问题。3、安装Bash,需要开启命令行模式,然后输入“bash”,即可使用。...
继续访问
怎样在window下运行linux bash shell脚本
怎样在window下运行linux bash shell
继续访问
windows下安装bash bash的目录位置
windows下安装bash bash的目录位置 C:\Users\张政\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
继续访问
WINDOWS命令和批处理
转自:http://proclsj999.javaeye.com/blog/206853 另外查看WIndows和Linux的所有命令:http://www.ss64.com/nt/。 该教程一共分为4大部分,第一部分是批处理的专用命令,第二部分是特殊的符号与批处理,第三部分是批处理与变量,第四部分是完整案例。 %~dp0 表示当前bat所在的目录。第一部分:批处理的专用命令 批处理文...
继续访问
windows bash
bash
写评论
评论
6
点赞
踩
分享
㈩ 如何用bash脚本实现批量修改密码复杂度
sed -i 's/\(password requisite pam_cracklib.so\).*/\1 try_first_pass retry=1 minlen=8 dcredit=-1 ocredit=-1 lcredit=-1/' /etc/pam.d/system-auth
sed -i 's/\(password sufficient pam_unix.so\).*/\1 md5 shadow nullok try_first_pass use_authtok remember=5/' /etc/pam.d/system-auth