less

less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。

-N 显示每行的行号

空格键 滚动一行

回车键 滚动一页

[pagedown]: 向下翻动一页

[pageup]: 向上翻动一页

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

G :移动到最后一行

g :移动到第一行

Q :退出

F :类似tail -f,实时刷新

b d 貌似不同的系统不太一样,有的是半页有的一页,有的b向后有的向前

ls

ls命令用来显示目标列表
-a,-all:显示所有的文件,包括.开头的隐藏文件

-A:同-a但不列出.(当前目录),..(当前目录的上级)

-C,-l:-C多列输出,默认选项;-l单列输出【ls -l等效于ll】,即一个文件一行输出

-t :用文件和目录更改时间排序

-h --human-readable:以容易理解的格式列出文件大小

mv

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files)
-b :若需覆盖文件,则覆盖前先行备份

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件已经存在时,就会询问是否覆盖,y,n

-u :当源文件比目标文件新或者目标文件不存在时,才执行移动操作

-v:显示详细的进行步骤信息

-n:不覆盖已存在的文件

移动多个文件:mv test.log test1.log newTestLogDir/

ps

ps(Process Status)命令用于查看系统当前进程状态。ps 命令查看的进程信息是当前的一个快照,实时动态地查看进程信息,可以使用Top命令。

-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:此选项的效果和指定"A"选项相同。
e:列出程序时,显示每个程序所使用的环境变量。
-f:显示UID,PPIP,C与STIME栏位。
f:用ASCII字符显示树状结构,表达程序间的相互关系。
-j或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
-p<程序识别码>:指定程序识别码,并列出该程序的状况。
p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称>:列出属于该用户的程序的状况。

常见组合

ps aux

输出格式

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

解释:

  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:

    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的行程
    • N: 低优先序的行程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

ps -ef

UID PID PPID C STIME TTY TIME CMD

ps -elf

F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
  • F:代表这个程序的旗标 (flag), 4 代表使用者为 super user
  • S:代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
  • UID:程序被该 UID 所拥有
  • PID:就是这个程序的 ID
  • PPID:则是其上级父程序的ID
  • C:CPU 使用的资源百分比
  • PRI:这个是 Priority (优先执行序) 的缩写,详细后面介绍
  • NI:这个是 Nice 值,在下一小节我们会持续介绍
  • ADDR:这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"
  • SZ:使用掉的内存大小
  • WCHAN:目前这个程序是否正在运作当中,若为 - 表示正在运作
  • TTY:登入者的终端机位置
  • TIME:使用掉的 CPU 时间。
  • CMD:所下达的指令为何
ps axo pid,comm,pcpu # 查看进程的PID、名称以及CPU 占用率
ps aux | sort -rnk 4 # 按内存资源的使用量对进程进行排序
ps aux | sort -nk 3  # 按 CPU 资源的使用量对进程进行排序
ps -A # 显示所有进程信息
ps -u root # 显示指定用户信息
ps -efL # 查看线程数
ps -e -o "%C : %p :%z : %a"|sort -k5 -nr # 查看进程并按内存使用大小排列
ps -ef # 显示所有进程信息,连同命令行
ps -ef | grep ssh # ps 与grep 常用组合用法,查找特定进程
ps -C nginx # 通过名字或命令搜索进程
ps aux --sort=-pcpu,+pmem # CPU或者内存进行排序,-降序,+升序
ps -f --forest -C nginx # 用树的风格显示进程的层次关系
ps -o pid,uname,comm -C nginx # 显示一个父进程的子进程
ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm # 重定义标签
ps -e -o pid,comm,etime # 显示进程运行的时间
ps -aux | grep named # 查看named进程详细信息
ps -o command -p 91730 | sed -n 2p # 通过进程id获取服务名称

把所有进程显示出来,并输出到ps001.txt文件

ps -aux > ps001.txt

ps -elf与ps aux区别

ps aux 是最常用的 BSD 风格选项组合,其中的 a 简单的说,表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;u 表示列出进程的用户。此外,由于一些ps版本的原因,也支持了 ps -aux

ps -elf 的 -e 代表列出所有进程,-l 代表长格式,-f 代表完整的格式,有时候也用 -F 代表超完整的格式。 不过,不同操作系统(如 Linux、BSD)的 ps 的版本和参数有很大差异,具体还是要以自己的手册而定。

参考:https://www.jianshu.com/p/e548b0ffe2b3