Linux shell 菜鸟学习笔记....
20171123 Linux shell 基础学习笔记
1. shell 的开始 
    一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径
    其他的 # 都表示注释.
2. shell 的变量
    定义变量直接用 variablename= value 就可以 其中变量名与等号之间没有空格.
    使用变量的时候 是 ${vairablename} 的方式进行使用 大括号可以有可以没有,但是建议有.
    可以使用
    for file in `ls /etc/` 的方式来循环取得文件名.
    使用do done 的方式来进行循环处理.
    #!/bin/bash
    for file in `ls /etc`;do
    echo ${file}
    done
3. 可将变量设置为 只读变量 readonly variablename
    unset 可以删除变量. 
4. shell变成的参数部分
   $1 表示第一个参数 $# 表示参数的个数 $$ 表示当前进程的ID $? 表示退出时是否有异常等.
5. shell 里面数组的概念:
   shell 里面数组 用 () 来表示
   arrayname=(A B C D )
   注意事项: arrayname 等号 以及 括号中间不能有空格.
   数组的下标从0 开始 
   {arrayname[@]} 或者 * 可以遍历出所有的数组元素
   {#arrayname[*]} 可以返回数组的元素个数.
6. shell中的运算方法.
   bash 中不支持运算 需要通过awk 或者expr 等方式来进行
   val=`expr 2 + 2`
   echo $val
   注意乘法需要增加反斜线\* 来进行表示
   使用的是反引号进行表示 而不是 单引号.
7. 比较方法
   $a -eq $b 这种方式进行. 
   -eq -ne -ge -le -gt -lt 
   布尔运算符
   ! 非运算 -o 或运算 -a 与运算
   逻辑运算符
   && 逻辑and || 逻辑或
文件测试运算符
   -b 是否是块设备
   -c 是否是字符设备
   -d 是否是目录
   -f 是否是普通文件
   -r 文件是否可读
   -w 文件是否可写
   -x 文件是否可执行
   -s 文件是否为空
   -e 文件是否存在
8. shell 编写时容易出错的地方:
    if 用[] 来表示bool预算部分
    其中 -e 什么的需要有空格区别
    if 和面先增加 then 最后增加fi 不能缺少.
9. echo 命令.
    echo 用于字符串输出
    echo "" 或者不加双引号 显示字符串
    echo -e "" 内内容 进行转义
    echo '' 原样输出不获取变量不进行转义
    echo `date` 显示命令执行结果
    echo > filename 将结果定位到文件
    echo >>filename 增加到文件的最后一行
    read something 将读入的数据作为变量something的value
10. printf的部分内容.
    比echo 最大的好处是能够格式化输出字符串.
    printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg  
    转义字符 使用反斜线.
11. shell 中的流程控制::::::::::::::::::::::::::::::::::::::::::
 1) 
 if [ -e $filename]
 then
 echo # do something
 elif [ ]
 then
 do something
 else
 do something
 fi
 2) for 循环
 for some in many 
 do
 do something
 done
3) while 循坏
 while  (())
 do
 let i++ # for example
 done
4) until 循坏
util (())
do
done
跳出循环使用 break
继续循环 使用 continue
12.shell 中的函数
function func() 
或者是 func() 进行命令
可以有return语句 在执行完 function 之后通过 $? 来获取返回值.
调用函数时与python
不一样不需要增加() 记住以下.
13.
命令	说明
command > file	将输出重定向到 file。
command < file	将输入重定向到 file。
command >> file	将输出以追加的方式重定向到 file。
n > file	将文件描述符为 n 的文件重定向到 file。
n >> file	将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m	将输出文件 m 和 n 合并。
n <& m	将输入文件 m 和 n 合并。
<< tag	将开始标记 tag 和结束标记 tag 之间的内容作为输入。
14. 文件包含
source 或者是 直接点过来.
Linux shell 菜鸟学习笔记....的更多相关文章
- Linux Shell编程学习笔记——目录(附笔记资源下载)
		
LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...
 - Linux shell 重定向学习笔记
		
在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读 ...
 - Linux Shell 编程学习笔记
		
1:Shell Script中if语句的条件部分要以分号来分隔 2:要注意条件测试部分中的空格.在方括号的两侧都有空格 3:echo "Hi, ${a}s" 单引号中的变量不会进行 ...
 - linux shell脚本学习笔记一
		
一.文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tm ...
 - Linux shell command学习笔记(一)
		
Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell.在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash). &l ...
 - linux shell编程学习笔记(二) ---  grep命令
		
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
 - linux shell编程学习笔记(一)---通配符,元字符
		
linux通配符: 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不 ...
 - Linux shell command学习笔记(二)
		
<cut> 作用:从输入文件或者命令的输出中析取出各种域 用法:cut –c{字符串范围} –d{字段间分割符} –f{字段索引编号} 举例: (1)查看在线用户:who | cut –c ...
 - Linux Shell编程学习笔记
		
打算在学习过程中将每个写过的程序一个个的往上贴; 2015-07-03 1. 鸟叔第三版13.2.1节“利用日期进行文件的创建” 源代码 #!/bin/bashPATH=/bin:/sbin:/usr ...
 
随机推荐
- Scout YYF I POJ - 3744(矩阵优化)
			
题意:一条路上有n个地雷,给出地雷的位置.某人从起点(位置1)出发,走一步的概率是p,走两步的概率是(1-p),然后问有多少概率走过这个雷区. 思路: 只要走过最后一个地雷就代表走过雷区了. 而每到 ...
 - P2347 砝码称重  (01背包)
			
题目描述 设有 1g1g1g . 2g2g2g . 3g3g3g . 5g5g5g . 10g10g10g . 20g20g20g 的砝码各若干枚(其总重 ≤1000 \le 1000≤1000 ), ...
 - 【转】字符编码笔记:ASCII、Unicode、UTF-8 和 Base64
			
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态(-128~127),这被称为一 ...
 - Kmeans基本思想
			
https://blog.csdn.net/zjc_game_coder/article/details/78595833 Kmeans算法的基本思想:看如下图: 解决小样本 .非线性及高维模式识别问 ...
 - vue之路由嵌套,子路由
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - poi导出excel,表头数据动态拼装
			
/* * 第一步:拼装表头和数据 */ // 放多个sheet的集合 List<Map<String,Object>> datas = new ArrayList<Map ...
 - 理解ES7中的async/await
			
理解ES7中的async/await 优势是:就是解决多层异步回调的嵌套 从字面上理解 async/await, async是 "异步"的含义,await可以认为是 async w ...
 - PAT A1015 Reversible Primes (20 分)——进制转换,质数
			
A reversible prime in any number system is a prime whose "reverse" in that number system i ...
 - C++ 指针常量和常量指针
			
1.指针常量(*const):对应指针变量,即指针本身是常量,指针指向的内容可以被修改. 2.常量指针(const*):常量的指针,即指针指向的内容不能被修改,但指针本身是变量,可以被修改.
 - 【Codeforces Round 1129】Alex Lopashev Thanks-Round (Div. 1)
			
Codeforces Round 1129 这场模拟比赛做了\(A1\).\(A2\).\(B\).\(C\),\(Div.1\)排名40. \(A\)题是道贪心,可以考虑每一个站点是分开来的,把目的 ...