文章目录

  • 1. 文件/文件夹相关
    • 1.1 tree查看文件结构
      • 1.1.1 基本操作(查看深度为几的文件夹树形结构)
      • 1.1.2 使用pattern输出特定的文件夹树形结构
      • 1.1.3 不显示文件个数大于n的文件夹
    • 1.2 统计文件数量
    • 1.3 查看文件大小
    • 1.4 移动并复制文件/文件夹
    • 1.5 移动(重命名)文件/文件夹
    • 1.6 重命名文件/文件夹
    • 1.7 修改文件/文件夹权限
  • 2. 压缩和解压缩问题
    • 2.1 unzip
    • 2.2 unrar
  • 3. export命令设置环境变量
  • 4. Vim使用
  • 5. make编译命令相关
  • 6. 端口相关
  • 7. 新建文件/文件夹及权限
  • 8. sudo su相关命令
  • 9. 进程相关
  • 10. top tail及head命令
    • 10.1 top命令
    • 10.2 tail命令
    • 10.3 head命令
    • 10.4 linux输出重定向
    • 10.5 ps aux命令
  • 11. 查看程序/命令行执行时间

1. 文件/文件夹相关

1.1 tree查看文件结构

1.1.1 基本操作(查看深度为几的文件夹树形结构)

$ ls$ sudo apt-get install stree
$ tree
// tree这个命令要先安装,Ubuntu里默认没有。 tree 文件夹名称)
$ tree src
以树形结构查看src目录下所有文件,不加文件夹名称是查看当前文件夹所有目录。
也有只查看目录 查看几层的选项$ tree -L 2 //查看当前目录下两级的内容

1.1.2 使用pattern输出特定的文件夹树形结构

参考: Linux tree command,有完整的tree命令参数说明

tree -L 2  -I '*TCIA*|*TMC*|*CBICA*'
  • -L 深度为2的层级
  • -I 排除符合后面pattern的文件夹
    目前支持的pattern有:

    • * 匹配0个或多个任意字符
    • ? 匹配任意单个租字符
    • [...]匹配中括号中任意字符,比如[A-Z],或者[az],短横线是可选的,
    • [^...]匹配不在括号范围内的字符
    • | 分割多个pattern(属于或者的关系,满足一个pattern即可)
  • -P 匹配符合pattern的文件夹

1.1.3 不显示文件个数大于n的文件夹

tree -L 2  --filelimit=10
# --filelimit 最大文件夹中文件数量限制,超过则不显示

1.2 统计文件数量

"1. 统计当前目录下所有文件数量"
$ ls |wc -l
101

参考:

  • Count Number of Files in a Directory in Linux
  • Linux 统计目录下文件数量的方法

1.3 查看文件大小

$ ls -lh
total 3.8G
-rw-r--r-- 1 root root 35M May 17 11:23 001.nii.gz
-rw-r--r-- 1 root root 43M May 17 11:23 002.nii.gz
-rw-r--r-- 1 root root 49M May 17 11:23 003.nii.gz

参考:

  • linux查看文件夹大小

1.4 移动并复制文件/文件夹

"1. 移动并复制"
cp [options] source dest"把一个文件复制并移动到另一个文件夹中"
cp /test/xxx.txt  /test2/"将当前目录 test/ 下的所有文件复制到新目录 newtest 下"
cp –r test/ newtest

参考:

  • 菜鸟教程-Linux cp 命令

1.5 移动(重命名)文件/文件夹

mv [options] source dest
mv [options] source... directory

参考:

  • ✅详见菜鸟教程: Linux mv 命令
  • 菜鸟教程:Linux 常用命令学习

1.6 重命名文件/文件夹

"1. 直接看手册吧,没找到比较好的参考"
RENAME(1)                User Commands                     RENAME(1)
NAMErename - rename files
SYNOPSISrename [options] expression replacement file...
DESCRIPTIONrename will rename the specified files by replacing the first occurrence of expression in their name by replace‐ment.rename [原文件名] [新文件名] 进行操作的文件名
rename  hs_0.773_base_test.csv  hs_0.773_[base_[16,480,480]]_test.csv  hs_0.773_base_test.csvrename 'hs_0.773_base_test.csv/hs_0.773_[base_[16,480,480]]_test.csv/hs_0.773_base_test.csv'"2. 如果报错就还是直接用mv命令,然后删除旧的就行"

参考:

  • linux下rename命令用法详解(重命名文件)

1.7 修改文件/文件夹权限

