文件管理
查看文件和文件夹大小
- 查看目前所有文件系统的可用空间及使用情形
df -h
- 查看文件或文件夹的磁盘使用空间
du -h --max-depth=1 your_dest_dir
- 可以调节--max-depth参数,用来控制你想要查看的目录的深度。
- 注意,该命令只会返回目标文件夹和目标文件夹下首层文件夹的大小,不会返回更深层的文件夹的大小,也不会返回文件的大小。
- 要想返回更深层的文件夹的大小,可以设置--max-depth为更高的数值,或者干脆取消--max-depth参数,这样它就会返回目标文件夹下所有子文件夹的大小,不管其深度(但仍不会返回文件大小,其实,想看文件大小,直接在目标目录下运行命令 ls -htla就可以啦!)。
要还想返回目标文件夹下首层的文件大小,可以使用下述命令:
du -h --max-depth=0 your_dest_dir/*
进程
查看进程
- jobs
- 列出从终端中启动的任务。
- ps
- 默认情况下,
ps
不会显示很多进程信息,只是列出与当前终端会话相关的进程。为了得到更多信息, 我们需要加上一些选项。 -
ps x
展示所有进程,不管它们由什么终端(如果有的话)控制。在 TTY 一栏中出现的 “?” ,表示没有控制终端。 -
ps aux
显示属于每个用户的进程信息。
- top
-
ps
命令只是提供 ps 命令执行时刻的机器状态快照。为了看到更多动态的信息,我们使用 top 命令。 -
top
程序以进程活动顺序连续更新显示系统进程列表(默认情况下,每三秒钟更新一次)。显示结果由两部分组成:最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。 -
top
程序接受一系列从键盘输入的命令。h
显示程序的帮助屏幕,q
退出 top 程序。
后台执行
在程序命令之后加上&
字符可以让程序在后台运行。
- 一个在后台运行的进程对一切来自键盘的输入都免疫,也不能用 Ctrl-c 来中断它。中断一个后台运行的进程有很多方法,比如让进程返回前台 (foreground),可以使用
fg
命令,参数为一个百分号和任务序号(叫做 jobspec,如此处的%1),然后使用 Ctrl-c 来中断程序。 - 如果想要将已经开始运行的程序切换为后台运行,先输入 Ctrl-z 来停止程序,然后使用
bg
命令加上%jobspec
参数即可。
另外,当用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务,有可能由于网络的不稳定导致任务中途失败。让命令提交后不受本地关闭终端窗口/网络断开连接的干扰的方法:当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程,详细做法讲解。
kill命令和信号
使用 kill 命令,并且指定我们想要终止的进程 PID。也可以用 jobspec(例如,“%1”)来代替 PID。
kill 命令被用来给程序发送信号。它最常见的语法形式看起来像这样:
kill [-signal] PID...
其中信号既可以用号码,也可以用名字来指定。
编号 | 名字 | 含义 |
---|---|---|
1 | HUP | 挂起(Hangup)。关闭一个终端会话可以展示这个信号的作用。在当前终端运行的前台程序将会收到这个信号并终止。许多守护进程也使用这个信号来重新初始化。这意味着当一个守护进程收到这个信号后会重新启动,并且重新读取它的配置文件。 |
2 | INT | 中断。实现和 Ctrl-c 一样的功能,由终端发送。通常,它会终止一个程序。 |
9 | KILL | 杀死。程序可能会选择不同的方式来处理发送给它的信号,包含忽略信号,但是 KILL 信号不被发送到目标程序,而是内核立即终止这个进程。当一个进程以这种方式终止的时候,它没有机会去做些“清理”或者保存工作。所以把 KILL 信号看作最后一招,当其它终止信号失败后再使用它。 |
15 | TERM | 终止。这是 kill 命令发送的默认信号。如果程序仍然“活着”,可以接受信号,那么它会终止。 |
19 | STOP | 停止。这个信号导致进程停止运行,而不是终止。像 KILL 信号,它不被发送到目标进程,因此它不能被忽略。 |
20 | TSTP | 终端停止(Terminal Stop)。当按下 Ctrl-z 组合键后,终端发送这个信号。不像 STOP 信号,TSTP 信号由目标进程接收,可能被忽略。 |
18 | CONT | 继续。在一个停止信号后,这个信号会恢复进程的运行。 |
3 | QUIT | 退出 |
11 | SEGV | 段错误(Segmentation Violation)。如果一个程序非法使用内存,就会发送这个信号。 |
28 | WINCH | 改变窗口大小(Window Change)。当改变窗口大小时系统会发送这个信号。一些程序,像 top 和 less 程序会响应这个信号,按照新窗口的尺寸刷新显示的内容。 |