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

浙公网安备 33010602011771号