Shell命令

文件操作

ls –l 查看文件详细信息

文件类型

d:目录

l:符号链接

s:socket文件

b:块设备文件

-:普通文件

权限修改方式

chmod:改变文件或目录权限

chown:更改某个文件或目录的属主或属组

chgrp:变更文件或目录的所属群组

groups:显示用户所在组

id:显示用户id和所属群组的id

mkdir:创建目录

rmdir:删除目录

touch:改变文件或目录的时间戳

cp:复制文件或目录

mv:移动或更名现有文件或目录

rm:删除文件或目录

ln :硬链接  相当于文件别名

软链接:-s  相当于快捷方式

输入输出重定向和管道

标准输入:0

标准输出:1

标准错误:2

echo :显示文字

read:接受输入设备输入并将数据存入变量中

cat:显示整个文件 cat filename

从键盘创建一个文件:cat > filename

将几个文件合并为一个文件: cat file1 file2 >file

tee:读取标准输入的数据并将其内容输出成文件

sort:将文本文件内容加以排序

uniq:检查及删除文本文件中重复出现的行列

head:显示开头某个数量的文字区块

tail:显示结尾某个数量的文字区块

>:将出现在屏幕的标准输出重定向到文件中

>>:文件末尾追加内容

<:输入重定向

|:将一个命令的输出作为另一个命令的输入

grep:查找文件里符合条件的字符串

wc:计算字数

awk:数字处理工具,可以指定分隔符,从格式化文件里取出信息

time:执行命令并计时

date:显示或设置系统的时间和日期

make基本规则:得到目标,构造依赖,执行命令

make处理流程:没有依赖就先构造依赖,然后执行命令,否则直接执行命令

make的变量:普通变量 自动变量 特殊变量

make的模式:o%:c%

make的伪命令:.PHONY

 

正则表达式

\ :转义

^:起始标识

$:结束标识

.:匹配除\n之外任何单个字符

[]:字符范围

*:匹配前面表达式0次或多次

():表示一个分组

+:匹配一次或多次

?:匹配0或1次

sed ‘s,\(.*\)\.o[:]*,objs/\1.o:,g’ 

\(.*\)\.o 任意多个字符后面是.o

\1 引用前面第一个出现的括号中内容

g全局,s表示匹配开始

gcc

-c 编译

-o 指定输出文件名

-S 生成汇编

-MM 生成文件关联信息忽略#include造成的依赖关系

-l 指定函数库

-L 指定函数库所在文件夹

-O 优化编译过的代码

-g 产生调试信息

-E 预编译结果将被输出到标准输出端口

-D 定义宏

-shared 生成动态链接库

Binutils工具集

addr2line从目标文件的虚拟地址取得文件的行号或符号

ar  生成静态链接库

nm 列出程序中的符号

Objdump 查看目标程序中的段信息和调试信息

Objcopy按照要求抽取程序文件中的段

Ranlib生成索引

Readelf用来显示一个或者多个elf格式的目标文件的信息,

可以通过它的选项来控制显示哪些信息

Size查看文件中各段大小

strings 列出任何二进制档内的可显示字符串

strip 丢弃目标文件中的全部或者特定符号

shell工具集

条件测试 test [] 

if示例:文件加后缀复制到另一文件夹

#!/bin/bash

NAME="backup"

if  [  -d $NAME  ]

then

        rm -rf $NAME

       
mkdir $NAME

else

        mkdir $NAME

fi

 

&& 前面执行成功然后看后面语句

|| 前面执行失败查看后面语句

 

while举例:输出1到5    

#!/bin/sh

i=1

while [ $i -le  5  ]

do

   echo $i

   i=` expr $i + 1 `

done

 

 

for举例

#!/bin/bash

for I in `ls`;do

echo $I

done

 

 

until举例

#!/bin/sh

var=10

until [ $var -le 1 ]

do

  echo $var

  var=$(($var - 1))

done

   

expr:执行计算expr 1 + 3

case举例

#!/bin/bash

echo -n "e choose :"

read RES

    case $RES in

       1) echo "1"

         ;;

       2) echo "2"

         ;;

       *) echo "`basename $0` "

         exit 1

          ;;

     esac

 

 

 

 

 

 

posted @ 2014-01-16 20:26  bradleydan  阅读(130)  评论(0)    收藏  举报