详见 7. 新建文件/文件夹及权限 部分,最常见的用法就是

chmod 757 -R /data

2. 压缩和解压缩问题

2.1 unzip

//Ubuntu默认不自带 rar和zip的压缩和解压程序,需要自己安装
> sudo apt-get install zip unzip rar unrar
//使用unzip解压时注意:如果对一个叫source的文件夹进行压缩,得到YaSuoSource.zip,则
`unzip source.zip`会直接在当前目录下解压得到source文件夹。
> unzip XXX.zip
//即 unzip XXX.zip会将zip文件中的一级目录下的文件全都解压出来,放在当前命令的同级目录下。所以,如果是直接将一堆文件进行了压缩,希望解压之后放在当前目录的一个文件夹而不是直接将这堆文件放在当前目录下,则需要指定 -d 解压到某个文件夹中。//最好的方式就是 将所有要压缩的文件放在一个文件夹中,对文件夹进行压缩,这样解压后就可以得到与文件夹同名的文件夹了。。。。

此外,压缩的话,一般使用

# -q 不显示详细信息,-r 迭代文件夹
# xxx.zip 保存的压缩文件名称 *
# 对当前文件夹下所有文件进行压缩
# 对当前工作目录下的所有文件进行压缩
zip -q -r XXX.zip *

详见菜鸟教程:Linux zip 命令


2.2 unrar

# 安装
sudo apt-get install rar unrar# 解压到当前文件夹
unrar e XXX.rar
# 解压到某个特定的文件夹(前提是这个文件夹要已经存在)
unrar e XXX.rar ./some_folder

3. export命令设置环境变量

常见用法有三种,参考

  • ubuntu export 的作用 添加环境变量
  • Linux export 命令
  1. Linux export 命令用于设置或显示环境变量。在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用

    • export -p //列出当前的环境变量值
    • export MYENV //定义环境变量
    • export MYENV=7 //定义环境变量并赋值
  2. 如果直接使用export声明变量,则export 的效力仅限于该次登陆操作。如果想要持久化生效,则需要将export命令写入 /etc/profile 文件或者/root/.bashrc文件中,直接在文件最后加入:
> export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

然后可以使用

> source ~/.bashrc  # 使修改生效
> echo $PATH #查看是否有返回以及返回是否正确 来判断是否设置正确

4. Vim使用

参考Linux vi/vim

> vim ~/.bashrc

基本上 vi/vim 共分为三种模式,分别是

  • 命令模式(Command mode)

    • 刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令:

      • i 切换到输入模式,以输入字符。
      • x 删除当前光标所在处的字符。
      • : 切换到底线命令模式,以在最底一行输入命令。
  • 输入模式(Insert mode),在命令模式下按下i就进入了输入模式。在输入模式中,可以使用以下按键:
    • 字符按键以及Shift组合,输入字符
    • ENTER,回车键,换行
    • BACK SPACE,退格键,删除光标前一个字符
    • DEL,删除键,删除光标后一个字符
    • 方向键,在文本中移动光标
    • HOME/END,移动光标到行首/行尾
    • Page Up/Page Down,上/下翻页
    • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
    • ESC,退出输入模式,切换到命令模式
  • 底线命令模式(Last line mode)在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。在底线命令模式中,基本的命令有(已经省略了冒号):
    • q 退出程序
    • w 保存文件
    • :wq(保存并退出)
    • 按ESC键可随时退出底线命令模式。

5. make编译命令相关

主要参考:

  • linux ubuntu关于make makefile make clean
  • ./configure make && make install
  • configure、 make、 make install 背后的原理(翻译)
  • linux公社-./configure,make,make install的作用

