-
知识点补充:
-
//注释:ps -ef | grep "$1" | grep -v grep | grep -v "$0"//
//ps -ef | 全格式显示当前所有进程
// grep "$1" 搜索执行命令时所带的第一个参数值;
// grep -v grep 就是查找不含有 grep 字段的行
//grep -v "$0" 查找不含当前shell名称的行
$0代表当前使用的shell、在命令行环境下表示当前shell的名称,在脚本中表示当前执行的脚本名称。
$1...$9:在脚本中用来表示位置参数,即脚本执行时所带的第几个参数的值。
echo $0就能显示当前你用的是bash还是csh等
$1,$2一般代表你使用的命令的参数
比如执行 bash ./test.sh 3 4
这个时候,3就是$1的值,4就是$2的值
$?代表上一条命令的返回值,真为1,假为其他值
-
//ps -ef | 全格式显示当前所有进程
//grep cusip_full_is 滤出''cusip_full_is''的进程
-
//grep -v grep 把''grep''这个进程忽略掉
//wc -l 看看有多少个进程
//awk '{ print $1; }' 输出第一列
管道命令( | ):
" | " 之前的结果作为 " | " 之后的输入。
向屏幕打印信息(echo):
echo "hello" :在屏幕上打印hello
重定向(>>):
echo "hello" >> my.txt : 将本应显示到屏幕上的"hello",重定向输出到my.txt文件
重启:
reboot
3、过滤命令grep
该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,它的简单语法为
[html] view plain copy
-
- grep [-acinv] [--color=auto] “hello” 文件名
-
grep "hello" 文件名 : 在指定文件查找所有内容,但只显示包含"hello"的行。
grep -v "hello" 文件名: 过滤显示不包含"hello" 的行。
grep -i "hello" 文件名: 过滤显示包含"hello"的行,但不区分大小写
它的常用参数如下:
[html] view plain copy
- -a :将binary文件以text文件的方式查找数据
- -c :计算找到‘查找字符串’的次数
- -i :忽略大小写的区别,即把大小写视为相同
- -v :反向选择,即显示出没有‘查找字符串’内容的那一行
-
# 例如:
# 取出文件/etc/man.config中包含”MANPATH”的行,并把找到的关键字加上颜色
grep --color=auto 'MANPATH' /etc/man.config
# 把ls -l的输出中包含字母”file”(不区分大小写)的内容输出
ls -l | grep -i file
管道命令( | ):
" | " 之前的结果作为 " | " 之后的输入。
4、查找命令find
find 查找路径 -name(文件名) "hello.txt" : 以名称来查找文件
find 查找路径 -name(文件名) "hello*" : 以名称前缀来查找文件 , * 是通配符
find 查找路径 -size +5k : 查找5kB大小以上的文件
find 查找路径 -size -5k : 查找5kB以内的文件
find 查找路径 -mmin -30 :查找最后一次修改时间在30分钟以内的文件
其中 -m 选项 : 最后内容修改时间, 可替换为 -c :最后状态改变时间 -a :访问时间
-min 选项:以分钟为单位(后面时间数字的单位),可替换为-time :以天(24hour)为单位
+n :n时间以前 , 可替换为 -n:n时间以内
find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多,所以在这里将给把它们分类列出,它的基本语法如下:
[html] view plain copy
- find [PATH] [option] [action]
- # 与时间有关的参数:
- -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
- -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
- -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
- -newer file : 列出比file还要新的文件名
- # 例如:
- find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
- # 与用户或用户组名有关的参数:
- -user name : 列出文件所有者为name的文件
- -group name : 列出文件所属用户组为name的文件
- -uid n : 列出文件所有者为用户ID为n的文件
- -gid n : 列出文件所属用户组为用户组ID为n的文件
- # 例如:
- find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件
- # 与文件权限及名称有关的参数:
- -name filename :找出文件名为filename的文件
- -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
- -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
- 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
- -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
- -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
- -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
- # 例如:
- find / -name passwd # 查找文件名为passwd的文件
- find . -perm 0755 # 查找当前目录中文件权限的0755的文件
- find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
-
11,通过进程名和PID过滤
使用 -C 参数,后面跟你要找的进程的名字。比如想显示一个名为getty的进程的信息,就可以使用下面的命令:$ ps -C getty
12,显示所有进程信息,连同命令行
命令:ps -ef
该命令用于将某个时间点的进程运行情况选取下来并输出,process之意,它的常用参数如下:
[html] view plain copy
- -A :所有的进程均显示出来
- -a :不与terminal有关的所有进程
- -u :有效用户的相关进程
- -x :一般与a参数一起使用,可列出较完整的信息
- -l :较长,较详细地将PID的信息列出
-
其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:
[html] view plain copy
- ps aux # 查看系统所有的进程数据
- ps ax # 查看不与terminal有关的所有进程
- ps -lA # 查看系统所有的进程数据
- ps axjf # 查看连同一部分进程树状态
-
9、kill命令
该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下:
[html] view plain copy
- kill -signal PID
-
signal的常用参数如下:
注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。
[html] view plain copy
- 1:SIGHUP,启动被终止的进程
- 2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
- 9:SIGKILL,强制中断一个进程的进行
- 15:SIGTERM,以正常的结束进程方式来终止进程
- 17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
-
例如:
[html] view plain copy
- # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程
- kill -SIGTERM %1
- # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得
- kill -SIGHUP PID
-
10、killall命令
该命令用于向一个命令启动的进程发送一个信号,它的一般语法如下:
[html] view plain copy
- killall [-iIe] [command name]
-
它的参数如下:
[html] view plain copy
- -i :交互式的意思,若需要删除时,会询问用户
- -e :表示后面接的command name要一致,但command name不能超过15个字符
- -I :命令名称忽略大小写
- # 例如:
- killall -SIGHUP syslogd # 重新启动syslogd
-
11、file命令
- 该命令用于判断接在file命令后的文件的基本数据,因为在Linux下文件的类型并不是以后缀为分的,所以这个命令对我们来说就很有用了,它的用法非常简单,基本语法如下:
-
[html] view plain copy
- file filename
- #例如:
- file ./test
-
8、ps命令
ps常用参数举例:// https://blog.youkuaiyun.com/vip_wangsai/article/details/72616587
1,基本ps使用:
-
$ ps
结果默认会显示4列信息。
PID: 运行着的命令(CMD)的进程编号
TTY: 命令所运行的位置(终端)
TIME: 运行着的该命令所占用的CPU处理时间
CMD: 该进程所运行的命令
这些信息在显示时未排序。2,列出目前所有的正在内存当中的程序。也许你希望把结果按照 CPU 或者内存用量来筛选,这样你就找到哪个进程占用了你的资源。要做到这一点,我们可以使用 aux 参数,来显示全面的信息:
$ ps -aux
4. 可以用 | 管道和 more 连接起来分页查看。
命令:ps -aux |more
5. 把所有进程显示出来,并输出到ps001.txt文件
命令:ps -aux > ps001.txt
6. 输出指定的字段
命令:ps -o pid,ppid,pgrp,session,tpgid,comm7,根据 CPU 使用来升序排序
$ ps -aux --sort -pcpu | less
8,根据 内存使用 来升序排序
$ ps -aux --sort -pmem | less9,树形显示进程
$ pstree
10,查看特定用户进程
在需要查看特定用户进程的情况下,我们可以使用 -u 参数。比如我们要查看用户'pungki'的进程,可以通过下面的命令:
$ ps -u pungki
-
Shell知识点补充:
最新推荐文章于 2024-10-09 14:34:04 发布
