shell相关命令
1.shell是什么?
从用户角度:shell是用户与Linux沟通的桥梁
从程序员角度:shell本身是一种用C语言编写的程序
shell担任了翻译的角色,将用户输入的命令翻译成Linux能够识别的指令。
shell是一个命令解释器。
shell是一种编程语言。
shell是内核的保护壳。
2.shell类型
cat /etc/shells 查看当前系统上的shell
echo $SHELL 查看当前使用的shell
3.bash优点:
1.命令编辑
记忆使用过的指令,上下键可以找到之前的指令
history 查看历史指令
vim .bash_history 历史指令保存在该文件中,默认保存2000条记录
vim .bashrc -> HISTFILESIZE=200 可以修改最大保存记录的数
2.补全功能(table)
指令补全
文件名补全
3.命令别名(alias)设定功能
ls -al ->lm
设定别名:alias lm='ls -al'
alias rm='rm -i'
4.作业控制、前景背景控制 &
ctrl + z 让正在运行的程序切换到后台运行
jobs 查看正在运行的作业
fg 1/2/3切回到前台运行
使用前背景控制可以让工作更顺利
5.shell script
DOS 中有将一堆指令写一起的称为 批处理文件 (.bat)
Linux中shell script 功能更强
4.在bash中输入指令
command [-options] parameter1,parameter2,...
指令 选项 参数
1.指令与选项、参数之间以空格,不论空几格shell都视为一格
2.如果指令很长,可以用 \ 符使指令连续到下一行
3.一般来说,选项是 -选项,有时需要写完整的名称 --选项
ls --help
5.管道(|)
一般用来连接进程
把前一个命令的输出作为下一个命令的输入
ps | sort | more
6.重定向
简单的说,就是将目前的所得数据转到其他地方
大于号 > 就是将输出结果导向到“>”后面的文件中
1.若文件不存在,会自动创建
2.若存在,先清空,再将数据写入
标准输入 代码0 stdin <
标准输出 代码1 stdout 1>
标准错误 代码2 stderr 2>
基本指令格式:
指令 > 设备/文件
指令 1> 设备/文件
指令 2> 设备/文件
指令 < 设备/文件
把正常输出和错误输出重定向到同一个文件中:
ls -l file 1> out.txt 2>&1
输入重定向<:
简单的说,就是将原来 需要由键盘输入的数据经由文件读入
more < err.txt
wc err.txt
输出行、单词数、字节数
ls QQQQQ 2> /dev/null (空设备)
----------------------------
shell语法:
变量
条件
程序控制
函数
变量:
1.环境变量
一般指在操作系统中用来指定系统运行环境的一些参数
PATH=$PATH:.
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
HOME
PWD
LANG
OLDPWD (cd -)
export PS1='[\u@\h:]$ '
1.永久的
使用export命令声明,并保存到配置文件中
2.临时的
2.自定义变量
1.最简单常用的例子就是路径名称
export myDir=/mnt/hgfs/中文路径
cd $myDir
2.另一个需要自定义变量的地方是脚本文件中(参考#define,修改维护更方便)
3.特殊变量
$? 表示上一个命令的退出码(返回值)
设定变量的规则:
1.变量与变量内容以"="连接
2.等号两边不能直接 接空格符
3.变量名只能是字母和数字,其中数字不能是开头字符
4.若有空格符,可用双引号或单引号将变量内容结合起来
5.可以通过在变量名前加一个$符号来访问它的内容
6.通常大写字符是系统预设变量,自定义变量可以使用小写字符,方便判断
条件:
test 条件
或 [ 条件 ]
测试字符串:
string1 = string2 相同
string1 != string2 不同
-n string 如果字符串不空,则结果为真
-z string 如果字符串为空,则结果为真
测试算术表达式:
expression1 -eq expression2 等于
-nq 不等于
-gt 大于(greater)
-lt 小于(little)
-ge 大于等于
-le 小于等于
!expression 如果表达式为真,则结果为,假反之亦然
测试文件条件:
-d file 是目录则为真
-f file 是普通文件则为真
-e file 文件存在则为真
-r file 文件可读则为真
-w file 文件可写则为真
-x file 文件可执行则为真
程序控制:
1.if语句
if 条件
then
语句
elif 条件
then
语句
else
语句
fi
注:if测试条件中 等号两边要有空格
如果用[]来测条件 []与条件之间也要有空格
第一个脚本程序:
1.#!/bin/bash 告诉系统,用#!后面的程序来执行我的脚本文件
2.其它行的#开头的是注释
3.echo 用来输出 (相当于printf),read用来输入,相当于scanf
4.脚本结束时,exit 0
脚本程序的执行:
1./bin/bash XXX.sh
2.chmod +x XXX.sh
./xxx.sh
2.for语句
for 变量 in 值1,值2,...
do
语句
done
`指令`:获取指令的执行结果
$(指令):获取指令的执行结果
3.while语句
while 条件
do
语句
done
#!/bin/bash
#这是我的第一个脚本,就是用来输出hello wrold
var="hello world"
echo $var
exit 0
#!/bin/bash
#这是用if语句来测试字符串
echo "你饿了吗?请回答YES 或 NO"
read var
echo $var
if [ "$var" = "YES" ]
then
echo "咱们等会就吃饭"
elif [ $var = "NO" ]
then
echo "咱们再玩会"
else
echo "输入不正确,请重新输入"
fi
exit 0
#!/bin/bash
#这是用if来测文件
read var
if [ -f $var ]
then
echo "这是一个文件"
elif [ -d $var ]
then
echo "这是一个目录"
else
echo 不支持这种格式
fi
exit 0
#!/bin/bash
#这是测试for循环
for var in apple pear grape
do
echo $var
done
exit 0
#!/bin/bash
#打印当前目录下以.sh结尾的文件
#for var in `ls *.sh` # `指令` :表示获取指令执行的结果
for var in $(ls *.sh)
do
echo $var
done
exit 0
#!/bin/bash
#这是while语句示例
#密码检查
echo "请输入密码:"
read var
while [ $var != "123456" ]; do
echo "密码不正确,请重新输入"
read var
done
echo "密码正确,登录成功"
exit 0
作业:
求和1-100
学习for语句的第二种写法
#! /bin/bash
i=1
j=0
while :
do
j=$((j + i))
((i == 100 )) && break
((i++))
done
echo $j for 循环版本 #! /bin/bash
j=0 for ((i=1 ; i<=100 ; i++))
do
j=$((j + i))
done
echo $j #!/bin/sh
s=0
for i in `seq 1 100`
do
s=`expr $s + $i`
#s=$(expr $s + $i)
done
echo $s
shell相关命令的更多相关文章
- adb & adb shell 相关命令
在Mac上配置adb命令 在Mac OS中使用adb命令时,应进行变量配置,步骤如下: 一.终端中输入 cd ~ 二.输入touch .bash_profile 回车 touch:如果没有,则创建文件 ...
- Linux命令应用大词典-第10章 Shell相关命令
10.1 commond:抑制正常的Shell函数查找 10.2 exec:使用执行命令替换当前的shell进程 10.3 bash:GNU的Bourne-Again Shell解释器 10.4 bu ...
- Shell编程基础教程5--文本过滤、正则表达式、相关命令
5.文本过滤.正则表达式.相关命令 5.1.正则表达式(什么是正则表达式?正则表达式怎么进行匹配?常用命令) 简介: 一种用来描述文本模式的特殊语法 ...
- [ SHELL编程 ] 编程常用的ORACLE相关命令
本文主要描述shell编程中常用的Oracle相关命令. 1.sqlplus -L/-S参数 sqlplus -L user/password #-L参数表示用户只尝试登录一次, 而不是在出错时再次提 ...
- shell获取时间的相关命令
Linux shell获取时间和时间间隔(ms级别) 说明:在进行一些性能测试的时候,有时候我们希望能计算一个程序运行的时间,有时候可能会自己写一个shell脚本方便进行一些性能测试的控制(比如希望能 ...
- 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令
Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...
- Django命令行相关命令 以及创建一个空白网页的步骤
django相关命令行命令: django.admin.py是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每个Django Projec ...
- Linux Shell : Test命令参数解析
格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2 : int ...
- Linux基本命令之用户系统相关命令
1.格式说明 [simon@localhost simon]$ [simon@localhost ~]$ 这两种方式表示相同.simon是指定用户,localhost是计算机名字,如果不设置默认为lo ...
随机推荐
- 使用cisco SDM管理路由器
实验拓扑: 实验目的:掌握如何通过SDM对路由器进行管理 实验需求:设置R1使其能够通过SDM进行管理 实验步骤: 步骤一:配置基本IP地址 步骤二:在R1上进行设置,使其能够通过SDM连接 R1(c ...
- 救援行动(save)
救援行动(save) 题目描述 Angel被人抓住关在一个迷宫了!迷宫的长.宽均不超过200,迷宫中有不可以越过的墙以及监狱的看守.Angel的朋友带了一个救援队来到了迷宫中.他们的任务是:接近Ang ...
- LCD12864 液晶显示-汉字及自定义显示(串口)
在网上找了许久,发现FPGA用串口驱动LCD12864程序很少,基本上没有.刚开始窃喜,中间郁闷,最后还是高兴,为什么这样说呢!头一回在没有参考程序的情况下,完全是照时序图写(自信),中间调试过程遇到 ...
- git diff 差异对比
转载原文: http://fsjoy.blog.51cto.com/318484/245465/ 1. 查看当前所有的更改情况.git status 结果有3部分,changes to be comm ...
- js删除最后一个字符串方法
JS 删除字符串最后一个字符的几种方法 2010-12-02 08:18:35| 分类: 编程 |举报 |字号 订阅 字符串:string s = "1,2,3,4,5," ...
- eclipse java生成exe
eclipse导出jar文件再将它转换成exe可执行文件详解 关键字: 欢迎光临 此文章是为了帮助刚接触j2se或不懂如何打包jar文件的人而着笔,同时也是让自己的知识以文章的形式保存起来. 一.导出 ...
- Cantor表 1083
题目描述 Description 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - 2/1 2/ ...
- 加载window事件
$(document).ready()和window.onload的区别 发表于 2012-08-29 由 admin 以浏览器装载文档为例,在页面加载完毕后,浏览器会通过JavaScript为DOM ...
- Nginx 中 nginx.conf 详解
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...
- MAC平台下mysql7.5的安装
1.下载mysql(DMG格式64位的版本) http://dev.mysql.com/downloads/mysql/ 2.安装mysql 待下载*.dmg文件后双击,运行该安装文件 3.无限下一步 ...