grep -i
grep -v
grep -w 整个单词匹配
grep -E 正则匹配
grep -n 打印行号
cat sn.txt | awk -F: '{print $1}'
cat sn.txt | cut -d ":" -f 1
sed -n '$p' sn.txt 取最后一行
echo "$n+1" | bc -l
echo -e
$! 最后一个后台进程的pid
$$ 当前进程的pid
$0 当前程序名称 程序当前目录 $(dirname $0)
$n n为1,2,...n,传给命令的第n个参数,10以上表示为${n}
$# 传给当前命令的参数个数
$* 所有给出的参数
$? 最后一个命令的返回状态
SUID权限:当其它用户调用该命令时,用户的有效ID为该命令文件的属主ID,例如passwd。当未设置SUID时,euid=uid, egid=gid
chmod u+s <filepath>
[mysql@linux tmp]$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 27936 Nov 12 2010 /usr/bin/passwd
SGID权限: 一般设置给目录使用,父目录跟随。
chmod g+s <filepath>
Sticky粘滞位:防止普通用户的文件被其它用户删除或者移动,只有owner可以删除或移动。
chmod o+t <filepath>
crontab:
crontab -l 查看
crontab -e 编辑
crontab -r 删除
* */1 * 4-6 * /sbin/clean.sh
min hour day month week
vi环境变量在$HOME/.exrc中设置:
set nonumber
set nolist
set autoindent
set ignorecase
在命令行中使用vi功能:
set -o vi
再按下ESC键,就可以使用vi编辑命令k,j,h,l
. scriptname或source scriptname 在当前shell中执行,用户对该script文件拥有读权限
sh scriptname 开始一个新的shell进程,用户对该script文件拥有读权限
pathname/scriptname 开始一个新的shell进程,用户对该script文件拥有读和执行权限
set, env区别
set/unset, export
test expression 或 [ expression ]
常用的一些判断条件:
-f filename 文件名为filename的文件存在,且是一个普通文件。
-d filename 目录名为filename的目录存在。
-r filename 文件名为filename的文件存在,且能被当前进程读。
-w filename 文件名为filename的文件存在,且能被当前进程写。
-x filename 文件名为filename的文件存在,且能被当前进程运行。
-n string 字符string的长度为非零。
-z string 字符string的长度为零。
string1=string2 字符string1与字符string2相同。
integer1 -eq integer2 整数型变量integer1与integer2相等。
其中eq可换成ne(不等于)、gt(大于)、ge(大于等于)、lt(小于)、le(小于等于)。
命令搜索次序:
绝对路径 > 命令的别名 > Shell内部命令 > PATH变量中定义的搜索路径
前后台进程切换:
ctrl-z / jobs / fg / bg
Shell常用组合键:
ctrl-c 终止当前命令
ctrl-d 结束一个传输或文件输入
ctrl-s 暂停屏幕输出
ctrl-q 继续屏幕输出
ctrl-u 删除当前输入行
ctrl-z suspend当前进程
command1 && command2 如果第一个命令运行成功,则运行第二个命令
command1 || command2 如果第一个命令运行失败,则运行第二个命令