Linux shell编程命令-Linux基础环境命令学习笔记
1、正则表达式
1)^开始 *前一个字符重复0次以上
+ 1次以上
? 0次或者1次
. 一个任意字符(.*连用)
{m,n} m到n次
[0-9][a-z] 任意数字或字母
$结束字符
2)sed和awk命令
sed '匹配条件/执行的动作' /etc/passwd sed 's/old/new/g'
awk -F: '{print $1}' /etc/passwd 1表示第一列,2表示第二列 -F:表示分隔符为:
2、变量
1)环境变量 系统环境变量(/etc/profile) 用户环境变量(/home/用户名/.bash_profile)
set查看
2)位置变量 $0-9
$0 脚本名称
$1-9 位置参数
3)预定义变量
$! 后台运行的最后一个进程的PID号
$? 程序退出的代表(0成功)
$* 所有参数的内容
$$ 当前进程的ID号码
$# 当前shell的参数个数
$@ 所有参数内容(逐个读取)
4)自定义变量
name=[value] ps:等号两边不能有空格,变量名对大小敏感
$变量名 取值
3、算术运算
+ - * / %
$((表达式))
$[表达式]
expr expression expr 5 + 2 变量间有空格
4、内置测试判断
Test 测试表达式
[ 测试表达式 ] ps:测试表达式与[]间一定有空格
数值比较
-lt 小于 ex:test &a -lt &b echo $?
-gt 大于
-eq 等于
-ne 不等于
-le 小于等于
-ge 大于等于
字串测试
= 等于
!= 不等于
-z 字串 字串长度伪(为0)则真
-n 字串 字串长度不伪则真
文件测试
-e 文件名 文件存在则真
-r 文件名 文件存在且可读为真
-w 文件名 可写
-x 文件名 可执行
-s 文件名 文件中至少存在一个字符
-d 文件名 文件存在且为目录
-f 文件名 文件存在且为普通文件
!(非)>>-a(与)>>-o(或)
5、命令间的逻辑符合
&& 逻辑与
cmd1 && cmd2 cmd1执行成功才执行cmd2
|| 逻辑或
cmd1 || cmd2 cmd1失败了才执行cmd2
; 无逻辑关系
6、常用命令
date -s "2016-04-12 15:20:13" 修改系统时间
date '+Y%m%d' 按照年月日格式输出系统时间
date -d '7 day ago' '+Y%m%d' 输出7天前的时间
7、取字符串
${变量名:offset:length} echo ${a%.*}
8、书写规范
#!/bin/bash 声明运行环境
运行方式 a.赋予权限直接运行
b.通过运行环境运行 bash 1.sh sh 1.sh
c. . 1.sh source 1.sh
9、控制语句
1)for语句
a. for 变量 in 值1 值2...值N 变量依次取值1...值N
do
命令集合 {1..50} `seq 50` 取值1到50
done
b. for((初始化变量;结束循环条件;变量运算))
2)while循环
a. while [ 条件 ] let i=i+1---i=$[i+1] i自增1
b. while read -r line
do
echo $line
done < /etc/passwd 从路径中逐行读取并赋值给line
3)if语句
if 条件
then
命令序列
elif 条件
then
命令序列
else
命令序列
fi
4)case语句
a. case $变量名称 in
条件1)
命令序列
;;
条件2)
命令序列
;;
*) 以上都不满足
esac
10、函数
a. name(){
命令序列
}
b. function name{
命令序列
}
11、计划任务
1)一次性计划任务
at 时间 ctrl+d结束输入
at -l 列出当前计划任务
2)周期性计划任务 service crond start(status,restart)
a.开机自启动
chkconfig --list 列出系统服务是否开机自启动(3和5)
b.制定计划任务内容
crontab -e(ENTER) >> 进入vi命令
时间和命令 分 时 日 月 周(没有用*代替 -表示连续时间 ,表示若干不连续时间 /表示间隔时间) cmd命令 */10 * * * * ntpdate 时间服务器IP 每10分钟同步一次时钟
c.重启服务 service crond restart
Linux shell编程命令-Linux基础环境命令学习笔记的更多相关文章
- 《Linux.Shell编程从入门到精通》读书笔记
第一章 第一个Shell程序 以 #!解析器名称 开头,表示选择哪个解释器解释shell脚本 source命令 export命令 env命令 unset命令 第二章 shell编程基础 函数传递 标准 ...
- Linux Shell编程(21)——复杂命令
更高级的用户命令find-exec COMMAND \;在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell ...
- Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux shell下30个有趣的命令
Tips 原文作者:Víctor López Ferrando 原文地址:30 interesting commands for the Linux shell 这些是我收集了多年的Linux she ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- Linux Shell编程与编辑器使用详解
<Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...
随机推荐
- 高性能管线式HTTP请求(实践·原理·实现)
该篇实际是介绍pipe管线的原理,下面主要通过其高性能的测试实践,解析背后数据流量及原理.最后附带一个简单的实现 实践 先直接看对比测试方法 对于单一客户端对服务器进行http请求,一般我 ...
- 调用CMD命令的一个.NET工具类(MyWindowsCmd)
功能大概描述一下如果直接StandardOutput.ReadToEnd()这种方法,有很多限制 这类方式必须把命令全部执行一次写入并标记为exit,而且返回内容的获取会一直等待,如果在主线程里使用会 ...
- Xamarin android使用Sqlite做本地存储数据库
android使用Sqlite做本地存储非常常见(打个比方就像是浏览器要做本地存储使用LocalStorage,貌似不是很恰当,大概就是这个意思). SQLite 是一个软件库,实现了自给自足的.无服 ...
- 二分查找(折半查找)C++
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少: 其缺点是要求待查表为有序表,且插入删除困难. 因此,折半查找方法适用于不经常变动而查找频繁的有序列表. 首先,假设表 ...
- java 多线程,T1 T2 T3 顺序执行
一.程序设计 1.抽象公共类PublicThread,具有先前线程属性previousThread.父类为Thread 2.在PublicThread的run()方法中判断previousThread ...
- 正则验证,match()与test()函数的区别?
test是RegExp的方法,参数是字符串,返回值是boolean类型.match是String的方法,参数是正则表达式,返回值是数组. 案例: //判断日期类型是否为YYYY-MM-DD格式的类型 ...
- 对DataTable(或者DataSet)修改后,提交修改到数据库
http://blog.csdn.net/nidexuanzhe/article/details/8228832 说明:通常我们在做数据库交互时,并不一定要使用特定的SQL语句来更新数据,.NET F ...
- SQL Server(解决问题)已成功与服务器建立连接,但是在登录过程中发生错误。(provider: Shared Memory Provider, error:0 - 管道的另一端上无任何进程。
http://blog.csdn.net/github_35160620/article/details/52676416 如果你在使用新创建的 SQL Server 用户名和密码 对数据库进行连接的 ...
- RAID常用级别的比较
[转]RAID常用级别的比较 特点 硬盘及容量 性能及安全 典型应用 raid 0 用于平行存储,即条带.其原理是把连续的数据分成几份,然后分散存储到阵列中的各个硬盘上.任何一个磁盘故障,都将导致数据 ...
- lxml的另一种用法
python中lxml库是一个十分强大的xml解析库,最近在看<白帽子将web扫描>这本书的时候,里面提供了一种不同于以往的用法,因此在这将这个方法记录下来 传统的lxml库的使用方法类似 ...