进程命令
- 查看进程
echo $$ 显示当前Shell的PID
ps –u team01 ps命令查看用户启动的进程
ps -ef 查看系统所有的进程
ps -ef | grep xxx 端口号/cmd
ps aux
a TTY终端的所有进程
x 其他所有进程
u 显示进程更多列的详细信息 - 前后台进程
ls -R / > bigfile 前台
ls -R / > bigfile & 后台 - 终止进程
终止前台进程 <ctrl+c> kill
终止后台进程
ps ; kill 进程号
jobs ; kill %jobnumber - 作业控制
<ctrl+z> 把前台进程放到后台挂起(suspend)
& 在后台运行进程
jobs 列出所有后台进程(运行和停止的)
fg %job 把后台作业切换到前台运行
bg %job 把在后台挂起的作业,在后台恢复执行
- 进程的特殊运行方式
nohup命令将阻止因为用户注销而导致进程终止直到该进程正常结束,此命令将忽视信号1和3,若用户不重定向输出,nohup将重定向输出到nohup.out文件
nohup ls -R / > out 2> err.file &
shell编程
- 文件名替换
替代任意单个字符
ls ne?
替代任意个字符
cp n* /tmp
包含列表:[ ] ! [ - ]
cat ?[!y]*[2-5] - I/O重定向
标准输入(STDIN): < 0
标准输出(STDOUT): > 1
标准错误(STDERR): 2> 2
重定向输出到文件: >
ls > ls.out
重定向并追加输出到文件: >>
who >> whos.there - 管道
管道:一系列命令用 “|” 隔开构成管道。
其中每一个命令的标准输出构成下一条命令的标准输入。
ls –l | wc -l - 过滤器
过滤器是一个命令,它的功能是从标准输入中读数据,以某种方式变换输入,然后写到标准输出。
ls -l | grep “^d” | wc -l - 分离输出
tee命令读取标准输入,同时发送数据到标准输出和文件
ls | tee /tmp/ls.save | wc -l - 命令组
多条命令可以在同一命令行输入,命令用 “;”隔开 - 超长命令–行继续
**反斜线“ \ ”**接换行符可以用来表示在分开的一行继续一条命令
shell工具
-
环境变量读取顺序:/etc/environment root
/etc/profile root
$HOME/.profile User -
文件查找工具find
find . -name sum
exec选项:对找到的文件执行命令,执行指定命令时不会产生交互。
find . -name ‘m*’ -exec ls -l {}(匹配文件名) ;
ok选项:对找到的文件执行命令,执行指定命令时
产生交互,询问用户是否执行该命令。
find . -name m* -ok rm {} ;
-
模式匹配工具grep
grep ‘regular_expression’ file
正则表达式
注:元字符 对比 通配符
grep命令和find命令中使用元字符,都应该用单引号括起来,避免shell对元字符进行扩展。 -
排序工具sort
sort [-t delimiter][+field[.column]][options]
-d 按照字典顺序仅比较字母、数字和空格
-r 反序排列
-n 对数字字段按算术值顺序排序
-t 指定字段的分界符,缺省分界符是空格或tab键
cat animals | sort +0.1 按第二个字符排序 (0.1)
cat animals | sort -t. -n +1 -t: 分隔符 “.” -n: 数值顺序 +1: 第二个字段 (1.0) -
head和tail工具
head -5 myfile
显示文件的前n行,默认是10行。
tail -20 file
显示文件后n行。-n表示显示文件的最后n行,+n表示从文
件的第n行一直显示到文件尾.-f选项显示后10行并且动态刷新. -
安全Shell套件(OpenSSH)
– ssh: 远程登录和远程执行命令
– scp: 远程拷贝
– sftp: 加密FTP -
归档工具tar
tar -cvf /tmp/file.tar 压缩
tar -xvf /tmp/file.tar 解压 -
xargs命令
由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令
cat oldfilelist | xargs -t rm
从标准输入读取一组参数,并运行一条命令使用该组参数。-t参数的作用是启动跟踪模式,在命令执行之前将构造的命令输出到标准输出设备。
ls | xargs -t -I {} mv {} {}.old
-I {}选项通知xargs将ls命令的输出的每一行插入到{}位置处。{}表示占位符。用户使用-I选项定义占位符所使用的符号,可以改成其他符号例如\等。 -
确定文件类型工具(file)
file /usr/bin/vi -
文本文件比较器(diff)
比较两个文本文件之间的差异
– 逐行分析比较的文本文件
– 将它们之间差异输出到标准输出
输出:第一个文件的行必须如何修改才能和第二个文件相同
< 仅在file1中出现的行
> 仅在file2中出现的行