Linux下的shell编程(一)BY 四喜三顺
Ctrl + Alt + T
vim文本编辑器:i(插入模式),v(可视模式),Esc(普通模式),:w(保存),:r(打开),:q(退出)
gvim 文本编辑器vim的升级版
gedit 更常用的文本编辑器
gcc file1.c 编译file1.c文件
./a.out 显示结果
pwd 查看当前路径
cd/ 切换到根目录
cd 切换到用户的主目录
cd /bin 切换到根目录下的bin子目录
cd bin 切换到当前坐在目录下的bin子目录
cd ../.. 切换到上级目录的父目录
sudo -i 切换到root目录(exit 回来)
ls查看文件列表
ls-l 查看文件列表详情
touch file1 建立文件file1
vim file1 对文件file1进行vim编辑
rm file1 删除文件file1
mkdir -p mydir1/mydir2 建立目录
rmdir -p mydir1/mydir2 删除目录
cp -r /c /d 将目录c中的所有文件和目录复制到目录d中
find / -name file1.c 查找文件系统中名字为file1.c的文件
find /usr -name file1.c 查找usr文件夹中名字为file1.c的文件
man ls 查看ls的使用帮助
history 8 查看回溯8条操作指令
shell程序:将一系列linux程序通过流程控制写在一个文本文件中,由shell读取此文本文件并且依次执行文件中的这些程序
(1)gedit中输入代码,如:
#! /bin/bash (所有均已#!开头,后跟执行此shell程序的shell解释器完整路径)
# name (注释以#开头)
echo 'Hello'
echo 'this is a shell file'
(2)保存,文件名a.sh
(3)添加可执行权限 chmod +x a.sh
(4)运行程序 ./a.sh
局部变量:=进行赋值,$用来访问,如:a=1.23 echo $a
环境变量:一个用户的所有进程中都可访问的变量。export查看;echo $变量名,用来访问;export XX=1234用来定义。
为了实现重启后仍然访问定义的环境变量,可在系统配置文件中进行定义。gedit /etc/profile
echo 输出文本或变量的值
cat 文件名 输出文件内容
cat 文件1 文件2 拼接多个文件并输出内容
read 从键盘或文件中读入信息,并赋给一个变量
xdg-open filename 打开jpg\pdf\mp3等格式文件
文件重定向:
指令 > 文件名 将标准输出重定向到一个文件中
指令 >> 文件名 将标准输出以追加的方式重定向到一个文件中
指令 < 文件名 指令以文件作为标准输入
指令 < 文件名1 > 文件名2 指令以文件1作为标准输入,文件2作为标准输出
反引号(tab上面的键)用来执行引号中的系统命令,如 echo `date`或者 A=`ls` echo $A
文件测试:
test -d /windows 测试windows是不是一个目录; test -x a.txt 测试文件a.txt是不是可执行
数值测试:2种方法
(1)test 第一个操作数 比较符 第二个操作数
(2) [ 第一个操作数 比较符 第二个操作数 ] ([后面一定有空格)
比较符包括:-eq(相等) -ne(不想等)-le(小于等于)-ge(大于等于)-gt(大于)-lt(小于)
输入$?输出测试结果
字符测试:
(一)如果测试一个字符串是否为空,则:
(1)test 比较符 字符串
(2)[ 比较符 字符串 ]
比较符为-z(是否是空字符)-n(是否是非空字符)
输入$?输出测试结果
(二)如果测试两个字符串是否相等,则:
(1)test 第一个字符串 比较符 第二个字符串
(2) [ 第一个字符串 比较符 第二个字符串 ] ([后面一定有空格)
比较符包括:=(相等) !=(不想等)
输入$?输出测试结果
逻辑测试:
[ 表达式 比较符 表达式 ]
比较符包括:-a(与)-o(或) !(非)
if语句:
(1) if 条件
then 命令1
fi
(2) if 条件
then 命令1
else 命令2
fi
(3) if 条件1
then 命令1
elif 条件2
then命令2
else命令3
fi
for语句
for 变量名 in 列表
do
命令1
命令2……
done
case语句
case 匹配母板 in
模板1 [ | 模板2 ] … ) 语句组 ;;
模板3 [ | 模板4 ] … ) 语句组 ;;
esac
until语句
until 条件
do
命令1
……
done
例如:计算1到100的和
#! /bin/bash
# sum.sh
sum=0
i=1
until [ $i -gt 100 ]
do
sum=$[$sum+$i]
i=$[$i+1]
done
echo $sum
Linux下的shell编程(一)BY 四喜三顺的更多相关文章
- Linux下的Shell编程
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- linux下的Shell编程(3)shell里的流程控制
if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了 ...
- Linux下的Shell编程(1)最简单的例子
深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. 从第一行开始 我们可以使用任意一种文字编辑器编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bi ...
- Linux下的shell编程入门
通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者 ...
- linux下的Shell编程(7)使用-x和-n调试shell程序
我们也可以在Shell下调试Shell Script脚本,当然最简单的方法就是用echo输出查看变量取值了.Bash也提供了真正的调试方法,就是执行脚本的时候用-x参数. sh -x filename ...
- Linux下的shell编程(三)BY 四喜三顺
正则表达式:-------------------------------------------------------------------------------------------^ ...
- Linux下的shell编程(二)BY 四喜三顺
Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如: xiangqi@xiangqi ~$ root@xiangqi ~# ec ...
- Linux下的Shell编程(2)环境变量和局部变量
Shell Script是一种弱类型语言,使用变量的时候无需首先声明其类型. 局部变量在本地数据区分配内存进行存储,这个变量归当前的Shell所有,任何子进 程都不能访问本地变量.这些变量与环境变量不 ...
- linux下的Shell编程(8)自定义函数
Shell Script中也可以使用自定义的函数,其语法形式如下: functionname() { - }
随机推荐
- autotools工具使用记录
参考 http://blog.chinaunix.net/uid-25100840-id-271131.html http://blog.sina.com.cn/s/blog_4c2bf01a0101 ...
- 工厂方法(factory method)
动机(Motivation) 在软件系统中,经常面临着“某个对象”的创建工作:由需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口.如何应对这种变化?如何提供一种“封装机制”来隔离出 ...
- Genymotion--最快的安卓模拟器 测试与模拟APP应用必备
命令行工具,Eclipse插件,多操作系统 1 易于安装,易于运行 超过10个虚拟设备 您很匆忙?您想测试市场的主要设备?使用我们的虚拟设备! 2 控制功能强大的传感器来测试您的应用程序 自定义你的测 ...
- 从零开始学习Node.js例子零 永远的Hello World
index.js var http = require("http"); http.createServer(function(request, response) { respo ...
- JavaScript闭包学习笔记
此文都是大牛们关于闭包的观点,在此只是总结. 闭包应用的两种情况即可——函数作为返回值,函数作为参数传递. 1 深入理解javascript原型和闭包 判断一个变量是不是对象非常简单.值类型的类型判断 ...
- Python 基礎 - if else流程判斷
hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...
- java.util.NoSuchElementException解决办法
报错代码 public void switchToNewWindow(){ //得到当前句柄 String currentWindow = driver.getWindowHandle(); //得到 ...
- for循环相关
循环语句是指令式编程的常见语句,Scala对其加以改进,成为适应函数式风格的利器. for循环中的变量,没有val或者var,是因为变量的类型,完全是集合中的元素的类型.作用域持续到括号结束. 在sc ...
- JPush极光推送Java服务器端API
// 对android和ios设备发送 JPushClient jpush = new JPushClient(masterSecret, appKey); // 对android和ios设备发送 ...
- 【转载】AngularJs 指令directive之controller,link,compile
关于自定义指令的命名,你可以随便怎么起名字都行,官方是推荐用[命名空间-指令名称]这样的方式,像ng-controller.不过你可千万不要用 ng-前缀了,防止与系统自带的指令重名.另外一个需知道的 ...