《Linux命令行与shell脚本编程大全》笔记   wkss

其他:http://www.cnblogs.com/pengdonglin137/p/3528303.html

一、基本命令

二、基本结构

差缺补漏:

一、基本命令

1、stat命令

2、cat命令

  • -n  给所有行加上行号
  • -b  只给有文本的行加行号

3、tail

默认显示文件末尾10行。这里重点是 tail –f 的使用。

4、ps参数解释

参数风格:

  • 执行ps,默认只显示运行在当前控制台下的属于当前用户的进程。
  • ps -ef

  • ps -l

  • 树状显示   ps -efH或者ps --forest(GNU风格)

  • ps l  (注意与ps –l的区别不加’-’是BSD风格,加‘-’是UNIX风格)

5、top命令参数解释

6、mount命令

7、df命令

8、du命令

du默认显示当前目录下的所有文件、目录以及子目录的磁盘使用情况。

使用时我常用du –sh 路径名XX,可以显示文件或者文件夹XXX的大小,du –sh 显示当前所在目录的大小。

9、sort

-n表示把数字识别成数字而不是字符,-M 按月排序

将du和sort连起来使用:

du -s * | sort –nr

   1:  321764    flash
   2:  39216    pub
   3:  28888    slave
   4:  21984    image
   5:  68    scripts
   6:  24    CreatImage.sh
   7:  8    version_collate.sh
   8:  8    readme
   9:  4    moveversion.sh
 
注意:如果使用du –sh *| sort –nr ,当第一列有M和K结尾的数字出现时,排序有误。

10、shell提示符

11、设置和删除环境变量

export 用于设置全局环境变量,unset用于删除环境变量

12、数组

   1:  #!/bin/bash
   2:   
   3:  my=(1 2 3 "peng")
   4:   
   5:  echo ${my[1]}
   6:  echo ${my[2]}
   7:  echo ${my[3]}
   8:   
   9:  my[4]=4
  10:  echo ${my[4]}
  11:   
  12:  unset my[2]
  13:  echo ${my[2]}
  14:  echo "end"

运行:

   1:  pengdl@debian:~/test/shell$ ./sh10.sh 
   2:  2
   3:  3
   4:  peng
   5:  4
   6:   
   7:  end
   8:  pengdl@debian:~/test/shell$ 

13、echo –n 和 echo -e

   1:  pengdl@debian:~/test/shell$ echo -n "peng"
   2:  pengpengdl@debian:~/test/shell$ echo -n "XXXX"
   3:  XXXXpengdl@debian:~/test/shell$ echo  "XXXX\n"
   4:  XXXX\n
   5:  pengdl@debian:~/test/shell$ echo -e "XXXX\n"
   6:  XXXX
   7:   
   8:  pengdl@debian:~/test/shell$ echo -en "XXXX\n"
   9:  XXXX
  10:  pengdl@debian:~/test/shell$ 

14、统计文本 wc

   1:   echo "peng dong lin 137" >1.txt 
   2:   wc < 1.txt 
   3:   1  4 18

15、内联输出重定向

16、查看退出状态码  $?

example:

   1:  pengdl@debian:~/test/shell$ jfjak
   2:  bash: jfjak: command not found
   3:  pengdl@debian:~/test/shell$ echo $?
   4:  127
   5:  pengdl@debian:~/test/shell$ 

二、基本结构

  • if

  • test命令

数值比较(注意: test不支持浮点数比较

字符串比较

字符串顺序

注意:

字符串大小

-n 如果非空,返回1;

-z 如果空, 返回1

文件比较

注意:

-d 如果是目录,返回1

-e 如果存在,返回1

复合条件测试

更多:http://www.cnblogs.com/pengdonglin137/p/3522757.html

if-then的高级特性

  • 双圆括号

除了test命令使用的标准数学运算符,下标列出了双圆括号命令会使用的其他运算符:

注:其中的大于号不需要转义。

  • 双方括号


case

for命令

  • 基本格式:

  • 转义

  • 引号

  • 从变量读取列表

  • 从命令读取值

  • 更该字段分隔符

  • 用通配符读取目录

注:为什么要用双引号将$file引起来?

  • 使用通配符读取目录2

C语言风格的for命令

  • 使用多个变量

while命令

shell 学习笔记的更多相关文章

  1. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  2. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  3. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  4. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  5. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  6. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

  7. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  8. [Bash Shell] Shell学习笔记

    1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...

  9. CentOS 7 之Shell学习笔记

    脚本是个永恒的话题,以前Dos下面也有Shell编程这一说的,比如说BAT文件有人写的好的话,也是瞬间速度变高大上.Linux下面这个应该更占比重了.我看到园子里有位园友做了一个Linux Shell ...

随机推荐

  1. 1、Hadoop架构

    1.Hadoop 是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多小的工作单元放到任何集群节点上执行. 作业(job):一个 ...

  2. HDU-3874 Necklace 线段树+离线

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874 比较简单的题,题意也好懂. 先O(n)求每个数左边第一次出现的与他相同的数的位置l[i].对询问 ...

  3. virtualenv 和 virtualenvwrapper 实践

    virtualenv 首先来聊一下 virtualenv 是个什么鬼. 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充 ...

  4. 转载-SQL中的where条件,在数据库中提取与应用浅析

    1        问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语 ...

  5. CSS3每日一练之选择器-结构性伪类选择器

    <!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title> ...

  6. Hibernate配置

    Ⅰ.Hibernate配置前提工作(E:\):    (一).解压4个工具包         工具如下:apache-ant-1.6.2-bin.zip      →→     apache-ant- ...

  7. poj 1797 Heavy Transportation(Dijkstar变形)

    http://poj.org/problem?id=1797 给定n个点,及m条边的最大负载,求顶点1到顶点n的最大载重量. 用Dijkstra算法解之,只是需要把“最短路”的定义稍微改变一下, A到 ...

  8. postconf 命令常用参数

    postfix的main.cf配置文件一般不直接编辑,而多使用postconf命令来配置‘ postconf -d:查看默认配置: postconf -n:查看当前配置(即当前生效的配置): post ...

  9. TPARAMS和OLEVARIANT相互转换

    所谓的“真3层”有时候是需要客户端上传数据集的TPARAMS到中间件的. 现在,高版本的DATASNAP的远程方法其实也是直接可以传输TPARAMS类型的变量,但是DELPHI7(七爷).六爷它们是不 ...

  10. C#调用C++编写的dll库

    我用vs2008建的C++ dll类库,名字test_interopVC,和C#的CeshiVC项目 一:C++项目dll类库: 1.test_interopVC.h,主要简单的测试,所以就在一个类里 ...