linux源代码编译安装的三个过程:configure, make , make install

  1. 配置 ./configure

    • configure 是一个可执行脚本,有很多选项,可以执行 ./configure --help 列出, configure的作用是检测安装平台的目标特征,比如检测编译器是什么版本,最后生成一个符合目标平台的编译脚本makefile
    • makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是–“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
    • ./configure --prefix = /usr/local/xxx 指定是将软件安装到指定的目录/usr/local/xxx下。另外一个额外的好处是方便卸载软件和移植,卸载只需要删除xxx文件夹,移植将文件打包烤至目标主机即可。
  2. 编译 make
    • make就可以根据上一步生成的makefile脚本编译源代码,make的作用就是将文件编译成很多小文件
    • make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法
    • 根据Makefile文件编译源代码、连接、生成目标文件、可执行文件。
  3. 安装 make install (需要root权限,向系统写文件)
    • 有些软件需要先运行 make check 或 make test 来进行一些测试
    • 安装(有些软件需要先运行 make check 或 make test来进行一些测试),将编译出来的程序、依赖库、文档拷贝至指定的xxx目标。如果在configure后面没有指定 --prefix目录, 默认将可执行文件放到 /usr/loceal/bin , 库文件/usr/local/lib , 配置文件 /usr/local/etc ,其他资源文件 /usr/local/share。就是将make文件中的有用信息拷贝到可执行文件中。
    • 将编译成功的可执行文件安装到系统目录中
  4. 其他
    • make clean

      • 如果一次编译出错,即make产生的东西出错了,那么之后make install就会一直错。所以要使用make clean清除make产生的东西。
      • 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
      • make clean仅仅是清除之前编译的可执行文件及配置文件。 而make distclean要清除所有生成的文件。
>./configure
> make
> make install> make test
> make clear

6. 端口相关

如果是Azure这样的云服务器,开不开端口和你就没关系了,是在供应商提供的服务器管理面板上进行操作的,就算你自己用root账户改也白搭。

与端口相关的命令,常见的应该有三个,如下:

  • ufw(Uncomplicated Firewall) Linux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw。而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作。
  • netstat
  • lsof -i:port

主要参考:

  • ubuntu 的ufw详解–防火墙
  • ubuntu中netstat命令的用法
//防火墙 ufw相关的//打开防火墙
> sudo ufw enable
//查看当前防火墙状态
> sudo ufw status
Status: inactive 或
Status: active
//打开80端口(一次只能打开一个 空格隔开没用)
> sudo ufw allow 80
//防火墙重启
> sudo ufw reload//netstat相关的
> netstat -tnl | grep 443 (查看443端口是否被占用)
// root用户使用 还可显示出占用本机443端口的进程PID)
> netstat -aptn
> netstat -tnlp 查看系统中(已建立连接的)使用tcp协议的端口号
> netstat -unpl 查看系统中(已建立连接的)使用udp协议的端口号
返回的结果中 State 有Listen 监听和 established 已建立连接
  • 常见参数说明

    • -a, --all, --listening display all sockets (default: connected):-a或–all 显示所有Socket(监听/连接)。
    • ={-t|–tcp} {-u|–udp} {-w|–raw} {-x|–unix} --ax25 --ipx --netrom
      • -t或–tcp 显示TCP传输协议的连线状况。
      • -u或–udp 显示UDP传输协议的连线状况。
    • -n, --numeric don’t resolve names:-n或–numeric 直接使用IP地址,而不通过域名服务器。
    • -l, --listening display listening server sockets
    • -p, --programs display PID/Program name for sockets
//查看特定端口,使用lsof -i:端口号命令 需要root权限
> sudo su
> lsof -i:22
// 就可以在返回结果中看到使用这个端口的相关服务了
// 如果没有任何输出则说明没有开启该端口号

7. 新建文件/文件夹及权限

主要参考:Ubuntu 文件查看权限和设置权限

//新建文件
> touch test.py(文件名+后缀)
> mkdir source(文件夹名称)//文件权限// 查看权限的命令为
ls -l filename
ls -ld folder
//权限解释
返回的描述中,前10位数
> -rw-r--r-- 1 root root 0 Jul 29 08:32 test/hs_test.py
最前面那个 - 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r-- 代表的是其他人(other)
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
-
//修改权限//表示给其他人授予写xxx.xxx这个文件的权限
> chmod o+w xxx.xxx
//表示删除xxx.xxx中组群和其他人的读和写的权限
> chmod go-rw xxx.xxx
> sudo chmod 600 ××× (只有所有者有读和写的权限)
> sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
> sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
> sudo chmod 666 ××× (每个人都有读和写的权限)
> sudo chmod 777 ××× (每个人都有读和写以及执行的权限) //例如:想使得上述文件让普通用户也可以访问,则可以:
sudo chmod 666 hs_test.py

常见的以下的一些权限就很容易都明白了:

  • u 代表所有者(user)
  • g 代表所有者所在的组群(group)
  • o 代表其他人,但不是u和g (other)
  • a 代表全部的人,也就是包括u,g和o
  • r 表示文件可以被读(read)
  • w 表示文件可以被写(write)
  • x 表示文件可以被执行(如果它是程序的话)
  • rwx也可以用数字来代替
    • r -4
    • w -2
    • x -1
    • ‘-’ 0

