ls :列出目录内容
列出文件信息(默认是当前目录),以字母顺序排序(如果使用没有任何 -cftuvSUX 或 --sort选项)
grep
格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号无法引用变量而双引号可以.
egrep
egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式. 注意区别.
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.
clear 清屏
cd – 后退
cd $MYPATH 进入指定目录(环境变量已设)
ls –l 列出文件
ls –al 列出所有文件,包含隐藏文件
whoami 查看自己用户名
cd mydir 进入目录
cd my* 进入目录
tar cvf ddd.tar abc.* def ghi 压缩文件(可以多个)
tar xvf ddd.tar 解压缩
rm –rf mydir 删除目录,不带确认
grep abc *.pc 文件内容中查找abc
grep –c abc *.txt 查找内容abc,并统计
grep –i abc *.txt 查找内容abc,大小写不敏感
set|grep TL_ABC 在环境变量中过滤TL_ABC
diff abc.txt /usera/def.txt 比较文件
find . –name “abc*” 目录中查找文件
cp –p abc.txt /mydir/abc_d.txt 拷贝
ps –ef|grep UserA 列出某用户的进程
shellABC.sh > abc.log 覆盖输出
hellABC.sh >> abc.log 追加输出
exit 退出
su –userABC 切换用户
last 查看最近登录的用户
Esc+K 重复上次输入的命令(多次k向上翻)
编辑上次的命令: Esc+i 插入 Esc+x 删除 h 向左 l 向右
ipcs –oq|grep 5000 查看消息队列
make 自动查找目录下的makefile并编译
man sighold 查看该函数定义 man socket
cat abc.txt 查看文件
more abc.txt 分页查看文件
vi abc.txt 编辑文件
netstat –i 查看网卡
netstat –r 查看路由
alias pss=’ps –ef|grep abc’ 设置快捷shell名pss,常用在.profile中
which pss ,或which cc 查cc所在的目录
PS1=’$PWD>’;export PS1 显示当前目录,而不是$ (常用在.profile中)
set –o vi 常用在Esc显示^K的情况下
cp /dev/null abc.log 清空文件 (大文件常常vi打不开(:%d),直接用此命令)
. .profile 修改$HOME的.profile文件后不用重新登陆,用此命令立刻生效
set|grep ABC, 查看环境变量,或用env
who|wc –l 统计在线人数
pwd 查看当前目录
ipcs –oq 查看消息队列是否拥堵
tail –f abc.log 跟踪文件末尾
chmod +x find_me.sh 加执行权限
netstat –an|grep 52 查看包含52的端口网络状态
netstat –an|grep LISTEN 查看侦听端口网络状态
ls –l|grep ‘^d’ 列出目录
ls –l|grep ‘^[^d]’ 列出非目录
grep userABC /etc/services 查看DB2端口等信息
grep userABC /etc/passwd 查看$HOME所在目录
$echo {i##*/} 从变量i的最左边开始删除字符,直到最后一个“/”
$echo ${i#*.} 从变量i的最左边开始删除字符,直到第一个“.”
$echo ${i##*.} 从变量i的最左边开始删除字符,直到最后一个“.”
$echo ${i%/*} 从右部开始拿掉字符,直到遇到(从右部数起的)第一个“/”
$echo ${i%%/*} 从右部开始拿掉字符,直到遇到(从右部数起的)最后一个“/”
$echo ${i%.*} 从右部开始拿掉字符,直到遇到(从右部数起的)第一个“.”
$echo ${i%%.*} 从右部开始拿掉字符,直到遇到(从右部数起的)最后一个“.
$echo ${i#????} 去掉前面4个字符
$echo ${i%????} 去掉后面4个字符
$echo ${i#*[0-9]} 去掉前面所有的数字字符
$echo ${i#1.a} 去掉前面的字符"1.a"
awk的使用 http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc37518076
sed的使用 http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc37518102
sed用例:
sed -i "s/原字符串/新字符串/g" `grep "原字符串" -rl path`
作用:批量替换多文件中的指定字符串(原字符串)
解释:-i:表示在文件中直接替换,而不是输出到终端;
"s/原字符串/新字符串/g" 替换字符串的语法,后面的g表示替换所有的;
`grep "原字符串" -rl path`: 注意该命令两边的引号;
-r:在目录中递归查找;
-l: 输出找到包含oldstring 的文件名;