一:
gcc -c 编译
grep EXIT_ *.h
ar crv libfoo.a bill.o fred.o 归档
ranlib libfoo.a 某些系统需要为函数库生成一个内容表
nm libfoo.a 查看目标文件/函数库/可执行文件里包含的函数
ldd test 查看程序需要的共享库
二:Shell
进程名
ps -xo comm | sort | uniq | grep -v sh | more
$(...) 获取子进程的输出 类似反引号 `...`
$((...)) 计算表达式 类似expr
2>&1 标准错误输出重定向到与标准输出相同的地方
/dev/null 空设备
shell 程序设计里,0表示成功 {函数返回0 , if 作判断 if ${fun}}
$0 shell脚本的名字
$1 第一个参数
$$ 进程id
$# 参数个数
$*/$@ 所有参数
${var:=value} var为空或不存在,则取value,否则取var , 类似还有 :- :+ :? 等不同的定义
export 把自己的参数创建为一个环境变量,可以被其他脚本程序和当前程序调用的程序看见。
set -a 或 set -allexport命令将导出它之后声明的所有变量
set 命令的作用是为shell设置参数变量,如
取月份: set $(date) echo The month is $2
date +%B 也可以来提取月份
trap 指定在接受到信号后将要采取的行动,如:
trap ‘rm -f /tmp/aa_$$’ INT
find / -mount -name wish -print 其中-mount指定不要搜索挂载的目录 -print 是将结果输出出来
-name pattern 如 “_*” ,为了确保pattern被直接传递给find命令而不是由shell处理,pattern必须总是用引号括起
find . \( -newer return -or -name "a*" \) -type f -print
find . \( -newer return -or -name "a*" \) -type f -exec ls -l {} \;
grep -E [a-z]\{10\} *
find /path -type f -print0 | xargs -0 rm
调试 set -o xtrace 执行跟踪功能让shell在执行每行语句之前先显示已对变量进行扩展后的该行代码。
关闭xtrace用 set +o xtrace
if [ a = b ] 等于 只是一个=号 /bin/sh --- dash 的情况下[dash / bash 不兼容导致的]
原创:https://blog.csdn.net/ndzjx/article/details/88681684