‘’+‘’ 表示添加权限; - 表示删除权限; = 表示使之成为唯一的权限

  1. -rw------- (600) 只有所有者才有读和写的权限
  2. -rw-r–r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
  3. -rwx------ (700) 只有所有者才有读,写,执行的权限
  4. -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
  5. -rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
  6. -rw-rw-rw- (666) 每个人都有读写的权限
  7. -rwxrwxrwx (777) 每个人都有读写和执行的权限

8. sudo su相关命令

主要参考:

  • su、sudo、sudo su、sudo -i的用法和区别
  • su、sudo、sudo su、sudo -i的用法和区别
  • Linux小知识:sudo su和su的区别
  • linux中国-深入理解 sudo 与 su 之间的区别
  • A beginner’s guide to understanding sudo on Ubuntu

两条命令的基本说明:

  • sudo:
  • su:
    • su 命令的主要作用是让你可以在已登录的会话中切换到另外一个用户。换句话说,这个工具可以让你在不登出当前用户的情况下登录为另外一个用户。
    • su 命令经常被用于切换到超级用户或 root 用户(因为在命令行下工作,经常需要 root 权限),但是 - 正如前面所提到的 - su 命令也可以用于切换到任意非 root 用户。
    >su
    //默认切换到root用户 需要输入密码 然后su 命令会在终端的当前会话中打开一个子会话。
    >su -
    //这个命令也可以切换到root用户
    
    • su和su -的区别:前者在切换到 root 用户之后仍然保持旧的(或者说原始用户的)环境,而后者则是创建一个新的环境(由 root 用户 ~/.bashrc 文件所设置的环境),相当于使用 root 用户正常登录(从登录屏幕登录)
  • 二者区别:
    • 两个命令的最大区别是:sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码
    • 另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录

9. 进程相关

参考:

  • Linux:PS命令详解与使用
  • Linux ps命令
  • Linux manul page,搜索STDOUT
> ps -ef|grep ***

  • ps命令将某个进程显示出来,是LINUX下最常用的也是非常强大的进程查看命令
  • grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户
  • 中间的|是管道命令 是指ps命令与grep同时执行
  • 返回的内容其每个字段含义如下:
    • UID:程序被该 UID 所拥有。用户 ID(User ID,简称 UID)和组 ID(Group ID,简称 GID),这与文件有拥有者和拥有群组两种属性相对应
    • PID:就是这个程序的 ID ,进程ID号,简称PID (process ID)
    • PPID:则是其上级父程序的ID
    • C:CPU使用的资源百分比
    • STIME :系统启动时间
    • TTY:登入者的终端机位置
    • TIME:使用掉的CPU时间
    • CMD:所下达的是什么指令
UID   PID  PPID   C   STIME  TTY       TIME    CMD
root  2010  1     0   02:29 pts/0    00:00:00 /usr/local/bin/python3.6 /usr/local/bin/gunicorn -c ./gun.conf rest:app

10. top tail及head命令

主要参考:linux常用命令简单介绍(netstat,awk,top,tail,head,less,more,cat,nl)

10.1 top命令

例如:

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

前五行是当前系统情况整体的统计信息区。

每一行信息的具体意义:

  • 第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:
    14:06:23 — 当前系统时间
    up 70 days, 16:44 — 系统已经运行了70天16小时44分钟(在这期间系统没有重启过的吆!)
    2 users — 当前有2个用户登录系统
    load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
    load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
  • 第二行,Tasks — 任务(进程),具体信息说明如下:
    系统现在共有206个进程,其中处于运行中的有1个(running),205个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
  • 第三行,cpu状态信息,具体属性说明如下:
    5.9%us — 用户空间占用CPU的百分比。
    3.4% sy — 内核空间占用CPU的百分比。
    0.0% ni — 改变过优先级的进程占用CPU的百分比
    90.4% id — 空闲CPU百分比 idle(空闲的)
    0.0% wa — IO等待占用CPU的百分比
    0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
    0.2% si — 软中断(Software Interrupts)占用CPU的百分比
    备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!
  • 第四行,内存状态,具体信息如下:
    32949016k total — 物理内存总量(32GB)
    14411180k used — 使用中的内存总量(14GB)
    18537836k free — 空闲内存总量(18GB)
    169884k buffers — 缓存的内存量 (169M)
  • 第五行,swap交换分区信息,具体信息说明如下:
    32764556k total — 交换区总量(32GB)
    0k used — 使用的交换区总量(0K)
    32764556k free — 空闲交换区总量(32GB)
    3612636k cached — 缓冲的交换区总量(3.6GB)
    备注:
    第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
    如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers 第五行的cached,按这个公式此台服务器的可用内存:18537836k +169884k +3612636k = 22GB左右。
    对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了
  • 第六行,空行。
  • 第七行以下:各进程(任务)的状态监控,项目列信息说明如下:
    PID — 进程id
    USER — 进程所有者
    PR — 进程优先级 priority
    NI — nice值。负值表示高优先级,正值表示低优先级
    VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR — 共享内存大小,单位kb
    S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU — 上次更新到现在的CPU时间占用百分比
    %MEM — 进程使用的物理内存百分比
    TIME+ — 进程使用的CPU时间总计,单位1/100秒
    COMMAND — 进程名称(命令名/命令行)

