从零开始学Shell(一)
1.$表示普通用户,#表示超级用户。
2.sh /home/path/script.sh
3.chmod a+x script.sh 增加可执行权限
./script.sh #./表示当前的目录
4.终端打印:echo 'I love linux'
#!/bin/bash
#file_name:printf.sh
printf "%-5s %-10s %-4s\n" No Name Mark
printf "%-5s %-10s %-4.2s\n" 1 Sarath 80.3456
printf "%-5s %-10s %-4s\n" 2 James 90.9989
printf "%-5s %-10s %-4s\n" 3 Jeff 77.546
%s,%c,%d,%f都是格式替代符,%-5s指明了一个格式为左对齐且宽度为5的字符串替代,没有-表示右对齐;
sh printf.sh
chmod a+x printf.sh
./printf.sh
[root@localhost learn_shell]# echo -e "1\t2\t3"
1 2 3
cat /proc/$PID/environ
[root@localhost learn_shell]# pgrep bash #pgrep 获取bash的进程ID
18585
cat /proc/18585/environ |tr '\o' '\n' # \o代表null字符,tr将\o替换为\n
[root@localhost learn_shell]# var='value'
[root@localhost learn_shell]# echo $var
value
[root@localhost learn_shell]# echo ${var}
value
[root@localhost learn_shell]# cat variables.sh
#!/bin/bash
#file_name:variables.sh
fruit=apple
count=5
echo "We have $count ${fruit}(s)"
[root@localhost learn_shell]# sh variables.sh
We have 5 apple(s)
[root@localhost learn_shell]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
$PATH通常定义在以下三个文件中
cat /etc/environment
cat /etc/profile
cat ~/.bashrc
给$PATH添加一条新的路径
export PATH="$PATH:/home/user/bin"
PATH="$PATH:/home/user/bin"
export PATH
echo $PATH
echo $HOME
echo $PWD
echo $USER
echo $UID
echo $SHELL = echo $0
[root@localhost learn_shell]# var=123456
[root@localhost learn_shell]# echo ${#var}
6
#!/bin/bash
#file_name:chkuser.sh
if [ $UID -ne 0 ];then
echo None root user.Please run as root
else
echo "Root USER"
fi
[root@localhost learn_shell]# sh chkuser.sh
Root USER
[root@localhost learn_shell]# cat test_let.sh
#!/bin/bash
#file_name:test_let.sh
no1=4;
no2=5;
let result=no1+no2
echo $result
[root@localhost learn_shell]# sh test_let.sh
9
let no1++ 自加操作
let no1-- 自减操作
let no1+=6 (no=no+6)
let no2-=6 (no=no-6)
result=$[ no1 + no2 ]
result=$[ $no1 + 5 ]
result=$(( no1 + 50 ))
result=`expr 4 + 4`
result=$(expr $no1 + 5)
echo "4 * 0.56" | bc
[root@localhost learn_shell]# no1=54
[root@localhost learn_shell]# result=`echo "$no1 * 1.5" | bc`
[root@localhost learn_shell]# echo $result
81.0
[root@localhost learn_shell]# echo "scale=2;3/8" | bc
.37
[root@localhost learn_shell]# echo "scale=3;3/8" | bc
.375
[root@localhost learn_shell]# echo "sqrt(100)" | bc
10
[root@localhost learn_shell]# echo "10^10" | bc
10000000000
[root@localhost learn_shell]# echo "10^2" | bc
100
从零开始学Shell(一)的更多相关文章
- 从零开始学Shell(二)
$1,$2....${10},${11},[root@localhost cee]# cat p.sh #!/bin/bash#file_name:p.shecho $1 $2[root@localh ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)
你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)
硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...
- 从零开始学 Java - 我放弃了 .NET ?
这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)
从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...
- 从零开始学Python07作业思路:模拟人生小游戏
标签(空格分隔): 从零开始学Python 一,作业说明 模拟人生: 1 定义三个人物,屌丝John,美女Liz,高富帅Peter. John和Liz大学时是恋人,毕业工作后,Liz傍上了Peter, ...
- 从零开始学 Java - 利用 Nginx 负载均衡实现 Web 服务器更新不影响访问
还记得那些美妙的夜晚吗 你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见 ...
- 从零开始学 Java - log4j 项目中的详细配置
你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...
随机推荐
- JAVA 多线程之volatile的介绍
volatile的介绍 volatile的主要作用是:提示编译器该对象的值有可能在编译器未监测的情况下被改变. volatile类似于大家所熟知的const也是一个类型修饰符.volatile是给编译 ...
- android layout文件优化
性能优化1--UI优化 1.使用系统为我们提供了几个抽象的标签①include:重用include中layout属性指定一个外部布局文件,通过该方式则不需要把这个布局文件在该代码中重复的写一遍了. 若 ...
- ASP.NET页面之间传值的方式之Application(个人整理)
Application Application变量在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所以可以在不同页面中对它进行存取.它和Session变量的区别在于,前者是所有的用户共用 ...
- html5 javascript 事件练习3随机键盘
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- 20155228 2017-11-19 实现mypwd(选做,加分)
20155228 2017-11-19 实现mypwd(选做,加分) 题目和要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd ...
- CentOS6.5安装与配置Mysql数据库
from:http://www.centoscn.com/mysql/2014/1211/4290.html 一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle ...
- 多条件搜索优化sql
SELECT ctm.* FROM crawltaskmanage ctm,urlmanage um WHERE (ctm.status='0' AND um.`urlId`=ctm.`urlId`) ...
- URL与视图
path函数 path函数的定义为:path(route,view,name=None,kwargs=None).以下对这几个参数进行讲解. route 参数 url的匹配规则.这个参数中可以指定ur ...
- 定位bug的基本要求
很多人觉得qa只是负责发现问题,这个实在太狭隘了,现代qa除了发现问题这种基本功外,定位问题,提出解决方案,提出预防方案也是要掌握的技能.这里先说定位问题的要求,定位问题要向深入,前提当然是对功能.产 ...
- Docker Weave 命令整理
Docker Weave 命令整理 # 查看weave状态 weave status # 查看状态详情 weave status connections # 查看weave相互之间节点建立的关系 we ...