常用shell命令的写法
这并不是教人怎么进行shell编程的文章,只是韦哥在工作中用到的一些简单脚本的写法。因为有些命令即使用过几次了,再次使用时仍然写不对,需要man来看下或者需要google,你也可以理解为对命令的理解不深造成,但韦哥懒得花精力去深究一些命令了,还不如在这里记下它们的用法,到需要再次使用时,打开自己博客进行程序猿们最擅长的ctrl+c操作就OK了。以后有更多积累时,会不断更新这篇文章。如要看更多组织结构良好内容更丰富的范例,推荐参考牛人吴章金的《Shell编程范例序列》。
1. 找到文件iscsi.conf中字符串“<SCSIid>”所在的行号:
line_num=`cat iscsi.conf|awk '/<SCSIid>/{print NR;}'` # 所在行号
line_num=$(($line_num+1)) # 下一行行号,这里加1的写法
2. case分支写法,判断server_type是否为“master”或“slave”:
case $server_type in
"master")
;;
"slave")
;;
*) # 相当于default,所有其它的情况
echo "Error server type"
exit 1
;;
esac
3. 往/etc/hosts文件中添加一行,至于干什么你应该知道了:
sed -i "$ a 192.168.1.1 tftp_server" /etc/hosts
4. 从服务器repo目录下载后缀名为.repo的文件,不下载其父目录的内容,下载后放在当前文件夹下,不创建新的文件夹:
wget -r -nd --no-parent http://$tftp_server/repo/ -A repo
5. 生成admin-openrc.sh文件并添加指定内容“export OS_USERNAME=admin”:
cat >> admin-openrc.sh << EOF
export OS_USERNAME=admin
EOF
6. 安装mariadb-server-5.5会弹框要求输入root密码,用脚本自动化安装,无需手动输入:
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password password $MYSQL_PASS"
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password_again password $MYSQL_PASS"
apt-get -y install mariadb-server-5.5 python-mysqldb # 这回不会弹框框了
7. 将change_mysql_password.sql文件中的newpassword替换为MYSQL_PASS变量的内容,然后将该脚本文件导入mysql执行文件里面的命令:
sed -i "s/newpassword/$MYSQL_PASS/g" ./change_mysql_password.sql
debian_sys_pass=`cat /etc/mysql/debian.cnf |grep password|awk '{print $3}'|awk 'NR==1{print;}'`
mysql -udebian-sys-maint -p"$debian_sys_pass" < change_mysql_password.sql
8. 改变目录属性:
chown -R swift:swift /etc/swift # 递归将/etc/swift目录及子目录所属的用户和组改为swift
chgrp swift /etc/swift # 将/etc/swift目录所属组改为swift
9. 获取eth0的MAC地址:
HWADDR=$(/sbin/ifconfig eth0|egrep -o "([[:xdigit:]]{2}[:]){5}[[:xdigit:]]{2}")
10. 判断传递给脚本的参数个数:
if [ ! $# -eq 2 ]
then
echo "Two arguments needed!"
exit
fi
11. 递归将当前目录下文件中字符串“old”替换为“new”:
grep -rI old *|awk '{split($1, c,":");print c[1];}'|xargs sed -i "s/old/new/g"
12. 判断是否为偶数:
if (($index%2 != 0))
then
fi
13. 去掉字符串str最后一个字符:
str=`echo ${str%?}`
14. 循环一个列表,MAC_LIST由多个行组成:
for macaddr in $(echo $MAC_LIST | awk '{print;}')
do
done
15. while循环:
while [ $i -lt 3 ] # 当i小于3时循环
do
done
16. 设置当前进程及其子进程的IO优先级:
ionice -c3 -p$$
17. 判断字符串str为空:
if [ -z "$str" ]
then
fi
18. for循环:
for ((i=1; i<10; i++)) # i小于10时循环
do
done
19. 判断/dev/my_dev是否为块设备:
if [ -b "/dev/my_dev" ]
then
break
fi
20. 将文件描述符9和文件/tmp/snapshot.lock关联起来:
exec 9>/tmp/snapshot.lock
21. 在文件/etc/rc.local文件第10行后添加“sleep 2”:
sed -i '10a sleep 2' /etc/rc.local
22. 判断/www/blank是否是一个目录:
if [ ! -d /www/blank ]
then
fi
23. 删除文件/etc/rc.local中包含“firstboot_task.sh”字符串的行:
sed -i '/firstboot_task.sh/d' /etc/rc.local
常用shell命令的写法的更多相关文章
- Windows常用shell命令大全
Windows常用shell命令大全 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而非鼠 ...
- Linux Shell常用shell命令
Linux Shell常用shell命令 一.文件.目录操作命令 1.ls命令 功能:显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示 ...
- Ubuntu常用shell命令
目录 ls cd mkdir mv cp scp rm df du chmod chown chgrp head tail screen apt-get Ubuntu常用shell命令 Ubuntu作 ...
- Windows常用shell命令大全(转)
[Windows常用shell命令大全] 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而 ...
- 原 HBase 常用Shell命令
HBase 常用Shell命令 1.进入hbase shell console $HBASE_HOME/bin/hbase shell 如果有kerberos认证,需要事先使用相应的keytab进行一 ...
- HBase 安装与配置及常用Shell命令
HBase 安装与配置 首要配置 配置时间同步(所有节点上执行) yum -y install chrony vi /etc/chrony.conf #写入(7版本用server:8版本用pool): ...
- 常用shell命令中你所不熟悉的参数
1. ls: 类似于dos下的dir命令 ls最常用的参数有三个: -a -l -F. ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除 ...
- Android_ADB 常用 shell命令 和 sqlite3 简单增删改查
今天学习了一个ADB的常用命令.接下来简单使用几个常用ADB shell 命令. 首先我们得明白什么是adb.exe ADB -Android Debug Bridge, 是 Android sdk ...
- Mac下的常用Shell命令
今天介绍一下在Mac的终端中一些常用的Shell命令: 1.查看当前工作目录的完整路径 pwd (pwd的原意是:print work directiory,而不是密码password的意思,呵呵) ...
随机推荐
- thymeleaf和artTemplate
Company最近项目中使用了两个模板引擎,分别是Java服务器端的模板引擎Thymeleaf和前端的模板引擎artTemplate, 其实对于这两个模板引擎 理论上应该是不应该放在一起记录的,但是b ...
- Jmeter性能指标分析-下载了服务器监控插件的各个组件的功能介绍
1.jp@gc - Actiive Threads Over Time:不同时间的活动用户数量展示(图表) 当前的时间间隔是1毫秒,在setting中可以设置时间间隔以及其他的参数 2.jp@gc - ...
- NYOJ 745 蚂蚁的难题(二)
蚂蚁的难题(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种 ...
- P2341 受欢迎的牛
受欢迎的牛 洛谷链接 题目大意: 有n头牛,牛会喜欢其他牛和自己,而喜欢是可以传递的,求被所有牛喜欢的牛的数量. 思路: 这是一道tarjan缩点的题目.被所有牛都喜欢的牛,一定会在一个强连通分量里. ...
- 九度oj 题目1021:统计字符
题目描述: 统计一个给定字符串中指定的字符出现的次数. 输入: 测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串.注 ...
- BZOJ 1294 [SCOI2009]围豆豆Bean ——计算几何
显然我们不可能表示出一台路径,因为实在是太复杂了. 所以我们可以记录一下路径对答案的影响,显然路径对答案影响相同的时候,答案更优,所以我们可以用影响来代替路径. 所以我们考虑状压一下所有的豆子有没有被 ...
- Codevs 5564 陶陶摘苹果2
5564 陶陶摘苹果2 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 白银 Silver 题目描述 Description 陶陶已经够高摘到所有苹果了,但是他力量有限,最大承受质量为 ...
- toolbarlite随笔之插件的闭包写法
toolbarlite这个东西至今没搞懂是什么玩意.因为除了源代码我实在是找不到除了toolbar之外的任何关于toolbarlite的东西了.不知道toolbarlite是不是toolbar的子集, ...
- Python入门--2--继续学习
继续学习小甲鱼 一.python比较操作符 == :判断左边是否等于右边 != : 判断左边是否不能右边 二. if while判断语句 栗子: temp = input ("sha shu ...
- Cookie 和 Session 有什么区别呢?
Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?什么是 Session?两者的区别等 但如果再往深入探讨的话,就慢慢有一些朋友不太了解了 ...