常用操作:
top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

该内容转自:

  • http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html
  • http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316399.html

10.2 tail命令

tail[必要参数][选择参数][文件]

命令功能:
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

命令参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

举例:
tail -10 log4j.log 显示最后十行内容
tail -n +5 从第五行开始显示内容
tail -f log4j.log 随着文件变化,显示后面的内容

10.3 head命令

与tail命令相对的,就是head命令

head [参数]… [文件]…

命令功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

命令参数:
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数

举例:
head -n 5 log4j.log 显示文件的前n行命令
head -n -6 log4j.log 输出文件除了最后n行的全部内容

10.4 linux输出重定向

Linux输出重定向

将linux命令输出的内容同时输出到控制台和某个文件中
Linux中记录终端(Terminal)输出到文本文件

10.5 ps aux命令

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0    892   572 ?        Sl   Nov28   0:00 /init
root       227  0.0  0.0    900    80 ?        Ss   Nov28   0:00 /init
root       228  0.0  0.0    900    88 ?        S    Nov28   0:00 /init
zaphod     229  0.0  0.1 749596 31000 pts/0    Ssl+ Nov28   0:15 docker
root       240  0.0  0.0      0     0 ?        Z    Nov28   0:00 [init] <defunct>
root       247  0.0  0.0    900    88 ?        S    Nov28   0:00 /init
root       248  0.0  0.1 1758276 31408 pts/1   Ssl+ Nov28   0:10 /mnt/wsl/docker-desktop/docker-desktop-proxy
root       283  0.0  0.0    892    80 ?        Ss   Dec01   0:00 /init
root       284  0.0  0.0    892    80 ?        R    Dec01   0:00 /init
zaphod     285  0.0  0.0  11964  5764 pts/2    Ss   Dec01   0:00 -zsh
zaphod     343  0.0  0.0  23764  9836 pts/2    T    17:44   0:00 vi foo
root       349  0.0  0.0    892    80 ?        Ss   17:45   0:00 /init
root       350  0.0  0.0    892    80 ?        S    17:45   0:00 /init
zaphod     351  0.0  0.0  11964  5764 pts/3    Ss+  17:45   0:00 -zsh
zaphod     601  0.0  0.0  10612  3236 pts/2    R+   18:24   0:00 ps aux

其中,值得注意的是STAT这一列,

  • 根据What do the STAT column values in ps mean?的回答
  • 可以通过man ps来查看帮助手册,其中PROCESS STATE CODES部分就是对STAT这列的参数的解释,如下
PROCESS STATE CODESHere are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process:D    uninterruptible sleep (usually IO)R    running or runnable (on run queue)S    interruptible sleep (waiting for an event to complete)T    stopped, either by a job control signal or because it is being traced.W    paging (not valid since the 2.6.xx kernel)X    dead (should never be seen)Z    defunct ("zombie") process, terminated but not reaped by its parent.For BSD formats and when the stat keyword is used, additional characters may be displayed:<    high-priority (not nice to other users)N    low-priority (nice to other users)L    has pages locked into memory (for real-time and custom IO)s    is a session leaderl    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)+    is in the foreground process group.

参考:

  • Using the ps aux Command in Linux
  • What do the STAT column values in ps mean?

11. 查看程序/命令行执行时间

> time ls
> time 你的可执行文件
// 例如
> time ./XXXX

参考:

  • Find The Execution Time Of A Command Or Process In Linux
  • Measure time of program execution

