Linux常用命令

2018-03-02  本文已影响0人  翱翔云端

约定

1.获取命令帮助胜过死记命令,授人以鱼不如授人以渔。所以,本文不会去逐个选项地解释命令的用法,会把查看命令帮助的方法置于首位。
2.Linux是命令行操作,表面上需要记住很多命令,实际上没那么恐怖,学会查看帮助,以解决问题为导向,很快就会上手。
3.操作系统环境:CentOS6.5,Bash。

$ bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

对于LInux基本命令,推荐参考UNIX Tutorial for Beginners

进程管理

Linux是多用户、多任务操作系统。这句话的意思是,可以有多个用户同时使用Linux,并且每个用户可以同时执行多个任务。形象一点,就是图1的样子。


图1 Linux进程树

显然,所有Linux进程被组织为一棵倒立的树。
那么,我们如何看这一棵树呢?

pstree

查看进程树。

#查看帮助
$ pstree -h

#查看进程树,并且显示各进程的PID
$ pstree -pc

前台进程vs后台进程

我们在shell下每执行一个命令,比如ls,就会创建一个子进程,并且这个子进程会阻塞父进程的执行,阻塞的表现就是终端不出现命令提示符,我们输入不了命令了。本例中,ls回车后终端会立即出现命令提示符,这是因为ls这个进程瞬间执行完了,不再阻塞父进程。
在终端下,这种阻塞父进程执行的子进程就是前台进程。
那如何让子进程不阻塞父进程执行呢?
解决办法就是后台进程。以后台进程的形式执行一个命令就不会阻塞当前进程。
Linux中运行后台进程的方法。

# 方法一:&符号
$ find / -name *.java &
# 方法二:nohup命令
$ nohup  find / -name *.java &

# 查看进程的父子关系
$ ps -f PID

通过ps -f PID,你会发现后台进程的PPID(父进程标识符)仍然是当前bash的PID(进程标识符),但是当你退出登录以后,他们的PPID变成1了,1是LInux系统进程init的PID。所以,这里的&符号可以简单理解为非阻塞,或者说给子进程找个干爹init。

前后台进程切换

bg:将前台任务(进程)移到后台执行。

#查看帮助
$ help bg

fg:将后台任务(进程)移到前台执行。

#查看帮助
$ help fg

bg和fg命令很简单,看了帮助就知道怎么用了。

ps

查看进程“快照”,即执行ps命令时的进程状态。

#查看帮助
$ ps --help

#显示所有进程快照,包含PPID信息
$ ps -Af

ps命令的选项很多、很杂,使用时参考帮助即可。

top

实时显示以CPU使用情况为主的进程状态信息。

#查看帮助
$ top -h

#进入top
$ top

输入top,回车,top程序会实时显示进程状态信息,top是可交互的,输入h或者?可以查看交互的命令,输入q退出top命令,使用上类似于vi。
这个命令对于程序员很有用,我们可以实时监控服务器上的应用进程状态,比如负载,各个线程的状态,CPU等系统资源使用情况。
程序员必备:

#实时监控指定进程下的所有线程状态
$ top H p PID | top -H -p PID

kill

向指定进程发送信号。

#查看帮助
$ help kill

#列出当前系统支持的所有信号
$ kill -l

#向8888进程发送SIGTERM信号
#SIGTERM信号将终止所有不能捕获该信号的进程
kill 8888

#向8888进程发送SIGKILL信号
#SIGKILL信号不能被进程捕获
kill -s SIGKILL 8888 | kill -n 9 8888 | kill -9 8888

nice

以指定优先级(niceness)启动一个进程。

#查看帮助
$ nice --help

renice

改变一个正在运行进程的优先级。

#查看帮助
$ renice --help
上一篇下一篇

猜你喜欢

热点阅读