!
条件取反
action:
-print 默认,写到屏幕
-fprint file 与print类似,结果写到文件中
-ls 以长格式显示搜索结果
-fls file 同ls,将结果写入文件
-delete 将搜索到的文件删除
-exec command {} \; 查找并执行命令,{}表示搜索到的文件名
-ok command {} \; 查找并执行命令,需要用户确认
\; 表示执行结束
文件比较
comm [option] ... file1 file2
-1 不显示第一个文件中独有的文本行
-2 不显示第二个文件中独有的文本行
-3 不显示两者共有的文本行
--check-order 检测是否已排序
--nocheck-order 不检查文件是否已排序
diff
diff [option] ... file1 file2
-c 包含上下文语境的格式
-u 以统一格式显示
-y 并列方式
重定向:
> 覆盖
>> 追加
&> 代表标准输出和标准错误
> file 清空file内容或者是新建file
:> file同上 :表示一个空输出
{ date; who; } > file 将标准输出和错误都输出到file
< << 输入重定向
cat << eof eof是分隔符,生成当前文档
1&>2 标准输出被重定向到标准错误,1是2文件描述符的副本
2&>1 标准错误被重定向到标准输出,2是1 的副本
exec分配文件描述符
exec 2> file 将命令的标准错误重定向到文件
exec n< file 以只读方式打开文件,使用描述符n(n>3)
exec n<> file 以读写方式打开file,使用描述符n(n>3)
exec n>&- 关闭文件描述符n
exec n>&m 复制文件描述符m到n
bash中常用的内部命令:
. 读取shell脚本,在当前shell中执行
alias 设置命令别名
bg 将任务放于后台执行
cd 改变当前工作目录
echo 打印当前文本
eval 将参数作为shell命令执行
exec 以特定程序取代shell或者改变当前shell的输出输入
exit 退出shell
export 将变量声明为环境变量
fc 与命令历史一起运行
fg 将作业置于前台运行
getopts 处理命令行选项
history 显示命令历史
jobs 显示后台运行的作业
kill 向进程发送信号
logout 从shell中注销
pwd 显示当前的工作目录
set 设置当前的环境变量
shift 变换命令行参数
保留字
! 逻辑非
: 空命令
break、case、continue、declare、do、done、elif、else、esac、for、
let 执行数学运算
local 定义局部变量
read 从标准输入读取一行
return、then(if)、until、wait(等待后台作业返回)、while
pidof 查找父进程id
$SHLVL 显示当前shell的层次
当所要执行的命令都放到一个()
中执行时,会使shell在同一个子shell中执行
子shell可以访问父shell中的值
command& 将命令放到后台执行
shell子进程可以访问到父进程的变量,父进程无法访问子进程的变量
可以通过临时文件去传输
常用的信号和含义:
SIGHUP 1 终端挂起或者进程终止
SIGINT 2 键盘中断
SIGQUIT 3 键盘的退出键被按下
SIGABRT 6 由abort发出的退出指令
SIGKILL 9 立即结束进程