Ubuntu日常使用命令记录相关推荐

  1. MHA 日常维护命令集

    MHA 日常维护命令集 1.查看ssh登陆是否成功 masterha_check_ssh --global_conf=/etc/masterha/masterha_default.conf --con ...

  2. Kubernetes Dashboard on Ubuntu 16.04安装记录

    2019独角兽企业重金招聘Python工程师标准>>> Kubernetes Dashboard on Ubuntu 16.04安装记录 以下内容在Kubernetes 1.9.3 ...

  3. 安装ubuntu系统操作系统详细流程、ubuntu管理包命令apt和dpkg命令详细说明、一键部署openstack环境、DBeaver下载驱动报错和登录提示RSA public key.. 解决方法

    文章目录 安装ubuntu操作系统 安装vmware,我这的版本是16 . 创建虚拟机 设置网络.[你没有啥特殊需求,忽略该步骤] 开启处理器虚拟化 开始安装ubuntu系统 配置sshd和修改roo ...

  4. Ubuntu系统---FeiQ安装记录

    Ubuntu系统---FeiQ安装记录 linux下安装飞秋/飞鸽传书之类的软件iptux信使,可以与windows在一个局域网下聊天与传书文件,安装很简单. 首先,直接运行下面的语句即可:sudo ...

  5. 国产电脑日常运维记录

    国产电脑日常运维记录 飞腾麒麟操作系统 1.安装应用 应用所在目录空白处右键单击,在弹出的菜单栏选择"在终端中打开",执行以下命令: sudo dpkg -i *.deb 提示输入 ...

  6. Ubuntu 12.04 配置记录

    Ubuntu 12.04 配置记录 2013-01-28 15:51:51 分类: LINUX 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...

  7. Mirai qq机器人ubuntu配置踩坑记录

    Mirai qq机器人ubuntu配置踩坑记录 intellij配置 打包jar ubuntu无界面运行 Mirai GitHub 链接 mirai-github intellij配置 我的是Ulti ...

  8. Bash审计与命令记录

    翻译原出处:www.pointsoftware.ch/de/howto-bash-audit-command-logger/ 翻译并整理了一下,水平有限,多请见谅. 有一个完整的输入命令记录在很多情况 ...

  9. Win10 环境下安装Ubuntu 18.04过程记录

    Win10 环境下安装Ubuntu 18.04过程记录 步骤1:下载镜像文件 从Ubuntu官网https://www.ubuntu.com/download/server下载系统的iso镜像文件 , ...

  10. Ubuntu 16.04 安装记录Install - Recording

    Ubuntu 16.04 安装记录 换源 # 先对原来的sources.list进行备份 # https://www.linuxidc.com/Linux/2017-01/139458.htm sud ...

最新文章

  1. COM组件转换成.NET组件[转]
  2. Postgresql的character varying = bytea问题
  3. mac电池损耗百分比怎么查看
  4. 002649:springboot下mybatis运行原理
  5. 如何学习HyperMesh
  6. 浏览器辅助神器:油猴脚本使用教程
  7. adb 命令大全(简洁明了)adb命令启动应用
  8. 工作中使用BBM:消费者的“闺蜜”级顾问 凯特周智囊团
  9. C#使用DirectoryEntry类操作Windows帐户
  10. cpu使用率100%,内存占用不足30%,system进程 pId=4
  11. mysql alter字段_mysql alter语句添加、修改、删除字段的例子
  12. 第13章WEB13-JSP模式JDBC高级篇
  13. checkbox如何默认选中
  14. MySQL数据库面试题(超详细)
  15. Java桌面应用程序
  16. agx 扩展m2的固态硬盘 挂载到/home中
  17. 操作系统:电脑系统盘常见文件夹的功能详解
  18. 51学工坊整理|甲骨文Oracle数据库 21c来了,来看看有哪些创新技术
  19. J9数字论:区块链+DAO3:去中心化的互联网世界
  20. Hadoop-HA集群启动后两个namenode都是standby问题。

热门文章

  1. maven报错问题汇总
  2. GitHub 中超过3.5万开源代码被投毒
  3. ϵ-greedy Policies
  4. Greedy Method
  5. LTP(Linux Test Project)学习(五)——LTP代码学习
  6. Codeforces 919C--Seat Arrangements
  7. linux格式化sd卡,并进行挂载
  8. oracle sysdate毫秒,oracle systimestamp(sysdate)到毫秒
  9. 容器:forward_list用法及示例
  10. Pollard-Rho算法模板(POJ 1811 Prime Test)